diff --git a/.typos.toml b/.typos.toml index 5380fc8dadd52..72cf4d6609796 100644 --- a/.typos.toml +++ b/.typos.toml @@ -61,5 +61,8 @@ extend-ignore-identifiers-re = [ # This pattern can be found in long hex strings. "[0-9]caf[0-9]", # This is a GCS dual-region name. - "NAM4" + "NAM4", + # Metadata is mispelled in this proto message name found in + # google/cloud/aiplatform/v1/vizier_service.proto + "CheckTrialEarlyStoppingStateMetatdata" ] diff --git a/generator/integration_tests/golden/v1/golden_kitchen_sink_connection.h b/generator/integration_tests/golden/v1/golden_kitchen_sink_connection.h index c0c4d98ef7c48..b48ce0bd351a5 100644 --- a/generator/integration_tests/golden/v1/golden_kitchen_sink_connection.h +++ b/generator/integration_tests/golden/v1/golden_kitchen_sink_connection.h @@ -22,6 +22,7 @@ #include "generator/integration_tests/golden/v1/golden_kitchen_sink_connection_idempotency_policy.h" #include "generator/integration_tests/golden/v1/internal/golden_kitchen_sink_retry_traits.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/internal/async_read_write_stream_impl.h" #include "google/cloud/internal/retry_policy_impl.h" diff --git a/generator/integration_tests/golden/v1/golden_rest_only_connection.h b/generator/integration_tests/golden/v1/golden_rest_only_connection.h index 49b0a925e4378..1353d9ab811b6 100644 --- a/generator/integration_tests/golden/v1/golden_rest_only_connection.h +++ b/generator/integration_tests/golden/v1/golden_rest_only_connection.h @@ -22,6 +22,7 @@ #include "generator/integration_tests/golden/v1/golden_rest_only_connection_idempotency_policy.h" #include "generator/integration_tests/golden/v1/internal/golden_rest_only_retry_traits.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/internal/retry_policy_impl.h" #include "google/cloud/options.h" #include "google/cloud/status_or.h" diff --git a/generator/integration_tests/golden/v1/golden_thing_admin_connection.cc b/generator/integration_tests/golden/v1/golden_thing_admin_connection.cc index 6c13dcc67ee28..9f2126dbada51 100644 --- a/generator/integration_tests/golden/v1/golden_thing_admin_connection.cc +++ b/generator/integration_tests/golden/v1/golden_thing_admin_connection.cc @@ -52,6 +52,22 @@ GoldenThingAdminConnection::CreateDatabase( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +GoldenThingAdminConnection::CreateDatabase( + ExperimentalTag, NoAwaitTag, + google::test::admin::database::v1::CreateDatabaseRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +GoldenThingAdminConnection::CreateDatabase( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr GoldenThingAdminConnection::GetDatabase( google::test::admin::database::v1::GetDatabaseRequest const&) { @@ -66,6 +82,22 @@ GoldenThingAdminConnection::UpdateDatabaseDdl( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +GoldenThingAdminConnection::UpdateDatabaseDdl( + ExperimentalTag, NoAwaitTag, + google::test::admin::database::v1::UpdateDatabaseDdlRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +GoldenThingAdminConnection::UpdateDatabaseDdl( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + Status GoldenThingAdminConnection::DropDatabase( google::test::admin::database::v1::DropDatabaseRequest const&) { @@ -104,6 +136,22 @@ GoldenThingAdminConnection::CreateBackup( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +GoldenThingAdminConnection::CreateBackup( + ExperimentalTag, NoAwaitTag, + google::test::admin::database::v1::CreateBackupRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +GoldenThingAdminConnection::CreateBackup( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr GoldenThingAdminConnection::GetBackup( google::test::admin::database::v1::GetBackupRequest const&) { @@ -136,6 +184,22 @@ GoldenThingAdminConnection::RestoreDatabase( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +GoldenThingAdminConnection::RestoreDatabase( + ExperimentalTag, NoAwaitTag, + google::test::admin::database::v1::RestoreDatabaseRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +GoldenThingAdminConnection::RestoreDatabase( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StreamRange GoldenThingAdminConnection::ListDatabaseOperations( google::test::admin::database::v1::ListDatabaseOperationsRequest) { // NOLINT(performance-unnecessary-value-param) return google::cloud::internal::MakeUnimplementedPaginationRange< @@ -156,6 +220,22 @@ GoldenThingAdminConnection::LongRunningWithoutRouting( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +GoldenThingAdminConnection::LongRunningWithoutRouting( + ExperimentalTag, NoAwaitTag, + google::test::admin::database::v1::RestoreDatabaseRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +GoldenThingAdminConnection::LongRunningWithoutRouting( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> GoldenThingAdminConnection::AsyncGetDatabase( google::test::admin::database::v1::GetDatabaseRequest const&) { diff --git a/generator/integration_tests/golden/v1/golden_thing_admin_connection.h b/generator/integration_tests/golden/v1/golden_thing_admin_connection.h index b34ba3376a802..fab49ed0ec5bc 100644 --- a/generator/integration_tests/golden/v1/golden_thing_admin_connection.h +++ b/generator/integration_tests/golden/v1/golden_thing_admin_connection.h @@ -22,8 +22,10 @@ #include "generator/integration_tests/golden/v1/golden_thing_admin_connection_idempotency_policy.h" #include "generator/integration_tests/golden/v1/internal/golden_thing_admin_retry_traits.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/internal/retry_policy_impl.h" +#include "google/cloud/no_await_tag.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" #include "google/cloud/status_or.h" @@ -187,12 +189,24 @@ class GoldenThingAdminConnection { virtual future> CreateDatabase(google::test::admin::database::v1::CreateDatabaseRequest const& request); + virtual StatusOr + CreateDatabase(ExperimentalTag, NoAwaitTag, google::test::admin::database::v1::CreateDatabaseRequest const& request); + + virtual future> + CreateDatabase(ExperimentalTag, google::longrunning::Operation const& operation); + virtual StatusOr GetDatabase(google::test::admin::database::v1::GetDatabaseRequest const& request); virtual future> UpdateDatabaseDdl(google::test::admin::database::v1::UpdateDatabaseDdlRequest const& request); + virtual StatusOr + UpdateDatabaseDdl(ExperimentalTag, NoAwaitTag, google::test::admin::database::v1::UpdateDatabaseDdlRequest const& request); + + virtual future> + UpdateDatabaseDdl(ExperimentalTag, google::longrunning::Operation const& operation); + virtual Status DropDatabase(google::test::admin::database::v1::DropDatabaseRequest const& request); @@ -211,6 +225,12 @@ class GoldenThingAdminConnection { virtual future> CreateBackup(google::test::admin::database::v1::CreateBackupRequest const& request); + virtual StatusOr + CreateBackup(ExperimentalTag, NoAwaitTag, google::test::admin::database::v1::CreateBackupRequest const& request); + + virtual future> + CreateBackup(ExperimentalTag, google::longrunning::Operation const& operation); + virtual StatusOr GetBackup(google::test::admin::database::v1::GetBackupRequest const& request); @@ -226,6 +246,12 @@ class GoldenThingAdminConnection { virtual future> RestoreDatabase(google::test::admin::database::v1::RestoreDatabaseRequest const& request); + virtual StatusOr + RestoreDatabase(ExperimentalTag, NoAwaitTag, google::test::admin::database::v1::RestoreDatabaseRequest const& request); + + virtual future> + RestoreDatabase(ExperimentalTag, google::longrunning::Operation const& operation); + virtual StreamRange ListDatabaseOperations(google::test::admin::database::v1::ListDatabaseOperationsRequest request); @@ -235,6 +261,12 @@ class GoldenThingAdminConnection { virtual future> LongRunningWithoutRouting(google::test::admin::database::v1::RestoreDatabaseRequest const& request); + virtual StatusOr + LongRunningWithoutRouting(ExperimentalTag, NoAwaitTag, google::test::admin::database::v1::RestoreDatabaseRequest const& request); + + virtual future> + LongRunningWithoutRouting(ExperimentalTag, google::longrunning::Operation const& operation); + virtual future> AsyncGetDatabase(google::test::admin::database::v1::GetDatabaseRequest const& request); diff --git a/generator/integration_tests/golden/v1/internal/golden_thing_admin_connection_impl.cc b/generator/integration_tests/golden/v1/internal/golden_thing_admin_connection_impl.cc index a97810a4b4a86..7f964360c3b98 100644 --- a/generator/integration_tests/golden/v1/internal/golden_thing_admin_connection_impl.cc +++ b/generator/integration_tests/golden/v1/internal/golden_thing_admin_connection_impl.cc @@ -126,6 +126,51 @@ GoldenThingAdminConnectionImpl::CreateDatabase(google::test::admin::database::v1 polling_policy(*current), __func__); } +StatusOr +GoldenThingAdminConnectionImpl::CreateDatabase(ExperimentalTag, + NoAwaitTag, google::test::admin::database::v1::CreateDatabaseRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateDatabase(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::test::admin::database::v1::CreateDatabaseRequest const& request) { + return stub_->CreateDatabase(context, options, request); + }, + *current, request, __func__); +} + +future> +GoldenThingAdminConnectionImpl::CreateDatabase(ExperimentalTag, + google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata().Is()) { + return make_ready_future>( + internal::InvalidArgumentError("operation does not correspond to CreateDatabase", + GCP_ERROR_INFO().WithMetadata("operation", operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation( + cq, std::move(context), std::move(options), request); + }, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation( + cq, std::move(context), std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse, + polling_policy(*current), __func__); +} + StatusOr GoldenThingAdminConnectionImpl::GetDatabase(google::test::admin::database::v1::GetDatabaseRequest const& request) { auto current = google::cloud::internal::SaveCurrentOptions(); @@ -173,6 +218,51 @@ GoldenThingAdminConnectionImpl::UpdateDatabaseDdl(google::test::admin::database: polling_policy(*current), __func__); } +StatusOr +GoldenThingAdminConnectionImpl::UpdateDatabaseDdl(ExperimentalTag, + NoAwaitTag, google::test::admin::database::v1::UpdateDatabaseDdlRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UpdateDatabaseDdl(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::test::admin::database::v1::UpdateDatabaseDdlRequest const& request) { + return stub_->UpdateDatabaseDdl(context, options, request); + }, + *current, request, __func__); +} + +future> +GoldenThingAdminConnectionImpl::UpdateDatabaseDdl(ExperimentalTag, + google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata().Is()) { + return make_ready_future>( + internal::InvalidArgumentError("operation does not correspond to UpdateDatabaseDdl", + GCP_ERROR_INFO().WithMetadata("operation", operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation( + cq, std::move(context), std::move(options), request); + }, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation( + cq, std::move(context), std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata, + polling_policy(*current), __func__); +} + Status GoldenThingAdminConnectionImpl::DropDatabase(google::test::admin::database::v1::DropDatabaseRequest const& request) { auto current = google::cloud::internal::SaveCurrentOptions(); @@ -272,6 +362,51 @@ GoldenThingAdminConnectionImpl::CreateBackup(google::test::admin::database::v1:: polling_policy(*current), __func__); } +StatusOr +GoldenThingAdminConnectionImpl::CreateBackup(ExperimentalTag, + NoAwaitTag, google::test::admin::database::v1::CreateBackupRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateBackup(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::test::admin::database::v1::CreateBackupRequest const& request) { + return stub_->CreateBackup(context, options, request); + }, + *current, request, __func__); +} + +future> +GoldenThingAdminConnectionImpl::CreateBackup(ExperimentalTag, + google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata().Is()) { + return make_ready_future>( + internal::InvalidArgumentError("operation does not correspond to CreateBackup", + GCP_ERROR_INFO().WithMetadata("operation", operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation( + cq, std::move(context), std::move(options), request); + }, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation( + cq, std::move(context), std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse, + polling_policy(*current), __func__); +} + StatusOr GoldenThingAdminConnectionImpl::GetBackup(google::test::admin::database::v1::GetBackupRequest const& request) { auto current = google::cloud::internal::SaveCurrentOptions(); @@ -373,6 +508,51 @@ GoldenThingAdminConnectionImpl::RestoreDatabase(google::test::admin::database::v polling_policy(*current), __func__); } +StatusOr +GoldenThingAdminConnectionImpl::RestoreDatabase(ExperimentalTag, + NoAwaitTag, google::test::admin::database::v1::RestoreDatabaseRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->RestoreDatabase(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::test::admin::database::v1::RestoreDatabaseRequest const& request) { + return stub_->RestoreDatabase(context, options, request); + }, + *current, request, __func__); +} + +future> +GoldenThingAdminConnectionImpl::RestoreDatabase(ExperimentalTag, + google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata().Is()) { + return make_ready_future>( + internal::InvalidArgumentError("operation does not correspond to RestoreDatabase", + GCP_ERROR_INFO().WithMetadata("operation", operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation( + cq, std::move(context), std::move(options), request); + }, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation( + cq, std::move(context), std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse, + polling_policy(*current), __func__); +} + StreamRange GoldenThingAdminConnectionImpl::ListDatabaseOperations(google::test::admin::database::v1::ListDatabaseOperationsRequest request) { request.clear_page_token(); @@ -463,6 +643,51 @@ GoldenThingAdminConnectionImpl::LongRunningWithoutRouting(google::test::admin::d polling_policy(*current), __func__); } +StatusOr +GoldenThingAdminConnectionImpl::LongRunningWithoutRouting(ExperimentalTag, + NoAwaitTag, google::test::admin::database::v1::RestoreDatabaseRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->LongRunningWithoutRouting(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::test::admin::database::v1::RestoreDatabaseRequest const& request) { + return stub_->LongRunningWithoutRouting(context, options, request); + }, + *current, request, __func__); +} + +future> +GoldenThingAdminConnectionImpl::LongRunningWithoutRouting(ExperimentalTag, + google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata().Is()) { + return make_ready_future>( + internal::InvalidArgumentError("operation does not correspond to LongRunningWithoutRouting", + GCP_ERROR_INFO().WithMetadata("operation", operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation( + cq, std::move(context), std::move(options), request); + }, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation( + cq, std::move(context), std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse, + polling_policy(*current), __func__); +} + future> GoldenThingAdminConnectionImpl::AsyncGetDatabase(google::test::admin::database::v1::GetDatabaseRequest const& request) { auto current = google::cloud::internal::SaveCurrentOptions(); diff --git a/generator/integration_tests/golden/v1/internal/golden_thing_admin_connection_impl.h b/generator/integration_tests/golden/v1/internal/golden_thing_admin_connection_impl.h index d2f423a6dc0d2..9ce1c1f9b1c86 100644 --- a/generator/integration_tests/golden/v1/internal/golden_thing_admin_connection_impl.h +++ b/generator/integration_tests/golden/v1/internal/golden_thing_admin_connection_impl.h @@ -58,12 +58,28 @@ class GoldenThingAdminConnectionImpl future> CreateDatabase(google::test::admin::database::v1::CreateDatabaseRequest const& request) override; + StatusOr + CreateDatabase(ExperimentalTag, NoAwaitTag, + google::test::admin::database::v1::CreateDatabaseRequest const& request) override; + + future> + CreateDatabase(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetDatabase(google::test::admin::database::v1::GetDatabaseRequest const& request) override; future> UpdateDatabaseDdl(google::test::admin::database::v1::UpdateDatabaseDdlRequest const& request) override; + StatusOr + UpdateDatabaseDdl(ExperimentalTag, NoAwaitTag, + google::test::admin::database::v1::UpdateDatabaseDdlRequest const& request) override; + + future> + UpdateDatabaseDdl(ExperimentalTag, + google::longrunning::Operation const& operation) override; + Status DropDatabase(google::test::admin::database::v1::DropDatabaseRequest const& request) override; @@ -82,6 +98,14 @@ class GoldenThingAdminConnectionImpl future> CreateBackup(google::test::admin::database::v1::CreateBackupRequest const& request) override; + StatusOr + CreateBackup(ExperimentalTag, NoAwaitTag, + google::test::admin::database::v1::CreateBackupRequest const& request) override; + + future> + CreateBackup(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetBackup(google::test::admin::database::v1::GetBackupRequest const& request) override; @@ -97,6 +121,14 @@ class GoldenThingAdminConnectionImpl future> RestoreDatabase(google::test::admin::database::v1::RestoreDatabaseRequest const& request) override; + StatusOr + RestoreDatabase(ExperimentalTag, NoAwaitTag, + google::test::admin::database::v1::RestoreDatabaseRequest const& request) override; + + future> + RestoreDatabase(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListDatabaseOperations(google::test::admin::database::v1::ListDatabaseOperationsRequest request) override; @@ -106,6 +138,14 @@ class GoldenThingAdminConnectionImpl future> LongRunningWithoutRouting(google::test::admin::database::v1::RestoreDatabaseRequest const& request) override; + StatusOr + LongRunningWithoutRouting(ExperimentalTag, NoAwaitTag, + google::test::admin::database::v1::RestoreDatabaseRequest const& request) override; + + future> + LongRunningWithoutRouting(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> AsyncGetDatabase(google::test::admin::database::v1::GetDatabaseRequest const& request) override; diff --git a/generator/integration_tests/golden/v1/internal/golden_thing_admin_rest_connection_impl.cc b/generator/integration_tests/golden/v1/internal/golden_thing_admin_rest_connection_impl.cc index 47db4d0af2cd2..11c2becd1c6e7 100644 --- a/generator/integration_tests/golden/v1/internal/golden_thing_admin_rest_connection_impl.cc +++ b/generator/integration_tests/golden/v1/internal/golden_thing_admin_rest_connection_impl.cc @@ -104,6 +104,49 @@ GoldenThingAdminRestConnectionImpl::CreateDatabase(google::test::admin::database } +StatusOr +GoldenThingAdminRestConnectionImpl::CreateDatabase(ExperimentalTag, NoAwaitTag, google::test::admin::database::v1::CreateDatabaseRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateDatabase(request), + [this](rest_internal::RestContext& rest_context, + Options const& options, google::test::admin::database::v1::CreateDatabaseRequest const& request) { + return stub_->CreateDatabase(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +GoldenThingAdminRestConnectionImpl::CreateDatabase(ExperimentalTag, + google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata().Is()) { + return make_ready_future>( + internal::InvalidArgumentError("operation does not correspond to CreateDatabase", + GCP_ERROR_INFO().WithMetadata("operation", operation.metadata().DebugString()))); + } + return rest_internal::AsyncRestAwaitLongRunningOperation( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation( + cq, std::move(context), std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation( + cq, std::move(context), std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse, + polling_policy(*current), __func__); + +} + StatusOr GoldenThingAdminRestConnectionImpl::GetDatabase(google::test::admin::database::v1::GetDatabaseRequest const& request) { auto current = google::cloud::internal::SaveCurrentOptions(); @@ -149,6 +192,49 @@ GoldenThingAdminRestConnectionImpl::UpdateDatabaseDdl(google::test::admin::datab } +StatusOr +GoldenThingAdminRestConnectionImpl::UpdateDatabaseDdl(ExperimentalTag, NoAwaitTag, google::test::admin::database::v1::UpdateDatabaseDdlRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UpdateDatabaseDdl(request), + [this](rest_internal::RestContext& rest_context, + Options const& options, google::test::admin::database::v1::UpdateDatabaseDdlRequest const& request) { + return stub_->UpdateDatabaseDdl(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +GoldenThingAdminRestConnectionImpl::UpdateDatabaseDdl(ExperimentalTag, + google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata().Is()) { + return make_ready_future>( + internal::InvalidArgumentError("operation does not correspond to UpdateDatabaseDdl", + GCP_ERROR_INFO().WithMetadata("operation", operation.metadata().DebugString()))); + } + return rest_internal::AsyncRestAwaitLongRunningOperation( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation( + cq, std::move(context), std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation( + cq, std::move(context), std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata, + polling_policy(*current), __func__); + +} + Status GoldenThingAdminRestConnectionImpl::DropDatabase(google::test::admin::database::v1::DropDatabaseRequest const& request) { auto current = google::cloud::internal::SaveCurrentOptions(); @@ -246,6 +332,49 @@ GoldenThingAdminRestConnectionImpl::CreateBackup(google::test::admin::database:: } +StatusOr +GoldenThingAdminRestConnectionImpl::CreateBackup(ExperimentalTag, NoAwaitTag, google::test::admin::database::v1::CreateBackupRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateBackup(request), + [this](rest_internal::RestContext& rest_context, + Options const& options, google::test::admin::database::v1::CreateBackupRequest const& request) { + return stub_->CreateBackup(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +GoldenThingAdminRestConnectionImpl::CreateBackup(ExperimentalTag, + google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata().Is()) { + return make_ready_future>( + internal::InvalidArgumentError("operation does not correspond to CreateBackup", + GCP_ERROR_INFO().WithMetadata("operation", operation.metadata().DebugString()))); + } + return rest_internal::AsyncRestAwaitLongRunningOperation( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation( + cq, std::move(context), std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation( + cq, std::move(context), std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse, + polling_policy(*current), __func__); + +} + StatusOr GoldenThingAdminRestConnectionImpl::GetBackup(google::test::admin::database::v1::GetBackupRequest const& request) { auto current = google::cloud::internal::SaveCurrentOptions(); @@ -346,6 +475,49 @@ GoldenThingAdminRestConnectionImpl::RestoreDatabase(google::test::admin::databas } +StatusOr +GoldenThingAdminRestConnectionImpl::RestoreDatabase(ExperimentalTag, NoAwaitTag, google::test::admin::database::v1::RestoreDatabaseRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->RestoreDatabase(request), + [this](rest_internal::RestContext& rest_context, + Options const& options, google::test::admin::database::v1::RestoreDatabaseRequest const& request) { + return stub_->RestoreDatabase(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +GoldenThingAdminRestConnectionImpl::RestoreDatabase(ExperimentalTag, + google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata().Is()) { + return make_ready_future>( + internal::InvalidArgumentError("operation does not correspond to RestoreDatabase", + GCP_ERROR_INFO().WithMetadata("operation", operation.metadata().DebugString()))); + } + return rest_internal::AsyncRestAwaitLongRunningOperation( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation( + cq, std::move(context), std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation( + cq, std::move(context), std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse, + polling_policy(*current), __func__); + +} + StreamRange GoldenThingAdminRestConnectionImpl::ListDatabaseOperations(google::test::admin::database::v1::ListDatabaseOperationsRequest request) { request.clear_page_token(); diff --git a/generator/integration_tests/golden/v1/internal/golden_thing_admin_rest_connection_impl.h b/generator/integration_tests/golden/v1/internal/golden_thing_admin_rest_connection_impl.h index c9fd416397207..9f0bc0cb4fc60 100644 --- a/generator/integration_tests/golden/v1/internal/golden_thing_admin_rest_connection_impl.h +++ b/generator/integration_tests/golden/v1/internal/golden_thing_admin_rest_connection_impl.h @@ -56,12 +56,28 @@ class GoldenThingAdminRestConnectionImpl future> CreateDatabase(google::test::admin::database::v1::CreateDatabaseRequest const& request) override; + StatusOr + CreateDatabase(ExperimentalTag, NoAwaitTag, + google::test::admin::database::v1::CreateDatabaseRequest const& request) override; + + future> + CreateDatabase(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetDatabase(google::test::admin::database::v1::GetDatabaseRequest const& request) override; future> UpdateDatabaseDdl(google::test::admin::database::v1::UpdateDatabaseDdlRequest const& request) override; + StatusOr + UpdateDatabaseDdl(ExperimentalTag, NoAwaitTag, + google::test::admin::database::v1::UpdateDatabaseDdlRequest const& request) override; + + future> + UpdateDatabaseDdl(ExperimentalTag, + google::longrunning::Operation const& operation) override; + Status DropDatabase(google::test::admin::database::v1::DropDatabaseRequest const& request) override; @@ -80,6 +96,14 @@ class GoldenThingAdminRestConnectionImpl future> CreateBackup(google::test::admin::database::v1::CreateBackupRequest const& request) override; + StatusOr + CreateBackup(ExperimentalTag, NoAwaitTag, + google::test::admin::database::v1::CreateBackupRequest const& request) override; + + future> + CreateBackup(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetBackup(google::test::admin::database::v1::GetBackupRequest const& request) override; @@ -95,6 +119,14 @@ class GoldenThingAdminRestConnectionImpl future> RestoreDatabase(google::test::admin::database::v1::RestoreDatabaseRequest const& request) override; + StatusOr + RestoreDatabase(ExperimentalTag, NoAwaitTag, + google::test::admin::database::v1::RestoreDatabaseRequest const& request) override; + + future> + RestoreDatabase(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListDatabaseOperations(google::test::admin::database::v1::ListDatabaseOperationsRequest request) override; diff --git a/generator/integration_tests/golden/v1/internal/golden_thing_admin_tracing_connection.cc b/generator/integration_tests/golden/v1/internal/golden_thing_admin_tracing_connection.cc index 9c1e71be804d8..14bca9e584b3f 100644 --- a/generator/integration_tests/golden/v1/internal/golden_thing_admin_tracing_connection.cc +++ b/generator/integration_tests/golden/v1/internal/golden_thing_admin_tracing_connection.cc @@ -50,6 +50,26 @@ GoldenThingAdminTracingConnection::CreateDatabase(google::test::admin::database: return internal::EndSpan(std::move(span), child_->CreateDatabase(request)); } +StatusOr +GoldenThingAdminTracingConnection::CreateDatabase(ExperimentalTag, + NoAwaitTag, google::test::admin::database::v1::CreateDatabaseRequest const& request) { + auto span = internal::MakeSpan( + "golden_v1::GoldenThingAdminConnection::CreateDatabase"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan(*span, child_->CreateDatabase( + ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +GoldenThingAdminTracingConnection::CreateDatabase(ExperimentalTag, + google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "golden_v1::GoldenThingAdminConnection::CreateDatabase"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->CreateDatabase(ExperimentalTag{}, operation)); +} + StatusOr GoldenThingAdminTracingConnection::GetDatabase(google::test::admin::database::v1::GetDatabaseRequest const& request) { auto span = internal::MakeSpan("golden_v1::GoldenThingAdminConnection::GetDatabase"); @@ -65,6 +85,26 @@ GoldenThingAdminTracingConnection::UpdateDatabaseDdl(google::test::admin::databa return internal::EndSpan(std::move(span), child_->UpdateDatabaseDdl(request)); } +StatusOr +GoldenThingAdminTracingConnection::UpdateDatabaseDdl(ExperimentalTag, + NoAwaitTag, google::test::admin::database::v1::UpdateDatabaseDdlRequest const& request) { + auto span = internal::MakeSpan( + "golden_v1::GoldenThingAdminConnection::UpdateDatabaseDdl"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan(*span, child_->UpdateDatabaseDdl( + ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +GoldenThingAdminTracingConnection::UpdateDatabaseDdl(ExperimentalTag, + google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "golden_v1::GoldenThingAdminConnection::UpdateDatabaseDdl"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->UpdateDatabaseDdl(ExperimentalTag{}, operation)); +} + Status GoldenThingAdminTracingConnection::DropDatabase(google::test::admin::database::v1::DropDatabaseRequest const& request) { auto span = internal::MakeSpan("golden_v1::GoldenThingAdminConnection::DropDatabase"); @@ -108,6 +148,26 @@ GoldenThingAdminTracingConnection::CreateBackup(google::test::admin::database::v return internal::EndSpan(std::move(span), child_->CreateBackup(request)); } +StatusOr +GoldenThingAdminTracingConnection::CreateBackup(ExperimentalTag, + NoAwaitTag, google::test::admin::database::v1::CreateBackupRequest const& request) { + auto span = internal::MakeSpan( + "golden_v1::GoldenThingAdminConnection::CreateBackup"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan(*span, child_->CreateBackup( + ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +GoldenThingAdminTracingConnection::CreateBackup(ExperimentalTag, + google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "golden_v1::GoldenThingAdminConnection::CreateBackup"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->CreateBackup(ExperimentalTag{}, operation)); +} + StatusOr GoldenThingAdminTracingConnection::GetBackup(google::test::admin::database::v1::GetBackupRequest const& request) { auto span = internal::MakeSpan("golden_v1::GoldenThingAdminConnection::GetBackup"); @@ -146,6 +206,26 @@ GoldenThingAdminTracingConnection::RestoreDatabase(google::test::admin::database return internal::EndSpan(std::move(span), child_->RestoreDatabase(request)); } +StatusOr +GoldenThingAdminTracingConnection::RestoreDatabase(ExperimentalTag, + NoAwaitTag, google::test::admin::database::v1::RestoreDatabaseRequest const& request) { + auto span = internal::MakeSpan( + "golden_v1::GoldenThingAdminConnection::RestoreDatabase"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan(*span, child_->RestoreDatabase( + ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +GoldenThingAdminTracingConnection::RestoreDatabase(ExperimentalTag, + google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "golden_v1::GoldenThingAdminConnection::RestoreDatabase"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->RestoreDatabase(ExperimentalTag{}, operation)); +} + StreamRange GoldenThingAdminTracingConnection::ListDatabaseOperations(google::test::admin::database::v1::ListDatabaseOperationsRequest request) { auto span = internal::MakeSpan("golden_v1::GoldenThingAdminConnection::ListDatabaseOperations"); @@ -172,6 +252,26 @@ GoldenThingAdminTracingConnection::LongRunningWithoutRouting(google::test::admin return internal::EndSpan(std::move(span), child_->LongRunningWithoutRouting(request)); } +StatusOr +GoldenThingAdminTracingConnection::LongRunningWithoutRouting(ExperimentalTag, + NoAwaitTag, google::test::admin::database::v1::RestoreDatabaseRequest const& request) { + auto span = internal::MakeSpan( + "golden_v1::GoldenThingAdminConnection::LongRunningWithoutRouting"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan(*span, child_->LongRunningWithoutRouting( + ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +GoldenThingAdminTracingConnection::LongRunningWithoutRouting(ExperimentalTag, + google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "golden_v1::GoldenThingAdminConnection::LongRunningWithoutRouting"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->LongRunningWithoutRouting(ExperimentalTag{}, operation)); +} + future> GoldenThingAdminTracingConnection::AsyncGetDatabase(google::test::admin::database::v1::GetDatabaseRequest const& request) { auto span = internal::MakeSpan( diff --git a/generator/integration_tests/golden/v1/internal/golden_thing_admin_tracing_connection.h b/generator/integration_tests/golden/v1/internal/golden_thing_admin_tracing_connection.h index c67fbfcb73022..81ba3c19c51e3 100644 --- a/generator/integration_tests/golden/v1/internal/golden_thing_admin_tracing_connection.h +++ b/generator/integration_tests/golden/v1/internal/golden_thing_admin_tracing_connection.h @@ -46,12 +46,28 @@ class GoldenThingAdminTracingConnection future> CreateDatabase(google::test::admin::database::v1::CreateDatabaseRequest const& request) override; + StatusOr + CreateDatabase(ExperimentalTag, NoAwaitTag, + google::test::admin::database::v1::CreateDatabaseRequest const& request) override; + + future> + CreateDatabase(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetDatabase(google::test::admin::database::v1::GetDatabaseRequest const& request) override; future> UpdateDatabaseDdl(google::test::admin::database::v1::UpdateDatabaseDdlRequest const& request) override; + StatusOr + UpdateDatabaseDdl(ExperimentalTag, NoAwaitTag, + google::test::admin::database::v1::UpdateDatabaseDdlRequest const& request) override; + + future> + UpdateDatabaseDdl(ExperimentalTag, + google::longrunning::Operation const& operation) override; + Status DropDatabase(google::test::admin::database::v1::DropDatabaseRequest const& request) override; @@ -70,6 +86,14 @@ class GoldenThingAdminTracingConnection future> CreateBackup(google::test::admin::database::v1::CreateBackupRequest const& request) override; + StatusOr + CreateBackup(ExperimentalTag, NoAwaitTag, + google::test::admin::database::v1::CreateBackupRequest const& request) override; + + future> + CreateBackup(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetBackup(google::test::admin::database::v1::GetBackupRequest const& request) override; @@ -85,6 +109,14 @@ class GoldenThingAdminTracingConnection future> RestoreDatabase(google::test::admin::database::v1::RestoreDatabaseRequest const& request) override; + StatusOr + RestoreDatabase(ExperimentalTag, NoAwaitTag, + google::test::admin::database::v1::RestoreDatabaseRequest const& request) override; + + future> + RestoreDatabase(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListDatabaseOperations(google::test::admin::database::v1::ListDatabaseOperationsRequest request) override; @@ -94,6 +126,14 @@ class GoldenThingAdminTracingConnection future> LongRunningWithoutRouting(google::test::admin::database::v1::RestoreDatabaseRequest const& request) override; + StatusOr + LongRunningWithoutRouting(ExperimentalTag, NoAwaitTag, + google::test::admin::database::v1::RestoreDatabaseRequest const& request) override; + + future> + LongRunningWithoutRouting(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> AsyncGetDatabase(google::test::admin::database::v1::GetDatabaseRequest const& request) override; diff --git a/generator/integration_tests/golden/v1/internal/request_id_connection_impl.cc b/generator/integration_tests/golden/v1/internal/request_id_connection_impl.cc index 76f3adb4c8ad0..89a6341ef2477 100644 --- a/generator/integration_tests/golden/v1/internal/request_id_connection_impl.cc +++ b/generator/integration_tests/golden/v1/internal/request_id_connection_impl.cc @@ -118,6 +118,51 @@ RequestIdServiceConnectionImpl::RenameFoo(google::test::requestid::v1::RenameFoo polling_policy(*current), __func__); } +StatusOr +RequestIdServiceConnectionImpl::RenameFoo(ExperimentalTag, + NoAwaitTag, google::test::requestid::v1::RenameFooRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->RenameFoo(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::test::requestid::v1::RenameFooRequest const& request) { + return stub_->RenameFoo(context, options, request); + }, + *current, request, __func__); +} + +future> +RequestIdServiceConnectionImpl::RenameFoo(ExperimentalTag, + google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata().Is()) { + return make_ready_future>( + internal::InvalidArgumentError("operation does not correspond to RenameFoo", + GCP_ERROR_INFO().WithMetadata("operation", operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation( + cq, std::move(context), std::move(options), request); + }, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation( + cq, std::move(context), std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse, + polling_policy(*current), __func__); +} + StreamRange RequestIdServiceConnectionImpl::ListFoos(google::test::requestid::v1::ListFoosRequest request) { request.clear_page_token(); diff --git a/generator/integration_tests/golden/v1/internal/request_id_connection_impl.h b/generator/integration_tests/golden/v1/internal/request_id_connection_impl.h index 44b0f333da6b5..f8e8df54efd51 100644 --- a/generator/integration_tests/golden/v1/internal/request_id_connection_impl.h +++ b/generator/integration_tests/golden/v1/internal/request_id_connection_impl.h @@ -59,6 +59,14 @@ class RequestIdServiceConnectionImpl future> RenameFoo(google::test::requestid::v1::RenameFooRequest const& request) override; + StatusOr + RenameFoo(ExperimentalTag, NoAwaitTag, + google::test::requestid::v1::RenameFooRequest const& request) override; + + future> + RenameFoo(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListFoos(google::test::requestid::v1::ListFoosRequest request) override; diff --git a/generator/integration_tests/golden/v1/internal/request_id_tracing_connection.cc b/generator/integration_tests/golden/v1/internal/request_id_tracing_connection.cc index 9762d682490c1..a419a1b541edc 100644 --- a/generator/integration_tests/golden/v1/internal/request_id_tracing_connection.cc +++ b/generator/integration_tests/golden/v1/internal/request_id_tracing_connection.cc @@ -48,6 +48,26 @@ RequestIdServiceTracingConnection::RenameFoo(google::test::requestid::v1::Rename return internal::EndSpan(std::move(span), child_->RenameFoo(request)); } +StatusOr +RequestIdServiceTracingConnection::RenameFoo(ExperimentalTag, + NoAwaitTag, google::test::requestid::v1::RenameFooRequest const& request) { + auto span = internal::MakeSpan( + "golden_v1::RequestIdServiceConnection::RenameFoo"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan(*span, child_->RenameFoo( + ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +RequestIdServiceTracingConnection::RenameFoo(ExperimentalTag, + google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "golden_v1::RequestIdServiceConnection::RenameFoo"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->RenameFoo(ExperimentalTag{}, operation)); +} + StreamRange RequestIdServiceTracingConnection::ListFoos(google::test::requestid::v1::ListFoosRequest request) { auto span = internal::MakeSpan("golden_v1::RequestIdServiceConnection::ListFoos"); diff --git a/generator/integration_tests/golden/v1/internal/request_id_tracing_connection.h b/generator/integration_tests/golden/v1/internal/request_id_tracing_connection.h index ad897834d18a1..0730ba879b2f8 100644 --- a/generator/integration_tests/golden/v1/internal/request_id_tracing_connection.h +++ b/generator/integration_tests/golden/v1/internal/request_id_tracing_connection.h @@ -46,6 +46,14 @@ class RequestIdServiceTracingConnection future> RenameFoo(google::test::requestid::v1::RenameFooRequest const& request) override; + StatusOr + RenameFoo(ExperimentalTag, NoAwaitTag, + google::test::requestid::v1::RenameFooRequest const& request) override; + + future> + RenameFoo(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListFoos(google::test::requestid::v1::ListFoosRequest request) override; diff --git a/generator/integration_tests/golden/v1/mocks/mock_golden_thing_admin_connection.h b/generator/integration_tests/golden/v1/mocks/mock_golden_thing_admin_connection.h index ec3f19a6e9302..345ce4ec11d85 100644 --- a/generator/integration_tests/golden/v1/mocks/mock_golden_thing_admin_connection.h +++ b/generator/integration_tests/golden/v1/mocks/mock_golden_thing_admin_connection.h @@ -54,6 +54,14 @@ class MockGoldenThingAdminConnection : public golden_v1::GoldenThingAdminConnect CreateDatabase, (google::test::admin::database::v1::CreateDatabaseRequest const& request), (override)); + MOCK_METHOD(StatusOr, + CreateDatabase, (ExperimentalTag, NoAwaitTag, + google::test::admin::database::v1::CreateDatabaseRequest const& request), (override)); + + MOCK_METHOD(future>, + CreateDatabase, (ExperimentalTag, + google::longrunning::Operation const& operation), (override)); + MOCK_METHOD(StatusOr, GetDatabase, (google::test::admin::database::v1::GetDatabaseRequest const& request), (override)); @@ -62,6 +70,14 @@ class MockGoldenThingAdminConnection : public golden_v1::GoldenThingAdminConnect UpdateDatabaseDdl, (google::test::admin::database::v1::UpdateDatabaseDdlRequest const& request), (override)); + MOCK_METHOD(StatusOr, + UpdateDatabaseDdl, (ExperimentalTag, NoAwaitTag, + google::test::admin::database::v1::UpdateDatabaseDdlRequest const& request), (override)); + + MOCK_METHOD(future>, + UpdateDatabaseDdl, (ExperimentalTag, + google::longrunning::Operation const& operation), (override)); + MOCK_METHOD(Status, DropDatabase, (google::test::admin::database::v1::DropDatabaseRequest const& request), (override)); @@ -86,6 +102,14 @@ class MockGoldenThingAdminConnection : public golden_v1::GoldenThingAdminConnect CreateBackup, (google::test::admin::database::v1::CreateBackupRequest const& request), (override)); + MOCK_METHOD(StatusOr, + CreateBackup, (ExperimentalTag, NoAwaitTag, + google::test::admin::database::v1::CreateBackupRequest const& request), (override)); + + MOCK_METHOD(future>, + CreateBackup, (ExperimentalTag, + google::longrunning::Operation const& operation), (override)); + MOCK_METHOD(StatusOr, GetBackup, (google::test::admin::database::v1::GetBackupRequest const& request), (override)); @@ -106,6 +130,14 @@ class MockGoldenThingAdminConnection : public golden_v1::GoldenThingAdminConnect RestoreDatabase, (google::test::admin::database::v1::RestoreDatabaseRequest const& request), (override)); + MOCK_METHOD(StatusOr, + RestoreDatabase, (ExperimentalTag, NoAwaitTag, + google::test::admin::database::v1::RestoreDatabaseRequest const& request), (override)); + + MOCK_METHOD(future>, + RestoreDatabase, (ExperimentalTag, + google::longrunning::Operation const& operation), (override)); + MOCK_METHOD((StreamRange), ListDatabaseOperations, (google::test::admin::database::v1::ListDatabaseOperationsRequest request), (override)); @@ -118,6 +150,14 @@ class MockGoldenThingAdminConnection : public golden_v1::GoldenThingAdminConnect LongRunningWithoutRouting, (google::test::admin::database::v1::RestoreDatabaseRequest const& request), (override)); + MOCK_METHOD(StatusOr, + LongRunningWithoutRouting, (ExperimentalTag, NoAwaitTag, + google::test::admin::database::v1::RestoreDatabaseRequest const& request), (override)); + + MOCK_METHOD(future>, + LongRunningWithoutRouting, (ExperimentalTag, + google::longrunning::Operation const& operation), (override)); + MOCK_METHOD(future>, AsyncGetDatabase, (google::test::admin::database::v1::GetDatabaseRequest const& request), (override)); diff --git a/generator/integration_tests/golden/v1/mocks/mock_request_id_connection.h b/generator/integration_tests/golden/v1/mocks/mock_request_id_connection.h index 28a47468ab47b..d96361b7df627 100644 --- a/generator/integration_tests/golden/v1/mocks/mock_request_id_connection.h +++ b/generator/integration_tests/golden/v1/mocks/mock_request_id_connection.h @@ -54,6 +54,14 @@ class MockRequestIdServiceConnection : public golden_v1::RequestIdServiceConnect RenameFoo, (google::test::requestid::v1::RenameFooRequest const& request), (override)); + MOCK_METHOD(StatusOr, + RenameFoo, (ExperimentalTag, NoAwaitTag, + google::test::requestid::v1::RenameFooRequest const& request), (override)); + + MOCK_METHOD(future>, + RenameFoo, (ExperimentalTag, + google::longrunning::Operation const& operation), (override)); + MOCK_METHOD((StreamRange), ListFoos, (google::test::requestid::v1::ListFoosRequest request), (override)); diff --git a/generator/integration_tests/golden/v1/request_id_connection.cc b/generator/integration_tests/golden/v1/request_id_connection.cc index 522ae7cc34ed9..e816ceafdbe51 100644 --- a/generator/integration_tests/golden/v1/request_id_connection.cc +++ b/generator/integration_tests/golden/v1/request_id_connection.cc @@ -52,6 +52,22 @@ RequestIdServiceConnection::RenameFoo( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +RequestIdServiceConnection::RenameFoo( + ExperimentalTag, NoAwaitTag, + google::test::requestid::v1::RenameFooRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +RequestIdServiceConnection::RenameFoo( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StreamRange RequestIdServiceConnection::ListFoos( google::test::requestid::v1::ListFoosRequest) { // NOLINT(performance-unnecessary-value-param) return google::cloud::internal::MakeUnimplementedPaginationRange< diff --git a/generator/integration_tests/golden/v1/request_id_connection.h b/generator/integration_tests/golden/v1/request_id_connection.h index 74e6131796d58..7fa872016c017 100644 --- a/generator/integration_tests/golden/v1/request_id_connection.h +++ b/generator/integration_tests/golden/v1/request_id_connection.h @@ -22,8 +22,10 @@ #include "generator/integration_tests/golden/v1/internal/request_id_retry_traits.h" #include "generator/integration_tests/golden/v1/request_id_connection_idempotency_policy.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/internal/retry_policy_impl.h" +#include "google/cloud/no_await_tag.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" #include "google/cloud/status_or.h" @@ -184,6 +186,12 @@ class RequestIdServiceConnection { virtual future> RenameFoo(google::test::requestid::v1::RenameFooRequest const& request); + virtual StatusOr + RenameFoo(ExperimentalTag, NoAwaitTag, google::test::requestid::v1::RenameFooRequest const& request); + + virtual future> + RenameFoo(ExperimentalTag, google::longrunning::Operation const& operation); + virtual StreamRange ListFoos(google::test::requestid::v1::ListFoosRequest request); diff --git a/generator/integration_tests/tests/golden_thing_admin_client_test.cc b/generator/integration_tests/tests/golden_thing_admin_client_test.cc index 1220639d6d490..776f875148671 100644 --- a/generator/integration_tests/tests/golden_thing_admin_client_test.cc +++ b/generator/integration_tests/tests/golden_thing_admin_client_test.cc @@ -36,6 +36,7 @@ namespace { using ::google::cloud::testing_util::IsOk; using ::google::cloud::testing_util::IsProtoEqual; using ::google::cloud::testing_util::StatusIs; +using ::testing::_; using ::testing::Contains; using ::testing::ElementsAre; using ::testing::HasSubstr; @@ -151,7 +152,7 @@ TEST(GoldenThingAdminClientTest, CreateDatabase) { .set("override-me") .set({"override-me"}); }); - EXPECT_CALL(*mock, CreateDatabase) + EXPECT_CALL(*mock, CreateDatabase(_)) .Times(2) .WillRepeatedly( [expected_instance]( @@ -257,7 +258,7 @@ TEST(GoldenThingAdminClientTest, UpdateDatabase) { EXPECT_CALL(*mock, options).WillRepeatedly([] { return golden_v1_internal::GoldenThingAdminDefaultOptions(Options{}); }); - EXPECT_CALL(*mock, UpdateDatabaseDdl) + EXPECT_CALL(*mock, UpdateDatabaseDdl(_)) .Times(2) .WillRepeatedly([expected_database]( ::google::test::admin::database::v1:: @@ -669,7 +670,7 @@ TEST(GoldenThingAdminClientTest, CreateBackup) { EXPECT_CALL(*mock, options).WillRepeatedly([] { return golden_v1_internal::GoldenThingAdminDefaultOptions(Options{}); }); - EXPECT_CALL(*mock, CreateBackup) + EXPECT_CALL(*mock, CreateBackup(_)) .Times(2) .WillRepeatedly( [expected_database, expire_time, backup_id, expected_backup_name]( @@ -875,7 +876,7 @@ TEST(GoldenThingAdminClientTest, RestoreDatabase) { EXPECT_CALL(*mock, options).WillRepeatedly([] { return golden_v1_internal::GoldenThingAdminDefaultOptions(Options{}); }); - EXPECT_CALL(*mock, RestoreDatabase) + EXPECT_CALL(*mock, RestoreDatabase(_)) .Times(2) .WillRepeatedly([expected_backup_name, expected_database, expected_instance](::google::test::admin::database::v1:: diff --git a/generator/integration_tests/tests/golden_thing_admin_connection_test.cc b/generator/integration_tests/tests/golden_thing_admin_connection_test.cc index 280d3444a52f9..5ddcec8bd6911 100644 --- a/generator/integration_tests/tests/golden_thing_admin_connection_test.cc +++ b/generator/integration_tests/tests/golden_thing_admin_connection_test.cc @@ -48,6 +48,7 @@ using ::testing::AtLeast; using ::testing::Contains; using ::testing::ContainsRegex; using ::testing::ElementsAre; +using ::testing::Eq; using ::testing::HasSubstr; using ::testing::Pair; using ::testing::Return; @@ -242,6 +243,44 @@ TEST(GoldenThingAdminConnectionTest, CreateDatabaseCancel) { EXPECT_THAT(db, StatusIs(StatusCode::kCancelled)); } +TEST(GoldenThingAdminConnectionTest, CreateDatabaseStartAwait) { + auto mock = std::make_shared(); + google::longrunning::Operation expected_operation; + expected_operation.set_name("test-operation-name"); + google::test::admin::database::v1::CreateDatabaseMetadata metadata; + expected_operation.mutable_metadata()->PackFrom(metadata); + + EXPECT_CALL(*mock, CreateDatabase(_, _, _)).WillOnce([&] { + return make_status_or(expected_operation); + }); + EXPECT_CALL(*mock, AsyncGetOperation) + .WillOnce([expected_operation]( + CompletionQueue&, auto, auto, + google::longrunning::GetOperationRequest const& r) { + EXPECT_EQ(expected_operation.name(), r.name()); + google::longrunning::Operation op; + op.set_name(r.name()); + op.set_done(true); + ::google::test::admin::database::v1::Database database; + database.set_name("test-database"); + op.mutable_response()->PackFrom(database); + return make_ready_future(make_status_or(op)); + }); + + auto conn = CreateTestingConnection(std::move(mock)); + ::google::test::admin::database::v1::CreateDatabaseRequest dbase; + google::cloud::internal::OptionsSpan span( + google::cloud::internal::MergeOptions(Options{}, conn->options())); + // TODO(#14344): Remove experimental tag. + auto operation = conn->CreateDatabase(ExperimentalTag{}, NoAwaitTag{}, dbase); + ASSERT_STATUS_OK(operation); + EXPECT_THAT(operation->name(), Eq(expected_operation.name())); + + auto database = conn->CreateDatabase(ExperimentalTag{}, *operation).get(); + ASSERT_STATUS_OK(database); + EXPECT_EQ("test-database", database->name()); +} + /// @test Verify that the successful case works. TEST(GoldenThingAdminConnectionTest, GetDatabaseSuccess) { auto mock = std::make_shared(); @@ -378,6 +417,49 @@ TEST(GoldenThingAdminConnectionTest, UpdateDatabaseDdlCancel) { EXPECT_THAT(db, StatusIs(StatusCode::kCancelled)); } +TEST(GoldenThingAdminConnectionTest, UpdateDatabaseDdlStartAwait) { + auto mock = std::make_shared(); + google::longrunning::Operation expected_operation; + expected_operation.set_name("test-operation-name"); + google::test::admin::database::v1::UpdateDatabaseDdlMetadata metadata; + expected_operation.mutable_metadata()->PackFrom(metadata); + + EXPECT_CALL(*mock, UpdateDatabaseDdl(_, _, _)).WillOnce([&] { + return make_status_or(expected_operation); + }); + EXPECT_CALL(*mock, AsyncGetOperation) + .WillOnce([expected_operation]( + CompletionQueue&, auto, auto, + google::longrunning::GetOperationRequest const& r) { + EXPECT_EQ(expected_operation.name(), r.name()); + google::longrunning::Operation op; + op.set_name(r.name()); + op.set_done(true); + ::google::test::admin::database::v1::UpdateDatabaseDdlMetadata metadata; + metadata.set_database("test-database"); + op.mutable_metadata()->PackFrom(metadata); + return make_ready_future(make_status_or(op)); + }); + + auto conn = CreateTestingConnection(std::move(mock)); + ::google::test::admin::database::v1::UpdateDatabaseDdlRequest request; + request.set_database( + "projects/test-project/instances/test-instance/databases/test-database"); + *request.add_statements() = + "ALTER TABLE Albums ADD COLUMN MarketingBudget INT64"; + google::cloud::internal::OptionsSpan span( + google::cloud::internal::MergeOptions(Options{}, conn->options())); + // TODO(#14344): Remove experimental tag. + auto operation = + conn->UpdateDatabaseDdl(ExperimentalTag{}, NoAwaitTag{}, request); + ASSERT_STATUS_OK(operation); + EXPECT_THAT(operation->name(), Eq(expected_operation.name())); + + auto update = conn->UpdateDatabaseDdl(ExperimentalTag{}, *operation).get(); + ASSERT_STATUS_OK(update); + EXPECT_EQ("test-database", update->database()); +} + /// @test Verify that the successful case works. TEST(GoldenThingAdminConnectionTest, DropDatabaseSuccess) { auto mock = std::make_shared(); @@ -759,6 +841,47 @@ TEST(GoldenThingAdminConnectionTest, CreateBackupCancel) { EXPECT_THAT(db, StatusIs(StatusCode::kCancelled)); } +TEST(GoldenThingAdminConnectionTest, CreateBackupStartAwait) { + auto mock = std::make_shared(); + google::longrunning::Operation expected_operation; + expected_operation.set_name("test-operation-name"); + google::test::admin::database::v1::CreateBackupMetadata metadata; + expected_operation.mutable_metadata()->PackFrom(metadata); + + EXPECT_CALL(*mock, CreateBackup(_, _, _)).WillOnce([&] { + return make_status_or(expected_operation); + }); + EXPECT_CALL(*mock, AsyncGetOperation) + .WillOnce([expected_operation]( + CompletionQueue&, auto, auto, + google::longrunning::GetOperationRequest const& r) { + EXPECT_EQ(expected_operation.name(), r.name()); + google::longrunning::Operation op; + op.set_name(r.name()); + op.set_done(true); + ::google::test::admin::database::v1::Backup backup; + backup.set_name("test-backup"); + op.mutable_response()->PackFrom(backup); + return make_ready_future(make_status_or(op)); + }); + + auto conn = CreateTestingConnection(std::move(mock)); + ::google::test::admin::database::v1::CreateBackupRequest request; + request.set_parent("projects/test-project/instances/test-instance"); + request.set_backup_id("test-backup"); + request.mutable_backup()->set_name("test-backup"); + google::cloud::internal::OptionsSpan span( + google::cloud::internal::MergeOptions(Options{}, conn->options())); + // TODO(#14344): Remove experimental tag. + auto operation = conn->CreateBackup(ExperimentalTag{}, NoAwaitTag{}, request); + ASSERT_STATUS_OK(operation); + EXPECT_THAT(operation->name(), Eq(expected_operation.name())); + + auto backup = conn->CreateBackup(ExperimentalTag{}, *operation).get(); + ASSERT_STATUS_OK(backup); + EXPECT_EQ("test-backup", backup->name()); +} + /// @test Verify that the successful case works. TEST(GoldenThingAdminConnectionTest, GetBackupSuccess) { auto mock = std::make_shared(); @@ -1089,6 +1212,50 @@ TEST(GoldenThingAdminConnectionTest, RestoreBackupCancel) { EXPECT_THAT(db, StatusIs(StatusCode::kCancelled)); } +TEST(GoldenThingAdminConnectionTest, RestoreDatabaseStartAwait) { + auto mock = std::make_shared(); + google::longrunning::Operation expected_operation; + expected_operation.set_name("test-operation-name"); + google::test::admin::database::v1::RestoreDatabaseMetadata metadata; + expected_operation.mutable_metadata()->PackFrom(metadata); + + EXPECT_CALL(*mock, RestoreDatabase(_, _, _)).WillOnce([&] { + return make_status_or(expected_operation); + }); + EXPECT_CALL(*mock, AsyncGetOperation) + .WillOnce([expected_operation]( + CompletionQueue&, auto, auto, + google::longrunning::GetOperationRequest const& r) { + EXPECT_EQ(expected_operation.name(), r.name()); + google::longrunning::Operation op; + op.set_name(r.name()); + op.set_done(true); + ::google::test::admin::database::v1::Database database; + database.set_name("test-database"); + op.mutable_response()->PackFrom(database); + return make_ready_future(make_status_or(op)); + }); + + auto conn = CreateTestingConnection(std::move(mock)); + ::google::test::admin::database::v1::RestoreDatabaseRequest request; + request.set_parent("projects/test-project/instances/test-instance"); + request.set_database_id( + "projects/test-project/instances/test-instance/databases/test-database"); + request.set_backup( + "projects/test-project/instances/test-instance/backups/test-backup"); + google::cloud::internal::OptionsSpan span( + google::cloud::internal::MergeOptions(Options{}, conn->options())); + // TODO(#14344): Remove experimental tag. + auto operation = + conn->RestoreDatabase(ExperimentalTag{}, NoAwaitTag{}, request); + ASSERT_STATUS_OK(operation); + EXPECT_THAT(operation->name(), Eq(expected_operation.name())); + + auto database = conn->RestoreDatabase(ExperimentalTag{}, *operation).get(); + ASSERT_STATUS_OK(database); + EXPECT_EQ("test-database", database->name()); +} + /// @test Verify that we can list database operations in multiple pages. TEST(GoldenThingAdminConnectionTest, ListDatabaseOperations) { auto mock = std::make_shared(); diff --git a/generator/integration_tests/tests/golden_thing_admin_rest_connection_test.cc b/generator/integration_tests/tests/golden_thing_admin_rest_connection_test.cc index b93e915a78498..b7bc016df8356 100644 --- a/generator/integration_tests/tests/golden_thing_admin_rest_connection_test.cc +++ b/generator/integration_tests/tests/golden_thing_admin_rest_connection_test.cc @@ -255,6 +255,44 @@ TEST(GoldenThingAdminConnectionTest, CreateDatabaseCancel) { EXPECT_THAT(db, StatusIs(StatusCode::kCancelled)); } +TEST(GoldenThingAdminConnectionTest, CreateDatabaseStartAwait) { + auto mock = std::make_shared(); + google::longrunning::Operation expected_operation; + expected_operation.set_name("test-operation-name"); + google::test::admin::database::v1::CreateDatabaseMetadata metadata; + expected_operation.mutable_metadata()->PackFrom(metadata); + + EXPECT_CALL(*mock, CreateDatabase(_, _, _)).WillOnce([&] { + return make_status_or(expected_operation); + }); + EXPECT_CALL(*mock, AsyncGetOperation) + .WillOnce([expected_operation]( + CompletionQueue&, auto, auto, + google::longrunning::GetOperationRequest const& r) { + EXPECT_EQ(expected_operation.name(), r.name()); + google::longrunning::Operation op; + op.set_name(r.name()); + op.set_done(true); + ::google::test::admin::database::v1::Database database; + database.set_name("test-database"); + op.mutable_response()->PackFrom(database); + return make_ready_future(make_status_or(op)); + }); + + auto conn = CreateTestingConnection(std::move(mock)); + ::google::test::admin::database::v1::CreateDatabaseRequest dbase; + google::cloud::internal::OptionsSpan span( + google::cloud::internal::MergeOptions(Options{}, conn->options())); + // TODO(#14344): Remove experimental tag. + auto operation = conn->CreateDatabase(ExperimentalTag{}, NoAwaitTag{}, dbase); + ASSERT_STATUS_OK(operation); + EXPECT_THAT(operation->name(), Eq(expected_operation.name())); + + auto database = conn->CreateDatabase(ExperimentalTag{}, *operation).get(); + ASSERT_STATUS_OK(database); + EXPECT_EQ("test-database", database->name()); +} + /// @test Verify that the successful case works. TEST(GoldenThingAdminConnectionTest, GetDatabaseSuccess) { auto mock = std::make_shared(); @@ -402,6 +440,49 @@ TEST(GoldenThingAdminConnectionTest, UpdateDatabaseDdlCancel) { EXPECT_THAT(db, StatusIs(StatusCode::kCancelled)); } +TEST(GoldenThingAdminRestConnectionTest, UpdateDatabaseDdlStartAwait) { + auto mock = std::make_shared(); + google::longrunning::Operation expected_operation; + expected_operation.set_name("test-operation-name"); + google::test::admin::database::v1::UpdateDatabaseDdlMetadata metadata; + expected_operation.mutable_metadata()->PackFrom(metadata); + + EXPECT_CALL(*mock, UpdateDatabaseDdl(_, _, _)).WillOnce([&] { + return make_status_or(expected_operation); + }); + EXPECT_CALL(*mock, AsyncGetOperation) + .WillOnce([expected_operation]( + CompletionQueue&, auto, auto, + google::longrunning::GetOperationRequest const& r) { + EXPECT_EQ(expected_operation.name(), r.name()); + google::longrunning::Operation op; + op.set_name(r.name()); + op.set_done(true); + ::google::test::admin::database::v1::UpdateDatabaseDdlMetadata metadata; + metadata.set_database("test-database"); + op.mutable_metadata()->PackFrom(metadata); + return make_ready_future(make_status_or(op)); + }); + + auto conn = CreateTestingConnection(std::move(mock)); + ::google::test::admin::database::v1::UpdateDatabaseDdlRequest request; + request.set_database( + "projects/test-project/instances/test-instance/databases/test-database"); + *request.add_statements() = + "ALTER TABLE Albums ADD COLUMN MarketingBudget INT64"; + google::cloud::internal::OptionsSpan span( + google::cloud::internal::MergeOptions(Options{}, conn->options())); + // TODO(#14344): Remove experimental tag. + auto operation = + conn->UpdateDatabaseDdl(ExperimentalTag{}, NoAwaitTag{}, request); + ASSERT_STATUS_OK(operation); + EXPECT_THAT(operation->name(), Eq(expected_operation.name())); + + auto update = conn->UpdateDatabaseDdl(ExperimentalTag{}, *operation).get(); + ASSERT_STATUS_OK(update); + EXPECT_EQ("test-database", update->database()); +} + /// @test Verify that the successful case works. TEST(GoldenThingAdminConnectionTest, DropDatabaseSuccess) { auto mock = std::make_shared(); @@ -794,6 +875,47 @@ TEST(GoldenThingAdminConnectionTest, CreateBackupCancel) { EXPECT_THAT(db, StatusIs(StatusCode::kCancelled)); } +TEST(GoldenThingAdminConnectionTest, CreateBackupStartAwait) { + auto mock = std::make_shared(); + google::longrunning::Operation expected_operation; + expected_operation.set_name("test-operation-name"); + google::test::admin::database::v1::CreateBackupMetadata metadata; + expected_operation.mutable_metadata()->PackFrom(metadata); + + EXPECT_CALL(*mock, CreateBackup(_, _, _)).WillOnce([&] { + return make_status_or(expected_operation); + }); + EXPECT_CALL(*mock, AsyncGetOperation) + .WillOnce([expected_operation]( + CompletionQueue&, auto, auto, + google::longrunning::GetOperationRequest const& r) { + EXPECT_EQ(expected_operation.name(), r.name()); + google::longrunning::Operation op; + op.set_name(r.name()); + op.set_done(true); + ::google::test::admin::database::v1::Backup backup; + backup.set_name("test-backup"); + op.mutable_response()->PackFrom(backup); + return make_ready_future(make_status_or(op)); + }); + + auto conn = CreateTestingConnection(std::move(mock)); + ::google::test::admin::database::v1::CreateBackupRequest request; + request.set_parent("projects/test-project/instances/test-instance"); + request.set_backup_id("test-backup"); + request.mutable_backup()->set_name("test-backup"); + google::cloud::internal::OptionsSpan span( + google::cloud::internal::MergeOptions(Options{}, conn->options())); + // TODO(#14344): Remove experimental tag. + auto operation = conn->CreateBackup(ExperimentalTag{}, NoAwaitTag{}, request); + ASSERT_STATUS_OK(operation); + EXPECT_THAT(operation->name(), Eq(expected_operation.name())); + + auto backup = conn->CreateBackup(ExperimentalTag{}, *operation).get(); + ASSERT_STATUS_OK(backup); + EXPECT_EQ("test-backup", backup->name()); +} + /// @test Verify that the successful case works. TEST(GoldenThingAdminConnectionTest, GetBackupSuccess) { auto mock = std::make_shared(); @@ -1131,6 +1253,50 @@ TEST(GoldenThingAdminConnectionTest, RestoreBackupCancel) { EXPECT_THAT(db, StatusIs(StatusCode::kCancelled)); } +TEST(GoldenThingAdminConnectionTest, RestoreDatabaseStartAwait) { + auto mock = std::make_shared(); + google::longrunning::Operation expected_operation; + expected_operation.set_name("test-operation-name"); + google::test::admin::database::v1::RestoreDatabaseMetadata metadata; + expected_operation.mutable_metadata()->PackFrom(metadata); + + EXPECT_CALL(*mock, RestoreDatabase(_, _, _)).WillOnce([&] { + return make_status_or(expected_operation); + }); + EXPECT_CALL(*mock, AsyncGetOperation) + .WillOnce([expected_operation]( + CompletionQueue&, auto, auto, + google::longrunning::GetOperationRequest const& r) { + EXPECT_EQ(expected_operation.name(), r.name()); + google::longrunning::Operation op; + op.set_name(r.name()); + op.set_done(true); + ::google::test::admin::database::v1::Database database; + database.set_name("test-database"); + op.mutable_response()->PackFrom(database); + return make_ready_future(make_status_or(op)); + }); + + auto conn = CreateTestingConnection(std::move(mock)); + ::google::test::admin::database::v1::RestoreDatabaseRequest request; + request.set_parent("projects/test-project/instances/test-instance"); + request.set_database_id( + "projects/test-project/instances/test-instance/databases/test-database"); + request.set_backup( + "projects/test-project/instances/test-instance/backups/test-backup"); + google::cloud::internal::OptionsSpan span( + google::cloud::internal::MergeOptions(Options{}, conn->options())); + // TODO(#14344): Remove experimental tag. + auto operation = + conn->RestoreDatabase(ExperimentalTag{}, NoAwaitTag{}, request); + ASSERT_STATUS_OK(operation); + EXPECT_THAT(operation->name(), Eq(expected_operation.name())); + + auto database = conn->RestoreDatabase(ExperimentalTag{}, *operation).get(); + ASSERT_STATUS_OK(database); + EXPECT_EQ("test-database", database->name()); +} + /// @test Verify that we can list database operations in multiple pages. TEST(GoldenThingAdminConnectionTest, ListDatabaseOperations) { auto mock = std::make_shared(); diff --git a/generator/integration_tests/tests/golden_thing_admin_tracing_connection_test.cc b/generator/integration_tests/tests/golden_thing_admin_tracing_connection_test.cc index 82c341d29c735..76a53bbe7764f 100644 --- a/generator/integration_tests/tests/golden_thing_admin_tracing_connection_test.cc +++ b/generator/integration_tests/tests/golden_thing_admin_tracing_connection_test.cc @@ -46,6 +46,7 @@ using ::google::cloud::testing_util::SpanWithStatus; using ::google::cloud::testing_util::ThereIsAnActiveSpan; using ::google::test::admin::database::v1::Backup; using ::google::test::admin::database::v1::Database; +using ::testing::_; using ::testing::AllOf; using ::testing::ElementsAre; using ::testing::IsEmpty; @@ -98,7 +99,7 @@ TEST(GoldenThingAdminTracingConnectionTest, CreateDatabase) { auto span_catcher = InstallSpanCatcher(); auto mock = std::make_shared(); - EXPECT_CALL(*mock, CreateDatabase).WillOnce([] { + EXPECT_CALL(*mock, CreateDatabase(_)).WillOnce([] { EXPECT_TRUE(ThereIsAnActiveSpan()); EXPECT_TRUE(OTelContextCaptured()); return make_ready_future>( @@ -121,6 +122,60 @@ TEST(GoldenThingAdminTracingConnectionTest, CreateDatabase) { OTelAttribute("gl-cpp.status_code", kErrorCode))))); } +TEST(GoldenThingAdminTracingConnectionTest, CreateDatabaseStart) { + auto span_catcher = InstallSpanCatcher(); + + auto mock = std::make_shared(); + EXPECT_CALL(*mock, CreateDatabase(_, _, _)).WillOnce([] { + EXPECT_TRUE(ThereIsAnActiveSpan()); + return StatusOr( + internal::AbortedError("fail")); + }); + + auto under_test = GoldenThingAdminTracingConnection(mock); + google::test::admin::database::v1::CreateDatabaseRequest request; + auto result = + under_test.CreateDatabase(ExperimentalTag{}, NoAwaitTag{}, request); + EXPECT_THAT(result, StatusIs(StatusCode::kAborted)); + + auto spans = span_catcher->GetSpans(); + EXPECT_THAT( + spans, + ElementsAre(AllOf( + SpanHasInstrumentationScope(), SpanKindIsClient(), + SpanNamed("golden_v1::GoldenThingAdminConnection::CreateDatabase"), + SpanWithStatus(opentelemetry::trace::StatusCode::kError, "fail"), + SpanHasAttributes( + OTelAttribute("gl-cpp.status_code", kErrorCode))))); +} + +TEST(GoldenThingAdminTracingConnectionTest, CreateDatabaseAwait) { + auto span_catcher = InstallSpanCatcher(); + + auto mock = std::make_shared(); + EXPECT_CALL(*mock, CreateDatabase(_, _)).WillOnce([] { + EXPECT_TRUE(ThereIsAnActiveSpan()); + EXPECT_TRUE(OTelContextCaptured()); + return make_ready_future>( + internal::AbortedError("fail")); + }); + + auto under_test = GoldenThingAdminTracingConnection(mock); + google::longrunning::Operation operation; + auto result = under_test.CreateDatabase(ExperimentalTag{}, operation).get(); + EXPECT_THAT(result, StatusIs(StatusCode::kAborted)); + + auto spans = span_catcher->GetSpans(); + EXPECT_THAT( + spans, + ElementsAre(AllOf( + SpanHasInstrumentationScope(), SpanKindIsClient(), + SpanNamed("golden_v1::GoldenThingAdminConnection::CreateDatabase"), + SpanWithStatus(opentelemetry::trace::StatusCode::kError, "fail"), + SpanHasAttributes( + OTelAttribute("gl-cpp.status_code", kErrorCode))))); +} + TEST(GoldenThingAdminTracingConnectionTest, GetDatabase) { auto span_catcher = InstallSpanCatcher(); @@ -151,7 +206,7 @@ TEST(GoldenThingAdminTracingConnectionTest, UpdateDatabaseDdl) { auto mock = std::make_shared(); using ::google::test::admin::database::v1::UpdateDatabaseDdlMetadata; - EXPECT_CALL(*mock, UpdateDatabaseDdl).WillOnce([] { + EXPECT_CALL(*mock, UpdateDatabaseDdl(_)).WillOnce([] { EXPECT_TRUE(ThereIsAnActiveSpan()); EXPECT_TRUE(OTelContextCaptured()); return make_ready_future>( @@ -304,7 +359,7 @@ TEST(GoldenThingAdminTracingConnectionTest, CreateBackup) { auto span_catcher = InstallSpanCatcher(); auto mock = std::make_shared(); - EXPECT_CALL(*mock, CreateBackup).WillOnce([] { + EXPECT_CALL(*mock, CreateBackup(_)).WillOnce([] { EXPECT_TRUE(ThereIsAnActiveSpan()); EXPECT_TRUE(OTelContextCaptured()); return make_ready_future>(internal::AbortedError("fail")); @@ -433,7 +488,7 @@ TEST(GoldenThingAdminTracingConnectionTest, RestoreDatabase) { auto span_catcher = InstallSpanCatcher(); auto mock = std::make_shared(); - EXPECT_CALL(*mock, RestoreDatabase).WillOnce([] { + EXPECT_CALL(*mock, RestoreDatabase(_)).WillOnce([] { EXPECT_TRUE(ThereIsAnActiveSpan()); EXPECT_TRUE(OTelContextCaptured()); return make_ready_future>( @@ -520,7 +575,7 @@ TEST(GoldenThingAdminTracingConnectionTest, LongRunningWithoutRouting) { auto span_catcher = InstallSpanCatcher(); auto mock = std::make_shared(); - EXPECT_CALL(*mock, LongRunningWithoutRouting).WillOnce([] { + EXPECT_CALL(*mock, LongRunningWithoutRouting(_)).WillOnce([] { EXPECT_TRUE(ThereIsAnActiveSpan()); EXPECT_TRUE(OTelContextCaptured()); return make_ready_future>( diff --git a/generator/internal/connection_generator.cc b/generator/internal/connection_generator.cc index fbfebb767ee28..f528e5643716c 100644 --- a/generator/internal/connection_generator.cc +++ b/generator/internal/connection_generator.cc @@ -52,7 +52,9 @@ Status ConnectionGenerator::GenerateHeader() { HeaderPrint("\n"); HeaderLocalIncludes( {vars("idempotency_policy_header_path"), vars("retry_traits_header_path"), - "google/cloud/backoff_policy.h", + HasLongrunningMethod() ? "google/cloud/no_await_tag.h" : "", + // TODO(#14344): Remove experimental tag. + "google/cloud/experimental_tag.h", "google/cloud/backoff_policy.h", HasLongrunningMethod() || HasAsyncMethod() ? "google/cloud/future.h" : "", "google/cloud/internal/retry_policy_impl.h", "google/cloud/options.h", @@ -251,7 +253,24 @@ class $connection_class_name$ { // clang-format off "\n virtual future\n", "\n virtual future>\n"}, - {" $method_name$($request_type$ const& request);\n"} + {" $method_name$($request_type$ const& request);\n\n"}, + // clang-format on + {IsResponseTypeEmpty, + // clang-format off + " virtual Status\n", + " virtual StatusOr<$longrunning_operation_type$>\n"}, + // clang-format on + // TODO(#14344): Remove experimental tag. + {" $method_name$(ExperimentalTag, " + "NoAwaitTag," + " $request_type$ const& request);\n\n"}, + {IsResponseTypeEmpty, + // clang-format off + " virtual future\n", + " virtual future>\n"}, + // TODO(#14344): Remove experimental tag. + {" $method_name$(ExperimentalTag," + " $longrunning_operation_type$ const& operation);\n"} // clang-format on }, All(IsNonStreaming, IsLongrunningOperation, Not(IsPaginated))), @@ -385,6 +404,34 @@ std::unique_ptr<::google::cloud::AsyncStreamingReadWriteRpc< "}\n" }, // clang-format on + {"\n"}, + {IsResponseTypeEmpty, + // clang-format off + "Status\n", + "StatusOr<$longrunning_operation_type$>\n"}, + // TODO(#14344): Remove experimental tag. + {"$connection_class_name$::$method_name$(\n" + " ExperimentalTag, NoAwaitTag,\n" + " $request_type$ const&) {\n" + " return StatusOr<$longrunning_operation_type$>(\n" + " Status(StatusCode::kUnimplemented, \"not implemented\"));\n" + "}\n" + }, + // clang-format on + {"\n"}, + {IsResponseTypeEmpty, + // clang-format off + "future\n", + "future>\n"}, + // TODO(#14344): Remove experimental tag. + {"$connection_class_name$::$method_name$(\n" + " ExperimentalTag, $longrunning_operation_type$ const&) {\n" + " return google::cloud::make_ready_future<\n" + " StatusOr<$longrunning_deduced_response_type$>>(\n" + " Status(StatusCode::kUnimplemented, \"not implemented\"));\n" + "}\n" + } + // clang-format on }, All(IsNonStreaming, IsLongrunningOperation, Not(IsPaginated))), MethodPattern( diff --git a/generator/internal/connection_impl_generator.cc b/generator/internal/connection_impl_generator.cc index 16ff6d197e203..1daa3ecf2ca84 100644 --- a/generator/internal/connection_impl_generator.cc +++ b/generator/internal/connection_impl_generator.cc @@ -278,14 +278,32 @@ std::string ConnectionImplGenerator::MethodDeclaration( if (IsLongrunningOperation(method)) { if (IsResponseTypeEmpty(method)) { + // TODO(#14344): Remove experimental tag. return R"""( future $method_name$($request_type$ const& request) override; + + StatusOr<$longrunning_operation_type$> + $method_name$(ExperimentalTag, NoAwaitTag, + $request_type$ const& request) override; + + future + $method_name$(ExperimentalTag, + $longrunning_operation_type$ const& operation) override; )"""; } + // TODO(#14344): Remove experimental tag. return R"""( future> $method_name$($request_type$ const& request) override; + + StatusOr<$longrunning_operation_type$> + $method_name$(ExperimentalTag, NoAwaitTag, + $request_type$ const& request) override; + + future> + $method_name$(ExperimentalTag, + $longrunning_operation_type$ const& operation) override; )"""; } @@ -430,12 +448,11 @@ StreamRange<$range_output_type$> // The body of the function is basically a call to // `google::cloud::internal::AsyncLongRunningOperation`. - return absl::StrCat("\n", return_fragment, - R"""( + std::string combined_function = absl::StrCat("\n", return_fragment, R"""( $connection_class_name$Impl::$method_name$($request_type$ const& request) { auto current = google::cloud::internal::SaveCurrentOptions(); auto request_copy = request;)""", - request_id_fragment, R"""( + request_id_fragment, R"""( auto const idempotent = idempotency_policy(*current)->$method_name$(request_copy); return google::cloud::internal::AsyncLongRunningOperation<$longrunning_deduced_response_type$>( @@ -462,14 +479,72 @@ StreamRange<$range_output_type$> cq, std::move(context), std::move(options), request); }, )""", - extract_value_fragment, - R"""( + extract_value_fragment, R"""( retry_policy(*current), backoff_policy(*current), idempotent, polling_policy(*current), __func__))""", - elide_protobuf_empty_fragment, - R"""(; + elide_protobuf_empty_fragment, + R"""(; } )"""); + + // TODO(#14344): Remove experimental tag. + std::string start_function = + absl::StrCat("StatusOr<$longrunning_operation_type$>", R"""( +$connection_class_name$Impl::$method_name$(ExperimentalTag, + NoAwaitTag, $request_type$ const& request) { + auto current = google::cloud::internal::SaveCurrentOptions();)""", + R"""( + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->$method_name$(request), + [this]( + grpc::ClientContext& context, Options const& options, + $request_type$ const& request) { + return stub_->$method_name$(context, options, request); + }, + *current, request, __func__); +} +)"""); + + // TODO(#14344): Remove experimental tag. + std::string await_function = + absl::StrCat(return_fragment, R"""( +$connection_class_name$Impl::$method_name$(ExperimentalTag, + $longrunning_operation_type$ const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions();)""", + R"""( + if (!operation.metadata().Is()) { + return make_ready_)""", + return_fragment, R"""(( + internal::InvalidArgumentError("operation does not correspond to $method_name$", + GCP_ERROR_INFO().WithMetadata("operation", operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation<$longrunning_deduced_response_type$>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation( + cq, std::move(context), std::move(options), request); + }, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation( + cq, std::move(context), std::move(options), request); + }, + )""", + extract_value_fragment, R"""( + polling_policy(*current), __func__))""", + elide_protobuf_empty_fragment, R"""(; +} +)"""); + + return absl::StrCat(combined_function, "\n", start_function, "\n", + await_function); } auto const* return_fragment = IsResponseTypeEmpty(method) diff --git a/generator/internal/connection_impl_rest_generator.cc b/generator/internal/connection_impl_rest_generator.cc index 00a1c21d6563f..a3de867ac916a 100644 --- a/generator/internal/connection_impl_rest_generator.cc +++ b/generator/internal/connection_impl_rest_generator.cc @@ -143,6 +143,7 @@ Status ConnectionImplRestGenerator::GenerateCc() { auto const needs_async_retry_loop = !async_methods().empty(); std::string lro_extract_include; std::string lro_op_include; + std::string lro_rest_helper_include; if (HasLongrunningMethod()) { lro_extract_include = "google/cloud/internal/extract_long_running_result.h"; if (HasGRPCLongrunningOperation()) { @@ -151,6 +152,7 @@ Status ConnectionImplRestGenerator::GenerateCc() { } else { lro_op_include = "google/cloud/internal/async_rest_long_running_operation_custom.h"; + lro_rest_helper_include = "google/cloud/internal/rest_lro_helpers.h"; } } CcLocalIncludes( @@ -159,6 +161,7 @@ Status ConnectionImplRestGenerator::GenerateCc() { "google/cloud/credentials.h", "google/cloud/rest_options.h", HasPaginatedMethod() ? "google/cloud/internal/pagination_range.h" : "", std::move(lro_extract_include), std::move(lro_op_include), + std::move(lro_rest_helper_include), needs_async_retry_loop ? "google/cloud/internal/async_rest_retry_loop.h" : "", "google/cloud/internal/rest_retry_loop.h"}); @@ -205,15 +208,32 @@ std::string ConnectionImplRestGenerator::MethodDeclaration( if (IsLongrunningOperation(method)) { if (IsResponseTypeEmpty(method)) { - return R"""( + return absl::StrCat(R"""( future $method_name$($request_type$ const& request) override; -)"""; + + StatusOr<$longrunning_operation_type$> + $method_name$(ExperimentalTag, NoAwaitTag, + $request_type$ const& request) override; + + future + $method_name$(ExperimentalTag, + $longrunning_operation_type$ const& operation) override; + +)"""); } - return R"""( + return absl::StrCat(R"""( future> $method_name$($request_type$ const& request) override; -)"""; + + StatusOr<$longrunning_operation_type$> + $method_name$(ExperimentalTag, NoAwaitTag, + $request_type$ const& request) override; + + future> + $method_name$(ExperimentalTag, + $longrunning_operation_type$ const& operation) override; +)"""); } if (IsResponseTypeEmpty(method)) { @@ -334,16 +354,34 @@ StreamRange<$range_output_type$> })"""; }; + auto await_get_request_set_operation = [&] { + if (IsGRPCLongrunningOperation(method)) return ""; + return R"""( + [operation](std::string const&, $longrunning_get_operation_request_type$& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo(operation.self_link()); + $longrunning_await_set_operation_fields$ + },)"""; + }; + + auto await_cancel_request_set_operation = [&] { + if (IsGRPCLongrunningOperation(method)) return ""; + return R"""( + [operation](std::string const&, $longrunning_cancel_operation_request_type$& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo(operation.self_link()); + $longrunning_await_set_operation_fields$ + })"""; + }; + if (IsLongrunningOperation(method)) { - return absl::StrCat( - // The return type may be a simple `Status` or the - // computed type of the long-running operation - IsResponseTypeEmpty(method) ? - R"""( -future)""" - : - R"""( -future>)""", + // The return type may be a simple `Status` or the computed type of the + // long-running operation. + auto const* return_fragment = + IsResponseTypeEmpty(method) + ? R"""(future)""" + : R"""(future>)"""; + + std::string combined_function = absl::StrCat( + "\n", return_fragment, // The body of the function is basically a call to // internal::AsyncRestLongRunningOperation, a helper template function // in `google::cloud::internal`. @@ -393,6 +431,87 @@ future>)""", R"""( } )"""); + + // TODO(#14344): Remove experimental tag. + std::string start_function = + absl::StrCat("StatusOr<$longrunning_operation_type$>", + R"""( +$connection_impl_rest_class_name$::$method_name$(ExperimentalTag, NoAwaitTag, $request_type$ const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->$method_name$(request), + [this](rest_internal::RestContext& rest_context, + Options const& options, $request_type$ const& request) { + return stub_->$method_name$(rest_context, options, request); + }, + *current, request, __func__); +} +)"""); + + // Checking for gRPC LRO mismatch is a type check that comes from the proto + // definition of the rpc. Checking for a Compute LRO mismatch would require + // knowledge of the runtime values of the `operation_type` and `target_link` + // fields, at a minimum. As the domain of these values are not defined in + // the Discovery Document, attempting to check them could introduce false + // positives as the service evolves. + auto operation_check_fragment = IsGRPCLongrunningOperation(method) + ? absl::StrCat(R"""( + if (!operation.metadata().Is()) { + return make_ready_)""", + return_fragment, R"""(( + internal::InvalidArgumentError("operation does not correspond to $method_name$", + GCP_ERROR_INFO().WithMetadata("operation", operation.metadata().DebugString()))); + })""") + : ""; + + // TODO(#14344): Remove experimental tag. + std::string await_function = absl::StrCat( + return_fragment, + R"""( +$connection_impl_rest_class_name$::$method_name$(ExperimentalTag, + $longrunning_operation_type$ const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions();)""", + operation_check_fragment, + R"""( + return rest_internal::AsyncRestAwaitLongRunningOperation<)""", + lro_template_types(), R"""(>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + $longrunning_get_operation_request_type$ const& request) { + return stub->AsyncGetOperation( + cq, std::move(context), std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + $longrunning_cancel_operation_request_type$ const& request) { + return stub->AsyncCancelOperation( + cq, std::move(context), std::move(options), request); + },)""", + extractor(), + R"""( + polling_policy(*current), __func__)""", + is_operation_done(), await_get_request_set_operation(), + await_cancel_request_set_operation(), R"""())""", + // Finally, the internal::AsyncRestLongRunningOperation helper may + // return `future>`, in this case we + // add a bit of code to drop the `protobuf::Empty`: + IsResponseTypeEmpty(method) ? R"""( + .then([](future> f) { + return f.get().status(); + }); +)""" + : R"""(; +)""", + R"""( +} +)"""); + + return absl::StrCat(combined_function, "\n", start_function, "\n", + await_function); } return absl::StrCat(IsResponseTypeEmpty(method) ? R"""( diff --git a/generator/internal/mock_connection_generator.cc b/generator/internal/mock_connection_generator.cc index 05522a056785f..368801df3d2c3 100644 --- a/generator/internal/mock_connection_generator.cc +++ b/generator/internal/mock_connection_generator.cc @@ -108,7 +108,23 @@ class $mock_connection_class_name$ : public $product_namespace$::$connection_cla "\n MOCK_METHOD(future,\n", "\n MOCK_METHOD(future>,\n"}, {" $method_name$,\n" - " ($request_type$ const& request), (override));\n",} + " ($request_type$ const& request), (override));\n\n",}, + // clang-format on + {IsResponseTypeEmpty, + // clang-format off + " MOCK_METHOD(Status,\n", + " MOCK_METHOD(StatusOr<$longrunning_operation_type$>,\n"}, + // TODO(#14344): Remove experimental tag. + {" $method_name$, (ExperimentalTag, NoAwaitTag,\n" + " $request_type$ const& request), (override));\n\n"}, + // clang-format on + {IsResponseTypeEmpty, + // clang-format off + " MOCK_METHOD(future,\n", + " MOCK_METHOD(future>,\n"}, + // TODO(#14344): Remove experimental tag. + {" $method_name$, (ExperimentalTag,\n" + " $longrunning_operation_type$ const& operation), (override));\n"} // clang-format on }, All(IsNonStreaming, IsLongrunningOperation, Not(IsPaginated))), diff --git a/generator/internal/sample_generator.cc b/generator/internal/sample_generator.cc index 2f170a53d3a54..40c45182b051a 100644 --- a/generator/internal/sample_generator.cc +++ b/generator/internal/sample_generator.cc @@ -74,7 +74,7 @@ void SetClientEndpoint(std::vector const& argv) { auto options = google::cloud::Options{}.set( "private.googleapis.com"); auto client = google::cloud::$product_namespace$::$client_class_name$()"""); - if (IsExperimental()) HeaderPrint("google::cloud::ExperimentalTag{},"); + if (IsExperimental()) HeaderPrint("ExperimentalTag{},"); if (HasGenerateGrpcTransport()) { HeaderPrint(R"""( google::cloud::$product_namespace$::Make$connection_class_name$()"""); @@ -82,7 +82,7 @@ void SetClientEndpoint(std::vector const& argv) { HeaderPrint(R"""( google::cloud::$product_namespace$::Make$connection_class_name$Rest()"""); } - if (IsExperimental()) HeaderPrint("google::cloud::ExperimentalTag{},"); + if (IsExperimental()) HeaderPrint("ExperimentalTag{},"); switch (endpoint_location_style) { case ServiceConfiguration::LOCATION_DEPENDENT: HeaderPrint(R"""("unused", )"""); @@ -129,7 +129,7 @@ void SetRetryPolicy(std::vector const& argv) { HeaderPrint(R"""( auto connection = google::cloud::$product_namespace$::Make$connection_class_name$Rest()"""); } - if (IsExperimental()) HeaderPrint("google::cloud::ExperimentalTag{}, "); + if (IsExperimental()) HeaderPrint("ExperimentalTag{}, "); switch (endpoint_location_style) { case ServiceConfiguration::LOCATION_DEPENDENT: HeaderPrint(R"""("location-unused-in-this-example", )"""); @@ -144,14 +144,14 @@ void SetRetryPolicy(std::vector const& argv) { // c1 and c2 share the same retry policies auto c1 = google::cloud::$product_namespace$::$client_class_name$( - google::cloud::ExperimentalTag{}, connection); + ExperimentalTag{}, connection); auto c2 = google::cloud::$product_namespace$::$client_class_name$( - google::cloud::ExperimentalTag{}, connection); + ExperimentalTag{}, connection); // You can override any of the policies in a new client. This new client // will share the policies from c1 (or c2) *except* for the retry policy. auto c3 = google::cloud::$product_namespace$::$client_class_name$( - google::cloud::ExperimentalTag{}, connection, + ExperimentalTag{}, connection, google::cloud::Options{}.set( google::cloud::$product_namespace$::$limited_time_retry_policy_name$(std::chrono::minutes(5)).clone())); @@ -218,7 +218,7 @@ void SetPollingPolicy(std::vector const& argv) { HeaderPrint(R"""( auto connection = google::cloud::$product_namespace$::Make$connection_class_name$Rest()"""); } - if (IsExperimental()) HeaderPrint("google::cloud::ExperimentalTag{}, "); + if (IsExperimental()) HeaderPrint("ExperimentalTag{}, "); switch (endpoint_location_style) { case ServiceConfiguration::LOCATION_DEPENDENT: HeaderPrint(R"""("location-unused-in-this-example", )"""); @@ -233,9 +233,9 @@ void SetPollingPolicy(std::vector const& argv) { // c1 and c2 share the same polling policies. auto c1 = google::cloud::$product_namespace$::$client_class_name$( - google::cloud::ExperimentalTag{}, connection); + ExperimentalTag{}, connection); auto c2 = google::cloud::$product_namespace$::$client_class_name$( - google::cloud::ExperimentalTag{}, connection); + ExperimentalTag{}, connection); //! [set-polling-policy] } )"""); @@ -263,7 +263,7 @@ void WithServiceAccount(std::vector const& argv) { google::cloud::Options{}.set( google::cloud::MakeServiceAccountCredentials(contents)); return google::cloud::$product_namespace$::$client_class_name$()"""); - if (IsExperimental()) HeaderPrint("google::cloud::ExperimentalTag{},"); + if (IsExperimental()) HeaderPrint("ExperimentalTag{},"); if (HasGenerateGrpcTransport()) { HeaderPrint(R"""( google::cloud::$product_namespace$::Make$connection_class_name$()"""); @@ -271,7 +271,7 @@ void WithServiceAccount(std::vector const& argv) { HeaderPrint(R"""( google::cloud::$product_namespace$::Make$connection_class_name$Rest()"""); } - if (IsExperimental()) HeaderPrint("google::cloud::ExperimentalTag{},"); + if (IsExperimental()) HeaderPrint("ExperimentalTag{},"); switch (endpoint_location_style) { case ServiceConfiguration::LOCATION_DEPENDENT: HeaderPrint(R"""("us-west1" /* regional service region */, )"""); diff --git a/generator/internal/tracing_connection_generator.cc b/generator/internal/tracing_connection_generator.cc index 716ce71e93126..57e6d898b103d 100644 --- a/generator/internal/tracing_connection_generator.cc +++ b/generator/internal/tracing_connection_generator.cc @@ -198,14 +198,32 @@ std::string TracingConnectionGenerator::MethodDeclaration( if (IsLongrunningOperation(method)) { if (IsResponseTypeEmpty(method)) { + // TODO(#14344): Remove experimental tag. return R"""( future $method_name$($request_type$ const& request) override; + + StatusOr<$longrunning_operation_type$> + $method_name$(ExperimentalTag, NoAwaitTag, + $request_type$ const& request) override; + + future + $method_name$(ExperimentalTag, + $longrunning_operation_type$ const& operation) override; )"""; } + // TODO(#14344): Remove experimental tag. return R"""( future> $method_name$($request_type$ const& request) override; + + StatusOr<$longrunning_operation_type$> + $method_name$(ExperimentalTag, NoAwaitTag, + $request_type$ const& request) override; + + future> + $method_name$(ExperimentalTag, + $longrunning_operation_type$ const& operation) override; )"""; } @@ -297,7 +315,37 @@ future>)""", internal::OTelScope scope(span); return internal::EndSpan(std::move(span), child_->$method_name$(request)); } -)"""); +)""", + R"""( +StatusOr<$longrunning_operation_type$>)""", + // TODO(#14344): Remove experimental tag. + R"""( +$tracing_connection_class_name$::$method_name$(ExperimentalTag, + NoAwaitTag, $request_type$ const& request) { + auto span = internal::MakeSpan( + "$product_namespace$::$connection_class_name$::$method_name$"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan(*span, child_->$method_name$( + ExperimentalTag{}, NoAwaitTag{}, request)); +} +)""", + IsResponseTypeEmpty(method) ? + R"""( +future)""" + : + R"""( +future>)""", + // TODO(#14344): Remove experimental tag. + R"""( +$tracing_connection_class_name$::$method_name$(ExperimentalTag, + $longrunning_operation_type$ const& operation) { + auto span = internal::MakeSpan( + "$product_namespace$::$connection_class_name$::$method_name$"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->$method_name$(ExperimentalTag{}, operation)); +} + )"""); } return absl::StrCat(IsResponseTypeEmpty(method) ? R"""( diff --git a/google/cloud/accessapproval/v1/access_approval_connection.h b/google/cloud/accessapproval/v1/access_approval_connection.h index 613727bf693d7..ef6baf0810ecc 100644 --- a/google/cloud/accessapproval/v1/access_approval_connection.h +++ b/google/cloud/accessapproval/v1/access_approval_connection.h @@ -22,6 +22,7 @@ #include "google/cloud/accessapproval/v1/access_approval_connection_idempotency_policy.h" #include "google/cloud/accessapproval/v1/internal/access_approval_retry_traits.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/internal/retry_policy_impl.h" #include "google/cloud/options.h" #include "google/cloud/status_or.h" diff --git a/google/cloud/accesscontextmanager/v1/access_context_manager_connection.cc b/google/cloud/accesscontextmanager/v1/access_context_manager_connection.cc index ea3ca9bf9d832..36241db008fa2 100644 --- a/google/cloud/accesscontextmanager/v1/access_context_manager_connection.cc +++ b/google/cloud/accesscontextmanager/v1/access_context_manager_connection.cc @@ -60,6 +60,22 @@ AccessContextManagerConnection::CreateAccessPolicy( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +AccessContextManagerConnection::CreateAccessPolicy( + ExperimentalTag, NoAwaitTag, + google::identity::accesscontextmanager::v1::AccessPolicy const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +AccessContextManagerConnection::CreateAccessPolicy( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> AccessContextManagerConnection::UpdateAccessPolicy( google::identity::accesscontextmanager::v1:: @@ -69,6 +85,23 @@ AccessContextManagerConnection::UpdateAccessPolicy( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +AccessContextManagerConnection::UpdateAccessPolicy( + ExperimentalTag, NoAwaitTag, + google::identity::accesscontextmanager::v1:: + UpdateAccessPolicyRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +AccessContextManagerConnection::UpdateAccessPolicy( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> AccessContextManagerConnection::DeleteAccessPolicy( @@ -80,6 +113,25 @@ AccessContextManagerConnection::DeleteAccessPolicy( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +AccessContextManagerConnection::DeleteAccessPolicy( + ExperimentalTag, NoAwaitTag, + google::identity::accesscontextmanager::v1:: + DeleteAccessPolicyRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +AccessContextManagerConnection::DeleteAccessPolicy( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StreamRange AccessContextManagerConnection::ListAccessLevels( google::identity::accesscontextmanager::v1:: @@ -103,6 +155,23 @@ AccessContextManagerConnection::CreateAccessLevel( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +AccessContextManagerConnection::CreateAccessLevel( + ExperimentalTag, NoAwaitTag, + google::identity::accesscontextmanager::v1:: + CreateAccessLevelRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +AccessContextManagerConnection::CreateAccessLevel( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> AccessContextManagerConnection::UpdateAccessLevel( google::identity::accesscontextmanager::v1:: @@ -112,6 +181,23 @@ AccessContextManagerConnection::UpdateAccessLevel( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +AccessContextManagerConnection::UpdateAccessLevel( + ExperimentalTag, NoAwaitTag, + google::identity::accesscontextmanager::v1:: + UpdateAccessLevelRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +AccessContextManagerConnection::UpdateAccessLevel( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> AccessContextManagerConnection::DeleteAccessLevel( @@ -123,6 +209,25 @@ AccessContextManagerConnection::DeleteAccessLevel( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +AccessContextManagerConnection::DeleteAccessLevel( + ExperimentalTag, NoAwaitTag, + google::identity::accesscontextmanager::v1:: + DeleteAccessLevelRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +AccessContextManagerConnection::DeleteAccessLevel( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> AccessContextManagerConnection::ReplaceAccessLevels( @@ -133,6 +238,24 @@ AccessContextManagerConnection::ReplaceAccessLevels( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +AccessContextManagerConnection::ReplaceAccessLevels( + ExperimentalTag, NoAwaitTag, + google::identity::accesscontextmanager::v1:: + ReplaceAccessLevelsRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +AccessContextManagerConnection::ReplaceAccessLevels( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StreamRange AccessContextManagerConnection::ListServicePerimeters( google::identity::accesscontextmanager::v1:: @@ -157,6 +280,23 @@ AccessContextManagerConnection::CreateServicePerimeter( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +AccessContextManagerConnection::CreateServicePerimeter( + ExperimentalTag, NoAwaitTag, + google::identity::accesscontextmanager::v1:: + CreateServicePerimeterRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +AccessContextManagerConnection::CreateServicePerimeter( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> AccessContextManagerConnection::UpdateServicePerimeter( google::identity::accesscontextmanager::v1:: @@ -166,6 +306,23 @@ AccessContextManagerConnection::UpdateServicePerimeter( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +AccessContextManagerConnection::UpdateServicePerimeter( + ExperimentalTag, NoAwaitTag, + google::identity::accesscontextmanager::v1:: + UpdateServicePerimeterRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +AccessContextManagerConnection::UpdateServicePerimeter( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> AccessContextManagerConnection::DeleteServicePerimeter( @@ -177,6 +334,25 @@ AccessContextManagerConnection::DeleteServicePerimeter( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +AccessContextManagerConnection::DeleteServicePerimeter( + ExperimentalTag, NoAwaitTag, + google::identity::accesscontextmanager::v1:: + DeleteServicePerimeterRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +AccessContextManagerConnection::DeleteServicePerimeter( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> AccessContextManagerConnection::ReplaceServicePerimeters( @@ -188,6 +364,25 @@ AccessContextManagerConnection::ReplaceServicePerimeters( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +AccessContextManagerConnection::ReplaceServicePerimeters( + ExperimentalTag, NoAwaitTag, + google::identity::accesscontextmanager::v1:: + ReplaceServicePerimetersRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +AccessContextManagerConnection::ReplaceServicePerimeters( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> AccessContextManagerConnection::CommitServicePerimeters( @@ -199,6 +394,25 @@ AccessContextManagerConnection::CommitServicePerimeters( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +AccessContextManagerConnection::CommitServicePerimeters( + ExperimentalTag, NoAwaitTag, + google::identity::accesscontextmanager::v1:: + CommitServicePerimetersRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +AccessContextManagerConnection::CommitServicePerimeters( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StreamRange AccessContextManagerConnection::ListGcpUserAccessBindings( google::identity::accesscontextmanager::v1:: @@ -224,6 +438,24 @@ AccessContextManagerConnection::CreateGcpUserAccessBinding( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +AccessContextManagerConnection::CreateGcpUserAccessBinding( + ExperimentalTag, NoAwaitTag, + google::identity::accesscontextmanager::v1:: + CreateGcpUserAccessBindingRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future< + StatusOr> +AccessContextManagerConnection::CreateGcpUserAccessBinding( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future< StatusOr> AccessContextManagerConnection::UpdateGcpUserAccessBinding( @@ -234,6 +466,24 @@ AccessContextManagerConnection::UpdateGcpUserAccessBinding( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +AccessContextManagerConnection::UpdateGcpUserAccessBinding( + ExperimentalTag, NoAwaitTag, + google::identity::accesscontextmanager::v1:: + UpdateGcpUserAccessBindingRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future< + StatusOr> +AccessContextManagerConnection::UpdateGcpUserAccessBinding( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> AccessContextManagerConnection::DeleteGcpUserAccessBinding( @@ -245,6 +495,25 @@ AccessContextManagerConnection::DeleteGcpUserAccessBinding( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +AccessContextManagerConnection::DeleteGcpUserAccessBinding( + ExperimentalTag, NoAwaitTag, + google::identity::accesscontextmanager::v1:: + DeleteGcpUserAccessBindingRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +AccessContextManagerConnection::DeleteGcpUserAccessBinding( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr AccessContextManagerConnection::SetIamPolicy( google::iam::v1::SetIamPolicyRequest const&) { return Status(StatusCode::kUnimplemented, "not implemented"); diff --git a/google/cloud/accesscontextmanager/v1/access_context_manager_connection.h b/google/cloud/accesscontextmanager/v1/access_context_manager_connection.h index 972f61f090595..3cb1d7f0c3e2d 100644 --- a/google/cloud/accesscontextmanager/v1/access_context_manager_connection.h +++ b/google/cloud/accesscontextmanager/v1/access_context_manager_connection.h @@ -22,8 +22,10 @@ #include "google/cloud/accesscontextmanager/v1/access_context_manager_connection_idempotency_policy.h" #include "google/cloud/accesscontextmanager/v1/internal/access_context_manager_retry_traits.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/internal/retry_policy_impl.h" +#include "google/cloud/no_await_tag.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" #include "google/cloud/status_or.h" @@ -205,16 +207,45 @@ class AccessContextManagerConnection { CreateAccessPolicy( google::identity::accesscontextmanager::v1::AccessPolicy const& request); + virtual StatusOr CreateAccessPolicy( + ExperimentalTag, NoAwaitTag, + google::identity::accesscontextmanager::v1::AccessPolicy const& request); + + virtual future< + StatusOr> + CreateAccessPolicy(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future< StatusOr> UpdateAccessPolicy(google::identity::accesscontextmanager::v1:: UpdateAccessPolicyRequest const& request); + virtual StatusOr UpdateAccessPolicy( + ExperimentalTag, NoAwaitTag, + google::identity::accesscontextmanager::v1:: + UpdateAccessPolicyRequest const& request); + + virtual future< + StatusOr> + UpdateAccessPolicy(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> DeleteAccessPolicy(google::identity::accesscontextmanager::v1:: DeleteAccessPolicyRequest const& request); + virtual StatusOr DeleteAccessPolicy( + ExperimentalTag, NoAwaitTag, + google::identity::accesscontextmanager::v1:: + DeleteAccessPolicyRequest const& request); + + virtual future> + DeleteAccessPolicy(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StreamRange ListAccessLevels( google::identity::accesscontextmanager::v1::ListAccessLevelsRequest @@ -230,21 +261,61 @@ class AccessContextManagerConnection { CreateAccessLevel(google::identity::accesscontextmanager::v1:: CreateAccessLevelRequest const& request); + virtual StatusOr CreateAccessLevel( + ExperimentalTag, NoAwaitTag, + google::identity::accesscontextmanager::v1:: + CreateAccessLevelRequest const& request); + + virtual future< + StatusOr> + CreateAccessLevel(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future< StatusOr> UpdateAccessLevel(google::identity::accesscontextmanager::v1:: UpdateAccessLevelRequest const& request); + virtual StatusOr UpdateAccessLevel( + ExperimentalTag, NoAwaitTag, + google::identity::accesscontextmanager::v1:: + UpdateAccessLevelRequest const& request); + + virtual future< + StatusOr> + UpdateAccessLevel(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> DeleteAccessLevel(google::identity::accesscontextmanager::v1:: DeleteAccessLevelRequest const& request); + virtual StatusOr DeleteAccessLevel( + ExperimentalTag, NoAwaitTag, + google::identity::accesscontextmanager::v1:: + DeleteAccessLevelRequest const& request); + + virtual future> + DeleteAccessLevel(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> ReplaceAccessLevels(google::identity::accesscontextmanager::v1:: ReplaceAccessLevelsRequest const& request); + virtual StatusOr ReplaceAccessLevels( + ExperimentalTag, NoAwaitTag, + google::identity::accesscontextmanager::v1:: + ReplaceAccessLevelsRequest const& request); + + virtual future> + ReplaceAccessLevels(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StreamRange< google::identity::accesscontextmanager::v1::ServicePerimeter> ListServicePerimeters( @@ -260,26 +331,76 @@ class AccessContextManagerConnection { CreateServicePerimeter(google::identity::accesscontextmanager::v1:: CreateServicePerimeterRequest const& request); + virtual StatusOr CreateServicePerimeter( + ExperimentalTag, NoAwaitTag, + google::identity::accesscontextmanager::v1:: + CreateServicePerimeterRequest const& request); + + virtual future< + StatusOr> + CreateServicePerimeter(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future< StatusOr> UpdateServicePerimeter(google::identity::accesscontextmanager::v1:: UpdateServicePerimeterRequest const& request); + virtual StatusOr UpdateServicePerimeter( + ExperimentalTag, NoAwaitTag, + google::identity::accesscontextmanager::v1:: + UpdateServicePerimeterRequest const& request); + + virtual future< + StatusOr> + UpdateServicePerimeter(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> DeleteServicePerimeter(google::identity::accesscontextmanager::v1:: DeleteServicePerimeterRequest const& request); + virtual StatusOr DeleteServicePerimeter( + ExperimentalTag, NoAwaitTag, + google::identity::accesscontextmanager::v1:: + DeleteServicePerimeterRequest const& request); + + virtual future> + DeleteServicePerimeter(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> ReplaceServicePerimeters(google::identity::accesscontextmanager::v1:: ReplaceServicePerimetersRequest const& request); + virtual StatusOr ReplaceServicePerimeters( + ExperimentalTag, NoAwaitTag, + google::identity::accesscontextmanager::v1:: + ReplaceServicePerimetersRequest const& request); + + virtual future> + ReplaceServicePerimeters(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> CommitServicePerimeters(google::identity::accesscontextmanager::v1:: CommitServicePerimetersRequest const& request); + virtual StatusOr CommitServicePerimeters( + ExperimentalTag, NoAwaitTag, + google::identity::accesscontextmanager::v1:: + CommitServicePerimetersRequest const& request); + + virtual future> + CommitServicePerimeters(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StreamRange< google::identity::accesscontextmanager::v1::GcpUserAccessBinding> ListGcpUserAccessBindings(google::identity::accesscontextmanager::v1:: @@ -296,18 +417,48 @@ class AccessContextManagerConnection { google::identity::accesscontextmanager::v1:: CreateGcpUserAccessBindingRequest const& request); + virtual StatusOr CreateGcpUserAccessBinding( + ExperimentalTag, NoAwaitTag, + google::identity::accesscontextmanager::v1:: + CreateGcpUserAccessBindingRequest const& request); + + virtual future> + CreateGcpUserAccessBinding(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> UpdateGcpUserAccessBinding( google::identity::accesscontextmanager::v1:: UpdateGcpUserAccessBindingRequest const& request); + virtual StatusOr UpdateGcpUserAccessBinding( + ExperimentalTag, NoAwaitTag, + google::identity::accesscontextmanager::v1:: + UpdateGcpUserAccessBindingRequest const& request); + + virtual future> + UpdateGcpUserAccessBinding(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> DeleteGcpUserAccessBinding( google::identity::accesscontextmanager::v1:: DeleteGcpUserAccessBindingRequest const& request); + virtual StatusOr DeleteGcpUserAccessBinding( + ExperimentalTag, NoAwaitTag, + google::identity::accesscontextmanager::v1:: + DeleteGcpUserAccessBindingRequest const& request); + + virtual future> + DeleteGcpUserAccessBinding(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StatusOr SetIamPolicy( google::iam::v1::SetIamPolicyRequest const& request); diff --git a/google/cloud/accesscontextmanager/v1/internal/access_context_manager_connection_impl.cc b/google/cloud/accesscontextmanager/v1/internal/access_context_manager_connection_impl.cc index 4b3157baf112c..8e68f6bbd10cd 100644 --- a/google/cloud/accesscontextmanager/v1/internal/access_context_manager_connection_impl.cc +++ b/google/cloud/accesscontextmanager/v1/internal/access_context_manager_connection_impl.cc @@ -166,6 +166,60 @@ AccessContextManagerConnectionImpl::CreateAccessPolicy( polling_policy(*current), __func__); } +StatusOr +AccessContextManagerConnectionImpl::CreateAccessPolicy( + ExperimentalTag, NoAwaitTag, + google::identity::accesscontextmanager::v1::AccessPolicy const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateAccessPolicy(request), + [this](grpc::ClientContext& context, Options const& options, + google::identity::accesscontextmanager::v1::AccessPolicy const& + request) { + return stub_->CreateAccessPolicy(context, options, request); + }, + *current, request, __func__); +} + +future> +AccessContextManagerConnectionImpl::CreateAccessPolicy( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to CreateAccessPolicy", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::identity::accesscontextmanager::v1::AccessPolicy>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::identity::accesscontextmanager::v1::AccessPolicy>, + polling_policy(*current), __func__); +} + future> AccessContextManagerConnectionImpl::UpdateAccessPolicy( google::identity::accesscontextmanager::v1::UpdateAccessPolicyRequest const& @@ -206,6 +260,61 @@ AccessContextManagerConnectionImpl::UpdateAccessPolicy( polling_policy(*current), __func__); } +StatusOr +AccessContextManagerConnectionImpl::UpdateAccessPolicy( + ExperimentalTag, NoAwaitTag, + google::identity::accesscontextmanager::v1::UpdateAccessPolicyRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UpdateAccessPolicy(request), + [this](grpc::ClientContext& context, Options const& options, + google::identity::accesscontextmanager::v1:: + UpdateAccessPolicyRequest const& request) { + return stub_->UpdateAccessPolicy(context, options, request); + }, + *current, request, __func__); +} + +future> +AccessContextManagerConnectionImpl::UpdateAccessPolicy( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to UpdateAccessPolicy", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::identity::accesscontextmanager::v1::AccessPolicy>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::identity::accesscontextmanager::v1::AccessPolicy>, + polling_policy(*current), __func__); +} + future> AccessContextManagerConnectionImpl::DeleteAccessPolicy( @@ -249,6 +358,65 @@ AccessContextManagerConnectionImpl::DeleteAccessPolicy( polling_policy(*current), __func__); } +StatusOr +AccessContextManagerConnectionImpl::DeleteAccessPolicy( + ExperimentalTag, NoAwaitTag, + google::identity::accesscontextmanager::v1::DeleteAccessPolicyRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteAccessPolicy(request), + [this](grpc::ClientContext& context, Options const& options, + google::identity::accesscontextmanager::v1:: + DeleteAccessPolicyRequest const& request) { + return stub_->DeleteAccessPolicy(context, options, request); + }, + *current, request, __func__); +} + +future> +AccessContextManagerConnectionImpl::DeleteAccessPolicy( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteAccessPolicy", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::identity::accesscontextmanager::v1:: + AccessContextManagerOperationMetadata>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::identity::accesscontextmanager::v1:: + AccessContextManagerOperationMetadata>, + polling_policy(*current), __func__); +} + StreamRange AccessContextManagerConnectionImpl::ListAccessLevels( google::identity::accesscontextmanager::v1::ListAccessLevelsRequest @@ -342,6 +510,61 @@ AccessContextManagerConnectionImpl::CreateAccessLevel( polling_policy(*current), __func__); } +StatusOr +AccessContextManagerConnectionImpl::CreateAccessLevel( + ExperimentalTag, NoAwaitTag, + google::identity::accesscontextmanager::v1::CreateAccessLevelRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateAccessLevel(request), + [this](grpc::ClientContext& context, Options const& options, + google::identity::accesscontextmanager::v1:: + CreateAccessLevelRequest const& request) { + return stub_->CreateAccessLevel(context, options, request); + }, + *current, request, __func__); +} + +future> +AccessContextManagerConnectionImpl::CreateAccessLevel( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to CreateAccessLevel", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::identity::accesscontextmanager::v1::AccessLevel>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::identity::accesscontextmanager::v1::AccessLevel>, + polling_policy(*current), __func__); +} + future> AccessContextManagerConnectionImpl::UpdateAccessLevel( google::identity::accesscontextmanager::v1::UpdateAccessLevelRequest const& @@ -382,6 +605,61 @@ AccessContextManagerConnectionImpl::UpdateAccessLevel( polling_policy(*current), __func__); } +StatusOr +AccessContextManagerConnectionImpl::UpdateAccessLevel( + ExperimentalTag, NoAwaitTag, + google::identity::accesscontextmanager::v1::UpdateAccessLevelRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UpdateAccessLevel(request), + [this](grpc::ClientContext& context, Options const& options, + google::identity::accesscontextmanager::v1:: + UpdateAccessLevelRequest const& request) { + return stub_->UpdateAccessLevel(context, options, request); + }, + *current, request, __func__); +} + +future> +AccessContextManagerConnectionImpl::UpdateAccessLevel( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to UpdateAccessLevel", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::identity::accesscontextmanager::v1::AccessLevel>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::identity::accesscontextmanager::v1::AccessLevel>, + polling_policy(*current), __func__); +} + future> AccessContextManagerConnectionImpl::DeleteAccessLevel( @@ -425,6 +703,65 @@ AccessContextManagerConnectionImpl::DeleteAccessLevel( polling_policy(*current), __func__); } +StatusOr +AccessContextManagerConnectionImpl::DeleteAccessLevel( + ExperimentalTag, NoAwaitTag, + google::identity::accesscontextmanager::v1::DeleteAccessLevelRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteAccessLevel(request), + [this](grpc::ClientContext& context, Options const& options, + google::identity::accesscontextmanager::v1:: + DeleteAccessLevelRequest const& request) { + return stub_->DeleteAccessLevel(context, options, request); + }, + *current, request, __func__); +} + +future> +AccessContextManagerConnectionImpl::DeleteAccessLevel( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteAccessLevel", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::identity::accesscontextmanager::v1:: + AccessContextManagerOperationMetadata>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::identity::accesscontextmanager::v1:: + AccessContextManagerOperationMetadata>, + polling_policy(*current), __func__); +} + future> AccessContextManagerConnectionImpl::ReplaceAccessLevels( @@ -467,6 +804,63 @@ AccessContextManagerConnectionImpl::ReplaceAccessLevels( polling_policy(*current), __func__); } +StatusOr +AccessContextManagerConnectionImpl::ReplaceAccessLevels( + ExperimentalTag, NoAwaitTag, + google::identity::accesscontextmanager::v1:: + ReplaceAccessLevelsRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->ReplaceAccessLevels(request), + [this](grpc::ClientContext& context, Options const& options, + google::identity::accesscontextmanager::v1:: + ReplaceAccessLevelsRequest const& request) { + return stub_->ReplaceAccessLevels(context, options, request); + }, + *current, request, __func__); +} + +future> +AccessContextManagerConnectionImpl::ReplaceAccessLevels( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to ReplaceAccessLevels", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::identity::accesscontextmanager::v1::ReplaceAccessLevelsResponse>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::identity::accesscontextmanager::v1:: + ReplaceAccessLevelsResponse>, + polling_policy(*current), __func__); +} + StreamRange AccessContextManagerConnectionImpl::ListServicePerimeters( google::identity::accesscontextmanager::v1::ListServicePerimetersRequest @@ -558,27 +952,179 @@ AccessContextManagerConnectionImpl::CreateServicePerimeter( }, &google::cloud::internal::ExtractLongRunningResultResponse< google::identity::accesscontextmanager::v1::ServicePerimeter>, - retry_policy(*current), backoff_policy(*current), idempotent, + retry_policy(*current), backoff_policy(*current), idempotent, + polling_policy(*current), __func__); +} + +StatusOr +AccessContextManagerConnectionImpl::CreateServicePerimeter( + ExperimentalTag, NoAwaitTag, + google::identity::accesscontextmanager::v1:: + CreateServicePerimeterRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateServicePerimeter(request), + [this](grpc::ClientContext& context, Options const& options, + google::identity::accesscontextmanager::v1:: + CreateServicePerimeterRequest const& request) { + return stub_->CreateServicePerimeter(context, options, request); + }, + *current, request, __func__); +} + +future> +AccessContextManagerConnectionImpl::CreateServicePerimeter( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to CreateServicePerimeter", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::identity::accesscontextmanager::v1::ServicePerimeter>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::identity::accesscontextmanager::v1::ServicePerimeter>, + polling_policy(*current), __func__); +} + +future> +AccessContextManagerConnectionImpl::UpdateServicePerimeter( + google::identity::accesscontextmanager::v1:: + UpdateServicePerimeterRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + auto request_copy = request; + auto const idempotent = + idempotency_policy(*current)->UpdateServicePerimeter(request_copy); + return google::cloud::internal::AsyncLongRunningOperation< + google::identity::accesscontextmanager::v1::ServicePerimeter>( + background_->cq(), current, std::move(request_copy), + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::identity::accesscontextmanager::v1:: + UpdateServicePerimeterRequest const& request) { + return stub->AsyncUpdateServicePerimeter(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::identity::accesscontextmanager::v1::ServicePerimeter>, + retry_policy(*current), backoff_policy(*current), idempotent, + polling_policy(*current), __func__); +} + +StatusOr +AccessContextManagerConnectionImpl::UpdateServicePerimeter( + ExperimentalTag, NoAwaitTag, + google::identity::accesscontextmanager::v1:: + UpdateServicePerimeterRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UpdateServicePerimeter(request), + [this](grpc::ClientContext& context, Options const& options, + google::identity::accesscontextmanager::v1:: + UpdateServicePerimeterRequest const& request) { + return stub_->UpdateServicePerimeter(context, options, request); + }, + *current, request, __func__); +} + +future> +AccessContextManagerConnectionImpl::UpdateServicePerimeter( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to UpdateServicePerimeter", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::identity::accesscontextmanager::v1::ServicePerimeter>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::identity::accesscontextmanager::v1::ServicePerimeter>, polling_policy(*current), __func__); } -future> -AccessContextManagerConnectionImpl::UpdateServicePerimeter( +future> +AccessContextManagerConnectionImpl::DeleteServicePerimeter( google::identity::accesscontextmanager::v1:: - UpdateServicePerimeterRequest const& request) { + DeleteServicePerimeterRequest const& request) { auto current = google::cloud::internal::SaveCurrentOptions(); auto request_copy = request; auto const idempotent = - idempotency_policy(*current)->UpdateServicePerimeter(request_copy); + idempotency_policy(*current)->DeleteServicePerimeter(request_copy); return google::cloud::internal::AsyncLongRunningOperation< - google::identity::accesscontextmanager::v1::ServicePerimeter>( + google::identity::accesscontextmanager::v1:: + AccessContextManagerOperationMetadata>( background_->cq(), current, std::move(request_copy), [stub = stub_](google::cloud::CompletionQueue& cq, std::shared_ptr context, google::cloud::internal::ImmutableOptions options, google::identity::accesscontextmanager::v1:: - UpdateServicePerimeterRequest const& request) { - return stub->AsyncUpdateServicePerimeter(cq, std::move(context), + DeleteServicePerimeterRequest const& request) { + return stub->AsyncDeleteServicePerimeter(cq, std::move(context), std::move(options), request); }, [stub = stub_](google::cloud::CompletionQueue& cq, @@ -596,33 +1142,51 @@ AccessContextManagerConnectionImpl::UpdateServicePerimeter( return stub->AsyncCancelOperation(cq, std::move(context), std::move(options), request); }, - &google::cloud::internal::ExtractLongRunningResultResponse< - google::identity::accesscontextmanager::v1::ServicePerimeter>, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::identity::accesscontextmanager::v1:: + AccessContextManagerOperationMetadata>, retry_policy(*current), backoff_policy(*current), idempotent, polling_policy(*current), __func__); } -future> +StatusOr AccessContextManagerConnectionImpl::DeleteServicePerimeter( + ExperimentalTag, NoAwaitTag, google::identity::accesscontextmanager::v1:: DeleteServicePerimeterRequest const& request) { auto current = google::cloud::internal::SaveCurrentOptions(); - auto request_copy = request; - auto const idempotent = - idempotency_policy(*current)->DeleteServicePerimeter(request_copy); - return google::cloud::internal::AsyncLongRunningOperation< + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteServicePerimeter(request), + [this](grpc::ClientContext& context, Options const& options, + google::identity::accesscontextmanager::v1:: + DeleteServicePerimeterRequest const& request) { + return stub_->DeleteServicePerimeter(context, options, request); + }, + *current, request, __func__); +} + +future> +AccessContextManagerConnectionImpl::DeleteServicePerimeter( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteServicePerimeter", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< google::identity::accesscontextmanager::v1:: AccessContextManagerOperationMetadata>( - background_->cq(), current, std::move(request_copy), - [stub = stub_](google::cloud::CompletionQueue& cq, - std::shared_ptr context, - google::cloud::internal::ImmutableOptions options, - google::identity::accesscontextmanager::v1:: - DeleteServicePerimeterRequest const& request) { - return stub->AsyncDeleteServicePerimeter(cq, std::move(context), - std::move(options), request); - }, + background_->cq(), current, operation, [stub = stub_](google::cloud::CompletionQueue& cq, std::shared_ptr context, google::cloud::internal::ImmutableOptions options, @@ -641,7 +1205,6 @@ AccessContextManagerConnectionImpl::DeleteServicePerimeter( &google::cloud::internal::ExtractLongRunningResultMetadata< google::identity::accesscontextmanager::v1:: AccessContextManagerOperationMetadata>, - retry_policy(*current), backoff_policy(*current), idempotent, polling_policy(*current), __func__); } @@ -688,6 +1251,65 @@ AccessContextManagerConnectionImpl::ReplaceServicePerimeters( polling_policy(*current), __func__); } +StatusOr +AccessContextManagerConnectionImpl::ReplaceServicePerimeters( + ExperimentalTag, NoAwaitTag, + google::identity::accesscontextmanager::v1:: + ReplaceServicePerimetersRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->ReplaceServicePerimeters(request), + [this](grpc::ClientContext& context, Options const& options, + google::identity::accesscontextmanager::v1:: + ReplaceServicePerimetersRequest const& request) { + return stub_->ReplaceServicePerimeters(context, options, request); + }, + *current, request, __func__); +} + +future> +AccessContextManagerConnectionImpl::ReplaceServicePerimeters( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to ReplaceServicePerimeters", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::identity::accesscontextmanager::v1:: + ReplaceServicePerimetersResponse>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::identity::accesscontextmanager::v1:: + ReplaceServicePerimetersResponse>, + polling_policy(*current), __func__); +} + future> AccessContextManagerConnectionImpl::CommitServicePerimeters( @@ -731,6 +1353,64 @@ AccessContextManagerConnectionImpl::CommitServicePerimeters( polling_policy(*current), __func__); } +StatusOr +AccessContextManagerConnectionImpl::CommitServicePerimeters( + ExperimentalTag, NoAwaitTag, + google::identity::accesscontextmanager::v1:: + CommitServicePerimetersRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CommitServicePerimeters(request), + [this](grpc::ClientContext& context, Options const& options, + google::identity::accesscontextmanager::v1:: + CommitServicePerimetersRequest const& request) { + return stub_->CommitServicePerimeters(context, options, request); + }, + *current, request, __func__); +} + +future> +AccessContextManagerConnectionImpl::CommitServicePerimeters( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to CommitServicePerimeters", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::identity::accesscontextmanager::v1:: + CommitServicePerimetersResponse>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::identity::accesscontextmanager::v1:: + CommitServicePerimetersResponse>, + polling_policy(*current), __func__); +} + StreamRange AccessContextManagerConnectionImpl::ListGcpUserAccessBindings( google::identity::accesscontextmanager::v1::ListGcpUserAccessBindingsRequest @@ -828,6 +1508,62 @@ AccessContextManagerConnectionImpl::CreateGcpUserAccessBinding( polling_policy(*current), __func__); } +StatusOr +AccessContextManagerConnectionImpl::CreateGcpUserAccessBinding( + ExperimentalTag, NoAwaitTag, + google::identity::accesscontextmanager::v1:: + CreateGcpUserAccessBindingRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateGcpUserAccessBinding(request), + [this](grpc::ClientContext& context, Options const& options, + google::identity::accesscontextmanager::v1:: + CreateGcpUserAccessBindingRequest const& request) { + return stub_->CreateGcpUserAccessBinding(context, options, request); + }, + *current, request, __func__); +} + +future< + StatusOr> +AccessContextManagerConnectionImpl::CreateGcpUserAccessBinding( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to CreateGcpUserAccessBinding", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::identity::accesscontextmanager::v1::GcpUserAccessBinding>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::identity::accesscontextmanager::v1::GcpUserAccessBinding>, + polling_policy(*current), __func__); +} + future< StatusOr> AccessContextManagerConnectionImpl::UpdateGcpUserAccessBinding( @@ -869,6 +1605,62 @@ AccessContextManagerConnectionImpl::UpdateGcpUserAccessBinding( polling_policy(*current), __func__); } +StatusOr +AccessContextManagerConnectionImpl::UpdateGcpUserAccessBinding( + ExperimentalTag, NoAwaitTag, + google::identity::accesscontextmanager::v1:: + UpdateGcpUserAccessBindingRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UpdateGcpUserAccessBinding(request), + [this](grpc::ClientContext& context, Options const& options, + google::identity::accesscontextmanager::v1:: + UpdateGcpUserAccessBindingRequest const& request) { + return stub_->UpdateGcpUserAccessBinding(context, options, request); + }, + *current, request, __func__); +} + +future< + StatusOr> +AccessContextManagerConnectionImpl::UpdateGcpUserAccessBinding( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to UpdateGcpUserAccessBinding", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::identity::accesscontextmanager::v1::GcpUserAccessBinding>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::identity::accesscontextmanager::v1::GcpUserAccessBinding>, + polling_policy(*current), __func__); +} + future> AccessContextManagerConnectionImpl::DeleteGcpUserAccessBinding( @@ -912,6 +1704,65 @@ AccessContextManagerConnectionImpl::DeleteGcpUserAccessBinding( polling_policy(*current), __func__); } +StatusOr +AccessContextManagerConnectionImpl::DeleteGcpUserAccessBinding( + ExperimentalTag, NoAwaitTag, + google::identity::accesscontextmanager::v1:: + DeleteGcpUserAccessBindingRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteGcpUserAccessBinding(request), + [this](grpc::ClientContext& context, Options const& options, + google::identity::accesscontextmanager::v1:: + DeleteGcpUserAccessBindingRequest const& request) { + return stub_->DeleteGcpUserAccessBinding(context, options, request); + }, + *current, request, __func__); +} + +future> +AccessContextManagerConnectionImpl::DeleteGcpUserAccessBinding( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteGcpUserAccessBinding", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::identity::accesscontextmanager::v1:: + GcpUserAccessBindingOperationMetadata>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::identity::accesscontextmanager::v1:: + GcpUserAccessBindingOperationMetadata>, + polling_policy(*current), __func__); +} + StatusOr AccessContextManagerConnectionImpl::SetIamPolicy( google::iam::v1::SetIamPolicyRequest const& request) { diff --git a/google/cloud/accesscontextmanager/v1/internal/access_context_manager_connection_impl.h b/google/cloud/accesscontextmanager/v1/internal/access_context_manager_connection_impl.h index 43a8768a60698..61c217c528942 100644 --- a/google/cloud/accesscontextmanager/v1/internal/access_context_manager_connection_impl.h +++ b/google/cloud/accesscontextmanager/v1/internal/access_context_manager_connection_impl.h @@ -69,15 +69,43 @@ class AccessContextManagerConnectionImpl google::identity::accesscontextmanager::v1::AccessPolicy const& request) override; + StatusOr CreateAccessPolicy( + ExperimentalTag, NoAwaitTag, + google::identity::accesscontextmanager::v1::AccessPolicy const& request) + override; + + future> + CreateAccessPolicy(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateAccessPolicy(google::identity::accesscontextmanager::v1:: UpdateAccessPolicyRequest const& request) override; + StatusOr UpdateAccessPolicy( + ExperimentalTag, NoAwaitTag, + google::identity::accesscontextmanager::v1:: + UpdateAccessPolicyRequest const& request) override; + + future> + UpdateAccessPolicy(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteAccessPolicy(google::identity::accesscontextmanager::v1:: DeleteAccessPolicyRequest const& request) override; + StatusOr DeleteAccessPolicy( + ExperimentalTag, NoAwaitTag, + google::identity::accesscontextmanager::v1:: + DeleteAccessPolicyRequest const& request) override; + + future> + DeleteAccessPolicy(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListAccessLevels( google::identity::accesscontextmanager::v1::ListAccessLevelsRequest @@ -92,20 +120,58 @@ class AccessContextManagerConnectionImpl CreateAccessLevel(google::identity::accesscontextmanager::v1:: CreateAccessLevelRequest const& request) override; + StatusOr CreateAccessLevel( + ExperimentalTag, NoAwaitTag, + google::identity::accesscontextmanager::v1:: + CreateAccessLevelRequest const& request) override; + + future> + CreateAccessLevel(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateAccessLevel(google::identity::accesscontextmanager::v1:: UpdateAccessLevelRequest const& request) override; + StatusOr UpdateAccessLevel( + ExperimentalTag, NoAwaitTag, + google::identity::accesscontextmanager::v1:: + UpdateAccessLevelRequest const& request) override; + + future> + UpdateAccessLevel(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteAccessLevel(google::identity::accesscontextmanager::v1:: DeleteAccessLevelRequest const& request) override; + StatusOr DeleteAccessLevel( + ExperimentalTag, NoAwaitTag, + google::identity::accesscontextmanager::v1:: + DeleteAccessLevelRequest const& request) override; + + future> + DeleteAccessLevel(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ReplaceAccessLevels(google::identity::accesscontextmanager::v1:: ReplaceAccessLevelsRequest const& request) override; + StatusOr ReplaceAccessLevels( + ExperimentalTag, NoAwaitTag, + google::identity::accesscontextmanager::v1:: + ReplaceAccessLevelsRequest const& request) override; + + future> + ReplaceAccessLevels(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListServicePerimeters( google::identity::accesscontextmanager::v1::ListServicePerimetersRequest @@ -120,29 +186,82 @@ class AccessContextManagerConnectionImpl google::identity::accesscontextmanager::v1:: CreateServicePerimeterRequest const& request) override; + StatusOr CreateServicePerimeter( + ExperimentalTag, NoAwaitTag, + google::identity::accesscontextmanager::v1:: + CreateServicePerimeterRequest const& request) override; + + future> + CreateServicePerimeter( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateServicePerimeter( google::identity::accesscontextmanager::v1:: UpdateServicePerimeterRequest const& request) override; + StatusOr UpdateServicePerimeter( + ExperimentalTag, NoAwaitTag, + google::identity::accesscontextmanager::v1:: + UpdateServicePerimeterRequest const& request) override; + + future> + UpdateServicePerimeter( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteServicePerimeter( google::identity::accesscontextmanager::v1:: DeleteServicePerimeterRequest const& request) override; + StatusOr DeleteServicePerimeter( + ExperimentalTag, NoAwaitTag, + google::identity::accesscontextmanager::v1:: + DeleteServicePerimeterRequest const& request) override; + + future> + DeleteServicePerimeter( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ReplaceServicePerimeters( google::identity::accesscontextmanager::v1:: ReplaceServicePerimetersRequest const& request) override; + StatusOr ReplaceServicePerimeters( + ExperimentalTag, NoAwaitTag, + google::identity::accesscontextmanager::v1:: + ReplaceServicePerimetersRequest const& request) override; + + future> + ReplaceServicePerimeters( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> CommitServicePerimeters( google::identity::accesscontextmanager::v1:: CommitServicePerimetersRequest const& request) override; + StatusOr CommitServicePerimeters( + ExperimentalTag, NoAwaitTag, + google::identity::accesscontextmanager::v1:: + CommitServicePerimetersRequest const& request) override; + + future> + CommitServicePerimeters( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListGcpUserAccessBindings( google::identity::accesscontextmanager::v1:: @@ -159,18 +278,51 @@ class AccessContextManagerConnectionImpl google::identity::accesscontextmanager::v1:: CreateGcpUserAccessBindingRequest const& request) override; + StatusOr CreateGcpUserAccessBinding( + ExperimentalTag, NoAwaitTag, + google::identity::accesscontextmanager::v1:: + CreateGcpUserAccessBindingRequest const& request) override; + + future> + CreateGcpUserAccessBinding( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateGcpUserAccessBinding( google::identity::accesscontextmanager::v1:: UpdateGcpUserAccessBindingRequest const& request) override; + StatusOr UpdateGcpUserAccessBinding( + ExperimentalTag, NoAwaitTag, + google::identity::accesscontextmanager::v1:: + UpdateGcpUserAccessBindingRequest const& request) override; + + future> + UpdateGcpUserAccessBinding( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteGcpUserAccessBinding( google::identity::accesscontextmanager::v1:: DeleteGcpUserAccessBindingRequest const& request) override; + StatusOr DeleteGcpUserAccessBinding( + ExperimentalTag, NoAwaitTag, + google::identity::accesscontextmanager::v1:: + DeleteGcpUserAccessBindingRequest const& request) override; + + future> + DeleteGcpUserAccessBinding( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr SetIamPolicy( google::iam::v1::SetIamPolicyRequest const& request) override; diff --git a/google/cloud/accesscontextmanager/v1/internal/access_context_manager_tracing_connection.cc b/google/cloud/accesscontextmanager/v1/internal/access_context_manager_tracing_connection.cc index d26c2322b76aa..0047247957a16 100644 --- a/google/cloud/accesscontextmanager/v1/internal/access_context_manager_tracing_connection.cc +++ b/google/cloud/accesscontextmanager/v1/internal/access_context_manager_tracing_connection.cc @@ -70,6 +70,30 @@ AccessContextManagerTracingConnection::CreateAccessPolicy( child_->CreateAccessPolicy(request)); } +StatusOr +AccessContextManagerTracingConnection::CreateAccessPolicy( + ExperimentalTag, NoAwaitTag, + google::identity::accesscontextmanager::v1::AccessPolicy const& request) { + auto span = internal::MakeSpan( + "accesscontextmanager_v1::AccessContextManagerConnection::" + "CreateAccessPolicy"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->CreateAccessPolicy(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +AccessContextManagerTracingConnection::CreateAccessPolicy( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "accesscontextmanager_v1::AccessContextManagerConnection::" + "CreateAccessPolicy"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->CreateAccessPolicy( + ExperimentalTag{}, operation)); +} + future> AccessContextManagerTracingConnection::UpdateAccessPolicy( google::identity::accesscontextmanager::v1::UpdateAccessPolicyRequest const& @@ -82,6 +106,31 @@ AccessContextManagerTracingConnection::UpdateAccessPolicy( child_->UpdateAccessPolicy(request)); } +StatusOr +AccessContextManagerTracingConnection::UpdateAccessPolicy( + ExperimentalTag, NoAwaitTag, + google::identity::accesscontextmanager::v1::UpdateAccessPolicyRequest const& + request) { + auto span = internal::MakeSpan( + "accesscontextmanager_v1::AccessContextManagerConnection::" + "UpdateAccessPolicy"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->UpdateAccessPolicy(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +AccessContextManagerTracingConnection::UpdateAccessPolicy( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "accesscontextmanager_v1::AccessContextManagerConnection::" + "UpdateAccessPolicy"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->UpdateAccessPolicy( + ExperimentalTag{}, operation)); +} + future> AccessContextManagerTracingConnection::DeleteAccessPolicy( @@ -95,6 +144,32 @@ AccessContextManagerTracingConnection::DeleteAccessPolicy( child_->DeleteAccessPolicy(request)); } +StatusOr +AccessContextManagerTracingConnection::DeleteAccessPolicy( + ExperimentalTag, NoAwaitTag, + google::identity::accesscontextmanager::v1::DeleteAccessPolicyRequest const& + request) { + auto span = internal::MakeSpan( + "accesscontextmanager_v1::AccessContextManagerConnection::" + "DeleteAccessPolicy"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->DeleteAccessPolicy(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +AccessContextManagerTracingConnection::DeleteAccessPolicy( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "accesscontextmanager_v1::AccessContextManagerConnection::" + "DeleteAccessPolicy"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->DeleteAccessPolicy( + ExperimentalTag{}, operation)); +} + StreamRange AccessContextManagerTracingConnection::ListAccessLevels( google::identity::accesscontextmanager::v1::ListAccessLevelsRequest @@ -131,6 +206,31 @@ AccessContextManagerTracingConnection::CreateAccessLevel( return internal::EndSpan(std::move(span), child_->CreateAccessLevel(request)); } +StatusOr +AccessContextManagerTracingConnection::CreateAccessLevel( + ExperimentalTag, NoAwaitTag, + google::identity::accesscontextmanager::v1::CreateAccessLevelRequest const& + request) { + auto span = internal::MakeSpan( + "accesscontextmanager_v1::AccessContextManagerConnection::" + "CreateAccessLevel"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->CreateAccessLevel(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +AccessContextManagerTracingConnection::CreateAccessLevel( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "accesscontextmanager_v1::AccessContextManagerConnection::" + "CreateAccessLevel"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->CreateAccessLevel(ExperimentalTag{}, operation)); +} + future> AccessContextManagerTracingConnection::UpdateAccessLevel( google::identity::accesscontextmanager::v1::UpdateAccessLevelRequest const& @@ -142,6 +242,31 @@ AccessContextManagerTracingConnection::UpdateAccessLevel( return internal::EndSpan(std::move(span), child_->UpdateAccessLevel(request)); } +StatusOr +AccessContextManagerTracingConnection::UpdateAccessLevel( + ExperimentalTag, NoAwaitTag, + google::identity::accesscontextmanager::v1::UpdateAccessLevelRequest const& + request) { + auto span = internal::MakeSpan( + "accesscontextmanager_v1::AccessContextManagerConnection::" + "UpdateAccessLevel"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->UpdateAccessLevel(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +AccessContextManagerTracingConnection::UpdateAccessLevel( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "accesscontextmanager_v1::AccessContextManagerConnection::" + "UpdateAccessLevel"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->UpdateAccessLevel(ExperimentalTag{}, operation)); +} + future> AccessContextManagerTracingConnection::DeleteAccessLevel( @@ -154,6 +279,32 @@ AccessContextManagerTracingConnection::DeleteAccessLevel( return internal::EndSpan(std::move(span), child_->DeleteAccessLevel(request)); } +StatusOr +AccessContextManagerTracingConnection::DeleteAccessLevel( + ExperimentalTag, NoAwaitTag, + google::identity::accesscontextmanager::v1::DeleteAccessLevelRequest const& + request) { + auto span = internal::MakeSpan( + "accesscontextmanager_v1::AccessContextManagerConnection::" + "DeleteAccessLevel"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->DeleteAccessLevel(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +AccessContextManagerTracingConnection::DeleteAccessLevel( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "accesscontextmanager_v1::AccessContextManagerConnection::" + "DeleteAccessLevel"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->DeleteAccessLevel(ExperimentalTag{}, operation)); +} + future> AccessContextManagerTracingConnection::ReplaceAccessLevels( @@ -167,6 +318,32 @@ AccessContextManagerTracingConnection::ReplaceAccessLevels( child_->ReplaceAccessLevels(request)); } +StatusOr +AccessContextManagerTracingConnection::ReplaceAccessLevels( + ExperimentalTag, NoAwaitTag, + google::identity::accesscontextmanager::v1:: + ReplaceAccessLevelsRequest const& request) { + auto span = internal::MakeSpan( + "accesscontextmanager_v1::AccessContextManagerConnection::" + "ReplaceAccessLevels"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->ReplaceAccessLevels(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +AccessContextManagerTracingConnection::ReplaceAccessLevels( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "accesscontextmanager_v1::AccessContextManagerConnection::" + "ReplaceAccessLevels"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->ReplaceAccessLevels( + ExperimentalTag{}, operation)); +} + StreamRange AccessContextManagerTracingConnection::ListServicePerimeters( google::identity::accesscontextmanager::v1::ListServicePerimetersRequest @@ -204,6 +381,31 @@ AccessContextManagerTracingConnection::CreateServicePerimeter( child_->CreateServicePerimeter(request)); } +StatusOr +AccessContextManagerTracingConnection::CreateServicePerimeter( + ExperimentalTag, NoAwaitTag, + google::identity::accesscontextmanager::v1:: + CreateServicePerimeterRequest const& request) { + auto span = internal::MakeSpan( + "accesscontextmanager_v1::AccessContextManagerConnection::" + "CreateServicePerimeter"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->CreateServicePerimeter(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +AccessContextManagerTracingConnection::CreateServicePerimeter( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "accesscontextmanager_v1::AccessContextManagerConnection::" + "CreateServicePerimeter"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->CreateServicePerimeter( + ExperimentalTag{}, operation)); +} + future> AccessContextManagerTracingConnection::UpdateServicePerimeter( google::identity::accesscontextmanager::v1:: @@ -216,6 +418,31 @@ AccessContextManagerTracingConnection::UpdateServicePerimeter( child_->UpdateServicePerimeter(request)); } +StatusOr +AccessContextManagerTracingConnection::UpdateServicePerimeter( + ExperimentalTag, NoAwaitTag, + google::identity::accesscontextmanager::v1:: + UpdateServicePerimeterRequest const& request) { + auto span = internal::MakeSpan( + "accesscontextmanager_v1::AccessContextManagerConnection::" + "UpdateServicePerimeter"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->UpdateServicePerimeter(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +AccessContextManagerTracingConnection::UpdateServicePerimeter( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "accesscontextmanager_v1::AccessContextManagerConnection::" + "UpdateServicePerimeter"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->UpdateServicePerimeter( + ExperimentalTag{}, operation)); +} + future> AccessContextManagerTracingConnection::DeleteServicePerimeter( @@ -229,6 +456,32 @@ AccessContextManagerTracingConnection::DeleteServicePerimeter( child_->DeleteServicePerimeter(request)); } +StatusOr +AccessContextManagerTracingConnection::DeleteServicePerimeter( + ExperimentalTag, NoAwaitTag, + google::identity::accesscontextmanager::v1:: + DeleteServicePerimeterRequest const& request) { + auto span = internal::MakeSpan( + "accesscontextmanager_v1::AccessContextManagerConnection::" + "DeleteServicePerimeter"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->DeleteServicePerimeter(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +AccessContextManagerTracingConnection::DeleteServicePerimeter( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "accesscontextmanager_v1::AccessContextManagerConnection::" + "DeleteServicePerimeter"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->DeleteServicePerimeter( + ExperimentalTag{}, operation)); +} + future> AccessContextManagerTracingConnection::ReplaceServicePerimeters( @@ -242,6 +495,32 @@ AccessContextManagerTracingConnection::ReplaceServicePerimeters( child_->ReplaceServicePerimeters(request)); } +StatusOr +AccessContextManagerTracingConnection::ReplaceServicePerimeters( + ExperimentalTag, NoAwaitTag, + google::identity::accesscontextmanager::v1:: + ReplaceServicePerimetersRequest const& request) { + auto span = internal::MakeSpan( + "accesscontextmanager_v1::AccessContextManagerConnection::" + "ReplaceServicePerimeters"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->ReplaceServicePerimeters(ExperimentalTag{}, NoAwaitTag{}, + request)); +} + +future> +AccessContextManagerTracingConnection::ReplaceServicePerimeters( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "accesscontextmanager_v1::AccessContextManagerConnection::" + "ReplaceServicePerimeters"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->ReplaceServicePerimeters( + ExperimentalTag{}, operation)); +} + future> AccessContextManagerTracingConnection::CommitServicePerimeters( @@ -255,6 +534,32 @@ AccessContextManagerTracingConnection::CommitServicePerimeters( child_->CommitServicePerimeters(request)); } +StatusOr +AccessContextManagerTracingConnection::CommitServicePerimeters( + ExperimentalTag, NoAwaitTag, + google::identity::accesscontextmanager::v1:: + CommitServicePerimetersRequest const& request) { + auto span = internal::MakeSpan( + "accesscontextmanager_v1::AccessContextManagerConnection::" + "CommitServicePerimeters"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->CommitServicePerimeters(ExperimentalTag{}, NoAwaitTag{}, + request)); +} + +future> +AccessContextManagerTracingConnection::CommitServicePerimeters( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "accesscontextmanager_v1::AccessContextManagerConnection::" + "CommitServicePerimeters"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->CommitServicePerimeters( + ExperimentalTag{}, operation)); +} + StreamRange AccessContextManagerTracingConnection::ListGcpUserAccessBindings( google::identity::accesscontextmanager::v1::ListGcpUserAccessBindingsRequest @@ -293,6 +598,32 @@ AccessContextManagerTracingConnection::CreateGcpUserAccessBinding( child_->CreateGcpUserAccessBinding(request)); } +StatusOr +AccessContextManagerTracingConnection::CreateGcpUserAccessBinding( + ExperimentalTag, NoAwaitTag, + google::identity::accesscontextmanager::v1:: + CreateGcpUserAccessBindingRequest const& request) { + auto span = internal::MakeSpan( + "accesscontextmanager_v1::AccessContextManagerConnection::" + "CreateGcpUserAccessBinding"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->CreateGcpUserAccessBinding(ExperimentalTag{}, NoAwaitTag{}, + request)); +} + +future< + StatusOr> +AccessContextManagerTracingConnection::CreateGcpUserAccessBinding( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "accesscontextmanager_v1::AccessContextManagerConnection::" + "CreateGcpUserAccessBinding"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->CreateGcpUserAccessBinding( + ExperimentalTag{}, operation)); +} + future< StatusOr> AccessContextManagerTracingConnection::UpdateGcpUserAccessBinding( @@ -306,6 +637,32 @@ AccessContextManagerTracingConnection::UpdateGcpUserAccessBinding( child_->UpdateGcpUserAccessBinding(request)); } +StatusOr +AccessContextManagerTracingConnection::UpdateGcpUserAccessBinding( + ExperimentalTag, NoAwaitTag, + google::identity::accesscontextmanager::v1:: + UpdateGcpUserAccessBindingRequest const& request) { + auto span = internal::MakeSpan( + "accesscontextmanager_v1::AccessContextManagerConnection::" + "UpdateGcpUserAccessBinding"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->UpdateGcpUserAccessBinding(ExperimentalTag{}, NoAwaitTag{}, + request)); +} + +future< + StatusOr> +AccessContextManagerTracingConnection::UpdateGcpUserAccessBinding( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "accesscontextmanager_v1::AccessContextManagerConnection::" + "UpdateGcpUserAccessBinding"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->UpdateGcpUserAccessBinding( + ExperimentalTag{}, operation)); +} + future> AccessContextManagerTracingConnection::DeleteGcpUserAccessBinding( @@ -319,6 +676,32 @@ AccessContextManagerTracingConnection::DeleteGcpUserAccessBinding( child_->DeleteGcpUserAccessBinding(request)); } +StatusOr +AccessContextManagerTracingConnection::DeleteGcpUserAccessBinding( + ExperimentalTag, NoAwaitTag, + google::identity::accesscontextmanager::v1:: + DeleteGcpUserAccessBindingRequest const& request) { + auto span = internal::MakeSpan( + "accesscontextmanager_v1::AccessContextManagerConnection::" + "DeleteGcpUserAccessBinding"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->DeleteGcpUserAccessBinding(ExperimentalTag{}, NoAwaitTag{}, + request)); +} + +future> +AccessContextManagerTracingConnection::DeleteGcpUserAccessBinding( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "accesscontextmanager_v1::AccessContextManagerConnection::" + "DeleteGcpUserAccessBinding"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->DeleteGcpUserAccessBinding( + ExperimentalTag{}, operation)); +} + StatusOr AccessContextManagerTracingConnection::SetIamPolicy( google::iam::v1::SetIamPolicyRequest const& request) { diff --git a/google/cloud/accesscontextmanager/v1/internal/access_context_manager_tracing_connection.h b/google/cloud/accesscontextmanager/v1/internal/access_context_manager_tracing_connection.h index fdddc5d1acf76..b299304b19381 100644 --- a/google/cloud/accesscontextmanager/v1/internal/access_context_manager_tracing_connection.h +++ b/google/cloud/accesscontextmanager/v1/internal/access_context_manager_tracing_connection.h @@ -56,15 +56,43 @@ class AccessContextManagerTracingConnection google::identity::accesscontextmanager::v1::AccessPolicy const& request) override; + StatusOr CreateAccessPolicy( + ExperimentalTag, NoAwaitTag, + google::identity::accesscontextmanager::v1::AccessPolicy const& request) + override; + + future> + CreateAccessPolicy(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateAccessPolicy(google::identity::accesscontextmanager::v1:: UpdateAccessPolicyRequest const& request) override; + StatusOr UpdateAccessPolicy( + ExperimentalTag, NoAwaitTag, + google::identity::accesscontextmanager::v1:: + UpdateAccessPolicyRequest const& request) override; + + future> + UpdateAccessPolicy(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteAccessPolicy(google::identity::accesscontextmanager::v1:: DeleteAccessPolicyRequest const& request) override; + StatusOr DeleteAccessPolicy( + ExperimentalTag, NoAwaitTag, + google::identity::accesscontextmanager::v1:: + DeleteAccessPolicyRequest const& request) override; + + future> + DeleteAccessPolicy(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListAccessLevels( google::identity::accesscontextmanager::v1::ListAccessLevelsRequest @@ -79,20 +107,58 @@ class AccessContextManagerTracingConnection CreateAccessLevel(google::identity::accesscontextmanager::v1:: CreateAccessLevelRequest const& request) override; + StatusOr CreateAccessLevel( + ExperimentalTag, NoAwaitTag, + google::identity::accesscontextmanager::v1:: + CreateAccessLevelRequest const& request) override; + + future> + CreateAccessLevel(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateAccessLevel(google::identity::accesscontextmanager::v1:: UpdateAccessLevelRequest const& request) override; + StatusOr UpdateAccessLevel( + ExperimentalTag, NoAwaitTag, + google::identity::accesscontextmanager::v1:: + UpdateAccessLevelRequest const& request) override; + + future> + UpdateAccessLevel(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteAccessLevel(google::identity::accesscontextmanager::v1:: DeleteAccessLevelRequest const& request) override; + StatusOr DeleteAccessLevel( + ExperimentalTag, NoAwaitTag, + google::identity::accesscontextmanager::v1:: + DeleteAccessLevelRequest const& request) override; + + future> + DeleteAccessLevel(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ReplaceAccessLevels(google::identity::accesscontextmanager::v1:: ReplaceAccessLevelsRequest const& request) override; + StatusOr ReplaceAccessLevels( + ExperimentalTag, NoAwaitTag, + google::identity::accesscontextmanager::v1:: + ReplaceAccessLevelsRequest const& request) override; + + future> + ReplaceAccessLevels(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListServicePerimeters( google::identity::accesscontextmanager::v1::ListServicePerimetersRequest @@ -107,29 +173,82 @@ class AccessContextManagerTracingConnection google::identity::accesscontextmanager::v1:: CreateServicePerimeterRequest const& request) override; + StatusOr CreateServicePerimeter( + ExperimentalTag, NoAwaitTag, + google::identity::accesscontextmanager::v1:: + CreateServicePerimeterRequest const& request) override; + + future> + CreateServicePerimeter( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateServicePerimeter( google::identity::accesscontextmanager::v1:: UpdateServicePerimeterRequest const& request) override; + StatusOr UpdateServicePerimeter( + ExperimentalTag, NoAwaitTag, + google::identity::accesscontextmanager::v1:: + UpdateServicePerimeterRequest const& request) override; + + future> + UpdateServicePerimeter( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteServicePerimeter( google::identity::accesscontextmanager::v1:: DeleteServicePerimeterRequest const& request) override; + StatusOr DeleteServicePerimeter( + ExperimentalTag, NoAwaitTag, + google::identity::accesscontextmanager::v1:: + DeleteServicePerimeterRequest const& request) override; + + future> + DeleteServicePerimeter( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ReplaceServicePerimeters( google::identity::accesscontextmanager::v1:: ReplaceServicePerimetersRequest const& request) override; + StatusOr ReplaceServicePerimeters( + ExperimentalTag, NoAwaitTag, + google::identity::accesscontextmanager::v1:: + ReplaceServicePerimetersRequest const& request) override; + + future> + ReplaceServicePerimeters( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> CommitServicePerimeters( google::identity::accesscontextmanager::v1:: CommitServicePerimetersRequest const& request) override; + StatusOr CommitServicePerimeters( + ExperimentalTag, NoAwaitTag, + google::identity::accesscontextmanager::v1:: + CommitServicePerimetersRequest const& request) override; + + future> + CommitServicePerimeters( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListGcpUserAccessBindings( google::identity::accesscontextmanager::v1:: @@ -146,18 +265,51 @@ class AccessContextManagerTracingConnection google::identity::accesscontextmanager::v1:: CreateGcpUserAccessBindingRequest const& request) override; + StatusOr CreateGcpUserAccessBinding( + ExperimentalTag, NoAwaitTag, + google::identity::accesscontextmanager::v1:: + CreateGcpUserAccessBindingRequest const& request) override; + + future> + CreateGcpUserAccessBinding( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateGcpUserAccessBinding( google::identity::accesscontextmanager::v1:: UpdateGcpUserAccessBindingRequest const& request) override; + StatusOr UpdateGcpUserAccessBinding( + ExperimentalTag, NoAwaitTag, + google::identity::accesscontextmanager::v1:: + UpdateGcpUserAccessBindingRequest const& request) override; + + future> + UpdateGcpUserAccessBinding( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteGcpUserAccessBinding( google::identity::accesscontextmanager::v1:: DeleteGcpUserAccessBindingRequest const& request) override; + StatusOr DeleteGcpUserAccessBinding( + ExperimentalTag, NoAwaitTag, + google::identity::accesscontextmanager::v1:: + DeleteGcpUserAccessBindingRequest const& request) override; + + future> + DeleteGcpUserAccessBinding( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr SetIamPolicy( google::iam::v1::SetIamPolicyRequest const& request) override; diff --git a/google/cloud/accesscontextmanager/v1/mocks/mock_access_context_manager_connection.h b/google/cloud/accesscontextmanager/v1/mocks/mock_access_context_manager_connection.h index 2efc6eea4ce3b..52593f38a305d 100644 --- a/google/cloud/accesscontextmanager/v1/mocks/mock_access_context_manager_connection.h +++ b/google/cloud/accesscontextmanager/v1/mocks/mock_access_context_manager_connection.h @@ -68,6 +68,19 @@ class MockAccessContextManagerConnection (google::identity::accesscontextmanager::v1::AccessPolicy const& request), (override)); + MOCK_METHOD( + StatusOr, CreateAccessPolicy, + (ExperimentalTag, NoAwaitTag, + google::identity::accesscontextmanager::v1::AccessPolicy const& request), + (override)); + + MOCK_METHOD( + future< + StatusOr>, + CreateAccessPolicy, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future< StatusOr>, @@ -76,6 +89,19 @@ class MockAccessContextManagerConnection UpdateAccessPolicyRequest const& request), (override)); + MOCK_METHOD(StatusOr, UpdateAccessPolicy, + (ExperimentalTag, NoAwaitTag, + google::identity::accesscontextmanager::v1:: + UpdateAccessPolicyRequest const& request), + (override)); + + MOCK_METHOD( + future< + StatusOr>, + UpdateAccessPolicy, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, DeleteAccessPolicy, @@ -83,6 +109,19 @@ class MockAccessContextManagerConnection DeleteAccessPolicyRequest const& request), (override)); + MOCK_METHOD(StatusOr, DeleteAccessPolicy, + (ExperimentalTag, NoAwaitTag, + google::identity::accesscontextmanager::v1:: + DeleteAccessPolicyRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteAccessPolicy, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( (StreamRange), ListAccessLevels, @@ -104,6 +143,18 @@ class MockAccessContextManagerConnection CreateAccessLevelRequest const& request), (override)); + MOCK_METHOD(StatusOr, CreateAccessLevel, + (ExperimentalTag, NoAwaitTag, + google::identity::accesscontextmanager::v1:: + CreateAccessLevelRequest const& request), + (override)); + + MOCK_METHOD( + future>, + CreateAccessLevel, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, UpdateAccessLevel, @@ -111,6 +162,18 @@ class MockAccessContextManagerConnection UpdateAccessLevelRequest const& request), (override)); + MOCK_METHOD(StatusOr, UpdateAccessLevel, + (ExperimentalTag, NoAwaitTag, + google::identity::accesscontextmanager::v1:: + UpdateAccessLevelRequest const& request), + (override)); + + MOCK_METHOD( + future>, + UpdateAccessLevel, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, DeleteAccessLevel, @@ -118,6 +181,19 @@ class MockAccessContextManagerConnection DeleteAccessLevelRequest const& request), (override)); + MOCK_METHOD(StatusOr, DeleteAccessLevel, + (ExperimentalTag, NoAwaitTag, + google::identity::accesscontextmanager::v1:: + DeleteAccessLevelRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteAccessLevel, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, ReplaceAccessLevels, @@ -125,6 +201,19 @@ class MockAccessContextManagerConnection ReplaceAccessLevelsRequest const& request), (override)); + MOCK_METHOD(StatusOr, ReplaceAccessLevels, + (ExperimentalTag, NoAwaitTag, + google::identity::accesscontextmanager::v1:: + ReplaceAccessLevelsRequest const& request), + (override)); + + MOCK_METHOD(future>, + ReplaceAccessLevels, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( (StreamRange< google::identity::accesscontextmanager::v1::ServicePerimeter>), @@ -148,6 +237,19 @@ class MockAccessContextManagerConnection CreateServicePerimeterRequest const& request), (override)); + MOCK_METHOD(StatusOr, CreateServicePerimeter, + (ExperimentalTag, NoAwaitTag, + google::identity::accesscontextmanager::v1:: + CreateServicePerimeterRequest const& request), + (override)); + + MOCK_METHOD( + future>, + CreateServicePerimeter, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, @@ -156,6 +258,19 @@ class MockAccessContextManagerConnection UpdateServicePerimeterRequest const& request), (override)); + MOCK_METHOD(StatusOr, UpdateServicePerimeter, + (ExperimentalTag, NoAwaitTag, + google::identity::accesscontextmanager::v1:: + UpdateServicePerimeterRequest const& request), + (override)); + + MOCK_METHOD( + future>, + UpdateServicePerimeter, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, DeleteServicePerimeter, @@ -163,6 +278,19 @@ class MockAccessContextManagerConnection DeleteServicePerimeterRequest const& request), (override)); + MOCK_METHOD(StatusOr, DeleteServicePerimeter, + (ExperimentalTag, NoAwaitTag, + google::identity::accesscontextmanager::v1:: + DeleteServicePerimeterRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteServicePerimeter, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, ReplaceServicePerimeters, @@ -170,6 +298,20 @@ class MockAccessContextManagerConnection ReplaceServicePerimetersRequest const& request), (override)); + MOCK_METHOD(StatusOr, + ReplaceServicePerimeters, + (ExperimentalTag, NoAwaitTag, + google::identity::accesscontextmanager::v1:: + ReplaceServicePerimetersRequest const& request), + (override)); + + MOCK_METHOD(future>, + ReplaceServicePerimeters, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, CommitServicePerimeters, @@ -177,6 +319,19 @@ class MockAccessContextManagerConnection CommitServicePerimetersRequest const& request), (override)); + MOCK_METHOD(StatusOr, CommitServicePerimeters, + (ExperimentalTag, NoAwaitTag, + google::identity::accesscontextmanager::v1:: + CommitServicePerimetersRequest const& request), + (override)); + + MOCK_METHOD(future>, + CommitServicePerimeters, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( (StreamRange< google::identity::accesscontextmanager::v1::GcpUserAccessBinding>), @@ -201,6 +356,20 @@ class MockAccessContextManagerConnection CreateGcpUserAccessBindingRequest const& request), (override)); + MOCK_METHOD(StatusOr, + CreateGcpUserAccessBinding, + (ExperimentalTag, NoAwaitTag, + google::identity::accesscontextmanager::v1:: + CreateGcpUserAccessBindingRequest const& request), + (override)); + + MOCK_METHOD( + future>, + CreateGcpUserAccessBinding, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, @@ -209,6 +378,20 @@ class MockAccessContextManagerConnection UpdateGcpUserAccessBindingRequest const& request), (override)); + MOCK_METHOD(StatusOr, + UpdateGcpUserAccessBinding, + (ExperimentalTag, NoAwaitTag, + google::identity::accesscontextmanager::v1:: + UpdateGcpUserAccessBindingRequest const& request), + (override)); + + MOCK_METHOD( + future>, + UpdateGcpUserAccessBinding, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, DeleteGcpUserAccessBinding, @@ -216,6 +399,20 @@ class MockAccessContextManagerConnection DeleteGcpUserAccessBindingRequest const& request), (override)); + MOCK_METHOD(StatusOr, + DeleteGcpUserAccessBinding, + (ExperimentalTag, NoAwaitTag, + google::identity::accesscontextmanager::v1:: + DeleteGcpUserAccessBindingRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteGcpUserAccessBinding, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(StatusOr, SetIamPolicy, (google::iam::v1::SetIamPolicyRequest const& request), (override)); diff --git a/google/cloud/advisorynotifications/v1/advisory_notifications_connection.h b/google/cloud/advisorynotifications/v1/advisory_notifications_connection.h index cfb32f9b0ddc7..a2ceed196f87d 100644 --- a/google/cloud/advisorynotifications/v1/advisory_notifications_connection.h +++ b/google/cloud/advisorynotifications/v1/advisory_notifications_connection.h @@ -22,6 +22,7 @@ #include "google/cloud/advisorynotifications/v1/advisory_notifications_connection_idempotency_policy.h" #include "google/cloud/advisorynotifications/v1/internal/advisory_notifications_retry_traits.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/internal/retry_policy_impl.h" #include "google/cloud/options.h" #include "google/cloud/status_or.h" diff --git a/google/cloud/aiplatform/v1/dataset_connection.cc b/google/cloud/aiplatform/v1/dataset_connection.cc index 2f83da7f14199..c29d9e4552def 100644 --- a/google/cloud/aiplatform/v1/dataset_connection.cc +++ b/google/cloud/aiplatform/v1/dataset_connection.cc @@ -46,6 +46,22 @@ DatasetServiceConnection::CreateDataset( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +DatasetServiceConnection::CreateDataset( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::CreateDatasetRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +DatasetServiceConnection::CreateDataset(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr DatasetServiceConnection::GetDataset( google::cloud::aiplatform::v1::GetDatasetRequest const&) { @@ -74,6 +90,22 @@ DatasetServiceConnection::DeleteDataset( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +DatasetServiceConnection::DeleteDataset( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteDatasetRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +DatasetServiceConnection::DeleteDataset(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> DatasetServiceConnection::ImportData( google::cloud::aiplatform::v1::ImportDataRequest const&) { @@ -82,6 +114,21 @@ DatasetServiceConnection::ImportData( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr DatasetServiceConnection::ImportData( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::ImportDataRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +DatasetServiceConnection::ImportData(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> DatasetServiceConnection::ExportData( google::cloud::aiplatform::v1::ExportDataRequest const&) { @@ -90,6 +137,21 @@ DatasetServiceConnection::ExportData( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr DatasetServiceConnection::ExportData( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::ExportDataRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +DatasetServiceConnection::ExportData(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> DatasetServiceConnection::CreateDatasetVersion( google::cloud::aiplatform::v1::CreateDatasetVersionRequest const&) { @@ -98,6 +160,22 @@ DatasetServiceConnection::CreateDatasetVersion( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +DatasetServiceConnection::CreateDatasetVersion( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::CreateDatasetVersionRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +DatasetServiceConnection::CreateDatasetVersion( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr DatasetServiceConnection::UpdateDatasetVersion( google::cloud::aiplatform::v1::UpdateDatasetVersionRequest const&) { @@ -112,6 +190,22 @@ DatasetServiceConnection::DeleteDatasetVersion( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +DatasetServiceConnection::DeleteDatasetVersion( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteDatasetVersionRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +DatasetServiceConnection::DeleteDatasetVersion( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr DatasetServiceConnection::GetDatasetVersion( google::cloud::aiplatform::v1::GetDatasetVersionRequest const&) { @@ -134,6 +228,22 @@ DatasetServiceConnection::RestoreDatasetVersion( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +DatasetServiceConnection::RestoreDatasetVersion( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::RestoreDatasetVersionRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +DatasetServiceConnection::RestoreDatasetVersion( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StreamRange DatasetServiceConnection::ListDataItems( google::cloud::aiplatform::v1:: @@ -166,6 +276,22 @@ DatasetServiceConnection::DeleteSavedQuery( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +DatasetServiceConnection::DeleteSavedQuery( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteSavedQueryRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +DatasetServiceConnection::DeleteSavedQuery( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr DatasetServiceConnection::GetAnnotationSpec( google::cloud::aiplatform::v1::GetAnnotationSpecRequest const&) { diff --git a/google/cloud/aiplatform/v1/dataset_connection.h b/google/cloud/aiplatform/v1/dataset_connection.h index 00bd4e1d013a5..4ea6399771f7c 100644 --- a/google/cloud/aiplatform/v1/dataset_connection.h +++ b/google/cloud/aiplatform/v1/dataset_connection.h @@ -22,8 +22,10 @@ #include "google/cloud/aiplatform/v1/dataset_connection_idempotency_policy.h" #include "google/cloud/aiplatform/v1/internal/dataset_retry_traits.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/internal/retry_policy_impl.h" +#include "google/cloud/no_await_tag.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" #include "google/cloud/status_or.h" @@ -190,6 +192,14 @@ class DatasetServiceConnection { CreateDataset( google::cloud::aiplatform::v1::CreateDatasetRequest const& request); + virtual StatusOr CreateDataset( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::CreateDatasetRequest const& request); + + virtual future> + CreateDataset(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StatusOr GetDataset( google::cloud::aiplatform::v1::GetDatasetRequest const& request); @@ -204,17 +214,49 @@ class DatasetServiceConnection { DeleteDataset( google::cloud::aiplatform::v1::DeleteDatasetRequest const& request); + virtual StatusOr DeleteDataset( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteDatasetRequest const& request); + + virtual future< + StatusOr> + DeleteDataset(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> ImportData(google::cloud::aiplatform::v1::ImportDataRequest const& request); + virtual StatusOr ImportData( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::ImportDataRequest const& request); + + virtual future> + ImportData(ExperimentalTag, google::longrunning::Operation const& operation); + virtual future> ExportData(google::cloud::aiplatform::v1::ExportDataRequest const& request); + virtual StatusOr ExportData( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::ExportDataRequest const& request); + + virtual future> + ExportData(ExperimentalTag, google::longrunning::Operation const& operation); + virtual future> CreateDatasetVersion( google::cloud::aiplatform::v1::CreateDatasetVersionRequest const& request); + virtual StatusOr CreateDatasetVersion( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::CreateDatasetVersionRequest const& + request); + + virtual future> + CreateDatasetVersion(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StatusOr UpdateDatasetVersion( google::cloud::aiplatform::v1::UpdateDatasetVersionRequest const& @@ -226,6 +268,16 @@ class DatasetServiceConnection { google::cloud::aiplatform::v1::DeleteDatasetVersionRequest const& request); + virtual StatusOr DeleteDatasetVersion( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteDatasetVersionRequest const& + request); + + virtual future< + StatusOr> + DeleteDatasetVersion(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StatusOr GetDatasetVersion( google::cloud::aiplatform::v1::GetDatasetVersionRequest const& request); @@ -239,6 +291,15 @@ class DatasetServiceConnection { google::cloud::aiplatform::v1::RestoreDatasetVersionRequest const& request); + virtual StatusOr RestoreDatasetVersion( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::RestoreDatasetVersionRequest const& + request); + + virtual future> + RestoreDatasetVersion(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StreamRange ListDataItems( google::cloud::aiplatform::v1::ListDataItemsRequest request); @@ -255,6 +316,15 @@ class DatasetServiceConnection { DeleteSavedQuery( google::cloud::aiplatform::v1::DeleteSavedQueryRequest const& request); + virtual StatusOr DeleteSavedQuery( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteSavedQueryRequest const& request); + + virtual future< + StatusOr> + DeleteSavedQuery(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StatusOr GetAnnotationSpec( google::cloud::aiplatform::v1::GetAnnotationSpecRequest const& request); diff --git a/google/cloud/aiplatform/v1/deployment_resource_pool_connection.cc b/google/cloud/aiplatform/v1/deployment_resource_pool_connection.cc index 35bbb94d15332..ce3b2db744e60 100644 --- a/google/cloud/aiplatform/v1/deployment_resource_pool_connection.cc +++ b/google/cloud/aiplatform/v1/deployment_resource_pool_connection.cc @@ -47,6 +47,22 @@ DeploymentResourcePoolServiceConnection::CreateDeploymentResourcePool( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +DeploymentResourcePoolServiceConnection::CreateDeploymentResourcePool( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::CreateDeploymentResourcePoolRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +DeploymentResourcePoolServiceConnection::CreateDeploymentResourcePool( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr DeploymentResourcePoolServiceConnection::GetDeploymentResourcePool( google::cloud::aiplatform::v1::GetDeploymentResourcePoolRequest const&) { @@ -69,6 +85,22 @@ DeploymentResourcePoolServiceConnection::DeleteDeploymentResourcePool( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +DeploymentResourcePoolServiceConnection::DeleteDeploymentResourcePool( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteDeploymentResourcePoolRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +DeploymentResourcePoolServiceConnection::DeleteDeploymentResourcePool( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + std::shared_ptr MakeDeploymentResourcePoolServiceConnection(std::string const& location, Options options) { diff --git a/google/cloud/aiplatform/v1/deployment_resource_pool_connection.h b/google/cloud/aiplatform/v1/deployment_resource_pool_connection.h index 3fd093e2bbc33..5b4c68652a9a4 100644 --- a/google/cloud/aiplatform/v1/deployment_resource_pool_connection.h +++ b/google/cloud/aiplatform/v1/deployment_resource_pool_connection.h @@ -22,8 +22,10 @@ #include "google/cloud/aiplatform/v1/deployment_resource_pool_connection_idempotency_policy.h" #include "google/cloud/aiplatform/v1/internal/deployment_resource_pool_retry_traits.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/internal/retry_policy_impl.h" +#include "google/cloud/no_await_tag.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" #include "google/cloud/status_or.h" @@ -210,6 +212,16 @@ class DeploymentResourcePoolServiceConnection { google::cloud::aiplatform::v1::CreateDeploymentResourcePoolRequest const& request); + virtual StatusOr CreateDeploymentResourcePool( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::CreateDeploymentResourcePoolRequest const& + request); + + virtual future< + StatusOr> + CreateDeploymentResourcePool(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StatusOr GetDeploymentResourcePool( google::cloud::aiplatform::v1::GetDeploymentResourcePoolRequest const& @@ -225,6 +237,16 @@ class DeploymentResourcePoolServiceConnection { DeleteDeploymentResourcePool( google::cloud::aiplatform::v1::DeleteDeploymentResourcePoolRequest const& request); + + virtual StatusOr DeleteDeploymentResourcePool( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteDeploymentResourcePoolRequest const& + request); + + virtual future< + StatusOr> + DeleteDeploymentResourcePool(ExperimentalTag, + google::longrunning::Operation const& operation); }; /** diff --git a/google/cloud/aiplatform/v1/endpoint_connection.cc b/google/cloud/aiplatform/v1/endpoint_connection.cc index 5f9c6200ce84a..796786f81c9a5 100644 --- a/google/cloud/aiplatform/v1/endpoint_connection.cc +++ b/google/cloud/aiplatform/v1/endpoint_connection.cc @@ -46,6 +46,22 @@ EndpointServiceConnection::CreateEndpoint( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +EndpointServiceConnection::CreateEndpoint( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::CreateEndpointRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +EndpointServiceConnection::CreateEndpoint( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr EndpointServiceConnection::GetEndpoint( google::cloud::aiplatform::v1::GetEndpointRequest const&) { @@ -74,6 +90,22 @@ EndpointServiceConnection::DeleteEndpoint( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +EndpointServiceConnection::DeleteEndpoint( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteEndpointRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +EndpointServiceConnection::DeleteEndpoint( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> EndpointServiceConnection::DeployModel( google::cloud::aiplatform::v1::DeployModelRequest const&) { @@ -82,6 +114,21 @@ EndpointServiceConnection::DeployModel( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr EndpointServiceConnection::DeployModel( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeployModelRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +EndpointServiceConnection::DeployModel(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> EndpointServiceConnection::UndeployModel( google::cloud::aiplatform::v1::UndeployModelRequest const&) { @@ -90,6 +137,22 @@ EndpointServiceConnection::UndeployModel( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +EndpointServiceConnection::UndeployModel( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::UndeployModelRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +EndpointServiceConnection::UndeployModel( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> EndpointServiceConnection::MutateDeployedModel( google::cloud::aiplatform::v1::MutateDeployedModelRequest const&) { @@ -98,6 +161,22 @@ EndpointServiceConnection::MutateDeployedModel( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +EndpointServiceConnection::MutateDeployedModel( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::MutateDeployedModelRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +EndpointServiceConnection::MutateDeployedModel( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + std::shared_ptr MakeEndpointServiceConnection( std::string const& location, Options options) { internal::CheckExpectedOptions CreateEndpoint( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::CreateEndpointRequest const& request); + + virtual future> + CreateEndpoint(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StatusOr GetEndpoint( google::cloud::aiplatform::v1::GetEndpointRequest const& request); @@ -205,17 +215,50 @@ class EndpointServiceConnection { DeleteEndpoint( google::cloud::aiplatform::v1::DeleteEndpointRequest const& request); + virtual StatusOr DeleteEndpoint( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteEndpointRequest const& request); + + virtual future< + StatusOr> + DeleteEndpoint(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> DeployModel(google::cloud::aiplatform::v1::DeployModelRequest const& request); + virtual StatusOr DeployModel( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeployModelRequest const& request); + + virtual future> + DeployModel(ExperimentalTag, google::longrunning::Operation const& operation); + virtual future> UndeployModel( google::cloud::aiplatform::v1::UndeployModelRequest const& request); + virtual StatusOr UndeployModel( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::UndeployModelRequest const& request); + + virtual future> + UndeployModel(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future< StatusOr> MutateDeployedModel( google::cloud::aiplatform::v1::MutateDeployedModelRequest const& request); + + virtual StatusOr MutateDeployedModel( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::MutateDeployedModelRequest const& request); + + virtual future< + StatusOr> + MutateDeployedModel(ExperimentalTag, + google::longrunning::Operation const& operation); }; /** diff --git a/google/cloud/aiplatform/v1/feature_online_store_admin_connection.cc b/google/cloud/aiplatform/v1/feature_online_store_admin_connection.cc index 720c29109c9e8..9d6f6d5702337 100644 --- a/google/cloud/aiplatform/v1/feature_online_store_admin_connection.cc +++ b/google/cloud/aiplatform/v1/feature_online_store_admin_connection.cc @@ -47,6 +47,22 @@ FeatureOnlineStoreAdminServiceConnection::CreateFeatureOnlineStore( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +FeatureOnlineStoreAdminServiceConnection::CreateFeatureOnlineStore( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::CreateFeatureOnlineStoreRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +FeatureOnlineStoreAdminServiceConnection::CreateFeatureOnlineStore( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr FeatureOnlineStoreAdminServiceConnection::GetFeatureOnlineStore( google::cloud::aiplatform::v1::GetFeatureOnlineStoreRequest const&) { @@ -69,6 +85,22 @@ FeatureOnlineStoreAdminServiceConnection::UpdateFeatureOnlineStore( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +FeatureOnlineStoreAdminServiceConnection::UpdateFeatureOnlineStore( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::UpdateFeatureOnlineStoreRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +FeatureOnlineStoreAdminServiceConnection::UpdateFeatureOnlineStore( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> FeatureOnlineStoreAdminServiceConnection::DeleteFeatureOnlineStore( google::cloud::aiplatform::v1::DeleteFeatureOnlineStoreRequest const&) { @@ -77,6 +109,22 @@ FeatureOnlineStoreAdminServiceConnection::DeleteFeatureOnlineStore( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +FeatureOnlineStoreAdminServiceConnection::DeleteFeatureOnlineStore( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteFeatureOnlineStoreRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +FeatureOnlineStoreAdminServiceConnection::DeleteFeatureOnlineStore( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> FeatureOnlineStoreAdminServiceConnection::CreateFeatureView( google::cloud::aiplatform::v1::CreateFeatureViewRequest const&) { @@ -85,6 +133,22 @@ FeatureOnlineStoreAdminServiceConnection::CreateFeatureView( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +FeatureOnlineStoreAdminServiceConnection::CreateFeatureView( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::CreateFeatureViewRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +FeatureOnlineStoreAdminServiceConnection::CreateFeatureView( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr FeatureOnlineStoreAdminServiceConnection::GetFeatureView( google::cloud::aiplatform::v1::GetFeatureViewRequest const&) { @@ -107,6 +171,22 @@ FeatureOnlineStoreAdminServiceConnection::UpdateFeatureView( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +FeatureOnlineStoreAdminServiceConnection::UpdateFeatureView( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::UpdateFeatureViewRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +FeatureOnlineStoreAdminServiceConnection::UpdateFeatureView( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> FeatureOnlineStoreAdminServiceConnection::DeleteFeatureView( google::cloud::aiplatform::v1::DeleteFeatureViewRequest const&) { @@ -115,6 +195,22 @@ FeatureOnlineStoreAdminServiceConnection::DeleteFeatureView( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +FeatureOnlineStoreAdminServiceConnection::DeleteFeatureView( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteFeatureViewRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +FeatureOnlineStoreAdminServiceConnection::DeleteFeatureView( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr FeatureOnlineStoreAdminServiceConnection::SyncFeatureView( google::cloud::aiplatform::v1::SyncFeatureViewRequest const&) { diff --git a/google/cloud/aiplatform/v1/feature_online_store_admin_connection.h b/google/cloud/aiplatform/v1/feature_online_store_admin_connection.h index 83e5928cb98ea..63789dc60726a 100644 --- a/google/cloud/aiplatform/v1/feature_online_store_admin_connection.h +++ b/google/cloud/aiplatform/v1/feature_online_store_admin_connection.h @@ -22,8 +22,10 @@ #include "google/cloud/aiplatform/v1/feature_online_store_admin_connection_idempotency_policy.h" #include "google/cloud/aiplatform/v1/internal/feature_online_store_admin_retry_traits.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/internal/retry_policy_impl.h" +#include "google/cloud/no_await_tag.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" #include "google/cloud/status_or.h" @@ -209,6 +211,15 @@ class FeatureOnlineStoreAdminServiceConnection { google::cloud::aiplatform::v1::CreateFeatureOnlineStoreRequest const& request); + virtual StatusOr CreateFeatureOnlineStore( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::CreateFeatureOnlineStoreRequest const& + request); + + virtual future> + CreateFeatureOnlineStore(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StatusOr GetFeatureOnlineStore( google::cloud::aiplatform::v1::GetFeatureOnlineStoreRequest const& @@ -223,16 +234,43 @@ class FeatureOnlineStoreAdminServiceConnection { google::cloud::aiplatform::v1::UpdateFeatureOnlineStoreRequest const& request); + virtual StatusOr UpdateFeatureOnlineStore( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::UpdateFeatureOnlineStoreRequest const& + request); + + virtual future> + UpdateFeatureOnlineStore(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future< StatusOr> DeleteFeatureOnlineStore( google::cloud::aiplatform::v1::DeleteFeatureOnlineStoreRequest const& request); + virtual StatusOr DeleteFeatureOnlineStore( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteFeatureOnlineStoreRequest const& + request); + + virtual future< + StatusOr> + DeleteFeatureOnlineStore(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> CreateFeatureView( google::cloud::aiplatform::v1::CreateFeatureViewRequest const& request); + virtual StatusOr CreateFeatureView( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::CreateFeatureViewRequest const& request); + + virtual future> + CreateFeatureView(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StatusOr GetFeatureView( google::cloud::aiplatform::v1::GetFeatureViewRequest const& request); @@ -244,11 +282,28 @@ class FeatureOnlineStoreAdminServiceConnection { UpdateFeatureView( google::cloud::aiplatform::v1::UpdateFeatureViewRequest const& request); + virtual StatusOr UpdateFeatureView( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::UpdateFeatureViewRequest const& request); + + virtual future> + UpdateFeatureView(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future< StatusOr> DeleteFeatureView( google::cloud::aiplatform::v1::DeleteFeatureViewRequest const& request); + virtual StatusOr DeleteFeatureView( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteFeatureViewRequest const& request); + + virtual future< + StatusOr> + DeleteFeatureView(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StatusOr SyncFeatureView( google::cloud::aiplatform::v1::SyncFeatureViewRequest const& request); diff --git a/google/cloud/aiplatform/v1/feature_online_store_connection.h b/google/cloud/aiplatform/v1/feature_online_store_connection.h index 7c88e5ccbdf87..da0b43d269fd2 100644 --- a/google/cloud/aiplatform/v1/feature_online_store_connection.h +++ b/google/cloud/aiplatform/v1/feature_online_store_connection.h @@ -22,6 +22,7 @@ #include "google/cloud/aiplatform/v1/feature_online_store_connection_idempotency_policy.h" #include "google/cloud/aiplatform/v1/internal/feature_online_store_retry_traits.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/internal/retry_policy_impl.h" #include "google/cloud/options.h" #include "google/cloud/status_or.h" diff --git a/google/cloud/aiplatform/v1/feature_registry_connection.cc b/google/cloud/aiplatform/v1/feature_registry_connection.cc index d4fb20dc01e9e..8fdfa5b892204 100644 --- a/google/cloud/aiplatform/v1/feature_registry_connection.cc +++ b/google/cloud/aiplatform/v1/feature_registry_connection.cc @@ -46,6 +46,22 @@ FeatureRegistryServiceConnection::CreateFeatureGroup( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +FeatureRegistryServiceConnection::CreateFeatureGroup( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::CreateFeatureGroupRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +FeatureRegistryServiceConnection::CreateFeatureGroup( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr FeatureRegistryServiceConnection::GetFeatureGroup( google::cloud::aiplatform::v1::GetFeatureGroupRequest const&) { @@ -68,6 +84,22 @@ FeatureRegistryServiceConnection::UpdateFeatureGroup( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +FeatureRegistryServiceConnection::UpdateFeatureGroup( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::UpdateFeatureGroupRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +FeatureRegistryServiceConnection::UpdateFeatureGroup( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> FeatureRegistryServiceConnection::DeleteFeatureGroup( google::cloud::aiplatform::v1::DeleteFeatureGroupRequest const&) { @@ -76,6 +108,22 @@ FeatureRegistryServiceConnection::DeleteFeatureGroup( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +FeatureRegistryServiceConnection::DeleteFeatureGroup( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteFeatureGroupRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +FeatureRegistryServiceConnection::DeleteFeatureGroup( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> FeatureRegistryServiceConnection::CreateFeature( google::cloud::aiplatform::v1::CreateFeatureRequest const&) { @@ -84,6 +132,22 @@ FeatureRegistryServiceConnection::CreateFeature( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +FeatureRegistryServiceConnection::CreateFeature( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::CreateFeatureRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +FeatureRegistryServiceConnection::CreateFeature( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr FeatureRegistryServiceConnection::GetFeature( google::cloud::aiplatform::v1::GetFeatureRequest const&) { @@ -106,6 +170,22 @@ FeatureRegistryServiceConnection::UpdateFeature( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +FeatureRegistryServiceConnection::UpdateFeature( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::UpdateFeatureRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +FeatureRegistryServiceConnection::UpdateFeature( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> FeatureRegistryServiceConnection::DeleteFeature( google::cloud::aiplatform::v1::DeleteFeatureRequest const&) { @@ -114,6 +194,22 @@ FeatureRegistryServiceConnection::DeleteFeature( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +FeatureRegistryServiceConnection::DeleteFeature( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteFeatureRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +FeatureRegistryServiceConnection::DeleteFeature( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + std::shared_ptr MakeFeatureRegistryServiceConnection(std::string const& location, Options options) { diff --git a/google/cloud/aiplatform/v1/feature_registry_connection.h b/google/cloud/aiplatform/v1/feature_registry_connection.h index 50f82da4c10c8..2afd3f162e213 100644 --- a/google/cloud/aiplatform/v1/feature_registry_connection.h +++ b/google/cloud/aiplatform/v1/feature_registry_connection.h @@ -22,8 +22,10 @@ #include "google/cloud/aiplatform/v1/feature_registry_connection_idempotency_policy.h" #include "google/cloud/aiplatform/v1/internal/feature_registry_retry_traits.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/internal/retry_policy_impl.h" +#include "google/cloud/no_await_tag.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" #include "google/cloud/status_or.h" @@ -196,6 +198,14 @@ class FeatureRegistryServiceConnection { CreateFeatureGroup( google::cloud::aiplatform::v1::CreateFeatureGroupRequest const& request); + virtual StatusOr CreateFeatureGroup( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::CreateFeatureGroupRequest const& request); + + virtual future> + CreateFeatureGroup(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StatusOr GetFeatureGroup( google::cloud::aiplatform::v1::GetFeatureGroupRequest const& request); @@ -207,15 +217,40 @@ class FeatureRegistryServiceConnection { UpdateFeatureGroup( google::cloud::aiplatform::v1::UpdateFeatureGroupRequest const& request); + virtual StatusOr UpdateFeatureGroup( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::UpdateFeatureGroupRequest const& request); + + virtual future> + UpdateFeatureGroup(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future< StatusOr> DeleteFeatureGroup( google::cloud::aiplatform::v1::DeleteFeatureGroupRequest const& request); + virtual StatusOr DeleteFeatureGroup( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteFeatureGroupRequest const& request); + + virtual future< + StatusOr> + DeleteFeatureGroup(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> CreateFeature( google::cloud::aiplatform::v1::CreateFeatureRequest const& request); + virtual StatusOr CreateFeature( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::CreateFeatureRequest const& request); + + virtual future> + CreateFeature(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StatusOr GetFeature( google::cloud::aiplatform::v1::GetFeatureRequest const& request); @@ -226,10 +261,27 @@ class FeatureRegistryServiceConnection { UpdateFeature( google::cloud::aiplatform::v1::UpdateFeatureRequest const& request); + virtual StatusOr UpdateFeature( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::UpdateFeatureRequest const& request); + + virtual future> + UpdateFeature(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future< StatusOr> DeleteFeature( google::cloud::aiplatform::v1::DeleteFeatureRequest const& request); + + virtual StatusOr DeleteFeature( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteFeatureRequest const& request); + + virtual future< + StatusOr> + DeleteFeature(ExperimentalTag, + google::longrunning::Operation const& operation); }; /** diff --git a/google/cloud/aiplatform/v1/featurestore_connection.cc b/google/cloud/aiplatform/v1/featurestore_connection.cc index f9a474f37dd07..64ad4f2412b29 100644 --- a/google/cloud/aiplatform/v1/featurestore_connection.cc +++ b/google/cloud/aiplatform/v1/featurestore_connection.cc @@ -46,6 +46,22 @@ FeaturestoreServiceConnection::CreateFeaturestore( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +FeaturestoreServiceConnection::CreateFeaturestore( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::CreateFeaturestoreRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +FeaturestoreServiceConnection::CreateFeaturestore( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr FeaturestoreServiceConnection::GetFeaturestore( google::cloud::aiplatform::v1::GetFeaturestoreRequest const&) { @@ -68,6 +84,22 @@ FeaturestoreServiceConnection::UpdateFeaturestore( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +FeaturestoreServiceConnection::UpdateFeaturestore( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::UpdateFeaturestoreRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +FeaturestoreServiceConnection::UpdateFeaturestore( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> FeaturestoreServiceConnection::DeleteFeaturestore( google::cloud::aiplatform::v1::DeleteFeaturestoreRequest const&) { @@ -76,6 +108,22 @@ FeaturestoreServiceConnection::DeleteFeaturestore( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +FeaturestoreServiceConnection::DeleteFeaturestore( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteFeaturestoreRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +FeaturestoreServiceConnection::DeleteFeaturestore( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> FeaturestoreServiceConnection::CreateEntityType( google::cloud::aiplatform::v1::CreateEntityTypeRequest const&) { @@ -84,6 +132,22 @@ FeaturestoreServiceConnection::CreateEntityType( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +FeaturestoreServiceConnection::CreateEntityType( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::CreateEntityTypeRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +FeaturestoreServiceConnection::CreateEntityType( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr FeaturestoreServiceConnection::GetEntityType( google::cloud::aiplatform::v1::GetEntityTypeRequest const&) { @@ -112,6 +176,22 @@ FeaturestoreServiceConnection::DeleteEntityType( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +FeaturestoreServiceConnection::DeleteEntityType( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteEntityTypeRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +FeaturestoreServiceConnection::DeleteEntityType( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> FeaturestoreServiceConnection::CreateFeature( google::cloud::aiplatform::v1::CreateFeatureRequest const&) { @@ -120,6 +200,22 @@ FeaturestoreServiceConnection::CreateFeature( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +FeaturestoreServiceConnection::CreateFeature( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::CreateFeatureRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +FeaturestoreServiceConnection::CreateFeature( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> FeaturestoreServiceConnection::BatchCreateFeatures( google::cloud::aiplatform::v1::BatchCreateFeaturesRequest const&) { @@ -128,6 +224,22 @@ FeaturestoreServiceConnection::BatchCreateFeatures( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +FeaturestoreServiceConnection::BatchCreateFeatures( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::BatchCreateFeaturesRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +FeaturestoreServiceConnection::BatchCreateFeatures( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr FeaturestoreServiceConnection::GetFeature( google::cloud::aiplatform::v1::GetFeatureRequest const&) { @@ -156,6 +268,22 @@ FeaturestoreServiceConnection::DeleteFeature( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +FeaturestoreServiceConnection::DeleteFeature( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteFeatureRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +FeaturestoreServiceConnection::DeleteFeature( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> FeaturestoreServiceConnection::ImportFeatureValues( google::cloud::aiplatform::v1::ImportFeatureValuesRequest const&) { @@ -164,6 +292,22 @@ FeaturestoreServiceConnection::ImportFeatureValues( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +FeaturestoreServiceConnection::ImportFeatureValues( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::ImportFeatureValuesRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +FeaturestoreServiceConnection::ImportFeatureValues( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> FeaturestoreServiceConnection::BatchReadFeatureValues( google::cloud::aiplatform::v1::BatchReadFeatureValuesRequest const&) { @@ -172,6 +316,22 @@ FeaturestoreServiceConnection::BatchReadFeatureValues( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +FeaturestoreServiceConnection::BatchReadFeatureValues( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::BatchReadFeatureValuesRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +FeaturestoreServiceConnection::BatchReadFeatureValues( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> FeaturestoreServiceConnection::ExportFeatureValues( google::cloud::aiplatform::v1::ExportFeatureValuesRequest const&) { @@ -180,6 +340,22 @@ FeaturestoreServiceConnection::ExportFeatureValues( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +FeaturestoreServiceConnection::ExportFeatureValues( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::ExportFeatureValuesRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +FeaturestoreServiceConnection::ExportFeatureValues( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> FeaturestoreServiceConnection::DeleteFeatureValues( google::cloud::aiplatform::v1::DeleteFeatureValuesRequest const&) { @@ -188,6 +364,22 @@ FeaturestoreServiceConnection::DeleteFeatureValues( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +FeaturestoreServiceConnection::DeleteFeatureValues( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteFeatureValuesRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +FeaturestoreServiceConnection::DeleteFeatureValues( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StreamRange FeaturestoreServiceConnection::SearchFeatures( google::cloud::aiplatform::v1:: diff --git a/google/cloud/aiplatform/v1/featurestore_connection.h b/google/cloud/aiplatform/v1/featurestore_connection.h index aba807f30157a..4ad314273b992 100644 --- a/google/cloud/aiplatform/v1/featurestore_connection.h +++ b/google/cloud/aiplatform/v1/featurestore_connection.h @@ -22,8 +22,10 @@ #include "google/cloud/aiplatform/v1/featurestore_connection_idempotency_policy.h" #include "google/cloud/aiplatform/v1/internal/featurestore_retry_traits.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/internal/retry_policy_impl.h" +#include "google/cloud/no_await_tag.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" #include "google/cloud/status_or.h" @@ -193,6 +195,14 @@ class FeaturestoreServiceConnection { CreateFeaturestore( google::cloud::aiplatform::v1::CreateFeaturestoreRequest const& request); + virtual StatusOr CreateFeaturestore( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::CreateFeaturestoreRequest const& request); + + virtual future> + CreateFeaturestore(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StatusOr GetFeaturestore( google::cloud::aiplatform::v1::GetFeaturestoreRequest const& request); @@ -204,15 +214,40 @@ class FeaturestoreServiceConnection { UpdateFeaturestore( google::cloud::aiplatform::v1::UpdateFeaturestoreRequest const& request); + virtual StatusOr UpdateFeaturestore( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::UpdateFeaturestoreRequest const& request); + + virtual future> + UpdateFeaturestore(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future< StatusOr> DeleteFeaturestore( google::cloud::aiplatform::v1::DeleteFeaturestoreRequest const& request); + virtual StatusOr DeleteFeaturestore( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteFeaturestoreRequest const& request); + + virtual future< + StatusOr> + DeleteFeaturestore(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> CreateEntityType( google::cloud::aiplatform::v1::CreateEntityTypeRequest const& request); + virtual StatusOr CreateEntityType( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::CreateEntityTypeRequest const& request); + + virtual future> + CreateEntityType(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StatusOr GetEntityType( google::cloud::aiplatform::v1::GetEntityTypeRequest const& request); @@ -228,15 +263,41 @@ class FeaturestoreServiceConnection { DeleteEntityType( google::cloud::aiplatform::v1::DeleteEntityTypeRequest const& request); + virtual StatusOr DeleteEntityType( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteEntityTypeRequest const& request); + + virtual future< + StatusOr> + DeleteEntityType(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> CreateFeature( google::cloud::aiplatform::v1::CreateFeatureRequest const& request); + virtual StatusOr CreateFeature( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::CreateFeatureRequest const& request); + + virtual future> + CreateFeature(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future< StatusOr> BatchCreateFeatures( google::cloud::aiplatform::v1::BatchCreateFeaturesRequest const& request); + virtual StatusOr BatchCreateFeatures( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::BatchCreateFeaturesRequest const& request); + + virtual future< + StatusOr> + BatchCreateFeatures(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StatusOr GetFeature( google::cloud::aiplatform::v1::GetFeatureRequest const& request); @@ -251,27 +312,73 @@ class FeaturestoreServiceConnection { DeleteFeature( google::cloud::aiplatform::v1::DeleteFeatureRequest const& request); + virtual StatusOr DeleteFeature( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteFeatureRequest const& request); + + virtual future< + StatusOr> + DeleteFeature(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future< StatusOr> ImportFeatureValues( google::cloud::aiplatform::v1::ImportFeatureValuesRequest const& request); + virtual StatusOr ImportFeatureValues( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::ImportFeatureValuesRequest const& request); + + virtual future< + StatusOr> + ImportFeatureValues(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future< StatusOr> BatchReadFeatureValues( google::cloud::aiplatform::v1::BatchReadFeatureValuesRequest const& request); + virtual StatusOr BatchReadFeatureValues( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::BatchReadFeatureValuesRequest const& + request); + + virtual future< + StatusOr> + BatchReadFeatureValues(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future< StatusOr> ExportFeatureValues( google::cloud::aiplatform::v1::ExportFeatureValuesRequest const& request); + virtual StatusOr ExportFeatureValues( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::ExportFeatureValuesRequest const& request); + + virtual future< + StatusOr> + ExportFeatureValues(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future< StatusOr> DeleteFeatureValues( google::cloud::aiplatform::v1::DeleteFeatureValuesRequest const& request); + virtual StatusOr DeleteFeatureValues( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteFeatureValuesRequest const& request); + + virtual future< + StatusOr> + DeleteFeatureValues(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StreamRange SearchFeatures( google::cloud::aiplatform::v1::SearchFeaturesRequest request); }; diff --git a/google/cloud/aiplatform/v1/featurestore_online_serving_connection.h b/google/cloud/aiplatform/v1/featurestore_online_serving_connection.h index 4df76e75a827b..4891cf4243e2c 100644 --- a/google/cloud/aiplatform/v1/featurestore_online_serving_connection.h +++ b/google/cloud/aiplatform/v1/featurestore_online_serving_connection.h @@ -22,6 +22,7 @@ #include "google/cloud/aiplatform/v1/featurestore_online_serving_connection_idempotency_policy.h" #include "google/cloud/aiplatform/v1/internal/featurestore_online_serving_retry_traits.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/internal/retry_policy_impl.h" #include "google/cloud/options.h" #include "google/cloud/status_or.h" diff --git a/google/cloud/aiplatform/v1/gen_ai_tuning_connection.h b/google/cloud/aiplatform/v1/gen_ai_tuning_connection.h index df1c85513eff3..a184980dd69fc 100644 --- a/google/cloud/aiplatform/v1/gen_ai_tuning_connection.h +++ b/google/cloud/aiplatform/v1/gen_ai_tuning_connection.h @@ -22,6 +22,7 @@ #include "google/cloud/aiplatform/v1/gen_ai_tuning_connection_idempotency_policy.h" #include "google/cloud/aiplatform/v1/internal/gen_ai_tuning_retry_traits.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/internal/retry_policy_impl.h" #include "google/cloud/options.h" #include "google/cloud/status_or.h" diff --git a/google/cloud/aiplatform/v1/index_connection.cc b/google/cloud/aiplatform/v1/index_connection.cc index 5fcbfb5df5f38..c3b80eb9eec2a 100644 --- a/google/cloud/aiplatform/v1/index_connection.cc +++ b/google/cloud/aiplatform/v1/index_connection.cc @@ -46,6 +46,21 @@ IndexServiceConnection::CreateIndex( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr IndexServiceConnection::CreateIndex( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::CreateIndexRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +IndexServiceConnection::CreateIndex(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr IndexServiceConnection::GetIndex( google::cloud::aiplatform::v1::GetIndexRequest const&) { return Status(StatusCode::kUnimplemented, "not implemented"); @@ -67,6 +82,21 @@ IndexServiceConnection::UpdateIndex( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr IndexServiceConnection::UpdateIndex( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::UpdateIndexRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +IndexServiceConnection::UpdateIndex(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> IndexServiceConnection::DeleteIndex( google::cloud::aiplatform::v1::DeleteIndexRequest const&) { @@ -75,6 +105,21 @@ IndexServiceConnection::DeleteIndex( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr IndexServiceConnection::DeleteIndex( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteIndexRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +IndexServiceConnection::DeleteIndex(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr IndexServiceConnection::UpsertDatapoints( google::cloud::aiplatform::v1::UpsertDatapointsRequest const&) { diff --git a/google/cloud/aiplatform/v1/index_connection.h b/google/cloud/aiplatform/v1/index_connection.h index f58844a189316..d33c7ca047d7a 100644 --- a/google/cloud/aiplatform/v1/index_connection.h +++ b/google/cloud/aiplatform/v1/index_connection.h @@ -22,8 +22,10 @@ #include "google/cloud/aiplatform/v1/index_connection_idempotency_policy.h" #include "google/cloud/aiplatform/v1/internal/index_retry_traits.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/internal/retry_policy_impl.h" +#include "google/cloud/no_await_tag.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" #include "google/cloud/status_or.h" @@ -189,6 +191,13 @@ class IndexServiceConnection { virtual future> CreateIndex( google::cloud::aiplatform::v1::CreateIndexRequest const& request); + virtual StatusOr CreateIndex( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::CreateIndexRequest const& request); + + virtual future> CreateIndex( + ExperimentalTag, google::longrunning::Operation const& operation); + virtual StatusOr GetIndex( google::cloud::aiplatform::v1::GetIndexRequest const& request); @@ -198,10 +207,25 @@ class IndexServiceConnection { virtual future> UpdateIndex( google::cloud::aiplatform::v1::UpdateIndexRequest const& request); + virtual StatusOr UpdateIndex( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::UpdateIndexRequest const& request); + + virtual future> UpdateIndex( + ExperimentalTag, google::longrunning::Operation const& operation); + virtual future< StatusOr> DeleteIndex(google::cloud::aiplatform::v1::DeleteIndexRequest const& request); + virtual StatusOr DeleteIndex( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteIndexRequest const& request); + + virtual future< + StatusOr> + DeleteIndex(ExperimentalTag, google::longrunning::Operation const& operation); + virtual StatusOr UpsertDatapoints( google::cloud::aiplatform::v1::UpsertDatapointsRequest const& request); diff --git a/google/cloud/aiplatform/v1/index_endpoint_connection.cc b/google/cloud/aiplatform/v1/index_endpoint_connection.cc index 704dc8c94bf0c..992f9b7da902c 100644 --- a/google/cloud/aiplatform/v1/index_endpoint_connection.cc +++ b/google/cloud/aiplatform/v1/index_endpoint_connection.cc @@ -46,6 +46,22 @@ IndexEndpointServiceConnection::CreateIndexEndpoint( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +IndexEndpointServiceConnection::CreateIndexEndpoint( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::CreateIndexEndpointRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +IndexEndpointServiceConnection::CreateIndexEndpoint( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr IndexEndpointServiceConnection::GetIndexEndpoint( google::cloud::aiplatform::v1::GetIndexEndpointRequest const&) { @@ -74,6 +90,22 @@ IndexEndpointServiceConnection::DeleteIndexEndpoint( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +IndexEndpointServiceConnection::DeleteIndexEndpoint( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteIndexEndpointRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +IndexEndpointServiceConnection::DeleteIndexEndpoint( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> IndexEndpointServiceConnection::DeployIndex( google::cloud::aiplatform::v1::DeployIndexRequest const&) { @@ -82,6 +114,22 @@ IndexEndpointServiceConnection::DeployIndex( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +IndexEndpointServiceConnection::DeployIndex( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeployIndexRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +IndexEndpointServiceConnection::DeployIndex( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> IndexEndpointServiceConnection::UndeployIndex( google::cloud::aiplatform::v1::UndeployIndexRequest const&) { @@ -90,6 +138,22 @@ IndexEndpointServiceConnection::UndeployIndex( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +IndexEndpointServiceConnection::UndeployIndex( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::UndeployIndexRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +IndexEndpointServiceConnection::UndeployIndex( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> IndexEndpointServiceConnection::MutateDeployedIndex( google::cloud::aiplatform::v1::MutateDeployedIndexRequest const&) { @@ -98,6 +162,22 @@ IndexEndpointServiceConnection::MutateDeployedIndex( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +IndexEndpointServiceConnection::MutateDeployedIndex( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::MutateDeployedIndexRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +IndexEndpointServiceConnection::MutateDeployedIndex( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + std::shared_ptr MakeIndexEndpointServiceConnection(std::string const& location, Options options) { diff --git a/google/cloud/aiplatform/v1/index_endpoint_connection.h b/google/cloud/aiplatform/v1/index_endpoint_connection.h index 1e5592a6c1425..775de49e9f016 100644 --- a/google/cloud/aiplatform/v1/index_endpoint_connection.h +++ b/google/cloud/aiplatform/v1/index_endpoint_connection.h @@ -22,8 +22,10 @@ #include "google/cloud/aiplatform/v1/index_endpoint_connection_idempotency_policy.h" #include "google/cloud/aiplatform/v1/internal/index_endpoint_retry_traits.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/internal/retry_policy_impl.h" +#include "google/cloud/no_await_tag.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" #include "google/cloud/status_or.h" @@ -194,6 +196,14 @@ class IndexEndpointServiceConnection { CreateIndexEndpoint( google::cloud::aiplatform::v1::CreateIndexEndpointRequest const& request); + virtual StatusOr CreateIndexEndpoint( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::CreateIndexEndpointRequest const& request); + + virtual future> + CreateIndexEndpoint(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StatusOr GetIndexEndpoint( google::cloud::aiplatform::v1::GetIndexEndpointRequest const& request); @@ -211,17 +221,50 @@ class IndexEndpointServiceConnection { DeleteIndexEndpoint( google::cloud::aiplatform::v1::DeleteIndexEndpointRequest const& request); + virtual StatusOr DeleteIndexEndpoint( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteIndexEndpointRequest const& request); + + virtual future< + StatusOr> + DeleteIndexEndpoint(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> DeployIndex(google::cloud::aiplatform::v1::DeployIndexRequest const& request); + virtual StatusOr DeployIndex( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeployIndexRequest const& request); + + virtual future> + DeployIndex(ExperimentalTag, google::longrunning::Operation const& operation); + virtual future> UndeployIndex( google::cloud::aiplatform::v1::UndeployIndexRequest const& request); + virtual StatusOr UndeployIndex( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::UndeployIndexRequest const& request); + + virtual future> + UndeployIndex(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future< StatusOr> MutateDeployedIndex( google::cloud::aiplatform::v1::MutateDeployedIndexRequest const& request); + + virtual StatusOr MutateDeployedIndex( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::MutateDeployedIndexRequest const& request); + + virtual future< + StatusOr> + MutateDeployedIndex(ExperimentalTag, + google::longrunning::Operation const& operation); }; /** diff --git a/google/cloud/aiplatform/v1/internal/dataset_connection_impl.cc b/google/cloud/aiplatform/v1/internal/dataset_connection_impl.cc index e4eb4dd8df8db..690d6a6aeb8c5 100644 --- a/google/cloud/aiplatform/v1/internal/dataset_connection_impl.cc +++ b/google/cloud/aiplatform/v1/internal/dataset_connection_impl.cc @@ -105,6 +105,59 @@ DatasetServiceConnectionImpl::CreateDataset( polling_policy(*current), __func__); } +StatusOr +DatasetServiceConnectionImpl::CreateDataset( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::CreateDatasetRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateDataset(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::aiplatform::v1::CreateDatasetRequest const& request) { + return stub_->CreateDataset(context, options, request); + }, + *current, request, __func__); +} + +future> +DatasetServiceConnectionImpl::CreateDataset( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to CreateDataset", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::aiplatform::v1::Dataset>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::aiplatform::v1::Dataset>, + polling_policy(*current), __func__); +} + StatusOr DatasetServiceConnectionImpl::GetDataset( google::cloud::aiplatform::v1::GetDatasetRequest const& request) { @@ -207,6 +260,60 @@ DatasetServiceConnectionImpl::DeleteDataset( polling_policy(*current), __func__); } +StatusOr +DatasetServiceConnectionImpl::DeleteDataset( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteDatasetRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteDataset(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::aiplatform::v1::DeleteDatasetRequest const& request) { + return stub_->DeleteDataset(context, options, request); + }, + *current, request, __func__); +} + +future> +DatasetServiceConnectionImpl::DeleteDataset( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteDataset", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::aiplatform::v1::DeleteOperationMetadata>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::cloud::aiplatform::v1::DeleteOperationMetadata>, + polling_policy(*current), __func__); +} + future> DatasetServiceConnectionImpl::ImportData( google::cloud::aiplatform::v1::ImportDataRequest const& request) { @@ -246,6 +353,59 @@ DatasetServiceConnectionImpl::ImportData( polling_policy(*current), __func__); } +StatusOr +DatasetServiceConnectionImpl::ImportData( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::ImportDataRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->ImportData(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::aiplatform::v1::ImportDataRequest const& request) { + return stub_->ImportData(context, options, request); + }, + *current, request, __func__); +} + +future> +DatasetServiceConnectionImpl::ImportData( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to ImportData", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::aiplatform::v1::ImportDataResponse>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::aiplatform::v1::ImportDataResponse>, + polling_policy(*current), __func__); +} + future> DatasetServiceConnectionImpl::ExportData( google::cloud::aiplatform::v1::ExportDataRequest const& request) { @@ -285,6 +445,59 @@ DatasetServiceConnectionImpl::ExportData( polling_policy(*current), __func__); } +StatusOr +DatasetServiceConnectionImpl::ExportData( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::ExportDataRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->ExportData(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::aiplatform::v1::ExportDataRequest const& request) { + return stub_->ExportData(context, options, request); + }, + *current, request, __func__); +} + +future> +DatasetServiceConnectionImpl::ExportData( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to ExportData", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::aiplatform::v1::ExportDataResponse>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::aiplatform::v1::ExportDataResponse>, + polling_policy(*current), __func__); +} + future> DatasetServiceConnectionImpl::CreateDatasetVersion( google::cloud::aiplatform::v1::CreateDatasetVersionRequest const& request) { @@ -325,6 +538,60 @@ DatasetServiceConnectionImpl::CreateDatasetVersion( polling_policy(*current), __func__); } +StatusOr +DatasetServiceConnectionImpl::CreateDatasetVersion( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::CreateDatasetVersionRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateDatasetVersion(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::aiplatform::v1::CreateDatasetVersionRequest const& + request) { + return stub_->CreateDatasetVersion(context, options, request); + }, + *current, request, __func__); +} + +future> +DatasetServiceConnectionImpl::CreateDatasetVersion( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to CreateDatasetVersion", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::aiplatform::v1::DatasetVersion>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::aiplatform::v1::DatasetVersion>, + polling_policy(*current), __func__); +} + StatusOr DatasetServiceConnectionImpl::UpdateDatasetVersion( google::cloud::aiplatform::v1::UpdateDatasetVersionRequest const& request) { @@ -380,6 +647,60 @@ DatasetServiceConnectionImpl::DeleteDatasetVersion( polling_policy(*current), __func__); } +StatusOr +DatasetServiceConnectionImpl::DeleteDatasetVersion( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteDatasetVersionRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteDatasetVersion(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::aiplatform::v1::DeleteDatasetVersionRequest const& + request) { + return stub_->DeleteDatasetVersion(context, options, request); + }, + *current, request, __func__); +} + +future> +DatasetServiceConnectionImpl::DeleteDatasetVersion( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteDatasetVersion", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::aiplatform::v1::DeleteOperationMetadata>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::cloud::aiplatform::v1::DeleteOperationMetadata>, + polling_policy(*current), __func__); +} + StatusOr DatasetServiceConnectionImpl::GetDatasetVersion( google::cloud::aiplatform::v1::GetDatasetVersionRequest const& request) { @@ -471,6 +792,61 @@ DatasetServiceConnectionImpl::RestoreDatasetVersion( polling_policy(*current), __func__); } +StatusOr +DatasetServiceConnectionImpl::RestoreDatasetVersion( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::RestoreDatasetVersionRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->RestoreDatasetVersion(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::aiplatform::v1::RestoreDatasetVersionRequest const& + request) { + return stub_->RestoreDatasetVersion(context, options, request); + }, + *current, request, __func__); +} + +future> +DatasetServiceConnectionImpl::RestoreDatasetVersion( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to RestoreDatasetVersion", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::aiplatform::v1::DatasetVersion>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::aiplatform::v1::DatasetVersion>, + polling_policy(*current), __func__); +} + StreamRange DatasetServiceConnectionImpl::ListDataItems( google::cloud::aiplatform::v1::ListDataItemsRequest request) { @@ -613,6 +989,60 @@ DatasetServiceConnectionImpl::DeleteSavedQuery( polling_policy(*current), __func__); } +StatusOr +DatasetServiceConnectionImpl::DeleteSavedQuery( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteSavedQueryRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteSavedQuery(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::aiplatform::v1::DeleteSavedQueryRequest const& + request) { + return stub_->DeleteSavedQuery(context, options, request); + }, + *current, request, __func__); +} + +future> +DatasetServiceConnectionImpl::DeleteSavedQuery( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteSavedQuery", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::aiplatform::v1::DeleteOperationMetadata>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::cloud::aiplatform::v1::DeleteOperationMetadata>, + polling_policy(*current), __func__); +} + StatusOr DatasetServiceConnectionImpl::GetAnnotationSpec( google::cloud::aiplatform::v1::GetAnnotationSpecRequest const& request) { diff --git a/google/cloud/aiplatform/v1/internal/dataset_connection_impl.h b/google/cloud/aiplatform/v1/internal/dataset_connection_impl.h index 1041dac0293d5..20c264bf3a74b 100644 --- a/google/cloud/aiplatform/v1/internal/dataset_connection_impl.h +++ b/google/cloud/aiplatform/v1/internal/dataset_connection_impl.h @@ -56,6 +56,15 @@ class DatasetServiceConnectionImpl google::cloud::aiplatform::v1::CreateDatasetRequest const& request) override; + StatusOr CreateDataset( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::CreateDatasetRequest const& request) + override; + + future> CreateDataset( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetDataset( google::cloud::aiplatform::v1::GetDatasetRequest const& request) override; @@ -70,19 +79,54 @@ class DatasetServiceConnectionImpl DeleteDataset(google::cloud::aiplatform::v1::DeleteDatasetRequest const& request) override; + StatusOr DeleteDataset( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteDatasetRequest const& request) + override; + + future> + DeleteDataset(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ImportData( google::cloud::aiplatform::v1::ImportDataRequest const& request) override; + StatusOr ImportData( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::ImportDataRequest const& request) override; + + future> + ImportData(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ExportData( google::cloud::aiplatform::v1::ExportDataRequest const& request) override; + StatusOr ExportData( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::ExportDataRequest const& request) override; + + future> + ExportData(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> CreateDatasetVersion( google::cloud::aiplatform::v1::CreateDatasetVersionRequest const& request) override; + StatusOr CreateDatasetVersion( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::CreateDatasetVersionRequest const& request) + override; + + future> + CreateDatasetVersion( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr UpdateDatasetVersion( google::cloud::aiplatform::v1::UpdateDatasetVersionRequest const& request) override; @@ -92,6 +136,16 @@ class DatasetServiceConnectionImpl google::cloud::aiplatform::v1::DeleteDatasetVersionRequest const& request) override; + StatusOr DeleteDatasetVersion( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteDatasetVersionRequest const& request) + override; + + future> + DeleteDatasetVersion( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetDatasetVersion( google::cloud::aiplatform::v1::GetDatasetVersionRequest const& request) override; @@ -105,6 +159,16 @@ class DatasetServiceConnectionImpl google::cloud::aiplatform::v1::RestoreDatasetVersionRequest const& request) override; + StatusOr RestoreDatasetVersion( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::RestoreDatasetVersionRequest const& + request) override; + + future> + RestoreDatasetVersion( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListDataItems( google::cloud::aiplatform::v1::ListDataItemsRequest request) override; @@ -118,6 +182,15 @@ class DatasetServiceConnectionImpl DeleteSavedQuery(google::cloud::aiplatform::v1::DeleteSavedQueryRequest const& request) override; + StatusOr DeleteSavedQuery( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteSavedQueryRequest const& request) + override; + + future> + DeleteSavedQuery(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetAnnotationSpec( google::cloud::aiplatform::v1::GetAnnotationSpecRequest const& request) override; diff --git a/google/cloud/aiplatform/v1/internal/dataset_tracing_connection.cc b/google/cloud/aiplatform/v1/internal/dataset_tracing_connection.cc index 27d7fe2de23a8..b15619218b1cd 100644 --- a/google/cloud/aiplatform/v1/internal/dataset_tracing_connection.cc +++ b/google/cloud/aiplatform/v1/internal/dataset_tracing_connection.cc @@ -42,6 +42,27 @@ DatasetServiceTracingConnection::CreateDataset( return internal::EndSpan(std::move(span), child_->CreateDataset(request)); } +StatusOr +DatasetServiceTracingConnection::CreateDataset( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::CreateDatasetRequest const& request) { + auto span = internal::MakeSpan( + "aiplatform_v1::DatasetServiceConnection::CreateDataset"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->CreateDataset(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +DatasetServiceTracingConnection::CreateDataset( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "aiplatform_v1::DatasetServiceConnection::CreateDataset"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->CreateDataset(ExperimentalTag{}, operation)); +} + StatusOr DatasetServiceTracingConnection::GetDataset( google::cloud::aiplatform::v1::GetDatasetRequest const& request) { @@ -80,6 +101,27 @@ DatasetServiceTracingConnection::DeleteDataset( return internal::EndSpan(std::move(span), child_->DeleteDataset(request)); } +StatusOr +DatasetServiceTracingConnection::DeleteDataset( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteDatasetRequest const& request) { + auto span = internal::MakeSpan( + "aiplatform_v1::DatasetServiceConnection::DeleteDataset"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->DeleteDataset(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +DatasetServiceTracingConnection::DeleteDataset( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "aiplatform_v1::DatasetServiceConnection::DeleteDataset"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->DeleteDataset(ExperimentalTag{}, operation)); +} + future> DatasetServiceTracingConnection::ImportData( google::cloud::aiplatform::v1::ImportDataRequest const& request) { @@ -89,6 +131,27 @@ DatasetServiceTracingConnection::ImportData( return internal::EndSpan(std::move(span), child_->ImportData(request)); } +StatusOr +DatasetServiceTracingConnection::ImportData( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::ImportDataRequest const& request) { + auto span = + internal::MakeSpan("aiplatform_v1::DatasetServiceConnection::ImportData"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->ImportData(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +DatasetServiceTracingConnection::ImportData( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = + internal::MakeSpan("aiplatform_v1::DatasetServiceConnection::ImportData"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->ImportData(ExperimentalTag{}, operation)); +} + future> DatasetServiceTracingConnection::ExportData( google::cloud::aiplatform::v1::ExportDataRequest const& request) { @@ -98,6 +161,27 @@ DatasetServiceTracingConnection::ExportData( return internal::EndSpan(std::move(span), child_->ExportData(request)); } +StatusOr +DatasetServiceTracingConnection::ExportData( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::ExportDataRequest const& request) { + auto span = + internal::MakeSpan("aiplatform_v1::DatasetServiceConnection::ExportData"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->ExportData(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +DatasetServiceTracingConnection::ExportData( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = + internal::MakeSpan("aiplatform_v1::DatasetServiceConnection::ExportData"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->ExportData(ExperimentalTag{}, operation)); +} + future> DatasetServiceTracingConnection::CreateDatasetVersion( google::cloud::aiplatform::v1::CreateDatasetVersionRequest const& request) { @@ -108,6 +192,28 @@ DatasetServiceTracingConnection::CreateDatasetVersion( child_->CreateDatasetVersion(request)); } +StatusOr +DatasetServiceTracingConnection::CreateDatasetVersion( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::CreateDatasetVersionRequest const& request) { + auto span = internal::MakeSpan( + "aiplatform_v1::DatasetServiceConnection::CreateDatasetVersion"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->CreateDatasetVersion(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +DatasetServiceTracingConnection::CreateDatasetVersion( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "aiplatform_v1::DatasetServiceConnection::CreateDatasetVersion"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->CreateDatasetVersion( + ExperimentalTag{}, operation)); +} + StatusOr DatasetServiceTracingConnection::UpdateDatasetVersion( google::cloud::aiplatform::v1::UpdateDatasetVersionRequest const& request) { @@ -127,6 +233,28 @@ DatasetServiceTracingConnection::DeleteDatasetVersion( child_->DeleteDatasetVersion(request)); } +StatusOr +DatasetServiceTracingConnection::DeleteDatasetVersion( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteDatasetVersionRequest const& request) { + auto span = internal::MakeSpan( + "aiplatform_v1::DatasetServiceConnection::DeleteDatasetVersion"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->DeleteDatasetVersion(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +DatasetServiceTracingConnection::DeleteDatasetVersion( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "aiplatform_v1::DatasetServiceConnection::DeleteDatasetVersion"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->DeleteDatasetVersion( + ExperimentalTag{}, operation)); +} + StatusOr DatasetServiceTracingConnection::GetDatasetVersion( google::cloud::aiplatform::v1::GetDatasetVersionRequest const& request) { @@ -159,6 +287,29 @@ DatasetServiceTracingConnection::RestoreDatasetVersion( child_->RestoreDatasetVersion(request)); } +StatusOr +DatasetServiceTracingConnection::RestoreDatasetVersion( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::RestoreDatasetVersionRequest const& + request) { + auto span = internal::MakeSpan( + "aiplatform_v1::DatasetServiceConnection::RestoreDatasetVersion"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->RestoreDatasetVersion(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +DatasetServiceTracingConnection::RestoreDatasetVersion( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "aiplatform_v1::DatasetServiceConnection::RestoreDatasetVersion"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->RestoreDatasetVersion( + ExperimentalTag{}, operation)); +} + StreamRange DatasetServiceTracingConnection::ListDataItems( google::cloud::aiplatform::v1::ListDataItemsRequest request) { @@ -203,6 +354,28 @@ DatasetServiceTracingConnection::DeleteSavedQuery( return internal::EndSpan(std::move(span), child_->DeleteSavedQuery(request)); } +StatusOr +DatasetServiceTracingConnection::DeleteSavedQuery( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteSavedQueryRequest const& request) { + auto span = internal::MakeSpan( + "aiplatform_v1::DatasetServiceConnection::DeleteSavedQuery"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->DeleteSavedQuery(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +DatasetServiceTracingConnection::DeleteSavedQuery( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "aiplatform_v1::DatasetServiceConnection::DeleteSavedQuery"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->DeleteSavedQuery(ExperimentalTag{}, operation)); +} + StatusOr DatasetServiceTracingConnection::GetAnnotationSpec( google::cloud::aiplatform::v1::GetAnnotationSpecRequest const& request) { diff --git a/google/cloud/aiplatform/v1/internal/dataset_tracing_connection.h b/google/cloud/aiplatform/v1/internal/dataset_tracing_connection.h index 251c011a39246..168d363b59972 100644 --- a/google/cloud/aiplatform/v1/internal/dataset_tracing_connection.h +++ b/google/cloud/aiplatform/v1/internal/dataset_tracing_connection.h @@ -44,6 +44,15 @@ class DatasetServiceTracingConnection google::cloud::aiplatform::v1::CreateDatasetRequest const& request) override; + StatusOr CreateDataset( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::CreateDatasetRequest const& request) + override; + + future> CreateDataset( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetDataset( google::cloud::aiplatform::v1::GetDatasetRequest const& request) override; @@ -58,19 +67,54 @@ class DatasetServiceTracingConnection DeleteDataset(google::cloud::aiplatform::v1::DeleteDatasetRequest const& request) override; + StatusOr DeleteDataset( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteDatasetRequest const& request) + override; + + future> + DeleteDataset(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ImportData( google::cloud::aiplatform::v1::ImportDataRequest const& request) override; + StatusOr ImportData( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::ImportDataRequest const& request) override; + + future> + ImportData(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ExportData( google::cloud::aiplatform::v1::ExportDataRequest const& request) override; + StatusOr ExportData( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::ExportDataRequest const& request) override; + + future> + ExportData(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> CreateDatasetVersion( google::cloud::aiplatform::v1::CreateDatasetVersionRequest const& request) override; + StatusOr CreateDatasetVersion( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::CreateDatasetVersionRequest const& request) + override; + + future> + CreateDatasetVersion( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr UpdateDatasetVersion( google::cloud::aiplatform::v1::UpdateDatasetVersionRequest const& request) override; @@ -80,6 +124,16 @@ class DatasetServiceTracingConnection google::cloud::aiplatform::v1::DeleteDatasetVersionRequest const& request) override; + StatusOr DeleteDatasetVersion( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteDatasetVersionRequest const& request) + override; + + future> + DeleteDatasetVersion( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetDatasetVersion( google::cloud::aiplatform::v1::GetDatasetVersionRequest const& request) override; @@ -93,6 +147,16 @@ class DatasetServiceTracingConnection google::cloud::aiplatform::v1::RestoreDatasetVersionRequest const& request) override; + StatusOr RestoreDatasetVersion( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::RestoreDatasetVersionRequest const& + request) override; + + future> + RestoreDatasetVersion( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListDataItems( google::cloud::aiplatform::v1::ListDataItemsRequest request) override; @@ -106,6 +170,15 @@ class DatasetServiceTracingConnection DeleteSavedQuery(google::cloud::aiplatform::v1::DeleteSavedQueryRequest const& request) override; + StatusOr DeleteSavedQuery( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteSavedQueryRequest const& request) + override; + + future> + DeleteSavedQuery(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetAnnotationSpec( google::cloud::aiplatform::v1::GetAnnotationSpecRequest const& request) override; diff --git a/google/cloud/aiplatform/v1/internal/deployment_resource_pool_connection_impl.cc b/google/cloud/aiplatform/v1/internal/deployment_resource_pool_connection_impl.cc index 1f8eb577eda6d..746acdf990612 100644 --- a/google/cloud/aiplatform/v1/internal/deployment_resource_pool_connection_impl.cc +++ b/google/cloud/aiplatform/v1/internal/deployment_resource_pool_connection_impl.cc @@ -116,6 +116,61 @@ DeploymentResourcePoolServiceConnectionImpl::CreateDeploymentResourcePool( polling_policy(*current), __func__); } +StatusOr +DeploymentResourcePoolServiceConnectionImpl::CreateDeploymentResourcePool( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::CreateDeploymentResourcePoolRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateDeploymentResourcePool(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::aiplatform::v1:: + CreateDeploymentResourcePoolRequest const& request) { + return stub_->CreateDeploymentResourcePool(context, options, request); + }, + *current, request, __func__); +} + +future> +DeploymentResourcePoolServiceConnectionImpl::CreateDeploymentResourcePool( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to CreateDeploymentResourcePool", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::aiplatform::v1::DeploymentResourcePool>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::aiplatform::v1::DeploymentResourcePool>, + polling_policy(*current), __func__); +} + StatusOr DeploymentResourcePoolServiceConnectionImpl::GetDeploymentResourcePool( google::cloud::aiplatform::v1::GetDeploymentResourcePoolRequest const& @@ -211,6 +266,61 @@ DeploymentResourcePoolServiceConnectionImpl::DeleteDeploymentResourcePool( polling_policy(*current), __func__); } +StatusOr +DeploymentResourcePoolServiceConnectionImpl::DeleteDeploymentResourcePool( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteDeploymentResourcePoolRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteDeploymentResourcePool(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::aiplatform::v1:: + DeleteDeploymentResourcePoolRequest const& request) { + return stub_->DeleteDeploymentResourcePool(context, options, request); + }, + *current, request, __func__); +} + +future> +DeploymentResourcePoolServiceConnectionImpl::DeleteDeploymentResourcePool( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteDeploymentResourcePool", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::aiplatform::v1::DeleteOperationMetadata>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::cloud::aiplatform::v1::DeleteOperationMetadata>, + polling_policy(*current), __func__); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace aiplatform_v1_internal } // namespace cloud diff --git a/google/cloud/aiplatform/v1/internal/deployment_resource_pool_connection_impl.h b/google/cloud/aiplatform/v1/internal/deployment_resource_pool_connection_impl.h index c15a58a11c9d6..fee0b8ee7f190 100644 --- a/google/cloud/aiplatform/v1/internal/deployment_resource_pool_connection_impl.h +++ b/google/cloud/aiplatform/v1/internal/deployment_resource_pool_connection_impl.h @@ -58,6 +58,16 @@ class DeploymentResourcePoolServiceConnectionImpl google::cloud::aiplatform::v1::CreateDeploymentResourcePoolRequest const& request) override; + StatusOr CreateDeploymentResourcePool( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::CreateDeploymentResourcePoolRequest const& + request) override; + + future> + CreateDeploymentResourcePool( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetDeploymentResourcePool( google::cloud::aiplatform::v1::GetDeploymentResourcePoolRequest const& @@ -73,6 +83,16 @@ class DeploymentResourcePoolServiceConnectionImpl google::cloud::aiplatform::v1::DeleteDeploymentResourcePoolRequest const& request) override; + StatusOr DeleteDeploymentResourcePool( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteDeploymentResourcePoolRequest const& + request) override; + + future> + DeleteDeploymentResourcePool( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + private: std::unique_ptr background_; std::shared_ptr diff --git a/google/cloud/aiplatform/v1/internal/deployment_resource_pool_tracing_connection.cc b/google/cloud/aiplatform/v1/internal/deployment_resource_pool_tracing_connection.cc index 11ad692e4f0fb..e987ae4639e4d 100644 --- a/google/cloud/aiplatform/v1/internal/deployment_resource_pool_tracing_connection.cc +++ b/google/cloud/aiplatform/v1/internal/deployment_resource_pool_tracing_connection.cc @@ -47,6 +47,32 @@ DeploymentResourcePoolServiceTracingConnection::CreateDeploymentResourcePool( child_->CreateDeploymentResourcePool(request)); } +StatusOr +DeploymentResourcePoolServiceTracingConnection::CreateDeploymentResourcePool( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::CreateDeploymentResourcePoolRequest const& + request) { + auto span = internal::MakeSpan( + "aiplatform_v1::DeploymentResourcePoolServiceConnection::" + "CreateDeploymentResourcePool"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->CreateDeploymentResourcePool(ExperimentalTag{}, + NoAwaitTag{}, request)); +} + +future> +DeploymentResourcePoolServiceTracingConnection::CreateDeploymentResourcePool( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "aiplatform_v1::DeploymentResourcePoolServiceConnection::" + "CreateDeploymentResourcePool"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), + child_->CreateDeploymentResourcePool(ExperimentalTag{}, operation)); +} + StatusOr DeploymentResourcePoolServiceTracingConnection::GetDeploymentResourcePool( google::cloud::aiplatform::v1::GetDeploymentResourcePoolRequest const& @@ -83,6 +109,32 @@ DeploymentResourcePoolServiceTracingConnection::DeleteDeploymentResourcePool( child_->DeleteDeploymentResourcePool(request)); } +StatusOr +DeploymentResourcePoolServiceTracingConnection::DeleteDeploymentResourcePool( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteDeploymentResourcePoolRequest const& + request) { + auto span = internal::MakeSpan( + "aiplatform_v1::DeploymentResourcePoolServiceConnection::" + "DeleteDeploymentResourcePool"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->DeleteDeploymentResourcePool(ExperimentalTag{}, + NoAwaitTag{}, request)); +} + +future> +DeploymentResourcePoolServiceTracingConnection::DeleteDeploymentResourcePool( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "aiplatform_v1::DeploymentResourcePoolServiceConnection::" + "DeleteDeploymentResourcePool"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), + child_->DeleteDeploymentResourcePool(ExperimentalTag{}, operation)); +} + #endif // GOOGLE_CLOUD_CPP_HAVE_OPENTELEMETRY std::shared_ptr diff --git a/google/cloud/aiplatform/v1/internal/deployment_resource_pool_tracing_connection.h b/google/cloud/aiplatform/v1/internal/deployment_resource_pool_tracing_connection.h index fe0843931043d..646489b27e67d 100644 --- a/google/cloud/aiplatform/v1/internal/deployment_resource_pool_tracing_connection.h +++ b/google/cloud/aiplatform/v1/internal/deployment_resource_pool_tracing_connection.h @@ -46,6 +46,16 @@ class DeploymentResourcePoolServiceTracingConnection google::cloud::aiplatform::v1::CreateDeploymentResourcePoolRequest const& request) override; + StatusOr CreateDeploymentResourcePool( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::CreateDeploymentResourcePoolRequest const& + request) override; + + future> + CreateDeploymentResourcePool( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetDeploymentResourcePool( google::cloud::aiplatform::v1::GetDeploymentResourcePoolRequest const& @@ -61,6 +71,16 @@ class DeploymentResourcePoolServiceTracingConnection google::cloud::aiplatform::v1::DeleteDeploymentResourcePoolRequest const& request) override; + StatusOr DeleteDeploymentResourcePool( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteDeploymentResourcePoolRequest const& + request) override; + + future> + DeleteDeploymentResourcePool( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + private: std::shared_ptr child_; diff --git a/google/cloud/aiplatform/v1/internal/endpoint_connection_impl.cc b/google/cloud/aiplatform/v1/internal/endpoint_connection_impl.cc index 38ba45e87f982..3b657dffedbc6 100644 --- a/google/cloud/aiplatform/v1/internal/endpoint_connection_impl.cc +++ b/google/cloud/aiplatform/v1/internal/endpoint_connection_impl.cc @@ -106,6 +106,59 @@ EndpointServiceConnectionImpl::CreateEndpoint( polling_policy(*current), __func__); } +StatusOr +EndpointServiceConnectionImpl::CreateEndpoint( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::CreateEndpointRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateEndpoint(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::aiplatform::v1::CreateEndpointRequest const& request) { + return stub_->CreateEndpoint(context, options, request); + }, + *current, request, __func__); +} + +future> +EndpointServiceConnectionImpl::CreateEndpoint( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to CreateEndpoint", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::aiplatform::v1::Endpoint>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::aiplatform::v1::Endpoint>, + polling_policy(*current), __func__); +} + StatusOr EndpointServiceConnectionImpl::GetEndpoint( google::cloud::aiplatform::v1::GetEndpointRequest const& request) { @@ -208,6 +261,60 @@ EndpointServiceConnectionImpl::DeleteEndpoint( polling_policy(*current), __func__); } +StatusOr +EndpointServiceConnectionImpl::DeleteEndpoint( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteEndpointRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteEndpoint(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::aiplatform::v1::DeleteEndpointRequest const& request) { + return stub_->DeleteEndpoint(context, options, request); + }, + *current, request, __func__); +} + +future> +EndpointServiceConnectionImpl::DeleteEndpoint( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteEndpoint", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::aiplatform::v1::DeleteOperationMetadata>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::cloud::aiplatform::v1::DeleteOperationMetadata>, + polling_policy(*current), __func__); +} + future> EndpointServiceConnectionImpl::DeployModel( google::cloud::aiplatform::v1::DeployModelRequest const& request) { @@ -247,6 +354,59 @@ EndpointServiceConnectionImpl::DeployModel( polling_policy(*current), __func__); } +StatusOr +EndpointServiceConnectionImpl::DeployModel( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeployModelRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeployModel(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::aiplatform::v1::DeployModelRequest const& request) { + return stub_->DeployModel(context, options, request); + }, + *current, request, __func__); +} + +future> +EndpointServiceConnectionImpl::DeployModel( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DeployModel", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::aiplatform::v1::DeployModelResponse>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::aiplatform::v1::DeployModelResponse>, + polling_policy(*current), __func__); +} + future> EndpointServiceConnectionImpl::UndeployModel( google::cloud::aiplatform::v1::UndeployModelRequest const& request) { @@ -286,6 +446,60 @@ EndpointServiceConnectionImpl::UndeployModel( polling_policy(*current), __func__); } +StatusOr +EndpointServiceConnectionImpl::UndeployModel( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::UndeployModelRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UndeployModel(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::aiplatform::v1::UndeployModelRequest const& request) { + return stub_->UndeployModel(context, options, request); + }, + *current, request, __func__); +} + +future> +EndpointServiceConnectionImpl::UndeployModel( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to UndeployModel", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::aiplatform::v1::UndeployModelResponse>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::aiplatform::v1::UndeployModelResponse>, + polling_policy(*current), __func__); +} + future> EndpointServiceConnectionImpl::MutateDeployedModel( google::cloud::aiplatform::v1::MutateDeployedModelRequest const& request) { @@ -326,6 +540,60 @@ EndpointServiceConnectionImpl::MutateDeployedModel( polling_policy(*current), __func__); } +StatusOr +EndpointServiceConnectionImpl::MutateDeployedModel( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::MutateDeployedModelRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->MutateDeployedModel(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::aiplatform::v1::MutateDeployedModelRequest const& + request) { + return stub_->MutateDeployedModel(context, options, request); + }, + *current, request, __func__); +} + +future> +EndpointServiceConnectionImpl::MutateDeployedModel( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to MutateDeployedModel", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::aiplatform::v1::MutateDeployedModelResponse>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::aiplatform::v1::MutateDeployedModelResponse>, + polling_policy(*current), __func__); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace aiplatform_v1_internal } // namespace cloud diff --git a/google/cloud/aiplatform/v1/internal/endpoint_connection_impl.h b/google/cloud/aiplatform/v1/internal/endpoint_connection_impl.h index d51c58121eff2..80e90d8e129a7 100644 --- a/google/cloud/aiplatform/v1/internal/endpoint_connection_impl.h +++ b/google/cloud/aiplatform/v1/internal/endpoint_connection_impl.h @@ -56,6 +56,15 @@ class EndpointServiceConnectionImpl google::cloud::aiplatform::v1::CreateEndpointRequest const& request) override; + StatusOr CreateEndpoint( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::CreateEndpointRequest const& request) + override; + + future> CreateEndpoint( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetEndpoint( google::cloud::aiplatform::v1::GetEndpointRequest const& request) override; @@ -71,19 +80,55 @@ class EndpointServiceConnectionImpl DeleteEndpoint(google::cloud::aiplatform::v1::DeleteEndpointRequest const& request) override; + StatusOr DeleteEndpoint( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteEndpointRequest const& request) + override; + + future> + DeleteEndpoint(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeployModel(google::cloud::aiplatform::v1::DeployModelRequest const& request) override; + StatusOr DeployModel( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeployModelRequest const& request) + override; + + future> + DeployModel(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UndeployModel(google::cloud::aiplatform::v1::UndeployModelRequest const& request) override; + StatusOr UndeployModel( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::UndeployModelRequest const& request) + override; + + future> + UndeployModel(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> MutateDeployedModel( google::cloud::aiplatform::v1::MutateDeployedModelRequest const& request) override; + StatusOr MutateDeployedModel( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::MutateDeployedModelRequest const& request) + override; + + future> + MutateDeployedModel(ExperimentalTag, + google::longrunning::Operation const& operation) override; + private: std::unique_ptr background_; std::shared_ptr stub_; diff --git a/google/cloud/aiplatform/v1/internal/endpoint_tracing_connection.cc b/google/cloud/aiplatform/v1/internal/endpoint_tracing_connection.cc index 2ace50213610a..d405ac895b8c7 100644 --- a/google/cloud/aiplatform/v1/internal/endpoint_tracing_connection.cc +++ b/google/cloud/aiplatform/v1/internal/endpoint_tracing_connection.cc @@ -42,6 +42,27 @@ EndpointServiceTracingConnection::CreateEndpoint( return internal::EndSpan(std::move(span), child_->CreateEndpoint(request)); } +StatusOr +EndpointServiceTracingConnection::CreateEndpoint( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::CreateEndpointRequest const& request) { + auto span = internal::MakeSpan( + "aiplatform_v1::EndpointServiceConnection::CreateEndpoint"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->CreateEndpoint(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +EndpointServiceTracingConnection::CreateEndpoint( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "aiplatform_v1::EndpointServiceConnection::CreateEndpoint"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->CreateEndpoint(ExperimentalTag{}, operation)); +} + StatusOr EndpointServiceTracingConnection::GetEndpoint( google::cloud::aiplatform::v1::GetEndpointRequest const& request) { @@ -80,6 +101,27 @@ EndpointServiceTracingConnection::DeleteEndpoint( return internal::EndSpan(std::move(span), child_->DeleteEndpoint(request)); } +StatusOr +EndpointServiceTracingConnection::DeleteEndpoint( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteEndpointRequest const& request) { + auto span = internal::MakeSpan( + "aiplatform_v1::EndpointServiceConnection::DeleteEndpoint"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->DeleteEndpoint(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +EndpointServiceTracingConnection::DeleteEndpoint( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "aiplatform_v1::EndpointServiceConnection::DeleteEndpoint"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->DeleteEndpoint(ExperimentalTag{}, operation)); +} + future> EndpointServiceTracingConnection::DeployModel( google::cloud::aiplatform::v1::DeployModelRequest const& request) { @@ -89,6 +131,27 @@ EndpointServiceTracingConnection::DeployModel( return internal::EndSpan(std::move(span), child_->DeployModel(request)); } +StatusOr +EndpointServiceTracingConnection::DeployModel( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeployModelRequest const& request) { + auto span = internal::MakeSpan( + "aiplatform_v1::EndpointServiceConnection::DeployModel"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->DeployModel(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +EndpointServiceTracingConnection::DeployModel( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "aiplatform_v1::EndpointServiceConnection::DeployModel"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->DeployModel(ExperimentalTag{}, operation)); +} + future> EndpointServiceTracingConnection::UndeployModel( google::cloud::aiplatform::v1::UndeployModelRequest const& request) { @@ -98,6 +161,27 @@ EndpointServiceTracingConnection::UndeployModel( return internal::EndSpan(std::move(span), child_->UndeployModel(request)); } +StatusOr +EndpointServiceTracingConnection::UndeployModel( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::UndeployModelRequest const& request) { + auto span = internal::MakeSpan( + "aiplatform_v1::EndpointServiceConnection::UndeployModel"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->UndeployModel(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +EndpointServiceTracingConnection::UndeployModel( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "aiplatform_v1::EndpointServiceConnection::UndeployModel"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->UndeployModel(ExperimentalTag{}, operation)); +} + future> EndpointServiceTracingConnection::MutateDeployedModel( google::cloud::aiplatform::v1::MutateDeployedModelRequest const& request) { @@ -108,6 +192,28 @@ EndpointServiceTracingConnection::MutateDeployedModel( child_->MutateDeployedModel(request)); } +StatusOr +EndpointServiceTracingConnection::MutateDeployedModel( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::MutateDeployedModelRequest const& request) { + auto span = internal::MakeSpan( + "aiplatform_v1::EndpointServiceConnection::MutateDeployedModel"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->MutateDeployedModel(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +EndpointServiceTracingConnection::MutateDeployedModel( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "aiplatform_v1::EndpointServiceConnection::MutateDeployedModel"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->MutateDeployedModel( + ExperimentalTag{}, operation)); +} + #endif // GOOGLE_CLOUD_CPP_HAVE_OPENTELEMETRY std::shared_ptr diff --git a/google/cloud/aiplatform/v1/internal/endpoint_tracing_connection.h b/google/cloud/aiplatform/v1/internal/endpoint_tracing_connection.h index ef1d478730eea..2301361deab72 100644 --- a/google/cloud/aiplatform/v1/internal/endpoint_tracing_connection.h +++ b/google/cloud/aiplatform/v1/internal/endpoint_tracing_connection.h @@ -44,6 +44,15 @@ class EndpointServiceTracingConnection google::cloud::aiplatform::v1::CreateEndpointRequest const& request) override; + StatusOr CreateEndpoint( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::CreateEndpointRequest const& request) + override; + + future> CreateEndpoint( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetEndpoint( google::cloud::aiplatform::v1::GetEndpointRequest const& request) override; @@ -59,19 +68,55 @@ class EndpointServiceTracingConnection DeleteEndpoint(google::cloud::aiplatform::v1::DeleteEndpointRequest const& request) override; + StatusOr DeleteEndpoint( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteEndpointRequest const& request) + override; + + future> + DeleteEndpoint(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeployModel(google::cloud::aiplatform::v1::DeployModelRequest const& request) override; + StatusOr DeployModel( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeployModelRequest const& request) + override; + + future> + DeployModel(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UndeployModel(google::cloud::aiplatform::v1::UndeployModelRequest const& request) override; + StatusOr UndeployModel( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::UndeployModelRequest const& request) + override; + + future> + UndeployModel(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> MutateDeployedModel( google::cloud::aiplatform::v1::MutateDeployedModelRequest const& request) override; + StatusOr MutateDeployedModel( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::MutateDeployedModelRequest const& request) + override; + + future> + MutateDeployedModel(ExperimentalTag, + google::longrunning::Operation const& operation) override; + private: std::shared_ptr child_; }; diff --git a/google/cloud/aiplatform/v1/internal/feature_online_store_admin_connection_impl.cc b/google/cloud/aiplatform/v1/internal/feature_online_store_admin_connection_impl.cc index 3583458861401..4d77c777896f3 100644 --- a/google/cloud/aiplatform/v1/internal/feature_online_store_admin_connection_impl.cc +++ b/google/cloud/aiplatform/v1/internal/feature_online_store_admin_connection_impl.cc @@ -118,6 +118,62 @@ FeatureOnlineStoreAdminServiceConnectionImpl::CreateFeatureOnlineStore( polling_policy(*current), __func__); } +StatusOr +FeatureOnlineStoreAdminServiceConnectionImpl::CreateFeatureOnlineStore( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::CreateFeatureOnlineStoreRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateFeatureOnlineStore(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::aiplatform::v1::CreateFeatureOnlineStoreRequest const& + request) { + return stub_->CreateFeatureOnlineStore(context, options, request); + }, + *current, request, __func__); +} + +future> +FeatureOnlineStoreAdminServiceConnectionImpl::CreateFeatureOnlineStore( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to CreateFeatureOnlineStore", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::aiplatform::v1::FeatureOnlineStore>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::aiplatform::v1::FeatureOnlineStore>, + polling_policy(*current), __func__); +} + StatusOr FeatureOnlineStoreAdminServiceConnectionImpl::GetFeatureOnlineStore( google::cloud::aiplatform::v1::GetFeatureOnlineStoreRequest const& @@ -212,6 +268,62 @@ FeatureOnlineStoreAdminServiceConnectionImpl::UpdateFeatureOnlineStore( polling_policy(*current), __func__); } +StatusOr +FeatureOnlineStoreAdminServiceConnectionImpl::UpdateFeatureOnlineStore( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::UpdateFeatureOnlineStoreRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UpdateFeatureOnlineStore(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::aiplatform::v1::UpdateFeatureOnlineStoreRequest const& + request) { + return stub_->UpdateFeatureOnlineStore(context, options, request); + }, + *current, request, __func__); +} + +future> +FeatureOnlineStoreAdminServiceConnectionImpl::UpdateFeatureOnlineStore( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to UpdateFeatureOnlineStore", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::aiplatform::v1::FeatureOnlineStore>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::aiplatform::v1::FeatureOnlineStore>, + polling_policy(*current), __func__); +} + future> FeatureOnlineStoreAdminServiceConnectionImpl::DeleteFeatureOnlineStore( google::cloud::aiplatform::v1::DeleteFeatureOnlineStoreRequest const& @@ -253,6 +365,62 @@ FeatureOnlineStoreAdminServiceConnectionImpl::DeleteFeatureOnlineStore( polling_policy(*current), __func__); } +StatusOr +FeatureOnlineStoreAdminServiceConnectionImpl::DeleteFeatureOnlineStore( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteFeatureOnlineStoreRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteFeatureOnlineStore(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::aiplatform::v1::DeleteFeatureOnlineStoreRequest const& + request) { + return stub_->DeleteFeatureOnlineStore(context, options, request); + }, + *current, request, __func__); +} + +future> +FeatureOnlineStoreAdminServiceConnectionImpl::DeleteFeatureOnlineStore( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteFeatureOnlineStore", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::aiplatform::v1::DeleteOperationMetadata>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::cloud::aiplatform::v1::DeleteOperationMetadata>, + polling_policy(*current), __func__); +} + future> FeatureOnlineStoreAdminServiceConnectionImpl::CreateFeatureView( google::cloud::aiplatform::v1::CreateFeatureViewRequest const& request) { @@ -293,6 +461,60 @@ FeatureOnlineStoreAdminServiceConnectionImpl::CreateFeatureView( polling_policy(*current), __func__); } +StatusOr +FeatureOnlineStoreAdminServiceConnectionImpl::CreateFeatureView( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::CreateFeatureViewRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateFeatureView(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::aiplatform::v1::CreateFeatureViewRequest const& + request) { + return stub_->CreateFeatureView(context, options, request); + }, + *current, request, __func__); +} + +future> +FeatureOnlineStoreAdminServiceConnectionImpl::CreateFeatureView( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to CreateFeatureView", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::aiplatform::v1::FeatureView>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::aiplatform::v1::FeatureView>, + polling_policy(*current), __func__); +} + StatusOr FeatureOnlineStoreAdminServiceConnectionImpl::GetFeatureView( google::cloud::aiplatform::v1::GetFeatureViewRequest const& request) { @@ -383,6 +605,60 @@ FeatureOnlineStoreAdminServiceConnectionImpl::UpdateFeatureView( polling_policy(*current), __func__); } +StatusOr +FeatureOnlineStoreAdminServiceConnectionImpl::UpdateFeatureView( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::UpdateFeatureViewRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UpdateFeatureView(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::aiplatform::v1::UpdateFeatureViewRequest const& + request) { + return stub_->UpdateFeatureView(context, options, request); + }, + *current, request, __func__); +} + +future> +FeatureOnlineStoreAdminServiceConnectionImpl::UpdateFeatureView( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to UpdateFeatureView", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::aiplatform::v1::FeatureView>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::aiplatform::v1::FeatureView>, + polling_policy(*current), __func__); +} + future> FeatureOnlineStoreAdminServiceConnectionImpl::DeleteFeatureView( google::cloud::aiplatform::v1::DeleteFeatureViewRequest const& request) { @@ -423,6 +699,60 @@ FeatureOnlineStoreAdminServiceConnectionImpl::DeleteFeatureView( polling_policy(*current), __func__); } +StatusOr +FeatureOnlineStoreAdminServiceConnectionImpl::DeleteFeatureView( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteFeatureViewRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteFeatureView(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::aiplatform::v1::DeleteFeatureViewRequest const& + request) { + return stub_->DeleteFeatureView(context, options, request); + }, + *current, request, __func__); +} + +future> +FeatureOnlineStoreAdminServiceConnectionImpl::DeleteFeatureView( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteFeatureView", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::aiplatform::v1::DeleteOperationMetadata>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::cloud::aiplatform::v1::DeleteOperationMetadata>, + polling_policy(*current), __func__); +} + StatusOr FeatureOnlineStoreAdminServiceConnectionImpl::SyncFeatureView( google::cloud::aiplatform::v1::SyncFeatureViewRequest const& request) { diff --git a/google/cloud/aiplatform/v1/internal/feature_online_store_admin_connection_impl.h b/google/cloud/aiplatform/v1/internal/feature_online_store_admin_connection_impl.h index 17cedeb557057..3c7d5e2d8b1e1 100644 --- a/google/cloud/aiplatform/v1/internal/feature_online_store_admin_connection_impl.h +++ b/google/cloud/aiplatform/v1/internal/feature_online_store_admin_connection_impl.h @@ -59,6 +59,16 @@ class FeatureOnlineStoreAdminServiceConnectionImpl google::cloud::aiplatform::v1::CreateFeatureOnlineStoreRequest const& request) override; + StatusOr CreateFeatureOnlineStore( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::CreateFeatureOnlineStoreRequest const& + request) override; + + future> + CreateFeatureOnlineStore( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetFeatureOnlineStore( google::cloud::aiplatform::v1::GetFeatureOnlineStoreRequest const& @@ -74,16 +84,45 @@ class FeatureOnlineStoreAdminServiceConnectionImpl google::cloud::aiplatform::v1::UpdateFeatureOnlineStoreRequest const& request) override; + StatusOr UpdateFeatureOnlineStore( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::UpdateFeatureOnlineStoreRequest const& + request) override; + + future> + UpdateFeatureOnlineStore( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteFeatureOnlineStore( google::cloud::aiplatform::v1::DeleteFeatureOnlineStoreRequest const& request) override; + StatusOr DeleteFeatureOnlineStore( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteFeatureOnlineStoreRequest const& + request) override; + + future> + DeleteFeatureOnlineStore( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> CreateFeatureView( google::cloud::aiplatform::v1::CreateFeatureViewRequest const& request) override; + StatusOr CreateFeatureView( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::CreateFeatureViewRequest const& request) + override; + + future> + CreateFeatureView(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetFeatureView( google::cloud::aiplatform::v1::GetFeatureViewRequest const& request) override; @@ -96,11 +135,29 @@ class FeatureOnlineStoreAdminServiceConnectionImpl google::cloud::aiplatform::v1::UpdateFeatureViewRequest const& request) override; + StatusOr UpdateFeatureView( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::UpdateFeatureViewRequest const& request) + override; + + future> + UpdateFeatureView(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteFeatureView( google::cloud::aiplatform::v1::DeleteFeatureViewRequest const& request) override; + StatusOr DeleteFeatureView( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteFeatureViewRequest const& request) + override; + + future> + DeleteFeatureView(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr SyncFeatureView(google::cloud::aiplatform::v1::SyncFeatureViewRequest const& request) override; diff --git a/google/cloud/aiplatform/v1/internal/feature_online_store_admin_tracing_connection.cc b/google/cloud/aiplatform/v1/internal/feature_online_store_admin_tracing_connection.cc index a4816c3c8b4b6..5dc6b854c8965 100644 --- a/google/cloud/aiplatform/v1/internal/feature_online_store_admin_tracing_connection.cc +++ b/google/cloud/aiplatform/v1/internal/feature_online_store_admin_tracing_connection.cc @@ -47,6 +47,31 @@ FeatureOnlineStoreAdminServiceTracingConnection::CreateFeatureOnlineStore( child_->CreateFeatureOnlineStore(request)); } +StatusOr +FeatureOnlineStoreAdminServiceTracingConnection::CreateFeatureOnlineStore( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::CreateFeatureOnlineStoreRequest const& + request) { + auto span = internal::MakeSpan( + "aiplatform_v1::FeatureOnlineStoreAdminServiceConnection::" + "CreateFeatureOnlineStore"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->CreateFeatureOnlineStore(ExperimentalTag{}, NoAwaitTag{}, + request)); +} + +future> +FeatureOnlineStoreAdminServiceTracingConnection::CreateFeatureOnlineStore( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "aiplatform_v1::FeatureOnlineStoreAdminServiceConnection::" + "CreateFeatureOnlineStore"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->CreateFeatureOnlineStore( + ExperimentalTag{}, operation)); +} + StatusOr FeatureOnlineStoreAdminServiceTracingConnection::GetFeatureOnlineStore( google::cloud::aiplatform::v1::GetFeatureOnlineStoreRequest const& @@ -83,6 +108,31 @@ FeatureOnlineStoreAdminServiceTracingConnection::UpdateFeatureOnlineStore( child_->UpdateFeatureOnlineStore(request)); } +StatusOr +FeatureOnlineStoreAdminServiceTracingConnection::UpdateFeatureOnlineStore( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::UpdateFeatureOnlineStoreRequest const& + request) { + auto span = internal::MakeSpan( + "aiplatform_v1::FeatureOnlineStoreAdminServiceConnection::" + "UpdateFeatureOnlineStore"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->UpdateFeatureOnlineStore(ExperimentalTag{}, NoAwaitTag{}, + request)); +} + +future> +FeatureOnlineStoreAdminServiceTracingConnection::UpdateFeatureOnlineStore( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "aiplatform_v1::FeatureOnlineStoreAdminServiceConnection::" + "UpdateFeatureOnlineStore"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->UpdateFeatureOnlineStore( + ExperimentalTag{}, operation)); +} + future> FeatureOnlineStoreAdminServiceTracingConnection::DeleteFeatureOnlineStore( google::cloud::aiplatform::v1::DeleteFeatureOnlineStoreRequest const& @@ -95,6 +145,31 @@ FeatureOnlineStoreAdminServiceTracingConnection::DeleteFeatureOnlineStore( child_->DeleteFeatureOnlineStore(request)); } +StatusOr +FeatureOnlineStoreAdminServiceTracingConnection::DeleteFeatureOnlineStore( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteFeatureOnlineStoreRequest const& + request) { + auto span = internal::MakeSpan( + "aiplatform_v1::FeatureOnlineStoreAdminServiceConnection::" + "DeleteFeatureOnlineStore"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->DeleteFeatureOnlineStore(ExperimentalTag{}, NoAwaitTag{}, + request)); +} + +future> +FeatureOnlineStoreAdminServiceTracingConnection::DeleteFeatureOnlineStore( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "aiplatform_v1::FeatureOnlineStoreAdminServiceConnection::" + "DeleteFeatureOnlineStore"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->DeleteFeatureOnlineStore( + ExperimentalTag{}, operation)); +} + future> FeatureOnlineStoreAdminServiceTracingConnection::CreateFeatureView( google::cloud::aiplatform::v1::CreateFeatureViewRequest const& request) { @@ -105,6 +180,30 @@ FeatureOnlineStoreAdminServiceTracingConnection::CreateFeatureView( return internal::EndSpan(std::move(span), child_->CreateFeatureView(request)); } +StatusOr +FeatureOnlineStoreAdminServiceTracingConnection::CreateFeatureView( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::CreateFeatureViewRequest const& request) { + auto span = internal::MakeSpan( + "aiplatform_v1::FeatureOnlineStoreAdminServiceConnection::" + "CreateFeatureView"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->CreateFeatureView(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +FeatureOnlineStoreAdminServiceTracingConnection::CreateFeatureView( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "aiplatform_v1::FeatureOnlineStoreAdminServiceConnection::" + "CreateFeatureView"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->CreateFeatureView(ExperimentalTag{}, operation)); +} + StatusOr FeatureOnlineStoreAdminServiceTracingConnection::GetFeatureView( google::cloud::aiplatform::v1::GetFeatureViewRequest const& request) { @@ -138,6 +237,30 @@ FeatureOnlineStoreAdminServiceTracingConnection::UpdateFeatureView( return internal::EndSpan(std::move(span), child_->UpdateFeatureView(request)); } +StatusOr +FeatureOnlineStoreAdminServiceTracingConnection::UpdateFeatureView( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::UpdateFeatureViewRequest const& request) { + auto span = internal::MakeSpan( + "aiplatform_v1::FeatureOnlineStoreAdminServiceConnection::" + "UpdateFeatureView"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->UpdateFeatureView(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +FeatureOnlineStoreAdminServiceTracingConnection::UpdateFeatureView( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "aiplatform_v1::FeatureOnlineStoreAdminServiceConnection::" + "UpdateFeatureView"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->UpdateFeatureView(ExperimentalTag{}, operation)); +} + future> FeatureOnlineStoreAdminServiceTracingConnection::DeleteFeatureView( google::cloud::aiplatform::v1::DeleteFeatureViewRequest const& request) { @@ -148,6 +271,30 @@ FeatureOnlineStoreAdminServiceTracingConnection::DeleteFeatureView( return internal::EndSpan(std::move(span), child_->DeleteFeatureView(request)); } +StatusOr +FeatureOnlineStoreAdminServiceTracingConnection::DeleteFeatureView( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteFeatureViewRequest const& request) { + auto span = internal::MakeSpan( + "aiplatform_v1::FeatureOnlineStoreAdminServiceConnection::" + "DeleteFeatureView"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->DeleteFeatureView(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +FeatureOnlineStoreAdminServiceTracingConnection::DeleteFeatureView( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "aiplatform_v1::FeatureOnlineStoreAdminServiceConnection::" + "DeleteFeatureView"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->DeleteFeatureView(ExperimentalTag{}, operation)); +} + StatusOr FeatureOnlineStoreAdminServiceTracingConnection::SyncFeatureView( google::cloud::aiplatform::v1::SyncFeatureViewRequest const& request) { diff --git a/google/cloud/aiplatform/v1/internal/feature_online_store_admin_tracing_connection.h b/google/cloud/aiplatform/v1/internal/feature_online_store_admin_tracing_connection.h index 733a10366afcc..e2bb0de28eca0 100644 --- a/google/cloud/aiplatform/v1/internal/feature_online_store_admin_tracing_connection.h +++ b/google/cloud/aiplatform/v1/internal/feature_online_store_admin_tracing_connection.h @@ -46,6 +46,16 @@ class FeatureOnlineStoreAdminServiceTracingConnection google::cloud::aiplatform::v1::CreateFeatureOnlineStoreRequest const& request) override; + StatusOr CreateFeatureOnlineStore( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::CreateFeatureOnlineStoreRequest const& + request) override; + + future> + CreateFeatureOnlineStore( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetFeatureOnlineStore( google::cloud::aiplatform::v1::GetFeatureOnlineStoreRequest const& @@ -61,16 +71,45 @@ class FeatureOnlineStoreAdminServiceTracingConnection google::cloud::aiplatform::v1::UpdateFeatureOnlineStoreRequest const& request) override; + StatusOr UpdateFeatureOnlineStore( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::UpdateFeatureOnlineStoreRequest const& + request) override; + + future> + UpdateFeatureOnlineStore( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteFeatureOnlineStore( google::cloud::aiplatform::v1::DeleteFeatureOnlineStoreRequest const& request) override; + StatusOr DeleteFeatureOnlineStore( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteFeatureOnlineStoreRequest const& + request) override; + + future> + DeleteFeatureOnlineStore( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> CreateFeatureView( google::cloud::aiplatform::v1::CreateFeatureViewRequest const& request) override; + StatusOr CreateFeatureView( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::CreateFeatureViewRequest const& request) + override; + + future> + CreateFeatureView(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetFeatureView( google::cloud::aiplatform::v1::GetFeatureViewRequest const& request) override; @@ -83,11 +122,29 @@ class FeatureOnlineStoreAdminServiceTracingConnection google::cloud::aiplatform::v1::UpdateFeatureViewRequest const& request) override; + StatusOr UpdateFeatureView( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::UpdateFeatureViewRequest const& request) + override; + + future> + UpdateFeatureView(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteFeatureView( google::cloud::aiplatform::v1::DeleteFeatureViewRequest const& request) override; + StatusOr DeleteFeatureView( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteFeatureViewRequest const& request) + override; + + future> + DeleteFeatureView(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr SyncFeatureView(google::cloud::aiplatform::v1::SyncFeatureViewRequest const& request) override; diff --git a/google/cloud/aiplatform/v1/internal/feature_registry_connection_impl.cc b/google/cloud/aiplatform/v1/internal/feature_registry_connection_impl.cc index f574caa6bafec..8aa77194098f1 100644 --- a/google/cloud/aiplatform/v1/internal/feature_registry_connection_impl.cc +++ b/google/cloud/aiplatform/v1/internal/feature_registry_connection_impl.cc @@ -111,6 +111,60 @@ FeatureRegistryServiceConnectionImpl::CreateFeatureGroup( polling_policy(*current), __func__); } +StatusOr +FeatureRegistryServiceConnectionImpl::CreateFeatureGroup( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::CreateFeatureGroupRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateFeatureGroup(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::aiplatform::v1::CreateFeatureGroupRequest const& + request) { + return stub_->CreateFeatureGroup(context, options, request); + }, + *current, request, __func__); +} + +future> +FeatureRegistryServiceConnectionImpl::CreateFeatureGroup( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to CreateFeatureGroup", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::aiplatform::v1::FeatureGroup>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::aiplatform::v1::FeatureGroup>, + polling_policy(*current), __func__); +} + StatusOr FeatureRegistryServiceConnectionImpl::GetFeatureGroup( google::cloud::aiplatform::v1::GetFeatureGroupRequest const& request) { @@ -202,6 +256,60 @@ FeatureRegistryServiceConnectionImpl::UpdateFeatureGroup( polling_policy(*current), __func__); } +StatusOr +FeatureRegistryServiceConnectionImpl::UpdateFeatureGroup( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::UpdateFeatureGroupRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UpdateFeatureGroup(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::aiplatform::v1::UpdateFeatureGroupRequest const& + request) { + return stub_->UpdateFeatureGroup(context, options, request); + }, + *current, request, __func__); +} + +future> +FeatureRegistryServiceConnectionImpl::UpdateFeatureGroup( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to UpdateFeatureGroup", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::aiplatform::v1::FeatureGroup>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::aiplatform::v1::FeatureGroup>, + polling_policy(*current), __func__); +} + future> FeatureRegistryServiceConnectionImpl::DeleteFeatureGroup( google::cloud::aiplatform::v1::DeleteFeatureGroupRequest const& request) { @@ -242,6 +350,60 @@ FeatureRegistryServiceConnectionImpl::DeleteFeatureGroup( polling_policy(*current), __func__); } +StatusOr +FeatureRegistryServiceConnectionImpl::DeleteFeatureGroup( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteFeatureGroupRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteFeatureGroup(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::aiplatform::v1::DeleteFeatureGroupRequest const& + request) { + return stub_->DeleteFeatureGroup(context, options, request); + }, + *current, request, __func__); +} + +future> +FeatureRegistryServiceConnectionImpl::DeleteFeatureGroup( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteFeatureGroup", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::aiplatform::v1::DeleteOperationMetadata>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::cloud::aiplatform::v1::DeleteOperationMetadata>, + polling_policy(*current), __func__); +} + future> FeatureRegistryServiceConnectionImpl::CreateFeature( google::cloud::aiplatform::v1::CreateFeatureRequest const& request) { @@ -281,6 +443,59 @@ FeatureRegistryServiceConnectionImpl::CreateFeature( polling_policy(*current), __func__); } +StatusOr +FeatureRegistryServiceConnectionImpl::CreateFeature( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::CreateFeatureRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateFeature(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::aiplatform::v1::CreateFeatureRequest const& request) { + return stub_->CreateFeature(context, options, request); + }, + *current, request, __func__); +} + +future> +FeatureRegistryServiceConnectionImpl::CreateFeature( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to CreateFeature", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::aiplatform::v1::Feature>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::aiplatform::v1::Feature>, + polling_policy(*current), __func__); +} + StatusOr FeatureRegistryServiceConnectionImpl::GetFeature( google::cloud::aiplatform::v1::GetFeatureRequest const& request) { @@ -369,6 +584,59 @@ FeatureRegistryServiceConnectionImpl::UpdateFeature( polling_policy(*current), __func__); } +StatusOr +FeatureRegistryServiceConnectionImpl::UpdateFeature( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::UpdateFeatureRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UpdateFeature(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::aiplatform::v1::UpdateFeatureRequest const& request) { + return stub_->UpdateFeature(context, options, request); + }, + *current, request, __func__); +} + +future> +FeatureRegistryServiceConnectionImpl::UpdateFeature( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to UpdateFeature", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::aiplatform::v1::Feature>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::aiplatform::v1::Feature>, + polling_policy(*current), __func__); +} + future> FeatureRegistryServiceConnectionImpl::DeleteFeature( google::cloud::aiplatform::v1::DeleteFeatureRequest const& request) { @@ -408,6 +676,60 @@ FeatureRegistryServiceConnectionImpl::DeleteFeature( polling_policy(*current), __func__); } +StatusOr +FeatureRegistryServiceConnectionImpl::DeleteFeature( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteFeatureRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteFeature(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::aiplatform::v1::DeleteFeatureRequest const& request) { + return stub_->DeleteFeature(context, options, request); + }, + *current, request, __func__); +} + +future> +FeatureRegistryServiceConnectionImpl::DeleteFeature( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteFeature", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::aiplatform::v1::DeleteOperationMetadata>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::cloud::aiplatform::v1::DeleteOperationMetadata>, + polling_policy(*current), __func__); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace aiplatform_v1_internal } // namespace cloud diff --git a/google/cloud/aiplatform/v1/internal/feature_registry_connection_impl.h b/google/cloud/aiplatform/v1/internal/feature_registry_connection_impl.h index 5d12569e6ec05..85ad239217d73 100644 --- a/google/cloud/aiplatform/v1/internal/feature_registry_connection_impl.h +++ b/google/cloud/aiplatform/v1/internal/feature_registry_connection_impl.h @@ -57,6 +57,15 @@ class FeatureRegistryServiceConnectionImpl google::cloud::aiplatform::v1::CreateFeatureGroupRequest const& request) override; + StatusOr CreateFeatureGroup( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::CreateFeatureGroupRequest const& request) + override; + + future> + CreateFeatureGroup(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetFeatureGroup( google::cloud::aiplatform::v1::GetFeatureGroupRequest const& request) override; @@ -69,15 +78,42 @@ class FeatureRegistryServiceConnectionImpl google::cloud::aiplatform::v1::UpdateFeatureGroupRequest const& request) override; + StatusOr UpdateFeatureGroup( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::UpdateFeatureGroupRequest const& request) + override; + + future> + UpdateFeatureGroup(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteFeatureGroup( google::cloud::aiplatform::v1::DeleteFeatureGroupRequest const& request) override; + StatusOr DeleteFeatureGroup( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteFeatureGroupRequest const& request) + override; + + future> + DeleteFeatureGroup(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> CreateFeature( google::cloud::aiplatform::v1::CreateFeatureRequest const& request) override; + StatusOr CreateFeature( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::CreateFeatureRequest const& request) + override; + + future> CreateFeature( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetFeature( google::cloud::aiplatform::v1::GetFeatureRequest const& request) override; @@ -88,10 +124,28 @@ class FeatureRegistryServiceConnectionImpl google::cloud::aiplatform::v1::UpdateFeatureRequest const& request) override; + StatusOr UpdateFeature( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::UpdateFeatureRequest const& request) + override; + + future> UpdateFeature( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteFeature(google::cloud::aiplatform::v1::DeleteFeatureRequest const& request) override; + StatusOr DeleteFeature( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteFeatureRequest const& request) + override; + + future> + DeleteFeature(ExperimentalTag, + google::longrunning::Operation const& operation) override; + private: std::unique_ptr background_; std::shared_ptr stub_; diff --git a/google/cloud/aiplatform/v1/internal/feature_registry_tracing_connection.cc b/google/cloud/aiplatform/v1/internal/feature_registry_tracing_connection.cc index e6bb8eba148f7..6c043bd6205d0 100644 --- a/google/cloud/aiplatform/v1/internal/feature_registry_tracing_connection.cc +++ b/google/cloud/aiplatform/v1/internal/feature_registry_tracing_connection.cc @@ -44,6 +44,28 @@ FeatureRegistryServiceTracingConnection::CreateFeatureGroup( child_->CreateFeatureGroup(request)); } +StatusOr +FeatureRegistryServiceTracingConnection::CreateFeatureGroup( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::CreateFeatureGroupRequest const& request) { + auto span = internal::MakeSpan( + "aiplatform_v1::FeatureRegistryServiceConnection::CreateFeatureGroup"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->CreateFeatureGroup(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +FeatureRegistryServiceTracingConnection::CreateFeatureGroup( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "aiplatform_v1::FeatureRegistryServiceConnection::CreateFeatureGroup"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->CreateFeatureGroup( + ExperimentalTag{}, operation)); +} + StatusOr FeatureRegistryServiceTracingConnection::GetFeatureGroup( google::cloud::aiplatform::v1::GetFeatureGroupRequest const& request) { @@ -75,6 +97,28 @@ FeatureRegistryServiceTracingConnection::UpdateFeatureGroup( child_->UpdateFeatureGroup(request)); } +StatusOr +FeatureRegistryServiceTracingConnection::UpdateFeatureGroup( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::UpdateFeatureGroupRequest const& request) { + auto span = internal::MakeSpan( + "aiplatform_v1::FeatureRegistryServiceConnection::UpdateFeatureGroup"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->UpdateFeatureGroup(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +FeatureRegistryServiceTracingConnection::UpdateFeatureGroup( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "aiplatform_v1::FeatureRegistryServiceConnection::UpdateFeatureGroup"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->UpdateFeatureGroup( + ExperimentalTag{}, operation)); +} + future> FeatureRegistryServiceTracingConnection::DeleteFeatureGroup( google::cloud::aiplatform::v1::DeleteFeatureGroupRequest const& request) { @@ -85,6 +129,28 @@ FeatureRegistryServiceTracingConnection::DeleteFeatureGroup( child_->DeleteFeatureGroup(request)); } +StatusOr +FeatureRegistryServiceTracingConnection::DeleteFeatureGroup( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteFeatureGroupRequest const& request) { + auto span = internal::MakeSpan( + "aiplatform_v1::FeatureRegistryServiceConnection::DeleteFeatureGroup"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->DeleteFeatureGroup(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +FeatureRegistryServiceTracingConnection::DeleteFeatureGroup( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "aiplatform_v1::FeatureRegistryServiceConnection::DeleteFeatureGroup"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->DeleteFeatureGroup( + ExperimentalTag{}, operation)); +} + future> FeatureRegistryServiceTracingConnection::CreateFeature( google::cloud::aiplatform::v1::CreateFeatureRequest const& request) { @@ -94,6 +160,27 @@ FeatureRegistryServiceTracingConnection::CreateFeature( return internal::EndSpan(std::move(span), child_->CreateFeature(request)); } +StatusOr +FeatureRegistryServiceTracingConnection::CreateFeature( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::CreateFeatureRequest const& request) { + auto span = internal::MakeSpan( + "aiplatform_v1::FeatureRegistryServiceConnection::CreateFeature"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->CreateFeature(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +FeatureRegistryServiceTracingConnection::CreateFeature( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "aiplatform_v1::FeatureRegistryServiceConnection::CreateFeature"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->CreateFeature(ExperimentalTag{}, operation)); +} + StatusOr FeatureRegistryServiceTracingConnection::GetFeature( google::cloud::aiplatform::v1::GetFeatureRequest const& request) { @@ -123,6 +210,27 @@ FeatureRegistryServiceTracingConnection::UpdateFeature( return internal::EndSpan(std::move(span), child_->UpdateFeature(request)); } +StatusOr +FeatureRegistryServiceTracingConnection::UpdateFeature( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::UpdateFeatureRequest const& request) { + auto span = internal::MakeSpan( + "aiplatform_v1::FeatureRegistryServiceConnection::UpdateFeature"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->UpdateFeature(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +FeatureRegistryServiceTracingConnection::UpdateFeature( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "aiplatform_v1::FeatureRegistryServiceConnection::UpdateFeature"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->UpdateFeature(ExperimentalTag{}, operation)); +} + future> FeatureRegistryServiceTracingConnection::DeleteFeature( google::cloud::aiplatform::v1::DeleteFeatureRequest const& request) { @@ -132,6 +240,27 @@ FeatureRegistryServiceTracingConnection::DeleteFeature( return internal::EndSpan(std::move(span), child_->DeleteFeature(request)); } +StatusOr +FeatureRegistryServiceTracingConnection::DeleteFeature( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteFeatureRequest const& request) { + auto span = internal::MakeSpan( + "aiplatform_v1::FeatureRegistryServiceConnection::DeleteFeature"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->DeleteFeature(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +FeatureRegistryServiceTracingConnection::DeleteFeature( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "aiplatform_v1::FeatureRegistryServiceConnection::DeleteFeature"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->DeleteFeature(ExperimentalTag{}, operation)); +} + #endif // GOOGLE_CLOUD_CPP_HAVE_OPENTELEMETRY std::shared_ptr diff --git a/google/cloud/aiplatform/v1/internal/feature_registry_tracing_connection.h b/google/cloud/aiplatform/v1/internal/feature_registry_tracing_connection.h index 2e9c112df15c1..e99a12d3d53bc 100644 --- a/google/cloud/aiplatform/v1/internal/feature_registry_tracing_connection.h +++ b/google/cloud/aiplatform/v1/internal/feature_registry_tracing_connection.h @@ -45,6 +45,15 @@ class FeatureRegistryServiceTracingConnection google::cloud::aiplatform::v1::CreateFeatureGroupRequest const& request) override; + StatusOr CreateFeatureGroup( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::CreateFeatureGroupRequest const& request) + override; + + future> + CreateFeatureGroup(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetFeatureGroup( google::cloud::aiplatform::v1::GetFeatureGroupRequest const& request) override; @@ -57,15 +66,42 @@ class FeatureRegistryServiceTracingConnection google::cloud::aiplatform::v1::UpdateFeatureGroupRequest const& request) override; + StatusOr UpdateFeatureGroup( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::UpdateFeatureGroupRequest const& request) + override; + + future> + UpdateFeatureGroup(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteFeatureGroup( google::cloud::aiplatform::v1::DeleteFeatureGroupRequest const& request) override; + StatusOr DeleteFeatureGroup( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteFeatureGroupRequest const& request) + override; + + future> + DeleteFeatureGroup(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> CreateFeature( google::cloud::aiplatform::v1::CreateFeatureRequest const& request) override; + StatusOr CreateFeature( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::CreateFeatureRequest const& request) + override; + + future> CreateFeature( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetFeature( google::cloud::aiplatform::v1::GetFeatureRequest const& request) override; @@ -76,10 +112,28 @@ class FeatureRegistryServiceTracingConnection google::cloud::aiplatform::v1::UpdateFeatureRequest const& request) override; + StatusOr UpdateFeature( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::UpdateFeatureRequest const& request) + override; + + future> UpdateFeature( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteFeature(google::cloud::aiplatform::v1::DeleteFeatureRequest const& request) override; + StatusOr DeleteFeature( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteFeatureRequest const& request) + override; + + future> + DeleteFeature(ExperimentalTag, + google::longrunning::Operation const& operation) override; + private: std::shared_ptr child_; }; diff --git a/google/cloud/aiplatform/v1/internal/featurestore_connection_impl.cc b/google/cloud/aiplatform/v1/internal/featurestore_connection_impl.cc index b92e57f3f7683..27d214a3f758a 100644 --- a/google/cloud/aiplatform/v1/internal/featurestore_connection_impl.cc +++ b/google/cloud/aiplatform/v1/internal/featurestore_connection_impl.cc @@ -108,6 +108,60 @@ FeaturestoreServiceConnectionImpl::CreateFeaturestore( polling_policy(*current), __func__); } +StatusOr +FeaturestoreServiceConnectionImpl::CreateFeaturestore( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::CreateFeaturestoreRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateFeaturestore(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::aiplatform::v1::CreateFeaturestoreRequest const& + request) { + return stub_->CreateFeaturestore(context, options, request); + }, + *current, request, __func__); +} + +future> +FeaturestoreServiceConnectionImpl::CreateFeaturestore( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to CreateFeaturestore", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::aiplatform::v1::Featurestore>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::aiplatform::v1::Featurestore>, + polling_policy(*current), __func__); +} + StatusOr FeaturestoreServiceConnectionImpl::GetFeaturestore( google::cloud::aiplatform::v1::GetFeaturestoreRequest const& request) { @@ -198,6 +252,60 @@ FeaturestoreServiceConnectionImpl::UpdateFeaturestore( polling_policy(*current), __func__); } +StatusOr +FeaturestoreServiceConnectionImpl::UpdateFeaturestore( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::UpdateFeaturestoreRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UpdateFeaturestore(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::aiplatform::v1::UpdateFeaturestoreRequest const& + request) { + return stub_->UpdateFeaturestore(context, options, request); + }, + *current, request, __func__); +} + +future> +FeaturestoreServiceConnectionImpl::UpdateFeaturestore( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to UpdateFeaturestore", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::aiplatform::v1::Featurestore>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::aiplatform::v1::Featurestore>, + polling_policy(*current), __func__); +} + future> FeaturestoreServiceConnectionImpl::DeleteFeaturestore( google::cloud::aiplatform::v1::DeleteFeaturestoreRequest const& request) { @@ -238,6 +346,60 @@ FeaturestoreServiceConnectionImpl::DeleteFeaturestore( polling_policy(*current), __func__); } +StatusOr +FeaturestoreServiceConnectionImpl::DeleteFeaturestore( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteFeaturestoreRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteFeaturestore(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::aiplatform::v1::DeleteFeaturestoreRequest const& + request) { + return stub_->DeleteFeaturestore(context, options, request); + }, + *current, request, __func__); +} + +future> +FeaturestoreServiceConnectionImpl::DeleteFeaturestore( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteFeaturestore", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::aiplatform::v1::DeleteOperationMetadata>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::cloud::aiplatform::v1::DeleteOperationMetadata>, + polling_policy(*current), __func__); +} + future> FeaturestoreServiceConnectionImpl::CreateEntityType( google::cloud::aiplatform::v1::CreateEntityTypeRequest const& request) { @@ -278,6 +440,60 @@ FeaturestoreServiceConnectionImpl::CreateEntityType( polling_policy(*current), __func__); } +StatusOr +FeaturestoreServiceConnectionImpl::CreateEntityType( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::CreateEntityTypeRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateEntityType(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::aiplatform::v1::CreateEntityTypeRequest const& + request) { + return stub_->CreateEntityType(context, options, request); + }, + *current, request, __func__); +} + +future> +FeaturestoreServiceConnectionImpl::CreateEntityType( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to CreateEntityType", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::aiplatform::v1::EntityType>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::aiplatform::v1::EntityType>, + polling_policy(*current), __func__); +} + StatusOr FeaturestoreServiceConnectionImpl::GetEntityType( google::cloud::aiplatform::v1::GetEntityTypeRequest const& request) { @@ -382,6 +598,60 @@ FeaturestoreServiceConnectionImpl::DeleteEntityType( polling_policy(*current), __func__); } +StatusOr +FeaturestoreServiceConnectionImpl::DeleteEntityType( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteEntityTypeRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteEntityType(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::aiplatform::v1::DeleteEntityTypeRequest const& + request) { + return stub_->DeleteEntityType(context, options, request); + }, + *current, request, __func__); +} + +future> +FeaturestoreServiceConnectionImpl::DeleteEntityType( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteEntityType", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::aiplatform::v1::DeleteOperationMetadata>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::cloud::aiplatform::v1::DeleteOperationMetadata>, + polling_policy(*current), __func__); +} + future> FeaturestoreServiceConnectionImpl::CreateFeature( google::cloud::aiplatform::v1::CreateFeatureRequest const& request) { @@ -421,6 +691,59 @@ FeaturestoreServiceConnectionImpl::CreateFeature( polling_policy(*current), __func__); } +StatusOr +FeaturestoreServiceConnectionImpl::CreateFeature( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::CreateFeatureRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateFeature(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::aiplatform::v1::CreateFeatureRequest const& request) { + return stub_->CreateFeature(context, options, request); + }, + *current, request, __func__); +} + +future> +FeaturestoreServiceConnectionImpl::CreateFeature( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to CreateFeature", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::aiplatform::v1::Feature>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::aiplatform::v1::Feature>, + polling_policy(*current), __func__); +} + future> FeaturestoreServiceConnectionImpl::BatchCreateFeatures( google::cloud::aiplatform::v1::BatchCreateFeaturesRequest const& request) { @@ -461,6 +784,60 @@ FeaturestoreServiceConnectionImpl::BatchCreateFeatures( polling_policy(*current), __func__); } +StatusOr +FeaturestoreServiceConnectionImpl::BatchCreateFeatures( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::BatchCreateFeaturesRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->BatchCreateFeatures(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::aiplatform::v1::BatchCreateFeaturesRequest const& + request) { + return stub_->BatchCreateFeatures(context, options, request); + }, + *current, request, __func__); +} + +future> +FeaturestoreServiceConnectionImpl::BatchCreateFeatures( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to BatchCreateFeatures", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::aiplatform::v1::BatchCreateFeaturesResponse>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::aiplatform::v1::BatchCreateFeaturesResponse>, + polling_policy(*current), __func__); +} + StatusOr FeaturestoreServiceConnectionImpl::GetFeature( google::cloud::aiplatform::v1::GetFeatureRequest const& request) { @@ -563,6 +940,60 @@ FeaturestoreServiceConnectionImpl::DeleteFeature( polling_policy(*current), __func__); } +StatusOr +FeaturestoreServiceConnectionImpl::DeleteFeature( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteFeatureRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteFeature(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::aiplatform::v1::DeleteFeatureRequest const& request) { + return stub_->DeleteFeature(context, options, request); + }, + *current, request, __func__); +} + +future> +FeaturestoreServiceConnectionImpl::DeleteFeature( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteFeature", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::aiplatform::v1::DeleteOperationMetadata>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::cloud::aiplatform::v1::DeleteOperationMetadata>, + polling_policy(*current), __func__); +} + future> FeaturestoreServiceConnectionImpl::ImportFeatureValues( google::cloud::aiplatform::v1::ImportFeatureValuesRequest const& request) { @@ -603,6 +1034,60 @@ FeaturestoreServiceConnectionImpl::ImportFeatureValues( polling_policy(*current), __func__); } +StatusOr +FeaturestoreServiceConnectionImpl::ImportFeatureValues( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::ImportFeatureValuesRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->ImportFeatureValues(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::aiplatform::v1::ImportFeatureValuesRequest const& + request) { + return stub_->ImportFeatureValues(context, options, request); + }, + *current, request, __func__); +} + +future> +FeaturestoreServiceConnectionImpl::ImportFeatureValues( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to ImportFeatureValues", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::aiplatform::v1::ImportFeatureValuesResponse>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::aiplatform::v1::ImportFeatureValuesResponse>, + polling_policy(*current), __func__); +} + future> FeaturestoreServiceConnectionImpl::BatchReadFeatureValues( google::cloud::aiplatform::v1::BatchReadFeatureValuesRequest const& @@ -644,6 +1129,61 @@ FeaturestoreServiceConnectionImpl::BatchReadFeatureValues( polling_policy(*current), __func__); } +StatusOr +FeaturestoreServiceConnectionImpl::BatchReadFeatureValues( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::BatchReadFeatureValuesRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->BatchReadFeatureValues(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::aiplatform::v1::BatchReadFeatureValuesRequest const& + request) { + return stub_->BatchReadFeatureValues(context, options, request); + }, + *current, request, __func__); +} + +future> +FeaturestoreServiceConnectionImpl::BatchReadFeatureValues( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to BatchReadFeatureValues", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::aiplatform::v1::BatchReadFeatureValuesResponse>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::aiplatform::v1::BatchReadFeatureValuesResponse>, + polling_policy(*current), __func__); +} + future> FeaturestoreServiceConnectionImpl::ExportFeatureValues( google::cloud::aiplatform::v1::ExportFeatureValuesRequest const& request) { @@ -684,6 +1224,60 @@ FeaturestoreServiceConnectionImpl::ExportFeatureValues( polling_policy(*current), __func__); } +StatusOr +FeaturestoreServiceConnectionImpl::ExportFeatureValues( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::ExportFeatureValuesRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->ExportFeatureValues(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::aiplatform::v1::ExportFeatureValuesRequest const& + request) { + return stub_->ExportFeatureValues(context, options, request); + }, + *current, request, __func__); +} + +future> +FeaturestoreServiceConnectionImpl::ExportFeatureValues( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to ExportFeatureValues", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::aiplatform::v1::ExportFeatureValuesResponse>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::aiplatform::v1::ExportFeatureValuesResponse>, + polling_policy(*current), __func__); +} + future> FeaturestoreServiceConnectionImpl::DeleteFeatureValues( google::cloud::aiplatform::v1::DeleteFeatureValuesRequest const& request) { @@ -724,6 +1318,60 @@ FeaturestoreServiceConnectionImpl::DeleteFeatureValues( polling_policy(*current), __func__); } +StatusOr +FeaturestoreServiceConnectionImpl::DeleteFeatureValues( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteFeatureValuesRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteFeatureValues(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::aiplatform::v1::DeleteFeatureValuesRequest const& + request) { + return stub_->DeleteFeatureValues(context, options, request); + }, + *current, request, __func__); +} + +future> +FeaturestoreServiceConnectionImpl::DeleteFeatureValues( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteFeatureValues", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::aiplatform::v1::DeleteFeatureValuesResponse>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::aiplatform::v1::DeleteFeatureValuesResponse>, + polling_policy(*current), __func__); +} + StreamRange FeaturestoreServiceConnectionImpl::SearchFeatures( google::cloud::aiplatform::v1::SearchFeaturesRequest request) { diff --git a/google/cloud/aiplatform/v1/internal/featurestore_connection_impl.h b/google/cloud/aiplatform/v1/internal/featurestore_connection_impl.h index 86be4aeaaa0b0..ce24f60db46d0 100644 --- a/google/cloud/aiplatform/v1/internal/featurestore_connection_impl.h +++ b/google/cloud/aiplatform/v1/internal/featurestore_connection_impl.h @@ -57,6 +57,15 @@ class FeaturestoreServiceConnectionImpl google::cloud::aiplatform::v1::CreateFeaturestoreRequest const& request) override; + StatusOr CreateFeaturestore( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::CreateFeaturestoreRequest const& request) + override; + + future> + CreateFeaturestore(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetFeaturestore( google::cloud::aiplatform::v1::GetFeaturestoreRequest const& request) override; @@ -69,15 +78,42 @@ class FeaturestoreServiceConnectionImpl google::cloud::aiplatform::v1::UpdateFeaturestoreRequest const& request) override; + StatusOr UpdateFeaturestore( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::UpdateFeaturestoreRequest const& request) + override; + + future> + UpdateFeaturestore(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteFeaturestore( google::cloud::aiplatform::v1::DeleteFeaturestoreRequest const& request) override; + StatusOr DeleteFeaturestore( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteFeaturestoreRequest const& request) + override; + + future> + DeleteFeaturestore(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> CreateEntityType( google::cloud::aiplatform::v1::CreateEntityTypeRequest const& request) override; + StatusOr CreateEntityType( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::CreateEntityTypeRequest const& request) + override; + + future> CreateEntityType( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetEntityType( google::cloud::aiplatform::v1::GetEntityTypeRequest const& request) override; @@ -93,15 +129,42 @@ class FeaturestoreServiceConnectionImpl DeleteEntityType(google::cloud::aiplatform::v1::DeleteEntityTypeRequest const& request) override; + StatusOr DeleteEntityType( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteEntityTypeRequest const& request) + override; + + future> + DeleteEntityType(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> CreateFeature( google::cloud::aiplatform::v1::CreateFeatureRequest const& request) override; + StatusOr CreateFeature( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::CreateFeatureRequest const& request) + override; + + future> CreateFeature( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> BatchCreateFeatures( google::cloud::aiplatform::v1::BatchCreateFeaturesRequest const& request) override; + StatusOr BatchCreateFeatures( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::BatchCreateFeaturesRequest const& request) + override; + + future> + BatchCreateFeatures(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetFeature( google::cloud::aiplatform::v1::GetFeatureRequest const& request) override; @@ -116,27 +179,74 @@ class FeaturestoreServiceConnectionImpl DeleteFeature(google::cloud::aiplatform::v1::DeleteFeatureRequest const& request) override; + StatusOr DeleteFeature( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteFeatureRequest const& request) + override; + + future> + DeleteFeature(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ImportFeatureValues( google::cloud::aiplatform::v1::ImportFeatureValuesRequest const& request) override; + StatusOr ImportFeatureValues( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::ImportFeatureValuesRequest const& request) + override; + + future> + ImportFeatureValues(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future< StatusOr> BatchReadFeatureValues( google::cloud::aiplatform::v1::BatchReadFeatureValuesRequest const& request) override; + StatusOr BatchReadFeatureValues( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::BatchReadFeatureValuesRequest const& + request) override; + + future< + StatusOr> + BatchReadFeatureValues( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ExportFeatureValues( google::cloud::aiplatform::v1::ExportFeatureValuesRequest const& request) override; + StatusOr ExportFeatureValues( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::ExportFeatureValuesRequest const& request) + override; + + future> + ExportFeatureValues(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteFeatureValues( google::cloud::aiplatform::v1::DeleteFeatureValuesRequest const& request) override; + StatusOr DeleteFeatureValues( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteFeatureValuesRequest const& request) + override; + + future> + DeleteFeatureValues(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange SearchFeatures( google::cloud::aiplatform::v1::SearchFeaturesRequest request) override; diff --git a/google/cloud/aiplatform/v1/internal/featurestore_tracing_connection.cc b/google/cloud/aiplatform/v1/internal/featurestore_tracing_connection.cc index 12a974d6b5a88..a8688415e77c1 100644 --- a/google/cloud/aiplatform/v1/internal/featurestore_tracing_connection.cc +++ b/google/cloud/aiplatform/v1/internal/featurestore_tracing_connection.cc @@ -43,6 +43,28 @@ FeaturestoreServiceTracingConnection::CreateFeaturestore( child_->CreateFeaturestore(request)); } +StatusOr +FeaturestoreServiceTracingConnection::CreateFeaturestore( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::CreateFeaturestoreRequest const& request) { + auto span = internal::MakeSpan( + "aiplatform_v1::FeaturestoreServiceConnection::CreateFeaturestore"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->CreateFeaturestore(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +FeaturestoreServiceTracingConnection::CreateFeaturestore( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "aiplatform_v1::FeaturestoreServiceConnection::CreateFeaturestore"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->CreateFeaturestore( + ExperimentalTag{}, operation)); +} + StatusOr FeaturestoreServiceTracingConnection::GetFeaturestore( google::cloud::aiplatform::v1::GetFeaturestoreRequest const& request) { @@ -74,6 +96,28 @@ FeaturestoreServiceTracingConnection::UpdateFeaturestore( child_->UpdateFeaturestore(request)); } +StatusOr +FeaturestoreServiceTracingConnection::UpdateFeaturestore( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::UpdateFeaturestoreRequest const& request) { + auto span = internal::MakeSpan( + "aiplatform_v1::FeaturestoreServiceConnection::UpdateFeaturestore"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->UpdateFeaturestore(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +FeaturestoreServiceTracingConnection::UpdateFeaturestore( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "aiplatform_v1::FeaturestoreServiceConnection::UpdateFeaturestore"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->UpdateFeaturestore( + ExperimentalTag{}, operation)); +} + future> FeaturestoreServiceTracingConnection::DeleteFeaturestore( google::cloud::aiplatform::v1::DeleteFeaturestoreRequest const& request) { @@ -84,6 +128,28 @@ FeaturestoreServiceTracingConnection::DeleteFeaturestore( child_->DeleteFeaturestore(request)); } +StatusOr +FeaturestoreServiceTracingConnection::DeleteFeaturestore( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteFeaturestoreRequest const& request) { + auto span = internal::MakeSpan( + "aiplatform_v1::FeaturestoreServiceConnection::DeleteFeaturestore"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->DeleteFeaturestore(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +FeaturestoreServiceTracingConnection::DeleteFeaturestore( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "aiplatform_v1::FeaturestoreServiceConnection::DeleteFeaturestore"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->DeleteFeaturestore( + ExperimentalTag{}, operation)); +} + future> FeaturestoreServiceTracingConnection::CreateEntityType( google::cloud::aiplatform::v1::CreateEntityTypeRequest const& request) { @@ -93,6 +159,28 @@ FeaturestoreServiceTracingConnection::CreateEntityType( return internal::EndSpan(std::move(span), child_->CreateEntityType(request)); } +StatusOr +FeaturestoreServiceTracingConnection::CreateEntityType( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::CreateEntityTypeRequest const& request) { + auto span = internal::MakeSpan( + "aiplatform_v1::FeaturestoreServiceConnection::CreateEntityType"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->CreateEntityType(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +FeaturestoreServiceTracingConnection::CreateEntityType( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "aiplatform_v1::FeaturestoreServiceConnection::CreateEntityType"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->CreateEntityType(ExperimentalTag{}, operation)); +} + StatusOr FeaturestoreServiceTracingConnection::GetEntityType( google::cloud::aiplatform::v1::GetEntityTypeRequest const& request) { @@ -132,6 +220,28 @@ FeaturestoreServiceTracingConnection::DeleteEntityType( return internal::EndSpan(std::move(span), child_->DeleteEntityType(request)); } +StatusOr +FeaturestoreServiceTracingConnection::DeleteEntityType( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteEntityTypeRequest const& request) { + auto span = internal::MakeSpan( + "aiplatform_v1::FeaturestoreServiceConnection::DeleteEntityType"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->DeleteEntityType(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +FeaturestoreServiceTracingConnection::DeleteEntityType( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "aiplatform_v1::FeaturestoreServiceConnection::DeleteEntityType"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->DeleteEntityType(ExperimentalTag{}, operation)); +} + future> FeaturestoreServiceTracingConnection::CreateFeature( google::cloud::aiplatform::v1::CreateFeatureRequest const& request) { @@ -141,6 +251,27 @@ FeaturestoreServiceTracingConnection::CreateFeature( return internal::EndSpan(std::move(span), child_->CreateFeature(request)); } +StatusOr +FeaturestoreServiceTracingConnection::CreateFeature( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::CreateFeatureRequest const& request) { + auto span = internal::MakeSpan( + "aiplatform_v1::FeaturestoreServiceConnection::CreateFeature"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->CreateFeature(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +FeaturestoreServiceTracingConnection::CreateFeature( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "aiplatform_v1::FeaturestoreServiceConnection::CreateFeature"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->CreateFeature(ExperimentalTag{}, operation)); +} + future> FeaturestoreServiceTracingConnection::BatchCreateFeatures( google::cloud::aiplatform::v1::BatchCreateFeaturesRequest const& request) { @@ -151,6 +282,28 @@ FeaturestoreServiceTracingConnection::BatchCreateFeatures( child_->BatchCreateFeatures(request)); } +StatusOr +FeaturestoreServiceTracingConnection::BatchCreateFeatures( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::BatchCreateFeaturesRequest const& request) { + auto span = internal::MakeSpan( + "aiplatform_v1::FeaturestoreServiceConnection::BatchCreateFeatures"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->BatchCreateFeatures(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +FeaturestoreServiceTracingConnection::BatchCreateFeatures( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "aiplatform_v1::FeaturestoreServiceConnection::BatchCreateFeatures"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->BatchCreateFeatures( + ExperimentalTag{}, operation)); +} + StatusOr FeaturestoreServiceTracingConnection::GetFeature( google::cloud::aiplatform::v1::GetFeatureRequest const& request) { @@ -189,6 +342,27 @@ FeaturestoreServiceTracingConnection::DeleteFeature( return internal::EndSpan(std::move(span), child_->DeleteFeature(request)); } +StatusOr +FeaturestoreServiceTracingConnection::DeleteFeature( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteFeatureRequest const& request) { + auto span = internal::MakeSpan( + "aiplatform_v1::FeaturestoreServiceConnection::DeleteFeature"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->DeleteFeature(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +FeaturestoreServiceTracingConnection::DeleteFeature( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "aiplatform_v1::FeaturestoreServiceConnection::DeleteFeature"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->DeleteFeature(ExperimentalTag{}, operation)); +} + future> FeaturestoreServiceTracingConnection::ImportFeatureValues( google::cloud::aiplatform::v1::ImportFeatureValuesRequest const& request) { @@ -199,6 +373,28 @@ FeaturestoreServiceTracingConnection::ImportFeatureValues( child_->ImportFeatureValues(request)); } +StatusOr +FeaturestoreServiceTracingConnection::ImportFeatureValues( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::ImportFeatureValuesRequest const& request) { + auto span = internal::MakeSpan( + "aiplatform_v1::FeaturestoreServiceConnection::ImportFeatureValues"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->ImportFeatureValues(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +FeaturestoreServiceTracingConnection::ImportFeatureValues( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "aiplatform_v1::FeaturestoreServiceConnection::ImportFeatureValues"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->ImportFeatureValues( + ExperimentalTag{}, operation)); +} + future> FeaturestoreServiceTracingConnection::BatchReadFeatureValues( google::cloud::aiplatform::v1::BatchReadFeatureValuesRequest const& @@ -210,6 +406,29 @@ FeaturestoreServiceTracingConnection::BatchReadFeatureValues( child_->BatchReadFeatureValues(request)); } +StatusOr +FeaturestoreServiceTracingConnection::BatchReadFeatureValues( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::BatchReadFeatureValuesRequest const& + request) { + auto span = internal::MakeSpan( + "aiplatform_v1::FeaturestoreServiceConnection::BatchReadFeatureValues"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->BatchReadFeatureValues(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +FeaturestoreServiceTracingConnection::BatchReadFeatureValues( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "aiplatform_v1::FeaturestoreServiceConnection::BatchReadFeatureValues"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->BatchReadFeatureValues( + ExperimentalTag{}, operation)); +} + future> FeaturestoreServiceTracingConnection::ExportFeatureValues( google::cloud::aiplatform::v1::ExportFeatureValuesRequest const& request) { @@ -220,6 +439,28 @@ FeaturestoreServiceTracingConnection::ExportFeatureValues( child_->ExportFeatureValues(request)); } +StatusOr +FeaturestoreServiceTracingConnection::ExportFeatureValues( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::ExportFeatureValuesRequest const& request) { + auto span = internal::MakeSpan( + "aiplatform_v1::FeaturestoreServiceConnection::ExportFeatureValues"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->ExportFeatureValues(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +FeaturestoreServiceTracingConnection::ExportFeatureValues( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "aiplatform_v1::FeaturestoreServiceConnection::ExportFeatureValues"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->ExportFeatureValues( + ExperimentalTag{}, operation)); +} + future> FeaturestoreServiceTracingConnection::DeleteFeatureValues( google::cloud::aiplatform::v1::DeleteFeatureValuesRequest const& request) { @@ -230,6 +471,28 @@ FeaturestoreServiceTracingConnection::DeleteFeatureValues( child_->DeleteFeatureValues(request)); } +StatusOr +FeaturestoreServiceTracingConnection::DeleteFeatureValues( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteFeatureValuesRequest const& request) { + auto span = internal::MakeSpan( + "aiplatform_v1::FeaturestoreServiceConnection::DeleteFeatureValues"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->DeleteFeatureValues(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +FeaturestoreServiceTracingConnection::DeleteFeatureValues( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "aiplatform_v1::FeaturestoreServiceConnection::DeleteFeatureValues"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->DeleteFeatureValues( + ExperimentalTag{}, operation)); +} + StreamRange FeaturestoreServiceTracingConnection::SearchFeatures( google::cloud::aiplatform::v1::SearchFeaturesRequest request) { diff --git a/google/cloud/aiplatform/v1/internal/featurestore_tracing_connection.h b/google/cloud/aiplatform/v1/internal/featurestore_tracing_connection.h index 1f785a76a5058..627f9ead20d6e 100644 --- a/google/cloud/aiplatform/v1/internal/featurestore_tracing_connection.h +++ b/google/cloud/aiplatform/v1/internal/featurestore_tracing_connection.h @@ -45,6 +45,15 @@ class FeaturestoreServiceTracingConnection google::cloud::aiplatform::v1::CreateFeaturestoreRequest const& request) override; + StatusOr CreateFeaturestore( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::CreateFeaturestoreRequest const& request) + override; + + future> + CreateFeaturestore(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetFeaturestore( google::cloud::aiplatform::v1::GetFeaturestoreRequest const& request) override; @@ -57,15 +66,42 @@ class FeaturestoreServiceTracingConnection google::cloud::aiplatform::v1::UpdateFeaturestoreRequest const& request) override; + StatusOr UpdateFeaturestore( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::UpdateFeaturestoreRequest const& request) + override; + + future> + UpdateFeaturestore(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteFeaturestore( google::cloud::aiplatform::v1::DeleteFeaturestoreRequest const& request) override; + StatusOr DeleteFeaturestore( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteFeaturestoreRequest const& request) + override; + + future> + DeleteFeaturestore(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> CreateEntityType( google::cloud::aiplatform::v1::CreateEntityTypeRequest const& request) override; + StatusOr CreateEntityType( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::CreateEntityTypeRequest const& request) + override; + + future> CreateEntityType( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetEntityType( google::cloud::aiplatform::v1::GetEntityTypeRequest const& request) override; @@ -81,15 +117,42 @@ class FeaturestoreServiceTracingConnection DeleteEntityType(google::cloud::aiplatform::v1::DeleteEntityTypeRequest const& request) override; + StatusOr DeleteEntityType( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteEntityTypeRequest const& request) + override; + + future> + DeleteEntityType(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> CreateFeature( google::cloud::aiplatform::v1::CreateFeatureRequest const& request) override; + StatusOr CreateFeature( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::CreateFeatureRequest const& request) + override; + + future> CreateFeature( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> BatchCreateFeatures( google::cloud::aiplatform::v1::BatchCreateFeaturesRequest const& request) override; + StatusOr BatchCreateFeatures( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::BatchCreateFeaturesRequest const& request) + override; + + future> + BatchCreateFeatures(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetFeature( google::cloud::aiplatform::v1::GetFeatureRequest const& request) override; @@ -104,27 +167,74 @@ class FeaturestoreServiceTracingConnection DeleteFeature(google::cloud::aiplatform::v1::DeleteFeatureRequest const& request) override; + StatusOr DeleteFeature( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteFeatureRequest const& request) + override; + + future> + DeleteFeature(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ImportFeatureValues( google::cloud::aiplatform::v1::ImportFeatureValuesRequest const& request) override; + StatusOr ImportFeatureValues( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::ImportFeatureValuesRequest const& request) + override; + + future> + ImportFeatureValues(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future< StatusOr> BatchReadFeatureValues( google::cloud::aiplatform::v1::BatchReadFeatureValuesRequest const& request) override; + StatusOr BatchReadFeatureValues( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::BatchReadFeatureValuesRequest const& + request) override; + + future< + StatusOr> + BatchReadFeatureValues( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ExportFeatureValues( google::cloud::aiplatform::v1::ExportFeatureValuesRequest const& request) override; + StatusOr ExportFeatureValues( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::ExportFeatureValuesRequest const& request) + override; + + future> + ExportFeatureValues(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteFeatureValues( google::cloud::aiplatform::v1::DeleteFeatureValuesRequest const& request) override; + StatusOr DeleteFeatureValues( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteFeatureValuesRequest const& request) + override; + + future> + DeleteFeatureValues(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange SearchFeatures( google::cloud::aiplatform::v1::SearchFeaturesRequest request) override; diff --git a/google/cloud/aiplatform/v1/internal/index_connection_impl.cc b/google/cloud/aiplatform/v1/internal/index_connection_impl.cc index 9c9be78cec0c7..5609509d7e883 100644 --- a/google/cloud/aiplatform/v1/internal/index_connection_impl.cc +++ b/google/cloud/aiplatform/v1/internal/index_connection_impl.cc @@ -103,6 +103,58 @@ IndexServiceConnectionImpl::CreateIndex( polling_policy(*current), __func__); } +StatusOr +IndexServiceConnectionImpl::CreateIndex( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::CreateIndexRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateIndex(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::aiplatform::v1::CreateIndexRequest const& request) { + return stub_->CreateIndex(context, options, request); + }, + *current, request, __func__); +} + +future> +IndexServiceConnectionImpl::CreateIndex( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to CreateIndex", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::aiplatform::v1::Index>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::aiplatform::v1::Index>, + polling_policy(*current), __func__); +} + StatusOr IndexServiceConnectionImpl::GetIndex( google::cloud::aiplatform::v1::GetIndexRequest const& request) { @@ -190,6 +242,58 @@ IndexServiceConnectionImpl::UpdateIndex( polling_policy(*current), __func__); } +StatusOr +IndexServiceConnectionImpl::UpdateIndex( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::UpdateIndexRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UpdateIndex(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::aiplatform::v1::UpdateIndexRequest const& request) { + return stub_->UpdateIndex(context, options, request); + }, + *current, request, __func__); +} + +future> +IndexServiceConnectionImpl::UpdateIndex( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to UpdateIndex", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::aiplatform::v1::Index>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::aiplatform::v1::Index>, + polling_policy(*current), __func__); +} + future> IndexServiceConnectionImpl::DeleteIndex( google::cloud::aiplatform::v1::DeleteIndexRequest const& request) { @@ -229,6 +333,59 @@ IndexServiceConnectionImpl::DeleteIndex( polling_policy(*current), __func__); } +StatusOr +IndexServiceConnectionImpl::DeleteIndex( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteIndexRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteIndex(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::aiplatform::v1::DeleteIndexRequest const& request) { + return stub_->DeleteIndex(context, options, request); + }, + *current, request, __func__); +} + +future> +IndexServiceConnectionImpl::DeleteIndex( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteIndex", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::aiplatform::v1::DeleteOperationMetadata>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::cloud::aiplatform::v1::DeleteOperationMetadata>, + polling_policy(*current), __func__); +} + StatusOr IndexServiceConnectionImpl::UpsertDatapoints( google::cloud::aiplatform::v1::UpsertDatapointsRequest const& request) { diff --git a/google/cloud/aiplatform/v1/internal/index_connection_impl.h b/google/cloud/aiplatform/v1/internal/index_connection_impl.h index 31405da52f042..81629a8e09ec3 100644 --- a/google/cloud/aiplatform/v1/internal/index_connection_impl.h +++ b/google/cloud/aiplatform/v1/internal/index_connection_impl.h @@ -56,6 +56,15 @@ class IndexServiceConnectionImpl google::cloud::aiplatform::v1::CreateIndexRequest const& request) override; + StatusOr CreateIndex( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::CreateIndexRequest const& request) + override; + + future> CreateIndex( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetIndex( google::cloud::aiplatform::v1::GetIndexRequest const& request) override; @@ -66,10 +75,28 @@ class IndexServiceConnectionImpl google::cloud::aiplatform::v1::UpdateIndexRequest const& request) override; + StatusOr UpdateIndex( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::UpdateIndexRequest const& request) + override; + + future> UpdateIndex( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteIndex(google::cloud::aiplatform::v1::DeleteIndexRequest const& request) override; + StatusOr DeleteIndex( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteIndexRequest const& request) + override; + + future> + DeleteIndex(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr UpsertDatapoints(google::cloud::aiplatform::v1::UpsertDatapointsRequest const& request) override; diff --git a/google/cloud/aiplatform/v1/internal/index_endpoint_connection_impl.cc b/google/cloud/aiplatform/v1/internal/index_endpoint_connection_impl.cc index ec28588984e3a..e9c261b5bf397 100644 --- a/google/cloud/aiplatform/v1/internal/index_endpoint_connection_impl.cc +++ b/google/cloud/aiplatform/v1/internal/index_endpoint_connection_impl.cc @@ -108,6 +108,60 @@ IndexEndpointServiceConnectionImpl::CreateIndexEndpoint( polling_policy(*current), __func__); } +StatusOr +IndexEndpointServiceConnectionImpl::CreateIndexEndpoint( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::CreateIndexEndpointRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateIndexEndpoint(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::aiplatform::v1::CreateIndexEndpointRequest const& + request) { + return stub_->CreateIndexEndpoint(context, options, request); + }, + *current, request, __func__); +} + +future> +IndexEndpointServiceConnectionImpl::CreateIndexEndpoint( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to CreateIndexEndpoint", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::aiplatform::v1::IndexEndpoint>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::aiplatform::v1::IndexEndpoint>, + polling_policy(*current), __func__); +} + StatusOr IndexEndpointServiceConnectionImpl::GetIndexEndpoint( google::cloud::aiplatform::v1::GetIndexEndpointRequest const& request) { @@ -213,6 +267,60 @@ IndexEndpointServiceConnectionImpl::DeleteIndexEndpoint( polling_policy(*current), __func__); } +StatusOr +IndexEndpointServiceConnectionImpl::DeleteIndexEndpoint( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteIndexEndpointRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteIndexEndpoint(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::aiplatform::v1::DeleteIndexEndpointRequest const& + request) { + return stub_->DeleteIndexEndpoint(context, options, request); + }, + *current, request, __func__); +} + +future> +IndexEndpointServiceConnectionImpl::DeleteIndexEndpoint( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteIndexEndpoint", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::aiplatform::v1::DeleteOperationMetadata>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::cloud::aiplatform::v1::DeleteOperationMetadata>, + polling_policy(*current), __func__); +} + future> IndexEndpointServiceConnectionImpl::DeployIndex( google::cloud::aiplatform::v1::DeployIndexRequest const& request) { @@ -252,6 +360,59 @@ IndexEndpointServiceConnectionImpl::DeployIndex( polling_policy(*current), __func__); } +StatusOr +IndexEndpointServiceConnectionImpl::DeployIndex( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeployIndexRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeployIndex(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::aiplatform::v1::DeployIndexRequest const& request) { + return stub_->DeployIndex(context, options, request); + }, + *current, request, __func__); +} + +future> +IndexEndpointServiceConnectionImpl::DeployIndex( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DeployIndex", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::aiplatform::v1::DeployIndexResponse>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::aiplatform::v1::DeployIndexResponse>, + polling_policy(*current), __func__); +} + future> IndexEndpointServiceConnectionImpl::UndeployIndex( google::cloud::aiplatform::v1::UndeployIndexRequest const& request) { @@ -291,6 +452,60 @@ IndexEndpointServiceConnectionImpl::UndeployIndex( polling_policy(*current), __func__); } +StatusOr +IndexEndpointServiceConnectionImpl::UndeployIndex( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::UndeployIndexRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UndeployIndex(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::aiplatform::v1::UndeployIndexRequest const& request) { + return stub_->UndeployIndex(context, options, request); + }, + *current, request, __func__); +} + +future> +IndexEndpointServiceConnectionImpl::UndeployIndex( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to UndeployIndex", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::aiplatform::v1::UndeployIndexResponse>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::aiplatform::v1::UndeployIndexResponse>, + polling_policy(*current), __func__); +} + future> IndexEndpointServiceConnectionImpl::MutateDeployedIndex( google::cloud::aiplatform::v1::MutateDeployedIndexRequest const& request) { @@ -331,6 +546,60 @@ IndexEndpointServiceConnectionImpl::MutateDeployedIndex( polling_policy(*current), __func__); } +StatusOr +IndexEndpointServiceConnectionImpl::MutateDeployedIndex( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::MutateDeployedIndexRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->MutateDeployedIndex(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::aiplatform::v1::MutateDeployedIndexRequest const& + request) { + return stub_->MutateDeployedIndex(context, options, request); + }, + *current, request, __func__); +} + +future> +IndexEndpointServiceConnectionImpl::MutateDeployedIndex( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to MutateDeployedIndex", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::aiplatform::v1::MutateDeployedIndexResponse>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::aiplatform::v1::MutateDeployedIndexResponse>, + polling_policy(*current), __func__); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace aiplatform_v1_internal } // namespace cloud diff --git a/google/cloud/aiplatform/v1/internal/index_endpoint_connection_impl.h b/google/cloud/aiplatform/v1/internal/index_endpoint_connection_impl.h index 2886e73e63de4..b5cb7aec33804 100644 --- a/google/cloud/aiplatform/v1/internal/index_endpoint_connection_impl.h +++ b/google/cloud/aiplatform/v1/internal/index_endpoint_connection_impl.h @@ -57,6 +57,15 @@ class IndexEndpointServiceConnectionImpl google::cloud::aiplatform::v1::CreateIndexEndpointRequest const& request) override; + StatusOr CreateIndexEndpoint( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::CreateIndexEndpointRequest const& request) + override; + + future> + CreateIndexEndpoint(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetIndexEndpoint( google::cloud::aiplatform::v1::GetIndexEndpointRequest const& request) override; @@ -74,19 +83,55 @@ class IndexEndpointServiceConnectionImpl google::cloud::aiplatform::v1::DeleteIndexEndpointRequest const& request) override; + StatusOr DeleteIndexEndpoint( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteIndexEndpointRequest const& request) + override; + + future> + DeleteIndexEndpoint(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeployIndex(google::cloud::aiplatform::v1::DeployIndexRequest const& request) override; + StatusOr DeployIndex( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeployIndexRequest const& request) + override; + + future> + DeployIndex(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UndeployIndex(google::cloud::aiplatform::v1::UndeployIndexRequest const& request) override; + StatusOr UndeployIndex( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::UndeployIndexRequest const& request) + override; + + future> + UndeployIndex(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> MutateDeployedIndex( google::cloud::aiplatform::v1::MutateDeployedIndexRequest const& request) override; + StatusOr MutateDeployedIndex( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::MutateDeployedIndexRequest const& request) + override; + + future> + MutateDeployedIndex(ExperimentalTag, + google::longrunning::Operation const& operation) override; + private: std::unique_ptr background_; std::shared_ptr stub_; diff --git a/google/cloud/aiplatform/v1/internal/index_endpoint_tracing_connection.cc b/google/cloud/aiplatform/v1/internal/index_endpoint_tracing_connection.cc index e9a06f9f81a14..1398926ca6d4e 100644 --- a/google/cloud/aiplatform/v1/internal/index_endpoint_tracing_connection.cc +++ b/google/cloud/aiplatform/v1/internal/index_endpoint_tracing_connection.cc @@ -43,6 +43,28 @@ IndexEndpointServiceTracingConnection::CreateIndexEndpoint( child_->CreateIndexEndpoint(request)); } +StatusOr +IndexEndpointServiceTracingConnection::CreateIndexEndpoint( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::CreateIndexEndpointRequest const& request) { + auto span = internal::MakeSpan( + "aiplatform_v1::IndexEndpointServiceConnection::CreateIndexEndpoint"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->CreateIndexEndpoint(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +IndexEndpointServiceTracingConnection::CreateIndexEndpoint( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "aiplatform_v1::IndexEndpointServiceConnection::CreateIndexEndpoint"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->CreateIndexEndpoint( + ExperimentalTag{}, operation)); +} + StatusOr IndexEndpointServiceTracingConnection::GetIndexEndpoint( google::cloud::aiplatform::v1::GetIndexEndpointRequest const& request) { @@ -83,6 +105,28 @@ IndexEndpointServiceTracingConnection::DeleteIndexEndpoint( child_->DeleteIndexEndpoint(request)); } +StatusOr +IndexEndpointServiceTracingConnection::DeleteIndexEndpoint( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteIndexEndpointRequest const& request) { + auto span = internal::MakeSpan( + "aiplatform_v1::IndexEndpointServiceConnection::DeleteIndexEndpoint"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->DeleteIndexEndpoint(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +IndexEndpointServiceTracingConnection::DeleteIndexEndpoint( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "aiplatform_v1::IndexEndpointServiceConnection::DeleteIndexEndpoint"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->DeleteIndexEndpoint( + ExperimentalTag{}, operation)); +} + future> IndexEndpointServiceTracingConnection::DeployIndex( google::cloud::aiplatform::v1::DeployIndexRequest const& request) { @@ -92,6 +136,27 @@ IndexEndpointServiceTracingConnection::DeployIndex( return internal::EndSpan(std::move(span), child_->DeployIndex(request)); } +StatusOr +IndexEndpointServiceTracingConnection::DeployIndex( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeployIndexRequest const& request) { + auto span = internal::MakeSpan( + "aiplatform_v1::IndexEndpointServiceConnection::DeployIndex"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->DeployIndex(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +IndexEndpointServiceTracingConnection::DeployIndex( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "aiplatform_v1::IndexEndpointServiceConnection::DeployIndex"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->DeployIndex(ExperimentalTag{}, operation)); +} + future> IndexEndpointServiceTracingConnection::UndeployIndex( google::cloud::aiplatform::v1::UndeployIndexRequest const& request) { @@ -101,6 +166,27 @@ IndexEndpointServiceTracingConnection::UndeployIndex( return internal::EndSpan(std::move(span), child_->UndeployIndex(request)); } +StatusOr +IndexEndpointServiceTracingConnection::UndeployIndex( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::UndeployIndexRequest const& request) { + auto span = internal::MakeSpan( + "aiplatform_v1::IndexEndpointServiceConnection::UndeployIndex"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->UndeployIndex(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +IndexEndpointServiceTracingConnection::UndeployIndex( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "aiplatform_v1::IndexEndpointServiceConnection::UndeployIndex"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->UndeployIndex(ExperimentalTag{}, operation)); +} + future> IndexEndpointServiceTracingConnection::MutateDeployedIndex( google::cloud::aiplatform::v1::MutateDeployedIndexRequest const& request) { @@ -111,6 +197,28 @@ IndexEndpointServiceTracingConnection::MutateDeployedIndex( child_->MutateDeployedIndex(request)); } +StatusOr +IndexEndpointServiceTracingConnection::MutateDeployedIndex( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::MutateDeployedIndexRequest const& request) { + auto span = internal::MakeSpan( + "aiplatform_v1::IndexEndpointServiceConnection::MutateDeployedIndex"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->MutateDeployedIndex(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +IndexEndpointServiceTracingConnection::MutateDeployedIndex( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "aiplatform_v1::IndexEndpointServiceConnection::MutateDeployedIndex"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->MutateDeployedIndex( + ExperimentalTag{}, operation)); +} + #endif // GOOGLE_CLOUD_CPP_HAVE_OPENTELEMETRY std::shared_ptr diff --git a/google/cloud/aiplatform/v1/internal/index_endpoint_tracing_connection.h b/google/cloud/aiplatform/v1/internal/index_endpoint_tracing_connection.h index 72116db46ae99..c0c49db96bbf8 100644 --- a/google/cloud/aiplatform/v1/internal/index_endpoint_tracing_connection.h +++ b/google/cloud/aiplatform/v1/internal/index_endpoint_tracing_connection.h @@ -45,6 +45,15 @@ class IndexEndpointServiceTracingConnection google::cloud::aiplatform::v1::CreateIndexEndpointRequest const& request) override; + StatusOr CreateIndexEndpoint( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::CreateIndexEndpointRequest const& request) + override; + + future> + CreateIndexEndpoint(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetIndexEndpoint( google::cloud::aiplatform::v1::GetIndexEndpointRequest const& request) override; @@ -62,19 +71,55 @@ class IndexEndpointServiceTracingConnection google::cloud::aiplatform::v1::DeleteIndexEndpointRequest const& request) override; + StatusOr DeleteIndexEndpoint( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteIndexEndpointRequest const& request) + override; + + future> + DeleteIndexEndpoint(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeployIndex(google::cloud::aiplatform::v1::DeployIndexRequest const& request) override; + StatusOr DeployIndex( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeployIndexRequest const& request) + override; + + future> + DeployIndex(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UndeployIndex(google::cloud::aiplatform::v1::UndeployIndexRequest const& request) override; + StatusOr UndeployIndex( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::UndeployIndexRequest const& request) + override; + + future> + UndeployIndex(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> MutateDeployedIndex( google::cloud::aiplatform::v1::MutateDeployedIndexRequest const& request) override; + StatusOr MutateDeployedIndex( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::MutateDeployedIndexRequest const& request) + override; + + future> + MutateDeployedIndex(ExperimentalTag, + google::longrunning::Operation const& operation) override; + private: std::shared_ptr child_; }; diff --git a/google/cloud/aiplatform/v1/internal/index_tracing_connection.cc b/google/cloud/aiplatform/v1/internal/index_tracing_connection.cc index 4162add2660ce..24198573c9b8f 100644 --- a/google/cloud/aiplatform/v1/internal/index_tracing_connection.cc +++ b/google/cloud/aiplatform/v1/internal/index_tracing_connection.cc @@ -42,6 +42,27 @@ IndexServiceTracingConnection::CreateIndex( return internal::EndSpan(std::move(span), child_->CreateIndex(request)); } +StatusOr +IndexServiceTracingConnection::CreateIndex( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::CreateIndexRequest const& request) { + auto span = + internal::MakeSpan("aiplatform_v1::IndexServiceConnection::CreateIndex"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->CreateIndex(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +IndexServiceTracingConnection::CreateIndex( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = + internal::MakeSpan("aiplatform_v1::IndexServiceConnection::CreateIndex"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->CreateIndex(ExperimentalTag{}, operation)); +} + StatusOr IndexServiceTracingConnection::GetIndex( google::cloud::aiplatform::v1::GetIndexRequest const& request) { @@ -71,6 +92,27 @@ IndexServiceTracingConnection::UpdateIndex( return internal::EndSpan(std::move(span), child_->UpdateIndex(request)); } +StatusOr +IndexServiceTracingConnection::UpdateIndex( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::UpdateIndexRequest const& request) { + auto span = + internal::MakeSpan("aiplatform_v1::IndexServiceConnection::UpdateIndex"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->UpdateIndex(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +IndexServiceTracingConnection::UpdateIndex( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = + internal::MakeSpan("aiplatform_v1::IndexServiceConnection::UpdateIndex"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->UpdateIndex(ExperimentalTag{}, operation)); +} + future> IndexServiceTracingConnection::DeleteIndex( google::cloud::aiplatform::v1::DeleteIndexRequest const& request) { @@ -80,6 +122,27 @@ IndexServiceTracingConnection::DeleteIndex( return internal::EndSpan(std::move(span), child_->DeleteIndex(request)); } +StatusOr +IndexServiceTracingConnection::DeleteIndex( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteIndexRequest const& request) { + auto span = + internal::MakeSpan("aiplatform_v1::IndexServiceConnection::DeleteIndex"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->DeleteIndex(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +IndexServiceTracingConnection::DeleteIndex( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = + internal::MakeSpan("aiplatform_v1::IndexServiceConnection::DeleteIndex"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->DeleteIndex(ExperimentalTag{}, operation)); +} + StatusOr IndexServiceTracingConnection::UpsertDatapoints( google::cloud::aiplatform::v1::UpsertDatapointsRequest const& request) { diff --git a/google/cloud/aiplatform/v1/internal/index_tracing_connection.h b/google/cloud/aiplatform/v1/internal/index_tracing_connection.h index c4256b842b538..b0282b9b53740 100644 --- a/google/cloud/aiplatform/v1/internal/index_tracing_connection.h +++ b/google/cloud/aiplatform/v1/internal/index_tracing_connection.h @@ -44,6 +44,15 @@ class IndexServiceTracingConnection google::cloud::aiplatform::v1::CreateIndexRequest const& request) override; + StatusOr CreateIndex( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::CreateIndexRequest const& request) + override; + + future> CreateIndex( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetIndex( google::cloud::aiplatform::v1::GetIndexRequest const& request) override; @@ -54,10 +63,28 @@ class IndexServiceTracingConnection google::cloud::aiplatform::v1::UpdateIndexRequest const& request) override; + StatusOr UpdateIndex( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::UpdateIndexRequest const& request) + override; + + future> UpdateIndex( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteIndex(google::cloud::aiplatform::v1::DeleteIndexRequest const& request) override; + StatusOr DeleteIndex( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteIndexRequest const& request) + override; + + future> + DeleteIndex(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr UpsertDatapoints(google::cloud::aiplatform::v1::UpsertDatapointsRequest const& request) override; diff --git a/google/cloud/aiplatform/v1/internal/job_connection_impl.cc b/google/cloud/aiplatform/v1/internal/job_connection_impl.cc index 7e1e279d0ec07..b3d9e5724a48b 100644 --- a/google/cloud/aiplatform/v1/internal/job_connection_impl.cc +++ b/google/cloud/aiplatform/v1/internal/job_connection_impl.cc @@ -168,6 +168,60 @@ JobServiceConnectionImpl::DeleteCustomJob( polling_policy(*current), __func__); } +StatusOr +JobServiceConnectionImpl::DeleteCustomJob( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteCustomJobRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteCustomJob(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::aiplatform::v1::DeleteCustomJobRequest const& + request) { + return stub_->DeleteCustomJob(context, options, request); + }, + *current, request, __func__); +} + +future> +JobServiceConnectionImpl::DeleteCustomJob( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteCustomJob", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::aiplatform::v1::DeleteOperationMetadata>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::cloud::aiplatform::v1::DeleteOperationMetadata>, + polling_policy(*current), __func__); +} + Status JobServiceConnectionImpl::CancelCustomJob( google::cloud::aiplatform::v1::CancelCustomJobRequest const& request) { auto current = google::cloud::internal::SaveCurrentOptions(); @@ -289,6 +343,61 @@ JobServiceConnectionImpl::DeleteDataLabelingJob( polling_policy(*current), __func__); } +StatusOr +JobServiceConnectionImpl::DeleteDataLabelingJob( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteDataLabelingJobRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteDataLabelingJob(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::aiplatform::v1::DeleteDataLabelingJobRequest const& + request) { + return stub_->DeleteDataLabelingJob(context, options, request); + }, + *current, request, __func__); +} + +future> +JobServiceConnectionImpl::DeleteDataLabelingJob( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteDataLabelingJob", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::aiplatform::v1::DeleteOperationMetadata>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::cloud::aiplatform::v1::DeleteOperationMetadata>, + polling_policy(*current), __func__); +} + Status JobServiceConnectionImpl::CancelDataLabelingJob( google::cloud::aiplatform::v1::CancelDataLabelingJobRequest const& request) { @@ -415,6 +524,61 @@ JobServiceConnectionImpl::DeleteHyperparameterTuningJob( polling_policy(*current), __func__); } +StatusOr +JobServiceConnectionImpl::DeleteHyperparameterTuningJob( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteHyperparameterTuningJobRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteHyperparameterTuningJob(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::aiplatform::v1:: + DeleteHyperparameterTuningJobRequest const& request) { + return stub_->DeleteHyperparameterTuningJob(context, options, request); + }, + *current, request, __func__); +} + +future> +JobServiceConnectionImpl::DeleteHyperparameterTuningJob( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteHyperparameterTuningJob", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::aiplatform::v1::DeleteOperationMetadata>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::cloud::aiplatform::v1::DeleteOperationMetadata>, + polling_policy(*current), __func__); +} + Status JobServiceConnectionImpl::CancelHyperparameterTuningJob( google::cloud::aiplatform::v1::CancelHyperparameterTuningJobRequest const& request) { @@ -532,6 +696,59 @@ JobServiceConnectionImpl::DeleteNasJob( polling_policy(*current), __func__); } +StatusOr JobServiceConnectionImpl::DeleteNasJob( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteNasJobRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteNasJob(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::aiplatform::v1::DeleteNasJobRequest const& request) { + return stub_->DeleteNasJob(context, options, request); + }, + *current, request, __func__); +} + +future> +JobServiceConnectionImpl::DeleteNasJob( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteNasJob", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::aiplatform::v1::DeleteOperationMetadata>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::cloud::aiplatform::v1::DeleteOperationMetadata>, + polling_policy(*current), __func__); +} + Status JobServiceConnectionImpl::CancelNasJob( google::cloud::aiplatform::v1::CancelNasJobRequest const& request) { auto current = google::cloud::internal::SaveCurrentOptions(); @@ -706,6 +923,62 @@ JobServiceConnectionImpl::DeleteBatchPredictionJob( polling_policy(*current), __func__); } +StatusOr +JobServiceConnectionImpl::DeleteBatchPredictionJob( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteBatchPredictionJobRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteBatchPredictionJob(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::aiplatform::v1::DeleteBatchPredictionJobRequest const& + request) { + return stub_->DeleteBatchPredictionJob(context, options, request); + }, + *current, request, __func__); +} + +future> +JobServiceConnectionImpl::DeleteBatchPredictionJob( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteBatchPredictionJob", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::aiplatform::v1::DeleteOperationMetadata>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::cloud::aiplatform::v1::DeleteOperationMetadata>, + polling_policy(*current), __func__); +} + Status JobServiceConnectionImpl::CancelBatchPredictionJob( google::cloud::aiplatform::v1::CancelBatchPredictionJobRequest const& request) { @@ -881,6 +1154,63 @@ JobServiceConnectionImpl::UpdateModelDeploymentMonitoringJob( polling_policy(*current), __func__); } +StatusOr +JobServiceConnectionImpl::UpdateModelDeploymentMonitoringJob( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1:: + UpdateModelDeploymentMonitoringJobRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UpdateModelDeploymentMonitoringJob(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::aiplatform::v1:: + UpdateModelDeploymentMonitoringJobRequest const& request) { + return stub_->UpdateModelDeploymentMonitoringJob(context, options, + request); + }, + *current, request, __func__); +} + +future> +JobServiceConnectionImpl::UpdateModelDeploymentMonitoringJob( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to " + "UpdateModelDeploymentMonitoringJob", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::aiplatform::v1::ModelDeploymentMonitoringJob>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::aiplatform::v1::ModelDeploymentMonitoringJob>, + polling_policy(*current), __func__); +} + future> JobServiceConnectionImpl::DeleteModelDeploymentMonitoringJob( google::cloud::aiplatform::v1:: @@ -923,6 +1253,63 @@ JobServiceConnectionImpl::DeleteModelDeploymentMonitoringJob( polling_policy(*current), __func__); } +StatusOr +JobServiceConnectionImpl::DeleteModelDeploymentMonitoringJob( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1:: + DeleteModelDeploymentMonitoringJobRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteModelDeploymentMonitoringJob(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::aiplatform::v1:: + DeleteModelDeploymentMonitoringJobRequest const& request) { + return stub_->DeleteModelDeploymentMonitoringJob(context, options, + request); + }, + *current, request, __func__); +} + +future> +JobServiceConnectionImpl::DeleteModelDeploymentMonitoringJob( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to " + "DeleteModelDeploymentMonitoringJob", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::aiplatform::v1::DeleteOperationMetadata>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::cloud::aiplatform::v1::DeleteOperationMetadata>, + polling_policy(*current), __func__); +} + Status JobServiceConnectionImpl::PauseModelDeploymentMonitoringJob( google::cloud::aiplatform::v1:: PauseModelDeploymentMonitoringJobRequest const& request) { diff --git a/google/cloud/aiplatform/v1/internal/job_connection_impl.h b/google/cloud/aiplatform/v1/internal/job_connection_impl.h index 2ec60f7e600d3..dbe141f2df712 100644 --- a/google/cloud/aiplatform/v1/internal/job_connection_impl.h +++ b/google/cloud/aiplatform/v1/internal/job_connection_impl.h @@ -66,6 +66,15 @@ class JobServiceConnectionImpl : public aiplatform_v1::JobServiceConnection { DeleteCustomJob(google::cloud::aiplatform::v1::DeleteCustomJobRequest const& request) override; + StatusOr DeleteCustomJob( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteCustomJobRequest const& request) + override; + + future> + DeleteCustomJob(ExperimentalTag, + google::longrunning::Operation const& operation) override; + Status CancelCustomJob( google::cloud::aiplatform::v1::CancelCustomJobRequest const& request) override; @@ -89,6 +98,16 @@ class JobServiceConnectionImpl : public aiplatform_v1::JobServiceConnection { google::cloud::aiplatform::v1::DeleteDataLabelingJobRequest const& request) override; + StatusOr DeleteDataLabelingJob( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteDataLabelingJobRequest const& + request) override; + + future> + DeleteDataLabelingJob( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + Status CancelDataLabelingJob( google::cloud::aiplatform::v1::CancelDataLabelingJobRequest const& request) override; @@ -113,6 +132,16 @@ class JobServiceConnectionImpl : public aiplatform_v1::JobServiceConnection { google::cloud::aiplatform::v1::DeleteHyperparameterTuningJobRequest const& request) override; + StatusOr DeleteHyperparameterTuningJob( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteHyperparameterTuningJobRequest const& + request) override; + + future> + DeleteHyperparameterTuningJob( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + Status CancelHyperparameterTuningJob( google::cloud::aiplatform::v1::CancelHyperparameterTuningJobRequest const& request) override; @@ -131,6 +160,15 @@ class JobServiceConnectionImpl : public aiplatform_v1::JobServiceConnection { DeleteNasJob(google::cloud::aiplatform::v1::DeleteNasJobRequest const& request) override; + StatusOr DeleteNasJob( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteNasJobRequest const& request) + override; + + future> + DeleteNasJob(ExperimentalTag, + google::longrunning::Operation const& operation) override; + Status CancelNasJob(google::cloud::aiplatform::v1::CancelNasJobRequest const& request) override; @@ -162,6 +200,16 @@ class JobServiceConnectionImpl : public aiplatform_v1::JobServiceConnection { google::cloud::aiplatform::v1::DeleteBatchPredictionJobRequest const& request) override; + StatusOr DeleteBatchPredictionJob( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteBatchPredictionJobRequest const& + request) override; + + future> + DeleteBatchPredictionJob( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + Status CancelBatchPredictionJob( google::cloud::aiplatform::v1::CancelBatchPredictionJobRequest const& request) override; @@ -192,11 +240,31 @@ class JobServiceConnectionImpl : public aiplatform_v1::JobServiceConnection { google::cloud::aiplatform::v1:: UpdateModelDeploymentMonitoringJobRequest const& request) override; + StatusOr UpdateModelDeploymentMonitoringJob( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1:: + UpdateModelDeploymentMonitoringJobRequest const& request) override; + + future> + UpdateModelDeploymentMonitoringJob( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteModelDeploymentMonitoringJob( google::cloud::aiplatform::v1:: DeleteModelDeploymentMonitoringJobRequest const& request) override; + StatusOr DeleteModelDeploymentMonitoringJob( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1:: + DeleteModelDeploymentMonitoringJobRequest const& request) override; + + future> + DeleteModelDeploymentMonitoringJob( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + Status PauseModelDeploymentMonitoringJob( google::cloud::aiplatform::v1:: PauseModelDeploymentMonitoringJobRequest const& request) override; diff --git a/google/cloud/aiplatform/v1/internal/job_tracing_connection.cc b/google/cloud/aiplatform/v1/internal/job_tracing_connection.cc index 9c8bec1630b36..e144a2069e915 100644 --- a/google/cloud/aiplatform/v1/internal/job_tracing_connection.cc +++ b/google/cloud/aiplatform/v1/internal/job_tracing_connection.cc @@ -71,6 +71,27 @@ JobServiceTracingConnection::DeleteCustomJob( return internal::EndSpan(std::move(span), child_->DeleteCustomJob(request)); } +StatusOr +JobServiceTracingConnection::DeleteCustomJob( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteCustomJobRequest const& request) { + auto span = internal::MakeSpan( + "aiplatform_v1::JobServiceConnection::DeleteCustomJob"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->DeleteCustomJob(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +JobServiceTracingConnection::DeleteCustomJob( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "aiplatform_v1::JobServiceConnection::DeleteCustomJob"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->DeleteCustomJob(ExperimentalTag{}, operation)); +} + Status JobServiceTracingConnection::CancelCustomJob( google::cloud::aiplatform::v1::CancelCustomJobRequest const& request) { auto span = internal::MakeSpan( @@ -121,6 +142,29 @@ JobServiceTracingConnection::DeleteDataLabelingJob( child_->DeleteDataLabelingJob(request)); } +StatusOr +JobServiceTracingConnection::DeleteDataLabelingJob( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteDataLabelingJobRequest const& + request) { + auto span = internal::MakeSpan( + "aiplatform_v1::JobServiceConnection::DeleteDataLabelingJob"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->DeleteDataLabelingJob(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +JobServiceTracingConnection::DeleteDataLabelingJob( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "aiplatform_v1::JobServiceConnection::DeleteDataLabelingJob"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->DeleteDataLabelingJob( + ExperimentalTag{}, operation)); +} + Status JobServiceTracingConnection::CancelDataLabelingJob( google::cloud::aiplatform::v1::CancelDataLabelingJobRequest const& request) { @@ -175,6 +219,30 @@ JobServiceTracingConnection::DeleteHyperparameterTuningJob( child_->DeleteHyperparameterTuningJob(request)); } +StatusOr +JobServiceTracingConnection::DeleteHyperparameterTuningJob( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteHyperparameterTuningJobRequest const& + request) { + auto span = internal::MakeSpan( + "aiplatform_v1::JobServiceConnection::DeleteHyperparameterTuningJob"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->DeleteHyperparameterTuningJob(ExperimentalTag{}, + NoAwaitTag{}, request)); +} + +future> +JobServiceTracingConnection::DeleteHyperparameterTuningJob( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "aiplatform_v1::JobServiceConnection::DeleteHyperparameterTuningJob"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), + child_->DeleteHyperparameterTuningJob(ExperimentalTag{}, operation)); +} + Status JobServiceTracingConnection::CancelHyperparameterTuningJob( google::cloud::aiplatform::v1::CancelHyperparameterTuningJobRequest const& request) { @@ -223,6 +291,27 @@ JobServiceTracingConnection::DeleteNasJob( return internal::EndSpan(std::move(span), child_->DeleteNasJob(request)); } +StatusOr +JobServiceTracingConnection::DeleteNasJob( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteNasJobRequest const& request) { + auto span = + internal::MakeSpan("aiplatform_v1::JobServiceConnection::DeleteNasJob"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->DeleteNasJob(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +JobServiceTracingConnection::DeleteNasJob( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = + internal::MakeSpan("aiplatform_v1::JobServiceConnection::DeleteNasJob"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->DeleteNasJob(ExperimentalTag{}, operation)); +} + Status JobServiceTracingConnection::CancelNasJob( google::cloud::aiplatform::v1::CancelNasJobRequest const& request) { auto span = @@ -295,6 +384,29 @@ JobServiceTracingConnection::DeleteBatchPredictionJob( child_->DeleteBatchPredictionJob(request)); } +StatusOr +JobServiceTracingConnection::DeleteBatchPredictionJob( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteBatchPredictionJobRequest const& + request) { + auto span = internal::MakeSpan( + "aiplatform_v1::JobServiceConnection::DeleteBatchPredictionJob"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->DeleteBatchPredictionJob(ExperimentalTag{}, NoAwaitTag{}, + request)); +} + +future> +JobServiceTracingConnection::DeleteBatchPredictionJob( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "aiplatform_v1::JobServiceConnection::DeleteBatchPredictionJob"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->DeleteBatchPredictionJob( + ExperimentalTag{}, operation)); +} + Status JobServiceTracingConnection::CancelBatchPredictionJob( google::cloud::aiplatform::v1::CancelBatchPredictionJobRequest const& request) { @@ -367,6 +479,32 @@ JobServiceTracingConnection::UpdateModelDeploymentMonitoringJob( child_->UpdateModelDeploymentMonitoringJob(request)); } +StatusOr +JobServiceTracingConnection::UpdateModelDeploymentMonitoringJob( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1:: + UpdateModelDeploymentMonitoringJobRequest const& request) { + auto span = internal::MakeSpan( + "aiplatform_v1::JobServiceConnection::" + "UpdateModelDeploymentMonitoringJob"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->UpdateModelDeploymentMonitoringJob(ExperimentalTag{}, + NoAwaitTag{}, request)); +} + +future> +JobServiceTracingConnection::UpdateModelDeploymentMonitoringJob( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "aiplatform_v1::JobServiceConnection::" + "UpdateModelDeploymentMonitoringJob"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), + child_->UpdateModelDeploymentMonitoringJob(ExperimentalTag{}, operation)); +} + future> JobServiceTracingConnection::DeleteModelDeploymentMonitoringJob( google::cloud::aiplatform::v1:: @@ -379,6 +517,32 @@ JobServiceTracingConnection::DeleteModelDeploymentMonitoringJob( child_->DeleteModelDeploymentMonitoringJob(request)); } +StatusOr +JobServiceTracingConnection::DeleteModelDeploymentMonitoringJob( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1:: + DeleteModelDeploymentMonitoringJobRequest const& request) { + auto span = internal::MakeSpan( + "aiplatform_v1::JobServiceConnection::" + "DeleteModelDeploymentMonitoringJob"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->DeleteModelDeploymentMonitoringJob(ExperimentalTag{}, + NoAwaitTag{}, request)); +} + +future> +JobServiceTracingConnection::DeleteModelDeploymentMonitoringJob( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "aiplatform_v1::JobServiceConnection::" + "DeleteModelDeploymentMonitoringJob"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), + child_->DeleteModelDeploymentMonitoringJob(ExperimentalTag{}, operation)); +} + Status JobServiceTracingConnection::PauseModelDeploymentMonitoringJob( google::cloud::aiplatform::v1:: PauseModelDeploymentMonitoringJobRequest const& request) { diff --git a/google/cloud/aiplatform/v1/internal/job_tracing_connection.h b/google/cloud/aiplatform/v1/internal/job_tracing_connection.h index 6254cd90ad6ab..fe73e4b684b93 100644 --- a/google/cloud/aiplatform/v1/internal/job_tracing_connection.h +++ b/google/cloud/aiplatform/v1/internal/job_tracing_connection.h @@ -54,6 +54,15 @@ class JobServiceTracingConnection : public aiplatform_v1::JobServiceConnection { DeleteCustomJob(google::cloud::aiplatform::v1::DeleteCustomJobRequest const& request) override; + StatusOr DeleteCustomJob( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteCustomJobRequest const& request) + override; + + future> + DeleteCustomJob(ExperimentalTag, + google::longrunning::Operation const& operation) override; + Status CancelCustomJob( google::cloud::aiplatform::v1::CancelCustomJobRequest const& request) override; @@ -77,6 +86,16 @@ class JobServiceTracingConnection : public aiplatform_v1::JobServiceConnection { google::cloud::aiplatform::v1::DeleteDataLabelingJobRequest const& request) override; + StatusOr DeleteDataLabelingJob( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteDataLabelingJobRequest const& + request) override; + + future> + DeleteDataLabelingJob( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + Status CancelDataLabelingJob( google::cloud::aiplatform::v1::CancelDataLabelingJobRequest const& request) override; @@ -101,6 +120,16 @@ class JobServiceTracingConnection : public aiplatform_v1::JobServiceConnection { google::cloud::aiplatform::v1::DeleteHyperparameterTuningJobRequest const& request) override; + StatusOr DeleteHyperparameterTuningJob( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteHyperparameterTuningJobRequest const& + request) override; + + future> + DeleteHyperparameterTuningJob( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + Status CancelHyperparameterTuningJob( google::cloud::aiplatform::v1::CancelHyperparameterTuningJobRequest const& request) override; @@ -119,6 +148,15 @@ class JobServiceTracingConnection : public aiplatform_v1::JobServiceConnection { DeleteNasJob(google::cloud::aiplatform::v1::DeleteNasJobRequest const& request) override; + StatusOr DeleteNasJob( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteNasJobRequest const& request) + override; + + future> + DeleteNasJob(ExperimentalTag, + google::longrunning::Operation const& operation) override; + Status CancelNasJob(google::cloud::aiplatform::v1::CancelNasJobRequest const& request) override; @@ -150,6 +188,16 @@ class JobServiceTracingConnection : public aiplatform_v1::JobServiceConnection { google::cloud::aiplatform::v1::DeleteBatchPredictionJobRequest const& request) override; + StatusOr DeleteBatchPredictionJob( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteBatchPredictionJobRequest const& + request) override; + + future> + DeleteBatchPredictionJob( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + Status CancelBatchPredictionJob( google::cloud::aiplatform::v1::CancelBatchPredictionJobRequest const& request) override; @@ -180,11 +228,31 @@ class JobServiceTracingConnection : public aiplatform_v1::JobServiceConnection { google::cloud::aiplatform::v1:: UpdateModelDeploymentMonitoringJobRequest const& request) override; + StatusOr UpdateModelDeploymentMonitoringJob( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1:: + UpdateModelDeploymentMonitoringJobRequest const& request) override; + + future> + UpdateModelDeploymentMonitoringJob( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteModelDeploymentMonitoringJob( google::cloud::aiplatform::v1:: DeleteModelDeploymentMonitoringJobRequest const& request) override; + StatusOr DeleteModelDeploymentMonitoringJob( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1:: + DeleteModelDeploymentMonitoringJobRequest const& request) override; + + future> + DeleteModelDeploymentMonitoringJob( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + Status PauseModelDeploymentMonitoringJob( google::cloud::aiplatform::v1:: PauseModelDeploymentMonitoringJobRequest const& request) override; diff --git a/google/cloud/aiplatform/v1/internal/metadata_connection_impl.cc b/google/cloud/aiplatform/v1/internal/metadata_connection_impl.cc index 0835074a23b82..ef5ed7c6926df 100644 --- a/google/cloud/aiplatform/v1/internal/metadata_connection_impl.cc +++ b/google/cloud/aiplatform/v1/internal/metadata_connection_impl.cc @@ -107,6 +107,60 @@ MetadataServiceConnectionImpl::CreateMetadataStore( polling_policy(*current), __func__); } +StatusOr +MetadataServiceConnectionImpl::CreateMetadataStore( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::CreateMetadataStoreRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateMetadataStore(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::aiplatform::v1::CreateMetadataStoreRequest const& + request) { + return stub_->CreateMetadataStore(context, options, request); + }, + *current, request, __func__); +} + +future> +MetadataServiceConnectionImpl::CreateMetadataStore( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to CreateMetadataStore", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::aiplatform::v1::MetadataStore>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::aiplatform::v1::MetadataStore>, + polling_policy(*current), __func__); +} + StatusOr MetadataServiceConnectionImpl::GetMetadataStore( google::cloud::aiplatform::v1::GetMetadataStoreRequest const& request) { @@ -198,6 +252,61 @@ MetadataServiceConnectionImpl::DeleteMetadataStore( polling_policy(*current), __func__); } +StatusOr +MetadataServiceConnectionImpl::DeleteMetadataStore( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteMetadataStoreRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteMetadataStore(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::aiplatform::v1::DeleteMetadataStoreRequest const& + request) { + return stub_->DeleteMetadataStore(context, options, request); + }, + *current, request, __func__); +} + +future> +MetadataServiceConnectionImpl::DeleteMetadataStore( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteMetadataStore", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::aiplatform::v1::DeleteMetadataStoreOperationMetadata>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::cloud::aiplatform::v1::DeleteMetadataStoreOperationMetadata>, + polling_policy(*current), __func__); +} + StatusOr MetadataServiceConnectionImpl::CreateArtifact( google::cloud::aiplatform::v1::CreateArtifactRequest const& request) { @@ -315,6 +424,60 @@ MetadataServiceConnectionImpl::DeleteArtifact( polling_policy(*current), __func__); } +StatusOr +MetadataServiceConnectionImpl::DeleteArtifact( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteArtifactRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteArtifact(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::aiplatform::v1::DeleteArtifactRequest const& request) { + return stub_->DeleteArtifact(context, options, request); + }, + *current, request, __func__); +} + +future> +MetadataServiceConnectionImpl::DeleteArtifact( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteArtifact", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::aiplatform::v1::DeleteOperationMetadata>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::cloud::aiplatform::v1::DeleteOperationMetadata>, + polling_policy(*current), __func__); +} + future> MetadataServiceConnectionImpl::PurgeArtifacts( google::cloud::aiplatform::v1::PurgeArtifactsRequest const& request) { @@ -354,6 +517,60 @@ MetadataServiceConnectionImpl::PurgeArtifacts( polling_policy(*current), __func__); } +StatusOr +MetadataServiceConnectionImpl::PurgeArtifacts( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::PurgeArtifactsRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->PurgeArtifacts(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::aiplatform::v1::PurgeArtifactsRequest const& request) { + return stub_->PurgeArtifacts(context, options, request); + }, + *current, request, __func__); +} + +future> +MetadataServiceConnectionImpl::PurgeArtifacts( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to PurgeArtifacts", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::aiplatform::v1::PurgeArtifactsResponse>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::aiplatform::v1::PurgeArtifactsResponse>, + polling_policy(*current), __func__); +} + StatusOr MetadataServiceConnectionImpl::CreateContext( google::cloud::aiplatform::v1::CreateContextRequest const& request) { @@ -471,6 +688,60 @@ MetadataServiceConnectionImpl::DeleteContext( polling_policy(*current), __func__); } +StatusOr +MetadataServiceConnectionImpl::DeleteContext( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteContextRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteContext(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::aiplatform::v1::DeleteContextRequest const& request) { + return stub_->DeleteContext(context, options, request); + }, + *current, request, __func__); +} + +future> +MetadataServiceConnectionImpl::DeleteContext( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteContext", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::aiplatform::v1::DeleteOperationMetadata>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::cloud::aiplatform::v1::DeleteOperationMetadata>, + polling_policy(*current), __func__); +} + future> MetadataServiceConnectionImpl::PurgeContexts( google::cloud::aiplatform::v1::PurgeContextsRequest const& request) { @@ -510,6 +781,60 @@ MetadataServiceConnectionImpl::PurgeContexts( polling_policy(*current), __func__); } +StatusOr +MetadataServiceConnectionImpl::PurgeContexts( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::PurgeContextsRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->PurgeContexts(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::aiplatform::v1::PurgeContextsRequest const& request) { + return stub_->PurgeContexts(context, options, request); + }, + *current, request, __func__); +} + +future> +MetadataServiceConnectionImpl::PurgeContexts( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to PurgeContexts", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::aiplatform::v1::PurgeContextsResponse>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::aiplatform::v1::PurgeContextsResponse>, + polling_policy(*current), __func__); +} + StatusOr< google::cloud::aiplatform::v1::AddContextArtifactsAndExecutionsResponse> MetadataServiceConnectionImpl::AddContextArtifactsAndExecutions( @@ -694,6 +1019,60 @@ MetadataServiceConnectionImpl::DeleteExecution( polling_policy(*current), __func__); } +StatusOr +MetadataServiceConnectionImpl::DeleteExecution( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteExecutionRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteExecution(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::aiplatform::v1::DeleteExecutionRequest const& + request) { + return stub_->DeleteExecution(context, options, request); + }, + *current, request, __func__); +} + +future> +MetadataServiceConnectionImpl::DeleteExecution( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteExecution", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::aiplatform::v1::DeleteOperationMetadata>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::cloud::aiplatform::v1::DeleteOperationMetadata>, + polling_policy(*current), __func__); +} + future> MetadataServiceConnectionImpl::PurgeExecutions( google::cloud::aiplatform::v1::PurgeExecutionsRequest const& request) { @@ -734,6 +1113,60 @@ MetadataServiceConnectionImpl::PurgeExecutions( polling_policy(*current), __func__); } +StatusOr +MetadataServiceConnectionImpl::PurgeExecutions( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::PurgeExecutionsRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->PurgeExecutions(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::aiplatform::v1::PurgeExecutionsRequest const& + request) { + return stub_->PurgeExecutions(context, options, request); + }, + *current, request, __func__); +} + +future> +MetadataServiceConnectionImpl::PurgeExecutions( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to PurgeExecutions", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::aiplatform::v1::PurgeExecutionsResponse>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::aiplatform::v1::PurgeExecutionsResponse>, + polling_policy(*current), __func__); +} + StatusOr MetadataServiceConnectionImpl::AddExecutionEvents( google::cloud::aiplatform::v1::AddExecutionEventsRequest const& request) { diff --git a/google/cloud/aiplatform/v1/internal/metadata_connection_impl.h b/google/cloud/aiplatform/v1/internal/metadata_connection_impl.h index 9b21bfd762e88..6975eb407bf87 100644 --- a/google/cloud/aiplatform/v1/internal/metadata_connection_impl.h +++ b/google/cloud/aiplatform/v1/internal/metadata_connection_impl.h @@ -57,6 +57,15 @@ class MetadataServiceConnectionImpl google::cloud::aiplatform::v1::CreateMetadataStoreRequest const& request) override; + StatusOr CreateMetadataStore( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::CreateMetadataStoreRequest const& request) + override; + + future> + CreateMetadataStore(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetMetadataStore( google::cloud::aiplatform::v1::GetMetadataStoreRequest const& request) override; @@ -71,6 +80,16 @@ class MetadataServiceConnectionImpl google::cloud::aiplatform::v1::DeleteMetadataStoreRequest const& request) override; + StatusOr DeleteMetadataStore( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteMetadataStoreRequest const& request) + override; + + future> + DeleteMetadataStore(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr CreateArtifact( google::cloud::aiplatform::v1::CreateArtifactRequest const& request) override; @@ -90,10 +109,28 @@ class MetadataServiceConnectionImpl DeleteArtifact(google::cloud::aiplatform::v1::DeleteArtifactRequest const& request) override; + StatusOr DeleteArtifact( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteArtifactRequest const& request) + override; + + future> + DeleteArtifact(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> PurgeArtifacts(google::cloud::aiplatform::v1::PurgeArtifactsRequest const& request) override; + StatusOr PurgeArtifacts( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::PurgeArtifactsRequest const& request) + override; + + future> + PurgeArtifacts(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr CreateContext( google::cloud::aiplatform::v1::CreateContextRequest const& request) override; @@ -112,10 +149,28 @@ class MetadataServiceConnectionImpl DeleteContext(google::cloud::aiplatform::v1::DeleteContextRequest const& request) override; + StatusOr DeleteContext( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteContextRequest const& request) + override; + + future> + DeleteContext(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> PurgeContexts(google::cloud::aiplatform::v1::PurgeContextsRequest const& request) override; + StatusOr PurgeContexts( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::PurgeContextsRequest const& request) + override; + + future> + PurgeContexts(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr< google::cloud::aiplatform::v1::AddContextArtifactsAndExecutionsResponse> AddContextArtifactsAndExecutions( @@ -156,10 +211,28 @@ class MetadataServiceConnectionImpl DeleteExecution(google::cloud::aiplatform::v1::DeleteExecutionRequest const& request) override; + StatusOr DeleteExecution( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteExecutionRequest const& request) + override; + + future> + DeleteExecution(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> PurgeExecutions(google::cloud::aiplatform::v1::PurgeExecutionsRequest const& request) override; + StatusOr PurgeExecutions( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::PurgeExecutionsRequest const& request) + override; + + future> + PurgeExecutions(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr AddExecutionEvents( google::cloud::aiplatform::v1::AddExecutionEventsRequest const& request) diff --git a/google/cloud/aiplatform/v1/internal/metadata_tracing_connection.cc b/google/cloud/aiplatform/v1/internal/metadata_tracing_connection.cc index b6c44a7500ced..f69531f763ab8 100644 --- a/google/cloud/aiplatform/v1/internal/metadata_tracing_connection.cc +++ b/google/cloud/aiplatform/v1/internal/metadata_tracing_connection.cc @@ -43,6 +43,28 @@ MetadataServiceTracingConnection::CreateMetadataStore( child_->CreateMetadataStore(request)); } +StatusOr +MetadataServiceTracingConnection::CreateMetadataStore( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::CreateMetadataStoreRequest const& request) { + auto span = internal::MakeSpan( + "aiplatform_v1::MetadataServiceConnection::CreateMetadataStore"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->CreateMetadataStore(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +MetadataServiceTracingConnection::CreateMetadataStore( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "aiplatform_v1::MetadataServiceConnection::CreateMetadataStore"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->CreateMetadataStore( + ExperimentalTag{}, operation)); +} + StatusOr MetadataServiceTracingConnection::GetMetadataStore( google::cloud::aiplatform::v1::GetMetadataStoreRequest const& request) { @@ -75,6 +97,29 @@ MetadataServiceTracingConnection::DeleteMetadataStore( child_->DeleteMetadataStore(request)); } +StatusOr +MetadataServiceTracingConnection::DeleteMetadataStore( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteMetadataStoreRequest const& request) { + auto span = internal::MakeSpan( + "aiplatform_v1::MetadataServiceConnection::DeleteMetadataStore"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->DeleteMetadataStore(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +MetadataServiceTracingConnection::DeleteMetadataStore( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "aiplatform_v1::MetadataServiceConnection::DeleteMetadataStore"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->DeleteMetadataStore( + ExperimentalTag{}, operation)); +} + StatusOr MetadataServiceTracingConnection::CreateArtifact( google::cloud::aiplatform::v1::CreateArtifactRequest const& request) { @@ -122,6 +167,27 @@ MetadataServiceTracingConnection::DeleteArtifact( return internal::EndSpan(std::move(span), child_->DeleteArtifact(request)); } +StatusOr +MetadataServiceTracingConnection::DeleteArtifact( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteArtifactRequest const& request) { + auto span = internal::MakeSpan( + "aiplatform_v1::MetadataServiceConnection::DeleteArtifact"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->DeleteArtifact(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +MetadataServiceTracingConnection::DeleteArtifact( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "aiplatform_v1::MetadataServiceConnection::DeleteArtifact"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->DeleteArtifact(ExperimentalTag{}, operation)); +} + future> MetadataServiceTracingConnection::PurgeArtifacts( google::cloud::aiplatform::v1::PurgeArtifactsRequest const& request) { @@ -131,6 +197,27 @@ MetadataServiceTracingConnection::PurgeArtifacts( return internal::EndSpan(std::move(span), child_->PurgeArtifacts(request)); } +StatusOr +MetadataServiceTracingConnection::PurgeArtifacts( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::PurgeArtifactsRequest const& request) { + auto span = internal::MakeSpan( + "aiplatform_v1::MetadataServiceConnection::PurgeArtifacts"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->PurgeArtifacts(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +MetadataServiceTracingConnection::PurgeArtifacts( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "aiplatform_v1::MetadataServiceConnection::PurgeArtifacts"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->PurgeArtifacts(ExperimentalTag{}, operation)); +} + StatusOr MetadataServiceTracingConnection::CreateContext( google::cloud::aiplatform::v1::CreateContextRequest const& request) { @@ -178,6 +265,27 @@ MetadataServiceTracingConnection::DeleteContext( return internal::EndSpan(std::move(span), child_->DeleteContext(request)); } +StatusOr +MetadataServiceTracingConnection::DeleteContext( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteContextRequest const& request) { + auto span = internal::MakeSpan( + "aiplatform_v1::MetadataServiceConnection::DeleteContext"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->DeleteContext(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +MetadataServiceTracingConnection::DeleteContext( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "aiplatform_v1::MetadataServiceConnection::DeleteContext"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->DeleteContext(ExperimentalTag{}, operation)); +} + future> MetadataServiceTracingConnection::PurgeContexts( google::cloud::aiplatform::v1::PurgeContextsRequest const& request) { @@ -187,6 +295,27 @@ MetadataServiceTracingConnection::PurgeContexts( return internal::EndSpan(std::move(span), child_->PurgeContexts(request)); } +StatusOr +MetadataServiceTracingConnection::PurgeContexts( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::PurgeContextsRequest const& request) { + auto span = internal::MakeSpan( + "aiplatform_v1::MetadataServiceConnection::PurgeContexts"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->PurgeContexts(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +MetadataServiceTracingConnection::PurgeContexts( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "aiplatform_v1::MetadataServiceConnection::PurgeContexts"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->PurgeContexts(ExperimentalTag{}, operation)); +} + StatusOr< google::cloud::aiplatform::v1::AddContextArtifactsAndExecutionsResponse> MetadataServiceTracingConnection::AddContextArtifactsAndExecutions( @@ -276,6 +405,27 @@ MetadataServiceTracingConnection::DeleteExecution( return internal::EndSpan(std::move(span), child_->DeleteExecution(request)); } +StatusOr +MetadataServiceTracingConnection::DeleteExecution( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteExecutionRequest const& request) { + auto span = internal::MakeSpan( + "aiplatform_v1::MetadataServiceConnection::DeleteExecution"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->DeleteExecution(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +MetadataServiceTracingConnection::DeleteExecution( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "aiplatform_v1::MetadataServiceConnection::DeleteExecution"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->DeleteExecution(ExperimentalTag{}, operation)); +} + future> MetadataServiceTracingConnection::PurgeExecutions( google::cloud::aiplatform::v1::PurgeExecutionsRequest const& request) { @@ -285,6 +435,27 @@ MetadataServiceTracingConnection::PurgeExecutions( return internal::EndSpan(std::move(span), child_->PurgeExecutions(request)); } +StatusOr +MetadataServiceTracingConnection::PurgeExecutions( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::PurgeExecutionsRequest const& request) { + auto span = internal::MakeSpan( + "aiplatform_v1::MetadataServiceConnection::PurgeExecutions"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->PurgeExecutions(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +MetadataServiceTracingConnection::PurgeExecutions( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "aiplatform_v1::MetadataServiceConnection::PurgeExecutions"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->PurgeExecutions(ExperimentalTag{}, operation)); +} + StatusOr MetadataServiceTracingConnection::AddExecutionEvents( google::cloud::aiplatform::v1::AddExecutionEventsRequest const& request) { diff --git a/google/cloud/aiplatform/v1/internal/metadata_tracing_connection.h b/google/cloud/aiplatform/v1/internal/metadata_tracing_connection.h index 01f0ea19d8e0e..25733d7e748d2 100644 --- a/google/cloud/aiplatform/v1/internal/metadata_tracing_connection.h +++ b/google/cloud/aiplatform/v1/internal/metadata_tracing_connection.h @@ -45,6 +45,15 @@ class MetadataServiceTracingConnection google::cloud::aiplatform::v1::CreateMetadataStoreRequest const& request) override; + StatusOr CreateMetadataStore( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::CreateMetadataStoreRequest const& request) + override; + + future> + CreateMetadataStore(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetMetadataStore( google::cloud::aiplatform::v1::GetMetadataStoreRequest const& request) override; @@ -59,6 +68,16 @@ class MetadataServiceTracingConnection google::cloud::aiplatform::v1::DeleteMetadataStoreRequest const& request) override; + StatusOr DeleteMetadataStore( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteMetadataStoreRequest const& request) + override; + + future> + DeleteMetadataStore(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr CreateArtifact( google::cloud::aiplatform::v1::CreateArtifactRequest const& request) override; @@ -78,10 +97,28 @@ class MetadataServiceTracingConnection DeleteArtifact(google::cloud::aiplatform::v1::DeleteArtifactRequest const& request) override; + StatusOr DeleteArtifact( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteArtifactRequest const& request) + override; + + future> + DeleteArtifact(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> PurgeArtifacts(google::cloud::aiplatform::v1::PurgeArtifactsRequest const& request) override; + StatusOr PurgeArtifacts( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::PurgeArtifactsRequest const& request) + override; + + future> + PurgeArtifacts(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr CreateContext( google::cloud::aiplatform::v1::CreateContextRequest const& request) override; @@ -100,10 +137,28 @@ class MetadataServiceTracingConnection DeleteContext(google::cloud::aiplatform::v1::DeleteContextRequest const& request) override; + StatusOr DeleteContext( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteContextRequest const& request) + override; + + future> + DeleteContext(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> PurgeContexts(google::cloud::aiplatform::v1::PurgeContextsRequest const& request) override; + StatusOr PurgeContexts( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::PurgeContextsRequest const& request) + override; + + future> + PurgeContexts(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr< google::cloud::aiplatform::v1::AddContextArtifactsAndExecutionsResponse> AddContextArtifactsAndExecutions( @@ -144,10 +199,28 @@ class MetadataServiceTracingConnection DeleteExecution(google::cloud::aiplatform::v1::DeleteExecutionRequest const& request) override; + StatusOr DeleteExecution( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteExecutionRequest const& request) + override; + + future> + DeleteExecution(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> PurgeExecutions(google::cloud::aiplatform::v1::PurgeExecutionsRequest const& request) override; + StatusOr PurgeExecutions( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::PurgeExecutionsRequest const& request) + override; + + future> + PurgeExecutions(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr AddExecutionEvents( google::cloud::aiplatform::v1::AddExecutionEventsRequest const& request) diff --git a/google/cloud/aiplatform/v1/internal/migration_connection_impl.cc b/google/cloud/aiplatform/v1/internal/migration_connection_impl.cc index 887d8aff10579..a7bc4f5c4d5f9 100644 --- a/google/cloud/aiplatform/v1/internal/migration_connection_impl.cc +++ b/google/cloud/aiplatform/v1/internal/migration_connection_impl.cc @@ -144,6 +144,61 @@ MigrationServiceConnectionImpl::BatchMigrateResources( polling_policy(*current), __func__); } +StatusOr +MigrationServiceConnectionImpl::BatchMigrateResources( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::BatchMigrateResourcesRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->BatchMigrateResources(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::aiplatform::v1::BatchMigrateResourcesRequest const& + request) { + return stub_->BatchMigrateResources(context, options, request); + }, + *current, request, __func__); +} + +future> +MigrationServiceConnectionImpl::BatchMigrateResources( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to BatchMigrateResources", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::aiplatform::v1::BatchMigrateResourcesResponse>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::aiplatform::v1::BatchMigrateResourcesResponse>, + polling_policy(*current), __func__); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace aiplatform_v1_internal } // namespace cloud diff --git a/google/cloud/aiplatform/v1/internal/migration_connection_impl.h b/google/cloud/aiplatform/v1/internal/migration_connection_impl.h index 592e4083776c6..e38b9111da69c 100644 --- a/google/cloud/aiplatform/v1/internal/migration_connection_impl.h +++ b/google/cloud/aiplatform/v1/internal/migration_connection_impl.h @@ -62,6 +62,16 @@ class MigrationServiceConnectionImpl google::cloud::aiplatform::v1::BatchMigrateResourcesRequest const& request) override; + StatusOr BatchMigrateResources( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::BatchMigrateResourcesRequest const& + request) override; + + future> + BatchMigrateResources( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + private: std::unique_ptr background_; std::shared_ptr stub_; diff --git a/google/cloud/aiplatform/v1/internal/migration_tracing_connection.cc b/google/cloud/aiplatform/v1/internal/migration_tracing_connection.cc index 57166656598bb..4e2e04de657c6 100644 --- a/google/cloud/aiplatform/v1/internal/migration_tracing_connection.cc +++ b/google/cloud/aiplatform/v1/internal/migration_tracing_connection.cc @@ -56,6 +56,29 @@ MigrationServiceTracingConnection::BatchMigrateResources( child_->BatchMigrateResources(request)); } +StatusOr +MigrationServiceTracingConnection::BatchMigrateResources( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::BatchMigrateResourcesRequest const& + request) { + auto span = internal::MakeSpan( + "aiplatform_v1::MigrationServiceConnection::BatchMigrateResources"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->BatchMigrateResources(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +MigrationServiceTracingConnection::BatchMigrateResources( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "aiplatform_v1::MigrationServiceConnection::BatchMigrateResources"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->BatchMigrateResources( + ExperimentalTag{}, operation)); +} + #endif // GOOGLE_CLOUD_CPP_HAVE_OPENTELEMETRY std::shared_ptr diff --git a/google/cloud/aiplatform/v1/internal/migration_tracing_connection.h b/google/cloud/aiplatform/v1/internal/migration_tracing_connection.h index c04c7be5c00da..27902ad08912c 100644 --- a/google/cloud/aiplatform/v1/internal/migration_tracing_connection.h +++ b/google/cloud/aiplatform/v1/internal/migration_tracing_connection.h @@ -50,6 +50,16 @@ class MigrationServiceTracingConnection google::cloud::aiplatform::v1::BatchMigrateResourcesRequest const& request) override; + StatusOr BatchMigrateResources( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::BatchMigrateResourcesRequest const& + request) override; + + future> + BatchMigrateResources( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + private: std::shared_ptr child_; }; diff --git a/google/cloud/aiplatform/v1/internal/model_connection_impl.cc b/google/cloud/aiplatform/v1/internal/model_connection_impl.cc index e85af23092561..a36412c6ef6e1 100644 --- a/google/cloud/aiplatform/v1/internal/model_connection_impl.cc +++ b/google/cloud/aiplatform/v1/internal/model_connection_impl.cc @@ -103,6 +103,59 @@ ModelServiceConnectionImpl::UploadModel( polling_policy(*current), __func__); } +StatusOr +ModelServiceConnectionImpl::UploadModel( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::UploadModelRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UploadModel(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::aiplatform::v1::UploadModelRequest const& request) { + return stub_->UploadModel(context, options, request); + }, + *current, request, __func__); +} + +future> +ModelServiceConnectionImpl::UploadModel( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to UploadModel", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::aiplatform::v1::UploadModelResponse>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::aiplatform::v1::UploadModelResponse>, + polling_policy(*current), __func__); +} + StatusOr ModelServiceConnectionImpl::GetModel( google::cloud::aiplatform::v1::GetModelRequest const& request) { @@ -242,6 +295,63 @@ ModelServiceConnectionImpl::UpdateExplanationDataset( polling_policy(*current), __func__); } +StatusOr +ModelServiceConnectionImpl::UpdateExplanationDataset( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::UpdateExplanationDatasetRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UpdateExplanationDataset(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::aiplatform::v1::UpdateExplanationDatasetRequest const& + request) { + return stub_->UpdateExplanationDataset(context, options, request); + }, + *current, request, __func__); +} + +future< + StatusOr> +ModelServiceConnectionImpl::UpdateExplanationDataset( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to UpdateExplanationDataset", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::aiplatform::v1::UpdateExplanationDatasetResponse>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::aiplatform::v1::UpdateExplanationDatasetResponse>, + polling_policy(*current), __func__); +} + future> ModelServiceConnectionImpl::DeleteModel( google::cloud::aiplatform::v1::DeleteModelRequest const& request) { @@ -281,6 +391,59 @@ ModelServiceConnectionImpl::DeleteModel( polling_policy(*current), __func__); } +StatusOr +ModelServiceConnectionImpl::DeleteModel( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteModelRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteModel(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::aiplatform::v1::DeleteModelRequest const& request) { + return stub_->DeleteModel(context, options, request); + }, + *current, request, __func__); +} + +future> +ModelServiceConnectionImpl::DeleteModel( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteModel", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::aiplatform::v1::DeleteOperationMetadata>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::cloud::aiplatform::v1::DeleteOperationMetadata>, + polling_policy(*current), __func__); +} + future> ModelServiceConnectionImpl::DeleteModelVersion( google::cloud::aiplatform::v1::DeleteModelVersionRequest const& request) { @@ -321,6 +484,60 @@ ModelServiceConnectionImpl::DeleteModelVersion( polling_policy(*current), __func__); } +StatusOr +ModelServiceConnectionImpl::DeleteModelVersion( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteModelVersionRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteModelVersion(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::aiplatform::v1::DeleteModelVersionRequest const& + request) { + return stub_->DeleteModelVersion(context, options, request); + }, + *current, request, __func__); +} + +future> +ModelServiceConnectionImpl::DeleteModelVersion( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteModelVersion", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::aiplatform::v1::DeleteOperationMetadata>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::cloud::aiplatform::v1::DeleteOperationMetadata>, + polling_policy(*current), __func__); +} + StatusOr ModelServiceConnectionImpl::MergeVersionAliases( google::cloud::aiplatform::v1::MergeVersionAliasesRequest const& request) { @@ -375,6 +592,59 @@ ModelServiceConnectionImpl::ExportModel( polling_policy(*current), __func__); } +StatusOr +ModelServiceConnectionImpl::ExportModel( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::ExportModelRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->ExportModel(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::aiplatform::v1::ExportModelRequest const& request) { + return stub_->ExportModel(context, options, request); + }, + *current, request, __func__); +} + +future> +ModelServiceConnectionImpl::ExportModel( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to ExportModel", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::aiplatform::v1::ExportModelResponse>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::aiplatform::v1::ExportModelResponse>, + polling_policy(*current), __func__); +} + future> ModelServiceConnectionImpl::CopyModel( google::cloud::aiplatform::v1::CopyModelRequest const& request) { @@ -413,6 +683,58 @@ ModelServiceConnectionImpl::CopyModel( polling_policy(*current), __func__); } +StatusOr ModelServiceConnectionImpl::CopyModel( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::CopyModelRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CopyModel(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::aiplatform::v1::CopyModelRequest const& request) { + return stub_->CopyModel(context, options, request); + }, + *current, request, __func__); +} + +future> +ModelServiceConnectionImpl::CopyModel( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to CopyModel", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::aiplatform::v1::CopyModelResponse>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::aiplatform::v1::CopyModelResponse>, + polling_policy(*current), __func__); +} + StatusOr ModelServiceConnectionImpl::ImportModelEvaluation( google::cloud::aiplatform::v1::ImportModelEvaluationRequest const& diff --git a/google/cloud/aiplatform/v1/internal/model_connection_impl.h b/google/cloud/aiplatform/v1/internal/model_connection_impl.h index 6f9cf46b611fd..edba3d0d5a37c 100644 --- a/google/cloud/aiplatform/v1/internal/model_connection_impl.h +++ b/google/cloud/aiplatform/v1/internal/model_connection_impl.h @@ -56,6 +56,15 @@ class ModelServiceConnectionImpl UploadModel(google::cloud::aiplatform::v1::UploadModelRequest const& request) override; + StatusOr UploadModel( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::UploadModelRequest const& request) + override; + + future> + UploadModel(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetModel( google::cloud::aiplatform::v1::GetModelRequest const& request) override; @@ -75,15 +84,44 @@ class ModelServiceConnectionImpl google::cloud::aiplatform::v1::UpdateExplanationDatasetRequest const& request) override; + StatusOr UpdateExplanationDataset( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::UpdateExplanationDatasetRequest const& + request) override; + + future< + StatusOr> + UpdateExplanationDataset( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteModel(google::cloud::aiplatform::v1::DeleteModelRequest const& request) override; + StatusOr DeleteModel( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteModelRequest const& request) + override; + + future> + DeleteModel(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteModelVersion( google::cloud::aiplatform::v1::DeleteModelVersionRequest const& request) override; + StatusOr DeleteModelVersion( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteModelVersionRequest const& request) + override; + + future> + DeleteModelVersion(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr MergeVersionAliases( google::cloud::aiplatform::v1::MergeVersionAliasesRequest const& request) override; @@ -92,9 +130,26 @@ class ModelServiceConnectionImpl ExportModel(google::cloud::aiplatform::v1::ExportModelRequest const& request) override; + StatusOr ExportModel( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::ExportModelRequest const& request) + override; + + future> + ExportModel(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> CopyModel( google::cloud::aiplatform::v1::CopyModelRequest const& request) override; + StatusOr CopyModel( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::CopyModelRequest const& request) override; + + future> CopyModel( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr ImportModelEvaluation( google::cloud::aiplatform::v1::ImportModelEvaluationRequest const& diff --git a/google/cloud/aiplatform/v1/internal/model_tracing_connection.cc b/google/cloud/aiplatform/v1/internal/model_tracing_connection.cc index b69474ed1707e..c8859bc05bc92 100644 --- a/google/cloud/aiplatform/v1/internal/model_tracing_connection.cc +++ b/google/cloud/aiplatform/v1/internal/model_tracing_connection.cc @@ -42,6 +42,27 @@ ModelServiceTracingConnection::UploadModel( return internal::EndSpan(std::move(span), child_->UploadModel(request)); } +StatusOr +ModelServiceTracingConnection::UploadModel( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::UploadModelRequest const& request) { + auto span = + internal::MakeSpan("aiplatform_v1::ModelServiceConnection::UploadModel"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->UploadModel(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +ModelServiceTracingConnection::UploadModel( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = + internal::MakeSpan("aiplatform_v1::ModelServiceConnection::UploadModel"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->UploadModel(ExperimentalTag{}, operation)); +} + StatusOr ModelServiceTracingConnection::GetModel( google::cloud::aiplatform::v1::GetModelRequest const& request) { @@ -94,6 +115,30 @@ ModelServiceTracingConnection::UpdateExplanationDataset( child_->UpdateExplanationDataset(request)); } +StatusOr +ModelServiceTracingConnection::UpdateExplanationDataset( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::UpdateExplanationDatasetRequest const& + request) { + auto span = internal::MakeSpan( + "aiplatform_v1::ModelServiceConnection::UpdateExplanationDataset"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->UpdateExplanationDataset(ExperimentalTag{}, NoAwaitTag{}, + request)); +} + +future< + StatusOr> +ModelServiceTracingConnection::UpdateExplanationDataset( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "aiplatform_v1::ModelServiceConnection::UpdateExplanationDataset"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->UpdateExplanationDataset( + ExperimentalTag{}, operation)); +} + future> ModelServiceTracingConnection::DeleteModel( google::cloud::aiplatform::v1::DeleteModelRequest const& request) { @@ -103,6 +148,27 @@ ModelServiceTracingConnection::DeleteModel( return internal::EndSpan(std::move(span), child_->DeleteModel(request)); } +StatusOr +ModelServiceTracingConnection::DeleteModel( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteModelRequest const& request) { + auto span = + internal::MakeSpan("aiplatform_v1::ModelServiceConnection::DeleteModel"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->DeleteModel(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +ModelServiceTracingConnection::DeleteModel( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = + internal::MakeSpan("aiplatform_v1::ModelServiceConnection::DeleteModel"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->DeleteModel(ExperimentalTag{}, operation)); +} + future> ModelServiceTracingConnection::DeleteModelVersion( google::cloud::aiplatform::v1::DeleteModelVersionRequest const& request) { @@ -113,6 +179,28 @@ ModelServiceTracingConnection::DeleteModelVersion( child_->DeleteModelVersion(request)); } +StatusOr +ModelServiceTracingConnection::DeleteModelVersion( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteModelVersionRequest const& request) { + auto span = internal::MakeSpan( + "aiplatform_v1::ModelServiceConnection::DeleteModelVersion"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->DeleteModelVersion(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +ModelServiceTracingConnection::DeleteModelVersion( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "aiplatform_v1::ModelServiceConnection::DeleteModelVersion"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->DeleteModelVersion( + ExperimentalTag{}, operation)); +} + StatusOr ModelServiceTracingConnection::MergeVersionAliases( google::cloud::aiplatform::v1::MergeVersionAliasesRequest const& request) { @@ -131,6 +219,27 @@ ModelServiceTracingConnection::ExportModel( return internal::EndSpan(std::move(span), child_->ExportModel(request)); } +StatusOr +ModelServiceTracingConnection::ExportModel( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::ExportModelRequest const& request) { + auto span = + internal::MakeSpan("aiplatform_v1::ModelServiceConnection::ExportModel"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->ExportModel(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +ModelServiceTracingConnection::ExportModel( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = + internal::MakeSpan("aiplatform_v1::ModelServiceConnection::ExportModel"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->ExportModel(ExperimentalTag{}, operation)); +} + future> ModelServiceTracingConnection::CopyModel( google::cloud::aiplatform::v1::CopyModelRequest const& request) { @@ -140,6 +249,27 @@ ModelServiceTracingConnection::CopyModel( return internal::EndSpan(std::move(span), child_->CopyModel(request)); } +StatusOr +ModelServiceTracingConnection::CopyModel( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::CopyModelRequest const& request) { + auto span = + internal::MakeSpan("aiplatform_v1::ModelServiceConnection::CopyModel"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->CopyModel(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +ModelServiceTracingConnection::CopyModel( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = + internal::MakeSpan("aiplatform_v1::ModelServiceConnection::CopyModel"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->CopyModel(ExperimentalTag{}, operation)); +} + StatusOr ModelServiceTracingConnection::ImportModelEvaluation( google::cloud::aiplatform::v1::ImportModelEvaluationRequest const& diff --git a/google/cloud/aiplatform/v1/internal/model_tracing_connection.h b/google/cloud/aiplatform/v1/internal/model_tracing_connection.h index aa555ad578aaf..84d95183c8d2a 100644 --- a/google/cloud/aiplatform/v1/internal/model_tracing_connection.h +++ b/google/cloud/aiplatform/v1/internal/model_tracing_connection.h @@ -44,6 +44,15 @@ class ModelServiceTracingConnection UploadModel(google::cloud::aiplatform::v1::UploadModelRequest const& request) override; + StatusOr UploadModel( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::UploadModelRequest const& request) + override; + + future> + UploadModel(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetModel( google::cloud::aiplatform::v1::GetModelRequest const& request) override; @@ -63,15 +72,44 @@ class ModelServiceTracingConnection google::cloud::aiplatform::v1::UpdateExplanationDatasetRequest const& request) override; + StatusOr UpdateExplanationDataset( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::UpdateExplanationDatasetRequest const& + request) override; + + future< + StatusOr> + UpdateExplanationDataset( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteModel(google::cloud::aiplatform::v1::DeleteModelRequest const& request) override; + StatusOr DeleteModel( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteModelRequest const& request) + override; + + future> + DeleteModel(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteModelVersion( google::cloud::aiplatform::v1::DeleteModelVersionRequest const& request) override; + StatusOr DeleteModelVersion( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteModelVersionRequest const& request) + override; + + future> + DeleteModelVersion(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr MergeVersionAliases( google::cloud::aiplatform::v1::MergeVersionAliasesRequest const& request) override; @@ -80,9 +118,26 @@ class ModelServiceTracingConnection ExportModel(google::cloud::aiplatform::v1::ExportModelRequest const& request) override; + StatusOr ExportModel( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::ExportModelRequest const& request) + override; + + future> + ExportModel(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> CopyModel( google::cloud::aiplatform::v1::CopyModelRequest const& request) override; + StatusOr CopyModel( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::CopyModelRequest const& request) override; + + future> CopyModel( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr ImportModelEvaluation( google::cloud::aiplatform::v1::ImportModelEvaluationRequest const& diff --git a/google/cloud/aiplatform/v1/internal/notebook_connection_impl.cc b/google/cloud/aiplatform/v1/internal/notebook_connection_impl.cc index 8a02731fb18cb..cabd21f8e77ac 100644 --- a/google/cloud/aiplatform/v1/internal/notebook_connection_impl.cc +++ b/google/cloud/aiplatform/v1/internal/notebook_connection_impl.cc @@ -107,6 +107,61 @@ NotebookServiceConnectionImpl::CreateNotebookRuntimeTemplate( polling_policy(*current), __func__); } +StatusOr +NotebookServiceConnectionImpl::CreateNotebookRuntimeTemplate( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::CreateNotebookRuntimeTemplateRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateNotebookRuntimeTemplate(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::aiplatform::v1:: + CreateNotebookRuntimeTemplateRequest const& request) { + return stub_->CreateNotebookRuntimeTemplate(context, options, request); + }, + *current, request, __func__); +} + +future> +NotebookServiceConnectionImpl::CreateNotebookRuntimeTemplate( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to CreateNotebookRuntimeTemplate", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::aiplatform::v1::NotebookRuntimeTemplate>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::aiplatform::v1::NotebookRuntimeTemplate>, + polling_policy(*current), __func__); +} + StatusOr NotebookServiceConnectionImpl::GetNotebookRuntimeTemplate( google::cloud::aiplatform::v1::GetNotebookRuntimeTemplateRequest const& @@ -202,6 +257,61 @@ NotebookServiceConnectionImpl::DeleteNotebookRuntimeTemplate( polling_policy(*current), __func__); } +StatusOr +NotebookServiceConnectionImpl::DeleteNotebookRuntimeTemplate( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteNotebookRuntimeTemplateRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteNotebookRuntimeTemplate(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::aiplatform::v1:: + DeleteNotebookRuntimeTemplateRequest const& request) { + return stub_->DeleteNotebookRuntimeTemplate(context, options, request); + }, + *current, request, __func__); +} + +future> +NotebookServiceConnectionImpl::DeleteNotebookRuntimeTemplate( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteNotebookRuntimeTemplate", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::aiplatform::v1::DeleteOperationMetadata>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::cloud::aiplatform::v1::DeleteOperationMetadata>, + polling_policy(*current), __func__); +} + StatusOr NotebookServiceConnectionImpl::UpdateNotebookRuntimeTemplate( google::cloud::aiplatform::v1::UpdateNotebookRuntimeTemplateRequest const& @@ -259,6 +369,61 @@ NotebookServiceConnectionImpl::AssignNotebookRuntime( polling_policy(*current), __func__); } +StatusOr +NotebookServiceConnectionImpl::AssignNotebookRuntime( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::AssignNotebookRuntimeRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->AssignNotebookRuntime(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::aiplatform::v1::AssignNotebookRuntimeRequest const& + request) { + return stub_->AssignNotebookRuntime(context, options, request); + }, + *current, request, __func__); +} + +future> +NotebookServiceConnectionImpl::AssignNotebookRuntime( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to AssignNotebookRuntime", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::aiplatform::v1::NotebookRuntime>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::aiplatform::v1::NotebookRuntime>, + polling_policy(*current), __func__); +} + StatusOr NotebookServiceConnectionImpl::GetNotebookRuntime( google::cloud::aiplatform::v1::GetNotebookRuntimeRequest const& request) { @@ -350,6 +515,61 @@ NotebookServiceConnectionImpl::DeleteNotebookRuntime( polling_policy(*current), __func__); } +StatusOr +NotebookServiceConnectionImpl::DeleteNotebookRuntime( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteNotebookRuntimeRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteNotebookRuntime(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::aiplatform::v1::DeleteNotebookRuntimeRequest const& + request) { + return stub_->DeleteNotebookRuntime(context, options, request); + }, + *current, request, __func__); +} + +future> +NotebookServiceConnectionImpl::DeleteNotebookRuntime( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteNotebookRuntime", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::aiplatform::v1::DeleteOperationMetadata>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::cloud::aiplatform::v1::DeleteOperationMetadata>, + polling_policy(*current), __func__); +} + future> NotebookServiceConnectionImpl::UpgradeNotebookRuntime( google::cloud::aiplatform::v1::UpgradeNotebookRuntimeRequest const& @@ -391,6 +611,61 @@ NotebookServiceConnectionImpl::UpgradeNotebookRuntime( polling_policy(*current), __func__); } +StatusOr +NotebookServiceConnectionImpl::UpgradeNotebookRuntime( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::UpgradeNotebookRuntimeRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UpgradeNotebookRuntime(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::aiplatform::v1::UpgradeNotebookRuntimeRequest const& + request) { + return stub_->UpgradeNotebookRuntime(context, options, request); + }, + *current, request, __func__); +} + +future> +NotebookServiceConnectionImpl::UpgradeNotebookRuntime( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to UpgradeNotebookRuntime", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::aiplatform::v1::UpgradeNotebookRuntimeResponse>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::aiplatform::v1::UpgradeNotebookRuntimeResponse>, + polling_policy(*current), __func__); +} + future> NotebookServiceConnectionImpl::StartNotebookRuntime( google::cloud::aiplatform::v1::StartNotebookRuntimeRequest const& request) { @@ -431,6 +706,60 @@ NotebookServiceConnectionImpl::StartNotebookRuntime( polling_policy(*current), __func__); } +StatusOr +NotebookServiceConnectionImpl::StartNotebookRuntime( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::StartNotebookRuntimeRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->StartNotebookRuntime(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::aiplatform::v1::StartNotebookRuntimeRequest const& + request) { + return stub_->StartNotebookRuntime(context, options, request); + }, + *current, request, __func__); +} + +future> +NotebookServiceConnectionImpl::StartNotebookRuntime( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to StartNotebookRuntime", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::aiplatform::v1::StartNotebookRuntimeResponse>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::aiplatform::v1::StartNotebookRuntimeResponse>, + polling_policy(*current), __func__); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace aiplatform_v1_internal } // namespace cloud diff --git a/google/cloud/aiplatform/v1/internal/notebook_connection_impl.h b/google/cloud/aiplatform/v1/internal/notebook_connection_impl.h index 869f239ae48e4..04d4eb7d3d730 100644 --- a/google/cloud/aiplatform/v1/internal/notebook_connection_impl.h +++ b/google/cloud/aiplatform/v1/internal/notebook_connection_impl.h @@ -57,6 +57,16 @@ class NotebookServiceConnectionImpl google::cloud::aiplatform::v1::CreateNotebookRuntimeTemplateRequest const& request) override; + StatusOr CreateNotebookRuntimeTemplate( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::CreateNotebookRuntimeTemplateRequest const& + request) override; + + future> + CreateNotebookRuntimeTemplate( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetNotebookRuntimeTemplate( google::cloud::aiplatform::v1::GetNotebookRuntimeTemplateRequest const& @@ -72,6 +82,16 @@ class NotebookServiceConnectionImpl google::cloud::aiplatform::v1::DeleteNotebookRuntimeTemplateRequest const& request) override; + StatusOr DeleteNotebookRuntimeTemplate( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteNotebookRuntimeTemplateRequest const& + request) override; + + future> + DeleteNotebookRuntimeTemplate( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr UpdateNotebookRuntimeTemplate( google::cloud::aiplatform::v1::UpdateNotebookRuntimeTemplateRequest const& @@ -82,6 +102,16 @@ class NotebookServiceConnectionImpl google::cloud::aiplatform::v1::AssignNotebookRuntimeRequest const& request) override; + StatusOr AssignNotebookRuntime( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::AssignNotebookRuntimeRequest const& + request) override; + + future> + AssignNotebookRuntime( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetNotebookRuntime( google::cloud::aiplatform::v1::GetNotebookRuntimeRequest const& request) override; @@ -96,17 +126,48 @@ class NotebookServiceConnectionImpl google::cloud::aiplatform::v1::DeleteNotebookRuntimeRequest const& request) override; + StatusOr DeleteNotebookRuntime( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteNotebookRuntimeRequest const& + request) override; + + future> + DeleteNotebookRuntime( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future< StatusOr> UpgradeNotebookRuntime( google::cloud::aiplatform::v1::UpgradeNotebookRuntimeRequest const& request) override; + StatusOr UpgradeNotebookRuntime( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::UpgradeNotebookRuntimeRequest const& + request) override; + + future< + StatusOr> + UpgradeNotebookRuntime( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> StartNotebookRuntime( google::cloud::aiplatform::v1::StartNotebookRuntimeRequest const& request) override; + StatusOr StartNotebookRuntime( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::StartNotebookRuntimeRequest const& request) + override; + + future> + StartNotebookRuntime( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + private: std::unique_ptr background_; std::shared_ptr stub_; diff --git a/google/cloud/aiplatform/v1/internal/notebook_tracing_connection.cc b/google/cloud/aiplatform/v1/internal/notebook_tracing_connection.cc index 57449757b2984..1f065fb6c2057 100644 --- a/google/cloud/aiplatform/v1/internal/notebook_tracing_connection.cc +++ b/google/cloud/aiplatform/v1/internal/notebook_tracing_connection.cc @@ -45,6 +45,32 @@ NotebookServiceTracingConnection::CreateNotebookRuntimeTemplate( child_->CreateNotebookRuntimeTemplate(request)); } +StatusOr +NotebookServiceTracingConnection::CreateNotebookRuntimeTemplate( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::CreateNotebookRuntimeTemplateRequest const& + request) { + auto span = internal::MakeSpan( + "aiplatform_v1::NotebookServiceConnection::" + "CreateNotebookRuntimeTemplate"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->CreateNotebookRuntimeTemplate(ExperimentalTag{}, + NoAwaitTag{}, request)); +} + +future> +NotebookServiceTracingConnection::CreateNotebookRuntimeTemplate( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "aiplatform_v1::NotebookServiceConnection::" + "CreateNotebookRuntimeTemplate"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), + child_->CreateNotebookRuntimeTemplate(ExperimentalTag{}, operation)); +} + StatusOr NotebookServiceTracingConnection::GetNotebookRuntimeTemplate( google::cloud::aiplatform::v1::GetNotebookRuntimeTemplateRequest const& @@ -80,6 +106,32 @@ NotebookServiceTracingConnection::DeleteNotebookRuntimeTemplate( child_->DeleteNotebookRuntimeTemplate(request)); } +StatusOr +NotebookServiceTracingConnection::DeleteNotebookRuntimeTemplate( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteNotebookRuntimeTemplateRequest const& + request) { + auto span = internal::MakeSpan( + "aiplatform_v1::NotebookServiceConnection::" + "DeleteNotebookRuntimeTemplate"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->DeleteNotebookRuntimeTemplate(ExperimentalTag{}, + NoAwaitTag{}, request)); +} + +future> +NotebookServiceTracingConnection::DeleteNotebookRuntimeTemplate( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "aiplatform_v1::NotebookServiceConnection::" + "DeleteNotebookRuntimeTemplate"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), + child_->DeleteNotebookRuntimeTemplate(ExperimentalTag{}, operation)); +} + StatusOr NotebookServiceTracingConnection::UpdateNotebookRuntimeTemplate( google::cloud::aiplatform::v1::UpdateNotebookRuntimeTemplateRequest const& @@ -103,6 +155,29 @@ NotebookServiceTracingConnection::AssignNotebookRuntime( child_->AssignNotebookRuntime(request)); } +StatusOr +NotebookServiceTracingConnection::AssignNotebookRuntime( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::AssignNotebookRuntimeRequest const& + request) { + auto span = internal::MakeSpan( + "aiplatform_v1::NotebookServiceConnection::AssignNotebookRuntime"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->AssignNotebookRuntime(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +NotebookServiceTracingConnection::AssignNotebookRuntime( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "aiplatform_v1::NotebookServiceConnection::AssignNotebookRuntime"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->AssignNotebookRuntime( + ExperimentalTag{}, operation)); +} + StatusOr NotebookServiceTracingConnection::GetNotebookRuntime( google::cloud::aiplatform::v1::GetNotebookRuntimeRequest const& request) { @@ -135,6 +210,29 @@ NotebookServiceTracingConnection::DeleteNotebookRuntime( child_->DeleteNotebookRuntime(request)); } +StatusOr +NotebookServiceTracingConnection::DeleteNotebookRuntime( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteNotebookRuntimeRequest const& + request) { + auto span = internal::MakeSpan( + "aiplatform_v1::NotebookServiceConnection::DeleteNotebookRuntime"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->DeleteNotebookRuntime(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +NotebookServiceTracingConnection::DeleteNotebookRuntime( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "aiplatform_v1::NotebookServiceConnection::DeleteNotebookRuntime"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->DeleteNotebookRuntime( + ExperimentalTag{}, operation)); +} + future> NotebookServiceTracingConnection::UpgradeNotebookRuntime( google::cloud::aiplatform::v1::UpgradeNotebookRuntimeRequest const& @@ -146,6 +244,29 @@ NotebookServiceTracingConnection::UpgradeNotebookRuntime( child_->UpgradeNotebookRuntime(request)); } +StatusOr +NotebookServiceTracingConnection::UpgradeNotebookRuntime( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::UpgradeNotebookRuntimeRequest const& + request) { + auto span = internal::MakeSpan( + "aiplatform_v1::NotebookServiceConnection::UpgradeNotebookRuntime"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->UpgradeNotebookRuntime(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +NotebookServiceTracingConnection::UpgradeNotebookRuntime( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "aiplatform_v1::NotebookServiceConnection::UpgradeNotebookRuntime"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->UpgradeNotebookRuntime( + ExperimentalTag{}, operation)); +} + future> NotebookServiceTracingConnection::StartNotebookRuntime( google::cloud::aiplatform::v1::StartNotebookRuntimeRequest const& request) { @@ -156,6 +277,28 @@ NotebookServiceTracingConnection::StartNotebookRuntime( child_->StartNotebookRuntime(request)); } +StatusOr +NotebookServiceTracingConnection::StartNotebookRuntime( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::StartNotebookRuntimeRequest const& request) { + auto span = internal::MakeSpan( + "aiplatform_v1::NotebookServiceConnection::StartNotebookRuntime"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->StartNotebookRuntime(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +NotebookServiceTracingConnection::StartNotebookRuntime( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "aiplatform_v1::NotebookServiceConnection::StartNotebookRuntime"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->StartNotebookRuntime( + ExperimentalTag{}, operation)); +} + #endif // GOOGLE_CLOUD_CPP_HAVE_OPENTELEMETRY std::shared_ptr diff --git a/google/cloud/aiplatform/v1/internal/notebook_tracing_connection.h b/google/cloud/aiplatform/v1/internal/notebook_tracing_connection.h index ea06bfdb96022..8a545209d63a8 100644 --- a/google/cloud/aiplatform/v1/internal/notebook_tracing_connection.h +++ b/google/cloud/aiplatform/v1/internal/notebook_tracing_connection.h @@ -45,6 +45,16 @@ class NotebookServiceTracingConnection google::cloud::aiplatform::v1::CreateNotebookRuntimeTemplateRequest const& request) override; + StatusOr CreateNotebookRuntimeTemplate( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::CreateNotebookRuntimeTemplateRequest const& + request) override; + + future> + CreateNotebookRuntimeTemplate( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetNotebookRuntimeTemplate( google::cloud::aiplatform::v1::GetNotebookRuntimeTemplateRequest const& @@ -60,6 +70,16 @@ class NotebookServiceTracingConnection google::cloud::aiplatform::v1::DeleteNotebookRuntimeTemplateRequest const& request) override; + StatusOr DeleteNotebookRuntimeTemplate( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteNotebookRuntimeTemplateRequest const& + request) override; + + future> + DeleteNotebookRuntimeTemplate( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr UpdateNotebookRuntimeTemplate( google::cloud::aiplatform::v1::UpdateNotebookRuntimeTemplateRequest const& @@ -70,6 +90,16 @@ class NotebookServiceTracingConnection google::cloud::aiplatform::v1::AssignNotebookRuntimeRequest const& request) override; + StatusOr AssignNotebookRuntime( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::AssignNotebookRuntimeRequest const& + request) override; + + future> + AssignNotebookRuntime( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetNotebookRuntime( google::cloud::aiplatform::v1::GetNotebookRuntimeRequest const& request) override; @@ -84,17 +114,48 @@ class NotebookServiceTracingConnection google::cloud::aiplatform::v1::DeleteNotebookRuntimeRequest const& request) override; + StatusOr DeleteNotebookRuntime( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteNotebookRuntimeRequest const& + request) override; + + future> + DeleteNotebookRuntime( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future< StatusOr> UpgradeNotebookRuntime( google::cloud::aiplatform::v1::UpgradeNotebookRuntimeRequest const& request) override; + StatusOr UpgradeNotebookRuntime( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::UpgradeNotebookRuntimeRequest const& + request) override; + + future< + StatusOr> + UpgradeNotebookRuntime( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> StartNotebookRuntime( google::cloud::aiplatform::v1::StartNotebookRuntimeRequest const& request) override; + StatusOr StartNotebookRuntime( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::StartNotebookRuntimeRequest const& request) + override; + + future> + StartNotebookRuntime( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + private: std::shared_ptr child_; }; diff --git a/google/cloud/aiplatform/v1/internal/persistent_resource_connection_impl.cc b/google/cloud/aiplatform/v1/internal/persistent_resource_connection_impl.cc index 85529bba5d075..8046159876111 100644 --- a/google/cloud/aiplatform/v1/internal/persistent_resource_connection_impl.cc +++ b/google/cloud/aiplatform/v1/internal/persistent_resource_connection_impl.cc @@ -116,6 +116,62 @@ PersistentResourceServiceConnectionImpl::CreatePersistentResource( polling_policy(*current), __func__); } +StatusOr +PersistentResourceServiceConnectionImpl::CreatePersistentResource( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::CreatePersistentResourceRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreatePersistentResource(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::aiplatform::v1::CreatePersistentResourceRequest const& + request) { + return stub_->CreatePersistentResource(context, options, request); + }, + *current, request, __func__); +} + +future> +PersistentResourceServiceConnectionImpl::CreatePersistentResource( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to CreatePersistentResource", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::aiplatform::v1::PersistentResource>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::aiplatform::v1::PersistentResource>, + polling_policy(*current), __func__); +} + StatusOr PersistentResourceServiceConnectionImpl::GetPersistentResource( google::cloud::aiplatform::v1::GetPersistentResourceRequest const& @@ -210,6 +266,62 @@ PersistentResourceServiceConnectionImpl::DeletePersistentResource( polling_policy(*current), __func__); } +StatusOr +PersistentResourceServiceConnectionImpl::DeletePersistentResource( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeletePersistentResourceRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeletePersistentResource(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::aiplatform::v1::DeletePersistentResourceRequest const& + request) { + return stub_->DeletePersistentResource(context, options, request); + }, + *current, request, __func__); +} + +future> +PersistentResourceServiceConnectionImpl::DeletePersistentResource( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DeletePersistentResource", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::aiplatform::v1::DeleteOperationMetadata>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::cloud::aiplatform::v1::DeleteOperationMetadata>, + polling_policy(*current), __func__); +} + future> PersistentResourceServiceConnectionImpl::UpdatePersistentResource( google::cloud::aiplatform::v1::UpdatePersistentResourceRequest const& @@ -251,6 +363,62 @@ PersistentResourceServiceConnectionImpl::UpdatePersistentResource( polling_policy(*current), __func__); } +StatusOr +PersistentResourceServiceConnectionImpl::UpdatePersistentResource( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::UpdatePersistentResourceRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UpdatePersistentResource(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::aiplatform::v1::UpdatePersistentResourceRequest const& + request) { + return stub_->UpdatePersistentResource(context, options, request); + }, + *current, request, __func__); +} + +future> +PersistentResourceServiceConnectionImpl::UpdatePersistentResource( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to UpdatePersistentResource", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::aiplatform::v1::PersistentResource>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::aiplatform::v1::PersistentResource>, + polling_policy(*current), __func__); +} + future> PersistentResourceServiceConnectionImpl::RebootPersistentResource( google::cloud::aiplatform::v1::RebootPersistentResourceRequest const& @@ -292,6 +460,62 @@ PersistentResourceServiceConnectionImpl::RebootPersistentResource( polling_policy(*current), __func__); } +StatusOr +PersistentResourceServiceConnectionImpl::RebootPersistentResource( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::RebootPersistentResourceRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->RebootPersistentResource(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::aiplatform::v1::RebootPersistentResourceRequest const& + request) { + return stub_->RebootPersistentResource(context, options, request); + }, + *current, request, __func__); +} + +future> +PersistentResourceServiceConnectionImpl::RebootPersistentResource( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to RebootPersistentResource", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::aiplatform::v1::PersistentResource>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::aiplatform::v1::PersistentResource>, + polling_policy(*current), __func__); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace aiplatform_v1_internal } // namespace cloud diff --git a/google/cloud/aiplatform/v1/internal/persistent_resource_connection_impl.h b/google/cloud/aiplatform/v1/internal/persistent_resource_connection_impl.h index f56d56ab2de0b..ec170580d4d91 100644 --- a/google/cloud/aiplatform/v1/internal/persistent_resource_connection_impl.h +++ b/google/cloud/aiplatform/v1/internal/persistent_resource_connection_impl.h @@ -58,6 +58,16 @@ class PersistentResourceServiceConnectionImpl google::cloud::aiplatform::v1::CreatePersistentResourceRequest const& request) override; + StatusOr CreatePersistentResource( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::CreatePersistentResourceRequest const& + request) override; + + future> + CreatePersistentResource( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetPersistentResource( google::cloud::aiplatform::v1::GetPersistentResourceRequest const& @@ -73,16 +83,46 @@ class PersistentResourceServiceConnectionImpl google::cloud::aiplatform::v1::DeletePersistentResourceRequest const& request) override; + StatusOr DeletePersistentResource( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeletePersistentResourceRequest const& + request) override; + + future> + DeletePersistentResource( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdatePersistentResource( google::cloud::aiplatform::v1::UpdatePersistentResourceRequest const& request) override; + StatusOr UpdatePersistentResource( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::UpdatePersistentResourceRequest const& + request) override; + + future> + UpdatePersistentResource( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> RebootPersistentResource( google::cloud::aiplatform::v1::RebootPersistentResourceRequest const& request) override; + StatusOr RebootPersistentResource( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::RebootPersistentResourceRequest const& + request) override; + + future> + RebootPersistentResource( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + private: std::unique_ptr background_; std::shared_ptr stub_; diff --git a/google/cloud/aiplatform/v1/internal/persistent_resource_tracing_connection.cc b/google/cloud/aiplatform/v1/internal/persistent_resource_tracing_connection.cc index 49c86fd419221..1babba5d2688f 100644 --- a/google/cloud/aiplatform/v1/internal/persistent_resource_tracing_connection.cc +++ b/google/cloud/aiplatform/v1/internal/persistent_resource_tracing_connection.cc @@ -47,6 +47,31 @@ PersistentResourceServiceTracingConnection::CreatePersistentResource( child_->CreatePersistentResource(request)); } +StatusOr +PersistentResourceServiceTracingConnection::CreatePersistentResource( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::CreatePersistentResourceRequest const& + request) { + auto span = internal::MakeSpan( + "aiplatform_v1::PersistentResourceServiceConnection::" + "CreatePersistentResource"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->CreatePersistentResource(ExperimentalTag{}, NoAwaitTag{}, + request)); +} + +future> +PersistentResourceServiceTracingConnection::CreatePersistentResource( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "aiplatform_v1::PersistentResourceServiceConnection::" + "CreatePersistentResource"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->CreatePersistentResource( + ExperimentalTag{}, operation)); +} + StatusOr PersistentResourceServiceTracingConnection::GetPersistentResource( google::cloud::aiplatform::v1::GetPersistentResourceRequest const& @@ -83,6 +108,31 @@ PersistentResourceServiceTracingConnection::DeletePersistentResource( child_->DeletePersistentResource(request)); } +StatusOr +PersistentResourceServiceTracingConnection::DeletePersistentResource( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeletePersistentResourceRequest const& + request) { + auto span = internal::MakeSpan( + "aiplatform_v1::PersistentResourceServiceConnection::" + "DeletePersistentResource"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->DeletePersistentResource(ExperimentalTag{}, NoAwaitTag{}, + request)); +} + +future> +PersistentResourceServiceTracingConnection::DeletePersistentResource( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "aiplatform_v1::PersistentResourceServiceConnection::" + "DeletePersistentResource"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->DeletePersistentResource( + ExperimentalTag{}, operation)); +} + future> PersistentResourceServiceTracingConnection::UpdatePersistentResource( google::cloud::aiplatform::v1::UpdatePersistentResourceRequest const& @@ -95,6 +145,31 @@ PersistentResourceServiceTracingConnection::UpdatePersistentResource( child_->UpdatePersistentResource(request)); } +StatusOr +PersistentResourceServiceTracingConnection::UpdatePersistentResource( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::UpdatePersistentResourceRequest const& + request) { + auto span = internal::MakeSpan( + "aiplatform_v1::PersistentResourceServiceConnection::" + "UpdatePersistentResource"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->UpdatePersistentResource(ExperimentalTag{}, NoAwaitTag{}, + request)); +} + +future> +PersistentResourceServiceTracingConnection::UpdatePersistentResource( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "aiplatform_v1::PersistentResourceServiceConnection::" + "UpdatePersistentResource"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->UpdatePersistentResource( + ExperimentalTag{}, operation)); +} + future> PersistentResourceServiceTracingConnection::RebootPersistentResource( google::cloud::aiplatform::v1::RebootPersistentResourceRequest const& @@ -107,6 +182,31 @@ PersistentResourceServiceTracingConnection::RebootPersistentResource( child_->RebootPersistentResource(request)); } +StatusOr +PersistentResourceServiceTracingConnection::RebootPersistentResource( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::RebootPersistentResourceRequest const& + request) { + auto span = internal::MakeSpan( + "aiplatform_v1::PersistentResourceServiceConnection::" + "RebootPersistentResource"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->RebootPersistentResource(ExperimentalTag{}, NoAwaitTag{}, + request)); +} + +future> +PersistentResourceServiceTracingConnection::RebootPersistentResource( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "aiplatform_v1::PersistentResourceServiceConnection::" + "RebootPersistentResource"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->RebootPersistentResource( + ExperimentalTag{}, operation)); +} + #endif // GOOGLE_CLOUD_CPP_HAVE_OPENTELEMETRY std::shared_ptr diff --git a/google/cloud/aiplatform/v1/internal/persistent_resource_tracing_connection.h b/google/cloud/aiplatform/v1/internal/persistent_resource_tracing_connection.h index a5fef5788ca45..6a7991b4a8c37 100644 --- a/google/cloud/aiplatform/v1/internal/persistent_resource_tracing_connection.h +++ b/google/cloud/aiplatform/v1/internal/persistent_resource_tracing_connection.h @@ -46,6 +46,16 @@ class PersistentResourceServiceTracingConnection google::cloud::aiplatform::v1::CreatePersistentResourceRequest const& request) override; + StatusOr CreatePersistentResource( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::CreatePersistentResourceRequest const& + request) override; + + future> + CreatePersistentResource( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetPersistentResource( google::cloud::aiplatform::v1::GetPersistentResourceRequest const& @@ -61,16 +71,46 @@ class PersistentResourceServiceTracingConnection google::cloud::aiplatform::v1::DeletePersistentResourceRequest const& request) override; + StatusOr DeletePersistentResource( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeletePersistentResourceRequest const& + request) override; + + future> + DeletePersistentResource( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdatePersistentResource( google::cloud::aiplatform::v1::UpdatePersistentResourceRequest const& request) override; + StatusOr UpdatePersistentResource( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::UpdatePersistentResourceRequest const& + request) override; + + future> + UpdatePersistentResource( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> RebootPersistentResource( google::cloud::aiplatform::v1::RebootPersistentResourceRequest const& request) override; + StatusOr RebootPersistentResource( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::RebootPersistentResourceRequest const& + request) override; + + future> + RebootPersistentResource( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + private: std::shared_ptr child_; }; diff --git a/google/cloud/aiplatform/v1/internal/pipeline_connection_impl.cc b/google/cloud/aiplatform/v1/internal/pipeline_connection_impl.cc index 4cc8105e97275..0aaa7d0433bc3 100644 --- a/google/cloud/aiplatform/v1/internal/pipeline_connection_impl.cc +++ b/google/cloud/aiplatform/v1/internal/pipeline_connection_impl.cc @@ -175,6 +175,61 @@ PipelineServiceConnectionImpl::DeleteTrainingPipeline( polling_policy(*current), __func__); } +StatusOr +PipelineServiceConnectionImpl::DeleteTrainingPipeline( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteTrainingPipelineRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteTrainingPipeline(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::aiplatform::v1::DeleteTrainingPipelineRequest const& + request) { + return stub_->DeleteTrainingPipeline(context, options, request); + }, + *current, request, __func__); +} + +future> +PipelineServiceConnectionImpl::DeleteTrainingPipeline( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteTrainingPipeline", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::aiplatform::v1::DeleteOperationMetadata>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::cloud::aiplatform::v1::DeleteOperationMetadata>, + polling_policy(*current), __func__); +} + Status PipelineServiceConnectionImpl::CancelTrainingPipeline( google::cloud::aiplatform::v1::CancelTrainingPipelineRequest const& request) { @@ -294,6 +349,60 @@ PipelineServiceConnectionImpl::DeletePipelineJob( polling_policy(*current), __func__); } +StatusOr +PipelineServiceConnectionImpl::DeletePipelineJob( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeletePipelineJobRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeletePipelineJob(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::aiplatform::v1::DeletePipelineJobRequest const& + request) { + return stub_->DeletePipelineJob(context, options, request); + }, + *current, request, __func__); +} + +future> +PipelineServiceConnectionImpl::DeletePipelineJob( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DeletePipelineJob", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::aiplatform::v1::DeleteOperationMetadata>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::cloud::aiplatform::v1::DeleteOperationMetadata>, + polling_policy(*current), __func__); +} + future> PipelineServiceConnectionImpl::BatchDeletePipelineJobs( google::cloud::aiplatform::v1::BatchDeletePipelineJobsRequest const& @@ -335,6 +444,62 @@ PipelineServiceConnectionImpl::BatchDeletePipelineJobs( polling_policy(*current), __func__); } +StatusOr +PipelineServiceConnectionImpl::BatchDeletePipelineJobs( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::BatchDeletePipelineJobsRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->BatchDeletePipelineJobs(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::aiplatform::v1::BatchDeletePipelineJobsRequest const& + request) { + return stub_->BatchDeletePipelineJobs(context, options, request); + }, + *current, request, __func__); +} + +future> +PipelineServiceConnectionImpl::BatchDeletePipelineJobs( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to BatchDeletePipelineJobs", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::aiplatform::v1::BatchDeletePipelineJobsResponse>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::aiplatform::v1::BatchDeletePipelineJobsResponse>, + polling_policy(*current), __func__); +} + Status PipelineServiceConnectionImpl::CancelPipelineJob( google::cloud::aiplatform::v1::CancelPipelineJobRequest const& request) { auto current = google::cloud::internal::SaveCurrentOptions(); @@ -390,6 +555,62 @@ PipelineServiceConnectionImpl::BatchCancelPipelineJobs( polling_policy(*current), __func__); } +StatusOr +PipelineServiceConnectionImpl::BatchCancelPipelineJobs( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::BatchCancelPipelineJobsRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->BatchCancelPipelineJobs(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::aiplatform::v1::BatchCancelPipelineJobsRequest const& + request) { + return stub_->BatchCancelPipelineJobs(context, options, request); + }, + *current, request, __func__); +} + +future> +PipelineServiceConnectionImpl::BatchCancelPipelineJobs( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to BatchCancelPipelineJobs", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::aiplatform::v1::BatchCancelPipelineJobsResponse>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::aiplatform::v1::BatchCancelPipelineJobsResponse>, + polling_policy(*current), __func__); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace aiplatform_v1_internal } // namespace cloud diff --git a/google/cloud/aiplatform/v1/internal/pipeline_connection_impl.h b/google/cloud/aiplatform/v1/internal/pipeline_connection_impl.h index 83641f1bde87f..c07663716bd76 100644 --- a/google/cloud/aiplatform/v1/internal/pipeline_connection_impl.h +++ b/google/cloud/aiplatform/v1/internal/pipeline_connection_impl.h @@ -71,6 +71,16 @@ class PipelineServiceConnectionImpl google::cloud::aiplatform::v1::DeleteTrainingPipelineRequest const& request) override; + StatusOr DeleteTrainingPipeline( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteTrainingPipelineRequest const& + request) override; + + future> + DeleteTrainingPipeline( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + Status CancelTrainingPipeline( google::cloud::aiplatform::v1::CancelTrainingPipelineRequest const& request) override; @@ -91,12 +101,32 @@ class PipelineServiceConnectionImpl google::cloud::aiplatform::v1::DeletePipelineJobRequest const& request) override; + StatusOr DeletePipelineJob( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeletePipelineJobRequest const& request) + override; + + future> + DeletePipelineJob(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future< StatusOr> BatchDeletePipelineJobs( google::cloud::aiplatform::v1::BatchDeletePipelineJobsRequest const& request) override; + StatusOr BatchDeletePipelineJobs( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::BatchDeletePipelineJobsRequest const& + request) override; + + future< + StatusOr> + BatchDeletePipelineJobs( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + Status CancelPipelineJob( google::cloud::aiplatform::v1::CancelPipelineJobRequest const& request) override; @@ -107,6 +137,17 @@ class PipelineServiceConnectionImpl google::cloud::aiplatform::v1::BatchCancelPipelineJobsRequest const& request) override; + StatusOr BatchCancelPipelineJobs( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::BatchCancelPipelineJobsRequest const& + request) override; + + future< + StatusOr> + BatchCancelPipelineJobs( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + private: std::unique_ptr background_; std::shared_ptr stub_; diff --git a/google/cloud/aiplatform/v1/internal/pipeline_tracing_connection.cc b/google/cloud/aiplatform/v1/internal/pipeline_tracing_connection.cc index 37c232d2ca470..1223bf158fb40 100644 --- a/google/cloud/aiplatform/v1/internal/pipeline_tracing_connection.cc +++ b/google/cloud/aiplatform/v1/internal/pipeline_tracing_connection.cc @@ -75,6 +75,29 @@ PipelineServiceTracingConnection::DeleteTrainingPipeline( child_->DeleteTrainingPipeline(request)); } +StatusOr +PipelineServiceTracingConnection::DeleteTrainingPipeline( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteTrainingPipelineRequest const& + request) { + auto span = internal::MakeSpan( + "aiplatform_v1::PipelineServiceConnection::DeleteTrainingPipeline"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->DeleteTrainingPipeline(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +PipelineServiceTracingConnection::DeleteTrainingPipeline( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "aiplatform_v1::PipelineServiceConnection::DeleteTrainingPipeline"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->DeleteTrainingPipeline( + ExperimentalTag{}, operation)); +} + Status PipelineServiceTracingConnection::CancelTrainingPipeline( google::cloud::aiplatform::v1::CancelTrainingPipelineRequest const& request) { @@ -123,6 +146,28 @@ PipelineServiceTracingConnection::DeletePipelineJob( return internal::EndSpan(std::move(span), child_->DeletePipelineJob(request)); } +StatusOr +PipelineServiceTracingConnection::DeletePipelineJob( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeletePipelineJobRequest const& request) { + auto span = internal::MakeSpan( + "aiplatform_v1::PipelineServiceConnection::DeletePipelineJob"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->DeletePipelineJob(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +PipelineServiceTracingConnection::DeletePipelineJob( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "aiplatform_v1::PipelineServiceConnection::DeletePipelineJob"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->DeletePipelineJob(ExperimentalTag{}, operation)); +} + future> PipelineServiceTracingConnection::BatchDeletePipelineJobs( google::cloud::aiplatform::v1::BatchDeletePipelineJobsRequest const& @@ -134,6 +179,29 @@ PipelineServiceTracingConnection::BatchDeletePipelineJobs( child_->BatchDeletePipelineJobs(request)); } +StatusOr +PipelineServiceTracingConnection::BatchDeletePipelineJobs( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::BatchDeletePipelineJobsRequest const& + request) { + auto span = internal::MakeSpan( + "aiplatform_v1::PipelineServiceConnection::BatchDeletePipelineJobs"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->BatchDeletePipelineJobs(ExperimentalTag{}, NoAwaitTag{}, + request)); +} + +future> +PipelineServiceTracingConnection::BatchDeletePipelineJobs( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "aiplatform_v1::PipelineServiceConnection::BatchDeletePipelineJobs"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->BatchDeletePipelineJobs( + ExperimentalTag{}, operation)); +} + Status PipelineServiceTracingConnection::CancelPipelineJob( google::cloud::aiplatform::v1::CancelPipelineJobRequest const& request) { auto span = internal::MakeSpan( @@ -153,6 +221,29 @@ PipelineServiceTracingConnection::BatchCancelPipelineJobs( child_->BatchCancelPipelineJobs(request)); } +StatusOr +PipelineServiceTracingConnection::BatchCancelPipelineJobs( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::BatchCancelPipelineJobsRequest const& + request) { + auto span = internal::MakeSpan( + "aiplatform_v1::PipelineServiceConnection::BatchCancelPipelineJobs"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->BatchCancelPipelineJobs(ExperimentalTag{}, NoAwaitTag{}, + request)); +} + +future> +PipelineServiceTracingConnection::BatchCancelPipelineJobs( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "aiplatform_v1::PipelineServiceConnection::BatchCancelPipelineJobs"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->BatchCancelPipelineJobs( + ExperimentalTag{}, operation)); +} + #endif // GOOGLE_CLOUD_CPP_HAVE_OPENTELEMETRY std::shared_ptr diff --git a/google/cloud/aiplatform/v1/internal/pipeline_tracing_connection.h b/google/cloud/aiplatform/v1/internal/pipeline_tracing_connection.h index e26eab7356eb3..be8c3ce8382a4 100644 --- a/google/cloud/aiplatform/v1/internal/pipeline_tracing_connection.h +++ b/google/cloud/aiplatform/v1/internal/pipeline_tracing_connection.h @@ -59,6 +59,16 @@ class PipelineServiceTracingConnection google::cloud::aiplatform::v1::DeleteTrainingPipelineRequest const& request) override; + StatusOr DeleteTrainingPipeline( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteTrainingPipelineRequest const& + request) override; + + future> + DeleteTrainingPipeline( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + Status CancelTrainingPipeline( google::cloud::aiplatform::v1::CancelTrainingPipelineRequest const& request) override; @@ -79,12 +89,32 @@ class PipelineServiceTracingConnection google::cloud::aiplatform::v1::DeletePipelineJobRequest const& request) override; + StatusOr DeletePipelineJob( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeletePipelineJobRequest const& request) + override; + + future> + DeletePipelineJob(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future< StatusOr> BatchDeletePipelineJobs( google::cloud::aiplatform::v1::BatchDeletePipelineJobsRequest const& request) override; + StatusOr BatchDeletePipelineJobs( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::BatchDeletePipelineJobsRequest const& + request) override; + + future< + StatusOr> + BatchDeletePipelineJobs( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + Status CancelPipelineJob( google::cloud::aiplatform::v1::CancelPipelineJobRequest const& request) override; @@ -95,6 +125,17 @@ class PipelineServiceTracingConnection google::cloud::aiplatform::v1::BatchCancelPipelineJobsRequest const& request) override; + StatusOr BatchCancelPipelineJobs( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::BatchCancelPipelineJobsRequest const& + request) override; + + future< + StatusOr> + BatchCancelPipelineJobs( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + private: std::shared_ptr child_; }; diff --git a/google/cloud/aiplatform/v1/internal/schedule_connection_impl.cc b/google/cloud/aiplatform/v1/internal/schedule_connection_impl.cc index 4697b0d2fc078..646c755dbd123 100644 --- a/google/cloud/aiplatform/v1/internal/schedule_connection_impl.cc +++ b/google/cloud/aiplatform/v1/internal/schedule_connection_impl.cc @@ -121,6 +121,60 @@ ScheduleServiceConnectionImpl::DeleteSchedule( polling_policy(*current), __func__); } +StatusOr +ScheduleServiceConnectionImpl::DeleteSchedule( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteScheduleRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteSchedule(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::aiplatform::v1::DeleteScheduleRequest const& request) { + return stub_->DeleteSchedule(context, options, request); + }, + *current, request, __func__); +} + +future> +ScheduleServiceConnectionImpl::DeleteSchedule( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteSchedule", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::aiplatform::v1::DeleteOperationMetadata>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::cloud::aiplatform::v1::DeleteOperationMetadata>, + polling_policy(*current), __func__); +} + StatusOr ScheduleServiceConnectionImpl::GetSchedule( google::cloud::aiplatform::v1::GetScheduleRequest const& request) { diff --git a/google/cloud/aiplatform/v1/internal/schedule_connection_impl.h b/google/cloud/aiplatform/v1/internal/schedule_connection_impl.h index 01b5c0fbc4f1a..865a62653ad38 100644 --- a/google/cloud/aiplatform/v1/internal/schedule_connection_impl.h +++ b/google/cloud/aiplatform/v1/internal/schedule_connection_impl.h @@ -60,6 +60,15 @@ class ScheduleServiceConnectionImpl DeleteSchedule(google::cloud::aiplatform::v1::DeleteScheduleRequest const& request) override; + StatusOr DeleteSchedule( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteScheduleRequest const& request) + override; + + future> + DeleteSchedule(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetSchedule( google::cloud::aiplatform::v1::GetScheduleRequest const& request) override; diff --git a/google/cloud/aiplatform/v1/internal/schedule_tracing_connection.cc b/google/cloud/aiplatform/v1/internal/schedule_tracing_connection.cc index 636bb550d6db5..acc6aac6794f1 100644 --- a/google/cloud/aiplatform/v1/internal/schedule_tracing_connection.cc +++ b/google/cloud/aiplatform/v1/internal/schedule_tracing_connection.cc @@ -51,6 +51,27 @@ ScheduleServiceTracingConnection::DeleteSchedule( return internal::EndSpan(std::move(span), child_->DeleteSchedule(request)); } +StatusOr +ScheduleServiceTracingConnection::DeleteSchedule( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteScheduleRequest const& request) { + auto span = internal::MakeSpan( + "aiplatform_v1::ScheduleServiceConnection::DeleteSchedule"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->DeleteSchedule(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +ScheduleServiceTracingConnection::DeleteSchedule( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "aiplatform_v1::ScheduleServiceConnection::DeleteSchedule"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->DeleteSchedule(ExperimentalTag{}, operation)); +} + StatusOr ScheduleServiceTracingConnection::GetSchedule( google::cloud::aiplatform::v1::GetScheduleRequest const& request) { diff --git a/google/cloud/aiplatform/v1/internal/schedule_tracing_connection.h b/google/cloud/aiplatform/v1/internal/schedule_tracing_connection.h index 701afb770c8b2..2b683a0d903bc 100644 --- a/google/cloud/aiplatform/v1/internal/schedule_tracing_connection.h +++ b/google/cloud/aiplatform/v1/internal/schedule_tracing_connection.h @@ -48,6 +48,15 @@ class ScheduleServiceTracingConnection DeleteSchedule(google::cloud::aiplatform::v1::DeleteScheduleRequest const& request) override; + StatusOr DeleteSchedule( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteScheduleRequest const& request) + override; + + future> + DeleteSchedule(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetSchedule( google::cloud::aiplatform::v1::GetScheduleRequest const& request) override; diff --git a/google/cloud/aiplatform/v1/internal/specialist_pool_connection_impl.cc b/google/cloud/aiplatform/v1/internal/specialist_pool_connection_impl.cc index b436ba6741b6c..8d30a45ad6534 100644 --- a/google/cloud/aiplatform/v1/internal/specialist_pool_connection_impl.cc +++ b/google/cloud/aiplatform/v1/internal/specialist_pool_connection_impl.cc @@ -108,6 +108,60 @@ SpecialistPoolServiceConnectionImpl::CreateSpecialistPool( polling_policy(*current), __func__); } +StatusOr +SpecialistPoolServiceConnectionImpl::CreateSpecialistPool( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::CreateSpecialistPoolRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateSpecialistPool(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::aiplatform::v1::CreateSpecialistPoolRequest const& + request) { + return stub_->CreateSpecialistPool(context, options, request); + }, + *current, request, __func__); +} + +future> +SpecialistPoolServiceConnectionImpl::CreateSpecialistPool( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to CreateSpecialistPool", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::aiplatform::v1::SpecialistPool>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::aiplatform::v1::SpecialistPool>, + polling_policy(*current), __func__); +} + StatusOr SpecialistPoolServiceConnectionImpl::GetSpecialistPool( google::cloud::aiplatform::v1::GetSpecialistPoolRequest const& request) { @@ -198,6 +252,60 @@ SpecialistPoolServiceConnectionImpl::DeleteSpecialistPool( polling_policy(*current), __func__); } +StatusOr +SpecialistPoolServiceConnectionImpl::DeleteSpecialistPool( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteSpecialistPoolRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteSpecialistPool(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::aiplatform::v1::DeleteSpecialistPoolRequest const& + request) { + return stub_->DeleteSpecialistPool(context, options, request); + }, + *current, request, __func__); +} + +future> +SpecialistPoolServiceConnectionImpl::DeleteSpecialistPool( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteSpecialistPool", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::aiplatform::v1::DeleteOperationMetadata>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::cloud::aiplatform::v1::DeleteOperationMetadata>, + polling_policy(*current), __func__); +} + future> SpecialistPoolServiceConnectionImpl::UpdateSpecialistPool( google::cloud::aiplatform::v1::UpdateSpecialistPoolRequest const& request) { @@ -238,6 +346,60 @@ SpecialistPoolServiceConnectionImpl::UpdateSpecialistPool( polling_policy(*current), __func__); } +StatusOr +SpecialistPoolServiceConnectionImpl::UpdateSpecialistPool( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::UpdateSpecialistPoolRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UpdateSpecialistPool(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::aiplatform::v1::UpdateSpecialistPoolRequest const& + request) { + return stub_->UpdateSpecialistPool(context, options, request); + }, + *current, request, __func__); +} + +future> +SpecialistPoolServiceConnectionImpl::UpdateSpecialistPool( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to UpdateSpecialistPool", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::aiplatform::v1::SpecialistPool>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::aiplatform::v1::SpecialistPool>, + polling_policy(*current), __func__); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace aiplatform_v1_internal } // namespace cloud diff --git a/google/cloud/aiplatform/v1/internal/specialist_pool_connection_impl.h b/google/cloud/aiplatform/v1/internal/specialist_pool_connection_impl.h index 281e990b9220e..856745db9c6fc 100644 --- a/google/cloud/aiplatform/v1/internal/specialist_pool_connection_impl.h +++ b/google/cloud/aiplatform/v1/internal/specialist_pool_connection_impl.h @@ -57,6 +57,16 @@ class SpecialistPoolServiceConnectionImpl google::cloud::aiplatform::v1::CreateSpecialistPoolRequest const& request) override; + StatusOr CreateSpecialistPool( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::CreateSpecialistPoolRequest const& request) + override; + + future> + CreateSpecialistPool( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetSpecialistPool( google::cloud::aiplatform::v1::GetSpecialistPoolRequest const& request) override; @@ -70,11 +80,31 @@ class SpecialistPoolServiceConnectionImpl google::cloud::aiplatform::v1::DeleteSpecialistPoolRequest const& request) override; + StatusOr DeleteSpecialistPool( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteSpecialistPoolRequest const& request) + override; + + future> + DeleteSpecialistPool( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateSpecialistPool( google::cloud::aiplatform::v1::UpdateSpecialistPoolRequest const& request) override; + StatusOr UpdateSpecialistPool( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::UpdateSpecialistPoolRequest const& request) + override; + + future> + UpdateSpecialistPool( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + private: std::unique_ptr background_; std::shared_ptr stub_; diff --git a/google/cloud/aiplatform/v1/internal/specialist_pool_tracing_connection.cc b/google/cloud/aiplatform/v1/internal/specialist_pool_tracing_connection.cc index 9c54a79952ae4..1e218933590a9 100644 --- a/google/cloud/aiplatform/v1/internal/specialist_pool_tracing_connection.cc +++ b/google/cloud/aiplatform/v1/internal/specialist_pool_tracing_connection.cc @@ -43,6 +43,28 @@ SpecialistPoolServiceTracingConnection::CreateSpecialistPool( child_->CreateSpecialistPool(request)); } +StatusOr +SpecialistPoolServiceTracingConnection::CreateSpecialistPool( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::CreateSpecialistPoolRequest const& request) { + auto span = internal::MakeSpan( + "aiplatform_v1::SpecialistPoolServiceConnection::CreateSpecialistPool"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->CreateSpecialistPool(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +SpecialistPoolServiceTracingConnection::CreateSpecialistPool( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "aiplatform_v1::SpecialistPoolServiceConnection::CreateSpecialistPool"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->CreateSpecialistPool( + ExperimentalTag{}, operation)); +} + StatusOr SpecialistPoolServiceTracingConnection::GetSpecialistPool( google::cloud::aiplatform::v1::GetSpecialistPoolRequest const& request) { @@ -74,6 +96,28 @@ SpecialistPoolServiceTracingConnection::DeleteSpecialistPool( child_->DeleteSpecialistPool(request)); } +StatusOr +SpecialistPoolServiceTracingConnection::DeleteSpecialistPool( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteSpecialistPoolRequest const& request) { + auto span = internal::MakeSpan( + "aiplatform_v1::SpecialistPoolServiceConnection::DeleteSpecialistPool"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->DeleteSpecialistPool(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +SpecialistPoolServiceTracingConnection::DeleteSpecialistPool( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "aiplatform_v1::SpecialistPoolServiceConnection::DeleteSpecialistPool"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->DeleteSpecialistPool( + ExperimentalTag{}, operation)); +} + future> SpecialistPoolServiceTracingConnection::UpdateSpecialistPool( google::cloud::aiplatform::v1::UpdateSpecialistPoolRequest const& request) { @@ -84,6 +128,28 @@ SpecialistPoolServiceTracingConnection::UpdateSpecialistPool( child_->UpdateSpecialistPool(request)); } +StatusOr +SpecialistPoolServiceTracingConnection::UpdateSpecialistPool( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::UpdateSpecialistPoolRequest const& request) { + auto span = internal::MakeSpan( + "aiplatform_v1::SpecialistPoolServiceConnection::UpdateSpecialistPool"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->UpdateSpecialistPool(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +SpecialistPoolServiceTracingConnection::UpdateSpecialistPool( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "aiplatform_v1::SpecialistPoolServiceConnection::UpdateSpecialistPool"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->UpdateSpecialistPool( + ExperimentalTag{}, operation)); +} + #endif // GOOGLE_CLOUD_CPP_HAVE_OPENTELEMETRY std::shared_ptr diff --git a/google/cloud/aiplatform/v1/internal/specialist_pool_tracing_connection.h b/google/cloud/aiplatform/v1/internal/specialist_pool_tracing_connection.h index e00dbe7763090..e160f0a9304e6 100644 --- a/google/cloud/aiplatform/v1/internal/specialist_pool_tracing_connection.h +++ b/google/cloud/aiplatform/v1/internal/specialist_pool_tracing_connection.h @@ -45,6 +45,16 @@ class SpecialistPoolServiceTracingConnection google::cloud::aiplatform::v1::CreateSpecialistPoolRequest const& request) override; + StatusOr CreateSpecialistPool( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::CreateSpecialistPoolRequest const& request) + override; + + future> + CreateSpecialistPool( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetSpecialistPool( google::cloud::aiplatform::v1::GetSpecialistPoolRequest const& request) override; @@ -58,11 +68,31 @@ class SpecialistPoolServiceTracingConnection google::cloud::aiplatform::v1::DeleteSpecialistPoolRequest const& request) override; + StatusOr DeleteSpecialistPool( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteSpecialistPoolRequest const& request) + override; + + future> + DeleteSpecialistPool( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateSpecialistPool( google::cloud::aiplatform::v1::UpdateSpecialistPoolRequest const& request) override; + StatusOr UpdateSpecialistPool( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::UpdateSpecialistPoolRequest const& request) + override; + + future> + UpdateSpecialistPool( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + private: std::shared_ptr child_; }; diff --git a/google/cloud/aiplatform/v1/internal/tensorboard_connection_impl.cc b/google/cloud/aiplatform/v1/internal/tensorboard_connection_impl.cc index 2236c8166fb72..23eb4652d00bb 100644 --- a/google/cloud/aiplatform/v1/internal/tensorboard_connection_impl.cc +++ b/google/cloud/aiplatform/v1/internal/tensorboard_connection_impl.cc @@ -113,6 +113,60 @@ TensorboardServiceConnectionImpl::CreateTensorboard( polling_policy(*current), __func__); } +StatusOr +TensorboardServiceConnectionImpl::CreateTensorboard( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::CreateTensorboardRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateTensorboard(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::aiplatform::v1::CreateTensorboardRequest const& + request) { + return stub_->CreateTensorboard(context, options, request); + }, + *current, request, __func__); +} + +future> +TensorboardServiceConnectionImpl::CreateTensorboard( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to CreateTensorboard", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::aiplatform::v1::Tensorboard>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::aiplatform::v1::Tensorboard>, + polling_policy(*current), __func__); +} + StatusOr TensorboardServiceConnectionImpl::GetTensorboard( google::cloud::aiplatform::v1::GetTensorboardRequest const& request) { @@ -168,6 +222,60 @@ TensorboardServiceConnectionImpl::UpdateTensorboard( polling_policy(*current), __func__); } +StatusOr +TensorboardServiceConnectionImpl::UpdateTensorboard( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::UpdateTensorboardRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UpdateTensorboard(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::aiplatform::v1::UpdateTensorboardRequest const& + request) { + return stub_->UpdateTensorboard(context, options, request); + }, + *current, request, __func__); +} + +future> +TensorboardServiceConnectionImpl::UpdateTensorboard( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to UpdateTensorboard", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::aiplatform::v1::Tensorboard>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::aiplatform::v1::Tensorboard>, + polling_policy(*current), __func__); +} + StreamRange TensorboardServiceConnectionImpl::ListTensorboards( google::cloud::aiplatform::v1::ListTensorboardsRequest request) { @@ -242,6 +350,60 @@ TensorboardServiceConnectionImpl::DeleteTensorboard( polling_policy(*current), __func__); } +StatusOr +TensorboardServiceConnectionImpl::DeleteTensorboard( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteTensorboardRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteTensorboard(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::aiplatform::v1::DeleteTensorboardRequest const& + request) { + return stub_->DeleteTensorboard(context, options, request); + }, + *current, request, __func__); +} + +future> +TensorboardServiceConnectionImpl::DeleteTensorboard( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteTensorboard", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::aiplatform::v1::DeleteOperationMetadata>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::cloud::aiplatform::v1::DeleteOperationMetadata>, + polling_policy(*current), __func__); +} + StatusOr TensorboardServiceConnectionImpl::ReadTensorboardUsage( google::cloud::aiplatform::v1::ReadTensorboardUsageRequest const& request) { @@ -398,6 +560,61 @@ TensorboardServiceConnectionImpl::DeleteTensorboardExperiment( polling_policy(*current), __func__); } +StatusOr +TensorboardServiceConnectionImpl::DeleteTensorboardExperiment( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteTensorboardExperimentRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteTensorboardExperiment(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::aiplatform::v1:: + DeleteTensorboardExperimentRequest const& request) { + return stub_->DeleteTensorboardExperiment(context, options, request); + }, + *current, request, __func__); +} + +future> +TensorboardServiceConnectionImpl::DeleteTensorboardExperiment( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteTensorboardExperiment", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::aiplatform::v1::DeleteOperationMetadata>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::cloud::aiplatform::v1::DeleteOperationMetadata>, + polling_policy(*current), __func__); +} + StatusOr TensorboardServiceConnectionImpl::CreateTensorboardRun( google::cloud::aiplatform::v1::CreateTensorboardRunRequest const& request) { @@ -534,6 +751,60 @@ TensorboardServiceConnectionImpl::DeleteTensorboardRun( polling_policy(*current), __func__); } +StatusOr +TensorboardServiceConnectionImpl::DeleteTensorboardRun( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteTensorboardRunRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteTensorboardRun(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::aiplatform::v1::DeleteTensorboardRunRequest const& + request) { + return stub_->DeleteTensorboardRun(context, options, request); + }, + *current, request, __func__); +} + +future> +TensorboardServiceConnectionImpl::DeleteTensorboardRun( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteTensorboardRun", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::aiplatform::v1::DeleteOperationMetadata>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::cloud::aiplatform::v1::DeleteOperationMetadata>, + polling_policy(*current), __func__); +} + StatusOr< google::cloud::aiplatform::v1::BatchCreateTensorboardTimeSeriesResponse> TensorboardServiceConnectionImpl::BatchCreateTensorboardTimeSeries( @@ -677,6 +948,61 @@ TensorboardServiceConnectionImpl::DeleteTensorboardTimeSeries( polling_policy(*current), __func__); } +StatusOr +TensorboardServiceConnectionImpl::DeleteTensorboardTimeSeries( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteTensorboardTimeSeriesRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteTensorboardTimeSeries(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::aiplatform::v1:: + DeleteTensorboardTimeSeriesRequest const& request) { + return stub_->DeleteTensorboardTimeSeries(context, options, request); + }, + *current, request, __func__); +} + +future> +TensorboardServiceConnectionImpl::DeleteTensorboardTimeSeries( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteTensorboardTimeSeries", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::aiplatform::v1::DeleteOperationMetadata>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::cloud::aiplatform::v1::DeleteOperationMetadata>, + polling_policy(*current), __func__); +} + StatusOr< google::cloud::aiplatform::v1::BatchReadTensorboardTimeSeriesDataResponse> TensorboardServiceConnectionImpl::BatchReadTensorboardTimeSeriesData( diff --git a/google/cloud/aiplatform/v1/internal/tensorboard_connection_impl.h b/google/cloud/aiplatform/v1/internal/tensorboard_connection_impl.h index 9291d79e64d8c..23528d11189e0 100644 --- a/google/cloud/aiplatform/v1/internal/tensorboard_connection_impl.h +++ b/google/cloud/aiplatform/v1/internal/tensorboard_connection_impl.h @@ -62,6 +62,15 @@ class TensorboardServiceConnectionImpl google::cloud::aiplatform::v1::CreateTensorboardRequest const& request) override; + StatusOr CreateTensorboard( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::CreateTensorboardRequest const& request) + override; + + future> + CreateTensorboard(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetTensorboard( google::cloud::aiplatform::v1::GetTensorboardRequest const& request) override; @@ -71,6 +80,15 @@ class TensorboardServiceConnectionImpl google::cloud::aiplatform::v1::UpdateTensorboardRequest const& request) override; + StatusOr UpdateTensorboard( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::UpdateTensorboardRequest const& request) + override; + + future> + UpdateTensorboard(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListTensorboards( google::cloud::aiplatform::v1::ListTensorboardsRequest request) override; @@ -79,6 +97,15 @@ class TensorboardServiceConnectionImpl google::cloud::aiplatform::v1::DeleteTensorboardRequest const& request) override; + StatusOr DeleteTensorboard( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteTensorboardRequest const& request) + override; + + future> + DeleteTensorboard(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr ReadTensorboardUsage( google::cloud::aiplatform::v1::ReadTensorboardUsageRequest const& request) @@ -114,6 +141,16 @@ class TensorboardServiceConnectionImpl google::cloud::aiplatform::v1::DeleteTensorboardExperimentRequest const& request) override; + StatusOr DeleteTensorboardExperiment( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteTensorboardExperimentRequest const& + request) override; + + future> + DeleteTensorboardExperiment( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr CreateTensorboardRun( google::cloud::aiplatform::v1::CreateTensorboardRunRequest const& request) override; @@ -140,6 +177,16 @@ class TensorboardServiceConnectionImpl google::cloud::aiplatform::v1::DeleteTensorboardRunRequest const& request) override; + StatusOr DeleteTensorboardRun( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteTensorboardRunRequest const& request) + override; + + future> + DeleteTensorboardRun( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr< google::cloud::aiplatform::v1::BatchCreateTensorboardTimeSeriesResponse> BatchCreateTensorboardTimeSeries( @@ -171,6 +218,16 @@ class TensorboardServiceConnectionImpl google::cloud::aiplatform::v1::DeleteTensorboardTimeSeriesRequest const& request) override; + StatusOr DeleteTensorboardTimeSeries( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteTensorboardTimeSeriesRequest const& + request) override; + + future> + DeleteTensorboardTimeSeries( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr< google::cloud::aiplatform::v1::BatchReadTensorboardTimeSeriesDataResponse> BatchReadTensorboardTimeSeriesData( diff --git a/google/cloud/aiplatform/v1/internal/tensorboard_tracing_connection.cc b/google/cloud/aiplatform/v1/internal/tensorboard_tracing_connection.cc index d280a3ccfadbd..726ff771943a6 100644 --- a/google/cloud/aiplatform/v1/internal/tensorboard_tracing_connection.cc +++ b/google/cloud/aiplatform/v1/internal/tensorboard_tracing_connection.cc @@ -42,6 +42,28 @@ TensorboardServiceTracingConnection::CreateTensorboard( return internal::EndSpan(std::move(span), child_->CreateTensorboard(request)); } +StatusOr +TensorboardServiceTracingConnection::CreateTensorboard( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::CreateTensorboardRequest const& request) { + auto span = internal::MakeSpan( + "aiplatform_v1::TensorboardServiceConnection::CreateTensorboard"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->CreateTensorboard(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +TensorboardServiceTracingConnection::CreateTensorboard( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "aiplatform_v1::TensorboardServiceConnection::CreateTensorboard"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->CreateTensorboard(ExperimentalTag{}, operation)); +} + StatusOr TensorboardServiceTracingConnection::GetTensorboard( google::cloud::aiplatform::v1::GetTensorboardRequest const& request) { @@ -60,6 +82,28 @@ TensorboardServiceTracingConnection::UpdateTensorboard( return internal::EndSpan(std::move(span), child_->UpdateTensorboard(request)); } +StatusOr +TensorboardServiceTracingConnection::UpdateTensorboard( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::UpdateTensorboardRequest const& request) { + auto span = internal::MakeSpan( + "aiplatform_v1::TensorboardServiceConnection::UpdateTensorboard"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->UpdateTensorboard(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +TensorboardServiceTracingConnection::UpdateTensorboard( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "aiplatform_v1::TensorboardServiceConnection::UpdateTensorboard"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->UpdateTensorboard(ExperimentalTag{}, operation)); +} + StreamRange TensorboardServiceTracingConnection::ListTensorboards( google::cloud::aiplatform::v1::ListTensorboardsRequest request) { @@ -81,6 +125,28 @@ TensorboardServiceTracingConnection::DeleteTensorboard( return internal::EndSpan(std::move(span), child_->DeleteTensorboard(request)); } +StatusOr +TensorboardServiceTracingConnection::DeleteTensorboard( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteTensorboardRequest const& request) { + auto span = internal::MakeSpan( + "aiplatform_v1::TensorboardServiceConnection::DeleteTensorboard"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->DeleteTensorboard(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +TensorboardServiceTracingConnection::DeleteTensorboard( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "aiplatform_v1::TensorboardServiceConnection::DeleteTensorboard"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->DeleteTensorboard(ExperimentalTag{}, operation)); +} + StatusOr TensorboardServiceTracingConnection::ReadTensorboardUsage( google::cloud::aiplatform::v1::ReadTensorboardUsageRequest const& request) { @@ -156,6 +222,31 @@ TensorboardServiceTracingConnection::DeleteTensorboardExperiment( child_->DeleteTensorboardExperiment(request)); } +StatusOr +TensorboardServiceTracingConnection::DeleteTensorboardExperiment( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteTensorboardExperimentRequest const& + request) { + auto span = internal::MakeSpan( + "aiplatform_v1::TensorboardServiceConnection::" + "DeleteTensorboardExperiment"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->DeleteTensorboardExperiment(ExperimentalTag{}, + NoAwaitTag{}, request)); +} + +future> +TensorboardServiceTracingConnection::DeleteTensorboardExperiment( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "aiplatform_v1::TensorboardServiceConnection::" + "DeleteTensorboardExperiment"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->DeleteTensorboardExperiment( + ExperimentalTag{}, operation)); +} + StatusOr TensorboardServiceTracingConnection::CreateTensorboardRun( google::cloud::aiplatform::v1::CreateTensorboardRunRequest const& request) { @@ -216,6 +307,28 @@ TensorboardServiceTracingConnection::DeleteTensorboardRun( child_->DeleteTensorboardRun(request)); } +StatusOr +TensorboardServiceTracingConnection::DeleteTensorboardRun( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteTensorboardRunRequest const& request) { + auto span = internal::MakeSpan( + "aiplatform_v1::TensorboardServiceConnection::DeleteTensorboardRun"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->DeleteTensorboardRun(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +TensorboardServiceTracingConnection::DeleteTensorboardRun( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "aiplatform_v1::TensorboardServiceConnection::DeleteTensorboardRun"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->DeleteTensorboardRun( + ExperimentalTag{}, operation)); +} + StatusOr< google::cloud::aiplatform::v1::BatchCreateTensorboardTimeSeriesResponse> TensorboardServiceTracingConnection::BatchCreateTensorboardTimeSeries( @@ -285,6 +398,31 @@ TensorboardServiceTracingConnection::DeleteTensorboardTimeSeries( child_->DeleteTensorboardTimeSeries(request)); } +StatusOr +TensorboardServiceTracingConnection::DeleteTensorboardTimeSeries( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteTensorboardTimeSeriesRequest const& + request) { + auto span = internal::MakeSpan( + "aiplatform_v1::TensorboardServiceConnection::" + "DeleteTensorboardTimeSeries"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->DeleteTensorboardTimeSeries(ExperimentalTag{}, + NoAwaitTag{}, request)); +} + +future> +TensorboardServiceTracingConnection::DeleteTensorboardTimeSeries( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "aiplatform_v1::TensorboardServiceConnection::" + "DeleteTensorboardTimeSeries"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->DeleteTensorboardTimeSeries( + ExperimentalTag{}, operation)); +} + StatusOr< google::cloud::aiplatform::v1::BatchReadTensorboardTimeSeriesDataResponse> TensorboardServiceTracingConnection::BatchReadTensorboardTimeSeriesData( diff --git a/google/cloud/aiplatform/v1/internal/tensorboard_tracing_connection.h b/google/cloud/aiplatform/v1/internal/tensorboard_tracing_connection.h index 5b3547a34b0e8..dfb328954d2a4 100644 --- a/google/cloud/aiplatform/v1/internal/tensorboard_tracing_connection.h +++ b/google/cloud/aiplatform/v1/internal/tensorboard_tracing_connection.h @@ -45,6 +45,15 @@ class TensorboardServiceTracingConnection google::cloud::aiplatform::v1::CreateTensorboardRequest const& request) override; + StatusOr CreateTensorboard( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::CreateTensorboardRequest const& request) + override; + + future> + CreateTensorboard(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetTensorboard( google::cloud::aiplatform::v1::GetTensorboardRequest const& request) override; @@ -54,6 +63,15 @@ class TensorboardServiceTracingConnection google::cloud::aiplatform::v1::UpdateTensorboardRequest const& request) override; + StatusOr UpdateTensorboard( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::UpdateTensorboardRequest const& request) + override; + + future> + UpdateTensorboard(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListTensorboards( google::cloud::aiplatform::v1::ListTensorboardsRequest request) override; @@ -62,6 +80,15 @@ class TensorboardServiceTracingConnection google::cloud::aiplatform::v1::DeleteTensorboardRequest const& request) override; + StatusOr DeleteTensorboard( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteTensorboardRequest const& request) + override; + + future> + DeleteTensorboard(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr ReadTensorboardUsage( google::cloud::aiplatform::v1::ReadTensorboardUsageRequest const& request) @@ -97,6 +124,16 @@ class TensorboardServiceTracingConnection google::cloud::aiplatform::v1::DeleteTensorboardExperimentRequest const& request) override; + StatusOr DeleteTensorboardExperiment( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteTensorboardExperimentRequest const& + request) override; + + future> + DeleteTensorboardExperiment( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr CreateTensorboardRun( google::cloud::aiplatform::v1::CreateTensorboardRunRequest const& request) override; @@ -123,6 +160,16 @@ class TensorboardServiceTracingConnection google::cloud::aiplatform::v1::DeleteTensorboardRunRequest const& request) override; + StatusOr DeleteTensorboardRun( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteTensorboardRunRequest const& request) + override; + + future> + DeleteTensorboardRun( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr< google::cloud::aiplatform::v1::BatchCreateTensorboardTimeSeriesResponse> BatchCreateTensorboardTimeSeries( @@ -154,6 +201,16 @@ class TensorboardServiceTracingConnection google::cloud::aiplatform::v1::DeleteTensorboardTimeSeriesRequest const& request) override; + StatusOr DeleteTensorboardTimeSeries( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteTensorboardTimeSeriesRequest const& + request) override; + + future> + DeleteTensorboardTimeSeries( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr< google::cloud::aiplatform::v1::BatchReadTensorboardTimeSeriesDataResponse> BatchReadTensorboardTimeSeriesData( diff --git a/google/cloud/aiplatform/v1/internal/vizier_connection_impl.cc b/google/cloud/aiplatform/v1/internal/vizier_connection_impl.cc index 4c2f33ccdefec..cce89772e433c 100644 --- a/google/cloud/aiplatform/v1/internal/vizier_connection_impl.cc +++ b/google/cloud/aiplatform/v1/internal/vizier_connection_impl.cc @@ -194,6 +194,60 @@ VizierServiceConnectionImpl::SuggestTrials( polling_policy(*current), __func__); } +StatusOr +VizierServiceConnectionImpl::SuggestTrials( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::SuggestTrialsRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->SuggestTrials(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::aiplatform::v1::SuggestTrialsRequest const& request) { + return stub_->SuggestTrials(context, options, request); + }, + *current, request, __func__); +} + +future> +VizierServiceConnectionImpl::SuggestTrials( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to SuggestTrials", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::aiplatform::v1::SuggestTrialsResponse>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::aiplatform::v1::SuggestTrialsResponse>, + polling_policy(*current), __func__); +} + StatusOr VizierServiceConnectionImpl::CreateTrial( google::cloud::aiplatform::v1::CreateTrialRequest const& request) { @@ -340,6 +394,62 @@ VizierServiceConnectionImpl::CheckTrialEarlyStoppingState( polling_policy(*current), __func__); } +StatusOr +VizierServiceConnectionImpl::CheckTrialEarlyStoppingState( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::CheckTrialEarlyStoppingStateRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CheckTrialEarlyStoppingState(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::aiplatform::v1:: + CheckTrialEarlyStoppingStateRequest const& request) { + return stub_->CheckTrialEarlyStoppingState(context, options, request); + }, + *current, request, __func__); +} + +future> +VizierServiceConnectionImpl::CheckTrialEarlyStoppingState( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to CheckTrialEarlyStoppingState", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::aiplatform::v1::CheckTrialEarlyStoppingStateResponse>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::aiplatform::v1::CheckTrialEarlyStoppingStateResponse>, + polling_policy(*current), __func__); +} + StatusOr VizierServiceConnectionImpl::StopTrial( google::cloud::aiplatform::v1::StopTrialRequest const& request) { diff --git a/google/cloud/aiplatform/v1/internal/vizier_connection_impl.h b/google/cloud/aiplatform/v1/internal/vizier_connection_impl.h index 9cf74ac44234e..17281aa3105fe 100644 --- a/google/cloud/aiplatform/v1/internal/vizier_connection_impl.h +++ b/google/cloud/aiplatform/v1/internal/vizier_connection_impl.h @@ -73,6 +73,15 @@ class VizierServiceConnectionImpl SuggestTrials(google::cloud::aiplatform::v1::SuggestTrialsRequest const& request) override; + StatusOr SuggestTrials( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::SuggestTrialsRequest const& request) + override; + + future> + SuggestTrials(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr CreateTrial( google::cloud::aiplatform::v1::CreateTrialRequest const& request) override; @@ -100,6 +109,17 @@ class VizierServiceConnectionImpl google::cloud::aiplatform::v1::CheckTrialEarlyStoppingStateRequest const& request) override; + StatusOr CheckTrialEarlyStoppingState( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::CheckTrialEarlyStoppingStateRequest const& + request) override; + + future> + CheckTrialEarlyStoppingState( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr StopTrial( google::cloud::aiplatform::v1::StopTrialRequest const& request) override; diff --git a/google/cloud/aiplatform/v1/internal/vizier_tracing_connection.cc b/google/cloud/aiplatform/v1/internal/vizier_tracing_connection.cc index e096183f62ef5..db81a226a526e 100644 --- a/google/cloud/aiplatform/v1/internal/vizier_tracing_connection.cc +++ b/google/cloud/aiplatform/v1/internal/vizier_tracing_connection.cc @@ -88,6 +88,27 @@ VizierServiceTracingConnection::SuggestTrials( return internal::EndSpan(std::move(span), child_->SuggestTrials(request)); } +StatusOr +VizierServiceTracingConnection::SuggestTrials( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::SuggestTrialsRequest const& request) { + auto span = internal::MakeSpan( + "aiplatform_v1::VizierServiceConnection::SuggestTrials"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->SuggestTrials(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +VizierServiceTracingConnection::SuggestTrials( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "aiplatform_v1::VizierServiceConnection::SuggestTrials"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->SuggestTrials(ExperimentalTag{}, operation)); +} + StatusOr VizierServiceTracingConnection::CreateTrial( google::cloud::aiplatform::v1::CreateTrialRequest const& request) { @@ -155,6 +176,31 @@ VizierServiceTracingConnection::CheckTrialEarlyStoppingState( child_->CheckTrialEarlyStoppingState(request)); } +StatusOr +VizierServiceTracingConnection::CheckTrialEarlyStoppingState( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::CheckTrialEarlyStoppingStateRequest const& + request) { + auto span = internal::MakeSpan( + "aiplatform_v1::VizierServiceConnection::CheckTrialEarlyStoppingState"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->CheckTrialEarlyStoppingState(ExperimentalTag{}, + NoAwaitTag{}, request)); +} + +future> +VizierServiceTracingConnection::CheckTrialEarlyStoppingState( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "aiplatform_v1::VizierServiceConnection::CheckTrialEarlyStoppingState"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), + child_->CheckTrialEarlyStoppingState(ExperimentalTag{}, operation)); +} + StatusOr VizierServiceTracingConnection::StopTrial( google::cloud::aiplatform::v1::StopTrialRequest const& request) { diff --git a/google/cloud/aiplatform/v1/internal/vizier_tracing_connection.h b/google/cloud/aiplatform/v1/internal/vizier_tracing_connection.h index 0ac454c1b0874..7a0bdef762be7 100644 --- a/google/cloud/aiplatform/v1/internal/vizier_tracing_connection.h +++ b/google/cloud/aiplatform/v1/internal/vizier_tracing_connection.h @@ -61,6 +61,15 @@ class VizierServiceTracingConnection SuggestTrials(google::cloud::aiplatform::v1::SuggestTrialsRequest const& request) override; + StatusOr SuggestTrials( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::SuggestTrialsRequest const& request) + override; + + future> + SuggestTrials(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr CreateTrial( google::cloud::aiplatform::v1::CreateTrialRequest const& request) override; @@ -88,6 +97,17 @@ class VizierServiceTracingConnection google::cloud::aiplatform::v1::CheckTrialEarlyStoppingStateRequest const& request) override; + StatusOr CheckTrialEarlyStoppingState( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::CheckTrialEarlyStoppingStateRequest const& + request) override; + + future> + CheckTrialEarlyStoppingState( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr StopTrial( google::cloud::aiplatform::v1::StopTrialRequest const& request) override; diff --git a/google/cloud/aiplatform/v1/job_connection.cc b/google/cloud/aiplatform/v1/job_connection.cc index b2f613bd9a498..be3d63ad38962 100644 --- a/google/cloud/aiplatform/v1/job_connection.cc +++ b/google/cloud/aiplatform/v1/job_connection.cc @@ -66,6 +66,21 @@ JobServiceConnection::DeleteCustomJob( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr JobServiceConnection::DeleteCustomJob( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteCustomJobRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +JobServiceConnection::DeleteCustomJob(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + Status JobServiceConnection::CancelCustomJob( google::cloud::aiplatform::v1::CancelCustomJobRequest const&) { return Status(StatusCode::kUnimplemented, "not implemented"); @@ -99,6 +114,22 @@ JobServiceConnection::DeleteDataLabelingJob( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +JobServiceConnection::DeleteDataLabelingJob( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteDataLabelingJobRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +JobServiceConnection::DeleteDataLabelingJob( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + Status JobServiceConnection::CancelDataLabelingJob( google::cloud::aiplatform::v1::CancelDataLabelingJobRequest const&) { return Status(StatusCode::kUnimplemented, "not implemented"); @@ -134,6 +165,23 @@ JobServiceConnection::DeleteHyperparameterTuningJob( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +JobServiceConnection::DeleteHyperparameterTuningJob( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1:: + DeleteHyperparameterTuningJobRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +JobServiceConnection::DeleteHyperparameterTuningJob( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + Status JobServiceConnection::CancelHyperparameterTuningJob( google::cloud::aiplatform::v1:: CancelHyperparameterTuningJobRequest const&) { @@ -167,6 +215,21 @@ JobServiceConnection::DeleteNasJob( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr JobServiceConnection::DeleteNasJob( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteNasJobRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +JobServiceConnection::DeleteNasJob(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + Status JobServiceConnection::CancelNasJob( google::cloud::aiplatform::v1::CancelNasJobRequest const&) { return Status(StatusCode::kUnimplemented, "not implemented"); @@ -214,6 +277,22 @@ JobServiceConnection::DeleteBatchPredictionJob( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +JobServiceConnection::DeleteBatchPredictionJob( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteBatchPredictionJobRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +JobServiceConnection::DeleteBatchPredictionJob( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + Status JobServiceConnection::CancelBatchPredictionJob( google::cloud::aiplatform::v1::CancelBatchPredictionJobRequest const&) { return Status(StatusCode::kUnimplemented, "not implemented"); @@ -258,6 +337,23 @@ JobServiceConnection::UpdateModelDeploymentMonitoringJob( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +JobServiceConnection::UpdateModelDeploymentMonitoringJob( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1:: + UpdateModelDeploymentMonitoringJobRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +JobServiceConnection::UpdateModelDeploymentMonitoringJob( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> JobServiceConnection::DeleteModelDeploymentMonitoringJob( google::cloud::aiplatform::v1:: @@ -267,6 +363,23 @@ JobServiceConnection::DeleteModelDeploymentMonitoringJob( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +JobServiceConnection::DeleteModelDeploymentMonitoringJob( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1:: + DeleteModelDeploymentMonitoringJobRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +JobServiceConnection::DeleteModelDeploymentMonitoringJob( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + Status JobServiceConnection::PauseModelDeploymentMonitoringJob( google::cloud::aiplatform::v1:: PauseModelDeploymentMonitoringJobRequest const&) { diff --git a/google/cloud/aiplatform/v1/job_connection.h b/google/cloud/aiplatform/v1/job_connection.h index 823d6e04c683d..9c07853a5b411 100644 --- a/google/cloud/aiplatform/v1/job_connection.h +++ b/google/cloud/aiplatform/v1/job_connection.h @@ -22,8 +22,10 @@ #include "google/cloud/aiplatform/v1/internal/job_retry_traits.h" #include "google/cloud/aiplatform/v1/job_connection_idempotency_policy.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/internal/retry_policy_impl.h" +#include "google/cloud/no_await_tag.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" #include "google/cloud/status_or.h" @@ -199,6 +201,15 @@ class JobServiceConnection { DeleteCustomJob( google::cloud::aiplatform::v1::DeleteCustomJobRequest const& request); + virtual StatusOr DeleteCustomJob( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteCustomJobRequest const& request); + + virtual future< + StatusOr> + DeleteCustomJob(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual Status CancelCustomJob( google::cloud::aiplatform::v1::CancelCustomJobRequest const& request); @@ -221,6 +232,16 @@ class JobServiceConnection { google::cloud::aiplatform::v1::DeleteDataLabelingJobRequest const& request); + virtual StatusOr DeleteDataLabelingJob( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteDataLabelingJobRequest const& + request); + + virtual future< + StatusOr> + DeleteDataLabelingJob(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual Status CancelDataLabelingJob( google::cloud::aiplatform::v1::CancelDataLabelingJobRequest const& request); @@ -246,6 +267,17 @@ class JobServiceConnection { google::cloud::aiplatform::v1::DeleteHyperparameterTuningJobRequest const& request); + virtual StatusOr + DeleteHyperparameterTuningJob( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteHyperparameterTuningJobRequest const& + request); + + virtual future< + StatusOr> + DeleteHyperparameterTuningJob( + ExperimentalTag, google::longrunning::Operation const& operation); + virtual Status CancelHyperparameterTuningJob( google::cloud::aiplatform::v1::CancelHyperparameterTuningJobRequest const& request); @@ -264,6 +296,15 @@ class JobServiceConnection { DeleteNasJob( google::cloud::aiplatform::v1::DeleteNasJobRequest const& request); + virtual StatusOr DeleteNasJob( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteNasJobRequest const& request); + + virtual future< + StatusOr> + DeleteNasJob(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual Status CancelNasJob( google::cloud::aiplatform::v1::CancelNasJobRequest const& request); @@ -295,6 +336,16 @@ class JobServiceConnection { google::cloud::aiplatform::v1::DeleteBatchPredictionJobRequest const& request); + virtual StatusOr DeleteBatchPredictionJob( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteBatchPredictionJobRequest const& + request); + + virtual future< + StatusOr> + DeleteBatchPredictionJob(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual Status CancelBatchPredictionJob( google::cloud::aiplatform::v1::CancelBatchPredictionJobRequest const& request); @@ -327,12 +378,34 @@ class JobServiceConnection { google::cloud::aiplatform::v1:: UpdateModelDeploymentMonitoringJobRequest const& request); + virtual StatusOr + UpdateModelDeploymentMonitoringJob( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1:: + UpdateModelDeploymentMonitoringJobRequest const& request); + + virtual future< + StatusOr> + UpdateModelDeploymentMonitoringJob( + ExperimentalTag, google::longrunning::Operation const& operation); + virtual future< StatusOr> DeleteModelDeploymentMonitoringJob( google::cloud::aiplatform::v1:: DeleteModelDeploymentMonitoringJobRequest const& request); + virtual StatusOr + DeleteModelDeploymentMonitoringJob( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1:: + DeleteModelDeploymentMonitoringJobRequest const& request); + + virtual future< + StatusOr> + DeleteModelDeploymentMonitoringJob( + ExperimentalTag, google::longrunning::Operation const& operation); + virtual Status PauseModelDeploymentMonitoringJob( google::cloud::aiplatform::v1:: PauseModelDeploymentMonitoringJobRequest const& request); diff --git a/google/cloud/aiplatform/v1/llm_utility_connection.h b/google/cloud/aiplatform/v1/llm_utility_connection.h index b6c1a354b8640..6302525273b18 100644 --- a/google/cloud/aiplatform/v1/llm_utility_connection.h +++ b/google/cloud/aiplatform/v1/llm_utility_connection.h @@ -22,6 +22,7 @@ #include "google/cloud/aiplatform/v1/internal/llm_utility_retry_traits.h" #include "google/cloud/aiplatform/v1/llm_utility_connection_idempotency_policy.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/internal/retry_policy_impl.h" #include "google/cloud/options.h" #include "google/cloud/status_or.h" diff --git a/google/cloud/aiplatform/v1/match_connection.h b/google/cloud/aiplatform/v1/match_connection.h index fea18a7b0e3a0..4b4a1b0830678 100644 --- a/google/cloud/aiplatform/v1/match_connection.h +++ b/google/cloud/aiplatform/v1/match_connection.h @@ -22,6 +22,7 @@ #include "google/cloud/aiplatform/v1/internal/match_retry_traits.h" #include "google/cloud/aiplatform/v1/match_connection_idempotency_policy.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/internal/retry_policy_impl.h" #include "google/cloud/options.h" #include "google/cloud/status_or.h" diff --git a/google/cloud/aiplatform/v1/metadata_connection.cc b/google/cloud/aiplatform/v1/metadata_connection.cc index 6b29786413dba..90374a31d6382 100644 --- a/google/cloud/aiplatform/v1/metadata_connection.cc +++ b/google/cloud/aiplatform/v1/metadata_connection.cc @@ -46,6 +46,22 @@ MetadataServiceConnection::CreateMetadataStore( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +MetadataServiceConnection::CreateMetadataStore( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::CreateMetadataStoreRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +MetadataServiceConnection::CreateMetadataStore( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr MetadataServiceConnection::GetMetadataStore( google::cloud::aiplatform::v1::GetMetadataStoreRequest const&) { @@ -69,6 +85,23 @@ MetadataServiceConnection::DeleteMetadataStore( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +MetadataServiceConnection::DeleteMetadataStore( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteMetadataStoreRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +MetadataServiceConnection::DeleteMetadataStore( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr MetadataServiceConnection::CreateArtifact( google::cloud::aiplatform::v1::CreateArtifactRequest const&) { @@ -103,6 +136,22 @@ MetadataServiceConnection::DeleteArtifact( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +MetadataServiceConnection::DeleteArtifact( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteArtifactRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +MetadataServiceConnection::DeleteArtifact( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> MetadataServiceConnection::PurgeArtifacts( google::cloud::aiplatform::v1::PurgeArtifactsRequest const&) { @@ -111,6 +160,22 @@ MetadataServiceConnection::PurgeArtifacts( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +MetadataServiceConnection::PurgeArtifacts( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::PurgeArtifactsRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +MetadataServiceConnection::PurgeArtifacts( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr MetadataServiceConnection::CreateContext( google::cloud::aiplatform::v1::CreateContextRequest const&) { @@ -145,6 +210,22 @@ MetadataServiceConnection::DeleteContext( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +MetadataServiceConnection::DeleteContext( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteContextRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +MetadataServiceConnection::DeleteContext( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> MetadataServiceConnection::PurgeContexts( google::cloud::aiplatform::v1::PurgeContextsRequest const&) { @@ -153,6 +234,22 @@ MetadataServiceConnection::PurgeContexts( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +MetadataServiceConnection::PurgeContexts( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::PurgeContextsRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +MetadataServiceConnection::PurgeContexts( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr< google::cloud::aiplatform::v1::AddContextArtifactsAndExecutionsResponse> MetadataServiceConnection::AddContextArtifactsAndExecutions( @@ -213,6 +310,22 @@ MetadataServiceConnection::DeleteExecution( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +MetadataServiceConnection::DeleteExecution( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteExecutionRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +MetadataServiceConnection::DeleteExecution( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> MetadataServiceConnection::PurgeExecutions( google::cloud::aiplatform::v1::PurgeExecutionsRequest const&) { @@ -221,6 +334,22 @@ MetadataServiceConnection::PurgeExecutions( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +MetadataServiceConnection::PurgeExecutions( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::PurgeExecutionsRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +MetadataServiceConnection::PurgeExecutions( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr MetadataServiceConnection::AddExecutionEvents( google::cloud::aiplatform::v1::AddExecutionEventsRequest const&) { diff --git a/google/cloud/aiplatform/v1/metadata_connection.h b/google/cloud/aiplatform/v1/metadata_connection.h index b361f4c8c31cb..cfba24f834184 100644 --- a/google/cloud/aiplatform/v1/metadata_connection.h +++ b/google/cloud/aiplatform/v1/metadata_connection.h @@ -22,8 +22,10 @@ #include "google/cloud/aiplatform/v1/internal/metadata_retry_traits.h" #include "google/cloud/aiplatform/v1/metadata_connection_idempotency_policy.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/internal/retry_policy_impl.h" +#include "google/cloud/no_await_tag.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" #include "google/cloud/status_or.h" @@ -191,6 +193,14 @@ class MetadataServiceConnection { CreateMetadataStore( google::cloud::aiplatform::v1::CreateMetadataStoreRequest const& request); + virtual StatusOr CreateMetadataStore( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::CreateMetadataStoreRequest const& request); + + virtual future> + CreateMetadataStore(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StatusOr GetMetadataStore( google::cloud::aiplatform::v1::GetMetadataStoreRequest const& request); @@ -204,6 +214,15 @@ class MetadataServiceConnection { DeleteMetadataStore( google::cloud::aiplatform::v1::DeleteMetadataStoreRequest const& request); + virtual StatusOr DeleteMetadataStore( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteMetadataStoreRequest const& request); + + virtual future> + DeleteMetadataStore(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StatusOr CreateArtifact( google::cloud::aiplatform::v1::CreateArtifactRequest const& request); @@ -221,11 +240,29 @@ class MetadataServiceConnection { DeleteArtifact( google::cloud::aiplatform::v1::DeleteArtifactRequest const& request); + virtual StatusOr DeleteArtifact( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteArtifactRequest const& request); + + virtual future< + StatusOr> + DeleteArtifact(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future< StatusOr> PurgeArtifacts( google::cloud::aiplatform::v1::PurgeArtifactsRequest const& request); + virtual StatusOr PurgeArtifacts( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::PurgeArtifactsRequest const& request); + + virtual future< + StatusOr> + PurgeArtifacts(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StatusOr CreateContext( google::cloud::aiplatform::v1::CreateContextRequest const& request); @@ -243,10 +280,27 @@ class MetadataServiceConnection { DeleteContext( google::cloud::aiplatform::v1::DeleteContextRequest const& request); + virtual StatusOr DeleteContext( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteContextRequest const& request); + + virtual future< + StatusOr> + DeleteContext(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> PurgeContexts( google::cloud::aiplatform::v1::PurgeContextsRequest const& request); + virtual StatusOr PurgeContexts( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::PurgeContextsRequest const& request); + + virtual future> + PurgeContexts(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StatusOr< google::cloud::aiplatform::v1::AddContextArtifactsAndExecutionsResponse> AddContextArtifactsAndExecutions( @@ -284,11 +338,29 @@ class MetadataServiceConnection { DeleteExecution( google::cloud::aiplatform::v1::DeleteExecutionRequest const& request); + virtual StatusOr DeleteExecution( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteExecutionRequest const& request); + + virtual future< + StatusOr> + DeleteExecution(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future< StatusOr> PurgeExecutions( google::cloud::aiplatform::v1::PurgeExecutionsRequest const& request); + virtual StatusOr PurgeExecutions( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::PurgeExecutionsRequest const& request); + + virtual future< + StatusOr> + PurgeExecutions(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StatusOr AddExecutionEvents( google::cloud::aiplatform::v1::AddExecutionEventsRequest const& request); diff --git a/google/cloud/aiplatform/v1/migration_connection.cc b/google/cloud/aiplatform/v1/migration_connection.cc index 4a743a4075629..4c4b42da817c4 100644 --- a/google/cloud/aiplatform/v1/migration_connection.cc +++ b/google/cloud/aiplatform/v1/migration_connection.cc @@ -54,6 +54,22 @@ MigrationServiceConnection::BatchMigrateResources( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +MigrationServiceConnection::BatchMigrateResources( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::BatchMigrateResourcesRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +MigrationServiceConnection::BatchMigrateResources( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + std::shared_ptr MakeMigrationServiceConnection( std::string const& location, Options options) { internal::CheckExpectedOptions BatchMigrateResources( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::BatchMigrateResourcesRequest const& + request); + + virtual future< + StatusOr> + BatchMigrateResources(ExperimentalTag, + google::longrunning::Operation const& operation); }; /** diff --git a/google/cloud/aiplatform/v1/mocks/mock_dataset_connection.h b/google/cloud/aiplatform/v1/mocks/mock_dataset_connection.h index 331692f5c1a75..4f3f2b791cf00 100644 --- a/google/cloud/aiplatform/v1/mocks/mock_dataset_connection.h +++ b/google/cloud/aiplatform/v1/mocks/mock_dataset_connection.h @@ -52,6 +52,18 @@ class MockDatasetServiceConnection (google::cloud::aiplatform::v1::CreateDatasetRequest const& request), (override)); + MOCK_METHOD( + StatusOr, CreateDataset, + (ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::CreateDatasetRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateDataset, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(StatusOr, GetDataset, (google::cloud::aiplatform::v1::GetDatasetRequest const& request), (override)); @@ -72,24 +84,70 @@ class MockDatasetServiceConnection (google::cloud::aiplatform::v1::DeleteDatasetRequest const& request), (override)); + MOCK_METHOD( + StatusOr, DeleteDataset, + (ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteDatasetRequest const& request), + (override)); + + MOCK_METHOD( + future>, + DeleteDataset, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, ImportData, (google::cloud::aiplatform::v1::ImportDataRequest const& request), (override)); + MOCK_METHOD(StatusOr, ImportData, + (ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::ImportDataRequest const& request), + (override)); + + MOCK_METHOD( + future>, + ImportData, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, ExportData, (google::cloud::aiplatform::v1::ExportDataRequest const& request), (override)); + MOCK_METHOD(StatusOr, ExportData, + (ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::ExportDataRequest const& request), + (override)); + + MOCK_METHOD( + future>, + ExportData, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, CreateDatasetVersion, (google::cloud::aiplatform::v1::CreateDatasetVersionRequest const& request), (override)); + MOCK_METHOD(StatusOr, CreateDatasetVersion, + (ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::CreateDatasetVersionRequest const& + request), + (override)); + + MOCK_METHOD(future>, + CreateDatasetVersion, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(StatusOr, UpdateDatasetVersion, (google::cloud::aiplatform::v1::UpdateDatasetVersionRequest const& @@ -103,6 +161,18 @@ class MockDatasetServiceConnection request), (override)); + MOCK_METHOD(StatusOr, DeleteDatasetVersion, + (ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteDatasetVersionRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + DeleteDatasetVersion, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr, GetDatasetVersion, @@ -122,6 +192,19 @@ class MockDatasetServiceConnection request), (override)); + MOCK_METHOD( + StatusOr, RestoreDatasetVersion, + (ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::RestoreDatasetVersionRequest const& + request), + (override)); + + MOCK_METHOD(future>, + RestoreDatasetVersion, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD((StreamRange), ListDataItems, (google::cloud::aiplatform::v1::ListDataItemsRequest request), @@ -143,6 +226,18 @@ class MockDatasetServiceConnection (google::cloud::aiplatform::v1::DeleteSavedQueryRequest const& request), (override)); + MOCK_METHOD( + StatusOr, DeleteSavedQuery, + (ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteSavedQueryRequest const& request), + (override)); + + MOCK_METHOD( + future>, + DeleteSavedQuery, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr, GetAnnotationSpec, diff --git a/google/cloud/aiplatform/v1/mocks/mock_deployment_resource_pool_connection.h b/google/cloud/aiplatform/v1/mocks/mock_deployment_resource_pool_connection.h index 44e89c1b4a830..ce96b37b0c3bc 100644 --- a/google/cloud/aiplatform/v1/mocks/mock_deployment_resource_pool_connection.h +++ b/google/cloud/aiplatform/v1/mocks/mock_deployment_resource_pool_connection.h @@ -54,6 +54,19 @@ class MockDeploymentResourcePoolServiceConnection request), (override)); + MOCK_METHOD( + StatusOr, CreateDeploymentResourcePool, + (ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::CreateDeploymentResourcePoolRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + CreateDeploymentResourcePool, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr, GetDeploymentResourcePool, @@ -74,6 +87,19 @@ class MockDeploymentResourcePoolServiceConnection (google::cloud::aiplatform::v1::DeleteDeploymentResourcePoolRequest const& request), (override)); + + MOCK_METHOD( + StatusOr, DeleteDeploymentResourcePool, + (ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteDeploymentResourcePoolRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + DeleteDeploymentResourcePool, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); }; GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END diff --git a/google/cloud/aiplatform/v1/mocks/mock_endpoint_connection.h b/google/cloud/aiplatform/v1/mocks/mock_endpoint_connection.h index 752892423586b..65700e90b995b 100644 --- a/google/cloud/aiplatform/v1/mocks/mock_endpoint_connection.h +++ b/google/cloud/aiplatform/v1/mocks/mock_endpoint_connection.h @@ -52,6 +52,18 @@ class MockEndpointServiceConnection (google::cloud::aiplatform::v1::CreateEndpointRequest const& request), (override)); + MOCK_METHOD( + StatusOr, CreateEndpoint, + (ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::CreateEndpointRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateEndpoint, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr, GetEndpoint, (google::cloud::aiplatform::v1::GetEndpointRequest const& request), @@ -73,18 +85,54 @@ class MockEndpointServiceConnection (google::cloud::aiplatform::v1::DeleteEndpointRequest const& request), (override)); + MOCK_METHOD( + StatusOr, DeleteEndpoint, + (ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteEndpointRequest const& request), + (override)); + + MOCK_METHOD( + future>, + DeleteEndpoint, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeployModel, (google::cloud::aiplatform::v1::DeployModelRequest const& request), (override)); + MOCK_METHOD( + StatusOr, DeployModel, + (ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeployModelRequest const& request), + (override)); + + MOCK_METHOD( + future>, + DeployModel, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, UndeployModel, (google::cloud::aiplatform::v1::UndeployModelRequest const& request), (override)); + MOCK_METHOD( + StatusOr, UndeployModel, + (ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::UndeployModelRequest const& request), + (override)); + + MOCK_METHOD( + future>, + UndeployModel, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future< StatusOr>, @@ -92,6 +140,19 @@ class MockEndpointServiceConnection (google::cloud::aiplatform::v1::MutateDeployedModelRequest const& request), (override)); + + MOCK_METHOD(StatusOr, MutateDeployedModel, + (ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::MutateDeployedModelRequest const& + request), + (override)); + + MOCK_METHOD( + future< + StatusOr>, + MutateDeployedModel, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); }; GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END diff --git a/google/cloud/aiplatform/v1/mocks/mock_feature_online_store_admin_connection.h b/google/cloud/aiplatform/v1/mocks/mock_feature_online_store_admin_connection.h index c2eac09fae4f1..2c3051052847f 100644 --- a/google/cloud/aiplatform/v1/mocks/mock_feature_online_store_admin_connection.h +++ b/google/cloud/aiplatform/v1/mocks/mock_feature_online_store_admin_connection.h @@ -54,6 +54,19 @@ class MockFeatureOnlineStoreAdminServiceConnection request), (override)); + MOCK_METHOD( + StatusOr, CreateFeatureOnlineStore, + (ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::CreateFeatureOnlineStoreRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + CreateFeatureOnlineStore, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr, GetFeatureOnlineStore, @@ -74,6 +87,19 @@ class MockFeatureOnlineStoreAdminServiceConnection request), (override)); + MOCK_METHOD( + StatusOr, UpdateFeatureOnlineStore, + (ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::UpdateFeatureOnlineStoreRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + UpdateFeatureOnlineStore, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteFeatureOnlineStore, @@ -81,12 +107,37 @@ class MockFeatureOnlineStoreAdminServiceConnection request), (override)); + MOCK_METHOD( + StatusOr, DeleteFeatureOnlineStore, + (ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteFeatureOnlineStoreRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + DeleteFeatureOnlineStore, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, CreateFeatureView, (google::cloud::aiplatform::v1::CreateFeatureViewRequest const& request), (override)); + MOCK_METHOD( + StatusOr, CreateFeatureView, + (ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::CreateFeatureViewRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateFeatureView, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr, GetFeatureView, (google::cloud::aiplatform::v1::GetFeatureViewRequest const& request), @@ -103,12 +154,36 @@ class MockFeatureOnlineStoreAdminServiceConnection (google::cloud::aiplatform::v1::UpdateFeatureViewRequest const& request), (override)); + MOCK_METHOD( + StatusOr, UpdateFeatureView, + (ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::UpdateFeatureViewRequest const& request), + (override)); + + MOCK_METHOD(future>, + UpdateFeatureView, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteFeatureView, (google::cloud::aiplatform::v1::DeleteFeatureViewRequest const& request), (override)); + MOCK_METHOD( + StatusOr, DeleteFeatureView, + (ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteFeatureViewRequest const& request), + (override)); + + MOCK_METHOD( + future>, + DeleteFeatureView, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr, SyncFeatureView, diff --git a/google/cloud/aiplatform/v1/mocks/mock_feature_registry_connection.h b/google/cloud/aiplatform/v1/mocks/mock_feature_registry_connection.h index f49639d335bb0..f95b34522ecdb 100644 --- a/google/cloud/aiplatform/v1/mocks/mock_feature_registry_connection.h +++ b/google/cloud/aiplatform/v1/mocks/mock_feature_registry_connection.h @@ -53,6 +53,18 @@ class MockFeatureRegistryServiceConnection (google::cloud::aiplatform::v1::CreateFeatureGroupRequest const& request), (override)); + MOCK_METHOD( + StatusOr, CreateFeatureGroup, + (ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::CreateFeatureGroupRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateFeatureGroup, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr, GetFeatureGroup, (google::cloud::aiplatform::v1::GetFeatureGroupRequest const& request), @@ -69,17 +81,53 @@ class MockFeatureRegistryServiceConnection (google::cloud::aiplatform::v1::UpdateFeatureGroupRequest const& request), (override)); + MOCK_METHOD( + StatusOr, UpdateFeatureGroup, + (ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::UpdateFeatureGroupRequest const& request), + (override)); + + MOCK_METHOD(future>, + UpdateFeatureGroup, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteFeatureGroup, (google::cloud::aiplatform::v1::DeleteFeatureGroupRequest const& request), (override)); + MOCK_METHOD( + StatusOr, DeleteFeatureGroup, + (ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteFeatureGroupRequest const& request), + (override)); + + MOCK_METHOD( + future>, + DeleteFeatureGroup, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, CreateFeature, (google::cloud::aiplatform::v1::CreateFeatureRequest const& request), (override)); + MOCK_METHOD( + StatusOr, CreateFeature, + (ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::CreateFeatureRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateFeature, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(StatusOr, GetFeature, (google::cloud::aiplatform::v1::GetFeatureRequest const& request), (override)); @@ -94,11 +142,35 @@ class MockFeatureRegistryServiceConnection (google::cloud::aiplatform::v1::UpdateFeatureRequest const& request), (override)); + MOCK_METHOD( + StatusOr, UpdateFeature, + (ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::UpdateFeatureRequest const& request), + (override)); + + MOCK_METHOD(future>, + UpdateFeature, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteFeature, (google::cloud::aiplatform::v1::DeleteFeatureRequest const& request), (override)); + + MOCK_METHOD( + StatusOr, DeleteFeature, + (ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteFeatureRequest const& request), + (override)); + + MOCK_METHOD( + future>, + DeleteFeature, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); }; GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END diff --git a/google/cloud/aiplatform/v1/mocks/mock_featurestore_connection.h b/google/cloud/aiplatform/v1/mocks/mock_featurestore_connection.h index e12b9bc83afe4..998db9400506c 100644 --- a/google/cloud/aiplatform/v1/mocks/mock_featurestore_connection.h +++ b/google/cloud/aiplatform/v1/mocks/mock_featurestore_connection.h @@ -53,6 +53,18 @@ class MockFeaturestoreServiceConnection (google::cloud::aiplatform::v1::CreateFeaturestoreRequest const& request), (override)); + MOCK_METHOD( + StatusOr, CreateFeaturestore, + (ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::CreateFeaturestoreRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateFeaturestore, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr, GetFeaturestore, (google::cloud::aiplatform::v1::GetFeaturestoreRequest const& request), @@ -69,18 +81,54 @@ class MockFeaturestoreServiceConnection (google::cloud::aiplatform::v1::UpdateFeaturestoreRequest const& request), (override)); + MOCK_METHOD( + StatusOr, UpdateFeaturestore, + (ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::UpdateFeaturestoreRequest const& request), + (override)); + + MOCK_METHOD(future>, + UpdateFeaturestore, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteFeaturestore, (google::cloud::aiplatform::v1::DeleteFeaturestoreRequest const& request), (override)); + MOCK_METHOD( + StatusOr, DeleteFeaturestore, + (ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteFeaturestoreRequest const& request), + (override)); + + MOCK_METHOD( + future>, + DeleteFeaturestore, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, CreateEntityType, (google::cloud::aiplatform::v1::CreateEntityTypeRequest const& request), (override)); + MOCK_METHOD( + StatusOr, CreateEntityType, + (ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::CreateEntityTypeRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateEntityType, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr, GetEntityType, (google::cloud::aiplatform::v1::GetEntityTypeRequest const& request), @@ -102,11 +150,35 @@ class MockFeaturestoreServiceConnection (google::cloud::aiplatform::v1::DeleteEntityTypeRequest const& request), (override)); + MOCK_METHOD( + StatusOr, DeleteEntityType, + (ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteEntityTypeRequest const& request), + (override)); + + MOCK_METHOD( + future>, + DeleteEntityType, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, CreateFeature, (google::cloud::aiplatform::v1::CreateFeatureRequest const& request), (override)); + MOCK_METHOD( + StatusOr, CreateFeature, + (ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::CreateFeatureRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateFeature, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future< StatusOr>, @@ -115,6 +187,19 @@ class MockFeaturestoreServiceConnection request), (override)); + MOCK_METHOD(StatusOr, BatchCreateFeatures, + (ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::BatchCreateFeaturesRequest const& + request), + (override)); + + MOCK_METHOD( + future< + StatusOr>, + BatchCreateFeatures, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(StatusOr, GetFeature, (google::cloud::aiplatform::v1::GetFeatureRequest const& request), (override)); @@ -135,6 +220,18 @@ class MockFeaturestoreServiceConnection (google::cloud::aiplatform::v1::DeleteFeatureRequest const& request), (override)); + MOCK_METHOD( + StatusOr, DeleteFeature, + (ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteFeatureRequest const& request), + (override)); + + MOCK_METHOD( + future>, + DeleteFeature, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future< StatusOr>, @@ -143,6 +240,19 @@ class MockFeaturestoreServiceConnection request), (override)); + MOCK_METHOD(StatusOr, ImportFeatureValues, + (ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::ImportFeatureValuesRequest const& + request), + (override)); + + MOCK_METHOD( + future< + StatusOr>, + ImportFeatureValues, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, @@ -151,6 +261,20 @@ class MockFeaturestoreServiceConnection request), (override)); + MOCK_METHOD( + StatusOr, BatchReadFeatureValues, + (ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::BatchReadFeatureValuesRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + BatchReadFeatureValues, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future< StatusOr>, @@ -159,6 +283,19 @@ class MockFeaturestoreServiceConnection request), (override)); + MOCK_METHOD(StatusOr, ExportFeatureValues, + (ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::ExportFeatureValuesRequest const& + request), + (override)); + + MOCK_METHOD( + future< + StatusOr>, + ExportFeatureValues, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future< StatusOr>, @@ -167,6 +304,19 @@ class MockFeaturestoreServiceConnection request), (override)); + MOCK_METHOD(StatusOr, DeleteFeatureValues, + (ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteFeatureValuesRequest const& + request), + (override)); + + MOCK_METHOD( + future< + StatusOr>, + DeleteFeatureValues, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD((StreamRange), SearchFeatures, (google::cloud::aiplatform::v1::SearchFeaturesRequest request), diff --git a/google/cloud/aiplatform/v1/mocks/mock_index_connection.h b/google/cloud/aiplatform/v1/mocks/mock_index_connection.h index 1826c7fc0de72..6f04fbb73b7f1 100644 --- a/google/cloud/aiplatform/v1/mocks/mock_index_connection.h +++ b/google/cloud/aiplatform/v1/mocks/mock_index_connection.h @@ -52,6 +52,18 @@ class MockIndexServiceConnection (google::cloud::aiplatform::v1::CreateIndexRequest const& request), (override)); + MOCK_METHOD( + StatusOr, CreateIndex, + (ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::CreateIndexRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateIndex, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(StatusOr, GetIndex, (google::cloud::aiplatform::v1::GetIndexRequest const& request), (override)); @@ -65,12 +77,36 @@ class MockIndexServiceConnection (google::cloud::aiplatform::v1::UpdateIndexRequest const& request), (override)); + MOCK_METHOD( + StatusOr, UpdateIndex, + (ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::UpdateIndexRequest const& request), + (override)); + + MOCK_METHOD(future>, + UpdateIndex, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteIndex, (google::cloud::aiplatform::v1::DeleteIndexRequest const& request), (override)); + MOCK_METHOD( + StatusOr, DeleteIndex, + (ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteIndexRequest const& request), + (override)); + + MOCK_METHOD( + future>, + DeleteIndex, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr, UpsertDatapoints, diff --git a/google/cloud/aiplatform/v1/mocks/mock_index_endpoint_connection.h b/google/cloud/aiplatform/v1/mocks/mock_index_endpoint_connection.h index d17154a764af7..ab9b06a809533 100644 --- a/google/cloud/aiplatform/v1/mocks/mock_index_endpoint_connection.h +++ b/google/cloud/aiplatform/v1/mocks/mock_index_endpoint_connection.h @@ -53,6 +53,18 @@ class MockIndexEndpointServiceConnection request), (override)); + MOCK_METHOD(StatusOr, CreateIndexEndpoint, + (ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::CreateIndexEndpointRequest const& + request), + (override)); + + MOCK_METHOD(future>, + CreateIndexEndpoint, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr, GetIndexEndpoint, (google::cloud::aiplatform::v1::GetIndexEndpointRequest const& request), @@ -77,18 +89,54 @@ class MockIndexEndpointServiceConnection request), (override)); + MOCK_METHOD(StatusOr, DeleteIndexEndpoint, + (ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteIndexEndpointRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + DeleteIndexEndpoint, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeployIndex, (google::cloud::aiplatform::v1::DeployIndexRequest const& request), (override)); + MOCK_METHOD( + StatusOr, DeployIndex, + (ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeployIndexRequest const& request), + (override)); + + MOCK_METHOD( + future>, + DeployIndex, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, UndeployIndex, (google::cloud::aiplatform::v1::UndeployIndexRequest const& request), (override)); + MOCK_METHOD( + StatusOr, UndeployIndex, + (ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::UndeployIndexRequest const& request), + (override)); + + MOCK_METHOD( + future>, + UndeployIndex, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future< StatusOr>, @@ -96,6 +144,19 @@ class MockIndexEndpointServiceConnection (google::cloud::aiplatform::v1::MutateDeployedIndexRequest const& request), (override)); + + MOCK_METHOD(StatusOr, MutateDeployedIndex, + (ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::MutateDeployedIndexRequest const& + request), + (override)); + + MOCK_METHOD( + future< + StatusOr>, + MutateDeployedIndex, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); }; GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END diff --git a/google/cloud/aiplatform/v1/mocks/mock_job_connection.h b/google/cloud/aiplatform/v1/mocks/mock_job_connection.h index 16dd3e51ac0af..91811be7be44d 100644 --- a/google/cloud/aiplatform/v1/mocks/mock_job_connection.h +++ b/google/cloud/aiplatform/v1/mocks/mock_job_connection.h @@ -67,6 +67,18 @@ class MockJobServiceConnection : public aiplatform_v1::JobServiceConnection { (google::cloud::aiplatform::v1::DeleteCustomJobRequest const& request), (override)); + MOCK_METHOD( + StatusOr, DeleteCustomJob, + (ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteCustomJobRequest const& request), + (override)); + + MOCK_METHOD( + future>, + DeleteCustomJob, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( Status, CancelCustomJob, (google::cloud::aiplatform::v1::CancelCustomJobRequest const& request), @@ -98,6 +110,19 @@ class MockJobServiceConnection : public aiplatform_v1::JobServiceConnection { request), (override)); + MOCK_METHOD( + StatusOr, DeleteDataLabelingJob, + (ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteDataLabelingJobRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + DeleteDataLabelingJob, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( Status, CancelDataLabelingJob, (google::cloud::aiplatform::v1::CancelDataLabelingJobRequest const& @@ -131,6 +156,19 @@ class MockJobServiceConnection : public aiplatform_v1::JobServiceConnection { DeleteHyperparameterTuningJobRequest const& request), (override)); + MOCK_METHOD(StatusOr, + DeleteHyperparameterTuningJob, + (ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1:: + DeleteHyperparameterTuningJobRequest const& request), + (override)); + + MOCK_METHOD( + future>, + DeleteHyperparameterTuningJob, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(Status, CancelHyperparameterTuningJob, (google::cloud::aiplatform::v1:: CancelHyperparameterTuningJobRequest const& request), @@ -155,6 +193,18 @@ class MockJobServiceConnection : public aiplatform_v1::JobServiceConnection { (google::cloud::aiplatform::v1::DeleteNasJobRequest const& request), (override)); + MOCK_METHOD( + StatusOr, DeleteNasJob, + (ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteNasJobRequest const& request), + (override)); + + MOCK_METHOD( + future>, + DeleteNasJob, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( Status, CancelNasJob, (google::cloud::aiplatform::v1::CancelNasJobRequest const& request), @@ -199,6 +249,19 @@ class MockJobServiceConnection : public aiplatform_v1::JobServiceConnection { request), (override)); + MOCK_METHOD( + StatusOr, DeleteBatchPredictionJob, + (ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteBatchPredictionJobRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + DeleteBatchPredictionJob, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( Status, CancelBatchPredictionJob, (google::cloud::aiplatform::v1::CancelBatchPredictionJobRequest const& @@ -242,6 +305,20 @@ class MockJobServiceConnection : public aiplatform_v1::JobServiceConnection { UpdateModelDeploymentMonitoringJobRequest const& request), (override)); + MOCK_METHOD(StatusOr, + UpdateModelDeploymentMonitoringJob, + (ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1:: + UpdateModelDeploymentMonitoringJobRequest const& request), + (override)); + + MOCK_METHOD(future>, + UpdateModelDeploymentMonitoringJob, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteModelDeploymentMonitoringJob, @@ -249,6 +326,19 @@ class MockJobServiceConnection : public aiplatform_v1::JobServiceConnection { DeleteModelDeploymentMonitoringJobRequest const& request), (override)); + MOCK_METHOD(StatusOr, + DeleteModelDeploymentMonitoringJob, + (ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1:: + DeleteModelDeploymentMonitoringJobRequest const& request), + (override)); + + MOCK_METHOD( + future>, + DeleteModelDeploymentMonitoringJob, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(Status, PauseModelDeploymentMonitoringJob, (google::cloud::aiplatform::v1:: PauseModelDeploymentMonitoringJobRequest const& request), diff --git a/google/cloud/aiplatform/v1/mocks/mock_metadata_connection.h b/google/cloud/aiplatform/v1/mocks/mock_metadata_connection.h index a03f611a26916..e4cbaad92f4b5 100644 --- a/google/cloud/aiplatform/v1/mocks/mock_metadata_connection.h +++ b/google/cloud/aiplatform/v1/mocks/mock_metadata_connection.h @@ -53,6 +53,18 @@ class MockMetadataServiceConnection request), (override)); + MOCK_METHOD(StatusOr, CreateMetadataStore, + (ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::CreateMetadataStoreRequest const& + request), + (override)); + + MOCK_METHOD(future>, + CreateMetadataStore, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr, GetMetadataStore, (google::cloud::aiplatform::v1::GetMetadataStoreRequest const& request), @@ -72,6 +84,19 @@ class MockMetadataServiceConnection request), (override)); + MOCK_METHOD(StatusOr, DeleteMetadataStore, + (ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteMetadataStoreRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + DeleteMetadataStore, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr, CreateArtifact, (google::cloud::aiplatform::v1::CreateArtifactRequest const& request), @@ -98,12 +123,36 @@ class MockMetadataServiceConnection (google::cloud::aiplatform::v1::DeleteArtifactRequest const& request), (override)); + MOCK_METHOD( + StatusOr, DeleteArtifact, + (ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteArtifactRequest const& request), + (override)); + + MOCK_METHOD( + future>, + DeleteArtifact, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, PurgeArtifacts, (google::cloud::aiplatform::v1::PurgeArtifactsRequest const& request), (override)); + MOCK_METHOD( + StatusOr, PurgeArtifacts, + (ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::PurgeArtifactsRequest const& request), + (override)); + + MOCK_METHOD( + future>, + PurgeArtifacts, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr, CreateContext, (google::cloud::aiplatform::v1::CreateContextRequest const& request), @@ -129,12 +178,36 @@ class MockMetadataServiceConnection (google::cloud::aiplatform::v1::DeleteContextRequest const& request), (override)); + MOCK_METHOD( + StatusOr, DeleteContext, + (ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteContextRequest const& request), + (override)); + + MOCK_METHOD( + future>, + DeleteContext, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, PurgeContexts, (google::cloud::aiplatform::v1::PurgeContextsRequest const& request), (override)); + MOCK_METHOD( + StatusOr, PurgeContexts, + (ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::PurgeContextsRequest const& request), + (override)); + + MOCK_METHOD( + future>, + PurgeContexts, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(StatusOr, AddContextArtifactsAndExecutions, @@ -188,12 +261,36 @@ class MockMetadataServiceConnection (google::cloud::aiplatform::v1::DeleteExecutionRequest const& request), (override)); + MOCK_METHOD( + StatusOr, DeleteExecution, + (ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteExecutionRequest const& request), + (override)); + + MOCK_METHOD( + future>, + DeleteExecution, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, PurgeExecutions, (google::cloud::aiplatform::v1::PurgeExecutionsRequest const& request), (override)); + MOCK_METHOD( + StatusOr, PurgeExecutions, + (ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::PurgeExecutionsRequest const& request), + (override)); + + MOCK_METHOD( + future>, + PurgeExecutions, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr, AddExecutionEvents, diff --git a/google/cloud/aiplatform/v1/mocks/mock_migration_connection.h b/google/cloud/aiplatform/v1/mocks/mock_migration_connection.h index f8bbb6a93435e..b41ded76111e8 100644 --- a/google/cloud/aiplatform/v1/mocks/mock_migration_connection.h +++ b/google/cloud/aiplatform/v1/mocks/mock_migration_connection.h @@ -60,6 +60,20 @@ class MockMigrationServiceConnection (google::cloud::aiplatform::v1::BatchMigrateResourcesRequest const& request), (override)); + + MOCK_METHOD( + StatusOr, BatchMigrateResources, + (ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::BatchMigrateResourcesRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + BatchMigrateResources, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); }; GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END diff --git a/google/cloud/aiplatform/v1/mocks/mock_model_connection.h b/google/cloud/aiplatform/v1/mocks/mock_model_connection.h index 6af03bd1f0ef6..449b4ac458fe6 100644 --- a/google/cloud/aiplatform/v1/mocks/mock_model_connection.h +++ b/google/cloud/aiplatform/v1/mocks/mock_model_connection.h @@ -53,6 +53,18 @@ class MockModelServiceConnection (google::cloud::aiplatform::v1::UploadModelRequest const& request), (override)); + MOCK_METHOD( + StatusOr, UploadModel, + (ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::UploadModelRequest const& request), + (override)); + + MOCK_METHOD( + future>, + UploadModel, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(StatusOr, GetModel, (google::cloud::aiplatform::v1::GetModelRequest const& request), (override)); @@ -79,18 +91,56 @@ class MockModelServiceConnection request), (override)); + MOCK_METHOD( + StatusOr, UpdateExplanationDataset, + (ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::UpdateExplanationDatasetRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + UpdateExplanationDataset, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteModel, (google::cloud::aiplatform::v1::DeleteModelRequest const& request), (override)); + MOCK_METHOD( + StatusOr, DeleteModel, + (ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteModelRequest const& request), + (override)); + + MOCK_METHOD( + future>, + DeleteModel, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteModelVersion, (google::cloud::aiplatform::v1::DeleteModelVersionRequest const& request), (override)); + MOCK_METHOD( + StatusOr, DeleteModelVersion, + (ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteModelVersionRequest const& request), + (override)); + + MOCK_METHOD( + future>, + DeleteModelVersion, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(StatusOr, MergeVersionAliases, (google::cloud::aiplatform::v1::MergeVersionAliasesRequest const& @@ -103,12 +153,35 @@ class MockModelServiceConnection (google::cloud::aiplatform::v1::ExportModelRequest const& request), (override)); + MOCK_METHOD( + StatusOr, ExportModel, + (ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::ExportModelRequest const& request), + (override)); + + MOCK_METHOD( + future>, + ExportModel, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, CopyModel, (google::cloud::aiplatform::v1::CopyModelRequest const& request), (override)); + MOCK_METHOD(StatusOr, CopyModel, + (ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::CopyModelRequest const& request), + (override)); + + MOCK_METHOD( + future>, + CopyModel, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr, ImportModelEvaluation, diff --git a/google/cloud/aiplatform/v1/mocks/mock_notebook_connection.h b/google/cloud/aiplatform/v1/mocks/mock_notebook_connection.h index 311c0c5fcdf21..87f90a51c2565 100644 --- a/google/cloud/aiplatform/v1/mocks/mock_notebook_connection.h +++ b/google/cloud/aiplatform/v1/mocks/mock_notebook_connection.h @@ -54,6 +54,19 @@ class MockNotebookServiceConnection CreateNotebookRuntimeTemplateRequest const& request), (override)); + MOCK_METHOD(StatusOr, + CreateNotebookRuntimeTemplate, + (ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1:: + CreateNotebookRuntimeTemplateRequest const& request), + (override)); + + MOCK_METHOD( + future>, + CreateNotebookRuntimeTemplate, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr, GetNotebookRuntimeTemplate, @@ -75,6 +88,19 @@ class MockNotebookServiceConnection DeleteNotebookRuntimeTemplateRequest const& request), (override)); + MOCK_METHOD(StatusOr, + DeleteNotebookRuntimeTemplate, + (ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1:: + DeleteNotebookRuntimeTemplateRequest const& request), + (override)); + + MOCK_METHOD( + future>, + DeleteNotebookRuntimeTemplate, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(StatusOr, UpdateNotebookRuntimeTemplate, (google::cloud::aiplatform::v1:: @@ -88,6 +114,19 @@ class MockNotebookServiceConnection request), (override)); + MOCK_METHOD( + StatusOr, AssignNotebookRuntime, + (ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::AssignNotebookRuntimeRequest const& + request), + (override)); + + MOCK_METHOD(future>, + AssignNotebookRuntime, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr, GetNotebookRuntime, @@ -107,6 +146,19 @@ class MockNotebookServiceConnection request), (override)); + MOCK_METHOD( + StatusOr, DeleteNotebookRuntime, + (ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteNotebookRuntimeRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + DeleteNotebookRuntime, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, @@ -115,12 +167,39 @@ class MockNotebookServiceConnection request), (override)); + MOCK_METHOD( + StatusOr, UpgradeNotebookRuntime, + (ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::UpgradeNotebookRuntimeRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + UpgradeNotebookRuntime, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, StartNotebookRuntime, (google::cloud::aiplatform::v1::StartNotebookRuntimeRequest const& request), (override)); + + MOCK_METHOD(StatusOr, StartNotebookRuntime, + (ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::StartNotebookRuntimeRequest const& + request), + (override)); + + MOCK_METHOD(future>, + StartNotebookRuntime, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); }; GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END diff --git a/google/cloud/aiplatform/v1/mocks/mock_persistent_resource_connection.h b/google/cloud/aiplatform/v1/mocks/mock_persistent_resource_connection.h index 76e3b538f5b70..2ba9a88b2c6cc 100644 --- a/google/cloud/aiplatform/v1/mocks/mock_persistent_resource_connection.h +++ b/google/cloud/aiplatform/v1/mocks/mock_persistent_resource_connection.h @@ -54,6 +54,19 @@ class MockPersistentResourceServiceConnection request), (override)); + MOCK_METHOD( + StatusOr, CreatePersistentResource, + (ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::CreatePersistentResourceRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + CreatePersistentResource, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr, GetPersistentResource, @@ -74,6 +87,19 @@ class MockPersistentResourceServiceConnection request), (override)); + MOCK_METHOD( + StatusOr, DeletePersistentResource, + (ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeletePersistentResourceRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + DeletePersistentResource, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, UpdatePersistentResource, @@ -81,12 +107,38 @@ class MockPersistentResourceServiceConnection request), (override)); + MOCK_METHOD( + StatusOr, UpdatePersistentResource, + (ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::UpdatePersistentResourceRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + UpdatePersistentResource, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, RebootPersistentResource, (google::cloud::aiplatform::v1::RebootPersistentResourceRequest const& request), (override)); + + MOCK_METHOD( + StatusOr, RebootPersistentResource, + (ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::RebootPersistentResourceRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + RebootPersistentResource, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); }; GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END diff --git a/google/cloud/aiplatform/v1/mocks/mock_pipeline_connection.h b/google/cloud/aiplatform/v1/mocks/mock_pipeline_connection.h index 1d3ede02e9f31..7adf57816228d 100644 --- a/google/cloud/aiplatform/v1/mocks/mock_pipeline_connection.h +++ b/google/cloud/aiplatform/v1/mocks/mock_pipeline_connection.h @@ -73,6 +73,19 @@ class MockPipelineServiceConnection request), (override)); + MOCK_METHOD( + StatusOr, DeleteTrainingPipeline, + (ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteTrainingPipelineRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + DeleteTrainingPipeline, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( Status, CancelTrainingPipeline, (google::cloud::aiplatform::v1::CancelTrainingPipelineRequest const& @@ -100,6 +113,18 @@ class MockPipelineServiceConnection (google::cloud::aiplatform::v1::DeletePipelineJobRequest const& request), (override)); + MOCK_METHOD( + StatusOr, DeletePipelineJob, + (ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeletePipelineJobRequest const& request), + (override)); + + MOCK_METHOD( + future>, + DeletePipelineJob, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, @@ -108,6 +133,20 @@ class MockPipelineServiceConnection request), (override)); + MOCK_METHOD( + StatusOr, BatchDeletePipelineJobs, + (ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::BatchDeletePipelineJobsRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + BatchDeletePipelineJobs, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( Status, CancelPipelineJob, (google::cloud::aiplatform::v1::CancelPipelineJobRequest const& request), @@ -120,6 +159,20 @@ class MockPipelineServiceConnection (google::cloud::aiplatform::v1::BatchCancelPipelineJobsRequest const& request), (override)); + + MOCK_METHOD( + StatusOr, BatchCancelPipelineJobs, + (ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::BatchCancelPipelineJobsRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + BatchCancelPipelineJobs, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); }; GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END diff --git a/google/cloud/aiplatform/v1/mocks/mock_schedule_connection.h b/google/cloud/aiplatform/v1/mocks/mock_schedule_connection.h index 445b16ba829b3..d89aaa4f5fef2 100644 --- a/google/cloud/aiplatform/v1/mocks/mock_schedule_connection.h +++ b/google/cloud/aiplatform/v1/mocks/mock_schedule_connection.h @@ -58,6 +58,18 @@ class MockScheduleServiceConnection (google::cloud::aiplatform::v1::DeleteScheduleRequest const& request), (override)); + MOCK_METHOD( + StatusOr, DeleteSchedule, + (ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteScheduleRequest const& request), + (override)); + + MOCK_METHOD( + future>, + DeleteSchedule, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr, GetSchedule, (google::cloud::aiplatform::v1::GetScheduleRequest const& request), diff --git a/google/cloud/aiplatform/v1/mocks/mock_specialist_pool_connection.h b/google/cloud/aiplatform/v1/mocks/mock_specialist_pool_connection.h index d8837dd78e106..8e8e9414d48d5 100644 --- a/google/cloud/aiplatform/v1/mocks/mock_specialist_pool_connection.h +++ b/google/cloud/aiplatform/v1/mocks/mock_specialist_pool_connection.h @@ -53,6 +53,18 @@ class MockSpecialistPoolServiceConnection request), (override)); + MOCK_METHOD(StatusOr, CreateSpecialistPool, + (ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::CreateSpecialistPoolRequest const& + request), + (override)); + + MOCK_METHOD(future>, + CreateSpecialistPool, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr, GetSpecialistPool, @@ -72,11 +84,35 @@ class MockSpecialistPoolServiceConnection request), (override)); + MOCK_METHOD(StatusOr, DeleteSpecialistPool, + (ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteSpecialistPoolRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + DeleteSpecialistPool, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, UpdateSpecialistPool, (google::cloud::aiplatform::v1::UpdateSpecialistPoolRequest const& request), (override)); + + MOCK_METHOD(StatusOr, UpdateSpecialistPool, + (ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::UpdateSpecialistPoolRequest const& + request), + (override)); + + MOCK_METHOD(future>, + UpdateSpecialistPool, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); }; GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END diff --git a/google/cloud/aiplatform/v1/mocks/mock_tensorboard_connection.h b/google/cloud/aiplatform/v1/mocks/mock_tensorboard_connection.h index 5c80916e5b243..df23fe7956ed8 100644 --- a/google/cloud/aiplatform/v1/mocks/mock_tensorboard_connection.h +++ b/google/cloud/aiplatform/v1/mocks/mock_tensorboard_connection.h @@ -53,6 +53,18 @@ class MockTensorboardServiceConnection (google::cloud::aiplatform::v1::CreateTensorboardRequest const& request), (override)); + MOCK_METHOD( + StatusOr, CreateTensorboard, + (ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::CreateTensorboardRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateTensorboard, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr, GetTensorboard, (google::cloud::aiplatform::v1::GetTensorboardRequest const& request), @@ -64,6 +76,18 @@ class MockTensorboardServiceConnection (google::cloud::aiplatform::v1::UpdateTensorboardRequest const& request), (override)); + MOCK_METHOD( + StatusOr, UpdateTensorboard, + (ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::UpdateTensorboardRequest const& request), + (override)); + + MOCK_METHOD(future>, + UpdateTensorboard, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD((StreamRange), ListTensorboards, (google::cloud::aiplatform::v1::ListTensorboardsRequest request), @@ -75,6 +99,18 @@ class MockTensorboardServiceConnection (google::cloud::aiplatform::v1::DeleteTensorboardRequest const& request), (override)); + MOCK_METHOD( + StatusOr, DeleteTensorboard, + (ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteTensorboardRequest const& request), + (override)); + + MOCK_METHOD( + future>, + DeleteTensorboard, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr, ReadTensorboardUsage, @@ -124,6 +160,19 @@ class MockTensorboardServiceConnection request), (override)); + MOCK_METHOD( + StatusOr, DeleteTensorboardExperiment, + (ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteTensorboardExperimentRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + DeleteTensorboardExperiment, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(StatusOr, CreateTensorboardRun, (google::cloud::aiplatform::v1::CreateTensorboardRunRequest const& @@ -163,6 +212,18 @@ class MockTensorboardServiceConnection request), (override)); + MOCK_METHOD(StatusOr, DeleteTensorboardRun, + (ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteTensorboardRunRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + DeleteTensorboardRun, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(StatusOr, BatchCreateTensorboardTimeSeries, @@ -204,6 +265,19 @@ class MockTensorboardServiceConnection request), (override)); + MOCK_METHOD( + StatusOr, DeleteTensorboardTimeSeries, + (ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteTensorboardTimeSeriesRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + DeleteTensorboardTimeSeries, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(StatusOr, BatchReadTensorboardTimeSeriesData, diff --git a/google/cloud/aiplatform/v1/mocks/mock_vizier_connection.h b/google/cloud/aiplatform/v1/mocks/mock_vizier_connection.h index 2f8e5d488f773..04c6fdbf6d002 100644 --- a/google/cloud/aiplatform/v1/mocks/mock_vizier_connection.h +++ b/google/cloud/aiplatform/v1/mocks/mock_vizier_connection.h @@ -76,6 +76,18 @@ class MockVizierServiceConnection (google::cloud::aiplatform::v1::SuggestTrialsRequest const& request), (override)); + MOCK_METHOD( + StatusOr, SuggestTrials, + (ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::SuggestTrialsRequest const& request), + (override)); + + MOCK_METHOD( + future>, + SuggestTrials, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr, CreateTrial, (google::cloud::aiplatform::v1::CreateTrialRequest const& request), @@ -113,6 +125,20 @@ class MockVizierServiceConnection request), (override)); + MOCK_METHOD( + StatusOr, CheckTrialEarlyStoppingState, + (ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::CheckTrialEarlyStoppingStateRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + CheckTrialEarlyStoppingState, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(StatusOr, StopTrial, (google::cloud::aiplatform::v1::StopTrialRequest const& request), (override)); diff --git a/google/cloud/aiplatform/v1/model_connection.cc b/google/cloud/aiplatform/v1/model_connection.cc index 030f4c3770cf6..9825bf26b4331 100644 --- a/google/cloud/aiplatform/v1/model_connection.cc +++ b/google/cloud/aiplatform/v1/model_connection.cc @@ -46,6 +46,21 @@ ModelServiceConnection::UploadModel( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr ModelServiceConnection::UploadModel( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::UploadModelRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +ModelServiceConnection::UploadModel(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr ModelServiceConnection::GetModel( google::cloud::aiplatform::v1::GetModelRequest const&) { return Status(StatusCode::kUnimplemented, "not implemented"); @@ -82,6 +97,23 @@ ModelServiceConnection::UpdateExplanationDataset( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +ModelServiceConnection::UpdateExplanationDataset( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::UpdateExplanationDatasetRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future< + StatusOr> +ModelServiceConnection::UpdateExplanationDataset( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> ModelServiceConnection::DeleteModel( google::cloud::aiplatform::v1::DeleteModelRequest const&) { @@ -90,6 +122,21 @@ ModelServiceConnection::DeleteModel( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr ModelServiceConnection::DeleteModel( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteModelRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +ModelServiceConnection::DeleteModel(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> ModelServiceConnection::DeleteModelVersion( google::cloud::aiplatform::v1::DeleteModelVersionRequest const&) { @@ -98,6 +145,22 @@ ModelServiceConnection::DeleteModelVersion( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +ModelServiceConnection::DeleteModelVersion( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteModelVersionRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +ModelServiceConnection::DeleteModelVersion( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr ModelServiceConnection::MergeVersionAliases( google::cloud::aiplatform::v1::MergeVersionAliasesRequest const&) { @@ -112,6 +175,21 @@ ModelServiceConnection::ExportModel( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr ModelServiceConnection::ExportModel( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::ExportModelRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +ModelServiceConnection::ExportModel(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> ModelServiceConnection::CopyModel( google::cloud::aiplatform::v1::CopyModelRequest const&) { @@ -120,6 +198,21 @@ ModelServiceConnection::CopyModel( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr ModelServiceConnection::CopyModel( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::CopyModelRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +ModelServiceConnection::CopyModel(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr ModelServiceConnection::ImportModelEvaluation( google::cloud::aiplatform::v1::ImportModelEvaluationRequest const&) { diff --git a/google/cloud/aiplatform/v1/model_connection.h b/google/cloud/aiplatform/v1/model_connection.h index 509cad1eed6f4..7dab58714c0d2 100644 --- a/google/cloud/aiplatform/v1/model_connection.h +++ b/google/cloud/aiplatform/v1/model_connection.h @@ -22,8 +22,10 @@ #include "google/cloud/aiplatform/v1/internal/model_retry_traits.h" #include "google/cloud/aiplatform/v1/model_connection_idempotency_policy.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/internal/retry_policy_impl.h" +#include "google/cloud/no_await_tag.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" #include "google/cloud/status_or.h" @@ -189,6 +191,13 @@ class ModelServiceConnection { virtual future> UploadModel(google::cloud::aiplatform::v1::UploadModelRequest const& request); + virtual StatusOr UploadModel( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::UploadModelRequest const& request); + + virtual future> + UploadModel(ExperimentalTag, google::longrunning::Operation const& operation); + virtual StatusOr GetModel( google::cloud::aiplatform::v1::GetModelRequest const& request); @@ -207,24 +216,65 @@ class ModelServiceConnection { google::cloud::aiplatform::v1::UpdateExplanationDatasetRequest const& request); + virtual StatusOr UpdateExplanationDataset( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::UpdateExplanationDatasetRequest const& + request); + + virtual future< + StatusOr> + UpdateExplanationDataset(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future< StatusOr> DeleteModel(google::cloud::aiplatform::v1::DeleteModelRequest const& request); + virtual StatusOr DeleteModel( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteModelRequest const& request); + + virtual future< + StatusOr> + DeleteModel(ExperimentalTag, google::longrunning::Operation const& operation); + virtual future< StatusOr> DeleteModelVersion( google::cloud::aiplatform::v1::DeleteModelVersionRequest const& request); + virtual StatusOr DeleteModelVersion( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteModelVersionRequest const& request); + + virtual future< + StatusOr> + DeleteModelVersion(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StatusOr MergeVersionAliases( google::cloud::aiplatform::v1::MergeVersionAliasesRequest const& request); virtual future> ExportModel(google::cloud::aiplatform::v1::ExportModelRequest const& request); + virtual StatusOr ExportModel( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::ExportModelRequest const& request); + + virtual future> + ExportModel(ExperimentalTag, google::longrunning::Operation const& operation); + virtual future> CopyModel(google::cloud::aiplatform::v1::CopyModelRequest const& request); + virtual StatusOr CopyModel( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::CopyModelRequest const& request); + + virtual future> + CopyModel(ExperimentalTag, google::longrunning::Operation const& operation); + virtual StatusOr ImportModelEvaluation( google::cloud::aiplatform::v1::ImportModelEvaluationRequest const& diff --git a/google/cloud/aiplatform/v1/model_garden_connection.h b/google/cloud/aiplatform/v1/model_garden_connection.h index 9129604b2ec9c..a4080a7d04702 100644 --- a/google/cloud/aiplatform/v1/model_garden_connection.h +++ b/google/cloud/aiplatform/v1/model_garden_connection.h @@ -22,6 +22,7 @@ #include "google/cloud/aiplatform/v1/internal/model_garden_retry_traits.h" #include "google/cloud/aiplatform/v1/model_garden_connection_idempotency_policy.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/internal/retry_policy_impl.h" #include "google/cloud/options.h" #include "google/cloud/status_or.h" diff --git a/google/cloud/aiplatform/v1/notebook_connection.cc b/google/cloud/aiplatform/v1/notebook_connection.cc index 7d21ab6cf8b92..b9f2fcbc800ab 100644 --- a/google/cloud/aiplatform/v1/notebook_connection.cc +++ b/google/cloud/aiplatform/v1/notebook_connection.cc @@ -47,6 +47,23 @@ NotebookServiceConnection::CreateNotebookRuntimeTemplate( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +NotebookServiceConnection::CreateNotebookRuntimeTemplate( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1:: + CreateNotebookRuntimeTemplateRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +NotebookServiceConnection::CreateNotebookRuntimeTemplate( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr NotebookServiceConnection::GetNotebookRuntimeTemplate( google::cloud::aiplatform::v1::GetNotebookRuntimeTemplateRequest const&) { @@ -70,6 +87,23 @@ NotebookServiceConnection::DeleteNotebookRuntimeTemplate( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +NotebookServiceConnection::DeleteNotebookRuntimeTemplate( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1:: + DeleteNotebookRuntimeTemplateRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +NotebookServiceConnection::DeleteNotebookRuntimeTemplate( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr NotebookServiceConnection::UpdateNotebookRuntimeTemplate( google::cloud::aiplatform::v1:: @@ -85,6 +119,22 @@ NotebookServiceConnection::AssignNotebookRuntime( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +NotebookServiceConnection::AssignNotebookRuntime( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::AssignNotebookRuntimeRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +NotebookServiceConnection::AssignNotebookRuntime( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr NotebookServiceConnection::GetNotebookRuntime( google::cloud::aiplatform::v1::GetNotebookRuntimeRequest const&) { @@ -107,6 +157,22 @@ NotebookServiceConnection::DeleteNotebookRuntime( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +NotebookServiceConnection::DeleteNotebookRuntime( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteNotebookRuntimeRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +NotebookServiceConnection::DeleteNotebookRuntime( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> NotebookServiceConnection::UpgradeNotebookRuntime( google::cloud::aiplatform::v1::UpgradeNotebookRuntimeRequest const&) { @@ -115,6 +181,22 @@ NotebookServiceConnection::UpgradeNotebookRuntime( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +NotebookServiceConnection::UpgradeNotebookRuntime( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::UpgradeNotebookRuntimeRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +NotebookServiceConnection::UpgradeNotebookRuntime( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> NotebookServiceConnection::StartNotebookRuntime( google::cloud::aiplatform::v1::StartNotebookRuntimeRequest const&) { @@ -123,6 +205,22 @@ NotebookServiceConnection::StartNotebookRuntime( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +NotebookServiceConnection::StartNotebookRuntime( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::StartNotebookRuntimeRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +NotebookServiceConnection::StartNotebookRuntime( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + std::shared_ptr MakeNotebookServiceConnection( std::string const& location, Options options) { internal::CheckExpectedOptions + CreateNotebookRuntimeTemplate( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::CreateNotebookRuntimeTemplateRequest const& + request); + + virtual future< + StatusOr> + CreateNotebookRuntimeTemplate( + ExperimentalTag, google::longrunning::Operation const& operation); + virtual StatusOr GetNotebookRuntimeTemplate( google::cloud::aiplatform::v1::GetNotebookRuntimeTemplateRequest const& @@ -209,6 +222,17 @@ class NotebookServiceConnection { google::cloud::aiplatform::v1::DeleteNotebookRuntimeTemplateRequest const& request); + virtual StatusOr + DeleteNotebookRuntimeTemplate( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteNotebookRuntimeTemplateRequest const& + request); + + virtual future< + StatusOr> + DeleteNotebookRuntimeTemplate( + ExperimentalTag, google::longrunning::Operation const& operation); + virtual StatusOr UpdateNotebookRuntimeTemplate( google::cloud::aiplatform::v1::UpdateNotebookRuntimeTemplateRequest const& @@ -219,6 +243,15 @@ class NotebookServiceConnection { google::cloud::aiplatform::v1::AssignNotebookRuntimeRequest const& request); + virtual StatusOr AssignNotebookRuntime( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::AssignNotebookRuntimeRequest const& + request); + + virtual future> + AssignNotebookRuntime(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StatusOr GetNotebookRuntime( google::cloud::aiplatform::v1::GetNotebookRuntimeRequest const& request); @@ -233,17 +266,47 @@ class NotebookServiceConnection { google::cloud::aiplatform::v1::DeleteNotebookRuntimeRequest const& request); + virtual StatusOr DeleteNotebookRuntime( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteNotebookRuntimeRequest const& + request); + + virtual future< + StatusOr> + DeleteNotebookRuntime(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future< StatusOr> UpgradeNotebookRuntime( google::cloud::aiplatform::v1::UpgradeNotebookRuntimeRequest const& request); + virtual StatusOr UpgradeNotebookRuntime( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::UpgradeNotebookRuntimeRequest const& + request); + + virtual future< + StatusOr> + UpgradeNotebookRuntime(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future< StatusOr> StartNotebookRuntime( google::cloud::aiplatform::v1::StartNotebookRuntimeRequest const& request); + + virtual StatusOr StartNotebookRuntime( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::StartNotebookRuntimeRequest const& + request); + + virtual future< + StatusOr> + StartNotebookRuntime(ExperimentalTag, + google::longrunning::Operation const& operation); }; /** diff --git a/google/cloud/aiplatform/v1/persistent_resource_connection.cc b/google/cloud/aiplatform/v1/persistent_resource_connection.cc index 72508792d901f..135e9d19d1685 100644 --- a/google/cloud/aiplatform/v1/persistent_resource_connection.cc +++ b/google/cloud/aiplatform/v1/persistent_resource_connection.cc @@ -47,6 +47,22 @@ PersistentResourceServiceConnection::CreatePersistentResource( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +PersistentResourceServiceConnection::CreatePersistentResource( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::CreatePersistentResourceRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +PersistentResourceServiceConnection::CreatePersistentResource( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr PersistentResourceServiceConnection::GetPersistentResource( google::cloud::aiplatform::v1::GetPersistentResourceRequest const&) { @@ -69,6 +85,22 @@ PersistentResourceServiceConnection::DeletePersistentResource( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +PersistentResourceServiceConnection::DeletePersistentResource( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeletePersistentResourceRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +PersistentResourceServiceConnection::DeletePersistentResource( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> PersistentResourceServiceConnection::UpdatePersistentResource( google::cloud::aiplatform::v1::UpdatePersistentResourceRequest const&) { @@ -77,6 +109,22 @@ PersistentResourceServiceConnection::UpdatePersistentResource( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +PersistentResourceServiceConnection::UpdatePersistentResource( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::UpdatePersistentResourceRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +PersistentResourceServiceConnection::UpdatePersistentResource( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> PersistentResourceServiceConnection::RebootPersistentResource( google::cloud::aiplatform::v1::RebootPersistentResourceRequest const&) { @@ -85,6 +133,22 @@ PersistentResourceServiceConnection::RebootPersistentResource( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +PersistentResourceServiceConnection::RebootPersistentResource( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::RebootPersistentResourceRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +PersistentResourceServiceConnection::RebootPersistentResource( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + std::shared_ptr MakePersistentResourceServiceConnection(std::string const& location, Options options) { diff --git a/google/cloud/aiplatform/v1/persistent_resource_connection.h b/google/cloud/aiplatform/v1/persistent_resource_connection.h index 51d4fe5705428..3cbd0049c7e44 100644 --- a/google/cloud/aiplatform/v1/persistent_resource_connection.h +++ b/google/cloud/aiplatform/v1/persistent_resource_connection.h @@ -22,8 +22,10 @@ #include "google/cloud/aiplatform/v1/internal/persistent_resource_retry_traits.h" #include "google/cloud/aiplatform/v1/persistent_resource_connection_idempotency_policy.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/internal/retry_policy_impl.h" +#include "google/cloud/no_await_tag.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" #include "google/cloud/status_or.h" @@ -205,6 +207,15 @@ class PersistentResourceServiceConnection { google::cloud::aiplatform::v1::CreatePersistentResourceRequest const& request); + virtual StatusOr CreatePersistentResource( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::CreatePersistentResourceRequest const& + request); + + virtual future> + CreatePersistentResource(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StatusOr GetPersistentResource( google::cloud::aiplatform::v1::GetPersistentResourceRequest const& @@ -220,15 +231,43 @@ class PersistentResourceServiceConnection { google::cloud::aiplatform::v1::DeletePersistentResourceRequest const& request); + virtual StatusOr DeletePersistentResource( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeletePersistentResourceRequest const& + request); + + virtual future< + StatusOr> + DeletePersistentResource(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> UpdatePersistentResource( google::cloud::aiplatform::v1::UpdatePersistentResourceRequest const& request); + virtual StatusOr UpdatePersistentResource( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::UpdatePersistentResourceRequest const& + request); + + virtual future> + UpdatePersistentResource(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> RebootPersistentResource( google::cloud::aiplatform::v1::RebootPersistentResourceRequest const& request); + + virtual StatusOr RebootPersistentResource( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::RebootPersistentResourceRequest const& + request); + + virtual future> + RebootPersistentResource(ExperimentalTag, + google::longrunning::Operation const& operation); }; /** diff --git a/google/cloud/aiplatform/v1/pipeline_connection.cc b/google/cloud/aiplatform/v1/pipeline_connection.cc index 5253beb59144c..5ff42deaeb69e 100644 --- a/google/cloud/aiplatform/v1/pipeline_connection.cc +++ b/google/cloud/aiplatform/v1/pipeline_connection.cc @@ -66,6 +66,22 @@ PipelineServiceConnection::DeleteTrainingPipeline( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +PipelineServiceConnection::DeleteTrainingPipeline( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteTrainingPipelineRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +PipelineServiceConnection::DeleteTrainingPipeline( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + Status PipelineServiceConnection::CancelTrainingPipeline( google::cloud::aiplatform::v1::CancelTrainingPipelineRequest const&) { return Status(StatusCode::kUnimplemented, "not implemented"); @@ -99,6 +115,22 @@ PipelineServiceConnection::DeletePipelineJob( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +PipelineServiceConnection::DeletePipelineJob( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeletePipelineJobRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +PipelineServiceConnection::DeletePipelineJob( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> PipelineServiceConnection::BatchDeletePipelineJobs( google::cloud::aiplatform::v1::BatchDeletePipelineJobsRequest const&) { @@ -107,6 +139,22 @@ PipelineServiceConnection::BatchDeletePipelineJobs( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +PipelineServiceConnection::BatchDeletePipelineJobs( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::BatchDeletePipelineJobsRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +PipelineServiceConnection::BatchDeletePipelineJobs( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + Status PipelineServiceConnection::CancelPipelineJob( google::cloud::aiplatform::v1::CancelPipelineJobRequest const&) { return Status(StatusCode::kUnimplemented, "not implemented"); @@ -120,6 +168,22 @@ PipelineServiceConnection::BatchCancelPipelineJobs( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +PipelineServiceConnection::BatchCancelPipelineJobs( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::BatchCancelPipelineJobsRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +PipelineServiceConnection::BatchCancelPipelineJobs( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + std::shared_ptr MakePipelineServiceConnection( std::string const& location, Options options) { internal::CheckExpectedOptions DeleteTrainingPipeline( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteTrainingPipelineRequest const& + request); + + virtual future< + StatusOr> + DeleteTrainingPipeline(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual Status CancelTrainingPipeline( google::cloud::aiplatform::v1::CancelTrainingPipelineRequest const& request); @@ -226,12 +238,31 @@ class PipelineServiceConnection { DeletePipelineJob( google::cloud::aiplatform::v1::DeletePipelineJobRequest const& request); + virtual StatusOr DeletePipelineJob( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeletePipelineJobRequest const& request); + + virtual future< + StatusOr> + DeletePipelineJob(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future< StatusOr> BatchDeletePipelineJobs( google::cloud::aiplatform::v1::BatchDeletePipelineJobsRequest const& request); + virtual StatusOr BatchDeletePipelineJobs( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::BatchDeletePipelineJobsRequest const& + request); + + virtual future< + StatusOr> + BatchDeletePipelineJobs(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual Status CancelPipelineJob( google::cloud::aiplatform::v1::CancelPipelineJobRequest const& request); @@ -240,6 +271,16 @@ class PipelineServiceConnection { BatchCancelPipelineJobs( google::cloud::aiplatform::v1::BatchCancelPipelineJobsRequest const& request); + + virtual StatusOr BatchCancelPipelineJobs( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::BatchCancelPipelineJobsRequest const& + request); + + virtual future< + StatusOr> + BatchCancelPipelineJobs(ExperimentalTag, + google::longrunning::Operation const& operation); }; /** diff --git a/google/cloud/aiplatform/v1/prediction_connection.h b/google/cloud/aiplatform/v1/prediction_connection.h index 5678bac6e544e..7ea0a3a7de66b 100644 --- a/google/cloud/aiplatform/v1/prediction_connection.h +++ b/google/cloud/aiplatform/v1/prediction_connection.h @@ -22,6 +22,7 @@ #include "google/cloud/aiplatform/v1/internal/prediction_retry_traits.h" #include "google/cloud/aiplatform/v1/prediction_connection_idempotency_policy.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/internal/async_read_write_stream_impl.h" #include "google/cloud/internal/retry_policy_impl.h" #include "google/cloud/options.h" diff --git a/google/cloud/aiplatform/v1/schedule_connection.cc b/google/cloud/aiplatform/v1/schedule_connection.cc index 12c0b8828ef9c..a45b30d0b0b83 100644 --- a/google/cloud/aiplatform/v1/schedule_connection.cc +++ b/google/cloud/aiplatform/v1/schedule_connection.cc @@ -52,6 +52,22 @@ ScheduleServiceConnection::DeleteSchedule( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +ScheduleServiceConnection::DeleteSchedule( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteScheduleRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +ScheduleServiceConnection::DeleteSchedule( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr ScheduleServiceConnection::GetSchedule( google::cloud::aiplatform::v1::GetScheduleRequest const&) { diff --git a/google/cloud/aiplatform/v1/schedule_connection.h b/google/cloud/aiplatform/v1/schedule_connection.h index c455a9017e04e..79ec5c8563bf2 100644 --- a/google/cloud/aiplatform/v1/schedule_connection.h +++ b/google/cloud/aiplatform/v1/schedule_connection.h @@ -22,8 +22,10 @@ #include "google/cloud/aiplatform/v1/internal/schedule_retry_traits.h" #include "google/cloud/aiplatform/v1/schedule_connection_idempotency_policy.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/internal/retry_policy_impl.h" +#include "google/cloud/no_await_tag.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" #include "google/cloud/status_or.h" @@ -195,6 +197,15 @@ class ScheduleServiceConnection { DeleteSchedule( google::cloud::aiplatform::v1::DeleteScheduleRequest const& request); + virtual StatusOr DeleteSchedule( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteScheduleRequest const& request); + + virtual future< + StatusOr> + DeleteSchedule(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StatusOr GetSchedule( google::cloud::aiplatform::v1::GetScheduleRequest const& request); diff --git a/google/cloud/aiplatform/v1/specialist_pool_connection.cc b/google/cloud/aiplatform/v1/specialist_pool_connection.cc index 020d91936c7b8..fd61a53c17847 100644 --- a/google/cloud/aiplatform/v1/specialist_pool_connection.cc +++ b/google/cloud/aiplatform/v1/specialist_pool_connection.cc @@ -46,6 +46,22 @@ SpecialistPoolServiceConnection::CreateSpecialistPool( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +SpecialistPoolServiceConnection::CreateSpecialistPool( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::CreateSpecialistPoolRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +SpecialistPoolServiceConnection::CreateSpecialistPool( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr SpecialistPoolServiceConnection::GetSpecialistPool( google::cloud::aiplatform::v1::GetSpecialistPoolRequest const&) { @@ -68,6 +84,22 @@ SpecialistPoolServiceConnection::DeleteSpecialistPool( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +SpecialistPoolServiceConnection::DeleteSpecialistPool( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteSpecialistPoolRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +SpecialistPoolServiceConnection::DeleteSpecialistPool( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> SpecialistPoolServiceConnection::UpdateSpecialistPool( google::cloud::aiplatform::v1::UpdateSpecialistPoolRequest const&) { @@ -76,6 +108,22 @@ SpecialistPoolServiceConnection::UpdateSpecialistPool( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +SpecialistPoolServiceConnection::UpdateSpecialistPool( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::UpdateSpecialistPoolRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +SpecialistPoolServiceConnection::UpdateSpecialistPool( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + std::shared_ptr MakeSpecialistPoolServiceConnection(std::string const& location, Options options) { diff --git a/google/cloud/aiplatform/v1/specialist_pool_connection.h b/google/cloud/aiplatform/v1/specialist_pool_connection.h index 348d1d6fc5274..998b117ac14e1 100644 --- a/google/cloud/aiplatform/v1/specialist_pool_connection.h +++ b/google/cloud/aiplatform/v1/specialist_pool_connection.h @@ -22,8 +22,10 @@ #include "google/cloud/aiplatform/v1/internal/specialist_pool_retry_traits.h" #include "google/cloud/aiplatform/v1/specialist_pool_connection_idempotency_policy.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/internal/retry_policy_impl.h" +#include "google/cloud/no_await_tag.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" #include "google/cloud/status_or.h" @@ -197,6 +199,15 @@ class SpecialistPoolServiceConnection { google::cloud::aiplatform::v1::CreateSpecialistPoolRequest const& request); + virtual StatusOr CreateSpecialistPool( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::CreateSpecialistPoolRequest const& + request); + + virtual future> + CreateSpecialistPool(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StatusOr GetSpecialistPool( google::cloud::aiplatform::v1::GetSpecialistPoolRequest const& request); @@ -211,10 +222,29 @@ class SpecialistPoolServiceConnection { google::cloud::aiplatform::v1::DeleteSpecialistPoolRequest const& request); + virtual StatusOr DeleteSpecialistPool( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteSpecialistPoolRequest const& + request); + + virtual future< + StatusOr> + DeleteSpecialistPool(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> UpdateSpecialistPool( google::cloud::aiplatform::v1::UpdateSpecialistPoolRequest const& request); + + virtual StatusOr UpdateSpecialistPool( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::UpdateSpecialistPoolRequest const& + request); + + virtual future> + UpdateSpecialistPool(ExperimentalTag, + google::longrunning::Operation const& operation); }; /** diff --git a/google/cloud/aiplatform/v1/tensorboard_connection.cc b/google/cloud/aiplatform/v1/tensorboard_connection.cc index 0050ffdaefc45..1470972b7490c 100644 --- a/google/cloud/aiplatform/v1/tensorboard_connection.cc +++ b/google/cloud/aiplatform/v1/tensorboard_connection.cc @@ -46,6 +46,22 @@ TensorboardServiceConnection::CreateTensorboard( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +TensorboardServiceConnection::CreateTensorboard( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::CreateTensorboardRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +TensorboardServiceConnection::CreateTensorboard( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr TensorboardServiceConnection::GetTensorboard( google::cloud::aiplatform::v1::GetTensorboardRequest const&) { @@ -60,6 +76,22 @@ TensorboardServiceConnection::UpdateTensorboard( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +TensorboardServiceConnection::UpdateTensorboard( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::UpdateTensorboardRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +TensorboardServiceConnection::UpdateTensorboard( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StreamRange TensorboardServiceConnection::ListTensorboards( google::cloud::aiplatform::v1:: @@ -76,6 +108,22 @@ TensorboardServiceConnection::DeleteTensorboard( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +TensorboardServiceConnection::DeleteTensorboard( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteTensorboardRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +TensorboardServiceConnection::DeleteTensorboard( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr TensorboardServiceConnection::ReadTensorboardUsage( google::cloud::aiplatform::v1::ReadTensorboardUsageRequest const&) { @@ -122,6 +170,22 @@ TensorboardServiceConnection::DeleteTensorboardExperiment( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +TensorboardServiceConnection::DeleteTensorboardExperiment( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteTensorboardExperimentRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +TensorboardServiceConnection::DeleteTensorboardExperiment( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr TensorboardServiceConnection::CreateTensorboardRun( google::cloud::aiplatform::v1::CreateTensorboardRunRequest const&) { @@ -162,6 +226,22 @@ TensorboardServiceConnection::DeleteTensorboardRun( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +TensorboardServiceConnection::DeleteTensorboardRun( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteTensorboardRunRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +TensorboardServiceConnection::DeleteTensorboardRun( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr< google::cloud::aiplatform::v1::BatchCreateTensorboardTimeSeriesResponse> TensorboardServiceConnection::BatchCreateTensorboardTimeSeries( @@ -204,6 +284,22 @@ TensorboardServiceConnection::DeleteTensorboardTimeSeries( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +TensorboardServiceConnection::DeleteTensorboardTimeSeries( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteTensorboardTimeSeriesRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +TensorboardServiceConnection::DeleteTensorboardTimeSeries( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr< google::cloud::aiplatform::v1::BatchReadTensorboardTimeSeriesDataResponse> TensorboardServiceConnection::BatchReadTensorboardTimeSeriesData( diff --git a/google/cloud/aiplatform/v1/tensorboard_connection.h b/google/cloud/aiplatform/v1/tensorboard_connection.h index af4a06803d4cf..19d63f89f2b81 100644 --- a/google/cloud/aiplatform/v1/tensorboard_connection.h +++ b/google/cloud/aiplatform/v1/tensorboard_connection.h @@ -22,8 +22,10 @@ #include "google/cloud/aiplatform/v1/internal/tensorboard_retry_traits.h" #include "google/cloud/aiplatform/v1/tensorboard_connection_idempotency_policy.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/internal/retry_policy_impl.h" +#include "google/cloud/no_await_tag.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" #include "google/cloud/status_or.h" @@ -193,6 +195,14 @@ class TensorboardServiceConnection { CreateTensorboard( google::cloud::aiplatform::v1::CreateTensorboardRequest const& request); + virtual StatusOr CreateTensorboard( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::CreateTensorboardRequest const& request); + + virtual future> + CreateTensorboard(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StatusOr GetTensorboard( google::cloud::aiplatform::v1::GetTensorboardRequest const& request); @@ -200,6 +210,14 @@ class TensorboardServiceConnection { UpdateTensorboard( google::cloud::aiplatform::v1::UpdateTensorboardRequest const& request); + virtual StatusOr UpdateTensorboard( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::UpdateTensorboardRequest const& request); + + virtual future> + UpdateTensorboard(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StreamRange ListTensorboards( google::cloud::aiplatform::v1::ListTensorboardsRequest request); @@ -209,6 +227,15 @@ class TensorboardServiceConnection { DeleteTensorboard( google::cloud::aiplatform::v1::DeleteTensorboardRequest const& request); + virtual StatusOr DeleteTensorboard( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteTensorboardRequest const& request); + + virtual future< + StatusOr> + DeleteTensorboard(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StatusOr ReadTensorboardUsage( google::cloud::aiplatform::v1::ReadTensorboardUsageRequest const& @@ -243,6 +270,16 @@ class TensorboardServiceConnection { google::cloud::aiplatform::v1::DeleteTensorboardExperimentRequest const& request); + virtual StatusOr DeleteTensorboardExperiment( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteTensorboardExperimentRequest const& + request); + + virtual future< + StatusOr> + DeleteTensorboardExperiment(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StatusOr CreateTensorboardRun( google::cloud::aiplatform::v1::CreateTensorboardRunRequest const& @@ -273,6 +310,16 @@ class TensorboardServiceConnection { google::cloud::aiplatform::v1::DeleteTensorboardRunRequest const& request); + virtual StatusOr DeleteTensorboardRun( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteTensorboardRunRequest const& + request); + + virtual future< + StatusOr> + DeleteTensorboardRun(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StatusOr< google::cloud::aiplatform::v1::BatchCreateTensorboardTimeSeriesResponse> BatchCreateTensorboardTimeSeries( @@ -304,6 +351,16 @@ class TensorboardServiceConnection { google::cloud::aiplatform::v1::DeleteTensorboardTimeSeriesRequest const& request); + virtual StatusOr DeleteTensorboardTimeSeries( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::DeleteTensorboardTimeSeriesRequest const& + request); + + virtual future< + StatusOr> + DeleteTensorboardTimeSeries(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StatusOr< google::cloud::aiplatform::v1::BatchReadTensorboardTimeSeriesDataResponse> BatchReadTensorboardTimeSeriesData( diff --git a/google/cloud/aiplatform/v1/vizier_connection.cc b/google/cloud/aiplatform/v1/vizier_connection.cc index 1a226fa30b93f..b5f66a41744a7 100644 --- a/google/cloud/aiplatform/v1/vizier_connection.cc +++ b/google/cloud/aiplatform/v1/vizier_connection.cc @@ -77,6 +77,21 @@ VizierServiceConnection::SuggestTrials( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr VizierServiceConnection::SuggestTrials( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::SuggestTrialsRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +VizierServiceConnection::SuggestTrials(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr VizierServiceConnection::CreateTrial( google::cloud::aiplatform::v1::CreateTrialRequest const&) { @@ -123,6 +138,23 @@ VizierServiceConnection::CheckTrialEarlyStoppingState( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +VizierServiceConnection::CheckTrialEarlyStoppingState( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::CheckTrialEarlyStoppingStateRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +VizierServiceConnection::CheckTrialEarlyStoppingState( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr VizierServiceConnection::StopTrial( google::cloud::aiplatform::v1::StopTrialRequest const&) { diff --git a/google/cloud/aiplatform/v1/vizier_connection.h b/google/cloud/aiplatform/v1/vizier_connection.h index 7d82ed6ea9c42..18f15bb9abeb5 100644 --- a/google/cloud/aiplatform/v1/vizier_connection.h +++ b/google/cloud/aiplatform/v1/vizier_connection.h @@ -22,8 +22,10 @@ #include "google/cloud/aiplatform/v1/internal/vizier_retry_traits.h" #include "google/cloud/aiplatform/v1/vizier_connection_idempotency_policy.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/internal/retry_policy_impl.h" +#include "google/cloud/no_await_tag.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" #include "google/cloud/status_or.h" @@ -205,6 +207,14 @@ class VizierServiceConnection { SuggestTrials( google::cloud::aiplatform::v1::SuggestTrialsRequest const& request); + virtual StatusOr SuggestTrials( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::SuggestTrialsRequest const& request); + + virtual future> + SuggestTrials(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StatusOr CreateTrial( google::cloud::aiplatform::v1::CreateTrialRequest const& request); @@ -229,6 +239,16 @@ class VizierServiceConnection { google::cloud::aiplatform::v1::CheckTrialEarlyStoppingStateRequest const& request); + virtual StatusOr CheckTrialEarlyStoppingState( + ExperimentalTag, NoAwaitTag, + google::cloud::aiplatform::v1::CheckTrialEarlyStoppingStateRequest const& + request); + + virtual future> + CheckTrialEarlyStoppingState(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StatusOr StopTrial( google::cloud::aiplatform::v1::StopTrialRequest const& request); diff --git a/google/cloud/alloydb/v1/alloy_db_admin_connection.cc b/google/cloud/alloydb/v1/alloy_db_admin_connection.cc index 1229ff86c9ea7..a08d4c35f210f 100644 --- a/google/cloud/alloydb/v1/alloy_db_admin_connection.cc +++ b/google/cloud/alloydb/v1/alloy_db_admin_connection.cc @@ -60,6 +60,21 @@ AlloyDBAdminConnection::CreateCluster( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr AlloyDBAdminConnection::CreateCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::alloydb::v1::CreateClusterRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +AlloyDBAdminConnection::CreateCluster(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> AlloyDBAdminConnection::UpdateCluster( google::cloud::alloydb::v1::UpdateClusterRequest const&) { @@ -68,6 +83,21 @@ AlloyDBAdminConnection::UpdateCluster( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr AlloyDBAdminConnection::UpdateCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::alloydb::v1::UpdateClusterRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +AlloyDBAdminConnection::UpdateCluster(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> AlloyDBAdminConnection::DeleteCluster( google::cloud::alloydb::v1::DeleteClusterRequest const&) { @@ -76,6 +106,21 @@ AlloyDBAdminConnection::DeleteCluster( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr AlloyDBAdminConnection::DeleteCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::alloydb::v1::DeleteClusterRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +AlloyDBAdminConnection::DeleteCluster(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> AlloyDBAdminConnection::PromoteCluster( google::cloud::alloydb::v1::PromoteClusterRequest const&) { @@ -84,6 +129,21 @@ AlloyDBAdminConnection::PromoteCluster( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr AlloyDBAdminConnection::PromoteCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::alloydb::v1::PromoteClusterRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +AlloyDBAdminConnection::PromoteCluster(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> AlloyDBAdminConnection::RestoreCluster( google::cloud::alloydb::v1::RestoreClusterRequest const&) { @@ -92,6 +152,21 @@ AlloyDBAdminConnection::RestoreCluster( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr AlloyDBAdminConnection::RestoreCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::alloydb::v1::RestoreClusterRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +AlloyDBAdminConnection::RestoreCluster(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> AlloyDBAdminConnection::CreateSecondaryCluster( google::cloud::alloydb::v1::CreateSecondaryClusterRequest const&) { @@ -100,6 +175,22 @@ AlloyDBAdminConnection::CreateSecondaryCluster( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +AlloyDBAdminConnection::CreateSecondaryCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::alloydb::v1::CreateSecondaryClusterRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +AlloyDBAdminConnection::CreateSecondaryCluster( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StreamRange AlloyDBAdminConnection::ListInstances( google::cloud::alloydb::v1:: @@ -122,9 +213,40 @@ AlloyDBAdminConnection::CreateInstance( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr AlloyDBAdminConnection::CreateInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::alloydb::v1::CreateInstanceRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> +AlloyDBAdminConnection::CreateInstance(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +AlloyDBAdminConnection::CreateSecondaryInstance( + google::cloud::alloydb::v1::CreateSecondaryInstanceRequest const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +StatusOr AlloyDBAdminConnection::CreateSecondaryInstance( + ExperimentalTag, NoAwaitTag, google::cloud::alloydb::v1::CreateSecondaryInstanceRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +AlloyDBAdminConnection::CreateSecondaryInstance( + ExperimentalTag, google::longrunning::Operation const&) { return google::cloud::make_ready_future< StatusOr>( Status(StatusCode::kUnimplemented, "not implemented")); @@ -138,6 +260,22 @@ AlloyDBAdminConnection::BatchCreateInstances( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +AlloyDBAdminConnection::BatchCreateInstances( + ExperimentalTag, NoAwaitTag, + google::cloud::alloydb::v1::BatchCreateInstancesRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +AlloyDBAdminConnection::BatchCreateInstances( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> AlloyDBAdminConnection::UpdateInstance( google::cloud::alloydb::v1::UpdateInstanceRequest const&) { @@ -146,6 +284,21 @@ AlloyDBAdminConnection::UpdateInstance( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr AlloyDBAdminConnection::UpdateInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::alloydb::v1::UpdateInstanceRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +AlloyDBAdminConnection::UpdateInstance(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> AlloyDBAdminConnection::DeleteInstance( google::cloud::alloydb::v1::DeleteInstanceRequest const&) { @@ -154,6 +307,21 @@ AlloyDBAdminConnection::DeleteInstance( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr AlloyDBAdminConnection::DeleteInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::alloydb::v1::DeleteInstanceRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +AlloyDBAdminConnection::DeleteInstance(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> AlloyDBAdminConnection::FailoverInstance( google::cloud::alloydb::v1::FailoverInstanceRequest const&) { @@ -162,6 +330,22 @@ AlloyDBAdminConnection::FailoverInstance( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +AlloyDBAdminConnection::FailoverInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::alloydb::v1::FailoverInstanceRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +AlloyDBAdminConnection::FailoverInstance( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> AlloyDBAdminConnection::InjectFault( google::cloud::alloydb::v1::InjectFaultRequest const&) { @@ -170,6 +354,21 @@ AlloyDBAdminConnection::InjectFault( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr AlloyDBAdminConnection::InjectFault( + ExperimentalTag, NoAwaitTag, + google::cloud::alloydb::v1::InjectFaultRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +AlloyDBAdminConnection::InjectFault(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> AlloyDBAdminConnection::RestartInstance( google::cloud::alloydb::v1::RestartInstanceRequest const&) { @@ -178,6 +377,22 @@ AlloyDBAdminConnection::RestartInstance( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +AlloyDBAdminConnection::RestartInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::alloydb::v1::RestartInstanceRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +AlloyDBAdminConnection::RestartInstance(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StreamRange AlloyDBAdminConnection::ListBackups( google::cloud::alloydb::v1:: @@ -199,6 +414,21 @@ AlloyDBAdminConnection::CreateBackup( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr AlloyDBAdminConnection::CreateBackup( + ExperimentalTag, NoAwaitTag, + google::cloud::alloydb::v1::CreateBackupRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +AlloyDBAdminConnection::CreateBackup(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> AlloyDBAdminConnection::UpdateBackup( google::cloud::alloydb::v1::UpdateBackupRequest const&) { @@ -207,6 +437,21 @@ AlloyDBAdminConnection::UpdateBackup( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr AlloyDBAdminConnection::UpdateBackup( + ExperimentalTag, NoAwaitTag, + google::cloud::alloydb::v1::UpdateBackupRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +AlloyDBAdminConnection::UpdateBackup(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> AlloyDBAdminConnection::DeleteBackup( google::cloud::alloydb::v1::DeleteBackupRequest const&) { @@ -215,6 +460,21 @@ AlloyDBAdminConnection::DeleteBackup( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr AlloyDBAdminConnection::DeleteBackup( + ExperimentalTag, NoAwaitTag, + google::cloud::alloydb::v1::DeleteBackupRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +AlloyDBAdminConnection::DeleteBackup(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StreamRange AlloyDBAdminConnection::ListSupportedDatabaseFlags( google::cloud::alloydb::v1:: diff --git a/google/cloud/alloydb/v1/alloy_db_admin_connection.h b/google/cloud/alloydb/v1/alloy_db_admin_connection.h index d584e8dd19518..0911b32959b2a 100644 --- a/google/cloud/alloydb/v1/alloy_db_admin_connection.h +++ b/google/cloud/alloydb/v1/alloy_db_admin_connection.h @@ -22,8 +22,10 @@ #include "google/cloud/alloydb/v1/alloy_db_admin_connection_idempotency_policy.h" #include "google/cloud/alloydb/v1/internal/alloy_db_admin_retry_traits.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/internal/retry_policy_impl.h" +#include "google/cloud/no_await_tag.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" #include "google/cloud/status_or.h" @@ -194,23 +196,67 @@ class AlloyDBAdminConnection { virtual future> CreateCluster( google::cloud::alloydb::v1::CreateClusterRequest const& request); + virtual StatusOr CreateCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::alloydb::v1::CreateClusterRequest const& request); + + virtual future> CreateCluster( + ExperimentalTag, google::longrunning::Operation const& operation); + virtual future> UpdateCluster( google::cloud::alloydb::v1::UpdateClusterRequest const& request); + virtual StatusOr UpdateCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::alloydb::v1::UpdateClusterRequest const& request); + + virtual future> UpdateCluster( + ExperimentalTag, google::longrunning::Operation const& operation); + virtual future> DeleteCluster( google::cloud::alloydb::v1::DeleteClusterRequest const& request); + virtual StatusOr DeleteCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::alloydb::v1::DeleteClusterRequest const& request); + + virtual future> + DeleteCluster(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> PromoteCluster( google::cloud::alloydb::v1::PromoteClusterRequest const& request); + virtual StatusOr PromoteCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::alloydb::v1::PromoteClusterRequest const& request); + + virtual future> PromoteCluster( + ExperimentalTag, google::longrunning::Operation const& operation); + virtual future> RestoreCluster( google::cloud::alloydb::v1::RestoreClusterRequest const& request); + virtual StatusOr RestoreCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::alloydb::v1::RestoreClusterRequest const& request); + + virtual future> RestoreCluster( + ExperimentalTag, google::longrunning::Operation const& operation); + virtual future> CreateSecondaryCluster( google::cloud::alloydb::v1::CreateSecondaryClusterRequest const& request); + virtual StatusOr CreateSecondaryCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::alloydb::v1::CreateSecondaryClusterRequest const& request); + + virtual future> + CreateSecondaryCluster(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StreamRange ListInstances( google::cloud::alloydb::v1::ListInstancesRequest request); @@ -220,34 +266,97 @@ class AlloyDBAdminConnection { virtual future> CreateInstance( google::cloud::alloydb::v1::CreateInstanceRequest const& request); + virtual StatusOr CreateInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::alloydb::v1::CreateInstanceRequest const& request); + + virtual future> CreateInstance( + ExperimentalTag, google::longrunning::Operation const& operation); + virtual future> CreateSecondaryInstance( google::cloud::alloydb::v1::CreateSecondaryInstanceRequest const& request); + virtual StatusOr CreateSecondaryInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::alloydb::v1::CreateSecondaryInstanceRequest const& + request); + + virtual future> + CreateSecondaryInstance(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future< StatusOr> BatchCreateInstances( google::cloud::alloydb::v1::BatchCreateInstancesRequest const& request); + virtual StatusOr BatchCreateInstances( + ExperimentalTag, NoAwaitTag, + google::cloud::alloydb::v1::BatchCreateInstancesRequest const& request); + + virtual future< + StatusOr> + BatchCreateInstances(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> UpdateInstance( google::cloud::alloydb::v1::UpdateInstanceRequest const& request); + virtual StatusOr UpdateInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::alloydb::v1::UpdateInstanceRequest const& request); + + virtual future> UpdateInstance( + ExperimentalTag, google::longrunning::Operation const& operation); + virtual future> DeleteInstance( google::cloud::alloydb::v1::DeleteInstanceRequest const& request); + virtual StatusOr DeleteInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::alloydb::v1::DeleteInstanceRequest const& request); + + virtual future> + DeleteInstance(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> FailoverInstance( google::cloud::alloydb::v1::FailoverInstanceRequest const& request); + virtual StatusOr FailoverInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::alloydb::v1::FailoverInstanceRequest const& request); + + virtual future> + FailoverInstance(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> InjectFault( google::cloud::alloydb::v1::InjectFaultRequest const& request); + virtual StatusOr InjectFault( + ExperimentalTag, NoAwaitTag, + google::cloud::alloydb::v1::InjectFaultRequest const& request); + + virtual future> InjectFault( + ExperimentalTag, google::longrunning::Operation const& operation); + virtual future> RestartInstance( google::cloud::alloydb::v1::RestartInstanceRequest const& request); + virtual StatusOr RestartInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::alloydb::v1::RestartInstanceRequest const& request); + + virtual future> + RestartInstance(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StreamRange ListBackups( google::cloud::alloydb::v1::ListBackupsRequest request); @@ -257,12 +366,34 @@ class AlloyDBAdminConnection { virtual future> CreateBackup( google::cloud::alloydb::v1::CreateBackupRequest const& request); + virtual StatusOr CreateBackup( + ExperimentalTag, NoAwaitTag, + google::cloud::alloydb::v1::CreateBackupRequest const& request); + + virtual future> CreateBackup( + ExperimentalTag, google::longrunning::Operation const& operation); + virtual future> UpdateBackup( google::cloud::alloydb::v1::UpdateBackupRequest const& request); + virtual StatusOr UpdateBackup( + ExperimentalTag, NoAwaitTag, + google::cloud::alloydb::v1::UpdateBackupRequest const& request); + + virtual future> UpdateBackup( + ExperimentalTag, google::longrunning::Operation const& operation); + virtual future> DeleteBackup(google::cloud::alloydb::v1::DeleteBackupRequest const& request); + virtual StatusOr DeleteBackup( + ExperimentalTag, NoAwaitTag, + google::cloud::alloydb::v1::DeleteBackupRequest const& request); + + virtual future> + DeleteBackup(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StreamRange ListSupportedDatabaseFlags( google::cloud::alloydb::v1::ListSupportedDatabaseFlagsRequest request); diff --git a/google/cloud/alloydb/v1/internal/alloy_db_admin_connection_impl.cc b/google/cloud/alloydb/v1/internal/alloy_db_admin_connection_impl.cc index abe68a87d913e..a51fa7d78ae47 100644 --- a/google/cloud/alloydb/v1/internal/alloy_db_admin_connection_impl.cc +++ b/google/cloud/alloydb/v1/internal/alloy_db_admin_connection_impl.cc @@ -151,6 +151,57 @@ AlloyDBAdminConnectionImpl::CreateCluster( polling_policy(*current), __func__); } +StatusOr +AlloyDBAdminConnectionImpl::CreateCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::alloydb::v1::CreateClusterRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateCluster(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::alloydb::v1::CreateClusterRequest const& request) { + return stub_->CreateCluster(context, options, request); + }, + *current, request, __func__); +} + +future> +AlloyDBAdminConnectionImpl::CreateCluster( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to CreateCluster", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::alloydb::v1::Cluster>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::alloydb::v1::Cluster>, + polling_policy(*current), __func__); +} + future> AlloyDBAdminConnectionImpl::UpdateCluster( google::cloud::alloydb::v1::UpdateClusterRequest const& request) { @@ -190,6 +241,57 @@ AlloyDBAdminConnectionImpl::UpdateCluster( polling_policy(*current), __func__); } +StatusOr +AlloyDBAdminConnectionImpl::UpdateCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::alloydb::v1::UpdateClusterRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UpdateCluster(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::alloydb::v1::UpdateClusterRequest const& request) { + return stub_->UpdateCluster(context, options, request); + }, + *current, request, __func__); +} + +future> +AlloyDBAdminConnectionImpl::UpdateCluster( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to UpdateCluster", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::alloydb::v1::Cluster>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::alloydb::v1::Cluster>, + polling_policy(*current), __func__); +} + future> AlloyDBAdminConnectionImpl::DeleteCluster( google::cloud::alloydb::v1::DeleteClusterRequest const& request) { @@ -229,6 +331,58 @@ AlloyDBAdminConnectionImpl::DeleteCluster( polling_policy(*current), __func__); } +StatusOr +AlloyDBAdminConnectionImpl::DeleteCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::alloydb::v1::DeleteClusterRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteCluster(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::alloydb::v1::DeleteClusterRequest const& request) { + return stub_->DeleteCluster(context, options, request); + }, + *current, request, __func__); +} + +future> +AlloyDBAdminConnectionImpl::DeleteCluster( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteCluster", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::alloydb::v1::OperationMetadata>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::cloud::alloydb::v1::OperationMetadata>, + polling_policy(*current), __func__); +} + future> AlloyDBAdminConnectionImpl::PromoteCluster( google::cloud::alloydb::v1::PromoteClusterRequest const& request) { @@ -268,6 +422,57 @@ AlloyDBAdminConnectionImpl::PromoteCluster( polling_policy(*current), __func__); } +StatusOr +AlloyDBAdminConnectionImpl::PromoteCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::alloydb::v1::PromoteClusterRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->PromoteCluster(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::alloydb::v1::PromoteClusterRequest const& request) { + return stub_->PromoteCluster(context, options, request); + }, + *current, request, __func__); +} + +future> +AlloyDBAdminConnectionImpl::PromoteCluster( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to PromoteCluster", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::alloydb::v1::Cluster>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::alloydb::v1::Cluster>, + polling_policy(*current), __func__); +} + future> AlloyDBAdminConnectionImpl::RestoreCluster( google::cloud::alloydb::v1::RestoreClusterRequest const& request) { @@ -307,6 +512,57 @@ AlloyDBAdminConnectionImpl::RestoreCluster( polling_policy(*current), __func__); } +StatusOr +AlloyDBAdminConnectionImpl::RestoreCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::alloydb::v1::RestoreClusterRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->RestoreCluster(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::alloydb::v1::RestoreClusterRequest const& request) { + return stub_->RestoreCluster(context, options, request); + }, + *current, request, __func__); +} + +future> +AlloyDBAdminConnectionImpl::RestoreCluster( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to RestoreCluster", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::alloydb::v1::Cluster>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::alloydb::v1::Cluster>, + polling_policy(*current), __func__); +} + future> AlloyDBAdminConnectionImpl::CreateSecondaryCluster( google::cloud::alloydb::v1::CreateSecondaryClusterRequest const& request) { @@ -347,6 +603,58 @@ AlloyDBAdminConnectionImpl::CreateSecondaryCluster( polling_policy(*current), __func__); } +StatusOr +AlloyDBAdminConnectionImpl::CreateSecondaryCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::alloydb::v1::CreateSecondaryClusterRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateSecondaryCluster(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::alloydb::v1::CreateSecondaryClusterRequest const& + request) { + return stub_->CreateSecondaryCluster(context, options, request); + }, + *current, request, __func__); +} + +future> +AlloyDBAdminConnectionImpl::CreateSecondaryCluster( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to CreateSecondaryCluster", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::alloydb::v1::Cluster>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::alloydb::v1::Cluster>, + polling_policy(*current), __func__); +} + StreamRange AlloyDBAdminConnectionImpl::ListInstances( google::cloud::alloydb::v1::ListInstancesRequest request) { @@ -434,6 +742,57 @@ AlloyDBAdminConnectionImpl::CreateInstance( polling_policy(*current), __func__); } +StatusOr +AlloyDBAdminConnectionImpl::CreateInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::alloydb::v1::CreateInstanceRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateInstance(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::alloydb::v1::CreateInstanceRequest const& request) { + return stub_->CreateInstance(context, options, request); + }, + *current, request, __func__); +} + +future> +AlloyDBAdminConnectionImpl::CreateInstance( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to CreateInstance", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::alloydb::v1::Instance>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::alloydb::v1::Instance>, + polling_policy(*current), __func__); +} + future> AlloyDBAdminConnectionImpl::CreateSecondaryInstance( google::cloud::alloydb::v1::CreateSecondaryInstanceRequest const& request) { @@ -468,30 +827,355 @@ AlloyDBAdminConnectionImpl::CreateSecondaryInstance( return stub->AsyncCancelOperation(cq, std::move(context), std::move(options), request); }, - &google::cloud::internal::ExtractLongRunningResultResponse< - google::cloud::alloydb::v1::Instance>, - retry_policy(*current), backoff_policy(*current), idempotent, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::alloydb::v1::Instance>, + retry_policy(*current), backoff_policy(*current), idempotent, + polling_policy(*current), __func__); +} + +StatusOr +AlloyDBAdminConnectionImpl::CreateSecondaryInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::alloydb::v1::CreateSecondaryInstanceRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateSecondaryInstance(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::alloydb::v1::CreateSecondaryInstanceRequest const& + request) { + return stub_->CreateSecondaryInstance(context, options, request); + }, + *current, request, __func__); +} + +future> +AlloyDBAdminConnectionImpl::CreateSecondaryInstance( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to CreateSecondaryInstance", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::alloydb::v1::Instance>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::alloydb::v1::Instance>, + polling_policy(*current), __func__); +} + +future> +AlloyDBAdminConnectionImpl::BatchCreateInstances( + google::cloud::alloydb::v1::BatchCreateInstancesRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + auto request_copy = request; + auto const idempotent = + idempotency_policy(*current)->BatchCreateInstances(request_copy); + return google::cloud::internal::AsyncLongRunningOperation< + google::cloud::alloydb::v1::BatchCreateInstancesResponse>( + background_->cq(), current, std::move(request_copy), + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::alloydb::v1::BatchCreateInstancesRequest const& + request) { + return stub->AsyncBatchCreateInstances(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::alloydb::v1::BatchCreateInstancesResponse>, + retry_policy(*current), backoff_policy(*current), idempotent, + polling_policy(*current), __func__); +} + +StatusOr +AlloyDBAdminConnectionImpl::BatchCreateInstances( + ExperimentalTag, NoAwaitTag, + google::cloud::alloydb::v1::BatchCreateInstancesRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->BatchCreateInstances(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::alloydb::v1::BatchCreateInstancesRequest const& + request) { + return stub_->BatchCreateInstances(context, options, request); + }, + *current, request, __func__); +} + +future> +AlloyDBAdminConnectionImpl::BatchCreateInstances( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to BatchCreateInstances", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::alloydb::v1::BatchCreateInstancesResponse>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::alloydb::v1::BatchCreateInstancesResponse>, + polling_policy(*current), __func__); +} + +future> +AlloyDBAdminConnectionImpl::UpdateInstance( + google::cloud::alloydb::v1::UpdateInstanceRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + auto request_copy = request; + auto const idempotent = + idempotency_policy(*current)->UpdateInstance(request_copy); + return google::cloud::internal::AsyncLongRunningOperation< + google::cloud::alloydb::v1::Instance>( + background_->cq(), current, std::move(request_copy), + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::alloydb::v1::UpdateInstanceRequest const& request) { + return stub->AsyncUpdateInstance(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::alloydb::v1::Instance>, + retry_policy(*current), backoff_policy(*current), idempotent, + polling_policy(*current), __func__); +} + +StatusOr +AlloyDBAdminConnectionImpl::UpdateInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::alloydb::v1::UpdateInstanceRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UpdateInstance(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::alloydb::v1::UpdateInstanceRequest const& request) { + return stub_->UpdateInstance(context, options, request); + }, + *current, request, __func__); +} + +future> +AlloyDBAdminConnectionImpl::UpdateInstance( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to UpdateInstance", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::alloydb::v1::Instance>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::alloydb::v1::Instance>, + polling_policy(*current), __func__); +} + +future> +AlloyDBAdminConnectionImpl::DeleteInstance( + google::cloud::alloydb::v1::DeleteInstanceRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + auto request_copy = request; + auto const idempotent = + idempotency_policy(*current)->DeleteInstance(request_copy); + return google::cloud::internal::AsyncLongRunningOperation< + google::cloud::alloydb::v1::OperationMetadata>( + background_->cq(), current, std::move(request_copy), + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::alloydb::v1::DeleteInstanceRequest const& request) { + return stub->AsyncDeleteInstance(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::cloud::alloydb::v1::OperationMetadata>, + retry_policy(*current), backoff_policy(*current), idempotent, + polling_policy(*current), __func__); +} + +StatusOr +AlloyDBAdminConnectionImpl::DeleteInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::alloydb::v1::DeleteInstanceRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteInstance(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::alloydb::v1::DeleteInstanceRequest const& request) { + return stub_->DeleteInstance(context, options, request); + }, + *current, request, __func__); +} + +future> +AlloyDBAdminConnectionImpl::DeleteInstance( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteInstance", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::alloydb::v1::OperationMetadata>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::cloud::alloydb::v1::OperationMetadata>, polling_policy(*current), __func__); } -future> -AlloyDBAdminConnectionImpl::BatchCreateInstances( - google::cloud::alloydb::v1::BatchCreateInstancesRequest const& request) { +future> +AlloyDBAdminConnectionImpl::FailoverInstance( + google::cloud::alloydb::v1::FailoverInstanceRequest const& request) { auto current = google::cloud::internal::SaveCurrentOptions(); auto request_copy = request; auto const idempotent = - idempotency_policy(*current)->BatchCreateInstances(request_copy); + idempotency_policy(*current)->FailoverInstance(request_copy); return google::cloud::internal::AsyncLongRunningOperation< - google::cloud::alloydb::v1::BatchCreateInstancesResponse>( + google::cloud::alloydb::v1::Instance>( background_->cq(), current, std::move(request_copy), [stub = stub_]( google::cloud::CompletionQueue& cq, std::shared_ptr context, google::cloud::internal::ImmutableOptions options, - google::cloud::alloydb::v1::BatchCreateInstancesRequest const& - request) { - return stub->AsyncBatchCreateInstances(cq, std::move(context), - std::move(options), request); + google::cloud::alloydb::v1::FailoverInstanceRequest const& request) { + return stub->AsyncFailoverInstance(cq, std::move(context), + std::move(options), request); }, [stub = stub_](google::cloud::CompletionQueue& cq, std::shared_ptr context, @@ -509,29 +1193,43 @@ AlloyDBAdminConnectionImpl::BatchCreateInstances( std::move(options), request); }, &google::cloud::internal::ExtractLongRunningResultResponse< - google::cloud::alloydb::v1::BatchCreateInstancesResponse>, + google::cloud::alloydb::v1::Instance>, retry_policy(*current), backoff_policy(*current), idempotent, polling_policy(*current), __func__); } +StatusOr +AlloyDBAdminConnectionImpl::FailoverInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::alloydb::v1::FailoverInstanceRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->FailoverInstance(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::alloydb::v1::FailoverInstanceRequest const& request) { + return stub_->FailoverInstance(context, options, request); + }, + *current, request, __func__); +} + future> -AlloyDBAdminConnectionImpl::UpdateInstance( - google::cloud::alloydb::v1::UpdateInstanceRequest const& request) { +AlloyDBAdminConnectionImpl::FailoverInstance( + ExperimentalTag, google::longrunning::Operation const& operation) { auto current = google::cloud::internal::SaveCurrentOptions(); - auto request_copy = request; - auto const idempotent = - idempotency_policy(*current)->UpdateInstance(request_copy); - return google::cloud::internal::AsyncLongRunningOperation< + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to FailoverInstance", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< google::cloud::alloydb::v1::Instance>( - background_->cq(), current, std::move(request_copy), - [stub = stub_]( - google::cloud::CompletionQueue& cq, - std::shared_ptr context, - google::cloud::internal::ImmutableOptions options, - google::cloud::alloydb::v1::UpdateInstanceRequest const& request) { - return stub->AsyncUpdateInstance(cq, std::move(context), - std::move(options), request); - }, + background_->cq(), current, operation, [stub = stub_](google::cloud::CompletionQueue& cq, std::shared_ptr context, google::cloud::internal::ImmutableOptions options, @@ -549,27 +1247,26 @@ AlloyDBAdminConnectionImpl::UpdateInstance( }, &google::cloud::internal::ExtractLongRunningResultResponse< google::cloud::alloydb::v1::Instance>, - retry_policy(*current), backoff_policy(*current), idempotent, polling_policy(*current), __func__); } -future> -AlloyDBAdminConnectionImpl::DeleteInstance( - google::cloud::alloydb::v1::DeleteInstanceRequest const& request) { +future> +AlloyDBAdminConnectionImpl::InjectFault( + google::cloud::alloydb::v1::InjectFaultRequest const& request) { auto current = google::cloud::internal::SaveCurrentOptions(); auto request_copy = request; auto const idempotent = - idempotency_policy(*current)->DeleteInstance(request_copy); + idempotency_policy(*current)->InjectFault(request_copy); return google::cloud::internal::AsyncLongRunningOperation< - google::cloud::alloydb::v1::OperationMetadata>( + google::cloud::alloydb::v1::Instance>( background_->cq(), current, std::move(request_copy), [stub = stub_]( google::cloud::CompletionQueue& cq, std::shared_ptr context, google::cloud::internal::ImmutableOptions options, - google::cloud::alloydb::v1::DeleteInstanceRequest const& request) { - return stub->AsyncDeleteInstance(cq, std::move(context), - std::move(options), request); + google::cloud::alloydb::v1::InjectFaultRequest const& request) { + return stub->AsyncInjectFault(cq, std::move(context), + std::move(options), request); }, [stub = stub_](google::cloud::CompletionQueue& cq, std::shared_ptr context, @@ -586,30 +1283,43 @@ AlloyDBAdminConnectionImpl::DeleteInstance( return stub->AsyncCancelOperation(cq, std::move(context), std::move(options), request); }, - &google::cloud::internal::ExtractLongRunningResultMetadata< - google::cloud::alloydb::v1::OperationMetadata>, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::alloydb::v1::Instance>, retry_policy(*current), backoff_policy(*current), idempotent, polling_policy(*current), __func__); } +StatusOr +AlloyDBAdminConnectionImpl::InjectFault( + ExperimentalTag, NoAwaitTag, + google::cloud::alloydb::v1::InjectFaultRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->InjectFault(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::alloydb::v1::InjectFaultRequest const& request) { + return stub_->InjectFault(context, options, request); + }, + *current, request, __func__); +} + future> -AlloyDBAdminConnectionImpl::FailoverInstance( - google::cloud::alloydb::v1::FailoverInstanceRequest const& request) { +AlloyDBAdminConnectionImpl::InjectFault( + ExperimentalTag, google::longrunning::Operation const& operation) { auto current = google::cloud::internal::SaveCurrentOptions(); - auto request_copy = request; - auto const idempotent = - idempotency_policy(*current)->FailoverInstance(request_copy); - return google::cloud::internal::AsyncLongRunningOperation< + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to InjectFault", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< google::cloud::alloydb::v1::Instance>( - background_->cq(), current, std::move(request_copy), - [stub = stub_]( - google::cloud::CompletionQueue& cq, - std::shared_ptr context, - google::cloud::internal::ImmutableOptions options, - google::cloud::alloydb::v1::FailoverInstanceRequest const& request) { - return stub->AsyncFailoverInstance(cq, std::move(context), - std::move(options), request); - }, + background_->cq(), current, operation, [stub = stub_](google::cloud::CompletionQueue& cq, std::shared_ptr context, google::cloud::internal::ImmutableOptions options, @@ -627,17 +1337,16 @@ AlloyDBAdminConnectionImpl::FailoverInstance( }, &google::cloud::internal::ExtractLongRunningResultResponse< google::cloud::alloydb::v1::Instance>, - retry_policy(*current), backoff_policy(*current), idempotent, polling_policy(*current), __func__); } future> -AlloyDBAdminConnectionImpl::InjectFault( - google::cloud::alloydb::v1::InjectFaultRequest const& request) { +AlloyDBAdminConnectionImpl::RestartInstance( + google::cloud::alloydb::v1::RestartInstanceRequest const& request) { auto current = google::cloud::internal::SaveCurrentOptions(); auto request_copy = request; auto const idempotent = - idempotency_policy(*current)->InjectFault(request_copy); + idempotency_policy(*current)->RestartInstance(request_copy); return google::cloud::internal::AsyncLongRunningOperation< google::cloud::alloydb::v1::Instance>( background_->cq(), current, std::move(request_copy), @@ -645,9 +1354,9 @@ AlloyDBAdminConnectionImpl::InjectFault( google::cloud::CompletionQueue& cq, std::shared_ptr context, google::cloud::internal::ImmutableOptions options, - google::cloud::alloydb::v1::InjectFaultRequest const& request) { - return stub->AsyncInjectFault(cq, std::move(context), - std::move(options), request); + google::cloud::alloydb::v1::RestartInstanceRequest const& request) { + return stub->AsyncRestartInstance(cq, std::move(context), + std::move(options), request); }, [stub = stub_](google::cloud::CompletionQueue& cq, std::shared_ptr context, @@ -670,24 +1379,38 @@ AlloyDBAdminConnectionImpl::InjectFault( polling_policy(*current), __func__); } -future> +StatusOr AlloyDBAdminConnectionImpl::RestartInstance( + ExperimentalTag, NoAwaitTag, google::cloud::alloydb::v1::RestartInstanceRequest const& request) { auto current = google::cloud::internal::SaveCurrentOptions(); - auto request_copy = request; - auto const idempotent = - idempotency_policy(*current)->RestartInstance(request_copy); - return google::cloud::internal::AsyncLongRunningOperation< - google::cloud::alloydb::v1::Instance>( - background_->cq(), current, std::move(request_copy), - [stub = stub_]( - google::cloud::CompletionQueue& cq, - std::shared_ptr context, - google::cloud::internal::ImmutableOptions options, + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->RestartInstance(request), + [this]( + grpc::ClientContext& context, Options const& options, google::cloud::alloydb::v1::RestartInstanceRequest const& request) { - return stub->AsyncRestartInstance(cq, std::move(context), - std::move(options), request); + return stub_->RestartInstance(context, options, request); }, + *current, request, __func__); +} + +future> +AlloyDBAdminConnectionImpl::RestartInstance( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to RestartInstance", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::alloydb::v1::Instance>( + background_->cq(), current, operation, [stub = stub_](google::cloud::CompletionQueue& cq, std::shared_ptr context, google::cloud::internal::ImmutableOptions options, @@ -705,7 +1428,6 @@ AlloyDBAdminConnectionImpl::RestartInstance( }, &google::cloud::internal::ExtractLongRunningResultResponse< google::cloud::alloydb::v1::Instance>, - retry_policy(*current), backoff_policy(*current), idempotent, polling_policy(*current), __func__); } @@ -796,6 +1518,57 @@ AlloyDBAdminConnectionImpl::CreateBackup( polling_policy(*current), __func__); } +StatusOr +AlloyDBAdminConnectionImpl::CreateBackup( + ExperimentalTag, NoAwaitTag, + google::cloud::alloydb::v1::CreateBackupRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateBackup(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::alloydb::v1::CreateBackupRequest const& request) { + return stub_->CreateBackup(context, options, request); + }, + *current, request, __func__); +} + +future> +AlloyDBAdminConnectionImpl::CreateBackup( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to CreateBackup", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::alloydb::v1::Backup>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::alloydb::v1::Backup>, + polling_policy(*current), __func__); +} + future> AlloyDBAdminConnectionImpl::UpdateBackup( google::cloud::alloydb::v1::UpdateBackupRequest const& request) { @@ -835,6 +1608,57 @@ AlloyDBAdminConnectionImpl::UpdateBackup( polling_policy(*current), __func__); } +StatusOr +AlloyDBAdminConnectionImpl::UpdateBackup( + ExperimentalTag, NoAwaitTag, + google::cloud::alloydb::v1::UpdateBackupRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UpdateBackup(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::alloydb::v1::UpdateBackupRequest const& request) { + return stub_->UpdateBackup(context, options, request); + }, + *current, request, __func__); +} + +future> +AlloyDBAdminConnectionImpl::UpdateBackup( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to UpdateBackup", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::alloydb::v1::Backup>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::alloydb::v1::Backup>, + polling_policy(*current), __func__); +} + future> AlloyDBAdminConnectionImpl::DeleteBackup( google::cloud::alloydb::v1::DeleteBackupRequest const& request) { @@ -874,6 +1698,58 @@ AlloyDBAdminConnectionImpl::DeleteBackup( polling_policy(*current), __func__); } +StatusOr +AlloyDBAdminConnectionImpl::DeleteBackup( + ExperimentalTag, NoAwaitTag, + google::cloud::alloydb::v1::DeleteBackupRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteBackup(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::alloydb::v1::DeleteBackupRequest const& request) { + return stub_->DeleteBackup(context, options, request); + }, + *current, request, __func__); +} + +future> +AlloyDBAdminConnectionImpl::DeleteBackup( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteBackup", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::alloydb::v1::OperationMetadata>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::cloud::alloydb::v1::OperationMetadata>, + polling_policy(*current), __func__); +} + StreamRange AlloyDBAdminConnectionImpl::ListSupportedDatabaseFlags( google::cloud::alloydb::v1::ListSupportedDatabaseFlagsRequest request) { diff --git a/google/cloud/alloydb/v1/internal/alloy_db_admin_connection_impl.h b/google/cloud/alloydb/v1/internal/alloy_db_admin_connection_impl.h index 206d94329ba1e..85ced20903fbf 100644 --- a/google/cloud/alloydb/v1/internal/alloy_db_admin_connection_impl.h +++ b/google/cloud/alloydb/v1/internal/alloy_db_admin_connection_impl.h @@ -60,24 +60,75 @@ class AlloyDBAdminConnectionImpl : public alloydb_v1::AlloyDBAdminConnection { future> CreateCluster( google::cloud::alloydb::v1::CreateClusterRequest const& request) override; + StatusOr CreateCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::alloydb::v1::CreateClusterRequest const& request) override; + + future> CreateCluster( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateCluster( google::cloud::alloydb::v1::UpdateClusterRequest const& request) override; + StatusOr UpdateCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::alloydb::v1::UpdateClusterRequest const& request) override; + + future> UpdateCluster( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteCluster( google::cloud::alloydb::v1::DeleteClusterRequest const& request) override; + StatusOr DeleteCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::alloydb::v1::DeleteClusterRequest const& request) override; + + future> DeleteCluster( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> PromoteCluster( google::cloud::alloydb::v1::PromoteClusterRequest const& request) override; + StatusOr PromoteCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::alloydb::v1::PromoteClusterRequest const& request) + override; + + future> PromoteCluster( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> RestoreCluster( google::cloud::alloydb::v1::RestoreClusterRequest const& request) override; + StatusOr RestoreCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::alloydb::v1::RestoreClusterRequest const& request) + override; + + future> RestoreCluster( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> CreateSecondaryCluster( google::cloud::alloydb::v1::CreateSecondaryClusterRequest const& request) override; + StatusOr CreateSecondaryCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::alloydb::v1::CreateSecondaryClusterRequest const& request) + override; + + future> CreateSecondaryCluster( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListInstances( google::cloud::alloydb::v1::ListInstancesRequest request) override; @@ -88,35 +139,108 @@ class AlloyDBAdminConnectionImpl : public alloydb_v1::AlloyDBAdminConnection { google::cloud::alloydb::v1::CreateInstanceRequest const& request) override; + StatusOr CreateInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::alloydb::v1::CreateInstanceRequest const& request) + override; + + future> CreateInstance( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> CreateSecondaryInstance( google::cloud::alloydb::v1::CreateSecondaryInstanceRequest const& request) override; + StatusOr CreateSecondaryInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::alloydb::v1::CreateSecondaryInstanceRequest const& request) + override; + + future> + CreateSecondaryInstance( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> BatchCreateInstances( google::cloud::alloydb::v1::BatchCreateInstancesRequest const& request) override; + StatusOr BatchCreateInstances( + ExperimentalTag, NoAwaitTag, + google::cloud::alloydb::v1::BatchCreateInstancesRequest const& request) + override; + + future> + BatchCreateInstances( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateInstance( google::cloud::alloydb::v1::UpdateInstanceRequest const& request) override; + StatusOr UpdateInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::alloydb::v1::UpdateInstanceRequest const& request) + override; + + future> UpdateInstance( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteInstance(google::cloud::alloydb::v1::DeleteInstanceRequest const& request) override; + StatusOr DeleteInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::alloydb::v1::DeleteInstanceRequest const& request) + override; + + future> + DeleteInstance(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> FailoverInstance( google::cloud::alloydb::v1::FailoverInstanceRequest const& request) override; + StatusOr FailoverInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::alloydb::v1::FailoverInstanceRequest const& request) + override; + + future> FailoverInstance( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> InjectFault( google::cloud::alloydb::v1::InjectFaultRequest const& request) override; + StatusOr InjectFault( + ExperimentalTag, NoAwaitTag, + google::cloud::alloydb::v1::InjectFaultRequest const& request) override; + + future> InjectFault( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> RestartInstance( google::cloud::alloydb::v1::RestartInstanceRequest const& request) override; + StatusOr RestartInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::alloydb::v1::RestartInstanceRequest const& request) + override; + + future> RestartInstance( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListBackups( google::cloud::alloydb::v1::ListBackupsRequest request) override; @@ -126,12 +250,36 @@ class AlloyDBAdminConnectionImpl : public alloydb_v1::AlloyDBAdminConnection { future> CreateBackup( google::cloud::alloydb::v1::CreateBackupRequest const& request) override; + StatusOr CreateBackup( + ExperimentalTag, NoAwaitTag, + google::cloud::alloydb::v1::CreateBackupRequest const& request) override; + + future> CreateBackup( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateBackup( google::cloud::alloydb::v1::UpdateBackupRequest const& request) override; + StatusOr UpdateBackup( + ExperimentalTag, NoAwaitTag, + google::cloud::alloydb::v1::UpdateBackupRequest const& request) override; + + future> UpdateBackup( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteBackup( google::cloud::alloydb::v1::DeleteBackupRequest const& request) override; + StatusOr DeleteBackup( + ExperimentalTag, NoAwaitTag, + google::cloud::alloydb::v1::DeleteBackupRequest const& request) override; + + future> DeleteBackup( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListSupportedDatabaseFlags( google::cloud::alloydb::v1::ListSupportedDatabaseFlagsRequest request) diff --git a/google/cloud/alloydb/v1/internal/alloy_db_admin_tracing_connection.cc b/google/cloud/alloydb/v1/internal/alloy_db_admin_tracing_connection.cc index bbe8597ac5eaf..02e6efaa230ef 100644 --- a/google/cloud/alloydb/v1/internal/alloy_db_admin_tracing_connection.cc +++ b/google/cloud/alloydb/v1/internal/alloy_db_admin_tracing_connection.cc @@ -62,6 +62,27 @@ AlloyDBAdminTracingConnection::CreateCluster( return internal::EndSpan(std::move(span), child_->CreateCluster(request)); } +StatusOr +AlloyDBAdminTracingConnection::CreateCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::alloydb::v1::CreateClusterRequest const& request) { + auto span = + internal::MakeSpan("alloydb_v1::AlloyDBAdminConnection::CreateCluster"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->CreateCluster(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +AlloyDBAdminTracingConnection::CreateCluster( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = + internal::MakeSpan("alloydb_v1::AlloyDBAdminConnection::CreateCluster"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->CreateCluster(ExperimentalTag{}, operation)); +} + future> AlloyDBAdminTracingConnection::UpdateCluster( google::cloud::alloydb::v1::UpdateClusterRequest const& request) { @@ -71,6 +92,27 @@ AlloyDBAdminTracingConnection::UpdateCluster( return internal::EndSpan(std::move(span), child_->UpdateCluster(request)); } +StatusOr +AlloyDBAdminTracingConnection::UpdateCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::alloydb::v1::UpdateClusterRequest const& request) { + auto span = + internal::MakeSpan("alloydb_v1::AlloyDBAdminConnection::UpdateCluster"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->UpdateCluster(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +AlloyDBAdminTracingConnection::UpdateCluster( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = + internal::MakeSpan("alloydb_v1::AlloyDBAdminConnection::UpdateCluster"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->UpdateCluster(ExperimentalTag{}, operation)); +} + future> AlloyDBAdminTracingConnection::DeleteCluster( google::cloud::alloydb::v1::DeleteClusterRequest const& request) { @@ -80,6 +122,27 @@ AlloyDBAdminTracingConnection::DeleteCluster( return internal::EndSpan(std::move(span), child_->DeleteCluster(request)); } +StatusOr +AlloyDBAdminTracingConnection::DeleteCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::alloydb::v1::DeleteClusterRequest const& request) { + auto span = + internal::MakeSpan("alloydb_v1::AlloyDBAdminConnection::DeleteCluster"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->DeleteCluster(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +AlloyDBAdminTracingConnection::DeleteCluster( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = + internal::MakeSpan("alloydb_v1::AlloyDBAdminConnection::DeleteCluster"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->DeleteCluster(ExperimentalTag{}, operation)); +} + future> AlloyDBAdminTracingConnection::PromoteCluster( google::cloud::alloydb::v1::PromoteClusterRequest const& request) { @@ -89,6 +152,27 @@ AlloyDBAdminTracingConnection::PromoteCluster( return internal::EndSpan(std::move(span), child_->PromoteCluster(request)); } +StatusOr +AlloyDBAdminTracingConnection::PromoteCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::alloydb::v1::PromoteClusterRequest const& request) { + auto span = + internal::MakeSpan("alloydb_v1::AlloyDBAdminConnection::PromoteCluster"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->PromoteCluster(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +AlloyDBAdminTracingConnection::PromoteCluster( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = + internal::MakeSpan("alloydb_v1::AlloyDBAdminConnection::PromoteCluster"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->PromoteCluster(ExperimentalTag{}, operation)); +} + future> AlloyDBAdminTracingConnection::RestoreCluster( google::cloud::alloydb::v1::RestoreClusterRequest const& request) { @@ -98,6 +182,27 @@ AlloyDBAdminTracingConnection::RestoreCluster( return internal::EndSpan(std::move(span), child_->RestoreCluster(request)); } +StatusOr +AlloyDBAdminTracingConnection::RestoreCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::alloydb::v1::RestoreClusterRequest const& request) { + auto span = + internal::MakeSpan("alloydb_v1::AlloyDBAdminConnection::RestoreCluster"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->RestoreCluster(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +AlloyDBAdminTracingConnection::RestoreCluster( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = + internal::MakeSpan("alloydb_v1::AlloyDBAdminConnection::RestoreCluster"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->RestoreCluster(ExperimentalTag{}, operation)); +} + future> AlloyDBAdminTracingConnection::CreateSecondaryCluster( google::cloud::alloydb::v1::CreateSecondaryClusterRequest const& request) { @@ -108,6 +213,28 @@ AlloyDBAdminTracingConnection::CreateSecondaryCluster( child_->CreateSecondaryCluster(request)); } +StatusOr +AlloyDBAdminTracingConnection::CreateSecondaryCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::alloydb::v1::CreateSecondaryClusterRequest const& request) { + auto span = internal::MakeSpan( + "alloydb_v1::AlloyDBAdminConnection::CreateSecondaryCluster"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->CreateSecondaryCluster(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +AlloyDBAdminTracingConnection::CreateSecondaryCluster( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "alloydb_v1::AlloyDBAdminConnection::CreateSecondaryCluster"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->CreateSecondaryCluster( + ExperimentalTag{}, operation)); +} + StreamRange AlloyDBAdminTracingConnection::ListInstances( google::cloud::alloydb::v1::ListInstancesRequest request) { @@ -137,6 +264,27 @@ AlloyDBAdminTracingConnection::CreateInstance( return internal::EndSpan(std::move(span), child_->CreateInstance(request)); } +StatusOr +AlloyDBAdminTracingConnection::CreateInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::alloydb::v1::CreateInstanceRequest const& request) { + auto span = + internal::MakeSpan("alloydb_v1::AlloyDBAdminConnection::CreateInstance"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->CreateInstance(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +AlloyDBAdminTracingConnection::CreateInstance( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = + internal::MakeSpan("alloydb_v1::AlloyDBAdminConnection::CreateInstance"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->CreateInstance(ExperimentalTag{}, operation)); +} + future> AlloyDBAdminTracingConnection::CreateSecondaryInstance( google::cloud::alloydb::v1::CreateSecondaryInstanceRequest const& request) { @@ -147,6 +295,28 @@ AlloyDBAdminTracingConnection::CreateSecondaryInstance( child_->CreateSecondaryInstance(request)); } +StatusOr +AlloyDBAdminTracingConnection::CreateSecondaryInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::alloydb::v1::CreateSecondaryInstanceRequest const& request) { + auto span = internal::MakeSpan( + "alloydb_v1::AlloyDBAdminConnection::CreateSecondaryInstance"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->CreateSecondaryInstance(ExperimentalTag{}, NoAwaitTag{}, + request)); +} + +future> +AlloyDBAdminTracingConnection::CreateSecondaryInstance( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "alloydb_v1::AlloyDBAdminConnection::CreateSecondaryInstance"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->CreateSecondaryInstance( + ExperimentalTag{}, operation)); +} + future> AlloyDBAdminTracingConnection::BatchCreateInstances( google::cloud::alloydb::v1::BatchCreateInstancesRequest const& request) { @@ -157,6 +327,28 @@ AlloyDBAdminTracingConnection::BatchCreateInstances( child_->BatchCreateInstances(request)); } +StatusOr +AlloyDBAdminTracingConnection::BatchCreateInstances( + ExperimentalTag, NoAwaitTag, + google::cloud::alloydb::v1::BatchCreateInstancesRequest const& request) { + auto span = internal::MakeSpan( + "alloydb_v1::AlloyDBAdminConnection::BatchCreateInstances"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->BatchCreateInstances(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +AlloyDBAdminTracingConnection::BatchCreateInstances( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "alloydb_v1::AlloyDBAdminConnection::BatchCreateInstances"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->BatchCreateInstances( + ExperimentalTag{}, operation)); +} + future> AlloyDBAdminTracingConnection::UpdateInstance( google::cloud::alloydb::v1::UpdateInstanceRequest const& request) { @@ -166,6 +358,27 @@ AlloyDBAdminTracingConnection::UpdateInstance( return internal::EndSpan(std::move(span), child_->UpdateInstance(request)); } +StatusOr +AlloyDBAdminTracingConnection::UpdateInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::alloydb::v1::UpdateInstanceRequest const& request) { + auto span = + internal::MakeSpan("alloydb_v1::AlloyDBAdminConnection::UpdateInstance"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->UpdateInstance(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +AlloyDBAdminTracingConnection::UpdateInstance( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = + internal::MakeSpan("alloydb_v1::AlloyDBAdminConnection::UpdateInstance"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->UpdateInstance(ExperimentalTag{}, operation)); +} + future> AlloyDBAdminTracingConnection::DeleteInstance( google::cloud::alloydb::v1::DeleteInstanceRequest const& request) { @@ -175,6 +388,27 @@ AlloyDBAdminTracingConnection::DeleteInstance( return internal::EndSpan(std::move(span), child_->DeleteInstance(request)); } +StatusOr +AlloyDBAdminTracingConnection::DeleteInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::alloydb::v1::DeleteInstanceRequest const& request) { + auto span = + internal::MakeSpan("alloydb_v1::AlloyDBAdminConnection::DeleteInstance"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->DeleteInstance(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +AlloyDBAdminTracingConnection::DeleteInstance( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = + internal::MakeSpan("alloydb_v1::AlloyDBAdminConnection::DeleteInstance"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->DeleteInstance(ExperimentalTag{}, operation)); +} + future> AlloyDBAdminTracingConnection::FailoverInstance( google::cloud::alloydb::v1::FailoverInstanceRequest const& request) { @@ -184,6 +418,28 @@ AlloyDBAdminTracingConnection::FailoverInstance( return internal::EndSpan(std::move(span), child_->FailoverInstance(request)); } +StatusOr +AlloyDBAdminTracingConnection::FailoverInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::alloydb::v1::FailoverInstanceRequest const& request) { + auto span = internal::MakeSpan( + "alloydb_v1::AlloyDBAdminConnection::FailoverInstance"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->FailoverInstance(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +AlloyDBAdminTracingConnection::FailoverInstance( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "alloydb_v1::AlloyDBAdminConnection::FailoverInstance"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->FailoverInstance(ExperimentalTag{}, operation)); +} + future> AlloyDBAdminTracingConnection::InjectFault( google::cloud::alloydb::v1::InjectFaultRequest const& request) { @@ -193,6 +449,27 @@ AlloyDBAdminTracingConnection::InjectFault( return internal::EndSpan(std::move(span), child_->InjectFault(request)); } +StatusOr +AlloyDBAdminTracingConnection::InjectFault( + ExperimentalTag, NoAwaitTag, + google::cloud::alloydb::v1::InjectFaultRequest const& request) { + auto span = + internal::MakeSpan("alloydb_v1::AlloyDBAdminConnection::InjectFault"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->InjectFault(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +AlloyDBAdminTracingConnection::InjectFault( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = + internal::MakeSpan("alloydb_v1::AlloyDBAdminConnection::InjectFault"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->InjectFault(ExperimentalTag{}, operation)); +} + future> AlloyDBAdminTracingConnection::RestartInstance( google::cloud::alloydb::v1::RestartInstanceRequest const& request) { @@ -202,6 +479,27 @@ AlloyDBAdminTracingConnection::RestartInstance( return internal::EndSpan(std::move(span), child_->RestartInstance(request)); } +StatusOr +AlloyDBAdminTracingConnection::RestartInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::alloydb::v1::RestartInstanceRequest const& request) { + auto span = + internal::MakeSpan("alloydb_v1::AlloyDBAdminConnection::RestartInstance"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->RestartInstance(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +AlloyDBAdminTracingConnection::RestartInstance( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = + internal::MakeSpan("alloydb_v1::AlloyDBAdminConnection::RestartInstance"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->RestartInstance(ExperimentalTag{}, operation)); +} + StreamRange AlloyDBAdminTracingConnection::ListBackups( google::cloud::alloydb::v1::ListBackupsRequest request) { @@ -231,6 +529,27 @@ AlloyDBAdminTracingConnection::CreateBackup( return internal::EndSpan(std::move(span), child_->CreateBackup(request)); } +StatusOr +AlloyDBAdminTracingConnection::CreateBackup( + ExperimentalTag, NoAwaitTag, + google::cloud::alloydb::v1::CreateBackupRequest const& request) { + auto span = + internal::MakeSpan("alloydb_v1::AlloyDBAdminConnection::CreateBackup"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->CreateBackup(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +AlloyDBAdminTracingConnection::CreateBackup( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = + internal::MakeSpan("alloydb_v1::AlloyDBAdminConnection::CreateBackup"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->CreateBackup(ExperimentalTag{}, operation)); +} + future> AlloyDBAdminTracingConnection::UpdateBackup( google::cloud::alloydb::v1::UpdateBackupRequest const& request) { @@ -240,6 +559,27 @@ AlloyDBAdminTracingConnection::UpdateBackup( return internal::EndSpan(std::move(span), child_->UpdateBackup(request)); } +StatusOr +AlloyDBAdminTracingConnection::UpdateBackup( + ExperimentalTag, NoAwaitTag, + google::cloud::alloydb::v1::UpdateBackupRequest const& request) { + auto span = + internal::MakeSpan("alloydb_v1::AlloyDBAdminConnection::UpdateBackup"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->UpdateBackup(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +AlloyDBAdminTracingConnection::UpdateBackup( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = + internal::MakeSpan("alloydb_v1::AlloyDBAdminConnection::UpdateBackup"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->UpdateBackup(ExperimentalTag{}, operation)); +} + future> AlloyDBAdminTracingConnection::DeleteBackup( google::cloud::alloydb::v1::DeleteBackupRequest const& request) { @@ -249,6 +589,27 @@ AlloyDBAdminTracingConnection::DeleteBackup( return internal::EndSpan(std::move(span), child_->DeleteBackup(request)); } +StatusOr +AlloyDBAdminTracingConnection::DeleteBackup( + ExperimentalTag, NoAwaitTag, + google::cloud::alloydb::v1::DeleteBackupRequest const& request) { + auto span = + internal::MakeSpan("alloydb_v1::AlloyDBAdminConnection::DeleteBackup"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->DeleteBackup(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +AlloyDBAdminTracingConnection::DeleteBackup( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = + internal::MakeSpan("alloydb_v1::AlloyDBAdminConnection::DeleteBackup"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->DeleteBackup(ExperimentalTag{}, operation)); +} + StreamRange AlloyDBAdminTracingConnection::ListSupportedDatabaseFlags( google::cloud::alloydb::v1::ListSupportedDatabaseFlagsRequest request) { diff --git a/google/cloud/alloydb/v1/internal/alloy_db_admin_tracing_connection.h b/google/cloud/alloydb/v1/internal/alloy_db_admin_tracing_connection.h index 6f8c9103c41bb..0e6b62baee4d9 100644 --- a/google/cloud/alloydb/v1/internal/alloy_db_admin_tracing_connection.h +++ b/google/cloud/alloydb/v1/internal/alloy_db_admin_tracing_connection.h @@ -49,24 +49,75 @@ class AlloyDBAdminTracingConnection future> CreateCluster( google::cloud::alloydb::v1::CreateClusterRequest const& request) override; + StatusOr CreateCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::alloydb::v1::CreateClusterRequest const& request) override; + + future> CreateCluster( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateCluster( google::cloud::alloydb::v1::UpdateClusterRequest const& request) override; + StatusOr UpdateCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::alloydb::v1::UpdateClusterRequest const& request) override; + + future> UpdateCluster( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteCluster( google::cloud::alloydb::v1::DeleteClusterRequest const& request) override; + StatusOr DeleteCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::alloydb::v1::DeleteClusterRequest const& request) override; + + future> DeleteCluster( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> PromoteCluster( google::cloud::alloydb::v1::PromoteClusterRequest const& request) override; + StatusOr PromoteCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::alloydb::v1::PromoteClusterRequest const& request) + override; + + future> PromoteCluster( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> RestoreCluster( google::cloud::alloydb::v1::RestoreClusterRequest const& request) override; + StatusOr RestoreCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::alloydb::v1::RestoreClusterRequest const& request) + override; + + future> RestoreCluster( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> CreateSecondaryCluster( google::cloud::alloydb::v1::CreateSecondaryClusterRequest const& request) override; + StatusOr CreateSecondaryCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::alloydb::v1::CreateSecondaryClusterRequest const& request) + override; + + future> CreateSecondaryCluster( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListInstances( google::cloud::alloydb::v1::ListInstancesRequest request) override; @@ -77,35 +128,108 @@ class AlloyDBAdminTracingConnection google::cloud::alloydb::v1::CreateInstanceRequest const& request) override; + StatusOr CreateInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::alloydb::v1::CreateInstanceRequest const& request) + override; + + future> CreateInstance( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> CreateSecondaryInstance( google::cloud::alloydb::v1::CreateSecondaryInstanceRequest const& request) override; + StatusOr CreateSecondaryInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::alloydb::v1::CreateSecondaryInstanceRequest const& request) + override; + + future> + CreateSecondaryInstance( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> BatchCreateInstances( google::cloud::alloydb::v1::BatchCreateInstancesRequest const& request) override; + StatusOr BatchCreateInstances( + ExperimentalTag, NoAwaitTag, + google::cloud::alloydb::v1::BatchCreateInstancesRequest const& request) + override; + + future> + BatchCreateInstances( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateInstance( google::cloud::alloydb::v1::UpdateInstanceRequest const& request) override; + StatusOr UpdateInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::alloydb::v1::UpdateInstanceRequest const& request) + override; + + future> UpdateInstance( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteInstance(google::cloud::alloydb::v1::DeleteInstanceRequest const& request) override; + StatusOr DeleteInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::alloydb::v1::DeleteInstanceRequest const& request) + override; + + future> + DeleteInstance(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> FailoverInstance( google::cloud::alloydb::v1::FailoverInstanceRequest const& request) override; + StatusOr FailoverInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::alloydb::v1::FailoverInstanceRequest const& request) + override; + + future> FailoverInstance( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> InjectFault( google::cloud::alloydb::v1::InjectFaultRequest const& request) override; + StatusOr InjectFault( + ExperimentalTag, NoAwaitTag, + google::cloud::alloydb::v1::InjectFaultRequest const& request) override; + + future> InjectFault( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> RestartInstance( google::cloud::alloydb::v1::RestartInstanceRequest const& request) override; + StatusOr RestartInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::alloydb::v1::RestartInstanceRequest const& request) + override; + + future> RestartInstance( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListBackups( google::cloud::alloydb::v1::ListBackupsRequest request) override; @@ -115,12 +239,36 @@ class AlloyDBAdminTracingConnection future> CreateBackup( google::cloud::alloydb::v1::CreateBackupRequest const& request) override; + StatusOr CreateBackup( + ExperimentalTag, NoAwaitTag, + google::cloud::alloydb::v1::CreateBackupRequest const& request) override; + + future> CreateBackup( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateBackup( google::cloud::alloydb::v1::UpdateBackupRequest const& request) override; + StatusOr UpdateBackup( + ExperimentalTag, NoAwaitTag, + google::cloud::alloydb::v1::UpdateBackupRequest const& request) override; + + future> UpdateBackup( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteBackup( google::cloud::alloydb::v1::DeleteBackupRequest const& request) override; + StatusOr DeleteBackup( + ExperimentalTag, NoAwaitTag, + google::cloud::alloydb::v1::DeleteBackupRequest const& request) override; + + future> DeleteBackup( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListSupportedDatabaseFlags( google::cloud::alloydb::v1::ListSupportedDatabaseFlagsRequest request) diff --git a/google/cloud/alloydb/v1/mocks/mock_alloy_db_admin_connection.h b/google/cloud/alloydb/v1/mocks/mock_alloy_db_admin_connection.h index 2e1b94336fd99..52b94d9950810 100644 --- a/google/cloud/alloydb/v1/mocks/mock_alloy_db_admin_connection.h +++ b/google/cloud/alloydb/v1/mocks/mock_alloy_db_admin_connection.h @@ -59,32 +59,101 @@ class MockAlloyDBAdminConnection : public alloydb_v1::AlloyDBAdminConnection { (google::cloud::alloydb::v1::CreateClusterRequest const& request), (override)); + MOCK_METHOD(StatusOr, CreateCluster, + (ExperimentalTag, NoAwaitTag, + google::cloud::alloydb::v1::CreateClusterRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateCluster, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, UpdateCluster, (google::cloud::alloydb::v1::UpdateClusterRequest const& request), (override)); + MOCK_METHOD(StatusOr, UpdateCluster, + (ExperimentalTag, NoAwaitTag, + google::cloud::alloydb::v1::UpdateClusterRequest const& request), + (override)); + + MOCK_METHOD(future>, + UpdateCluster, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, DeleteCluster, (google::cloud::alloydb::v1::DeleteClusterRequest const& request), (override)); + MOCK_METHOD(StatusOr, DeleteCluster, + (ExperimentalTag, NoAwaitTag, + google::cloud::alloydb::v1::DeleteClusterRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteCluster, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, PromoteCluster, (google::cloud::alloydb::v1::PromoteClusterRequest const& request), (override)); + MOCK_METHOD( + StatusOr, PromoteCluster, + (ExperimentalTag, NoAwaitTag, + google::cloud::alloydb::v1::PromoteClusterRequest const& request), + (override)); + + MOCK_METHOD(future>, + PromoteCluster, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, RestoreCluster, (google::cloud::alloydb::v1::RestoreClusterRequest const& request), (override)); + MOCK_METHOD( + StatusOr, RestoreCluster, + (ExperimentalTag, NoAwaitTag, + google::cloud::alloydb::v1::RestoreClusterRequest const& request), + (override)); + + MOCK_METHOD(future>, + RestoreCluster, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, CreateSecondaryCluster, (google::cloud::alloydb::v1::CreateSecondaryClusterRequest const& request), (override)); + MOCK_METHOD(StatusOr, CreateSecondaryCluster, + (ExperimentalTag, NoAwaitTag, + google::cloud::alloydb::v1::CreateSecondaryClusterRequest const& + request), + (override)); + + MOCK_METHOD(future>, + CreateSecondaryCluster, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD((StreamRange), ListInstances, (google::cloud::alloydb::v1::ListInstancesRequest request), @@ -99,12 +168,36 @@ class MockAlloyDBAdminConnection : public alloydb_v1::AlloyDBAdminConnection { (google::cloud::alloydb::v1::CreateInstanceRequest const& request), (override)); + MOCK_METHOD( + StatusOr, CreateInstance, + (ExperimentalTag, NoAwaitTag, + google::cloud::alloydb::v1::CreateInstanceRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateInstance, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, CreateSecondaryInstance, (google::cloud::alloydb::v1::CreateSecondaryInstanceRequest const& request), (override)); + MOCK_METHOD(StatusOr, CreateSecondaryInstance, + (ExperimentalTag, NoAwaitTag, + google::cloud::alloydb::v1::CreateSecondaryInstanceRequest const& + request), + (override)); + + MOCK_METHOD(future>, + CreateSecondaryInstance, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future< StatusOr>, @@ -112,32 +205,104 @@ class MockAlloyDBAdminConnection : public alloydb_v1::AlloyDBAdminConnection { (google::cloud::alloydb::v1::BatchCreateInstancesRequest const& request), (override)); + MOCK_METHOD( + StatusOr, BatchCreateInstances, + (ExperimentalTag, NoAwaitTag, + google::cloud::alloydb::v1::BatchCreateInstancesRequest const& request), + (override)); + + MOCK_METHOD( + future< + StatusOr>, + BatchCreateInstances, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, UpdateInstance, (google::cloud::alloydb::v1::UpdateInstanceRequest const& request), (override)); + MOCK_METHOD( + StatusOr, UpdateInstance, + (ExperimentalTag, NoAwaitTag, + google::cloud::alloydb::v1::UpdateInstanceRequest const& request), + (override)); + + MOCK_METHOD(future>, + UpdateInstance, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteInstance, (google::cloud::alloydb::v1::DeleteInstanceRequest const& request), (override)); + MOCK_METHOD( + StatusOr, DeleteInstance, + (ExperimentalTag, NoAwaitTag, + google::cloud::alloydb::v1::DeleteInstanceRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteInstance, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, FailoverInstance, (google::cloud::alloydb::v1::FailoverInstanceRequest const& request), (override)); + MOCK_METHOD( + StatusOr, FailoverInstance, + (ExperimentalTag, NoAwaitTag, + google::cloud::alloydb::v1::FailoverInstanceRequest const& request), + (override)); + + MOCK_METHOD(future>, + FailoverInstance, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, InjectFault, (google::cloud::alloydb::v1::InjectFaultRequest const& request), (override)); + MOCK_METHOD(StatusOr, InjectFault, + (ExperimentalTag, NoAwaitTag, + google::cloud::alloydb::v1::InjectFaultRequest const& request), + (override)); + + MOCK_METHOD(future>, + InjectFault, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, RestartInstance, (google::cloud::alloydb::v1::RestartInstanceRequest const& request), (override)); + MOCK_METHOD( + StatusOr, RestartInstance, + (ExperimentalTag, NoAwaitTag, + google::cloud::alloydb::v1::RestartInstanceRequest const& request), + (override)); + + MOCK_METHOD(future>, + RestartInstance, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD((StreamRange), ListBackups, (google::cloud::alloydb::v1::ListBackupsRequest request), (override)); @@ -151,16 +316,49 @@ class MockAlloyDBAdminConnection : public alloydb_v1::AlloyDBAdminConnection { (google::cloud::alloydb::v1::CreateBackupRequest const& request), (override)); + MOCK_METHOD(StatusOr, CreateBackup, + (ExperimentalTag, NoAwaitTag, + google::cloud::alloydb::v1::CreateBackupRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateBackup, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, UpdateBackup, (google::cloud::alloydb::v1::UpdateBackupRequest const& request), (override)); + MOCK_METHOD(StatusOr, UpdateBackup, + (ExperimentalTag, NoAwaitTag, + google::cloud::alloydb::v1::UpdateBackupRequest const& request), + (override)); + + MOCK_METHOD(future>, + UpdateBackup, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, DeleteBackup, (google::cloud::alloydb::v1::DeleteBackupRequest const& request), (override)); + MOCK_METHOD(StatusOr, DeleteBackup, + (ExperimentalTag, NoAwaitTag, + google::cloud::alloydb::v1::DeleteBackupRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteBackup, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( (StreamRange), ListSupportedDatabaseFlags, diff --git a/google/cloud/apigateway/v1/api_gateway_connection.cc b/google/cloud/apigateway/v1/api_gateway_connection.cc index 0bce052f1bf22..575b423f15962 100644 --- a/google/cloud/apigateway/v1/api_gateway_connection.cc +++ b/google/cloud/apigateway/v1/api_gateway_connection.cc @@ -60,9 +60,41 @@ ApiGatewayServiceConnection::CreateGateway( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +ApiGatewayServiceConnection::CreateGateway( + ExperimentalTag, NoAwaitTag, + google::cloud::apigateway::v1::CreateGatewayRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> +ApiGatewayServiceConnection::CreateGateway( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +ApiGatewayServiceConnection::UpdateGateway( + google::cloud::apigateway::v1::UpdateGatewayRequest const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +StatusOr ApiGatewayServiceConnection::UpdateGateway( + ExperimentalTag, NoAwaitTag, google::cloud::apigateway::v1::UpdateGatewayRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +ApiGatewayServiceConnection::UpdateGateway( + ExperimentalTag, google::longrunning::Operation const&) { return google::cloud::make_ready_future< StatusOr>( Status(StatusCode::kUnimplemented, "not implemented")); @@ -76,6 +108,22 @@ ApiGatewayServiceConnection::DeleteGateway( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +ApiGatewayServiceConnection::DeleteGateway( + ExperimentalTag, NoAwaitTag, + google::cloud::apigateway::v1::DeleteGatewayRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +ApiGatewayServiceConnection::DeleteGateway( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StreamRange ApiGatewayServiceConnection::ListApis( google::cloud::apigateway::v1:: @@ -98,6 +146,21 @@ ApiGatewayServiceConnection::CreateApi( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr ApiGatewayServiceConnection::CreateApi( + ExperimentalTag, NoAwaitTag, + google::cloud::apigateway::v1::CreateApiRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +ApiGatewayServiceConnection::CreateApi(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> ApiGatewayServiceConnection::UpdateApi( google::cloud::apigateway::v1::UpdateApiRequest const&) { @@ -106,6 +169,21 @@ ApiGatewayServiceConnection::UpdateApi( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr ApiGatewayServiceConnection::UpdateApi( + ExperimentalTag, NoAwaitTag, + google::cloud::apigateway::v1::UpdateApiRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +ApiGatewayServiceConnection::UpdateApi(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> ApiGatewayServiceConnection::DeleteApi( google::cloud::apigateway::v1::DeleteApiRequest const&) { @@ -114,6 +192,21 @@ ApiGatewayServiceConnection::DeleteApi( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr ApiGatewayServiceConnection::DeleteApi( + ExperimentalTag, NoAwaitTag, + google::cloud::apigateway::v1::DeleteApiRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +ApiGatewayServiceConnection::DeleteApi(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StreamRange ApiGatewayServiceConnection::ListApiConfigs( google::cloud::apigateway::v1:: @@ -136,6 +229,22 @@ ApiGatewayServiceConnection::CreateApiConfig( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +ApiGatewayServiceConnection::CreateApiConfig( + ExperimentalTag, NoAwaitTag, + google::cloud::apigateway::v1::CreateApiConfigRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +ApiGatewayServiceConnection::CreateApiConfig( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> ApiGatewayServiceConnection::UpdateApiConfig( google::cloud::apigateway::v1::UpdateApiConfigRequest const&) { @@ -144,6 +253,22 @@ ApiGatewayServiceConnection::UpdateApiConfig( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +ApiGatewayServiceConnection::UpdateApiConfig( + ExperimentalTag, NoAwaitTag, + google::cloud::apigateway::v1::UpdateApiConfigRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +ApiGatewayServiceConnection::UpdateApiConfig( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> ApiGatewayServiceConnection::DeleteApiConfig( google::cloud::apigateway::v1::DeleteApiConfigRequest const&) { @@ -152,6 +277,22 @@ ApiGatewayServiceConnection::DeleteApiConfig( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +ApiGatewayServiceConnection::DeleteApiConfig( + ExperimentalTag, NoAwaitTag, + google::cloud::apigateway::v1::DeleteApiConfigRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +ApiGatewayServiceConnection::DeleteApiConfig( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + std::shared_ptr MakeApiGatewayServiceConnection( Options options) { internal::CheckExpectedOptions CreateGateway( + ExperimentalTag, NoAwaitTag, + google::cloud::apigateway::v1::CreateGatewayRequest const& request); + + virtual future> + CreateGateway(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> UpdateGateway( google::cloud::apigateway::v1::UpdateGatewayRequest const& request); + virtual StatusOr UpdateGateway( + ExperimentalTag, NoAwaitTag, + google::cloud::apigateway::v1::UpdateGatewayRequest const& request); + + virtual future> + UpdateGateway(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> DeleteGateway( google::cloud::apigateway::v1::DeleteGatewayRequest const& request); + virtual StatusOr DeleteGateway( + ExperimentalTag, NoAwaitTag, + google::cloud::apigateway::v1::DeleteGatewayRequest const& request); + + virtual future> + DeleteGateway(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StreamRange ListApis( google::cloud::apigateway::v1::ListApisRequest request); @@ -215,12 +241,33 @@ class ApiGatewayServiceConnection { virtual future> CreateApi( google::cloud::apigateway::v1::CreateApiRequest const& request); + virtual StatusOr CreateApi( + ExperimentalTag, NoAwaitTag, + google::cloud::apigateway::v1::CreateApiRequest const& request); + + virtual future> CreateApi( + ExperimentalTag, google::longrunning::Operation const& operation); + virtual future> UpdateApi( google::cloud::apigateway::v1::UpdateApiRequest const& request); + virtual StatusOr UpdateApi( + ExperimentalTag, NoAwaitTag, + google::cloud::apigateway::v1::UpdateApiRequest const& request); + + virtual future> UpdateApi( + ExperimentalTag, google::longrunning::Operation const& operation); + virtual future> DeleteApi(google::cloud::apigateway::v1::DeleteApiRequest const& request); + virtual StatusOr DeleteApi( + ExperimentalTag, NoAwaitTag, + google::cloud::apigateway::v1::DeleteApiRequest const& request); + + virtual future> + DeleteApi(ExperimentalTag, google::longrunning::Operation const& operation); + virtual StreamRange ListApiConfigs( google::cloud::apigateway::v1::ListApiConfigsRequest request); @@ -231,13 +278,37 @@ class ApiGatewayServiceConnection { CreateApiConfig( google::cloud::apigateway::v1::CreateApiConfigRequest const& request); + virtual StatusOr CreateApiConfig( + ExperimentalTag, NoAwaitTag, + google::cloud::apigateway::v1::CreateApiConfigRequest const& request); + + virtual future> + CreateApiConfig(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> UpdateApiConfig( google::cloud::apigateway::v1::UpdateApiConfigRequest const& request); + virtual StatusOr UpdateApiConfig( + ExperimentalTag, NoAwaitTag, + google::cloud::apigateway::v1::UpdateApiConfigRequest const& request); + + virtual future> + UpdateApiConfig(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> DeleteApiConfig( google::cloud::apigateway::v1::DeleteApiConfigRequest const& request); + + virtual StatusOr DeleteApiConfig( + ExperimentalTag, NoAwaitTag, + google::cloud::apigateway::v1::DeleteApiConfigRequest const& request); + + virtual future> + DeleteApiConfig(ExperimentalTag, + google::longrunning::Operation const& operation); }; /** diff --git a/google/cloud/apigateway/v1/internal/api_gateway_connection_impl.cc b/google/cloud/apigateway/v1/internal/api_gateway_connection_impl.cc index dbafaccb0c8ff..7b4ac07f5a70a 100644 --- a/google/cloud/apigateway/v1/internal/api_gateway_connection_impl.cc +++ b/google/cloud/apigateway/v1/internal/api_gateway_connection_impl.cc @@ -154,6 +154,58 @@ ApiGatewayServiceConnectionImpl::CreateGateway( polling_policy(*current), __func__); } +StatusOr +ApiGatewayServiceConnectionImpl::CreateGateway( + ExperimentalTag, NoAwaitTag, + google::cloud::apigateway::v1::CreateGatewayRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateGateway(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::apigateway::v1::CreateGatewayRequest const& request) { + return stub_->CreateGateway(context, options, request); + }, + *current, request, __func__); +} + +future> +ApiGatewayServiceConnectionImpl::CreateGateway( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to CreateGateway", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::apigateway::v1::Gateway>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::apigateway::v1::Gateway>, + polling_policy(*current), __func__); +} + future> ApiGatewayServiceConnectionImpl::UpdateGateway( google::cloud::apigateway::v1::UpdateGatewayRequest const& request) { @@ -193,6 +245,58 @@ ApiGatewayServiceConnectionImpl::UpdateGateway( polling_policy(*current), __func__); } +StatusOr +ApiGatewayServiceConnectionImpl::UpdateGateway( + ExperimentalTag, NoAwaitTag, + google::cloud::apigateway::v1::UpdateGatewayRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UpdateGateway(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::apigateway::v1::UpdateGatewayRequest const& request) { + return stub_->UpdateGateway(context, options, request); + }, + *current, request, __func__); +} + +future> +ApiGatewayServiceConnectionImpl::UpdateGateway( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to UpdateGateway", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::apigateway::v1::Gateway>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::apigateway::v1::Gateway>, + polling_policy(*current), __func__); +} + future> ApiGatewayServiceConnectionImpl::DeleteGateway( google::cloud::apigateway::v1::DeleteGatewayRequest const& request) { @@ -232,6 +336,59 @@ ApiGatewayServiceConnectionImpl::DeleteGateway( polling_policy(*current), __func__); } +StatusOr +ApiGatewayServiceConnectionImpl::DeleteGateway( + ExperimentalTag, NoAwaitTag, + google::cloud::apigateway::v1::DeleteGatewayRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteGateway(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::apigateway::v1::DeleteGatewayRequest const& request) { + return stub_->DeleteGateway(context, options, request); + }, + *current, request, __func__); +} + +future> +ApiGatewayServiceConnectionImpl::DeleteGateway( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteGateway", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::apigateway::v1::OperationMetadata>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::cloud::apigateway::v1::OperationMetadata>, + polling_policy(*current), __func__); +} + StreamRange ApiGatewayServiceConnectionImpl::ListApis( google::cloud::apigateway::v1::ListApisRequest request) { @@ -317,6 +474,57 @@ ApiGatewayServiceConnectionImpl::CreateApi( polling_policy(*current), __func__); } +StatusOr +ApiGatewayServiceConnectionImpl::CreateApi( + ExperimentalTag, NoAwaitTag, + google::cloud::apigateway::v1::CreateApiRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateApi(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::apigateway::v1::CreateApiRequest const& request) { + return stub_->CreateApi(context, options, request); + }, + *current, request, __func__); +} + +future> +ApiGatewayServiceConnectionImpl::CreateApi( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to CreateApi", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::apigateway::v1::Api>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::apigateway::v1::Api>, + polling_policy(*current), __func__); +} + future> ApiGatewayServiceConnectionImpl::UpdateApi( google::cloud::apigateway::v1::UpdateApiRequest const& request) { @@ -355,6 +563,57 @@ ApiGatewayServiceConnectionImpl::UpdateApi( polling_policy(*current), __func__); } +StatusOr +ApiGatewayServiceConnectionImpl::UpdateApi( + ExperimentalTag, NoAwaitTag, + google::cloud::apigateway::v1::UpdateApiRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UpdateApi(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::apigateway::v1::UpdateApiRequest const& request) { + return stub_->UpdateApi(context, options, request); + }, + *current, request, __func__); +} + +future> +ApiGatewayServiceConnectionImpl::UpdateApi( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to UpdateApi", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::apigateway::v1::Api>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::apigateway::v1::Api>, + polling_policy(*current), __func__); +} + future> ApiGatewayServiceConnectionImpl::DeleteApi( google::cloud::apigateway::v1::DeleteApiRequest const& request) { @@ -393,6 +652,58 @@ ApiGatewayServiceConnectionImpl::DeleteApi( polling_policy(*current), __func__); } +StatusOr +ApiGatewayServiceConnectionImpl::DeleteApi( + ExperimentalTag, NoAwaitTag, + google::cloud::apigateway::v1::DeleteApiRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteApi(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::apigateway::v1::DeleteApiRequest const& request) { + return stub_->DeleteApi(context, options, request); + }, + *current, request, __func__); +} + +future> +ApiGatewayServiceConnectionImpl::DeleteApi( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteApi", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::apigateway::v1::OperationMetadata>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::cloud::apigateway::v1::OperationMetadata>, + polling_policy(*current), __func__); +} + StreamRange ApiGatewayServiceConnectionImpl::ListApiConfigs( google::cloud::apigateway::v1::ListApiConfigsRequest request) { @@ -482,6 +793,59 @@ ApiGatewayServiceConnectionImpl::CreateApiConfig( polling_policy(*current), __func__); } +StatusOr +ApiGatewayServiceConnectionImpl::CreateApiConfig( + ExperimentalTag, NoAwaitTag, + google::cloud::apigateway::v1::CreateApiConfigRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateApiConfig(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::apigateway::v1::CreateApiConfigRequest const& + request) { + return stub_->CreateApiConfig(context, options, request); + }, + *current, request, __func__); +} + +future> +ApiGatewayServiceConnectionImpl::CreateApiConfig( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to CreateApiConfig", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::apigateway::v1::ApiConfig>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::apigateway::v1::ApiConfig>, + polling_policy(*current), __func__); +} + future> ApiGatewayServiceConnectionImpl::UpdateApiConfig( google::cloud::apigateway::v1::UpdateApiConfigRequest const& request) { @@ -522,6 +886,59 @@ ApiGatewayServiceConnectionImpl::UpdateApiConfig( polling_policy(*current), __func__); } +StatusOr +ApiGatewayServiceConnectionImpl::UpdateApiConfig( + ExperimentalTag, NoAwaitTag, + google::cloud::apigateway::v1::UpdateApiConfigRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UpdateApiConfig(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::apigateway::v1::UpdateApiConfigRequest const& + request) { + return stub_->UpdateApiConfig(context, options, request); + }, + *current, request, __func__); +} + +future> +ApiGatewayServiceConnectionImpl::UpdateApiConfig( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to UpdateApiConfig", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::apigateway::v1::ApiConfig>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::apigateway::v1::ApiConfig>, + polling_policy(*current), __func__); +} + future> ApiGatewayServiceConnectionImpl::DeleteApiConfig( google::cloud::apigateway::v1::DeleteApiConfigRequest const& request) { @@ -562,6 +979,59 @@ ApiGatewayServiceConnectionImpl::DeleteApiConfig( polling_policy(*current), __func__); } +StatusOr +ApiGatewayServiceConnectionImpl::DeleteApiConfig( + ExperimentalTag, NoAwaitTag, + google::cloud::apigateway::v1::DeleteApiConfigRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteApiConfig(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::apigateway::v1::DeleteApiConfigRequest const& + request) { + return stub_->DeleteApiConfig(context, options, request); + }, + *current, request, __func__); +} + +future> +ApiGatewayServiceConnectionImpl::DeleteApiConfig( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteApiConfig", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::apigateway::v1::OperationMetadata>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::cloud::apigateway::v1::OperationMetadata>, + polling_policy(*current), __func__); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace apigateway_v1_internal } // namespace cloud diff --git a/google/cloud/apigateway/v1/internal/api_gateway_connection_impl.h b/google/cloud/apigateway/v1/internal/api_gateway_connection_impl.h index 240069abf5522..ab2cbc05d40d4 100644 --- a/google/cloud/apigateway/v1/internal/api_gateway_connection_impl.h +++ b/google/cloud/apigateway/v1/internal/api_gateway_connection_impl.h @@ -62,14 +62,41 @@ class ApiGatewayServiceConnectionImpl google::cloud::apigateway::v1::CreateGatewayRequest const& request) override; + StatusOr CreateGateway( + ExperimentalTag, NoAwaitTag, + google::cloud::apigateway::v1::CreateGatewayRequest const& request) + override; + + future> CreateGateway( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateGateway( google::cloud::apigateway::v1::UpdateGatewayRequest const& request) override; + StatusOr UpdateGateway( + ExperimentalTag, NoAwaitTag, + google::cloud::apigateway::v1::UpdateGatewayRequest const& request) + override; + + future> UpdateGateway( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteGateway(google::cloud::apigateway::v1::DeleteGatewayRequest const& request) override; + StatusOr DeleteGateway( + ExperimentalTag, NoAwaitTag, + google::cloud::apigateway::v1::DeleteGatewayRequest const& request) + override; + + future> + DeleteGateway(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListApis( google::cloud::apigateway::v1::ListApisRequest request) override; @@ -79,12 +106,36 @@ class ApiGatewayServiceConnectionImpl future> CreateApi( google::cloud::apigateway::v1::CreateApiRequest const& request) override; + StatusOr CreateApi( + ExperimentalTag, NoAwaitTag, + google::cloud::apigateway::v1::CreateApiRequest const& request) override; + + future> CreateApi( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateApi( google::cloud::apigateway::v1::UpdateApiRequest const& request) override; + StatusOr UpdateApi( + ExperimentalTag, NoAwaitTag, + google::cloud::apigateway::v1::UpdateApiRequest const& request) override; + + future> UpdateApi( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteApi( google::cloud::apigateway::v1::DeleteApiRequest const& request) override; + StatusOr DeleteApi( + ExperimentalTag, NoAwaitTag, + google::cloud::apigateway::v1::DeleteApiRequest const& request) override; + + future> DeleteApi( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListApiConfigs( google::cloud::apigateway::v1::ListApiConfigsRequest request) override; @@ -96,14 +147,41 @@ class ApiGatewayServiceConnectionImpl google::cloud::apigateway::v1::CreateApiConfigRequest const& request) override; + StatusOr CreateApiConfig( + ExperimentalTag, NoAwaitTag, + google::cloud::apigateway::v1::CreateApiConfigRequest const& request) + override; + + future> CreateApiConfig( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateApiConfig( google::cloud::apigateway::v1::UpdateApiConfigRequest const& request) override; + StatusOr UpdateApiConfig( + ExperimentalTag, NoAwaitTag, + google::cloud::apigateway::v1::UpdateApiConfigRequest const& request) + override; + + future> UpdateApiConfig( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteApiConfig(google::cloud::apigateway::v1::DeleteApiConfigRequest const& request) override; + StatusOr DeleteApiConfig( + ExperimentalTag, NoAwaitTag, + google::cloud::apigateway::v1::DeleteApiConfigRequest const& request) + override; + + future> + DeleteApiConfig(ExperimentalTag, + google::longrunning::Operation const& operation) override; + private: std::unique_ptr background_; std::shared_ptr stub_; diff --git a/google/cloud/apigateway/v1/internal/api_gateway_tracing_connection.cc b/google/cloud/apigateway/v1/internal/api_gateway_tracing_connection.cc index b3b3007ef47e5..823ab5d7e781a 100644 --- a/google/cloud/apigateway/v1/internal/api_gateway_tracing_connection.cc +++ b/google/cloud/apigateway/v1/internal/api_gateway_tracing_connection.cc @@ -62,6 +62,27 @@ ApiGatewayServiceTracingConnection::CreateGateway( return internal::EndSpan(std::move(span), child_->CreateGateway(request)); } +StatusOr +ApiGatewayServiceTracingConnection::CreateGateway( + ExperimentalTag, NoAwaitTag, + google::cloud::apigateway::v1::CreateGatewayRequest const& request) { + auto span = internal::MakeSpan( + "apigateway_v1::ApiGatewayServiceConnection::CreateGateway"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->CreateGateway(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +ApiGatewayServiceTracingConnection::CreateGateway( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "apigateway_v1::ApiGatewayServiceConnection::CreateGateway"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->CreateGateway(ExperimentalTag{}, operation)); +} + future> ApiGatewayServiceTracingConnection::UpdateGateway( google::cloud::apigateway::v1::UpdateGatewayRequest const& request) { @@ -71,6 +92,27 @@ ApiGatewayServiceTracingConnection::UpdateGateway( return internal::EndSpan(std::move(span), child_->UpdateGateway(request)); } +StatusOr +ApiGatewayServiceTracingConnection::UpdateGateway( + ExperimentalTag, NoAwaitTag, + google::cloud::apigateway::v1::UpdateGatewayRequest const& request) { + auto span = internal::MakeSpan( + "apigateway_v1::ApiGatewayServiceConnection::UpdateGateway"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->UpdateGateway(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +ApiGatewayServiceTracingConnection::UpdateGateway( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "apigateway_v1::ApiGatewayServiceConnection::UpdateGateway"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->UpdateGateway(ExperimentalTag{}, operation)); +} + future> ApiGatewayServiceTracingConnection::DeleteGateway( google::cloud::apigateway::v1::DeleteGatewayRequest const& request) { @@ -80,6 +122,27 @@ ApiGatewayServiceTracingConnection::DeleteGateway( return internal::EndSpan(std::move(span), child_->DeleteGateway(request)); } +StatusOr +ApiGatewayServiceTracingConnection::DeleteGateway( + ExperimentalTag, NoAwaitTag, + google::cloud::apigateway::v1::DeleteGatewayRequest const& request) { + auto span = internal::MakeSpan( + "apigateway_v1::ApiGatewayServiceConnection::DeleteGateway"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->DeleteGateway(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +ApiGatewayServiceTracingConnection::DeleteGateway( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "apigateway_v1::ApiGatewayServiceConnection::DeleteGateway"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->DeleteGateway(ExperimentalTag{}, operation)); +} + StreamRange ApiGatewayServiceTracingConnection::ListApis( google::cloud::apigateway::v1::ListApisRequest request) { @@ -109,6 +172,27 @@ ApiGatewayServiceTracingConnection::CreateApi( return internal::EndSpan(std::move(span), child_->CreateApi(request)); } +StatusOr +ApiGatewayServiceTracingConnection::CreateApi( + ExperimentalTag, NoAwaitTag, + google::cloud::apigateway::v1::CreateApiRequest const& request) { + auto span = internal::MakeSpan( + "apigateway_v1::ApiGatewayServiceConnection::CreateApi"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->CreateApi(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +ApiGatewayServiceTracingConnection::CreateApi( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "apigateway_v1::ApiGatewayServiceConnection::CreateApi"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->CreateApi(ExperimentalTag{}, operation)); +} + future> ApiGatewayServiceTracingConnection::UpdateApi( google::cloud::apigateway::v1::UpdateApiRequest const& request) { @@ -118,6 +202,27 @@ ApiGatewayServiceTracingConnection::UpdateApi( return internal::EndSpan(std::move(span), child_->UpdateApi(request)); } +StatusOr +ApiGatewayServiceTracingConnection::UpdateApi( + ExperimentalTag, NoAwaitTag, + google::cloud::apigateway::v1::UpdateApiRequest const& request) { + auto span = internal::MakeSpan( + "apigateway_v1::ApiGatewayServiceConnection::UpdateApi"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->UpdateApi(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +ApiGatewayServiceTracingConnection::UpdateApi( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "apigateway_v1::ApiGatewayServiceConnection::UpdateApi"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->UpdateApi(ExperimentalTag{}, operation)); +} + future> ApiGatewayServiceTracingConnection::DeleteApi( google::cloud::apigateway::v1::DeleteApiRequest const& request) { @@ -127,6 +232,27 @@ ApiGatewayServiceTracingConnection::DeleteApi( return internal::EndSpan(std::move(span), child_->DeleteApi(request)); } +StatusOr +ApiGatewayServiceTracingConnection::DeleteApi( + ExperimentalTag, NoAwaitTag, + google::cloud::apigateway::v1::DeleteApiRequest const& request) { + auto span = internal::MakeSpan( + "apigateway_v1::ApiGatewayServiceConnection::DeleteApi"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->DeleteApi(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +ApiGatewayServiceTracingConnection::DeleteApi( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "apigateway_v1::ApiGatewayServiceConnection::DeleteApi"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->DeleteApi(ExperimentalTag{}, operation)); +} + StreamRange ApiGatewayServiceTracingConnection::ListApiConfigs( google::cloud::apigateway::v1::ListApiConfigsRequest request) { @@ -156,6 +282,27 @@ ApiGatewayServiceTracingConnection::CreateApiConfig( return internal::EndSpan(std::move(span), child_->CreateApiConfig(request)); } +StatusOr +ApiGatewayServiceTracingConnection::CreateApiConfig( + ExperimentalTag, NoAwaitTag, + google::cloud::apigateway::v1::CreateApiConfigRequest const& request) { + auto span = internal::MakeSpan( + "apigateway_v1::ApiGatewayServiceConnection::CreateApiConfig"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->CreateApiConfig(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +ApiGatewayServiceTracingConnection::CreateApiConfig( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "apigateway_v1::ApiGatewayServiceConnection::CreateApiConfig"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->CreateApiConfig(ExperimentalTag{}, operation)); +} + future> ApiGatewayServiceTracingConnection::UpdateApiConfig( google::cloud::apigateway::v1::UpdateApiConfigRequest const& request) { @@ -165,6 +312,27 @@ ApiGatewayServiceTracingConnection::UpdateApiConfig( return internal::EndSpan(std::move(span), child_->UpdateApiConfig(request)); } +StatusOr +ApiGatewayServiceTracingConnection::UpdateApiConfig( + ExperimentalTag, NoAwaitTag, + google::cloud::apigateway::v1::UpdateApiConfigRequest const& request) { + auto span = internal::MakeSpan( + "apigateway_v1::ApiGatewayServiceConnection::UpdateApiConfig"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->UpdateApiConfig(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +ApiGatewayServiceTracingConnection::UpdateApiConfig( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "apigateway_v1::ApiGatewayServiceConnection::UpdateApiConfig"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->UpdateApiConfig(ExperimentalTag{}, operation)); +} + future> ApiGatewayServiceTracingConnection::DeleteApiConfig( google::cloud::apigateway::v1::DeleteApiConfigRequest const& request) { @@ -174,6 +342,27 @@ ApiGatewayServiceTracingConnection::DeleteApiConfig( return internal::EndSpan(std::move(span), child_->DeleteApiConfig(request)); } +StatusOr +ApiGatewayServiceTracingConnection::DeleteApiConfig( + ExperimentalTag, NoAwaitTag, + google::cloud::apigateway::v1::DeleteApiConfigRequest const& request) { + auto span = internal::MakeSpan( + "apigateway_v1::ApiGatewayServiceConnection::DeleteApiConfig"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->DeleteApiConfig(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +ApiGatewayServiceTracingConnection::DeleteApiConfig( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "apigateway_v1::ApiGatewayServiceConnection::DeleteApiConfig"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->DeleteApiConfig(ExperimentalTag{}, operation)); +} + #endif // GOOGLE_CLOUD_CPP_HAVE_OPENTELEMETRY std::shared_ptr diff --git a/google/cloud/apigateway/v1/internal/api_gateway_tracing_connection.h b/google/cloud/apigateway/v1/internal/api_gateway_tracing_connection.h index e03bdcf8dfbc0..052034a0f2b1a 100644 --- a/google/cloud/apigateway/v1/internal/api_gateway_tracing_connection.h +++ b/google/cloud/apigateway/v1/internal/api_gateway_tracing_connection.h @@ -50,14 +50,41 @@ class ApiGatewayServiceTracingConnection google::cloud::apigateway::v1::CreateGatewayRequest const& request) override; + StatusOr CreateGateway( + ExperimentalTag, NoAwaitTag, + google::cloud::apigateway::v1::CreateGatewayRequest const& request) + override; + + future> CreateGateway( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateGateway( google::cloud::apigateway::v1::UpdateGatewayRequest const& request) override; + StatusOr UpdateGateway( + ExperimentalTag, NoAwaitTag, + google::cloud::apigateway::v1::UpdateGatewayRequest const& request) + override; + + future> UpdateGateway( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteGateway(google::cloud::apigateway::v1::DeleteGatewayRequest const& request) override; + StatusOr DeleteGateway( + ExperimentalTag, NoAwaitTag, + google::cloud::apigateway::v1::DeleteGatewayRequest const& request) + override; + + future> + DeleteGateway(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListApis( google::cloud::apigateway::v1::ListApisRequest request) override; @@ -67,12 +94,36 @@ class ApiGatewayServiceTracingConnection future> CreateApi( google::cloud::apigateway::v1::CreateApiRequest const& request) override; + StatusOr CreateApi( + ExperimentalTag, NoAwaitTag, + google::cloud::apigateway::v1::CreateApiRequest const& request) override; + + future> CreateApi( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateApi( google::cloud::apigateway::v1::UpdateApiRequest const& request) override; + StatusOr UpdateApi( + ExperimentalTag, NoAwaitTag, + google::cloud::apigateway::v1::UpdateApiRequest const& request) override; + + future> UpdateApi( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteApi( google::cloud::apigateway::v1::DeleteApiRequest const& request) override; + StatusOr DeleteApi( + ExperimentalTag, NoAwaitTag, + google::cloud::apigateway::v1::DeleteApiRequest const& request) override; + + future> DeleteApi( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListApiConfigs( google::cloud::apigateway::v1::ListApiConfigsRequest request) override; @@ -84,14 +135,41 @@ class ApiGatewayServiceTracingConnection google::cloud::apigateway::v1::CreateApiConfigRequest const& request) override; + StatusOr CreateApiConfig( + ExperimentalTag, NoAwaitTag, + google::cloud::apigateway::v1::CreateApiConfigRequest const& request) + override; + + future> CreateApiConfig( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateApiConfig( google::cloud::apigateway::v1::UpdateApiConfigRequest const& request) override; + StatusOr UpdateApiConfig( + ExperimentalTag, NoAwaitTag, + google::cloud::apigateway::v1::UpdateApiConfigRequest const& request) + override; + + future> UpdateApiConfig( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteApiConfig(google::cloud::apigateway::v1::DeleteApiConfigRequest const& request) override; + StatusOr DeleteApiConfig( + ExperimentalTag, NoAwaitTag, + google::cloud::apigateway::v1::DeleteApiConfigRequest const& request) + override; + + future> + DeleteApiConfig(ExperimentalTag, + google::longrunning::Operation const& operation) override; + private: std::shared_ptr child_; }; diff --git a/google/cloud/apigateway/v1/mocks/mock_api_gateway_connection.h b/google/cloud/apigateway/v1/mocks/mock_api_gateway_connection.h index 47c210116fee2..3e910c38332a0 100644 --- a/google/cloud/apigateway/v1/mocks/mock_api_gateway_connection.h +++ b/google/cloud/apigateway/v1/mocks/mock_api_gateway_connection.h @@ -61,17 +61,53 @@ class MockApiGatewayServiceConnection (google::cloud::apigateway::v1::CreateGatewayRequest const& request), (override)); + MOCK_METHOD( + StatusOr, CreateGateway, + (ExperimentalTag, NoAwaitTag, + google::cloud::apigateway::v1::CreateGatewayRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateGateway, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, UpdateGateway, (google::cloud::apigateway::v1::UpdateGatewayRequest const& request), (override)); + MOCK_METHOD( + StatusOr, UpdateGateway, + (ExperimentalTag, NoAwaitTag, + google::cloud::apigateway::v1::UpdateGatewayRequest const& request), + (override)); + + MOCK_METHOD(future>, + UpdateGateway, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteGateway, (google::cloud::apigateway::v1::DeleteGatewayRequest const& request), (override)); + MOCK_METHOD( + StatusOr, DeleteGateway, + (ExperimentalTag, NoAwaitTag, + google::cloud::apigateway::v1::DeleteGatewayRequest const& request), + (override)); + + MOCK_METHOD( + future>, + DeleteGateway, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD((StreamRange), ListApis, (google::cloud::apigateway::v1::ListApisRequest request), (override)); @@ -84,16 +120,47 @@ class MockApiGatewayServiceConnection (google::cloud::apigateway::v1::CreateApiRequest const& request), (override)); + MOCK_METHOD(StatusOr, CreateApi, + (ExperimentalTag, NoAwaitTag, + google::cloud::apigateway::v1::CreateApiRequest const& request), + (override)); + + MOCK_METHOD(future>, CreateApi, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, UpdateApi, (google::cloud::apigateway::v1::UpdateApiRequest const& request), (override)); + MOCK_METHOD(StatusOr, UpdateApi, + (ExperimentalTag, NoAwaitTag, + google::cloud::apigateway::v1::UpdateApiRequest const& request), + (override)); + + MOCK_METHOD(future>, UpdateApi, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteApi, (google::cloud::apigateway::v1::DeleteApiRequest const& request), (override)); + MOCK_METHOD(StatusOr, DeleteApi, + (ExperimentalTag, NoAwaitTag, + google::cloud::apigateway::v1::DeleteApiRequest const& request), + (override)); + + MOCK_METHOD( + future>, + DeleteApi, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD((StreamRange), ListApiConfigs, (google::cloud::apigateway::v1::ListApiConfigsRequest request), @@ -110,17 +177,53 @@ class MockApiGatewayServiceConnection (google::cloud::apigateway::v1::CreateApiConfigRequest const& request), (override)); + MOCK_METHOD( + StatusOr, CreateApiConfig, + (ExperimentalTag, NoAwaitTag, + google::cloud::apigateway::v1::CreateApiConfigRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateApiConfig, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, UpdateApiConfig, (google::cloud::apigateway::v1::UpdateApiConfigRequest const& request), (override)); + MOCK_METHOD( + StatusOr, UpdateApiConfig, + (ExperimentalTag, NoAwaitTag, + google::cloud::apigateway::v1::UpdateApiConfigRequest const& request), + (override)); + + MOCK_METHOD(future>, + UpdateApiConfig, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteApiConfig, (google::cloud::apigateway::v1::DeleteApiConfigRequest const& request), (override)); + + MOCK_METHOD( + StatusOr, DeleteApiConfig, + (ExperimentalTag, NoAwaitTag, + google::cloud::apigateway::v1::DeleteApiConfigRequest const& request), + (override)); + + MOCK_METHOD( + future>, + DeleteApiConfig, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); }; GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END diff --git a/google/cloud/apigeeconnect/v1/connection_connection.h b/google/cloud/apigeeconnect/v1/connection_connection.h index 506e345332ec4..a531e62573efd 100644 --- a/google/cloud/apigeeconnect/v1/connection_connection.h +++ b/google/cloud/apigeeconnect/v1/connection_connection.h @@ -22,6 +22,7 @@ #include "google/cloud/apigeeconnect/v1/connection_connection_idempotency_policy.h" #include "google/cloud/apigeeconnect/v1/internal/connection_retry_traits.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/internal/retry_policy_impl.h" #include "google/cloud/options.h" #include "google/cloud/status_or.h" diff --git a/google/cloud/apikeys/v2/api_keys_connection.cc b/google/cloud/apikeys/v2/api_keys_connection.cc index 46595c72767fb..fcf2f18389895 100644 --- a/google/cloud/apikeys/v2/api_keys_connection.cc +++ b/google/cloud/apikeys/v2/api_keys_connection.cc @@ -45,6 +45,20 @@ future> ApiKeysConnection::CreateKey( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr ApiKeysConnection::CreateKey( + ExperimentalTag, NoAwaitTag, + google::api::apikeys::v2::CreateKeyRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> ApiKeysConnection::CreateKey( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StreamRange ApiKeysConnection::ListKeys( google::api::apikeys::v2:: ListKeysRequest) { // NOLINT(performance-unnecessary-value-param) @@ -70,6 +84,20 @@ future> ApiKeysConnection::UpdateKey( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr ApiKeysConnection::UpdateKey( + ExperimentalTag, NoAwaitTag, + google::api::apikeys::v2::UpdateKeyRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> ApiKeysConnection::UpdateKey( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> ApiKeysConnection::DeleteKey( google::api::apikeys::v2::DeleteKeyRequest const&) { return google::cloud::make_ready_future< @@ -77,6 +105,20 @@ future> ApiKeysConnection::DeleteKey( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr ApiKeysConnection::DeleteKey( + ExperimentalTag, NoAwaitTag, + google::api::apikeys::v2::DeleteKeyRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> ApiKeysConnection::DeleteKey( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> ApiKeysConnection::UndeleteKey( google::api::apikeys::v2::UndeleteKeyRequest const&) { return google::cloud::make_ready_future< @@ -84,6 +126,20 @@ future> ApiKeysConnection::UndeleteKey( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr ApiKeysConnection::UndeleteKey( + ExperimentalTag, NoAwaitTag, + google::api::apikeys::v2::UndeleteKeyRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> ApiKeysConnection::UndeleteKey( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr ApiKeysConnection::LookupKey( google::api::apikeys::v2::LookupKeyRequest const&) { diff --git a/google/cloud/apikeys/v2/api_keys_connection.h b/google/cloud/apikeys/v2/api_keys_connection.h index 54ef31369b267..90a57349caeed 100644 --- a/google/cloud/apikeys/v2/api_keys_connection.h +++ b/google/cloud/apikeys/v2/api_keys_connection.h @@ -22,8 +22,10 @@ #include "google/cloud/apikeys/v2/api_keys_connection_idempotency_policy.h" #include "google/cloud/apikeys/v2/internal/api_keys_retry_traits.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/internal/retry_policy_impl.h" +#include "google/cloud/no_await_tag.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" #include "google/cloud/status_or.h" @@ -185,6 +187,13 @@ class ApiKeysConnection { virtual future> CreateKey( google::api::apikeys::v2::CreateKeyRequest const& request); + virtual StatusOr CreateKey( + ExperimentalTag, NoAwaitTag, + google::api::apikeys::v2::CreateKeyRequest const& request); + + virtual future> CreateKey( + ExperimentalTag, google::longrunning::Operation const& operation); + virtual StreamRange ListKeys( google::api::apikeys::v2::ListKeysRequest request); @@ -197,12 +206,33 @@ class ApiKeysConnection { virtual future> UpdateKey( google::api::apikeys::v2::UpdateKeyRequest const& request); + virtual StatusOr UpdateKey( + ExperimentalTag, NoAwaitTag, + google::api::apikeys::v2::UpdateKeyRequest const& request); + + virtual future> UpdateKey( + ExperimentalTag, google::longrunning::Operation const& operation); + virtual future> DeleteKey( google::api::apikeys::v2::DeleteKeyRequest const& request); + virtual StatusOr DeleteKey( + ExperimentalTag, NoAwaitTag, + google::api::apikeys::v2::DeleteKeyRequest const& request); + + virtual future> DeleteKey( + ExperimentalTag, google::longrunning::Operation const& operation); + virtual future> UndeleteKey( google::api::apikeys::v2::UndeleteKeyRequest const& request); + virtual StatusOr UndeleteKey( + ExperimentalTag, NoAwaitTag, + google::api::apikeys::v2::UndeleteKeyRequest const& request); + + virtual future> UndeleteKey( + ExperimentalTag, google::longrunning::Operation const& operation); + virtual StatusOr LookupKey( google::api::apikeys::v2::LookupKeyRequest const& request); }; diff --git a/google/cloud/apikeys/v2/internal/api_keys_connection_impl.cc b/google/cloud/apikeys/v2/internal/api_keys_connection_impl.cc index 888f092ab9d05..1e0ba875d46c1 100644 --- a/google/cloud/apikeys/v2/internal/api_keys_connection_impl.cc +++ b/google/cloud/apikeys/v2/internal/api_keys_connection_impl.cc @@ -100,6 +100,55 @@ ApiKeysConnectionImpl::CreateKey( polling_policy(*current), __func__); } +StatusOr ApiKeysConnectionImpl::CreateKey( + ExperimentalTag, NoAwaitTag, + google::api::apikeys::v2::CreateKeyRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateKey(request), + [this](grpc::ClientContext& context, Options const& options, + google::api::apikeys::v2::CreateKeyRequest const& request) { + return stub_->CreateKey(context, options, request); + }, + *current, request, __func__); +} + +future> +ApiKeysConnectionImpl::CreateKey( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata().Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to CreateKey", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::api::apikeys::v2::Key>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::api::apikeys::v2::Key>, + polling_policy(*current), __func__); +} + StreamRange ApiKeysConnectionImpl::ListKeys( google::api::apikeys::v2::ListKeysRequest request) { request.clear_page_token(); @@ -196,6 +245,55 @@ ApiKeysConnectionImpl::UpdateKey( polling_policy(*current), __func__); } +StatusOr ApiKeysConnectionImpl::UpdateKey( + ExperimentalTag, NoAwaitTag, + google::api::apikeys::v2::UpdateKeyRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UpdateKey(request), + [this](grpc::ClientContext& context, Options const& options, + google::api::apikeys::v2::UpdateKeyRequest const& request) { + return stub_->UpdateKey(context, options, request); + }, + *current, request, __func__); +} + +future> +ApiKeysConnectionImpl::UpdateKey( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata().Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to UpdateKey", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::api::apikeys::v2::Key>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::api::apikeys::v2::Key>, + polling_policy(*current), __func__); +} + future> ApiKeysConnectionImpl::DeleteKey( google::api::apikeys::v2::DeleteKeyRequest const& request) { @@ -234,6 +332,55 @@ ApiKeysConnectionImpl::DeleteKey( polling_policy(*current), __func__); } +StatusOr ApiKeysConnectionImpl::DeleteKey( + ExperimentalTag, NoAwaitTag, + google::api::apikeys::v2::DeleteKeyRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteKey(request), + [this](grpc::ClientContext& context, Options const& options, + google::api::apikeys::v2::DeleteKeyRequest const& request) { + return stub_->DeleteKey(context, options, request); + }, + *current, request, __func__); +} + +future> +ApiKeysConnectionImpl::DeleteKey( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata().Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteKey", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::api::apikeys::v2::Key>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::api::apikeys::v2::Key>, + polling_policy(*current), __func__); +} + future> ApiKeysConnectionImpl::UndeleteKey( google::api::apikeys::v2::UndeleteKeyRequest const& request) { @@ -273,6 +420,55 @@ ApiKeysConnectionImpl::UndeleteKey( polling_policy(*current), __func__); } +StatusOr ApiKeysConnectionImpl::UndeleteKey( + ExperimentalTag, NoAwaitTag, + google::api::apikeys::v2::UndeleteKeyRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UndeleteKey(request), + [this](grpc::ClientContext& context, Options const& options, + google::api::apikeys::v2::UndeleteKeyRequest const& request) { + return stub_->UndeleteKey(context, options, request); + }, + *current, request, __func__); +} + +future> +ApiKeysConnectionImpl::UndeleteKey( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata().Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to UndeleteKey", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::api::apikeys::v2::Key>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::api::apikeys::v2::Key>, + polling_policy(*current), __func__); +} + StatusOr ApiKeysConnectionImpl::LookupKey( google::api::apikeys::v2::LookupKeyRequest const& request) { diff --git a/google/cloud/apikeys/v2/internal/api_keys_connection_impl.h b/google/cloud/apikeys/v2/internal/api_keys_connection_impl.h index 10642f83582bb..97ff7318c7f04 100644 --- a/google/cloud/apikeys/v2/internal/api_keys_connection_impl.h +++ b/google/cloud/apikeys/v2/internal/api_keys_connection_impl.h @@ -53,6 +53,14 @@ class ApiKeysConnectionImpl : public apikeys_v2::ApiKeysConnection { future> CreateKey( google::api::apikeys::v2::CreateKeyRequest const& request) override; + StatusOr CreateKey( + ExperimentalTag, NoAwaitTag, + google::api::apikeys::v2::CreateKeyRequest const& request) override; + + future> CreateKey( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListKeys( google::api::apikeys::v2::ListKeysRequest request) override; @@ -65,12 +73,36 @@ class ApiKeysConnectionImpl : public apikeys_v2::ApiKeysConnection { future> UpdateKey( google::api::apikeys::v2::UpdateKeyRequest const& request) override; + StatusOr UpdateKey( + ExperimentalTag, NoAwaitTag, + google::api::apikeys::v2::UpdateKeyRequest const& request) override; + + future> UpdateKey( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteKey( google::api::apikeys::v2::DeleteKeyRequest const& request) override; + StatusOr DeleteKey( + ExperimentalTag, NoAwaitTag, + google::api::apikeys::v2::DeleteKeyRequest const& request) override; + + future> DeleteKey( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UndeleteKey( google::api::apikeys::v2::UndeleteKeyRequest const& request) override; + StatusOr UndeleteKey( + ExperimentalTag, NoAwaitTag, + google::api::apikeys::v2::UndeleteKeyRequest const& request) override; + + future> UndeleteKey( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr LookupKey( google::api::apikeys::v2::LookupKeyRequest const& request) override; diff --git a/google/cloud/apikeys/v2/internal/api_keys_tracing_connection.cc b/google/cloud/apikeys/v2/internal/api_keys_tracing_connection.cc index 0d20ce22664d5..0afc50bd42d02 100644 --- a/google/cloud/apikeys/v2/internal/api_keys_tracing_connection.cc +++ b/google/cloud/apikeys/v2/internal/api_keys_tracing_connection.cc @@ -41,6 +41,24 @@ ApiKeysTracingConnection::CreateKey( return internal::EndSpan(std::move(span), child_->CreateKey(request)); } +StatusOr ApiKeysTracingConnection::CreateKey( + ExperimentalTag, NoAwaitTag, + google::api::apikeys::v2::CreateKeyRequest const& request) { + auto span = internal::MakeSpan("apikeys_v2::ApiKeysConnection::CreateKey"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->CreateKey(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +ApiKeysTracingConnection::CreateKey( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan("apikeys_v2::ApiKeysConnection::CreateKey"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->CreateKey(ExperimentalTag{}, operation)); +} + StreamRange ApiKeysTracingConnection::ListKeys( google::api::apikeys::v2::ListKeysRequest request) { auto span = internal::MakeSpan("apikeys_v2::ApiKeysConnection::ListKeys"); @@ -73,6 +91,24 @@ ApiKeysTracingConnection::UpdateKey( return internal::EndSpan(std::move(span), child_->UpdateKey(request)); } +StatusOr ApiKeysTracingConnection::UpdateKey( + ExperimentalTag, NoAwaitTag, + google::api::apikeys::v2::UpdateKeyRequest const& request) { + auto span = internal::MakeSpan("apikeys_v2::ApiKeysConnection::UpdateKey"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->UpdateKey(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +ApiKeysTracingConnection::UpdateKey( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan("apikeys_v2::ApiKeysConnection::UpdateKey"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->UpdateKey(ExperimentalTag{}, operation)); +} + future> ApiKeysTracingConnection::DeleteKey( google::api::apikeys::v2::DeleteKeyRequest const& request) { @@ -81,6 +117,24 @@ ApiKeysTracingConnection::DeleteKey( return internal::EndSpan(std::move(span), child_->DeleteKey(request)); } +StatusOr ApiKeysTracingConnection::DeleteKey( + ExperimentalTag, NoAwaitTag, + google::api::apikeys::v2::DeleteKeyRequest const& request) { + auto span = internal::MakeSpan("apikeys_v2::ApiKeysConnection::DeleteKey"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->DeleteKey(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +ApiKeysTracingConnection::DeleteKey( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan("apikeys_v2::ApiKeysConnection::DeleteKey"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->DeleteKey(ExperimentalTag{}, operation)); +} + future> ApiKeysTracingConnection::UndeleteKey( google::api::apikeys::v2::UndeleteKeyRequest const& request) { @@ -89,6 +143,24 @@ ApiKeysTracingConnection::UndeleteKey( return internal::EndSpan(std::move(span), child_->UndeleteKey(request)); } +StatusOr ApiKeysTracingConnection::UndeleteKey( + ExperimentalTag, NoAwaitTag, + google::api::apikeys::v2::UndeleteKeyRequest const& request) { + auto span = internal::MakeSpan("apikeys_v2::ApiKeysConnection::UndeleteKey"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->UndeleteKey(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +ApiKeysTracingConnection::UndeleteKey( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan("apikeys_v2::ApiKeysConnection::UndeleteKey"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->UndeleteKey(ExperimentalTag{}, operation)); +} + StatusOr ApiKeysTracingConnection::LookupKey( google::api::apikeys::v2::LookupKeyRequest const& request) { diff --git a/google/cloud/apikeys/v2/internal/api_keys_tracing_connection.h b/google/cloud/apikeys/v2/internal/api_keys_tracing_connection.h index 196015aa54fb1..01de9205839e5 100644 --- a/google/cloud/apikeys/v2/internal/api_keys_tracing_connection.h +++ b/google/cloud/apikeys/v2/internal/api_keys_tracing_connection.h @@ -42,6 +42,14 @@ class ApiKeysTracingConnection : public apikeys_v2::ApiKeysConnection { future> CreateKey( google::api::apikeys::v2::CreateKeyRequest const& request) override; + StatusOr CreateKey( + ExperimentalTag, NoAwaitTag, + google::api::apikeys::v2::CreateKeyRequest const& request) override; + + future> CreateKey( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListKeys( google::api::apikeys::v2::ListKeysRequest request) override; @@ -54,12 +62,36 @@ class ApiKeysTracingConnection : public apikeys_v2::ApiKeysConnection { future> UpdateKey( google::api::apikeys::v2::UpdateKeyRequest const& request) override; + StatusOr UpdateKey( + ExperimentalTag, NoAwaitTag, + google::api::apikeys::v2::UpdateKeyRequest const& request) override; + + future> UpdateKey( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteKey( google::api::apikeys::v2::DeleteKeyRequest const& request) override; + StatusOr DeleteKey( + ExperimentalTag, NoAwaitTag, + google::api::apikeys::v2::DeleteKeyRequest const& request) override; + + future> DeleteKey( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UndeleteKey( google::api::apikeys::v2::UndeleteKeyRequest const& request) override; + StatusOr UndeleteKey( + ExperimentalTag, NoAwaitTag, + google::api::apikeys::v2::UndeleteKeyRequest const& request) override; + + future> UndeleteKey( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr LookupKey( google::api::apikeys::v2::LookupKeyRequest const& request) override; diff --git a/google/cloud/apikeys/v2/mocks/mock_api_keys_connection.h b/google/cloud/apikeys/v2/mocks/mock_api_keys_connection.h index 1968535dcdbc2..cf799b6541b0b 100644 --- a/google/cloud/apikeys/v2/mocks/mock_api_keys_connection.h +++ b/google/cloud/apikeys/v2/mocks/mock_api_keys_connection.h @@ -50,6 +50,16 @@ class MockApiKeysConnection : public apikeys_v2::ApiKeysConnection { (google::api::apikeys::v2::CreateKeyRequest const& request), (override)); + MOCK_METHOD(StatusOr, CreateKey, + (ExperimentalTag, NoAwaitTag, + google::api::apikeys::v2::CreateKeyRequest const& request), + (override)); + + MOCK_METHOD(future>, CreateKey, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD((StreamRange), ListKeys, (google::api::apikeys::v2::ListKeysRequest request), (override)); @@ -66,14 +76,44 @@ class MockApiKeysConnection : public apikeys_v2::ApiKeysConnection { (google::api::apikeys::v2::UpdateKeyRequest const& request), (override)); + MOCK_METHOD(StatusOr, UpdateKey, + (ExperimentalTag, NoAwaitTag, + google::api::apikeys::v2::UpdateKeyRequest const& request), + (override)); + + MOCK_METHOD(future>, UpdateKey, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, DeleteKey, (google::api::apikeys::v2::DeleteKeyRequest const& request), (override)); + MOCK_METHOD(StatusOr, DeleteKey, + (ExperimentalTag, NoAwaitTag, + google::api::apikeys::v2::DeleteKeyRequest const& request), + (override)); + + MOCK_METHOD(future>, DeleteKey, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, UndeleteKey, (google::api::apikeys::v2::UndeleteKeyRequest const& request), (override)); + MOCK_METHOD(StatusOr, UndeleteKey, + (ExperimentalTag, NoAwaitTag, + google::api::apikeys::v2::UndeleteKeyRequest const& request), + (override)); + + MOCK_METHOD(future>, UndeleteKey, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(StatusOr, LookupKey, (google::api::apikeys::v2::LookupKeyRequest const& request), (override)); diff --git a/google/cloud/appengine/v1/applications_connection.cc b/google/cloud/appengine/v1/applications_connection.cc index 033a157ddaea4..1f6d4e2b401c3 100644 --- a/google/cloud/appengine/v1/applications_connection.cc +++ b/google/cloud/appengine/v1/applications_connection.cc @@ -51,6 +51,22 @@ ApplicationsConnection::CreateApplication( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +ApplicationsConnection::CreateApplication( + ExperimentalTag, NoAwaitTag, + google::appengine::v1::CreateApplicationRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +ApplicationsConnection::CreateApplication( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> ApplicationsConnection::UpdateApplication( google::appengine::v1::UpdateApplicationRequest const&) { @@ -59,6 +75,22 @@ ApplicationsConnection::UpdateApplication( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +ApplicationsConnection::UpdateApplication( + ExperimentalTag, NoAwaitTag, + google::appengine::v1::UpdateApplicationRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +ApplicationsConnection::UpdateApplication( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> ApplicationsConnection::RepairApplication( google::appengine::v1::RepairApplicationRequest const&) { @@ -67,6 +99,22 @@ ApplicationsConnection::RepairApplication( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +ApplicationsConnection::RepairApplication( + ExperimentalTag, NoAwaitTag, + google::appengine::v1::RepairApplicationRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +ApplicationsConnection::RepairApplication( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + std::shared_ptr MakeApplicationsConnection( Options options) { internal::CheckExpectedOptions CreateApplication( + ExperimentalTag, NoAwaitTag, + google::appengine::v1::CreateApplicationRequest const& request); + + virtual future> + CreateApplication(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> UpdateApplication( google::appengine::v1::UpdateApplicationRequest const& request); + virtual StatusOr UpdateApplication( + ExperimentalTag, NoAwaitTag, + google::appengine::v1::UpdateApplicationRequest const& request); + + virtual future> + UpdateApplication(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> RepairApplication( google::appengine::v1::RepairApplicationRequest const& request); + + virtual StatusOr RepairApplication( + ExperimentalTag, NoAwaitTag, + google::appengine::v1::RepairApplicationRequest const& request); + + virtual future> + RepairApplication(ExperimentalTag, + google::longrunning::Operation const& operation); }; /** diff --git a/google/cloud/appengine/v1/authorized_certificates_connection.h b/google/cloud/appengine/v1/authorized_certificates_connection.h index bd2cbfdd1f457..6b8359375b1d0 100644 --- a/google/cloud/appengine/v1/authorized_certificates_connection.h +++ b/google/cloud/appengine/v1/authorized_certificates_connection.h @@ -22,6 +22,7 @@ #include "google/cloud/appengine/v1/authorized_certificates_connection_idempotency_policy.h" #include "google/cloud/appengine/v1/internal/authorized_certificates_retry_traits.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/internal/retry_policy_impl.h" #include "google/cloud/options.h" #include "google/cloud/status_or.h" diff --git a/google/cloud/appengine/v1/authorized_domains_connection.h b/google/cloud/appengine/v1/authorized_domains_connection.h index 396a0235da93f..dec4d93247389 100644 --- a/google/cloud/appengine/v1/authorized_domains_connection.h +++ b/google/cloud/appengine/v1/authorized_domains_connection.h @@ -22,6 +22,7 @@ #include "google/cloud/appengine/v1/authorized_domains_connection_idempotency_policy.h" #include "google/cloud/appengine/v1/internal/authorized_domains_retry_traits.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/internal/retry_policy_impl.h" #include "google/cloud/options.h" #include "google/cloud/status_or.h" diff --git a/google/cloud/appengine/v1/domain_mappings_connection.cc b/google/cloud/appengine/v1/domain_mappings_connection.cc index 4dbed3204bd20..f01e344703efc 100644 --- a/google/cloud/appengine/v1/domain_mappings_connection.cc +++ b/google/cloud/appengine/v1/domain_mappings_connection.cc @@ -60,6 +60,22 @@ DomainMappingsConnection::CreateDomainMapping( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +DomainMappingsConnection::CreateDomainMapping( + ExperimentalTag, NoAwaitTag, + google::appengine::v1::CreateDomainMappingRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +DomainMappingsConnection::CreateDomainMapping( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> DomainMappingsConnection::UpdateDomainMapping( google::appengine::v1::UpdateDomainMappingRequest const&) { @@ -68,6 +84,22 @@ DomainMappingsConnection::UpdateDomainMapping( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +DomainMappingsConnection::UpdateDomainMapping( + ExperimentalTag, NoAwaitTag, + google::appengine::v1::UpdateDomainMappingRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +DomainMappingsConnection::UpdateDomainMapping( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> DomainMappingsConnection::DeleteDomainMapping( google::appengine::v1::DeleteDomainMappingRequest const&) { @@ -76,6 +108,22 @@ DomainMappingsConnection::DeleteDomainMapping( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +DomainMappingsConnection::DeleteDomainMapping( + ExperimentalTag, NoAwaitTag, + google::appengine::v1::DeleteDomainMappingRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +DomainMappingsConnection::DeleteDomainMapping( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + std::shared_ptr MakeDomainMappingsConnection( Options options) { internal::CheckExpectedOptions CreateDomainMapping( + ExperimentalTag, NoAwaitTag, + google::appengine::v1::CreateDomainMappingRequest const& request); + + virtual future> + CreateDomainMapping(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> UpdateDomainMapping( google::appengine::v1::UpdateDomainMappingRequest const& request); + virtual StatusOr UpdateDomainMapping( + ExperimentalTag, NoAwaitTag, + google::appengine::v1::UpdateDomainMappingRequest const& request); + + virtual future> + UpdateDomainMapping(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> DeleteDomainMapping( google::appengine::v1::DeleteDomainMappingRequest const& request); + + virtual StatusOr DeleteDomainMapping( + ExperimentalTag, NoAwaitTag, + google::appengine::v1::DeleteDomainMappingRequest const& request); + + virtual future> + DeleteDomainMapping(ExperimentalTag, + google::longrunning::Operation const& operation); }; /** diff --git a/google/cloud/appengine/v1/firewall_connection.h b/google/cloud/appengine/v1/firewall_connection.h index 63d558a56d152..497359bc98288 100644 --- a/google/cloud/appengine/v1/firewall_connection.h +++ b/google/cloud/appengine/v1/firewall_connection.h @@ -22,6 +22,7 @@ #include "google/cloud/appengine/v1/firewall_connection_idempotency_policy.h" #include "google/cloud/appengine/v1/internal/firewall_retry_traits.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/internal/retry_policy_impl.h" #include "google/cloud/options.h" #include "google/cloud/status_or.h" diff --git a/google/cloud/appengine/v1/instances_connection.cc b/google/cloud/appengine/v1/instances_connection.cc index 7bb69cde4ba7d..e7cf7b25f8044 100644 --- a/google/cloud/appengine/v1/instances_connection.cc +++ b/google/cloud/appengine/v1/instances_connection.cc @@ -58,6 +58,21 @@ InstancesConnection::DeleteInstance( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr InstancesConnection::DeleteInstance( + ExperimentalTag, NoAwaitTag, + google::appengine::v1::DeleteInstanceRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +InstancesConnection::DeleteInstance(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> InstancesConnection::DebugInstance( google::appengine::v1::DebugInstanceRequest const&) { @@ -66,6 +81,21 @@ InstancesConnection::DebugInstance( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr InstancesConnection::DebugInstance( + ExperimentalTag, NoAwaitTag, + google::appengine::v1::DebugInstanceRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +InstancesConnection::DebugInstance(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + std::shared_ptr MakeInstancesConnection(Options options) { internal::CheckExpectedOptions> DeleteInstance(google::appengine::v1::DeleteInstanceRequest const& request); + virtual StatusOr DeleteInstance( + ExperimentalTag, NoAwaitTag, + google::appengine::v1::DeleteInstanceRequest const& request); + + virtual future> + DeleteInstance(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> DebugInstance( google::appengine::v1::DebugInstanceRequest const& request); + + virtual StatusOr DebugInstance( + ExperimentalTag, NoAwaitTag, + google::appengine::v1::DebugInstanceRequest const& request); + + virtual future> DebugInstance( + ExperimentalTag, google::longrunning::Operation const& operation); }; /** diff --git a/google/cloud/appengine/v1/internal/applications_connection_impl.cc b/google/cloud/appengine/v1/internal/applications_connection_impl.cc index 062d3621d18d4..fcdf1a53ffaf3 100644 --- a/google/cloud/appengine/v1/internal/applications_connection_impl.cc +++ b/google/cloud/appengine/v1/internal/applications_connection_impl.cc @@ -116,6 +116,57 @@ ApplicationsConnectionImpl::CreateApplication( polling_policy(*current), __func__); } +StatusOr +ApplicationsConnectionImpl::CreateApplication( + ExperimentalTag, NoAwaitTag, + google::appengine::v1::CreateApplicationRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateApplication(request), + [this](grpc::ClientContext& context, Options const& options, + google::appengine::v1::CreateApplicationRequest const& request) { + return stub_->CreateApplication(context, options, request); + }, + *current, request, __func__); +} + +future> +ApplicationsConnectionImpl::CreateApplication( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to CreateApplication", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::appengine::v1::Application>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::appengine::v1::Application>, + polling_policy(*current), __func__); +} + future> ApplicationsConnectionImpl::UpdateApplication( google::appengine::v1::UpdateApplicationRequest const& request) { @@ -155,6 +206,57 @@ ApplicationsConnectionImpl::UpdateApplication( polling_policy(*current), __func__); } +StatusOr +ApplicationsConnectionImpl::UpdateApplication( + ExperimentalTag, NoAwaitTag, + google::appengine::v1::UpdateApplicationRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UpdateApplication(request), + [this](grpc::ClientContext& context, Options const& options, + google::appengine::v1::UpdateApplicationRequest const& request) { + return stub_->UpdateApplication(context, options, request); + }, + *current, request, __func__); +} + +future> +ApplicationsConnectionImpl::UpdateApplication( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to UpdateApplication", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::appengine::v1::Application>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::appengine::v1::Application>, + polling_policy(*current), __func__); +} + future> ApplicationsConnectionImpl::RepairApplication( google::appengine::v1::RepairApplicationRequest const& request) { @@ -194,6 +296,57 @@ ApplicationsConnectionImpl::RepairApplication( polling_policy(*current), __func__); } +StatusOr +ApplicationsConnectionImpl::RepairApplication( + ExperimentalTag, NoAwaitTag, + google::appengine::v1::RepairApplicationRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->RepairApplication(request), + [this](grpc::ClientContext& context, Options const& options, + google::appengine::v1::RepairApplicationRequest const& request) { + return stub_->RepairApplication(context, options, request); + }, + *current, request, __func__); +} + +future> +ApplicationsConnectionImpl::RepairApplication( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to RepairApplication", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::appengine::v1::Application>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::appengine::v1::Application>, + polling_policy(*current), __func__); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace appengine_v1_internal } // namespace cloud diff --git a/google/cloud/appengine/v1/internal/applications_connection_impl.h b/google/cloud/appengine/v1/internal/applications_connection_impl.h index b5b8832095e71..4cdb7e530de1c 100644 --- a/google/cloud/appengine/v1/internal/applications_connection_impl.h +++ b/google/cloud/appengine/v1/internal/applications_connection_impl.h @@ -56,12 +56,36 @@ class ApplicationsConnectionImpl : public appengine_v1::ApplicationsConnection { future> CreateApplication( google::appengine::v1::CreateApplicationRequest const& request) override; + StatusOr CreateApplication( + ExperimentalTag, NoAwaitTag, + google::appengine::v1::CreateApplicationRequest const& request) override; + + future> CreateApplication( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateApplication( google::appengine::v1::UpdateApplicationRequest const& request) override; + StatusOr UpdateApplication( + ExperimentalTag, NoAwaitTag, + google::appengine::v1::UpdateApplicationRequest const& request) override; + + future> UpdateApplication( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> RepairApplication( google::appengine::v1::RepairApplicationRequest const& request) override; + StatusOr RepairApplication( + ExperimentalTag, NoAwaitTag, + google::appengine::v1::RepairApplicationRequest const& request) override; + + future> RepairApplication( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + private: std::unique_ptr background_; std::shared_ptr stub_; diff --git a/google/cloud/appengine/v1/internal/applications_tracing_connection.cc b/google/cloud/appengine/v1/internal/applications_tracing_connection.cc index de4a0b550f290..f097701d814ca 100644 --- a/google/cloud/appengine/v1/internal/applications_tracing_connection.cc +++ b/google/cloud/appengine/v1/internal/applications_tracing_connection.cc @@ -50,6 +50,28 @@ ApplicationsTracingConnection::CreateApplication( return internal::EndSpan(std::move(span), child_->CreateApplication(request)); } +StatusOr +ApplicationsTracingConnection::CreateApplication( + ExperimentalTag, NoAwaitTag, + google::appengine::v1::CreateApplicationRequest const& request) { + auto span = internal::MakeSpan( + "appengine_v1::ApplicationsConnection::CreateApplication"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->CreateApplication(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +ApplicationsTracingConnection::CreateApplication( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "appengine_v1::ApplicationsConnection::CreateApplication"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->CreateApplication(ExperimentalTag{}, operation)); +} + future> ApplicationsTracingConnection::UpdateApplication( google::appengine::v1::UpdateApplicationRequest const& request) { @@ -59,6 +81,28 @@ ApplicationsTracingConnection::UpdateApplication( return internal::EndSpan(std::move(span), child_->UpdateApplication(request)); } +StatusOr +ApplicationsTracingConnection::UpdateApplication( + ExperimentalTag, NoAwaitTag, + google::appengine::v1::UpdateApplicationRequest const& request) { + auto span = internal::MakeSpan( + "appengine_v1::ApplicationsConnection::UpdateApplication"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->UpdateApplication(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +ApplicationsTracingConnection::UpdateApplication( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "appengine_v1::ApplicationsConnection::UpdateApplication"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->UpdateApplication(ExperimentalTag{}, operation)); +} + future> ApplicationsTracingConnection::RepairApplication( google::appengine::v1::RepairApplicationRequest const& request) { @@ -68,6 +112,28 @@ ApplicationsTracingConnection::RepairApplication( return internal::EndSpan(std::move(span), child_->RepairApplication(request)); } +StatusOr +ApplicationsTracingConnection::RepairApplication( + ExperimentalTag, NoAwaitTag, + google::appengine::v1::RepairApplicationRequest const& request) { + auto span = internal::MakeSpan( + "appengine_v1::ApplicationsConnection::RepairApplication"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->RepairApplication(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +ApplicationsTracingConnection::RepairApplication( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "appengine_v1::ApplicationsConnection::RepairApplication"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->RepairApplication(ExperimentalTag{}, operation)); +} + #endif // GOOGLE_CLOUD_CPP_HAVE_OPENTELEMETRY std::shared_ptr diff --git a/google/cloud/appengine/v1/internal/applications_tracing_connection.h b/google/cloud/appengine/v1/internal/applications_tracing_connection.h index c44b687b42dcb..c4cffc8858436 100644 --- a/google/cloud/appengine/v1/internal/applications_tracing_connection.h +++ b/google/cloud/appengine/v1/internal/applications_tracing_connection.h @@ -46,12 +46,36 @@ class ApplicationsTracingConnection future> CreateApplication( google::appengine::v1::CreateApplicationRequest const& request) override; + StatusOr CreateApplication( + ExperimentalTag, NoAwaitTag, + google::appengine::v1::CreateApplicationRequest const& request) override; + + future> CreateApplication( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateApplication( google::appengine::v1::UpdateApplicationRequest const& request) override; + StatusOr UpdateApplication( + ExperimentalTag, NoAwaitTag, + google::appengine::v1::UpdateApplicationRequest const& request) override; + + future> UpdateApplication( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> RepairApplication( google::appengine::v1::RepairApplicationRequest const& request) override; + StatusOr RepairApplication( + ExperimentalTag, NoAwaitTag, + google::appengine::v1::RepairApplicationRequest const& request) override; + + future> RepairApplication( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + private: std::shared_ptr child_; }; diff --git a/google/cloud/appengine/v1/internal/domain_mappings_connection_impl.cc b/google/cloud/appengine/v1/internal/domain_mappings_connection_impl.cc index ff85020ff62d8..3f13ff7771446 100644 --- a/google/cloud/appengine/v1/internal/domain_mappings_connection_impl.cc +++ b/google/cloud/appengine/v1/internal/domain_mappings_connection_impl.cc @@ -153,6 +153,57 @@ DomainMappingsConnectionImpl::CreateDomainMapping( polling_policy(*current), __func__); } +StatusOr +DomainMappingsConnectionImpl::CreateDomainMapping( + ExperimentalTag, NoAwaitTag, + google::appengine::v1::CreateDomainMappingRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateDomainMapping(request), + [this](grpc::ClientContext& context, Options const& options, + google::appengine::v1::CreateDomainMappingRequest const& request) { + return stub_->CreateDomainMapping(context, options, request); + }, + *current, request, __func__); +} + +future> +DomainMappingsConnectionImpl::CreateDomainMapping( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to CreateDomainMapping", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::appengine::v1::DomainMapping>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::appengine::v1::DomainMapping>, + polling_policy(*current), __func__); +} + future> DomainMappingsConnectionImpl::UpdateDomainMapping( google::appengine::v1::UpdateDomainMappingRequest const& request) { @@ -192,6 +243,57 @@ DomainMappingsConnectionImpl::UpdateDomainMapping( polling_policy(*current), __func__); } +StatusOr +DomainMappingsConnectionImpl::UpdateDomainMapping( + ExperimentalTag, NoAwaitTag, + google::appengine::v1::UpdateDomainMappingRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UpdateDomainMapping(request), + [this](grpc::ClientContext& context, Options const& options, + google::appengine::v1::UpdateDomainMappingRequest const& request) { + return stub_->UpdateDomainMapping(context, options, request); + }, + *current, request, __func__); +} + +future> +DomainMappingsConnectionImpl::UpdateDomainMapping( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to UpdateDomainMapping", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::appengine::v1::DomainMapping>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::appengine::v1::DomainMapping>, + polling_policy(*current), __func__); +} + future> DomainMappingsConnectionImpl::DeleteDomainMapping( google::appengine::v1::DeleteDomainMappingRequest const& request) { @@ -231,6 +333,58 @@ DomainMappingsConnectionImpl::DeleteDomainMapping( polling_policy(*current), __func__); } +StatusOr +DomainMappingsConnectionImpl::DeleteDomainMapping( + ExperimentalTag, NoAwaitTag, + google::appengine::v1::DeleteDomainMappingRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteDomainMapping(request), + [this](grpc::ClientContext& context, Options const& options, + google::appengine::v1::DeleteDomainMappingRequest const& request) { + return stub_->DeleteDomainMapping(context, options, request); + }, + *current, request, __func__); +} + +future> +DomainMappingsConnectionImpl::DeleteDomainMapping( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteDomainMapping", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::appengine::v1::OperationMetadataV1>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::appengine::v1::OperationMetadataV1>, + polling_policy(*current), __func__); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace appengine_v1_internal } // namespace cloud diff --git a/google/cloud/appengine/v1/internal/domain_mappings_connection_impl.h b/google/cloud/appengine/v1/internal/domain_mappings_connection_impl.h index 213d6f9e52022..3b631f590b2e4 100644 --- a/google/cloud/appengine/v1/internal/domain_mappings_connection_impl.h +++ b/google/cloud/appengine/v1/internal/domain_mappings_connection_impl.h @@ -62,14 +62,41 @@ class DomainMappingsConnectionImpl google::appengine::v1::CreateDomainMappingRequest const& request) override; + StatusOr CreateDomainMapping( + ExperimentalTag, NoAwaitTag, + google::appengine::v1::CreateDomainMappingRequest const& request) + override; + + future> CreateDomainMapping( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateDomainMapping( google::appengine::v1::UpdateDomainMappingRequest const& request) override; + StatusOr UpdateDomainMapping( + ExperimentalTag, NoAwaitTag, + google::appengine::v1::UpdateDomainMappingRequest const& request) + override; + + future> UpdateDomainMapping( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteDomainMapping(google::appengine::v1::DeleteDomainMappingRequest const& request) override; + StatusOr DeleteDomainMapping( + ExperimentalTag, NoAwaitTag, + google::appengine::v1::DeleteDomainMappingRequest const& request) + override; + + future> + DeleteDomainMapping(ExperimentalTag, + google::longrunning::Operation const& operation) override; + private: std::unique_ptr background_; std::shared_ptr stub_; diff --git a/google/cloud/appengine/v1/internal/domain_mappings_tracing_connection.cc b/google/cloud/appengine/v1/internal/domain_mappings_tracing_connection.cc index 5a000f0594713..58625a37ed99d 100644 --- a/google/cloud/appengine/v1/internal/domain_mappings_tracing_connection.cc +++ b/google/cloud/appengine/v1/internal/domain_mappings_tracing_connection.cc @@ -63,6 +63,28 @@ DomainMappingsTracingConnection::CreateDomainMapping( child_->CreateDomainMapping(request)); } +StatusOr +DomainMappingsTracingConnection::CreateDomainMapping( + ExperimentalTag, NoAwaitTag, + google::appengine::v1::CreateDomainMappingRequest const& request) { + auto span = internal::MakeSpan( + "appengine_v1::DomainMappingsConnection::CreateDomainMapping"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->CreateDomainMapping(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +DomainMappingsTracingConnection::CreateDomainMapping( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "appengine_v1::DomainMappingsConnection::CreateDomainMapping"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->CreateDomainMapping( + ExperimentalTag{}, operation)); +} + future> DomainMappingsTracingConnection::UpdateDomainMapping( google::appengine::v1::UpdateDomainMappingRequest const& request) { @@ -73,6 +95,28 @@ DomainMappingsTracingConnection::UpdateDomainMapping( child_->UpdateDomainMapping(request)); } +StatusOr +DomainMappingsTracingConnection::UpdateDomainMapping( + ExperimentalTag, NoAwaitTag, + google::appengine::v1::UpdateDomainMappingRequest const& request) { + auto span = internal::MakeSpan( + "appengine_v1::DomainMappingsConnection::UpdateDomainMapping"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->UpdateDomainMapping(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +DomainMappingsTracingConnection::UpdateDomainMapping( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "appengine_v1::DomainMappingsConnection::UpdateDomainMapping"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->UpdateDomainMapping( + ExperimentalTag{}, operation)); +} + future> DomainMappingsTracingConnection::DeleteDomainMapping( google::appengine::v1::DeleteDomainMappingRequest const& request) { @@ -83,6 +127,28 @@ DomainMappingsTracingConnection::DeleteDomainMapping( child_->DeleteDomainMapping(request)); } +StatusOr +DomainMappingsTracingConnection::DeleteDomainMapping( + ExperimentalTag, NoAwaitTag, + google::appengine::v1::DeleteDomainMappingRequest const& request) { + auto span = internal::MakeSpan( + "appengine_v1::DomainMappingsConnection::DeleteDomainMapping"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->DeleteDomainMapping(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +DomainMappingsTracingConnection::DeleteDomainMapping( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "appengine_v1::DomainMappingsConnection::DeleteDomainMapping"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->DeleteDomainMapping( + ExperimentalTag{}, operation)); +} + #endif // GOOGLE_CLOUD_CPP_HAVE_OPENTELEMETRY std::shared_ptr diff --git a/google/cloud/appengine/v1/internal/domain_mappings_tracing_connection.h b/google/cloud/appengine/v1/internal/domain_mappings_tracing_connection.h index a67d4820588e9..0b28d8974b7c0 100644 --- a/google/cloud/appengine/v1/internal/domain_mappings_tracing_connection.h +++ b/google/cloud/appengine/v1/internal/domain_mappings_tracing_connection.h @@ -50,14 +50,41 @@ class DomainMappingsTracingConnection google::appengine::v1::CreateDomainMappingRequest const& request) override; + StatusOr CreateDomainMapping( + ExperimentalTag, NoAwaitTag, + google::appengine::v1::CreateDomainMappingRequest const& request) + override; + + future> CreateDomainMapping( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateDomainMapping( google::appengine::v1::UpdateDomainMappingRequest const& request) override; + StatusOr UpdateDomainMapping( + ExperimentalTag, NoAwaitTag, + google::appengine::v1::UpdateDomainMappingRequest const& request) + override; + + future> UpdateDomainMapping( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteDomainMapping(google::appengine::v1::DeleteDomainMappingRequest const& request) override; + StatusOr DeleteDomainMapping( + ExperimentalTag, NoAwaitTag, + google::appengine::v1::DeleteDomainMappingRequest const& request) + override; + + future> + DeleteDomainMapping(ExperimentalTag, + google::longrunning::Operation const& operation) override; + private: std::shared_ptr child_; }; diff --git a/google/cloud/appengine/v1/internal/instances_connection_impl.cc b/google/cloud/appengine/v1/internal/instances_connection_impl.cc index 16b8ff51464a5..a44538ba2a00e 100644 --- a/google/cloud/appengine/v1/internal/instances_connection_impl.cc +++ b/google/cloud/appengine/v1/internal/instances_connection_impl.cc @@ -148,6 +148,58 @@ InstancesConnectionImpl::DeleteInstance( polling_policy(*current), __func__); } +StatusOr +InstancesConnectionImpl::DeleteInstance( + ExperimentalTag, NoAwaitTag, + google::appengine::v1::DeleteInstanceRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteInstance(request), + [this](grpc::ClientContext& context, Options const& options, + google::appengine::v1::DeleteInstanceRequest const& request) { + return stub_->DeleteInstance(context, options, request); + }, + *current, request, __func__); +} + +future> +InstancesConnectionImpl::DeleteInstance( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteInstance", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::appengine::v1::OperationMetadataV1>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::appengine::v1::OperationMetadataV1>, + polling_policy(*current), __func__); +} + future> InstancesConnectionImpl::DebugInstance( google::appengine::v1::DebugInstanceRequest const& request) { @@ -187,6 +239,56 @@ InstancesConnectionImpl::DebugInstance( polling_policy(*current), __func__); } +StatusOr InstancesConnectionImpl::DebugInstance( + ExperimentalTag, NoAwaitTag, + google::appengine::v1::DebugInstanceRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DebugInstance(request), + [this](grpc::ClientContext& context, Options const& options, + google::appengine::v1::DebugInstanceRequest const& request) { + return stub_->DebugInstance(context, options, request); + }, + *current, request, __func__); +} + +future> +InstancesConnectionImpl::DebugInstance( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to DebugInstance", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::appengine::v1::Instance>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::appengine::v1::Instance>, + polling_policy(*current), __func__); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace appengine_v1_internal } // namespace cloud diff --git a/google/cloud/appengine/v1/internal/instances_connection_impl.h b/google/cloud/appengine/v1/internal/instances_connection_impl.h index 1162eeb799ac9..90b2409c9d2bd 100644 --- a/google/cloud/appengine/v1/internal/instances_connection_impl.h +++ b/google/cloud/appengine/v1/internal/instances_connection_impl.h @@ -60,9 +60,25 @@ class InstancesConnectionImpl : public appengine_v1::InstancesConnection { future> DeleteInstance( google::appengine::v1::DeleteInstanceRequest const& request) override; + StatusOr DeleteInstance( + ExperimentalTag, NoAwaitTag, + google::appengine::v1::DeleteInstanceRequest const& request) override; + + future> DeleteInstance( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DebugInstance( google::appengine::v1::DebugInstanceRequest const& request) override; + StatusOr DebugInstance( + ExperimentalTag, NoAwaitTag, + google::appengine::v1::DebugInstanceRequest const& request) override; + + future> DebugInstance( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + private: std::unique_ptr background_; std::shared_ptr stub_; diff --git a/google/cloud/appengine/v1/internal/instances_tracing_connection.cc b/google/cloud/appengine/v1/internal/instances_tracing_connection.cc index a6290564abe31..80c1ef30f2038 100644 --- a/google/cloud/appengine/v1/internal/instances_tracing_connection.cc +++ b/google/cloud/appengine/v1/internal/instances_tracing_connection.cc @@ -62,6 +62,27 @@ InstancesTracingConnection::DeleteInstance( return internal::EndSpan(std::move(span), child_->DeleteInstance(request)); } +StatusOr +InstancesTracingConnection::DeleteInstance( + ExperimentalTag, NoAwaitTag, + google::appengine::v1::DeleteInstanceRequest const& request) { + auto span = + internal::MakeSpan("appengine_v1::InstancesConnection::DeleteInstance"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->DeleteInstance(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +InstancesTracingConnection::DeleteInstance( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = + internal::MakeSpan("appengine_v1::InstancesConnection::DeleteInstance"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->DeleteInstance(ExperimentalTag{}, operation)); +} + future> InstancesTracingConnection::DebugInstance( google::appengine::v1::DebugInstanceRequest const& request) { @@ -71,6 +92,27 @@ InstancesTracingConnection::DebugInstance( return internal::EndSpan(std::move(span), child_->DebugInstance(request)); } +StatusOr +InstancesTracingConnection::DebugInstance( + ExperimentalTag, NoAwaitTag, + google::appengine::v1::DebugInstanceRequest const& request) { + auto span = + internal::MakeSpan("appengine_v1::InstancesConnection::DebugInstance"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->DebugInstance(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +InstancesTracingConnection::DebugInstance( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = + internal::MakeSpan("appengine_v1::InstancesConnection::DebugInstance"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->DebugInstance(ExperimentalTag{}, operation)); +} + #endif // GOOGLE_CLOUD_CPP_HAVE_OPENTELEMETRY std::shared_ptr diff --git a/google/cloud/appengine/v1/internal/instances_tracing_connection.h b/google/cloud/appengine/v1/internal/instances_tracing_connection.h index c715de3f733af..4cc2ec18ef33a 100644 --- a/google/cloud/appengine/v1/internal/instances_tracing_connection.h +++ b/google/cloud/appengine/v1/internal/instances_tracing_connection.h @@ -48,9 +48,25 @@ class InstancesTracingConnection : public appengine_v1::InstancesConnection { future> DeleteInstance( google::appengine::v1::DeleteInstanceRequest const& request) override; + StatusOr DeleteInstance( + ExperimentalTag, NoAwaitTag, + google::appengine::v1::DeleteInstanceRequest const& request) override; + + future> DeleteInstance( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DebugInstance( google::appengine::v1::DebugInstanceRequest const& request) override; + StatusOr DebugInstance( + ExperimentalTag, NoAwaitTag, + google::appengine::v1::DebugInstanceRequest const& request) override; + + future> DebugInstance( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + private: std::shared_ptr child_; }; diff --git a/google/cloud/appengine/v1/internal/services_connection_impl.cc b/google/cloud/appengine/v1/internal/services_connection_impl.cc index e0ed4655b6019..083bcd389b791 100644 --- a/google/cloud/appengine/v1/internal/services_connection_impl.cc +++ b/google/cloud/appengine/v1/internal/services_connection_impl.cc @@ -146,6 +146,56 @@ ServicesConnectionImpl::UpdateService( polling_policy(*current), __func__); } +StatusOr ServicesConnectionImpl::UpdateService( + ExperimentalTag, NoAwaitTag, + google::appengine::v1::UpdateServiceRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UpdateService(request), + [this](grpc::ClientContext& context, Options const& options, + google::appengine::v1::UpdateServiceRequest const& request) { + return stub_->UpdateService(context, options, request); + }, + *current, request, __func__); +} + +future> +ServicesConnectionImpl::UpdateService( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to UpdateService", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::appengine::v1::Service>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::appengine::v1::Service>, + polling_policy(*current), __func__); +} + future> ServicesConnectionImpl::DeleteService( google::appengine::v1::DeleteServiceRequest const& request) { @@ -185,6 +235,57 @@ ServicesConnectionImpl::DeleteService( polling_policy(*current), __func__); } +StatusOr ServicesConnectionImpl::DeleteService( + ExperimentalTag, NoAwaitTag, + google::appengine::v1::DeleteServiceRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteService(request), + [this](grpc::ClientContext& context, Options const& options, + google::appengine::v1::DeleteServiceRequest const& request) { + return stub_->DeleteService(context, options, request); + }, + *current, request, __func__); +} + +future> +ServicesConnectionImpl::DeleteService( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteService", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::appengine::v1::OperationMetadataV1>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::appengine::v1::OperationMetadataV1>, + polling_policy(*current), __func__); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace appengine_v1_internal } // namespace cloud diff --git a/google/cloud/appengine/v1/internal/services_connection_impl.h b/google/cloud/appengine/v1/internal/services_connection_impl.h index 05a235598857f..a86bf7cdfeec0 100644 --- a/google/cloud/appengine/v1/internal/services_connection_impl.h +++ b/google/cloud/appengine/v1/internal/services_connection_impl.h @@ -60,9 +60,25 @@ class ServicesConnectionImpl : public appengine_v1::ServicesConnection { future> UpdateService( google::appengine::v1::UpdateServiceRequest const& request) override; + StatusOr UpdateService( + ExperimentalTag, NoAwaitTag, + google::appengine::v1::UpdateServiceRequest const& request) override; + + future> UpdateService( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteService( google::appengine::v1::DeleteServiceRequest const& request) override; + StatusOr DeleteService( + ExperimentalTag, NoAwaitTag, + google::appengine::v1::DeleteServiceRequest const& request) override; + + future> DeleteService( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + private: std::unique_ptr background_; std::shared_ptr stub_; diff --git a/google/cloud/appengine/v1/internal/services_tracing_connection.cc b/google/cloud/appengine/v1/internal/services_tracing_connection.cc index 99f9b46310715..e0c8c02b37b6b 100644 --- a/google/cloud/appengine/v1/internal/services_tracing_connection.cc +++ b/google/cloud/appengine/v1/internal/services_tracing_connection.cc @@ -61,6 +61,27 @@ ServicesTracingConnection::UpdateService( return internal::EndSpan(std::move(span), child_->UpdateService(request)); } +StatusOr +ServicesTracingConnection::UpdateService( + ExperimentalTag, NoAwaitTag, + google::appengine::v1::UpdateServiceRequest const& request) { + auto span = + internal::MakeSpan("appengine_v1::ServicesConnection::UpdateService"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->UpdateService(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +ServicesTracingConnection::UpdateService( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = + internal::MakeSpan("appengine_v1::ServicesConnection::UpdateService"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->UpdateService(ExperimentalTag{}, operation)); +} + future> ServicesTracingConnection::DeleteService( google::appengine::v1::DeleteServiceRequest const& request) { @@ -70,6 +91,27 @@ ServicesTracingConnection::DeleteService( return internal::EndSpan(std::move(span), child_->DeleteService(request)); } +StatusOr +ServicesTracingConnection::DeleteService( + ExperimentalTag, NoAwaitTag, + google::appengine::v1::DeleteServiceRequest const& request) { + auto span = + internal::MakeSpan("appengine_v1::ServicesConnection::DeleteService"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->DeleteService(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +ServicesTracingConnection::DeleteService( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = + internal::MakeSpan("appengine_v1::ServicesConnection::DeleteService"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->DeleteService(ExperimentalTag{}, operation)); +} + #endif // GOOGLE_CLOUD_CPP_HAVE_OPENTELEMETRY std::shared_ptr MakeServicesTracingConnection( diff --git a/google/cloud/appengine/v1/internal/services_tracing_connection.h b/google/cloud/appengine/v1/internal/services_tracing_connection.h index 69395f57f288d..d752f26e49a45 100644 --- a/google/cloud/appengine/v1/internal/services_tracing_connection.h +++ b/google/cloud/appengine/v1/internal/services_tracing_connection.h @@ -48,9 +48,25 @@ class ServicesTracingConnection : public appengine_v1::ServicesConnection { future> UpdateService( google::appengine::v1::UpdateServiceRequest const& request) override; + StatusOr UpdateService( + ExperimentalTag, NoAwaitTag, + google::appengine::v1::UpdateServiceRequest const& request) override; + + future> UpdateService( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteService( google::appengine::v1::DeleteServiceRequest const& request) override; + StatusOr DeleteService( + ExperimentalTag, NoAwaitTag, + google::appengine::v1::DeleteServiceRequest const& request) override; + + future> DeleteService( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + private: std::shared_ptr child_; }; diff --git a/google/cloud/appengine/v1/internal/versions_connection_impl.cc b/google/cloud/appengine/v1/internal/versions_connection_impl.cc index 7464fc84e9e4b..5dedd01b60ae0 100644 --- a/google/cloud/appengine/v1/internal/versions_connection_impl.cc +++ b/google/cloud/appengine/v1/internal/versions_connection_impl.cc @@ -146,6 +146,56 @@ VersionsConnectionImpl::CreateVersion( polling_policy(*current), __func__); } +StatusOr VersionsConnectionImpl::CreateVersion( + ExperimentalTag, NoAwaitTag, + google::appengine::v1::CreateVersionRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateVersion(request), + [this](grpc::ClientContext& context, Options const& options, + google::appengine::v1::CreateVersionRequest const& request) { + return stub_->CreateVersion(context, options, request); + }, + *current, request, __func__); +} + +future> +VersionsConnectionImpl::CreateVersion( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to CreateVersion", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::appengine::v1::Version>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::appengine::v1::Version>, + polling_policy(*current), __func__); +} + future> VersionsConnectionImpl::UpdateVersion( google::appengine::v1::UpdateVersionRequest const& request) { @@ -185,6 +235,56 @@ VersionsConnectionImpl::UpdateVersion( polling_policy(*current), __func__); } +StatusOr VersionsConnectionImpl::UpdateVersion( + ExperimentalTag, NoAwaitTag, + google::appengine::v1::UpdateVersionRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UpdateVersion(request), + [this](grpc::ClientContext& context, Options const& options, + google::appengine::v1::UpdateVersionRequest const& request) { + return stub_->UpdateVersion(context, options, request); + }, + *current, request, __func__); +} + +future> +VersionsConnectionImpl::UpdateVersion( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to UpdateVersion", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::appengine::v1::Version>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::appengine::v1::Version>, + polling_policy(*current), __func__); +} + future> VersionsConnectionImpl::DeleteVersion( google::appengine::v1::DeleteVersionRequest const& request) { @@ -224,6 +324,57 @@ VersionsConnectionImpl::DeleteVersion( polling_policy(*current), __func__); } +StatusOr VersionsConnectionImpl::DeleteVersion( + ExperimentalTag, NoAwaitTag, + google::appengine::v1::DeleteVersionRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteVersion(request), + [this](grpc::ClientContext& context, Options const& options, + google::appengine::v1::DeleteVersionRequest const& request) { + return stub_->DeleteVersion(context, options, request); + }, + *current, request, __func__); +} + +future> +VersionsConnectionImpl::DeleteVersion( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteVersion", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::appengine::v1::OperationMetadataV1>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::appengine::v1::OperationMetadataV1>, + polling_policy(*current), __func__); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace appengine_v1_internal } // namespace cloud diff --git a/google/cloud/appengine/v1/internal/versions_connection_impl.h b/google/cloud/appengine/v1/internal/versions_connection_impl.h index feb28b702bb14..bb40f728440e0 100644 --- a/google/cloud/appengine/v1/internal/versions_connection_impl.h +++ b/google/cloud/appengine/v1/internal/versions_connection_impl.h @@ -60,12 +60,36 @@ class VersionsConnectionImpl : public appengine_v1::VersionsConnection { future> CreateVersion( google::appengine::v1::CreateVersionRequest const& request) override; + StatusOr CreateVersion( + ExperimentalTag, NoAwaitTag, + google::appengine::v1::CreateVersionRequest const& request) override; + + future> CreateVersion( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateVersion( google::appengine::v1::UpdateVersionRequest const& request) override; + StatusOr UpdateVersion( + ExperimentalTag, NoAwaitTag, + google::appengine::v1::UpdateVersionRequest const& request) override; + + future> UpdateVersion( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteVersion( google::appengine::v1::DeleteVersionRequest const& request) override; + StatusOr DeleteVersion( + ExperimentalTag, NoAwaitTag, + google::appengine::v1::DeleteVersionRequest const& request) override; + + future> DeleteVersion( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + private: std::unique_ptr background_; std::shared_ptr stub_; diff --git a/google/cloud/appengine/v1/internal/versions_tracing_connection.cc b/google/cloud/appengine/v1/internal/versions_tracing_connection.cc index cfa4dc31a563b..8642a42de1aff 100644 --- a/google/cloud/appengine/v1/internal/versions_tracing_connection.cc +++ b/google/cloud/appengine/v1/internal/versions_tracing_connection.cc @@ -61,6 +61,27 @@ VersionsTracingConnection::CreateVersion( return internal::EndSpan(std::move(span), child_->CreateVersion(request)); } +StatusOr +VersionsTracingConnection::CreateVersion( + ExperimentalTag, NoAwaitTag, + google::appengine::v1::CreateVersionRequest const& request) { + auto span = + internal::MakeSpan("appengine_v1::VersionsConnection::CreateVersion"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->CreateVersion(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +VersionsTracingConnection::CreateVersion( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = + internal::MakeSpan("appengine_v1::VersionsConnection::CreateVersion"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->CreateVersion(ExperimentalTag{}, operation)); +} + future> VersionsTracingConnection::UpdateVersion( google::appengine::v1::UpdateVersionRequest const& request) { @@ -70,6 +91,27 @@ VersionsTracingConnection::UpdateVersion( return internal::EndSpan(std::move(span), child_->UpdateVersion(request)); } +StatusOr +VersionsTracingConnection::UpdateVersion( + ExperimentalTag, NoAwaitTag, + google::appengine::v1::UpdateVersionRequest const& request) { + auto span = + internal::MakeSpan("appengine_v1::VersionsConnection::UpdateVersion"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->UpdateVersion(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +VersionsTracingConnection::UpdateVersion( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = + internal::MakeSpan("appengine_v1::VersionsConnection::UpdateVersion"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->UpdateVersion(ExperimentalTag{}, operation)); +} + future> VersionsTracingConnection::DeleteVersion( google::appengine::v1::DeleteVersionRequest const& request) { @@ -79,6 +121,27 @@ VersionsTracingConnection::DeleteVersion( return internal::EndSpan(std::move(span), child_->DeleteVersion(request)); } +StatusOr +VersionsTracingConnection::DeleteVersion( + ExperimentalTag, NoAwaitTag, + google::appengine::v1::DeleteVersionRequest const& request) { + auto span = + internal::MakeSpan("appengine_v1::VersionsConnection::DeleteVersion"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->DeleteVersion(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +VersionsTracingConnection::DeleteVersion( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = + internal::MakeSpan("appengine_v1::VersionsConnection::DeleteVersion"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->DeleteVersion(ExperimentalTag{}, operation)); +} + #endif // GOOGLE_CLOUD_CPP_HAVE_OPENTELEMETRY std::shared_ptr MakeVersionsTracingConnection( diff --git a/google/cloud/appengine/v1/internal/versions_tracing_connection.h b/google/cloud/appengine/v1/internal/versions_tracing_connection.h index 7b44c4215fbce..5708189cb04f3 100644 --- a/google/cloud/appengine/v1/internal/versions_tracing_connection.h +++ b/google/cloud/appengine/v1/internal/versions_tracing_connection.h @@ -48,12 +48,36 @@ class VersionsTracingConnection : public appengine_v1::VersionsConnection { future> CreateVersion( google::appengine::v1::CreateVersionRequest const& request) override; + StatusOr CreateVersion( + ExperimentalTag, NoAwaitTag, + google::appengine::v1::CreateVersionRequest const& request) override; + + future> CreateVersion( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateVersion( google::appengine::v1::UpdateVersionRequest const& request) override; + StatusOr UpdateVersion( + ExperimentalTag, NoAwaitTag, + google::appengine::v1::UpdateVersionRequest const& request) override; + + future> UpdateVersion( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteVersion( google::appengine::v1::DeleteVersionRequest const& request) override; + StatusOr DeleteVersion( + ExperimentalTag, NoAwaitTag, + google::appengine::v1::DeleteVersionRequest const& request) override; + + future> DeleteVersion( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + private: std::shared_ptr child_; }; diff --git a/google/cloud/appengine/v1/mocks/mock_applications_connection.h b/google/cloud/appengine/v1/mocks/mock_applications_connection.h index b32ef728e74b7..932dacbdd7b56 100644 --- a/google/cloud/appengine/v1/mocks/mock_applications_connection.h +++ b/google/cloud/appengine/v1/mocks/mock_applications_connection.h @@ -55,15 +55,48 @@ class MockApplicationsConnection : public appengine_v1::ApplicationsConnection { (google::appengine::v1::CreateApplicationRequest const& request), (override)); + MOCK_METHOD(StatusOr, CreateApplication, + (ExperimentalTag, NoAwaitTag, + google::appengine::v1::CreateApplicationRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateApplication, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, UpdateApplication, (google::appengine::v1::UpdateApplicationRequest const& request), (override)); + MOCK_METHOD(StatusOr, UpdateApplication, + (ExperimentalTag, NoAwaitTag, + google::appengine::v1::UpdateApplicationRequest const& request), + (override)); + + MOCK_METHOD(future>, + UpdateApplication, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, RepairApplication, (google::appengine::v1::RepairApplicationRequest const& request), (override)); + + MOCK_METHOD(StatusOr, RepairApplication, + (ExperimentalTag, NoAwaitTag, + google::appengine::v1::RepairApplicationRequest const& request), + (override)); + + MOCK_METHOD(future>, + RepairApplication, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); }; GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END diff --git a/google/cloud/appengine/v1/mocks/mock_domain_mappings_connection.h b/google/cloud/appengine/v1/mocks/mock_domain_mappings_connection.h index af36c0b14c2cd..6c1408198c344 100644 --- a/google/cloud/appengine/v1/mocks/mock_domain_mappings_connection.h +++ b/google/cloud/appengine/v1/mocks/mock_domain_mappings_connection.h @@ -62,17 +62,53 @@ class MockDomainMappingsConnection (google::appengine::v1::CreateDomainMappingRequest const& request), (override)); + MOCK_METHOD( + StatusOr, CreateDomainMapping, + (ExperimentalTag, NoAwaitTag, + google::appengine::v1::CreateDomainMappingRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateDomainMapping, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, UpdateDomainMapping, (google::appengine::v1::UpdateDomainMappingRequest const& request), (override)); + MOCK_METHOD( + StatusOr, UpdateDomainMapping, + (ExperimentalTag, NoAwaitTag, + google::appengine::v1::UpdateDomainMappingRequest const& request), + (override)); + + MOCK_METHOD(future>, + UpdateDomainMapping, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteDomainMapping, (google::appengine::v1::DeleteDomainMappingRequest const& request), (override)); + + MOCK_METHOD( + StatusOr, DeleteDomainMapping, + (ExperimentalTag, NoAwaitTag, + google::appengine::v1::DeleteDomainMappingRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteDomainMapping, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); }; GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END diff --git a/google/cloud/appengine/v1/mocks/mock_instances_connection.h b/google/cloud/appengine/v1/mocks/mock_instances_connection.h index 178c8e75d734a..9f151f37ef114 100644 --- a/google/cloud/appengine/v1/mocks/mock_instances_connection.h +++ b/google/cloud/appengine/v1/mocks/mock_instances_connection.h @@ -59,9 +59,30 @@ class MockInstancesConnection : public appengine_v1::InstancesConnection { (google::appengine::v1::DeleteInstanceRequest const& request), (override)); + MOCK_METHOD(StatusOr, DeleteInstance, + (ExperimentalTag, NoAwaitTag, + google::appengine::v1::DeleteInstanceRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteInstance, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, DebugInstance, (google::appengine::v1::DebugInstanceRequest const& request), (override)); + + MOCK_METHOD(StatusOr, DebugInstance, + (ExperimentalTag, NoAwaitTag, + google::appengine::v1::DebugInstanceRequest const& request), + (override)); + + MOCK_METHOD(future>, DebugInstance, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); }; GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END diff --git a/google/cloud/appengine/v1/mocks/mock_services_connection.h b/google/cloud/appengine/v1/mocks/mock_services_connection.h index d5f9bdb59e681..2d4c81cca6c10 100644 --- a/google/cloud/appengine/v1/mocks/mock_services_connection.h +++ b/google/cloud/appengine/v1/mocks/mock_services_connection.h @@ -57,10 +57,31 @@ class MockServicesConnection : public appengine_v1::ServicesConnection { (google::appengine::v1::UpdateServiceRequest const& request), (override)); + MOCK_METHOD(StatusOr, UpdateService, + (ExperimentalTag, NoAwaitTag, + google::appengine::v1::UpdateServiceRequest const& request), + (override)); + + MOCK_METHOD(future>, UpdateService, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, DeleteService, (google::appengine::v1::DeleteServiceRequest const& request), (override)); + + MOCK_METHOD(StatusOr, DeleteService, + (ExperimentalTag, NoAwaitTag, + google::appengine::v1::DeleteServiceRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteService, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); }; GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END diff --git a/google/cloud/appengine/v1/mocks/mock_versions_connection.h b/google/cloud/appengine/v1/mocks/mock_versions_connection.h index e2f5f61e4b34b..734d53ea68e86 100644 --- a/google/cloud/appengine/v1/mocks/mock_versions_connection.h +++ b/google/cloud/appengine/v1/mocks/mock_versions_connection.h @@ -57,14 +57,45 @@ class MockVersionsConnection : public appengine_v1::VersionsConnection { (google::appengine::v1::CreateVersionRequest const& request), (override)); + MOCK_METHOD(StatusOr, CreateVersion, + (ExperimentalTag, NoAwaitTag, + google::appengine::v1::CreateVersionRequest const& request), + (override)); + + MOCK_METHOD(future>, CreateVersion, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, UpdateVersion, (google::appengine::v1::UpdateVersionRequest const& request), (override)); + MOCK_METHOD(StatusOr, UpdateVersion, + (ExperimentalTag, NoAwaitTag, + google::appengine::v1::UpdateVersionRequest const& request), + (override)); + + MOCK_METHOD(future>, UpdateVersion, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, DeleteVersion, (google::appengine::v1::DeleteVersionRequest const& request), (override)); + + MOCK_METHOD(StatusOr, DeleteVersion, + (ExperimentalTag, NoAwaitTag, + google::appengine::v1::DeleteVersionRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteVersion, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); }; GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END diff --git a/google/cloud/appengine/v1/services_connection.cc b/google/cloud/appengine/v1/services_connection.cc index cdd35e9f7be78..371392e5e3e4e 100644 --- a/google/cloud/appengine/v1/services_connection.cc +++ b/google/cloud/appengine/v1/services_connection.cc @@ -58,6 +58,21 @@ ServicesConnection::UpdateService( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr ServicesConnection::UpdateService( + ExperimentalTag, NoAwaitTag, + google::appengine::v1::UpdateServiceRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +ServicesConnection::UpdateService(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> ServicesConnection::DeleteService( google::appengine::v1::DeleteServiceRequest const&) { @@ -66,6 +81,21 @@ ServicesConnection::DeleteService( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr ServicesConnection::DeleteService( + ExperimentalTag, NoAwaitTag, + google::appengine::v1::DeleteServiceRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +ServicesConnection::DeleteService(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + std::shared_ptr MakeServicesConnection(Options options) { internal::CheckExpectedOptions> UpdateService( google::appengine::v1::UpdateServiceRequest const& request); + virtual StatusOr UpdateService( + ExperimentalTag, NoAwaitTag, + google::appengine::v1::UpdateServiceRequest const& request); + + virtual future> UpdateService( + ExperimentalTag, google::longrunning::Operation const& operation); + virtual future> DeleteService(google::appengine::v1::DeleteServiceRequest const& request); + + virtual StatusOr DeleteService( + ExperimentalTag, NoAwaitTag, + google::appengine::v1::DeleteServiceRequest const& request); + + virtual future> + DeleteService(ExperimentalTag, + google::longrunning::Operation const& operation); }; /** diff --git a/google/cloud/appengine/v1/versions_connection.cc b/google/cloud/appengine/v1/versions_connection.cc index 115c2dd5522e3..a183a126f8c8e 100644 --- a/google/cloud/appengine/v1/versions_connection.cc +++ b/google/cloud/appengine/v1/versions_connection.cc @@ -58,6 +58,21 @@ VersionsConnection::CreateVersion( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr VersionsConnection::CreateVersion( + ExperimentalTag, NoAwaitTag, + google::appengine::v1::CreateVersionRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +VersionsConnection::CreateVersion(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> VersionsConnection::UpdateVersion( google::appengine::v1::UpdateVersionRequest const&) { @@ -66,6 +81,21 @@ VersionsConnection::UpdateVersion( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr VersionsConnection::UpdateVersion( + ExperimentalTag, NoAwaitTag, + google::appengine::v1::UpdateVersionRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +VersionsConnection::UpdateVersion(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> VersionsConnection::DeleteVersion( google::appengine::v1::DeleteVersionRequest const&) { @@ -74,6 +104,21 @@ VersionsConnection::DeleteVersion( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr VersionsConnection::DeleteVersion( + ExperimentalTag, NoAwaitTag, + google::appengine::v1::DeleteVersionRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +VersionsConnection::DeleteVersion(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + std::shared_ptr MakeVersionsConnection(Options options) { internal::CheckExpectedOptions> CreateVersion( google::appengine::v1::CreateVersionRequest const& request); + virtual StatusOr CreateVersion( + ExperimentalTag, NoAwaitTag, + google::appengine::v1::CreateVersionRequest const& request); + + virtual future> CreateVersion( + ExperimentalTag, google::longrunning::Operation const& operation); + virtual future> UpdateVersion( google::appengine::v1::UpdateVersionRequest const& request); + virtual StatusOr UpdateVersion( + ExperimentalTag, NoAwaitTag, + google::appengine::v1::UpdateVersionRequest const& request); + + virtual future> UpdateVersion( + ExperimentalTag, google::longrunning::Operation const& operation); + virtual future> DeleteVersion(google::appengine::v1::DeleteVersionRequest const& request); + + virtual StatusOr DeleteVersion( + ExperimentalTag, NoAwaitTag, + google::appengine::v1::DeleteVersionRequest const& request); + + virtual future> + DeleteVersion(ExperimentalTag, + google::longrunning::Operation const& operation); }; /** diff --git a/google/cloud/apphub/v1/app_hub_connection.cc b/google/cloud/apphub/v1/app_hub_connection.cc index 9178ead1882f4..a05bea83a2776 100644 --- a/google/cloud/apphub/v1/app_hub_connection.cc +++ b/google/cloud/apphub/v1/app_hub_connection.cc @@ -60,6 +60,22 @@ AppHubConnection::CreateServiceProjectAttachment( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +AppHubConnection::CreateServiceProjectAttachment( + ExperimentalTag, NoAwaitTag, + google::cloud::apphub::v1::CreateServiceProjectAttachmentRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +AppHubConnection::CreateServiceProjectAttachment( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr AppHubConnection::GetServiceProjectAttachment( google::cloud::apphub::v1::GetServiceProjectAttachmentRequest const&) { @@ -74,6 +90,22 @@ AppHubConnection::DeleteServiceProjectAttachment( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +AppHubConnection::DeleteServiceProjectAttachment( + ExperimentalTag, NoAwaitTag, + google::cloud::apphub::v1::DeleteServiceProjectAttachmentRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +AppHubConnection::DeleteServiceProjectAttachment( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr AppHubConnection::DetachServiceProjectAttachment( google::cloud::apphub::v1::DetachServiceProjectAttachmentRequest const&) { @@ -115,6 +147,21 @@ AppHubConnection::CreateService( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr AppHubConnection::CreateService( + ExperimentalTag, NoAwaitTag, + google::cloud::apphub::v1::CreateServiceRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +AppHubConnection::CreateService(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr AppHubConnection::GetService( google::cloud::apphub::v1::GetServiceRequest const&) { return Status(StatusCode::kUnimplemented, "not implemented"); @@ -128,6 +175,21 @@ AppHubConnection::UpdateService( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr AppHubConnection::UpdateService( + ExperimentalTag, NoAwaitTag, + google::cloud::apphub::v1::UpdateServiceRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +AppHubConnection::UpdateService(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> AppHubConnection::DeleteService( google::cloud::apphub::v1::DeleteServiceRequest const&) { @@ -136,6 +198,21 @@ AppHubConnection::DeleteService( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr AppHubConnection::DeleteService( + ExperimentalTag, NoAwaitTag, + google::cloud::apphub::v1::DeleteServiceRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +AppHubConnection::DeleteService(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StreamRange AppHubConnection::ListDiscoveredWorkloads( google::cloud::apphub::v1:: @@ -172,6 +249,21 @@ AppHubConnection::CreateWorkload( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr AppHubConnection::CreateWorkload( + ExperimentalTag, NoAwaitTag, + google::cloud::apphub::v1::CreateWorkloadRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +AppHubConnection::CreateWorkload(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr AppHubConnection::GetWorkload( google::cloud::apphub::v1::GetWorkloadRequest const&) { return Status(StatusCode::kUnimplemented, "not implemented"); @@ -185,6 +277,21 @@ AppHubConnection::UpdateWorkload( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr AppHubConnection::UpdateWorkload( + ExperimentalTag, NoAwaitTag, + google::cloud::apphub::v1::UpdateWorkloadRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +AppHubConnection::UpdateWorkload(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> AppHubConnection::DeleteWorkload( google::cloud::apphub::v1::DeleteWorkloadRequest const&) { @@ -193,6 +300,21 @@ AppHubConnection::DeleteWorkload( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr AppHubConnection::DeleteWorkload( + ExperimentalTag, NoAwaitTag, + google::cloud::apphub::v1::DeleteWorkloadRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +AppHubConnection::DeleteWorkload(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StreamRange AppHubConnection::ListApplications( google::cloud::apphub::v1:: @@ -209,6 +331,21 @@ AppHubConnection::CreateApplication( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr AppHubConnection::CreateApplication( + ExperimentalTag, NoAwaitTag, + google::cloud::apphub::v1::CreateApplicationRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +AppHubConnection::CreateApplication(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr AppHubConnection::GetApplication( google::cloud::apphub::v1::GetApplicationRequest const&) { @@ -223,6 +360,21 @@ AppHubConnection::UpdateApplication( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr AppHubConnection::UpdateApplication( + ExperimentalTag, NoAwaitTag, + google::cloud::apphub::v1::UpdateApplicationRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +AppHubConnection::UpdateApplication(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> AppHubConnection::DeleteApplication( google::cloud::apphub::v1::DeleteApplicationRequest const&) { @@ -231,6 +383,21 @@ AppHubConnection::DeleteApplication( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr AppHubConnection::DeleteApplication( + ExperimentalTag, NoAwaitTag, + google::cloud::apphub::v1::DeleteApplicationRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +AppHubConnection::DeleteApplication(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + std::shared_ptr MakeAppHubConnection(Options options) { internal::CheckExpectedOptions + CreateServiceProjectAttachment( + ExperimentalTag, NoAwaitTag, + google::cloud::apphub::v1::CreateServiceProjectAttachmentRequest const& + request); + + virtual future> + CreateServiceProjectAttachment( + ExperimentalTag, google::longrunning::Operation const& operation); + virtual StatusOr GetServiceProjectAttachment( google::cloud::apphub::v1::GetServiceProjectAttachmentRequest const& @@ -206,6 +218,16 @@ class AppHubConnection { google::cloud::apphub::v1::DeleteServiceProjectAttachmentRequest const& request); + virtual StatusOr + DeleteServiceProjectAttachment( + ExperimentalTag, NoAwaitTag, + google::cloud::apphub::v1::DeleteServiceProjectAttachmentRequest const& + request); + + virtual future> + DeleteServiceProjectAttachment( + ExperimentalTag, google::longrunning::Operation const& operation); + virtual StatusOr< google::cloud::apphub::v1::DetachServiceProjectAttachmentResponse> DetachServiceProjectAttachment( @@ -230,15 +252,37 @@ class AppHubConnection { virtual future> CreateService( google::cloud::apphub::v1::CreateServiceRequest const& request); + virtual StatusOr CreateService( + ExperimentalTag, NoAwaitTag, + google::cloud::apphub::v1::CreateServiceRequest const& request); + + virtual future> CreateService( + ExperimentalTag, google::longrunning::Operation const& operation); + virtual StatusOr GetService( google::cloud::apphub::v1::GetServiceRequest const& request); virtual future> UpdateService( google::cloud::apphub::v1::UpdateServiceRequest const& request); + virtual StatusOr UpdateService( + ExperimentalTag, NoAwaitTag, + google::cloud::apphub::v1::UpdateServiceRequest const& request); + + virtual future> UpdateService( + ExperimentalTag, google::longrunning::Operation const& operation); + virtual future> DeleteService(google::cloud::apphub::v1::DeleteServiceRequest const& request); + virtual StatusOr DeleteService( + ExperimentalTag, NoAwaitTag, + google::cloud::apphub::v1::DeleteServiceRequest const& request); + + virtual future> + DeleteService(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StreamRange ListDiscoveredWorkloads( google::cloud::apphub::v1::ListDiscoveredWorkloadsRequest request); @@ -258,16 +302,38 @@ class AppHubConnection { virtual future> CreateWorkload( google::cloud::apphub::v1::CreateWorkloadRequest const& request); + virtual StatusOr CreateWorkload( + ExperimentalTag, NoAwaitTag, + google::cloud::apphub::v1::CreateWorkloadRequest const& request); + + virtual future> CreateWorkload( + ExperimentalTag, google::longrunning::Operation const& operation); + virtual StatusOr GetWorkload( google::cloud::apphub::v1::GetWorkloadRequest const& request); virtual future> UpdateWorkload( google::cloud::apphub::v1::UpdateWorkloadRequest const& request); + virtual StatusOr UpdateWorkload( + ExperimentalTag, NoAwaitTag, + google::cloud::apphub::v1::UpdateWorkloadRequest const& request); + + virtual future> UpdateWorkload( + ExperimentalTag, google::longrunning::Operation const& operation); + virtual future> DeleteWorkload( google::cloud::apphub::v1::DeleteWorkloadRequest const& request); + virtual StatusOr DeleteWorkload( + ExperimentalTag, NoAwaitTag, + google::cloud::apphub::v1::DeleteWorkloadRequest const& request); + + virtual future> + DeleteWorkload(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StreamRange ListApplications( google::cloud::apphub::v1::ListApplicationsRequest request); @@ -275,6 +341,14 @@ class AppHubConnection { CreateApplication( google::cloud::apphub::v1::CreateApplicationRequest const& request); + virtual StatusOr CreateApplication( + ExperimentalTag, NoAwaitTag, + google::cloud::apphub::v1::CreateApplicationRequest const& request); + + virtual future> + CreateApplication(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StatusOr GetApplication( google::cloud::apphub::v1::GetApplicationRequest const& request); @@ -282,9 +356,25 @@ class AppHubConnection { UpdateApplication( google::cloud::apphub::v1::UpdateApplicationRequest const& request); + virtual StatusOr UpdateApplication( + ExperimentalTag, NoAwaitTag, + google::cloud::apphub::v1::UpdateApplicationRequest const& request); + + virtual future> + UpdateApplication(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> DeleteApplication( google::cloud::apphub::v1::DeleteApplicationRequest const& request); + + virtual StatusOr DeleteApplication( + ExperimentalTag, NoAwaitTag, + google::cloud::apphub::v1::DeleteApplicationRequest const& request); + + virtual future> + DeleteApplication(ExperimentalTag, + google::longrunning::Operation const& operation); }; /** diff --git a/google/cloud/apphub/v1/internal/app_hub_connection_impl.cc b/google/cloud/apphub/v1/internal/app_hub_connection_impl.cc index bf63a8e62c274..19aa1f5be2f3d 100644 --- a/google/cloud/apphub/v1/internal/app_hub_connection_impl.cc +++ b/google/cloud/apphub/v1/internal/app_hub_connection_impl.cc @@ -156,6 +156,60 @@ AppHubConnectionImpl::CreateServiceProjectAttachment( polling_policy(*current), __func__); } +StatusOr +AppHubConnectionImpl::CreateServiceProjectAttachment( + ExperimentalTag, NoAwaitTag, + google::cloud::apphub::v1::CreateServiceProjectAttachmentRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateServiceProjectAttachment(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::apphub::v1:: + CreateServiceProjectAttachmentRequest const& request) { + return stub_->CreateServiceProjectAttachment(context, options, request); + }, + *current, request, __func__); +} + +future> +AppHubConnectionImpl::CreateServiceProjectAttachment( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to CreateServiceProjectAttachment", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::apphub::v1::ServiceProjectAttachment>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::apphub::v1::ServiceProjectAttachment>, + polling_policy(*current), __func__); +} + StatusOr AppHubConnectionImpl::GetServiceProjectAttachment( google::cloud::apphub::v1::GetServiceProjectAttachmentRequest const& @@ -214,6 +268,60 @@ AppHubConnectionImpl::DeleteServiceProjectAttachment( polling_policy(*current), __func__); } +StatusOr +AppHubConnectionImpl::DeleteServiceProjectAttachment( + ExperimentalTag, NoAwaitTag, + google::cloud::apphub::v1::DeleteServiceProjectAttachmentRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteServiceProjectAttachment(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::apphub::v1:: + DeleteServiceProjectAttachmentRequest const& request) { + return stub_->DeleteServiceProjectAttachment(context, options, request); + }, + *current, request, __func__); +} + +future> +AppHubConnectionImpl::DeleteServiceProjectAttachment( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteServiceProjectAttachment", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::apphub::v1::OperationMetadata>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::cloud::apphub::v1::OperationMetadata>, + polling_policy(*current), __func__); +} + StatusOr AppHubConnectionImpl::DetachServiceProjectAttachment( google::cloud::apphub::v1::DetachServiceProjectAttachmentRequest const& @@ -369,6 +477,56 @@ AppHubConnectionImpl::CreateService( polling_policy(*current), __func__); } +StatusOr AppHubConnectionImpl::CreateService( + ExperimentalTag, NoAwaitTag, + google::cloud::apphub::v1::CreateServiceRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateService(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::apphub::v1::CreateServiceRequest const& request) { + return stub_->CreateService(context, options, request); + }, + *current, request, __func__); +} + +future> +AppHubConnectionImpl::CreateService( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to CreateService", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::apphub::v1::Service>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::apphub::v1::Service>, + polling_policy(*current), __func__); +} + StatusOr AppHubConnectionImpl::GetService( google::cloud::apphub::v1::GetServiceRequest const& request) { auto current = google::cloud::internal::SaveCurrentOptions(); @@ -421,6 +579,56 @@ AppHubConnectionImpl::UpdateService( polling_policy(*current), __func__); } +StatusOr AppHubConnectionImpl::UpdateService( + ExperimentalTag, NoAwaitTag, + google::cloud::apphub::v1::UpdateServiceRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UpdateService(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::apphub::v1::UpdateServiceRequest const& request) { + return stub_->UpdateService(context, options, request); + }, + *current, request, __func__); +} + +future> +AppHubConnectionImpl::UpdateService( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to UpdateService", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::apphub::v1::Service>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::apphub::v1::Service>, + polling_policy(*current), __func__); +} + future> AppHubConnectionImpl::DeleteService( google::cloud::apphub::v1::DeleteServiceRequest const& request) { @@ -460,6 +668,57 @@ AppHubConnectionImpl::DeleteService( polling_policy(*current), __func__); } +StatusOr AppHubConnectionImpl::DeleteService( + ExperimentalTag, NoAwaitTag, + google::cloud::apphub::v1::DeleteServiceRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteService(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::apphub::v1::DeleteServiceRequest const& request) { + return stub_->DeleteService(context, options, request); + }, + *current, request, __func__); +} + +future> +AppHubConnectionImpl::DeleteService( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteService", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::apphub::v1::OperationMetadata>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::cloud::apphub::v1::OperationMetadata>, + polling_policy(*current), __func__); +} + StreamRange AppHubConnectionImpl::ListDiscoveredWorkloads( google::cloud::apphub::v1::ListDiscoveredWorkloadsRequest request) { @@ -599,6 +858,56 @@ AppHubConnectionImpl::CreateWorkload( polling_policy(*current), __func__); } +StatusOr AppHubConnectionImpl::CreateWorkload( + ExperimentalTag, NoAwaitTag, + google::cloud::apphub::v1::CreateWorkloadRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateWorkload(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::apphub::v1::CreateWorkloadRequest const& request) { + return stub_->CreateWorkload(context, options, request); + }, + *current, request, __func__); +} + +future> +AppHubConnectionImpl::CreateWorkload( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to CreateWorkload", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::apphub::v1::Workload>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::apphub::v1::Workload>, + polling_policy(*current), __func__); +} + StatusOr AppHubConnectionImpl::GetWorkload( google::cloud::apphub::v1::GetWorkloadRequest const& request) { auto current = google::cloud::internal::SaveCurrentOptions(); @@ -651,6 +960,56 @@ AppHubConnectionImpl::UpdateWorkload( polling_policy(*current), __func__); } +StatusOr AppHubConnectionImpl::UpdateWorkload( + ExperimentalTag, NoAwaitTag, + google::cloud::apphub::v1::UpdateWorkloadRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UpdateWorkload(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::apphub::v1::UpdateWorkloadRequest const& request) { + return stub_->UpdateWorkload(context, options, request); + }, + *current, request, __func__); +} + +future> +AppHubConnectionImpl::UpdateWorkload( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to UpdateWorkload", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::apphub::v1::Workload>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::apphub::v1::Workload>, + polling_policy(*current), __func__); +} + future> AppHubConnectionImpl::DeleteWorkload( google::cloud::apphub::v1::DeleteWorkloadRequest const& request) { @@ -690,6 +1049,57 @@ AppHubConnectionImpl::DeleteWorkload( polling_policy(*current), __func__); } +StatusOr AppHubConnectionImpl::DeleteWorkload( + ExperimentalTag, NoAwaitTag, + google::cloud::apphub::v1::DeleteWorkloadRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteWorkload(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::apphub::v1::DeleteWorkloadRequest const& request) { + return stub_->DeleteWorkload(context, options, request); + }, + *current, request, __func__); +} + +future> +AppHubConnectionImpl::DeleteWorkload( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteWorkload", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::apphub::v1::OperationMetadata>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::cloud::apphub::v1::OperationMetadata>, + polling_policy(*current), __func__); +} + StreamRange AppHubConnectionImpl::ListApplications( google::cloud::apphub::v1::ListApplicationsRequest request) { @@ -763,6 +1173,58 @@ AppHubConnectionImpl::CreateApplication( polling_policy(*current), __func__); } +StatusOr +AppHubConnectionImpl::CreateApplication( + ExperimentalTag, NoAwaitTag, + google::cloud::apphub::v1::CreateApplicationRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateApplication(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::apphub::v1::CreateApplicationRequest const& request) { + return stub_->CreateApplication(context, options, request); + }, + *current, request, __func__); +} + +future> +AppHubConnectionImpl::CreateApplication( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to CreateApplication", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::apphub::v1::Application>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::apphub::v1::Application>, + polling_policy(*current), __func__); +} + StatusOr AppHubConnectionImpl::GetApplication( google::cloud::apphub::v1::GetApplicationRequest const& request) { @@ -816,6 +1278,58 @@ AppHubConnectionImpl::UpdateApplication( polling_policy(*current), __func__); } +StatusOr +AppHubConnectionImpl::UpdateApplication( + ExperimentalTag, NoAwaitTag, + google::cloud::apphub::v1::UpdateApplicationRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UpdateApplication(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::apphub::v1::UpdateApplicationRequest const& request) { + return stub_->UpdateApplication(context, options, request); + }, + *current, request, __func__); +} + +future> +AppHubConnectionImpl::UpdateApplication( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to UpdateApplication", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::apphub::v1::Application>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::apphub::v1::Application>, + polling_policy(*current), __func__); +} + future> AppHubConnectionImpl::DeleteApplication( google::cloud::apphub::v1::DeleteApplicationRequest const& request) { @@ -855,6 +1369,59 @@ AppHubConnectionImpl::DeleteApplication( polling_policy(*current), __func__); } +StatusOr +AppHubConnectionImpl::DeleteApplication( + ExperimentalTag, NoAwaitTag, + google::cloud::apphub::v1::DeleteApplicationRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteApplication(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::apphub::v1::DeleteApplicationRequest const& request) { + return stub_->DeleteApplication(context, options, request); + }, + *current, request, __func__); +} + +future> +AppHubConnectionImpl::DeleteApplication( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteApplication", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::apphub::v1::OperationMetadata>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::cloud::apphub::v1::OperationMetadata>, + polling_policy(*current), __func__); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace apphub_v1_internal } // namespace cloud diff --git a/google/cloud/apphub/v1/internal/app_hub_connection_impl.h b/google/cloud/apphub/v1/internal/app_hub_connection_impl.h index d0131796553c3..d56eda96d33d3 100644 --- a/google/cloud/apphub/v1/internal/app_hub_connection_impl.h +++ b/google/cloud/apphub/v1/internal/app_hub_connection_impl.h @@ -65,6 +65,16 @@ class AppHubConnectionImpl : public apphub_v1::AppHubConnection { google::cloud::apphub::v1::CreateServiceProjectAttachmentRequest const& request) override; + StatusOr CreateServiceProjectAttachment( + ExperimentalTag, NoAwaitTag, + google::cloud::apphub::v1::CreateServiceProjectAttachmentRequest const& + request) override; + + future> + CreateServiceProjectAttachment( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetServiceProjectAttachment( google::cloud::apphub::v1::GetServiceProjectAttachmentRequest const& @@ -75,6 +85,16 @@ class AppHubConnectionImpl : public apphub_v1::AppHubConnection { google::cloud::apphub::v1::DeleteServiceProjectAttachmentRequest const& request) override; + StatusOr DeleteServiceProjectAttachment( + ExperimentalTag, NoAwaitTag, + google::cloud::apphub::v1::DeleteServiceProjectAttachmentRequest const& + request) override; + + future> + DeleteServiceProjectAttachment( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr DetachServiceProjectAttachment( google::cloud::apphub::v1::DetachServiceProjectAttachmentRequest const& @@ -100,15 +120,39 @@ class AppHubConnectionImpl : public apphub_v1::AppHubConnection { future> CreateService( google::cloud::apphub::v1::CreateServiceRequest const& request) override; + StatusOr CreateService( + ExperimentalTag, NoAwaitTag, + google::cloud::apphub::v1::CreateServiceRequest const& request) override; + + future> CreateService( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetService( google::cloud::apphub::v1::GetServiceRequest const& request) override; future> UpdateService( google::cloud::apphub::v1::UpdateServiceRequest const& request) override; + StatusOr UpdateService( + ExperimentalTag, NoAwaitTag, + google::cloud::apphub::v1::UpdateServiceRequest const& request) override; + + future> UpdateService( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteService( google::cloud::apphub::v1::DeleteServiceRequest const& request) override; + StatusOr DeleteService( + ExperimentalTag, NoAwaitTag, + google::cloud::apphub::v1::DeleteServiceRequest const& request) override; + + future> DeleteService( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListDiscoveredWorkloads( google::cloud::apphub::v1::ListDiscoveredWorkloadsRequest request) @@ -129,15 +173,39 @@ class AppHubConnectionImpl : public apphub_v1::AppHubConnection { future> CreateWorkload( google::cloud::apphub::v1::CreateWorkloadRequest const& request) override; + StatusOr CreateWorkload( + ExperimentalTag, NoAwaitTag, + google::cloud::apphub::v1::CreateWorkloadRequest const& request) override; + + future> CreateWorkload( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetWorkload( google::cloud::apphub::v1::GetWorkloadRequest const& request) override; future> UpdateWorkload( google::cloud::apphub::v1::UpdateWorkloadRequest const& request) override; + StatusOr UpdateWorkload( + ExperimentalTag, NoAwaitTag, + google::cloud::apphub::v1::UpdateWorkloadRequest const& request) override; + + future> UpdateWorkload( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteWorkload( google::cloud::apphub::v1::DeleteWorkloadRequest const& request) override; + StatusOr DeleteWorkload( + ExperimentalTag, NoAwaitTag, + google::cloud::apphub::v1::DeleteWorkloadRequest const& request) override; + + future> DeleteWorkload( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListApplications( google::cloud::apphub::v1::ListApplicationsRequest request) override; @@ -145,6 +213,15 @@ class AppHubConnectionImpl : public apphub_v1::AppHubConnection { google::cloud::apphub::v1::CreateApplicationRequest const& request) override; + StatusOr CreateApplication( + ExperimentalTag, NoAwaitTag, + google::cloud::apphub::v1::CreateApplicationRequest const& request) + override; + + future> CreateApplication( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetApplication( google::cloud::apphub::v1::GetApplicationRequest const& request) override; @@ -152,10 +229,28 @@ class AppHubConnectionImpl : public apphub_v1::AppHubConnection { google::cloud::apphub::v1::UpdateApplicationRequest const& request) override; + StatusOr UpdateApplication( + ExperimentalTag, NoAwaitTag, + google::cloud::apphub::v1::UpdateApplicationRequest const& request) + override; + + future> UpdateApplication( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteApplication(google::cloud::apphub::v1::DeleteApplicationRequest const& request) override; + StatusOr DeleteApplication( + ExperimentalTag, NoAwaitTag, + google::cloud::apphub::v1::DeleteApplicationRequest const& request) + override; + + future> + DeleteApplication(ExperimentalTag, + google::longrunning::Operation const& operation) override; + private: std::unique_ptr background_; std::shared_ptr stub_; diff --git a/google/cloud/apphub/v1/internal/app_hub_tracing_connection.cc b/google/cloud/apphub/v1/internal/app_hub_tracing_connection.cc index 9a2b24266b589..b052bb8a8e9d6 100644 --- a/google/cloud/apphub/v1/internal/app_hub_tracing_connection.cc +++ b/google/cloud/apphub/v1/internal/app_hub_tracing_connection.cc @@ -67,6 +67,30 @@ AppHubTracingConnection::CreateServiceProjectAttachment( child_->CreateServiceProjectAttachment(request)); } +StatusOr +AppHubTracingConnection::CreateServiceProjectAttachment( + ExperimentalTag, NoAwaitTag, + google::cloud::apphub::v1::CreateServiceProjectAttachmentRequest const& + request) { + auto span = internal::MakeSpan( + "apphub_v1::AppHubConnection::CreateServiceProjectAttachment"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->CreateServiceProjectAttachment(ExperimentalTag{}, + NoAwaitTag{}, request)); +} + +future> +AppHubTracingConnection::CreateServiceProjectAttachment( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "apphub_v1::AppHubConnection::CreateServiceProjectAttachment"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), + child_->CreateServiceProjectAttachment(ExperimentalTag{}, operation)); +} + StatusOr AppHubTracingConnection::GetServiceProjectAttachment( google::cloud::apphub::v1::GetServiceProjectAttachmentRequest const& @@ -88,6 +112,30 @@ AppHubTracingConnection::DeleteServiceProjectAttachment( child_->DeleteServiceProjectAttachment(request)); } +StatusOr +AppHubTracingConnection::DeleteServiceProjectAttachment( + ExperimentalTag, NoAwaitTag, + google::cloud::apphub::v1::DeleteServiceProjectAttachmentRequest const& + request) { + auto span = internal::MakeSpan( + "apphub_v1::AppHubConnection::DeleteServiceProjectAttachment"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->DeleteServiceProjectAttachment(ExperimentalTag{}, + NoAwaitTag{}, request)); +} + +future> +AppHubTracingConnection::DeleteServiceProjectAttachment( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "apphub_v1::AppHubConnection::DeleteServiceProjectAttachment"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), + child_->DeleteServiceProjectAttachment(ExperimentalTag{}, operation)); +} + StatusOr AppHubTracingConnection::DetachServiceProjectAttachment( google::cloud::apphub::v1::DetachServiceProjectAttachmentRequest const& @@ -147,6 +195,24 @@ AppHubTracingConnection::CreateService( return internal::EndSpan(std::move(span), child_->CreateService(request)); } +StatusOr AppHubTracingConnection::CreateService( + ExperimentalTag, NoAwaitTag, + google::cloud::apphub::v1::CreateServiceRequest const& request) { + auto span = internal::MakeSpan("apphub_v1::AppHubConnection::CreateService"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->CreateService(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +AppHubTracingConnection::CreateService( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan("apphub_v1::AppHubConnection::CreateService"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->CreateService(ExperimentalTag{}, operation)); +} + StatusOr AppHubTracingConnection::GetService( google::cloud::apphub::v1::GetServiceRequest const& request) { @@ -163,6 +229,24 @@ AppHubTracingConnection::UpdateService( return internal::EndSpan(std::move(span), child_->UpdateService(request)); } +StatusOr AppHubTracingConnection::UpdateService( + ExperimentalTag, NoAwaitTag, + google::cloud::apphub::v1::UpdateServiceRequest const& request) { + auto span = internal::MakeSpan("apphub_v1::AppHubConnection::UpdateService"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->UpdateService(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +AppHubTracingConnection::UpdateService( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan("apphub_v1::AppHubConnection::UpdateService"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->UpdateService(ExperimentalTag{}, operation)); +} + future> AppHubTracingConnection::DeleteService( google::cloud::apphub::v1::DeleteServiceRequest const& request) { @@ -171,6 +255,24 @@ AppHubTracingConnection::DeleteService( return internal::EndSpan(std::move(span), child_->DeleteService(request)); } +StatusOr AppHubTracingConnection::DeleteService( + ExperimentalTag, NoAwaitTag, + google::cloud::apphub::v1::DeleteServiceRequest const& request) { + auto span = internal::MakeSpan("apphub_v1::AppHubConnection::DeleteService"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->DeleteService(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +AppHubTracingConnection::DeleteService( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan("apphub_v1::AppHubConnection::DeleteService"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->DeleteService(ExperimentalTag{}, operation)); +} + StreamRange AppHubTracingConnection::ListDiscoveredWorkloads( google::cloud::apphub::v1::ListDiscoveredWorkloadsRequest request) { @@ -219,6 +321,25 @@ AppHubTracingConnection::CreateWorkload( return internal::EndSpan(std::move(span), child_->CreateWorkload(request)); } +StatusOr +AppHubTracingConnection::CreateWorkload( + ExperimentalTag, NoAwaitTag, + google::cloud::apphub::v1::CreateWorkloadRequest const& request) { + auto span = internal::MakeSpan("apphub_v1::AppHubConnection::CreateWorkload"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->CreateWorkload(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +AppHubTracingConnection::CreateWorkload( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan("apphub_v1::AppHubConnection::CreateWorkload"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->CreateWorkload(ExperimentalTag{}, operation)); +} + StatusOr AppHubTracingConnection::GetWorkload( google::cloud::apphub::v1::GetWorkloadRequest const& request) { @@ -235,6 +356,25 @@ AppHubTracingConnection::UpdateWorkload( return internal::EndSpan(std::move(span), child_->UpdateWorkload(request)); } +StatusOr +AppHubTracingConnection::UpdateWorkload( + ExperimentalTag, NoAwaitTag, + google::cloud::apphub::v1::UpdateWorkloadRequest const& request) { + auto span = internal::MakeSpan("apphub_v1::AppHubConnection::UpdateWorkload"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->UpdateWorkload(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +AppHubTracingConnection::UpdateWorkload( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan("apphub_v1::AppHubConnection::UpdateWorkload"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->UpdateWorkload(ExperimentalTag{}, operation)); +} + future> AppHubTracingConnection::DeleteWorkload( google::cloud::apphub::v1::DeleteWorkloadRequest const& request) { @@ -243,6 +383,25 @@ AppHubTracingConnection::DeleteWorkload( return internal::EndSpan(std::move(span), child_->DeleteWorkload(request)); } +StatusOr +AppHubTracingConnection::DeleteWorkload( + ExperimentalTag, NoAwaitTag, + google::cloud::apphub::v1::DeleteWorkloadRequest const& request) { + auto span = internal::MakeSpan("apphub_v1::AppHubConnection::DeleteWorkload"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->DeleteWorkload(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +AppHubTracingConnection::DeleteWorkload( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan("apphub_v1::AppHubConnection::DeleteWorkload"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->DeleteWorkload(ExperimentalTag{}, operation)); +} + StreamRange AppHubTracingConnection::ListApplications( google::cloud::apphub::v1::ListApplicationsRequest request) { @@ -263,6 +422,28 @@ AppHubTracingConnection::CreateApplication( return internal::EndSpan(std::move(span), child_->CreateApplication(request)); } +StatusOr +AppHubTracingConnection::CreateApplication( + ExperimentalTag, NoAwaitTag, + google::cloud::apphub::v1::CreateApplicationRequest const& request) { + auto span = + internal::MakeSpan("apphub_v1::AppHubConnection::CreateApplication"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->CreateApplication(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +AppHubTracingConnection::CreateApplication( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = + internal::MakeSpan("apphub_v1::AppHubConnection::CreateApplication"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->CreateApplication(ExperimentalTag{}, operation)); +} + StatusOr AppHubTracingConnection::GetApplication( google::cloud::apphub::v1::GetApplicationRequest const& request) { @@ -280,6 +461,28 @@ AppHubTracingConnection::UpdateApplication( return internal::EndSpan(std::move(span), child_->UpdateApplication(request)); } +StatusOr +AppHubTracingConnection::UpdateApplication( + ExperimentalTag, NoAwaitTag, + google::cloud::apphub::v1::UpdateApplicationRequest const& request) { + auto span = + internal::MakeSpan("apphub_v1::AppHubConnection::UpdateApplication"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->UpdateApplication(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +AppHubTracingConnection::UpdateApplication( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = + internal::MakeSpan("apphub_v1::AppHubConnection::UpdateApplication"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->UpdateApplication(ExperimentalTag{}, operation)); +} + future> AppHubTracingConnection::DeleteApplication( google::cloud::apphub::v1::DeleteApplicationRequest const& request) { @@ -289,6 +492,28 @@ AppHubTracingConnection::DeleteApplication( return internal::EndSpan(std::move(span), child_->DeleteApplication(request)); } +StatusOr +AppHubTracingConnection::DeleteApplication( + ExperimentalTag, NoAwaitTag, + google::cloud::apphub::v1::DeleteApplicationRequest const& request) { + auto span = + internal::MakeSpan("apphub_v1::AppHubConnection::DeleteApplication"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->DeleteApplication(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +AppHubTracingConnection::DeleteApplication( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = + internal::MakeSpan("apphub_v1::AppHubConnection::DeleteApplication"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->DeleteApplication(ExperimentalTag{}, operation)); +} + #endif // GOOGLE_CLOUD_CPP_HAVE_OPENTELEMETRY std::shared_ptr MakeAppHubTracingConnection( diff --git a/google/cloud/apphub/v1/internal/app_hub_tracing_connection.h b/google/cloud/apphub/v1/internal/app_hub_tracing_connection.h index e10e735b3f90c..c34768c6acfda 100644 --- a/google/cloud/apphub/v1/internal/app_hub_tracing_connection.h +++ b/google/cloud/apphub/v1/internal/app_hub_tracing_connection.h @@ -54,6 +54,16 @@ class AppHubTracingConnection : public apphub_v1::AppHubConnection { google::cloud::apphub::v1::CreateServiceProjectAttachmentRequest const& request) override; + StatusOr CreateServiceProjectAttachment( + ExperimentalTag, NoAwaitTag, + google::cloud::apphub::v1::CreateServiceProjectAttachmentRequest const& + request) override; + + future> + CreateServiceProjectAttachment( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetServiceProjectAttachment( google::cloud::apphub::v1::GetServiceProjectAttachmentRequest const& @@ -64,6 +74,16 @@ class AppHubTracingConnection : public apphub_v1::AppHubConnection { google::cloud::apphub::v1::DeleteServiceProjectAttachmentRequest const& request) override; + StatusOr DeleteServiceProjectAttachment( + ExperimentalTag, NoAwaitTag, + google::cloud::apphub::v1::DeleteServiceProjectAttachmentRequest const& + request) override; + + future> + DeleteServiceProjectAttachment( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr DetachServiceProjectAttachment( google::cloud::apphub::v1::DetachServiceProjectAttachmentRequest const& @@ -89,15 +109,39 @@ class AppHubTracingConnection : public apphub_v1::AppHubConnection { future> CreateService( google::cloud::apphub::v1::CreateServiceRequest const& request) override; + StatusOr CreateService( + ExperimentalTag, NoAwaitTag, + google::cloud::apphub::v1::CreateServiceRequest const& request) override; + + future> CreateService( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetService( google::cloud::apphub::v1::GetServiceRequest const& request) override; future> UpdateService( google::cloud::apphub::v1::UpdateServiceRequest const& request) override; + StatusOr UpdateService( + ExperimentalTag, NoAwaitTag, + google::cloud::apphub::v1::UpdateServiceRequest const& request) override; + + future> UpdateService( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteService( google::cloud::apphub::v1::DeleteServiceRequest const& request) override; + StatusOr DeleteService( + ExperimentalTag, NoAwaitTag, + google::cloud::apphub::v1::DeleteServiceRequest const& request) override; + + future> DeleteService( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListDiscoveredWorkloads( google::cloud::apphub::v1::ListDiscoveredWorkloadsRequest request) @@ -118,15 +162,39 @@ class AppHubTracingConnection : public apphub_v1::AppHubConnection { future> CreateWorkload( google::cloud::apphub::v1::CreateWorkloadRequest const& request) override; + StatusOr CreateWorkload( + ExperimentalTag, NoAwaitTag, + google::cloud::apphub::v1::CreateWorkloadRequest const& request) override; + + future> CreateWorkload( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetWorkload( google::cloud::apphub::v1::GetWorkloadRequest const& request) override; future> UpdateWorkload( google::cloud::apphub::v1::UpdateWorkloadRequest const& request) override; + StatusOr UpdateWorkload( + ExperimentalTag, NoAwaitTag, + google::cloud::apphub::v1::UpdateWorkloadRequest const& request) override; + + future> UpdateWorkload( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteWorkload( google::cloud::apphub::v1::DeleteWorkloadRequest const& request) override; + StatusOr DeleteWorkload( + ExperimentalTag, NoAwaitTag, + google::cloud::apphub::v1::DeleteWorkloadRequest const& request) override; + + future> DeleteWorkload( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListApplications( google::cloud::apphub::v1::ListApplicationsRequest request) override; @@ -134,6 +202,15 @@ class AppHubTracingConnection : public apphub_v1::AppHubConnection { google::cloud::apphub::v1::CreateApplicationRequest const& request) override; + StatusOr CreateApplication( + ExperimentalTag, NoAwaitTag, + google::cloud::apphub::v1::CreateApplicationRequest const& request) + override; + + future> CreateApplication( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetApplication( google::cloud::apphub::v1::GetApplicationRequest const& request) override; @@ -141,10 +218,28 @@ class AppHubTracingConnection : public apphub_v1::AppHubConnection { google::cloud::apphub::v1::UpdateApplicationRequest const& request) override; + StatusOr UpdateApplication( + ExperimentalTag, NoAwaitTag, + google::cloud::apphub::v1::UpdateApplicationRequest const& request) + override; + + future> UpdateApplication( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteApplication(google::cloud::apphub::v1::DeleteApplicationRequest const& request) override; + StatusOr DeleteApplication( + ExperimentalTag, NoAwaitTag, + google::cloud::apphub::v1::DeleteApplicationRequest const& request) + override; + + future> + DeleteApplication(ExperimentalTag, + google::longrunning::Operation const& operation) override; + private: std::shared_ptr child_; }; diff --git a/google/cloud/apphub/v1/mocks/mock_app_hub_connection.h b/google/cloud/apphub/v1/mocks/mock_app_hub_connection.h index 20f9e032ca0fc..70998c85df6cd 100644 --- a/google/cloud/apphub/v1/mocks/mock_app_hub_connection.h +++ b/google/cloud/apphub/v1/mocks/mock_app_hub_connection.h @@ -67,6 +67,19 @@ class MockAppHubConnection : public apphub_v1::AppHubConnection { request), (override)); + MOCK_METHOD( + StatusOr, CreateServiceProjectAttachment, + (ExperimentalTag, NoAwaitTag, + google::cloud::apphub::v1::CreateServiceProjectAttachmentRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + CreateServiceProjectAttachment, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr, GetServiceProjectAttachment, @@ -81,6 +94,19 @@ class MockAppHubConnection : public apphub_v1::AppHubConnection { request), (override)); + MOCK_METHOD( + StatusOr, DeleteServiceProjectAttachment, + (ExperimentalTag, NoAwaitTag, + google::cloud::apphub::v1::DeleteServiceProjectAttachmentRequest const& + request), + (override)); + + MOCK_METHOD(future>, + DeleteServiceProjectAttachment, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr< google::cloud::apphub::v1::DetachServiceProjectAttachmentResponse>, @@ -117,6 +143,17 @@ class MockAppHubConnection : public apphub_v1::AppHubConnection { (google::cloud::apphub::v1::CreateServiceRequest const& request), (override)); + MOCK_METHOD(StatusOr, CreateService, + (ExperimentalTag, NoAwaitTag, + google::cloud::apphub::v1::CreateServiceRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateService, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(StatusOr, GetService, (google::cloud::apphub::v1::GetServiceRequest const& request), (override)); @@ -126,11 +163,33 @@ class MockAppHubConnection : public apphub_v1::AppHubConnection { (google::cloud::apphub::v1::UpdateServiceRequest const& request), (override)); + MOCK_METHOD(StatusOr, UpdateService, + (ExperimentalTag, NoAwaitTag, + google::cloud::apphub::v1::UpdateServiceRequest const& request), + (override)); + + MOCK_METHOD(future>, + UpdateService, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, DeleteService, (google::cloud::apphub::v1::DeleteServiceRequest const& request), (override)); + MOCK_METHOD(StatusOr, DeleteService, + (ExperimentalTag, NoAwaitTag, + google::cloud::apphub::v1::DeleteServiceRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteService, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( (StreamRange), ListDiscoveredWorkloads, @@ -159,6 +218,17 @@ class MockAppHubConnection : public apphub_v1::AppHubConnection { (google::cloud::apphub::v1::CreateWorkloadRequest const& request), (override)); + MOCK_METHOD(StatusOr, CreateWorkload, + (ExperimentalTag, NoAwaitTag, + google::cloud::apphub::v1::CreateWorkloadRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateWorkload, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(StatusOr, GetWorkload, (google::cloud::apphub::v1::GetWorkloadRequest const& request), (override)); @@ -168,11 +238,33 @@ class MockAppHubConnection : public apphub_v1::AppHubConnection { (google::cloud::apphub::v1::UpdateWorkloadRequest const& request), (override)); + MOCK_METHOD(StatusOr, UpdateWorkload, + (ExperimentalTag, NoAwaitTag, + google::cloud::apphub::v1::UpdateWorkloadRequest const& request), + (override)); + + MOCK_METHOD(future>, + UpdateWorkload, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, DeleteWorkload, (google::cloud::apphub::v1::DeleteWorkloadRequest const& request), (override)); + MOCK_METHOD(StatusOr, DeleteWorkload, + (ExperimentalTag, NoAwaitTag, + google::cloud::apphub::v1::DeleteWorkloadRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteWorkload, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD((StreamRange), ListApplications, (google::cloud::apphub::v1::ListApplicationsRequest request), @@ -184,6 +276,18 @@ class MockAppHubConnection : public apphub_v1::AppHubConnection { (google::cloud::apphub::v1::CreateApplicationRequest const& request), (override)); + MOCK_METHOD( + StatusOr, CreateApplication, + (ExperimentalTag, NoAwaitTag, + google::cloud::apphub::v1::CreateApplicationRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateApplication, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(StatusOr, GetApplication, (google::cloud::apphub::v1::GetApplicationRequest const& request), (override)); @@ -194,11 +298,35 @@ class MockAppHubConnection : public apphub_v1::AppHubConnection { (google::cloud::apphub::v1::UpdateApplicationRequest const& request), (override)); + MOCK_METHOD( + StatusOr, UpdateApplication, + (ExperimentalTag, NoAwaitTag, + google::cloud::apphub::v1::UpdateApplicationRequest const& request), + (override)); + + MOCK_METHOD(future>, + UpdateApplication, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteApplication, (google::cloud::apphub::v1::DeleteApplicationRequest const& request), (override)); + + MOCK_METHOD( + StatusOr, DeleteApplication, + (ExperimentalTag, NoAwaitTag, + google::cloud::apphub::v1::DeleteApplicationRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteApplication, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); }; GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END diff --git a/google/cloud/artifactregistry/v1/artifact_registry_connection.cc b/google/cloud/artifactregistry/v1/artifact_registry_connection.cc index c142222314101..5716bf2d2dad0 100644 --- a/google/cloud/artifactregistry/v1/artifact_registry_connection.cc +++ b/google/cloud/artifactregistry/v1/artifact_registry_connection.cc @@ -103,6 +103,23 @@ ArtifactRegistryConnection::ImportAptArtifacts( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +ArtifactRegistryConnection::ImportAptArtifacts( + ExperimentalTag, NoAwaitTag, + google::devtools::artifactregistry::v1::ImportAptArtifactsRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +ArtifactRegistryConnection::ImportAptArtifacts( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> ArtifactRegistryConnection::ImportYumArtifacts( @@ -112,6 +129,23 @@ ArtifactRegistryConnection::ImportYumArtifacts( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +ArtifactRegistryConnection::ImportYumArtifacts( + ExperimentalTag, NoAwaitTag, + google::devtools::artifactregistry::v1::ImportYumArtifactsRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +ArtifactRegistryConnection::ImportYumArtifacts( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StreamRange ArtifactRegistryConnection::ListRepositories( google::devtools::artifactregistry::v1:: @@ -134,6 +168,22 @@ ArtifactRegistryConnection::CreateRepository( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +ArtifactRegistryConnection::CreateRepository( + ExperimentalTag, NoAwaitTag, + google::devtools::artifactregistry::v1::CreateRepositoryRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +ArtifactRegistryConnection::CreateRepository( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr ArtifactRegistryConnection::UpdateRepository( google::devtools::artifactregistry::v1::UpdateRepositoryRequest const&) { @@ -148,6 +198,22 @@ ArtifactRegistryConnection::DeleteRepository( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +ArtifactRegistryConnection::DeleteRepository( + ExperimentalTag, NoAwaitTag, + google::devtools::artifactregistry::v1::DeleteRepositoryRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +ArtifactRegistryConnection::DeleteRepository( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StreamRange ArtifactRegistryConnection::ListPackages( google::devtools::artifactregistry::v1:: @@ -170,6 +236,22 @@ ArtifactRegistryConnection::DeletePackage( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +ArtifactRegistryConnection::DeletePackage( + ExperimentalTag, NoAwaitTag, + google::devtools::artifactregistry::v1::DeletePackageRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +ArtifactRegistryConnection::DeletePackage( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StreamRange ArtifactRegistryConnection::ListVersions( google::devtools::artifactregistry::v1:: @@ -192,6 +274,22 @@ ArtifactRegistryConnection::DeleteVersion( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +ArtifactRegistryConnection::DeleteVersion( + ExperimentalTag, NoAwaitTag, + google::devtools::artifactregistry::v1::DeleteVersionRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +ArtifactRegistryConnection::DeleteVersion( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> ArtifactRegistryConnection::BatchDeleteVersions( @@ -201,6 +299,23 @@ ArtifactRegistryConnection::BatchDeleteVersions( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +ArtifactRegistryConnection::BatchDeleteVersions( + ExperimentalTag, NoAwaitTag, + google::devtools::artifactregistry::v1::BatchDeleteVersionsRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +ArtifactRegistryConnection::BatchDeleteVersions( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StreamRange ArtifactRegistryConnection::ListFiles( google::devtools::artifactregistry::v1:: diff --git a/google/cloud/artifactregistry/v1/artifact_registry_connection.h b/google/cloud/artifactregistry/v1/artifact_registry_connection.h index 54b3895c1280c..9540c38f54ce9 100644 --- a/google/cloud/artifactregistry/v1/artifact_registry_connection.h +++ b/google/cloud/artifactregistry/v1/artifact_registry_connection.h @@ -22,8 +22,10 @@ #include "google/cloud/artifactregistry/v1/artifact_registry_connection_idempotency_policy.h" #include "google/cloud/artifactregistry/v1/internal/artifact_registry_retry_traits.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/internal/retry_policy_impl.h" +#include "google/cloud/no_await_tag.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" #include "google/cloud/status_or.h" @@ -230,12 +232,32 @@ class ArtifactRegistryConnection { google::devtools::artifactregistry::v1::ImportAptArtifactsRequest const& request); + virtual StatusOr ImportAptArtifacts( + ExperimentalTag, NoAwaitTag, + google::devtools::artifactregistry::v1::ImportAptArtifactsRequest const& + request); + + virtual future> + ImportAptArtifacts(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> ImportYumArtifacts( google::devtools::artifactregistry::v1::ImportYumArtifactsRequest const& request); + virtual StatusOr ImportYumArtifacts( + ExperimentalTag, NoAwaitTag, + google::devtools::artifactregistry::v1::ImportYumArtifactsRequest const& + request); + + virtual future> + ImportYumArtifacts(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StreamRange ListRepositories( google::devtools::artifactregistry::v1::ListRepositoriesRequest request); @@ -250,6 +272,15 @@ class ArtifactRegistryConnection { google::devtools::artifactregistry::v1::CreateRepositoryRequest const& request); + virtual StatusOr CreateRepository( + ExperimentalTag, NoAwaitTag, + google::devtools::artifactregistry::v1::CreateRepositoryRequest const& + request); + + virtual future> + CreateRepository(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StatusOr UpdateRepository( google::devtools::artifactregistry::v1::UpdateRepositoryRequest const& @@ -261,6 +292,16 @@ class ArtifactRegistryConnection { google::devtools::artifactregistry::v1::DeleteRepositoryRequest const& request); + virtual StatusOr DeleteRepository( + ExperimentalTag, NoAwaitTag, + google::devtools::artifactregistry::v1::DeleteRepositoryRequest const& + request); + + virtual future< + StatusOr> + DeleteRepository(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StreamRange ListPackages( google::devtools::artifactregistry::v1::ListPackagesRequest request); @@ -274,6 +315,16 @@ class ArtifactRegistryConnection { google::devtools::artifactregistry::v1::DeletePackageRequest const& request); + virtual StatusOr DeletePackage( + ExperimentalTag, NoAwaitTag, + google::devtools::artifactregistry::v1::DeletePackageRequest const& + request); + + virtual future< + StatusOr> + DeletePackage(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StreamRange ListVersions( google::devtools::artifactregistry::v1::ListVersionsRequest request); @@ -287,12 +338,32 @@ class ArtifactRegistryConnection { google::devtools::artifactregistry::v1::DeleteVersionRequest const& request); + virtual StatusOr DeleteVersion( + ExperimentalTag, NoAwaitTag, + google::devtools::artifactregistry::v1::DeleteVersionRequest const& + request); + + virtual future< + StatusOr> + DeleteVersion(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> BatchDeleteVersions( google::devtools::artifactregistry::v1::BatchDeleteVersionsRequest const& request); + virtual StatusOr BatchDeleteVersions( + ExperimentalTag, NoAwaitTag, + google::devtools::artifactregistry::v1::BatchDeleteVersionsRequest const& + request); + + virtual future> + BatchDeleteVersions(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StreamRange ListFiles( google::devtools::artifactregistry::v1::ListFilesRequest request); diff --git a/google/cloud/artifactregistry/v1/internal/artifact_registry_connection_impl.cc b/google/cloud/artifactregistry/v1/internal/artifact_registry_connection_impl.cc index e23c24bc36e8e..f82e749c96b80 100644 --- a/google/cloud/artifactregistry/v1/internal/artifact_registry_connection_impl.cc +++ b/google/cloud/artifactregistry/v1/internal/artifact_registry_connection_impl.cc @@ -321,6 +321,62 @@ ArtifactRegistryConnectionImpl::ImportAptArtifacts( polling_policy(*current), __func__); } +StatusOr +ArtifactRegistryConnectionImpl::ImportAptArtifacts( + ExperimentalTag, NoAwaitTag, + google::devtools::artifactregistry::v1::ImportAptArtifactsRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->ImportAptArtifacts(request), + [this](grpc::ClientContext& context, Options const& options, + google::devtools::artifactregistry::v1:: + ImportAptArtifactsRequest const& request) { + return stub_->ImportAptArtifacts(context, options, request); + }, + *current, request, __func__); +} + +future> +ArtifactRegistryConnectionImpl::ImportAptArtifacts( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to ImportAptArtifacts", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::devtools::artifactregistry::v1::ImportAptArtifactsResponse>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::devtools::artifactregistry::v1::ImportAptArtifactsResponse>, + polling_policy(*current), __func__); +} + future> ArtifactRegistryConnectionImpl::ImportYumArtifacts( @@ -362,6 +418,62 @@ ArtifactRegistryConnectionImpl::ImportYumArtifacts( polling_policy(*current), __func__); } +StatusOr +ArtifactRegistryConnectionImpl::ImportYumArtifacts( + ExperimentalTag, NoAwaitTag, + google::devtools::artifactregistry::v1::ImportYumArtifactsRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->ImportYumArtifacts(request), + [this](grpc::ClientContext& context, Options const& options, + google::devtools::artifactregistry::v1:: + ImportYumArtifactsRequest const& request) { + return stub_->ImportYumArtifacts(context, options, request); + }, + *current, request, __func__); +} + +future> +ArtifactRegistryConnectionImpl::ImportYumArtifacts( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to ImportYumArtifacts", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::devtools::artifactregistry::v1::ImportYumArtifactsResponse>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::devtools::artifactregistry::v1::ImportYumArtifactsResponse>, + polling_policy(*current), __func__); +} + StreamRange ArtifactRegistryConnectionImpl::ListRepositories( google::devtools::artifactregistry::v1::ListRepositoriesRequest request) { @@ -455,6 +567,62 @@ ArtifactRegistryConnectionImpl::CreateRepository( polling_policy(*current), __func__); } +StatusOr +ArtifactRegistryConnectionImpl::CreateRepository( + ExperimentalTag, NoAwaitTag, + google::devtools::artifactregistry::v1::CreateRepositoryRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateRepository(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::devtools::artifactregistry::v1::CreateRepositoryRequest const& + request) { + return stub_->CreateRepository(context, options, request); + }, + *current, request, __func__); +} + +future> +ArtifactRegistryConnectionImpl::CreateRepository( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to CreateRepository", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::devtools::artifactregistry::v1::Repository>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::devtools::artifactregistry::v1::Repository>, + polling_policy(*current), __func__); +} + StatusOr ArtifactRegistryConnectionImpl::UpdateRepository( google::devtools::artifactregistry::v1::UpdateRepositoryRequest const& @@ -513,6 +681,62 @@ ArtifactRegistryConnectionImpl::DeleteRepository( polling_policy(*current), __func__); } +StatusOr +ArtifactRegistryConnectionImpl::DeleteRepository( + ExperimentalTag, NoAwaitTag, + google::devtools::artifactregistry::v1::DeleteRepositoryRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteRepository(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::devtools::artifactregistry::v1::DeleteRepositoryRequest const& + request) { + return stub_->DeleteRepository(context, options, request); + }, + *current, request, __func__); +} + +future> +ArtifactRegistryConnectionImpl::DeleteRepository( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteRepository", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::devtools::artifactregistry::v1::OperationMetadata>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::devtools::artifactregistry::v1::OperationMetadata>, + polling_policy(*current), __func__); +} + StreamRange ArtifactRegistryConnectionImpl::ListPackages( google::devtools::artifactregistry::v1::ListPackagesRequest request) { @@ -605,6 +829,61 @@ ArtifactRegistryConnectionImpl::DeletePackage( polling_policy(*current), __func__); } +StatusOr +ArtifactRegistryConnectionImpl::DeletePackage( + ExperimentalTag, NoAwaitTag, + google::devtools::artifactregistry::v1::DeletePackageRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeletePackage(request), + [this](grpc::ClientContext& context, Options const& options, + google::devtools::artifactregistry::v1::DeletePackageRequest const& + request) { + return stub_->DeletePackage(context, options, request); + }, + *current, request, __func__); +} + +future> +ArtifactRegistryConnectionImpl::DeletePackage( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DeletePackage", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::devtools::artifactregistry::v1::OperationMetadata>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::devtools::artifactregistry::v1::OperationMetadata>, + polling_policy(*current), __func__); +} + StreamRange ArtifactRegistryConnectionImpl::ListVersions( google::devtools::artifactregistry::v1::ListVersionsRequest request) { @@ -697,6 +976,61 @@ ArtifactRegistryConnectionImpl::DeleteVersion( polling_policy(*current), __func__); } +StatusOr +ArtifactRegistryConnectionImpl::DeleteVersion( + ExperimentalTag, NoAwaitTag, + google::devtools::artifactregistry::v1::DeleteVersionRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteVersion(request), + [this](grpc::ClientContext& context, Options const& options, + google::devtools::artifactregistry::v1::DeleteVersionRequest const& + request) { + return stub_->DeleteVersion(context, options, request); + }, + *current, request, __func__); +} + +future> +ArtifactRegistryConnectionImpl::DeleteVersion( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteVersion", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::devtools::artifactregistry::v1::OperationMetadata>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::devtools::artifactregistry::v1::OperationMetadata>, + polling_policy(*current), __func__); +} + future> ArtifactRegistryConnectionImpl::BatchDeleteVersions( @@ -738,6 +1072,62 @@ ArtifactRegistryConnectionImpl::BatchDeleteVersions( polling_policy(*current), __func__); } +StatusOr +ArtifactRegistryConnectionImpl::BatchDeleteVersions( + ExperimentalTag, NoAwaitTag, + google::devtools::artifactregistry::v1::BatchDeleteVersionsRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->BatchDeleteVersions(request), + [this](grpc::ClientContext& context, Options const& options, + google::devtools::artifactregistry::v1:: + BatchDeleteVersionsRequest const& request) { + return stub_->BatchDeleteVersions(context, options, request); + }, + *current, request, __func__); +} + +future> +ArtifactRegistryConnectionImpl::BatchDeleteVersions( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to BatchDeleteVersions", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::devtools::artifactregistry::v1::BatchDeleteVersionsMetadata>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::devtools::artifactregistry::v1::BatchDeleteVersionsMetadata>, + polling_policy(*current), __func__); +} + StreamRange ArtifactRegistryConnectionImpl::ListFiles( google::devtools::artifactregistry::v1::ListFilesRequest request) { diff --git a/google/cloud/artifactregistry/v1/internal/artifact_registry_connection_impl.h b/google/cloud/artifactregistry/v1/internal/artifact_registry_connection_impl.h index a1b89b03437d0..07794500bc2d1 100644 --- a/google/cloud/artifactregistry/v1/internal/artifact_registry_connection_impl.h +++ b/google/cloud/artifactregistry/v1/internal/artifact_registry_connection_impl.h @@ -95,12 +95,32 @@ class ArtifactRegistryConnectionImpl google::devtools::artifactregistry::v1::ImportAptArtifactsRequest const& request) override; + StatusOr ImportAptArtifacts( + ExperimentalTag, NoAwaitTag, + google::devtools::artifactregistry::v1::ImportAptArtifactsRequest const& + request) override; + + future> + ImportAptArtifacts(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ImportYumArtifacts( google::devtools::artifactregistry::v1::ImportYumArtifactsRequest const& request) override; + StatusOr ImportYumArtifacts( + ExperimentalTag, NoAwaitTag, + google::devtools::artifactregistry::v1::ImportYumArtifactsRequest const& + request) override; + + future> + ImportYumArtifacts(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListRepositories( google::devtools::artifactregistry::v1::ListRepositoriesRequest request) @@ -115,6 +135,15 @@ class ArtifactRegistryConnectionImpl google::devtools::artifactregistry::v1::CreateRepositoryRequest const& request) override; + StatusOr CreateRepository( + ExperimentalTag, NoAwaitTag, + google::devtools::artifactregistry::v1::CreateRepositoryRequest const& + request) override; + + future> + CreateRepository(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr UpdateRepository( google::devtools::artifactregistry::v1::UpdateRepositoryRequest const& request) override; @@ -124,6 +153,15 @@ class ArtifactRegistryConnectionImpl google::devtools::artifactregistry::v1::DeleteRepositoryRequest const& request) override; + StatusOr DeleteRepository( + ExperimentalTag, NoAwaitTag, + google::devtools::artifactregistry::v1::DeleteRepositoryRequest const& + request) override; + + future> + DeleteRepository(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListPackages( google::devtools::artifactregistry::v1::ListPackagesRequest request) override; @@ -137,6 +175,15 @@ class ArtifactRegistryConnectionImpl google::devtools::artifactregistry::v1::DeletePackageRequest const& request) override; + StatusOr DeletePackage( + ExperimentalTag, NoAwaitTag, + google::devtools::artifactregistry::v1::DeletePackageRequest const& + request) override; + + future> + DeletePackage(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListVersions( google::devtools::artifactregistry::v1::ListVersionsRequest request) override; @@ -150,12 +197,31 @@ class ArtifactRegistryConnectionImpl google::devtools::artifactregistry::v1::DeleteVersionRequest const& request) override; + StatusOr DeleteVersion( + ExperimentalTag, NoAwaitTag, + google::devtools::artifactregistry::v1::DeleteVersionRequest const& + request) override; + + future> + DeleteVersion(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> BatchDeleteVersions( google::devtools::artifactregistry::v1::BatchDeleteVersionsRequest const& request) override; + StatusOr BatchDeleteVersions( + ExperimentalTag, NoAwaitTag, + google::devtools::artifactregistry::v1::BatchDeleteVersionsRequest const& + request) override; + + future> + BatchDeleteVersions(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListFiles( google::devtools::artifactregistry::v1::ListFilesRequest request) override; diff --git a/google/cloud/artifactregistry/v1/internal/artifact_registry_tracing_connection.cc b/google/cloud/artifactregistry/v1/internal/artifact_registry_tracing_connection.cc index 6f0baa13a72b7..5d4758318854e 100644 --- a/google/cloud/artifactregistry/v1/internal/artifact_registry_tracing_connection.cc +++ b/google/cloud/artifactregistry/v1/internal/artifact_registry_tracing_connection.cc @@ -133,6 +133,30 @@ ArtifactRegistryTracingConnection::ImportAptArtifacts( child_->ImportAptArtifacts(request)); } +StatusOr +ArtifactRegistryTracingConnection::ImportAptArtifacts( + ExperimentalTag, NoAwaitTag, + google::devtools::artifactregistry::v1::ImportAptArtifactsRequest const& + request) { + auto span = internal::MakeSpan( + "artifactregistry_v1::ArtifactRegistryConnection::ImportAptArtifacts"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->ImportAptArtifacts(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +ArtifactRegistryTracingConnection::ImportAptArtifacts( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "artifactregistry_v1::ArtifactRegistryConnection::ImportAptArtifacts"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->ImportAptArtifacts( + ExperimentalTag{}, operation)); +} + future> ArtifactRegistryTracingConnection::ImportYumArtifacts( @@ -145,6 +169,30 @@ ArtifactRegistryTracingConnection::ImportYumArtifacts( child_->ImportYumArtifacts(request)); } +StatusOr +ArtifactRegistryTracingConnection::ImportYumArtifacts( + ExperimentalTag, NoAwaitTag, + google::devtools::artifactregistry::v1::ImportYumArtifactsRequest const& + request) { + auto span = internal::MakeSpan( + "artifactregistry_v1::ArtifactRegistryConnection::ImportYumArtifacts"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->ImportYumArtifacts(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +ArtifactRegistryTracingConnection::ImportYumArtifacts( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "artifactregistry_v1::ArtifactRegistryConnection::ImportYumArtifacts"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->ImportYumArtifacts( + ExperimentalTag{}, operation)); +} + StreamRange ArtifactRegistryTracingConnection::ListRepositories( google::devtools::artifactregistry::v1::ListRepositoriesRequest request) { @@ -177,6 +225,29 @@ ArtifactRegistryTracingConnection::CreateRepository( return internal::EndSpan(std::move(span), child_->CreateRepository(request)); } +StatusOr +ArtifactRegistryTracingConnection::CreateRepository( + ExperimentalTag, NoAwaitTag, + google::devtools::artifactregistry::v1::CreateRepositoryRequest const& + request) { + auto span = internal::MakeSpan( + "artifactregistry_v1::ArtifactRegistryConnection::CreateRepository"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->CreateRepository(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +ArtifactRegistryTracingConnection::CreateRepository( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "artifactregistry_v1::ArtifactRegistryConnection::CreateRepository"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->CreateRepository(ExperimentalTag{}, operation)); +} + StatusOr ArtifactRegistryTracingConnection::UpdateRepository( google::devtools::artifactregistry::v1::UpdateRepositoryRequest const& @@ -197,6 +268,29 @@ ArtifactRegistryTracingConnection::DeleteRepository( return internal::EndSpan(std::move(span), child_->DeleteRepository(request)); } +StatusOr +ArtifactRegistryTracingConnection::DeleteRepository( + ExperimentalTag, NoAwaitTag, + google::devtools::artifactregistry::v1::DeleteRepositoryRequest const& + request) { + auto span = internal::MakeSpan( + "artifactregistry_v1::ArtifactRegistryConnection::DeleteRepository"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->DeleteRepository(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +ArtifactRegistryTracingConnection::DeleteRepository( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "artifactregistry_v1::ArtifactRegistryConnection::DeleteRepository"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->DeleteRepository(ExperimentalTag{}, operation)); +} + StreamRange ArtifactRegistryTracingConnection::ListPackages( google::devtools::artifactregistry::v1::ListPackagesRequest request) { @@ -228,6 +322,28 @@ ArtifactRegistryTracingConnection::DeletePackage( return internal::EndSpan(std::move(span), child_->DeletePackage(request)); } +StatusOr +ArtifactRegistryTracingConnection::DeletePackage( + ExperimentalTag, NoAwaitTag, + google::devtools::artifactregistry::v1::DeletePackageRequest const& + request) { + auto span = internal::MakeSpan( + "artifactregistry_v1::ArtifactRegistryConnection::DeletePackage"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->DeletePackage(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +ArtifactRegistryTracingConnection::DeletePackage( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "artifactregistry_v1::ArtifactRegistryConnection::DeletePackage"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->DeletePackage(ExperimentalTag{}, operation)); +} + StreamRange ArtifactRegistryTracingConnection::ListVersions( google::devtools::artifactregistry::v1::ListVersionsRequest request) { @@ -259,6 +375,28 @@ ArtifactRegistryTracingConnection::DeleteVersion( return internal::EndSpan(std::move(span), child_->DeleteVersion(request)); } +StatusOr +ArtifactRegistryTracingConnection::DeleteVersion( + ExperimentalTag, NoAwaitTag, + google::devtools::artifactregistry::v1::DeleteVersionRequest const& + request) { + auto span = internal::MakeSpan( + "artifactregistry_v1::ArtifactRegistryConnection::DeleteVersion"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->DeleteVersion(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +ArtifactRegistryTracingConnection::DeleteVersion( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "artifactregistry_v1::ArtifactRegistryConnection::DeleteVersion"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->DeleteVersion(ExperimentalTag{}, operation)); +} + future> ArtifactRegistryTracingConnection::BatchDeleteVersions( @@ -271,6 +409,30 @@ ArtifactRegistryTracingConnection::BatchDeleteVersions( child_->BatchDeleteVersions(request)); } +StatusOr +ArtifactRegistryTracingConnection::BatchDeleteVersions( + ExperimentalTag, NoAwaitTag, + google::devtools::artifactregistry::v1::BatchDeleteVersionsRequest const& + request) { + auto span = internal::MakeSpan( + "artifactregistry_v1::ArtifactRegistryConnection::BatchDeleteVersions"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->BatchDeleteVersions(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +ArtifactRegistryTracingConnection::BatchDeleteVersions( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "artifactregistry_v1::ArtifactRegistryConnection::BatchDeleteVersions"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->BatchDeleteVersions( + ExperimentalTag{}, operation)); +} + StreamRange ArtifactRegistryTracingConnection::ListFiles( google::devtools::artifactregistry::v1::ListFilesRequest request) { diff --git a/google/cloud/artifactregistry/v1/internal/artifact_registry_tracing_connection.h b/google/cloud/artifactregistry/v1/internal/artifact_registry_tracing_connection.h index e72f924c3f346..250bffc5ab224 100644 --- a/google/cloud/artifactregistry/v1/internal/artifact_registry_tracing_connection.h +++ b/google/cloud/artifactregistry/v1/internal/artifact_registry_tracing_connection.h @@ -83,12 +83,32 @@ class ArtifactRegistryTracingConnection google::devtools::artifactregistry::v1::ImportAptArtifactsRequest const& request) override; + StatusOr ImportAptArtifacts( + ExperimentalTag, NoAwaitTag, + google::devtools::artifactregistry::v1::ImportAptArtifactsRequest const& + request) override; + + future> + ImportAptArtifacts(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ImportYumArtifacts( google::devtools::artifactregistry::v1::ImportYumArtifactsRequest const& request) override; + StatusOr ImportYumArtifacts( + ExperimentalTag, NoAwaitTag, + google::devtools::artifactregistry::v1::ImportYumArtifactsRequest const& + request) override; + + future> + ImportYumArtifacts(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListRepositories( google::devtools::artifactregistry::v1::ListRepositoriesRequest request) @@ -103,6 +123,15 @@ class ArtifactRegistryTracingConnection google::devtools::artifactregistry::v1::CreateRepositoryRequest const& request) override; + StatusOr CreateRepository( + ExperimentalTag, NoAwaitTag, + google::devtools::artifactregistry::v1::CreateRepositoryRequest const& + request) override; + + future> + CreateRepository(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr UpdateRepository( google::devtools::artifactregistry::v1::UpdateRepositoryRequest const& request) override; @@ -112,6 +141,15 @@ class ArtifactRegistryTracingConnection google::devtools::artifactregistry::v1::DeleteRepositoryRequest const& request) override; + StatusOr DeleteRepository( + ExperimentalTag, NoAwaitTag, + google::devtools::artifactregistry::v1::DeleteRepositoryRequest const& + request) override; + + future> + DeleteRepository(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListPackages( google::devtools::artifactregistry::v1::ListPackagesRequest request) override; @@ -125,6 +163,15 @@ class ArtifactRegistryTracingConnection google::devtools::artifactregistry::v1::DeletePackageRequest const& request) override; + StatusOr DeletePackage( + ExperimentalTag, NoAwaitTag, + google::devtools::artifactregistry::v1::DeletePackageRequest const& + request) override; + + future> + DeletePackage(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListVersions( google::devtools::artifactregistry::v1::ListVersionsRequest request) override; @@ -138,12 +185,31 @@ class ArtifactRegistryTracingConnection google::devtools::artifactregistry::v1::DeleteVersionRequest const& request) override; + StatusOr DeleteVersion( + ExperimentalTag, NoAwaitTag, + google::devtools::artifactregistry::v1::DeleteVersionRequest const& + request) override; + + future> + DeleteVersion(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> BatchDeleteVersions( google::devtools::artifactregistry::v1::BatchDeleteVersionsRequest const& request) override; + StatusOr BatchDeleteVersions( + ExperimentalTag, NoAwaitTag, + google::devtools::artifactregistry::v1::BatchDeleteVersionsRequest const& + request) override; + + future> + BatchDeleteVersions(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListFiles( google::devtools::artifactregistry::v1::ListFilesRequest request) override; diff --git a/google/cloud/artifactregistry/v1/mocks/mock_artifact_registry_connection.h b/google/cloud/artifactregistry/v1/mocks/mock_artifact_registry_connection.h index d0fa809101a81..08551817c37f5 100644 --- a/google/cloud/artifactregistry/v1/mocks/mock_artifact_registry_connection.h +++ b/google/cloud/artifactregistry/v1/mocks/mock_artifact_registry_connection.h @@ -109,6 +109,20 @@ class MockArtifactRegistryConnection request), (override)); + MOCK_METHOD( + StatusOr, ImportAptArtifacts, + (ExperimentalTag, NoAwaitTag, + google::devtools::artifactregistry::v1::ImportAptArtifactsRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + ImportAptArtifacts, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, @@ -117,6 +131,20 @@ class MockArtifactRegistryConnection request), (override)); + MOCK_METHOD( + StatusOr, ImportYumArtifacts, + (ExperimentalTag, NoAwaitTag, + google::devtools::artifactregistry::v1::ImportYumArtifactsRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + ImportYumArtifacts, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( (StreamRange), ListRepositories, @@ -137,6 +165,19 @@ class MockArtifactRegistryConnection request), (override)); + MOCK_METHOD( + StatusOr, CreateRepository, + (ExperimentalTag, NoAwaitTag, + google::devtools::artifactregistry::v1::CreateRepositoryRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + CreateRepository, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr, UpdateRepository, @@ -152,6 +193,20 @@ class MockArtifactRegistryConnection request), (override)); + MOCK_METHOD( + StatusOr, DeleteRepository, + (ExperimentalTag, NoAwaitTag, + google::devtools::artifactregistry::v1::DeleteRepositoryRequest const& + request), + (override)); + + MOCK_METHOD( + future< + StatusOr>, + DeleteRepository, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( (StreamRange), ListPackages, @@ -172,6 +227,20 @@ class MockArtifactRegistryConnection request), (override)); + MOCK_METHOD( + StatusOr, DeletePackage, + (ExperimentalTag, NoAwaitTag, + google::devtools::artifactregistry::v1::DeletePackageRequest const& + request), + (override)); + + MOCK_METHOD( + future< + StatusOr>, + DeletePackage, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( (StreamRange), ListVersions, @@ -192,6 +261,20 @@ class MockArtifactRegistryConnection request), (override)); + MOCK_METHOD( + StatusOr, DeleteVersion, + (ExperimentalTag, NoAwaitTag, + google::devtools::artifactregistry::v1::DeleteVersionRequest const& + request), + (override)); + + MOCK_METHOD( + future< + StatusOr>, + DeleteVersion, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, @@ -200,6 +283,20 @@ class MockArtifactRegistryConnection request), (override)); + MOCK_METHOD( + StatusOr, BatchDeleteVersions, + (ExperimentalTag, NoAwaitTag, + google::devtools::artifactregistry::v1::BatchDeleteVersionsRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + BatchDeleteVersions, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( (StreamRange), ListFiles, (google::devtools::artifactregistry::v1::ListFilesRequest request), diff --git a/google/cloud/asset/v1/asset_connection.cc b/google/cloud/asset/v1/asset_connection.cc index 0d4197eb2fece..39bf3908918b9 100644 --- a/google/cloud/asset/v1/asset_connection.cc +++ b/google/cloud/asset/v1/asset_connection.cc @@ -46,6 +46,21 @@ AssetServiceConnection::ExportAssets( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr AssetServiceConnection::ExportAssets( + ExperimentalTag, NoAwaitTag, + google::cloud::asset::v1::ExportAssetsRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +AssetServiceConnection::ExportAssets(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StreamRange AssetServiceConnection::ListAssets( google::cloud::asset::v1:: ListAssetsRequest) { // NOLINT(performance-unnecessary-value-param) @@ -115,6 +130,22 @@ AssetServiceConnection::AnalyzeIamPolicyLongrunning( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +AssetServiceConnection::AnalyzeIamPolicyLongrunning( + ExperimentalTag, NoAwaitTag, + google::cloud::asset::v1::AnalyzeIamPolicyLongrunningRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +AssetServiceConnection::AnalyzeIamPolicyLongrunning( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr AssetServiceConnection::AnalyzeMove( google::cloud::asset::v1::AnalyzeMoveRequest const&) { diff --git a/google/cloud/asset/v1/asset_connection.h b/google/cloud/asset/v1/asset_connection.h index db744bb8366f9..e1b260a7d0a5b 100644 --- a/google/cloud/asset/v1/asset_connection.h +++ b/google/cloud/asset/v1/asset_connection.h @@ -22,8 +22,10 @@ #include "google/cloud/asset/v1/asset_connection_idempotency_policy.h" #include "google/cloud/asset/v1/internal/asset_retry_traits.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/internal/retry_policy_impl.h" +#include "google/cloud/no_await_tag.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" #include "google/cloud/status_or.h" @@ -188,6 +190,14 @@ class AssetServiceConnection { virtual future> ExportAssets(google::cloud::asset::v1::ExportAssetsRequest const& request); + virtual StatusOr ExportAssets( + ExperimentalTag, NoAwaitTag, + google::cloud::asset::v1::ExportAssetsRequest const& request); + + virtual future> + ExportAssets(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StreamRange ListAssets( google::cloud::asset::v1::ListAssetsRequest request); @@ -228,6 +238,16 @@ class AssetServiceConnection { google::cloud::asset::v1::AnalyzeIamPolicyLongrunningRequest const& request); + virtual StatusOr AnalyzeIamPolicyLongrunning( + ExperimentalTag, NoAwaitTag, + google::cloud::asset::v1::AnalyzeIamPolicyLongrunningRequest const& + request); + + virtual future< + StatusOr> + AnalyzeIamPolicyLongrunning(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StatusOr AnalyzeMove( google::cloud::asset::v1::AnalyzeMoveRequest const& request); diff --git a/google/cloud/asset/v1/internal/asset_connection_impl.cc b/google/cloud/asset/v1/internal/asset_connection_impl.cc index 73b2ec3a4835d..c1ff66d5143c6 100644 --- a/google/cloud/asset/v1/internal/asset_connection_impl.cc +++ b/google/cloud/asset/v1/internal/asset_connection_impl.cc @@ -101,6 +101,58 @@ AssetServiceConnectionImpl::ExportAssets( polling_policy(*current), __func__); } +StatusOr +AssetServiceConnectionImpl::ExportAssets( + ExperimentalTag, NoAwaitTag, + google::cloud::asset::v1::ExportAssetsRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->ExportAssets(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::asset::v1::ExportAssetsRequest const& request) { + return stub_->ExportAssets(context, options, request); + }, + *current, request, __func__); +} + +future> +AssetServiceConnectionImpl::ExportAssets( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to ExportAssets", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::asset::v1::ExportAssetsResponse>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::asset::v1::ExportAssetsResponse>, + polling_policy(*current), __func__); +} + StreamRange AssetServiceConnectionImpl::ListAssets( google::cloud::asset::v1::ListAssetsRequest request) { @@ -338,6 +390,61 @@ AssetServiceConnectionImpl::AnalyzeIamPolicyLongrunning( polling_policy(*current), __func__); } +StatusOr +AssetServiceConnectionImpl::AnalyzeIamPolicyLongrunning( + ExperimentalTag, NoAwaitTag, + google::cloud::asset::v1::AnalyzeIamPolicyLongrunningRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->AnalyzeIamPolicyLongrunning(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::asset::v1::AnalyzeIamPolicyLongrunningRequest const& + request) { + return stub_->AnalyzeIamPolicyLongrunning(context, options, request); + }, + *current, request, __func__); +} + +future> +AssetServiceConnectionImpl::AnalyzeIamPolicyLongrunning( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to AnalyzeIamPolicyLongrunning", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::asset::v1::AnalyzeIamPolicyLongrunningResponse>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::asset::v1::AnalyzeIamPolicyLongrunningResponse>, + polling_policy(*current), __func__); +} + StatusOr AssetServiceConnectionImpl::AnalyzeMove( google::cloud::asset::v1::AnalyzeMoveRequest const& request) { diff --git a/google/cloud/asset/v1/internal/asset_connection_impl.h b/google/cloud/asset/v1/internal/asset_connection_impl.h index 12e985030abd2..6ed5e185fe661 100644 --- a/google/cloud/asset/v1/internal/asset_connection_impl.h +++ b/google/cloud/asset/v1/internal/asset_connection_impl.h @@ -54,6 +54,14 @@ class AssetServiceConnectionImpl : public asset_v1::AssetServiceConnection { future> ExportAssets( google::cloud::asset::v1::ExportAssetsRequest const& request) override; + StatusOr ExportAssets( + ExperimentalTag, NoAwaitTag, + google::cloud::asset::v1::ExportAssetsRequest const& request) override; + + future> ExportAssets( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListAssets( google::cloud::asset::v1::ListAssetsRequest request) override; @@ -95,6 +103,17 @@ class AssetServiceConnectionImpl : public asset_v1::AssetServiceConnection { google::cloud::asset::v1::AnalyzeIamPolicyLongrunningRequest const& request) override; + StatusOr AnalyzeIamPolicyLongrunning( + ExperimentalTag, NoAwaitTag, + google::cloud::asset::v1::AnalyzeIamPolicyLongrunningRequest const& + request) override; + + future< + StatusOr> + AnalyzeIamPolicyLongrunning( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr AnalyzeMove( google::cloud::asset::v1::AnalyzeMoveRequest const& request) override; diff --git a/google/cloud/asset/v1/internal/asset_tracing_connection.cc b/google/cloud/asset/v1/internal/asset_tracing_connection.cc index 9eb9f26db270a..8c76af7eb8881 100644 --- a/google/cloud/asset/v1/internal/asset_tracing_connection.cc +++ b/google/cloud/asset/v1/internal/asset_tracing_connection.cc @@ -42,6 +42,27 @@ AssetServiceTracingConnection::ExportAssets( return internal::EndSpan(std::move(span), child_->ExportAssets(request)); } +StatusOr +AssetServiceTracingConnection::ExportAssets( + ExperimentalTag, NoAwaitTag, + google::cloud::asset::v1::ExportAssetsRequest const& request) { + auto span = + internal::MakeSpan("asset_v1::AssetServiceConnection::ExportAssets"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->ExportAssets(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +AssetServiceTracingConnection::ExportAssets( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = + internal::MakeSpan("asset_v1::AssetServiceConnection::ExportAssets"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->ExportAssets(ExperimentalTag{}, operation)); +} + StreamRange AssetServiceTracingConnection::ListAssets( google::cloud::asset::v1::ListAssetsRequest request) { @@ -147,6 +168,29 @@ AssetServiceTracingConnection::AnalyzeIamPolicyLongrunning( child_->AnalyzeIamPolicyLongrunning(request)); } +StatusOr +AssetServiceTracingConnection::AnalyzeIamPolicyLongrunning( + ExperimentalTag, NoAwaitTag, + google::cloud::asset::v1::AnalyzeIamPolicyLongrunningRequest const& + request) { + auto span = internal::MakeSpan( + "asset_v1::AssetServiceConnection::AnalyzeIamPolicyLongrunning"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->AnalyzeIamPolicyLongrunning(ExperimentalTag{}, + NoAwaitTag{}, request)); +} + +future> +AssetServiceTracingConnection::AnalyzeIamPolicyLongrunning( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "asset_v1::AssetServiceConnection::AnalyzeIamPolicyLongrunning"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->AnalyzeIamPolicyLongrunning( + ExperimentalTag{}, operation)); +} + StatusOr AssetServiceTracingConnection::AnalyzeMove( google::cloud::asset::v1::AnalyzeMoveRequest const& request) { diff --git a/google/cloud/asset/v1/internal/asset_tracing_connection.h b/google/cloud/asset/v1/internal/asset_tracing_connection.h index 0ca8a4dc6a6c7..f7ef3e9abbb70 100644 --- a/google/cloud/asset/v1/internal/asset_tracing_connection.h +++ b/google/cloud/asset/v1/internal/asset_tracing_connection.h @@ -42,6 +42,14 @@ class AssetServiceTracingConnection : public asset_v1::AssetServiceConnection { future> ExportAssets( google::cloud::asset::v1::ExportAssetsRequest const& request) override; + StatusOr ExportAssets( + ExperimentalTag, NoAwaitTag, + google::cloud::asset::v1::ExportAssetsRequest const& request) override; + + future> ExportAssets( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListAssets( google::cloud::asset::v1::ListAssetsRequest request) override; @@ -83,6 +91,17 @@ class AssetServiceTracingConnection : public asset_v1::AssetServiceConnection { google::cloud::asset::v1::AnalyzeIamPolicyLongrunningRequest const& request) override; + StatusOr AnalyzeIamPolicyLongrunning( + ExperimentalTag, NoAwaitTag, + google::cloud::asset::v1::AnalyzeIamPolicyLongrunningRequest const& + request) override; + + future< + StatusOr> + AnalyzeIamPolicyLongrunning( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr AnalyzeMove( google::cloud::asset::v1::AnalyzeMoveRequest const& request) override; diff --git a/google/cloud/asset/v1/mocks/mock_asset_connection.h b/google/cloud/asset/v1/mocks/mock_asset_connection.h index c76c52e675a97..a9352227dbe61 100644 --- a/google/cloud/asset/v1/mocks/mock_asset_connection.h +++ b/google/cloud/asset/v1/mocks/mock_asset_connection.h @@ -51,6 +51,17 @@ class MockAssetServiceConnection : public asset_v1::AssetServiceConnection { (google::cloud::asset::v1::ExportAssetsRequest const& request), (override)); + MOCK_METHOD(StatusOr, ExportAssets, + (ExperimentalTag, NoAwaitTag, + google::cloud::asset::v1::ExportAssetsRequest const& request), + (override)); + + MOCK_METHOD(future>, + ExportAssets, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD((StreamRange), ListAssets, (google::cloud::asset::v1::ListAssetsRequest request), (override)); @@ -105,6 +116,20 @@ class MockAssetServiceConnection : public asset_v1::AssetServiceConnection { request), (override)); + MOCK_METHOD( + StatusOr, AnalyzeIamPolicyLongrunning, + (ExperimentalTag, NoAwaitTag, + google::cloud::asset::v1::AnalyzeIamPolicyLongrunningRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + AnalyzeIamPolicyLongrunning, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(StatusOr, AnalyzeMove, (google::cloud::asset::v1::AnalyzeMoveRequest const& request), diff --git a/google/cloud/assuredworkloads/v1/assured_workloads_connection.cc b/google/cloud/assuredworkloads/v1/assured_workloads_connection.cc index dbcd1ce65d750..ee6995e52e9a9 100644 --- a/google/cloud/assuredworkloads/v1/assured_workloads_connection.cc +++ b/google/cloud/assuredworkloads/v1/assured_workloads_connection.cc @@ -47,6 +47,22 @@ AssuredWorkloadsServiceConnection::CreateWorkload( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +AssuredWorkloadsServiceConnection::CreateWorkload( + ExperimentalTag, NoAwaitTag, + google::cloud::assuredworkloads::v1::CreateWorkloadRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +AssuredWorkloadsServiceConnection::CreateWorkload( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr AssuredWorkloadsServiceConnection::UpdateWorkload( google::cloud::assuredworkloads::v1::UpdateWorkloadRequest const&) { diff --git a/google/cloud/assuredworkloads/v1/assured_workloads_connection.h b/google/cloud/assuredworkloads/v1/assured_workloads_connection.h index ad1d24d43d24d..f0a21368ac439 100644 --- a/google/cloud/assuredworkloads/v1/assured_workloads_connection.h +++ b/google/cloud/assuredworkloads/v1/assured_workloads_connection.h @@ -22,8 +22,10 @@ #include "google/cloud/assuredworkloads/v1/assured_workloads_connection_idempotency_policy.h" #include "google/cloud/assuredworkloads/v1/internal/assured_workloads_retry_traits.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/internal/retry_policy_impl.h" +#include "google/cloud/no_await_tag.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" #include "google/cloud/status_or.h" @@ -198,6 +200,15 @@ class AssuredWorkloadsServiceConnection { google::cloud::assuredworkloads::v1::CreateWorkloadRequest const& request); + virtual StatusOr CreateWorkload( + ExperimentalTag, NoAwaitTag, + google::cloud::assuredworkloads::v1::CreateWorkloadRequest const& + request); + + virtual future> + CreateWorkload(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StatusOr UpdateWorkload( google::cloud::assuredworkloads::v1::UpdateWorkloadRequest const& diff --git a/google/cloud/assuredworkloads/v1/internal/assured_workloads_connection_impl.cc b/google/cloud/assuredworkloads/v1/internal/assured_workloads_connection_impl.cc index e5438aa2fce50..080bcff2872dc 100644 --- a/google/cloud/assuredworkloads/v1/internal/assured_workloads_connection_impl.cc +++ b/google/cloud/assuredworkloads/v1/internal/assured_workloads_connection_impl.cc @@ -113,6 +113,60 @@ AssuredWorkloadsServiceConnectionImpl::CreateWorkload( polling_policy(*current), __func__); } +StatusOr +AssuredWorkloadsServiceConnectionImpl::CreateWorkload( + ExperimentalTag, NoAwaitTag, + google::cloud::assuredworkloads::v1::CreateWorkloadRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateWorkload(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::assuredworkloads::v1::CreateWorkloadRequest const& + request) { + return stub_->CreateWorkload(context, options, request); + }, + *current, request, __func__); +} + +future> +AssuredWorkloadsServiceConnectionImpl::CreateWorkload( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to CreateWorkload", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::assuredworkloads::v1::Workload>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::assuredworkloads::v1::Workload>, + polling_policy(*current), __func__); +} + StatusOr AssuredWorkloadsServiceConnectionImpl::UpdateWorkload( google::cloud::assuredworkloads::v1::UpdateWorkloadRequest const& request) { diff --git a/google/cloud/assuredworkloads/v1/internal/assured_workloads_connection_impl.h b/google/cloud/assuredworkloads/v1/internal/assured_workloads_connection_impl.h index ba78fda0b7b2c..880a49d8919ba 100644 --- a/google/cloud/assuredworkloads/v1/internal/assured_workloads_connection_impl.h +++ b/google/cloud/assuredworkloads/v1/internal/assured_workloads_connection_impl.h @@ -58,6 +58,15 @@ class AssuredWorkloadsServiceConnectionImpl google::cloud::assuredworkloads::v1::CreateWorkloadRequest const& request) override; + StatusOr CreateWorkload( + ExperimentalTag, NoAwaitTag, + google::cloud::assuredworkloads::v1::CreateWorkloadRequest const& request) + override; + + future> + CreateWorkload(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr UpdateWorkload( google::cloud::assuredworkloads::v1::UpdateWorkloadRequest const& request) override; diff --git a/google/cloud/assuredworkloads/v1/internal/assured_workloads_tracing_connection.cc b/google/cloud/assuredworkloads/v1/internal/assured_workloads_tracing_connection.cc index 685669b5820db..2a17fe3b724da 100644 --- a/google/cloud/assuredworkloads/v1/internal/assured_workloads_tracing_connection.cc +++ b/google/cloud/assuredworkloads/v1/internal/assured_workloads_tracing_connection.cc @@ -44,6 +44,27 @@ AssuredWorkloadsServiceTracingConnection::CreateWorkload( return internal::EndSpan(std::move(span), child_->CreateWorkload(request)); } +StatusOr +AssuredWorkloadsServiceTracingConnection::CreateWorkload( + ExperimentalTag, NoAwaitTag, + google::cloud::assuredworkloads::v1::CreateWorkloadRequest const& request) { + auto span = internal::MakeSpan( + "assuredworkloads_v1::AssuredWorkloadsServiceConnection::CreateWorkload"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->CreateWorkload(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +AssuredWorkloadsServiceTracingConnection::CreateWorkload( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "assuredworkloads_v1::AssuredWorkloadsServiceConnection::CreateWorkload"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->CreateWorkload(ExperimentalTag{}, operation)); +} + StatusOr AssuredWorkloadsServiceTracingConnection::UpdateWorkload( google::cloud::assuredworkloads::v1::UpdateWorkloadRequest const& request) { diff --git a/google/cloud/assuredworkloads/v1/internal/assured_workloads_tracing_connection.h b/google/cloud/assuredworkloads/v1/internal/assured_workloads_tracing_connection.h index 932409bd24b47..7d93914d52676 100644 --- a/google/cloud/assuredworkloads/v1/internal/assured_workloads_tracing_connection.h +++ b/google/cloud/assuredworkloads/v1/internal/assured_workloads_tracing_connection.h @@ -46,6 +46,15 @@ class AssuredWorkloadsServiceTracingConnection google::cloud::assuredworkloads::v1::CreateWorkloadRequest const& request) override; + StatusOr CreateWorkload( + ExperimentalTag, NoAwaitTag, + google::cloud::assuredworkloads::v1::CreateWorkloadRequest const& request) + override; + + future> + CreateWorkload(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr UpdateWorkload( google::cloud::assuredworkloads::v1::UpdateWorkloadRequest const& request) override; diff --git a/google/cloud/assuredworkloads/v1/mocks/mock_assured_workloads_connection.h b/google/cloud/assuredworkloads/v1/mocks/mock_assured_workloads_connection.h index 61cc2d4b414b2..6eaf19e6473fe 100644 --- a/google/cloud/assuredworkloads/v1/mocks/mock_assured_workloads_connection.h +++ b/google/cloud/assuredworkloads/v1/mocks/mock_assured_workloads_connection.h @@ -53,6 +53,18 @@ class MockAssuredWorkloadsServiceConnection request), (override)); + MOCK_METHOD(StatusOr, CreateWorkload, + (ExperimentalTag, NoAwaitTag, + google::cloud::assuredworkloads::v1::CreateWorkloadRequest const& + request), + (override)); + + MOCK_METHOD(future>, + CreateWorkload, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(StatusOr, UpdateWorkload, (google::cloud::assuredworkloads::v1::UpdateWorkloadRequest const& diff --git a/google/cloud/automl/v1/auto_ml_connection.cc b/google/cloud/automl/v1/auto_ml_connection.cc index 375ac72e52ce2..df718bf4ff169 100644 --- a/google/cloud/automl/v1/auto_ml_connection.cc +++ b/google/cloud/automl/v1/auto_ml_connection.cc @@ -46,6 +46,21 @@ AutoMlConnection::CreateDataset( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr AutoMlConnection::CreateDataset( + ExperimentalTag, NoAwaitTag, + google::cloud::automl::v1::CreateDatasetRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +AutoMlConnection::CreateDataset(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr AutoMlConnection::GetDataset( google::cloud::automl::v1::GetDatasetRequest const&) { return Status(StatusCode::kUnimplemented, "not implemented"); @@ -71,6 +86,21 @@ AutoMlConnection::DeleteDataset( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr AutoMlConnection::DeleteDataset( + ExperimentalTag, NoAwaitTag, + google::cloud::automl::v1::DeleteDatasetRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +AutoMlConnection::DeleteDataset(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> AutoMlConnection::ImportData( google::cloud::automl::v1::ImportDataRequest const&) { @@ -79,6 +109,21 @@ AutoMlConnection::ImportData( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr AutoMlConnection::ImportData( + ExperimentalTag, NoAwaitTag, + google::cloud::automl::v1::ImportDataRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +AutoMlConnection::ImportData(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> AutoMlConnection::ExportData( google::cloud::automl::v1::ExportDataRequest const&) { @@ -87,6 +132,21 @@ AutoMlConnection::ExportData( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr AutoMlConnection::ExportData( + ExperimentalTag, NoAwaitTag, + google::cloud::automl::v1::ExportDataRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +AutoMlConnection::ExportData(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr AutoMlConnection::GetAnnotationSpec( google::cloud::automl::v1::GetAnnotationSpecRequest const&) { @@ -101,6 +161,21 @@ AutoMlConnection::CreateModel( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr AutoMlConnection::CreateModel( + ExperimentalTag, NoAwaitTag, + google::cloud::automl::v1::CreateModelRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +AutoMlConnection::CreateModel(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr AutoMlConnection::GetModel( google::cloud::automl::v1::GetModelRequest const&) { return Status(StatusCode::kUnimplemented, "not implemented"); @@ -121,6 +196,21 @@ AutoMlConnection::DeleteModel( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr AutoMlConnection::DeleteModel( + ExperimentalTag, NoAwaitTag, + google::cloud::automl::v1::DeleteModelRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +AutoMlConnection::DeleteModel(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr AutoMlConnection::UpdateModel( google::cloud::automl::v1::UpdateModelRequest const&) { return Status(StatusCode::kUnimplemented, "not implemented"); @@ -134,6 +224,21 @@ AutoMlConnection::DeployModel( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr AutoMlConnection::DeployModel( + ExperimentalTag, NoAwaitTag, + google::cloud::automl::v1::DeployModelRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +AutoMlConnection::DeployModel(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> AutoMlConnection::UndeployModel( google::cloud::automl::v1::UndeployModelRequest const&) { @@ -142,6 +247,21 @@ AutoMlConnection::UndeployModel( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr AutoMlConnection::UndeployModel( + ExperimentalTag, NoAwaitTag, + google::cloud::automl::v1::UndeployModelRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +AutoMlConnection::UndeployModel(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> AutoMlConnection::ExportModel( google::cloud::automl::v1::ExportModelRequest const&) { @@ -150,6 +270,21 @@ AutoMlConnection::ExportModel( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr AutoMlConnection::ExportModel( + ExperimentalTag, NoAwaitTag, + google::cloud::automl::v1::ExportModelRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +AutoMlConnection::ExportModel(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr AutoMlConnection::GetModelEvaluation( google::cloud::automl::v1::GetModelEvaluationRequest const&) { diff --git a/google/cloud/automl/v1/auto_ml_connection.h b/google/cloud/automl/v1/auto_ml_connection.h index 3926e82eb20cc..e470bfdbb7455 100644 --- a/google/cloud/automl/v1/auto_ml_connection.h +++ b/google/cloud/automl/v1/auto_ml_connection.h @@ -22,8 +22,10 @@ #include "google/cloud/automl/v1/auto_ml_connection_idempotency_policy.h" #include "google/cloud/automl/v1/internal/auto_ml_retry_traits.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/internal/retry_policy_impl.h" +#include "google/cloud/no_await_tag.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" #include "google/cloud/status_or.h" @@ -185,6 +187,13 @@ class AutoMlConnection { virtual future> CreateDataset( google::cloud::automl::v1::CreateDatasetRequest const& request); + virtual StatusOr CreateDataset( + ExperimentalTag, NoAwaitTag, + google::cloud::automl::v1::CreateDatasetRequest const& request); + + virtual future> CreateDataset( + ExperimentalTag, google::longrunning::Operation const& operation); + virtual StatusOr GetDataset( google::cloud::automl::v1::GetDatasetRequest const& request); @@ -197,18 +206,47 @@ class AutoMlConnection { virtual future> DeleteDataset(google::cloud::automl::v1::DeleteDatasetRequest const& request); + virtual StatusOr DeleteDataset( + ExperimentalTag, NoAwaitTag, + google::cloud::automl::v1::DeleteDatasetRequest const& request); + + virtual future> + DeleteDataset(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> ImportData(google::cloud::automl::v1::ImportDataRequest const& request); + virtual StatusOr ImportData( + ExperimentalTag, NoAwaitTag, + google::cloud::automl::v1::ImportDataRequest const& request); + + virtual future> + ImportData(ExperimentalTag, google::longrunning::Operation const& operation); + virtual future> ExportData(google::cloud::automl::v1::ExportDataRequest const& request); + virtual StatusOr ExportData( + ExperimentalTag, NoAwaitTag, + google::cloud::automl::v1::ExportDataRequest const& request); + + virtual future> + ExportData(ExperimentalTag, google::longrunning::Operation const& operation); + virtual StatusOr GetAnnotationSpec( google::cloud::automl::v1::GetAnnotationSpecRequest const& request); virtual future> CreateModel( google::cloud::automl::v1::CreateModelRequest const& request); + virtual StatusOr CreateModel( + ExperimentalTag, NoAwaitTag, + google::cloud::automl::v1::CreateModelRequest const& request); + + virtual future> CreateModel( + ExperimentalTag, google::longrunning::Operation const& operation); + virtual StatusOr GetModel( google::cloud::automl::v1::GetModelRequest const& request); @@ -218,18 +256,47 @@ class AutoMlConnection { virtual future> DeleteModel(google::cloud::automl::v1::DeleteModelRequest const& request); + virtual StatusOr DeleteModel( + ExperimentalTag, NoAwaitTag, + google::cloud::automl::v1::DeleteModelRequest const& request); + + virtual future> + DeleteModel(ExperimentalTag, google::longrunning::Operation const& operation); + virtual StatusOr UpdateModel( google::cloud::automl::v1::UpdateModelRequest const& request); virtual future> DeployModel(google::cloud::automl::v1::DeployModelRequest const& request); + virtual StatusOr DeployModel( + ExperimentalTag, NoAwaitTag, + google::cloud::automl::v1::DeployModelRequest const& request); + + virtual future> + DeployModel(ExperimentalTag, google::longrunning::Operation const& operation); + virtual future> UndeployModel(google::cloud::automl::v1::UndeployModelRequest const& request); + virtual StatusOr UndeployModel( + ExperimentalTag, NoAwaitTag, + google::cloud::automl::v1::UndeployModelRequest const& request); + + virtual future> + UndeployModel(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> ExportModel(google::cloud::automl::v1::ExportModelRequest const& request); + virtual StatusOr ExportModel( + ExperimentalTag, NoAwaitTag, + google::cloud::automl::v1::ExportModelRequest const& request); + + virtual future> + ExportModel(ExperimentalTag, google::longrunning::Operation const& operation); + virtual StatusOr GetModelEvaluation( google::cloud::automl::v1::GetModelEvaluationRequest const& request); diff --git a/google/cloud/automl/v1/internal/auto_ml_connection_impl.cc b/google/cloud/automl/v1/internal/auto_ml_connection_impl.cc index d158eac43daf5..f6bbbaa5e861b 100644 --- a/google/cloud/automl/v1/internal/auto_ml_connection_impl.cc +++ b/google/cloud/automl/v1/internal/auto_ml_connection_impl.cc @@ -101,6 +101,56 @@ AutoMlConnectionImpl::CreateDataset( polling_policy(*current), __func__); } +StatusOr AutoMlConnectionImpl::CreateDataset( + ExperimentalTag, NoAwaitTag, + google::cloud::automl::v1::CreateDatasetRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateDataset(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::automl::v1::CreateDatasetRequest const& request) { + return stub_->CreateDataset(context, options, request); + }, + *current, request, __func__); +} + +future> +AutoMlConnectionImpl::CreateDataset( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to CreateDataset", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::automl::v1::Dataset>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::automl::v1::Dataset>, + polling_policy(*current), __func__); +} + StatusOr AutoMlConnectionImpl::GetDataset( google::cloud::automl::v1::GetDatasetRequest const& request) { auto current = google::cloud::internal::SaveCurrentOptions(); @@ -201,6 +251,57 @@ AutoMlConnectionImpl::DeleteDataset( polling_policy(*current), __func__); } +StatusOr AutoMlConnectionImpl::DeleteDataset( + ExperimentalTag, NoAwaitTag, + google::cloud::automl::v1::DeleteDatasetRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteDataset(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::automl::v1::DeleteDatasetRequest const& request) { + return stub_->DeleteDataset(context, options, request); + }, + *current, request, __func__); +} + +future> +AutoMlConnectionImpl::DeleteDataset( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteDataset", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::automl::v1::OperationMetadata>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::cloud::automl::v1::OperationMetadata>, + polling_policy(*current), __func__); +} + future> AutoMlConnectionImpl::ImportData( google::cloud::automl::v1::ImportDataRequest const& request) { @@ -240,6 +341,57 @@ AutoMlConnectionImpl::ImportData( polling_policy(*current), __func__); } +StatusOr AutoMlConnectionImpl::ImportData( + ExperimentalTag, NoAwaitTag, + google::cloud::automl::v1::ImportDataRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->ImportData(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::automl::v1::ImportDataRequest const& request) { + return stub_->ImportData(context, options, request); + }, + *current, request, __func__); +} + +future> +AutoMlConnectionImpl::ImportData( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to ImportData", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::automl::v1::OperationMetadata>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::cloud::automl::v1::OperationMetadata>, + polling_policy(*current), __func__); +} + future> AutoMlConnectionImpl::ExportData( google::cloud::automl::v1::ExportDataRequest const& request) { @@ -279,6 +431,57 @@ AutoMlConnectionImpl::ExportData( polling_policy(*current), __func__); } +StatusOr AutoMlConnectionImpl::ExportData( + ExperimentalTag, NoAwaitTag, + google::cloud::automl::v1::ExportDataRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->ExportData(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::automl::v1::ExportDataRequest const& request) { + return stub_->ExportData(context, options, request); + }, + *current, request, __func__); +} + +future> +AutoMlConnectionImpl::ExportData( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to ExportData", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::automl::v1::OperationMetadata>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::cloud::automl::v1::OperationMetadata>, + polling_policy(*current), __func__); +} + StatusOr AutoMlConnectionImpl::GetAnnotationSpec( google::cloud::automl::v1::GetAnnotationSpecRequest const& request) { @@ -333,6 +536,56 @@ AutoMlConnectionImpl::CreateModel( polling_policy(*current), __func__); } +StatusOr AutoMlConnectionImpl::CreateModel( + ExperimentalTag, NoAwaitTag, + google::cloud::automl::v1::CreateModelRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateModel(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::automl::v1::CreateModelRequest const& request) { + return stub_->CreateModel(context, options, request); + }, + *current, request, __func__); +} + +future> +AutoMlConnectionImpl::CreateModel( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to CreateModel", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::automl::v1::Model>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::automl::v1::Model>, + polling_policy(*current), __func__); +} + StatusOr AutoMlConnectionImpl::GetModel( google::cloud::automl::v1::GetModelRequest const& request) { auto current = google::cloud::internal::SaveCurrentOptions(); @@ -417,6 +670,57 @@ AutoMlConnectionImpl::DeleteModel( polling_policy(*current), __func__); } +StatusOr AutoMlConnectionImpl::DeleteModel( + ExperimentalTag, NoAwaitTag, + google::cloud::automl::v1::DeleteModelRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteModel(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::automl::v1::DeleteModelRequest const& request) { + return stub_->DeleteModel(context, options, request); + }, + *current, request, __func__); +} + +future> +AutoMlConnectionImpl::DeleteModel( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteModel", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::automl::v1::OperationMetadata>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::cloud::automl::v1::OperationMetadata>, + polling_policy(*current), __func__); +} + StatusOr AutoMlConnectionImpl::UpdateModel( google::cloud::automl::v1::UpdateModelRequest const& request) { auto current = google::cloud::internal::SaveCurrentOptions(); @@ -469,6 +773,57 @@ AutoMlConnectionImpl::DeployModel( polling_policy(*current), __func__); } +StatusOr AutoMlConnectionImpl::DeployModel( + ExperimentalTag, NoAwaitTag, + google::cloud::automl::v1::DeployModelRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeployModel(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::automl::v1::DeployModelRequest const& request) { + return stub_->DeployModel(context, options, request); + }, + *current, request, __func__); +} + +future> +AutoMlConnectionImpl::DeployModel( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DeployModel", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::automl::v1::OperationMetadata>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::cloud::automl::v1::OperationMetadata>, + polling_policy(*current), __func__); +} + future> AutoMlConnectionImpl::UndeployModel( google::cloud::automl::v1::UndeployModelRequest const& request) { @@ -508,6 +863,57 @@ AutoMlConnectionImpl::UndeployModel( polling_policy(*current), __func__); } +StatusOr AutoMlConnectionImpl::UndeployModel( + ExperimentalTag, NoAwaitTag, + google::cloud::automl::v1::UndeployModelRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UndeployModel(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::automl::v1::UndeployModelRequest const& request) { + return stub_->UndeployModel(context, options, request); + }, + *current, request, __func__); +} + +future> +AutoMlConnectionImpl::UndeployModel( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to UndeployModel", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::automl::v1::OperationMetadata>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::cloud::automl::v1::OperationMetadata>, + polling_policy(*current), __func__); +} + future> AutoMlConnectionImpl::ExportModel( google::cloud::automl::v1::ExportModelRequest const& request) { @@ -547,6 +953,57 @@ AutoMlConnectionImpl::ExportModel( polling_policy(*current), __func__); } +StatusOr AutoMlConnectionImpl::ExportModel( + ExperimentalTag, NoAwaitTag, + google::cloud::automl::v1::ExportModelRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->ExportModel(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::automl::v1::ExportModelRequest const& request) { + return stub_->ExportModel(context, options, request); + }, + *current, request, __func__); +} + +future> +AutoMlConnectionImpl::ExportModel( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to ExportModel", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::automl::v1::OperationMetadata>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::cloud::automl::v1::OperationMetadata>, + polling_policy(*current), __func__); +} + StatusOr AutoMlConnectionImpl::GetModelEvaluation( google::cloud::automl::v1::GetModelEvaluationRequest const& request) { diff --git a/google/cloud/automl/v1/internal/auto_ml_connection_impl.h b/google/cloud/automl/v1/internal/auto_ml_connection_impl.h index a21303cf2f4d4..5d94c5ac1aea2 100644 --- a/google/cloud/automl/v1/internal/auto_ml_connection_impl.h +++ b/google/cloud/automl/v1/internal/auto_ml_connection_impl.h @@ -53,6 +53,14 @@ class AutoMlConnectionImpl : public automl_v1::AutoMlConnection { future> CreateDataset( google::cloud::automl::v1::CreateDatasetRequest const& request) override; + StatusOr CreateDataset( + ExperimentalTag, NoAwaitTag, + google::cloud::automl::v1::CreateDatasetRequest const& request) override; + + future> CreateDataset( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetDataset( google::cloud::automl::v1::GetDatasetRequest const& request) override; @@ -65,12 +73,36 @@ class AutoMlConnectionImpl : public automl_v1::AutoMlConnection { future> DeleteDataset( google::cloud::automl::v1::DeleteDatasetRequest const& request) override; + StatusOr DeleteDataset( + ExperimentalTag, NoAwaitTag, + google::cloud::automl::v1::DeleteDatasetRequest const& request) override; + + future> DeleteDataset( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ImportData( google::cloud::automl::v1::ImportDataRequest const& request) override; + StatusOr ImportData( + ExperimentalTag, NoAwaitTag, + google::cloud::automl::v1::ImportDataRequest const& request) override; + + future> ImportData( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ExportData( google::cloud::automl::v1::ExportDataRequest const& request) override; + StatusOr ExportData( + ExperimentalTag, NoAwaitTag, + google::cloud::automl::v1::ExportDataRequest const& request) override; + + future> ExportData( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetAnnotationSpec( google::cloud::automl::v1::GetAnnotationSpecRequest const& request) override; @@ -78,6 +110,14 @@ class AutoMlConnectionImpl : public automl_v1::AutoMlConnection { future> CreateModel( google::cloud::automl::v1::CreateModelRequest const& request) override; + StatusOr CreateModel( + ExperimentalTag, NoAwaitTag, + google::cloud::automl::v1::CreateModelRequest const& request) override; + + future> CreateModel( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetModel( google::cloud::automl::v1::GetModelRequest const& request) override; @@ -87,18 +127,50 @@ class AutoMlConnectionImpl : public automl_v1::AutoMlConnection { future> DeleteModel( google::cloud::automl::v1::DeleteModelRequest const& request) override; + StatusOr DeleteModel( + ExperimentalTag, NoAwaitTag, + google::cloud::automl::v1::DeleteModelRequest const& request) override; + + future> DeleteModel( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr UpdateModel( google::cloud::automl::v1::UpdateModelRequest const& request) override; future> DeployModel( google::cloud::automl::v1::DeployModelRequest const& request) override; + StatusOr DeployModel( + ExperimentalTag, NoAwaitTag, + google::cloud::automl::v1::DeployModelRequest const& request) override; + + future> DeployModel( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UndeployModel( google::cloud::automl::v1::UndeployModelRequest const& request) override; + StatusOr UndeployModel( + ExperimentalTag, NoAwaitTag, + google::cloud::automl::v1::UndeployModelRequest const& request) override; + + future> UndeployModel( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ExportModel( google::cloud::automl::v1::ExportModelRequest const& request) override; + StatusOr ExportModel( + ExperimentalTag, NoAwaitTag, + google::cloud::automl::v1::ExportModelRequest const& request) override; + + future> ExportModel( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetModelEvaluation( google::cloud::automl::v1::GetModelEvaluationRequest const& request) override; diff --git a/google/cloud/automl/v1/internal/auto_ml_tracing_connection.cc b/google/cloud/automl/v1/internal/auto_ml_tracing_connection.cc index 6c59fbde98de9..8268eef5c7041 100644 --- a/google/cloud/automl/v1/internal/auto_ml_tracing_connection.cc +++ b/google/cloud/automl/v1/internal/auto_ml_tracing_connection.cc @@ -41,6 +41,24 @@ AutoMlTracingConnection::CreateDataset( return internal::EndSpan(std::move(span), child_->CreateDataset(request)); } +StatusOr AutoMlTracingConnection::CreateDataset( + ExperimentalTag, NoAwaitTag, + google::cloud::automl::v1::CreateDatasetRequest const& request) { + auto span = internal::MakeSpan("automl_v1::AutoMlConnection::CreateDataset"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->CreateDataset(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +AutoMlTracingConnection::CreateDataset( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan("automl_v1::AutoMlConnection::CreateDataset"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->CreateDataset(ExperimentalTag{}, operation)); +} + StatusOr AutoMlTracingConnection::GetDataset( google::cloud::automl::v1::GetDatasetRequest const& request) { @@ -75,6 +93,24 @@ AutoMlTracingConnection::DeleteDataset( return internal::EndSpan(std::move(span), child_->DeleteDataset(request)); } +StatusOr AutoMlTracingConnection::DeleteDataset( + ExperimentalTag, NoAwaitTag, + google::cloud::automl::v1::DeleteDatasetRequest const& request) { + auto span = internal::MakeSpan("automl_v1::AutoMlConnection::DeleteDataset"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->DeleteDataset(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +AutoMlTracingConnection::DeleteDataset( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan("automl_v1::AutoMlConnection::DeleteDataset"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->DeleteDataset(ExperimentalTag{}, operation)); +} + future> AutoMlTracingConnection::ImportData( google::cloud::automl::v1::ImportDataRequest const& request) { @@ -83,6 +119,24 @@ AutoMlTracingConnection::ImportData( return internal::EndSpan(std::move(span), child_->ImportData(request)); } +StatusOr AutoMlTracingConnection::ImportData( + ExperimentalTag, NoAwaitTag, + google::cloud::automl::v1::ImportDataRequest const& request) { + auto span = internal::MakeSpan("automl_v1::AutoMlConnection::ImportData"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->ImportData(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +AutoMlTracingConnection::ImportData( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan("automl_v1::AutoMlConnection::ImportData"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->ImportData(ExperimentalTag{}, operation)); +} + future> AutoMlTracingConnection::ExportData( google::cloud::automl::v1::ExportDataRequest const& request) { @@ -91,6 +145,24 @@ AutoMlTracingConnection::ExportData( return internal::EndSpan(std::move(span), child_->ExportData(request)); } +StatusOr AutoMlTracingConnection::ExportData( + ExperimentalTag, NoAwaitTag, + google::cloud::automl::v1::ExportDataRequest const& request) { + auto span = internal::MakeSpan("automl_v1::AutoMlConnection::ExportData"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->ExportData(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +AutoMlTracingConnection::ExportData( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan("automl_v1::AutoMlConnection::ExportData"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->ExportData(ExperimentalTag{}, operation)); +} + StatusOr AutoMlTracingConnection::GetAnnotationSpec( google::cloud::automl::v1::GetAnnotationSpecRequest const& request) { @@ -108,6 +180,24 @@ AutoMlTracingConnection::CreateModel( return internal::EndSpan(std::move(span), child_->CreateModel(request)); } +StatusOr AutoMlTracingConnection::CreateModel( + ExperimentalTag, NoAwaitTag, + google::cloud::automl::v1::CreateModelRequest const& request) { + auto span = internal::MakeSpan("automl_v1::AutoMlConnection::CreateModel"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->CreateModel(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +AutoMlTracingConnection::CreateModel( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan("automl_v1::AutoMlConnection::CreateModel"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->CreateModel(ExperimentalTag{}, operation)); +} + StatusOr AutoMlTracingConnection::GetModel( google::cloud::automl::v1::GetModelRequest const& request) { auto span = internal::MakeSpan("automl_v1::AutoMlConnection::GetModel"); @@ -133,6 +223,24 @@ AutoMlTracingConnection::DeleteModel( return internal::EndSpan(std::move(span), child_->DeleteModel(request)); } +StatusOr AutoMlTracingConnection::DeleteModel( + ExperimentalTag, NoAwaitTag, + google::cloud::automl::v1::DeleteModelRequest const& request) { + auto span = internal::MakeSpan("automl_v1::AutoMlConnection::DeleteModel"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->DeleteModel(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +AutoMlTracingConnection::DeleteModel( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan("automl_v1::AutoMlConnection::DeleteModel"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->DeleteModel(ExperimentalTag{}, operation)); +} + StatusOr AutoMlTracingConnection::UpdateModel( google::cloud::automl::v1::UpdateModelRequest const& request) { auto span = internal::MakeSpan("automl_v1::AutoMlConnection::UpdateModel"); @@ -148,6 +256,24 @@ AutoMlTracingConnection::DeployModel( return internal::EndSpan(std::move(span), child_->DeployModel(request)); } +StatusOr AutoMlTracingConnection::DeployModel( + ExperimentalTag, NoAwaitTag, + google::cloud::automl::v1::DeployModelRequest const& request) { + auto span = internal::MakeSpan("automl_v1::AutoMlConnection::DeployModel"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->DeployModel(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +AutoMlTracingConnection::DeployModel( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan("automl_v1::AutoMlConnection::DeployModel"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->DeployModel(ExperimentalTag{}, operation)); +} + future> AutoMlTracingConnection::UndeployModel( google::cloud::automl::v1::UndeployModelRequest const& request) { @@ -156,6 +282,24 @@ AutoMlTracingConnection::UndeployModel( return internal::EndSpan(std::move(span), child_->UndeployModel(request)); } +StatusOr AutoMlTracingConnection::UndeployModel( + ExperimentalTag, NoAwaitTag, + google::cloud::automl::v1::UndeployModelRequest const& request) { + auto span = internal::MakeSpan("automl_v1::AutoMlConnection::UndeployModel"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->UndeployModel(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +AutoMlTracingConnection::UndeployModel( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan("automl_v1::AutoMlConnection::UndeployModel"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->UndeployModel(ExperimentalTag{}, operation)); +} + future> AutoMlTracingConnection::ExportModel( google::cloud::automl::v1::ExportModelRequest const& request) { @@ -164,6 +308,24 @@ AutoMlTracingConnection::ExportModel( return internal::EndSpan(std::move(span), child_->ExportModel(request)); } +StatusOr AutoMlTracingConnection::ExportModel( + ExperimentalTag, NoAwaitTag, + google::cloud::automl::v1::ExportModelRequest const& request) { + auto span = internal::MakeSpan("automl_v1::AutoMlConnection::ExportModel"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->ExportModel(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +AutoMlTracingConnection::ExportModel( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan("automl_v1::AutoMlConnection::ExportModel"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->ExportModel(ExperimentalTag{}, operation)); +} + StatusOr AutoMlTracingConnection::GetModelEvaluation( google::cloud::automl::v1::GetModelEvaluationRequest const& request) { diff --git a/google/cloud/automl/v1/internal/auto_ml_tracing_connection.h b/google/cloud/automl/v1/internal/auto_ml_tracing_connection.h index f33bef8718b43..0cd1bff29d1ec 100644 --- a/google/cloud/automl/v1/internal/auto_ml_tracing_connection.h +++ b/google/cloud/automl/v1/internal/auto_ml_tracing_connection.h @@ -42,6 +42,14 @@ class AutoMlTracingConnection : public automl_v1::AutoMlConnection { future> CreateDataset( google::cloud::automl::v1::CreateDatasetRequest const& request) override; + StatusOr CreateDataset( + ExperimentalTag, NoAwaitTag, + google::cloud::automl::v1::CreateDatasetRequest const& request) override; + + future> CreateDataset( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetDataset( google::cloud::automl::v1::GetDatasetRequest const& request) override; @@ -54,12 +62,36 @@ class AutoMlTracingConnection : public automl_v1::AutoMlConnection { future> DeleteDataset( google::cloud::automl::v1::DeleteDatasetRequest const& request) override; + StatusOr DeleteDataset( + ExperimentalTag, NoAwaitTag, + google::cloud::automl::v1::DeleteDatasetRequest const& request) override; + + future> DeleteDataset( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ImportData( google::cloud::automl::v1::ImportDataRequest const& request) override; + StatusOr ImportData( + ExperimentalTag, NoAwaitTag, + google::cloud::automl::v1::ImportDataRequest const& request) override; + + future> ImportData( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ExportData( google::cloud::automl::v1::ExportDataRequest const& request) override; + StatusOr ExportData( + ExperimentalTag, NoAwaitTag, + google::cloud::automl::v1::ExportDataRequest const& request) override; + + future> ExportData( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetAnnotationSpec( google::cloud::automl::v1::GetAnnotationSpecRequest const& request) override; @@ -67,6 +99,14 @@ class AutoMlTracingConnection : public automl_v1::AutoMlConnection { future> CreateModel( google::cloud::automl::v1::CreateModelRequest const& request) override; + StatusOr CreateModel( + ExperimentalTag, NoAwaitTag, + google::cloud::automl::v1::CreateModelRequest const& request) override; + + future> CreateModel( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetModel( google::cloud::automl::v1::GetModelRequest const& request) override; @@ -76,18 +116,50 @@ class AutoMlTracingConnection : public automl_v1::AutoMlConnection { future> DeleteModel( google::cloud::automl::v1::DeleteModelRequest const& request) override; + StatusOr DeleteModel( + ExperimentalTag, NoAwaitTag, + google::cloud::automl::v1::DeleteModelRequest const& request) override; + + future> DeleteModel( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr UpdateModel( google::cloud::automl::v1::UpdateModelRequest const& request) override; future> DeployModel( google::cloud::automl::v1::DeployModelRequest const& request) override; + StatusOr DeployModel( + ExperimentalTag, NoAwaitTag, + google::cloud::automl::v1::DeployModelRequest const& request) override; + + future> DeployModel( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UndeployModel( google::cloud::automl::v1::UndeployModelRequest const& request) override; + StatusOr UndeployModel( + ExperimentalTag, NoAwaitTag, + google::cloud::automl::v1::UndeployModelRequest const& request) override; + + future> UndeployModel( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ExportModel( google::cloud::automl::v1::ExportModelRequest const& request) override; + StatusOr ExportModel( + ExperimentalTag, NoAwaitTag, + google::cloud::automl::v1::ExportModelRequest const& request) override; + + future> ExportModel( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetModelEvaluation( google::cloud::automl::v1::GetModelEvaluationRequest const& request) override; diff --git a/google/cloud/automl/v1/internal/prediction_connection_impl.cc b/google/cloud/automl/v1/internal/prediction_connection_impl.cc index 8c998aa7dc75d..59156d89a554e 100644 --- a/google/cloud/automl/v1/internal/prediction_connection_impl.cc +++ b/google/cloud/automl/v1/internal/prediction_connection_impl.cc @@ -118,6 +118,58 @@ PredictionServiceConnectionImpl::BatchPredict( polling_policy(*current), __func__); } +StatusOr +PredictionServiceConnectionImpl::BatchPredict( + ExperimentalTag, NoAwaitTag, + google::cloud::automl::v1::BatchPredictRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->BatchPredict(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::automl::v1::BatchPredictRequest const& request) { + return stub_->BatchPredict(context, options, request); + }, + *current, request, __func__); +} + +future> +PredictionServiceConnectionImpl::BatchPredict( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to BatchPredict", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::automl::v1::BatchPredictResult>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::automl::v1::BatchPredictResult>, + polling_policy(*current), __func__); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace automl_v1_internal } // namespace cloud diff --git a/google/cloud/automl/v1/internal/prediction_connection_impl.h b/google/cloud/automl/v1/internal/prediction_connection_impl.h index feec3310f573b..7d144852fe803 100644 --- a/google/cloud/automl/v1/internal/prediction_connection_impl.h +++ b/google/cloud/automl/v1/internal/prediction_connection_impl.h @@ -57,6 +57,14 @@ class PredictionServiceConnectionImpl future> BatchPredict( google::cloud::automl::v1::BatchPredictRequest const& request) override; + StatusOr BatchPredict( + ExperimentalTag, NoAwaitTag, + google::cloud::automl::v1::BatchPredictRequest const& request) override; + + future> BatchPredict( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + private: std::unique_ptr background_; std::shared_ptr stub_; diff --git a/google/cloud/automl/v1/internal/prediction_tracing_connection.cc b/google/cloud/automl/v1/internal/prediction_tracing_connection.cc index 5c4371a694927..c2a57ef6026d7 100644 --- a/google/cloud/automl/v1/internal/prediction_tracing_connection.cc +++ b/google/cloud/automl/v1/internal/prediction_tracing_connection.cc @@ -50,6 +50,27 @@ PredictionServiceTracingConnection::BatchPredict( return internal::EndSpan(std::move(span), child_->BatchPredict(request)); } +StatusOr +PredictionServiceTracingConnection::BatchPredict( + ExperimentalTag, NoAwaitTag, + google::cloud::automl::v1::BatchPredictRequest const& request) { + auto span = internal::MakeSpan( + "automl_v1::PredictionServiceConnection::BatchPredict"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->BatchPredict(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +PredictionServiceTracingConnection::BatchPredict( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "automl_v1::PredictionServiceConnection::BatchPredict"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->BatchPredict(ExperimentalTag{}, operation)); +} + #endif // GOOGLE_CLOUD_CPP_HAVE_OPENTELEMETRY std::shared_ptr diff --git a/google/cloud/automl/v1/internal/prediction_tracing_connection.h b/google/cloud/automl/v1/internal/prediction_tracing_connection.h index fe8c29e8bd335..aafc5479e0c1f 100644 --- a/google/cloud/automl/v1/internal/prediction_tracing_connection.h +++ b/google/cloud/automl/v1/internal/prediction_tracing_connection.h @@ -46,6 +46,14 @@ class PredictionServiceTracingConnection future> BatchPredict( google::cloud::automl::v1::BatchPredictRequest const& request) override; + StatusOr BatchPredict( + ExperimentalTag, NoAwaitTag, + google::cloud::automl::v1::BatchPredictRequest const& request) override; + + future> BatchPredict( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + private: std::shared_ptr child_; }; diff --git a/google/cloud/automl/v1/mocks/mock_auto_ml_connection.h b/google/cloud/automl/v1/mocks/mock_auto_ml_connection.h index ef1e4a81e3e0b..c8367a2136747 100644 --- a/google/cloud/automl/v1/mocks/mock_auto_ml_connection.h +++ b/google/cloud/automl/v1/mocks/mock_auto_ml_connection.h @@ -51,6 +51,17 @@ class MockAutoMlConnection : public automl_v1::AutoMlConnection { (google::cloud::automl::v1::CreateDatasetRequest const& request), (override)); + MOCK_METHOD(StatusOr, CreateDataset, + (ExperimentalTag, NoAwaitTag, + google::cloud::automl::v1::CreateDatasetRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateDataset, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(StatusOr, GetDataset, (google::cloud::automl::v1::GetDatasetRequest const& request), (override)); @@ -68,16 +79,49 @@ class MockAutoMlConnection : public automl_v1::AutoMlConnection { (google::cloud::automl::v1::DeleteDatasetRequest const& request), (override)); + MOCK_METHOD(StatusOr, DeleteDataset, + (ExperimentalTag, NoAwaitTag, + google::cloud::automl::v1::DeleteDatasetRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteDataset, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, ImportData, (google::cloud::automl::v1::ImportDataRequest const& request), (override)); + MOCK_METHOD(StatusOr, ImportData, + (ExperimentalTag, NoAwaitTag, + google::cloud::automl::v1::ImportDataRequest const& request), + (override)); + + MOCK_METHOD(future>, + ImportData, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, ExportData, (google::cloud::automl::v1::ExportDataRequest const& request), (override)); + MOCK_METHOD(StatusOr, ExportData, + (ExperimentalTag, NoAwaitTag, + google::cloud::automl::v1::ExportDataRequest const& request), + (override)); + + MOCK_METHOD(future>, + ExportData, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr, GetAnnotationSpec, (google::cloud::automl::v1::GetAnnotationSpecRequest const& request), @@ -87,6 +131,16 @@ class MockAutoMlConnection : public automl_v1::AutoMlConnection { (google::cloud::automl::v1::CreateModelRequest const& request), (override)); + MOCK_METHOD(StatusOr, CreateModel, + (ExperimentalTag, NoAwaitTag, + google::cloud::automl::v1::CreateModelRequest const& request), + (override)); + + MOCK_METHOD(future>, CreateModel, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(StatusOr, GetModel, (google::cloud::automl::v1::GetModelRequest const& request), (override)); @@ -100,6 +154,17 @@ class MockAutoMlConnection : public automl_v1::AutoMlConnection { (google::cloud::automl::v1::DeleteModelRequest const& request), (override)); + MOCK_METHOD(StatusOr, DeleteModel, + (ExperimentalTag, NoAwaitTag, + google::cloud::automl::v1::DeleteModelRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteModel, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(StatusOr, UpdateModel, (google::cloud::automl::v1::UpdateModelRequest const& request), (override)); @@ -109,16 +174,49 @@ class MockAutoMlConnection : public automl_v1::AutoMlConnection { (google::cloud::automl::v1::DeployModelRequest const& request), (override)); + MOCK_METHOD(StatusOr, DeployModel, + (ExperimentalTag, NoAwaitTag, + google::cloud::automl::v1::DeployModelRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeployModel, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, UndeployModel, (google::cloud::automl::v1::UndeployModelRequest const& request), (override)); + MOCK_METHOD(StatusOr, UndeployModel, + (ExperimentalTag, NoAwaitTag, + google::cloud::automl::v1::UndeployModelRequest const& request), + (override)); + + MOCK_METHOD(future>, + UndeployModel, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, ExportModel, (google::cloud::automl::v1::ExportModelRequest const& request), (override)); + MOCK_METHOD(StatusOr, ExportModel, + (ExperimentalTag, NoAwaitTag, + google::cloud::automl::v1::ExportModelRequest const& request), + (override)); + + MOCK_METHOD(future>, + ExportModel, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr, GetModelEvaluation, (google::cloud::automl::v1::GetModelEvaluationRequest const& request), diff --git a/google/cloud/automl/v1/mocks/mock_prediction_connection.h b/google/cloud/automl/v1/mocks/mock_prediction_connection.h index f0efcb84c07ab..65150d881dc94 100644 --- a/google/cloud/automl/v1/mocks/mock_prediction_connection.h +++ b/google/cloud/automl/v1/mocks/mock_prediction_connection.h @@ -55,6 +55,17 @@ class MockPredictionServiceConnection BatchPredict, (google::cloud::automl::v1::BatchPredictRequest const& request), (override)); + + MOCK_METHOD(StatusOr, BatchPredict, + (ExperimentalTag, NoAwaitTag, + google::cloud::automl::v1::BatchPredictRequest const& request), + (override)); + + MOCK_METHOD(future>, + BatchPredict, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); }; GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END diff --git a/google/cloud/automl/v1/prediction_connection.cc b/google/cloud/automl/v1/prediction_connection.cc index 92e17f371ce0a..b375767f3ae1a 100644 --- a/google/cloud/automl/v1/prediction_connection.cc +++ b/google/cloud/automl/v1/prediction_connection.cc @@ -51,6 +51,22 @@ PredictionServiceConnection::BatchPredict( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +PredictionServiceConnection::BatchPredict( + ExperimentalTag, NoAwaitTag, + google::cloud::automl::v1::BatchPredictRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +PredictionServiceConnection::BatchPredict( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + std::shared_ptr MakePredictionServiceConnection( Options options) { internal::CheckExpectedOptions> BatchPredict(google::cloud::automl::v1::BatchPredictRequest const& request); + + virtual StatusOr BatchPredict( + ExperimentalTag, NoAwaitTag, + google::cloud::automl::v1::BatchPredictRequest const& request); + + virtual future> + BatchPredict(ExperimentalTag, + google::longrunning::Operation const& operation); }; /** diff --git a/google/cloud/backupdr/v1/backup_dr_connection.cc b/google/cloud/backupdr/v1/backup_dr_connection.cc index 84a764720e81f..dda54897b1a18 100644 --- a/google/cloud/backupdr/v1/backup_dr_connection.cc +++ b/google/cloud/backupdr/v1/backup_dr_connection.cc @@ -60,6 +60,22 @@ BackupDRConnection::CreateManagementServer( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +BackupDRConnection::CreateManagementServer( + ExperimentalTag, NoAwaitTag, + google::cloud::backupdr::v1::CreateManagementServerRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +BackupDRConnection::CreateManagementServer( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> BackupDRConnection::DeleteManagementServer( google::cloud::backupdr::v1::DeleteManagementServerRequest const&) { @@ -68,6 +84,22 @@ BackupDRConnection::DeleteManagementServer( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +BackupDRConnection::DeleteManagementServer( + ExperimentalTag, NoAwaitTag, + google::cloud::backupdr::v1::DeleteManagementServerRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +BackupDRConnection::DeleteManagementServer( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + std::shared_ptr MakeBackupDRConnection(Options options) { internal::CheckExpectedOptions CreateManagementServer( + ExperimentalTag, NoAwaitTag, + google::cloud::backupdr::v1::CreateManagementServerRequest const& + request); + + virtual future> + CreateManagementServer(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> DeleteManagementServer( google::cloud::backupdr::v1::DeleteManagementServerRequest const& request); + + virtual StatusOr DeleteManagementServer( + ExperimentalTag, NoAwaitTag, + google::cloud::backupdr::v1::DeleteManagementServerRequest const& + request); + + virtual future> + DeleteManagementServer(ExperimentalTag, + google::longrunning::Operation const& operation); }; /** diff --git a/google/cloud/backupdr/v1/internal/backup_dr_connection_impl.cc b/google/cloud/backupdr/v1/internal/backup_dr_connection_impl.cc index 6f86da5c1c992..41658b0296576 100644 --- a/google/cloud/backupdr/v1/internal/backup_dr_connection_impl.cc +++ b/google/cloud/backupdr/v1/internal/backup_dr_connection_impl.cc @@ -153,6 +153,59 @@ BackupDRConnectionImpl::CreateManagementServer( polling_policy(*current), __func__); } +StatusOr +BackupDRConnectionImpl::CreateManagementServer( + ExperimentalTag, NoAwaitTag, + google::cloud::backupdr::v1::CreateManagementServerRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateManagementServer(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::backupdr::v1::CreateManagementServerRequest const& + request) { + return stub_->CreateManagementServer(context, options, request); + }, + *current, request, __func__); +} + +future> +BackupDRConnectionImpl::CreateManagementServer( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to CreateManagementServer", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::backupdr::v1::ManagementServer>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::backupdr::v1::ManagementServer>, + polling_policy(*current), __func__); +} + future> BackupDRConnectionImpl::DeleteManagementServer( google::cloud::backupdr::v1::DeleteManagementServerRequest const& request) { @@ -193,6 +246,59 @@ BackupDRConnectionImpl::DeleteManagementServer( polling_policy(*current), __func__); } +StatusOr +BackupDRConnectionImpl::DeleteManagementServer( + ExperimentalTag, NoAwaitTag, + google::cloud::backupdr::v1::DeleteManagementServerRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteManagementServer(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::backupdr::v1::DeleteManagementServerRequest const& + request) { + return stub_->DeleteManagementServer(context, options, request); + }, + *current, request, __func__); +} + +future> +BackupDRConnectionImpl::DeleteManagementServer( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteManagementServer", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::backupdr::v1::OperationMetadata>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::cloud::backupdr::v1::OperationMetadata>, + polling_policy(*current), __func__); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace backupdr_v1_internal } // namespace cloud diff --git a/google/cloud/backupdr/v1/internal/backup_dr_connection_impl.h b/google/cloud/backupdr/v1/internal/backup_dr_connection_impl.h index 28232b6be2a56..391200732a8fc 100644 --- a/google/cloud/backupdr/v1/internal/backup_dr_connection_impl.h +++ b/google/cloud/backupdr/v1/internal/backup_dr_connection_impl.h @@ -65,11 +65,31 @@ class BackupDRConnectionImpl : public backupdr_v1::BackupDRConnection { google::cloud::backupdr::v1::CreateManagementServerRequest const& request) override; + StatusOr CreateManagementServer( + ExperimentalTag, NoAwaitTag, + google::cloud::backupdr::v1::CreateManagementServerRequest const& request) + override; + + future> + CreateManagementServer( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteManagementServer( google::cloud::backupdr::v1::DeleteManagementServerRequest const& request) override; + StatusOr DeleteManagementServer( + ExperimentalTag, NoAwaitTag, + google::cloud::backupdr::v1::DeleteManagementServerRequest const& request) + override; + + future> + DeleteManagementServer( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + private: std::unique_ptr background_; std::shared_ptr stub_; diff --git a/google/cloud/backupdr/v1/internal/backup_dr_tracing_connection.cc b/google/cloud/backupdr/v1/internal/backup_dr_tracing_connection.cc index 54d05a8bee8e5..25252303d1933 100644 --- a/google/cloud/backupdr/v1/internal/backup_dr_tracing_connection.cc +++ b/google/cloud/backupdr/v1/internal/backup_dr_tracing_connection.cc @@ -64,6 +64,28 @@ BackupDRTracingConnection::CreateManagementServer( child_->CreateManagementServer(request)); } +StatusOr +BackupDRTracingConnection::CreateManagementServer( + ExperimentalTag, NoAwaitTag, + google::cloud::backupdr::v1::CreateManagementServerRequest const& request) { + auto span = internal::MakeSpan( + "backupdr_v1::BackupDRConnection::CreateManagementServer"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->CreateManagementServer(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +BackupDRTracingConnection::CreateManagementServer( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "backupdr_v1::BackupDRConnection::CreateManagementServer"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->CreateManagementServer( + ExperimentalTag{}, operation)); +} + future> BackupDRTracingConnection::DeleteManagementServer( google::cloud::backupdr::v1::DeleteManagementServerRequest const& request) { @@ -74,6 +96,28 @@ BackupDRTracingConnection::DeleteManagementServer( child_->DeleteManagementServer(request)); } +StatusOr +BackupDRTracingConnection::DeleteManagementServer( + ExperimentalTag, NoAwaitTag, + google::cloud::backupdr::v1::DeleteManagementServerRequest const& request) { + auto span = internal::MakeSpan( + "backupdr_v1::BackupDRConnection::DeleteManagementServer"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->DeleteManagementServer(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +BackupDRTracingConnection::DeleteManagementServer( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "backupdr_v1::BackupDRConnection::DeleteManagementServer"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->DeleteManagementServer( + ExperimentalTag{}, operation)); +} + #endif // GOOGLE_CLOUD_CPP_HAVE_OPENTELEMETRY std::shared_ptr MakeBackupDRTracingConnection( diff --git a/google/cloud/backupdr/v1/internal/backup_dr_tracing_connection.h b/google/cloud/backupdr/v1/internal/backup_dr_tracing_connection.h index e1335316a46e3..3429196fc821e 100644 --- a/google/cloud/backupdr/v1/internal/backup_dr_tracing_connection.h +++ b/google/cloud/backupdr/v1/internal/backup_dr_tracing_connection.h @@ -53,11 +53,31 @@ class BackupDRTracingConnection : public backupdr_v1::BackupDRConnection { google::cloud::backupdr::v1::CreateManagementServerRequest const& request) override; + StatusOr CreateManagementServer( + ExperimentalTag, NoAwaitTag, + google::cloud::backupdr::v1::CreateManagementServerRequest const& request) + override; + + future> + CreateManagementServer( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteManagementServer( google::cloud::backupdr::v1::DeleteManagementServerRequest const& request) override; + StatusOr DeleteManagementServer( + ExperimentalTag, NoAwaitTag, + google::cloud::backupdr::v1::DeleteManagementServerRequest const& request) + override; + + future> + DeleteManagementServer( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + private: std::shared_ptr child_; }; diff --git a/google/cloud/backupdr/v1/mocks/mock_backup_dr_connection.h b/google/cloud/backupdr/v1/mocks/mock_backup_dr_connection.h index 4f3865558491b..c14d3c39427b2 100644 --- a/google/cloud/backupdr/v1/mocks/mock_backup_dr_connection.h +++ b/google/cloud/backupdr/v1/mocks/mock_backup_dr_connection.h @@ -64,11 +64,35 @@ class MockBackupDRConnection : public backupdr_v1::BackupDRConnection { request), (override)); + MOCK_METHOD(StatusOr, CreateManagementServer, + (ExperimentalTag, NoAwaitTag, + google::cloud::backupdr::v1::CreateManagementServerRequest const& + request), + (override)); + + MOCK_METHOD(future>, + CreateManagementServer, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, DeleteManagementServer, (google::cloud::backupdr::v1::DeleteManagementServerRequest const& request), (override)); + + MOCK_METHOD(StatusOr, DeleteManagementServer, + (ExperimentalTag, NoAwaitTag, + google::cloud::backupdr::v1::DeleteManagementServerRequest const& + request), + (override)); + + MOCK_METHOD(future>, + DeleteManagementServer, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); }; GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END diff --git a/google/cloud/baremetalsolution/v2/bare_metal_solution_connection.cc b/google/cloud/baremetalsolution/v2/bare_metal_solution_connection.cc index 2e3f5aedbb38f..1c1805e9cd71c 100644 --- a/google/cloud/baremetalsolution/v2/bare_metal_solution_connection.cc +++ b/google/cloud/baremetalsolution/v2/bare_metal_solution_connection.cc @@ -60,6 +60,22 @@ BareMetalSolutionConnection::UpdateInstance( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +BareMetalSolutionConnection::UpdateInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::baremetalsolution::v2::UpdateInstanceRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +BareMetalSolutionConnection::UpdateInstance( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr BareMetalSolutionConnection::RenameInstance( google::cloud::baremetalsolution::v2::RenameInstanceRequest const&) { @@ -74,6 +90,22 @@ BareMetalSolutionConnection::ResetInstance( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +BareMetalSolutionConnection::ResetInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::baremetalsolution::v2::ResetInstanceRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +BareMetalSolutionConnection::ResetInstance( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> BareMetalSolutionConnection::StartInstance( google::cloud::baremetalsolution::v2::StartInstanceRequest const&) { @@ -82,6 +114,22 @@ BareMetalSolutionConnection::StartInstance( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +BareMetalSolutionConnection::StartInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::baremetalsolution::v2::StartInstanceRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +BareMetalSolutionConnection::StartInstance( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> BareMetalSolutionConnection::StopInstance( google::cloud::baremetalsolution::v2::StopInstanceRequest const&) { @@ -90,6 +138,22 @@ BareMetalSolutionConnection::StopInstance( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +BareMetalSolutionConnection::StopInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::baremetalsolution::v2::StopInstanceRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +BareMetalSolutionConnection::StopInstance( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> BareMetalSolutionConnection::EnableInteractiveSerialConsole( @@ -101,6 +165,25 @@ BareMetalSolutionConnection::EnableInteractiveSerialConsole( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +BareMetalSolutionConnection::EnableInteractiveSerialConsole( + ExperimentalTag, NoAwaitTag, + google::cloud::baremetalsolution::v2:: + EnableInteractiveSerialConsoleRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +BareMetalSolutionConnection::EnableInteractiveSerialConsole( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> BareMetalSolutionConnection::DisableInteractiveSerialConsole( @@ -112,6 +195,25 @@ BareMetalSolutionConnection::DisableInteractiveSerialConsole( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +BareMetalSolutionConnection::DisableInteractiveSerialConsole( + ExperimentalTag, NoAwaitTag, + google::cloud::baremetalsolution::v2:: + DisableInteractiveSerialConsoleRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +BareMetalSolutionConnection::DisableInteractiveSerialConsole( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> BareMetalSolutionConnection::DetachLun( google::cloud::baremetalsolution::v2::DetachLunRequest const&) { @@ -120,6 +222,21 @@ BareMetalSolutionConnection::DetachLun( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr BareMetalSolutionConnection::DetachLun( + ExperimentalTag, NoAwaitTag, + google::cloud::baremetalsolution::v2::DetachLunRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +BareMetalSolutionConnection::DetachLun(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StreamRange BareMetalSolutionConnection::ListSSHKeys( google::cloud::baremetalsolution::v2:: @@ -161,6 +278,22 @@ BareMetalSolutionConnection::UpdateVolume( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +BareMetalSolutionConnection::UpdateVolume( + ExperimentalTag, NoAwaitTag, + google::cloud::baremetalsolution::v2::UpdateVolumeRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +BareMetalSolutionConnection::UpdateVolume( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr BareMetalSolutionConnection::RenameVolume( google::cloud::baremetalsolution::v2::RenameVolumeRequest const&) { @@ -175,6 +308,22 @@ BareMetalSolutionConnection::EvictVolume( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +BareMetalSolutionConnection::EvictVolume( + ExperimentalTag, NoAwaitTag, + google::cloud::baremetalsolution::v2::EvictVolumeRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +BareMetalSolutionConnection::EvictVolume( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> BareMetalSolutionConnection::ResizeVolume( google::cloud::baremetalsolution::v2::ResizeVolumeRequest const&) { @@ -183,6 +332,22 @@ BareMetalSolutionConnection::ResizeVolume( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +BareMetalSolutionConnection::ResizeVolume( + ExperimentalTag, NoAwaitTag, + google::cloud::baremetalsolution::v2::ResizeVolumeRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +BareMetalSolutionConnection::ResizeVolume( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StreamRange BareMetalSolutionConnection::ListNetworks( google::cloud::baremetalsolution::v2:: @@ -211,6 +376,22 @@ BareMetalSolutionConnection::UpdateNetwork( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +BareMetalSolutionConnection::UpdateNetwork( + ExperimentalTag, NoAwaitTag, + google::cloud::baremetalsolution::v2::UpdateNetworkRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +BareMetalSolutionConnection::UpdateNetwork( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr BareMetalSolutionConnection::CreateVolumeSnapshot( google::cloud::baremetalsolution::v2::CreateVolumeSnapshotRequest const&) { @@ -225,6 +406,22 @@ BareMetalSolutionConnection::RestoreVolumeSnapshot( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +BareMetalSolutionConnection::RestoreVolumeSnapshot( + ExperimentalTag, NoAwaitTag, + google::cloud::baremetalsolution::v2::RestoreVolumeSnapshotRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +BareMetalSolutionConnection::RestoreVolumeSnapshot( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + Status BareMetalSolutionConnection::DeleteVolumeSnapshot( google::cloud::baremetalsolution::v2::DeleteVolumeSnapshotRequest const&) { return Status(StatusCode::kUnimplemented, "not implemented"); @@ -266,6 +463,21 @@ BareMetalSolutionConnection::EvictLun( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr BareMetalSolutionConnection::EvictLun( + ExperimentalTag, NoAwaitTag, + google::cloud::baremetalsolution::v2::EvictLunRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +BareMetalSolutionConnection::EvictLun(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr BareMetalSolutionConnection::GetNfsShare( google::cloud::baremetalsolution::v2::GetNfsShareRequest const&) { @@ -288,6 +500,22 @@ BareMetalSolutionConnection::UpdateNfsShare( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +BareMetalSolutionConnection::UpdateNfsShare( + ExperimentalTag, NoAwaitTag, + google::cloud::baremetalsolution::v2::UpdateNfsShareRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +BareMetalSolutionConnection::UpdateNfsShare( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> BareMetalSolutionConnection::CreateNfsShare( google::cloud::baremetalsolution::v2::CreateNfsShareRequest const&) { @@ -296,6 +524,22 @@ BareMetalSolutionConnection::CreateNfsShare( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +BareMetalSolutionConnection::CreateNfsShare( + ExperimentalTag, NoAwaitTag, + google::cloud::baremetalsolution::v2::CreateNfsShareRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +BareMetalSolutionConnection::CreateNfsShare( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr BareMetalSolutionConnection::RenameNfsShare( google::cloud::baremetalsolution::v2::RenameNfsShareRequest const&) { @@ -310,6 +554,22 @@ BareMetalSolutionConnection::DeleteNfsShare( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +BareMetalSolutionConnection::DeleteNfsShare( + ExperimentalTag, NoAwaitTag, + google::cloud::baremetalsolution::v2::DeleteNfsShareRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +BareMetalSolutionConnection::DeleteNfsShare( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StreamRange BareMetalSolutionConnection::ListProvisioningQuotas( google::cloud::baremetalsolution::v2:: diff --git a/google/cloud/baremetalsolution/v2/bare_metal_solution_connection.h b/google/cloud/baremetalsolution/v2/bare_metal_solution_connection.h index 454b62a7181b4..1b7c3e9d9b090 100644 --- a/google/cloud/baremetalsolution/v2/bare_metal_solution_connection.h +++ b/google/cloud/baremetalsolution/v2/bare_metal_solution_connection.h @@ -22,8 +22,10 @@ #include "google/cloud/baremetalsolution/v2/bare_metal_solution_connection_idempotency_policy.h" #include "google/cloud/baremetalsolution/v2/internal/bare_metal_solution_retry_traits.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/internal/retry_policy_impl.h" +#include "google/cloud/no_await_tag.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" #include "google/cloud/status_or.h" @@ -199,6 +201,15 @@ class BareMetalSolutionConnection { google::cloud::baremetalsolution::v2::UpdateInstanceRequest const& request); + virtual StatusOr UpdateInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::baremetalsolution::v2::UpdateInstanceRequest const& + request); + + virtual future> + UpdateInstance(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StatusOr RenameInstance( google::cloud::baremetalsolution::v2::RenameInstanceRequest const& @@ -210,33 +221,91 @@ class BareMetalSolutionConnection { google::cloud::baremetalsolution::v2::ResetInstanceRequest const& request); + virtual StatusOr ResetInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::baremetalsolution::v2::ResetInstanceRequest const& + request); + + virtual future< + StatusOr> + ResetInstance(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future< StatusOr> StartInstance( google::cloud::baremetalsolution::v2::StartInstanceRequest const& request); + virtual StatusOr StartInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::baremetalsolution::v2::StartInstanceRequest const& + request); + + virtual future< + StatusOr> + StartInstance(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future< StatusOr> StopInstance( google::cloud::baremetalsolution::v2::StopInstanceRequest const& request); + virtual StatusOr StopInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::baremetalsolution::v2::StopInstanceRequest const& request); + + virtual future< + StatusOr> + StopInstance(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> EnableInteractiveSerialConsole( google::cloud::baremetalsolution::v2:: EnableInteractiveSerialConsoleRequest const& request); + virtual StatusOr + EnableInteractiveSerialConsole( + ExperimentalTag, NoAwaitTag, + google::cloud::baremetalsolution::v2:: + EnableInteractiveSerialConsoleRequest const& request); + + virtual future> + EnableInteractiveSerialConsole( + ExperimentalTag, google::longrunning::Operation const& operation); + virtual future> DisableInteractiveSerialConsole( google::cloud::baremetalsolution::v2:: DisableInteractiveSerialConsoleRequest const& request); + virtual StatusOr + DisableInteractiveSerialConsole( + ExperimentalTag, NoAwaitTag, + google::cloud::baremetalsolution::v2:: + DisableInteractiveSerialConsoleRequest const& request); + + virtual future> + DisableInteractiveSerialConsole( + ExperimentalTag, google::longrunning::Operation const& operation); + virtual future> DetachLun( google::cloud::baremetalsolution::v2::DetachLunRequest const& request); + virtual StatusOr DetachLun( + ExperimentalTag, NoAwaitTag, + google::cloud::baremetalsolution::v2::DetachLunRequest const& request); + + virtual future> + DetachLun(ExperimentalTag, google::longrunning::Operation const& operation); + virtual StreamRange ListSSHKeys( google::cloud::baremetalsolution::v2::ListSSHKeysRequest request); @@ -256,6 +325,14 @@ class BareMetalSolutionConnection { UpdateVolume( google::cloud::baremetalsolution::v2::UpdateVolumeRequest const& request); + virtual StatusOr UpdateVolume( + ExperimentalTag, NoAwaitTag, + google::cloud::baremetalsolution::v2::UpdateVolumeRequest const& request); + + virtual future> + UpdateVolume(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StatusOr RenameVolume( google::cloud::baremetalsolution::v2::RenameVolumeRequest const& request); @@ -264,10 +341,26 @@ class BareMetalSolutionConnection { EvictVolume( google::cloud::baremetalsolution::v2::EvictVolumeRequest const& request); + virtual StatusOr EvictVolume( + ExperimentalTag, NoAwaitTag, + google::cloud::baremetalsolution::v2::EvictVolumeRequest const& request); + + virtual future< + StatusOr> + EvictVolume(ExperimentalTag, google::longrunning::Operation const& operation); + virtual future> ResizeVolume( google::cloud::baremetalsolution::v2::ResizeVolumeRequest const& request); + virtual StatusOr ResizeVolume( + ExperimentalTag, NoAwaitTag, + google::cloud::baremetalsolution::v2::ResizeVolumeRequest const& request); + + virtual future> + ResizeVolume(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StreamRange ListNetworks( google::cloud::baremetalsolution::v2::ListNetworksRequest request); @@ -286,6 +379,15 @@ class BareMetalSolutionConnection { google::cloud::baremetalsolution::v2::UpdateNetworkRequest const& request); + virtual StatusOr UpdateNetwork( + ExperimentalTag, NoAwaitTag, + google::cloud::baremetalsolution::v2::UpdateNetworkRequest const& + request); + + virtual future> + UpdateNetwork(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StatusOr CreateVolumeSnapshot( google::cloud::baremetalsolution::v2::CreateVolumeSnapshotRequest const& @@ -296,6 +398,15 @@ class BareMetalSolutionConnection { google::cloud::baremetalsolution::v2::RestoreVolumeSnapshotRequest const& request); + virtual StatusOr RestoreVolumeSnapshot( + ExperimentalTag, NoAwaitTag, + google::cloud::baremetalsolution::v2::RestoreVolumeSnapshotRequest const& + request); + + virtual future> + RestoreVolumeSnapshot(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual Status DeleteVolumeSnapshot( google::cloud::baremetalsolution::v2::DeleteVolumeSnapshotRequest const& request); @@ -320,6 +431,14 @@ class BareMetalSolutionConnection { EvictLun( google::cloud::baremetalsolution::v2::EvictLunRequest const& request); + virtual StatusOr EvictLun( + ExperimentalTag, NoAwaitTag, + google::cloud::baremetalsolution::v2::EvictLunRequest const& request); + + virtual future< + StatusOr> + EvictLun(ExperimentalTag, google::longrunning::Operation const& operation); + virtual StatusOr GetNfsShare( google::cloud::baremetalsolution::v2::GetNfsShareRequest const& request); @@ -332,11 +451,29 @@ class BareMetalSolutionConnection { google::cloud::baremetalsolution::v2::UpdateNfsShareRequest const& request); + virtual StatusOr UpdateNfsShare( + ExperimentalTag, NoAwaitTag, + google::cloud::baremetalsolution::v2::UpdateNfsShareRequest const& + request); + + virtual future> + UpdateNfsShare(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> CreateNfsShare( google::cloud::baremetalsolution::v2::CreateNfsShareRequest const& request); + virtual StatusOr CreateNfsShare( + ExperimentalTag, NoAwaitTag, + google::cloud::baremetalsolution::v2::CreateNfsShareRequest const& + request); + + virtual future> + CreateNfsShare(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StatusOr RenameNfsShare( google::cloud::baremetalsolution::v2::RenameNfsShareRequest const& @@ -348,6 +485,16 @@ class BareMetalSolutionConnection { google::cloud::baremetalsolution::v2::DeleteNfsShareRequest const& request); + virtual StatusOr DeleteNfsShare( + ExperimentalTag, NoAwaitTag, + google::cloud::baremetalsolution::v2::DeleteNfsShareRequest const& + request); + + virtual future< + StatusOr> + DeleteNfsShare(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StreamRange ListProvisioningQuotas( google::cloud::baremetalsolution::v2::ListProvisioningQuotasRequest diff --git a/google/cloud/baremetalsolution/v2/internal/bare_metal_solution_connection_impl.cc b/google/cloud/baremetalsolution/v2/internal/bare_metal_solution_connection_impl.cc index 041f64832f353..e9dc046e99ed7 100644 --- a/google/cloud/baremetalsolution/v2/internal/bare_metal_solution_connection_impl.cc +++ b/google/cloud/baremetalsolution/v2/internal/bare_metal_solution_connection_impl.cc @@ -163,6 +163,61 @@ BareMetalSolutionConnectionImpl::UpdateInstance( polling_policy(*current), __func__); } +StatusOr +BareMetalSolutionConnectionImpl::UpdateInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::baremetalsolution::v2::UpdateInstanceRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UpdateInstance(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::baremetalsolution::v2::UpdateInstanceRequest const& + request) { + return stub_->UpdateInstance(context, options, request); + }, + *current, request, __func__); +} + +future> +BareMetalSolutionConnectionImpl::UpdateInstance( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to UpdateInstance", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::baremetalsolution::v2::Instance>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::baremetalsolution::v2::Instance>, + polling_policy(*current), __func__); +} + StatusOr BareMetalSolutionConnectionImpl::RenameInstance( google::cloud::baremetalsolution::v2::RenameInstanceRequest const& @@ -219,6 +274,60 @@ BareMetalSolutionConnectionImpl::ResetInstance( polling_policy(*current), __func__); } +StatusOr +BareMetalSolutionConnectionImpl::ResetInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::baremetalsolution::v2::ResetInstanceRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->ResetInstance(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::baremetalsolution::v2::ResetInstanceRequest const& + request) { + return stub_->ResetInstance(context, options, request); + }, + *current, request, __func__); +} + +future> +BareMetalSolutionConnectionImpl::ResetInstance( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to ResetInstance", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::baremetalsolution::v2::ResetInstanceResponse>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::baremetalsolution::v2::ResetInstanceResponse>, + polling_policy(*current), __func__); +} + future> BareMetalSolutionConnectionImpl::StartInstance( google::cloud::baremetalsolution::v2::StartInstanceRequest const& request) { @@ -259,6 +368,60 @@ BareMetalSolutionConnectionImpl::StartInstance( polling_policy(*current), __func__); } +StatusOr +BareMetalSolutionConnectionImpl::StartInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::baremetalsolution::v2::StartInstanceRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->StartInstance(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::baremetalsolution::v2::StartInstanceRequest const& + request) { + return stub_->StartInstance(context, options, request); + }, + *current, request, __func__); +} + +future> +BareMetalSolutionConnectionImpl::StartInstance( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to StartInstance", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::baremetalsolution::v2::StartInstanceResponse>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::baremetalsolution::v2::StartInstanceResponse>, + polling_policy(*current), __func__); +} + future> BareMetalSolutionConnectionImpl::StopInstance( google::cloud::baremetalsolution::v2::StopInstanceRequest const& request) { @@ -299,6 +462,60 @@ BareMetalSolutionConnectionImpl::StopInstance( polling_policy(*current), __func__); } +StatusOr +BareMetalSolutionConnectionImpl::StopInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::baremetalsolution::v2::StopInstanceRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->StopInstance(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::baremetalsolution::v2::StopInstanceRequest const& + request) { + return stub_->StopInstance(context, options, request); + }, + *current, request, __func__); +} + +future> +BareMetalSolutionConnectionImpl::StopInstance( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to StopInstance", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::baremetalsolution::v2::StopInstanceResponse>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::baremetalsolution::v2::StopInstanceResponse>, + polling_policy(*current), __func__); +} + future> BareMetalSolutionConnectionImpl::EnableInteractiveSerialConsole( @@ -343,6 +560,65 @@ BareMetalSolutionConnectionImpl::EnableInteractiveSerialConsole( polling_policy(*current), __func__); } +StatusOr +BareMetalSolutionConnectionImpl::EnableInteractiveSerialConsole( + ExperimentalTag, NoAwaitTag, + google::cloud::baremetalsolution::v2:: + EnableInteractiveSerialConsoleRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->EnableInteractiveSerialConsole(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::baremetalsolution::v2:: + EnableInteractiveSerialConsoleRequest const& request) { + return stub_->EnableInteractiveSerialConsole(context, options, request); + }, + *current, request, __func__); +} + +future> +BareMetalSolutionConnectionImpl::EnableInteractiveSerialConsole( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to EnableInteractiveSerialConsole", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::baremetalsolution::v2:: + EnableInteractiveSerialConsoleResponse>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::baremetalsolution::v2:: + EnableInteractiveSerialConsoleResponse>, + polling_policy(*current), __func__); +} + future> BareMetalSolutionConnectionImpl::DisableInteractiveSerialConsole( @@ -388,6 +664,66 @@ BareMetalSolutionConnectionImpl::DisableInteractiveSerialConsole( polling_policy(*current), __func__); } +StatusOr +BareMetalSolutionConnectionImpl::DisableInteractiveSerialConsole( + ExperimentalTag, NoAwaitTag, + google::cloud::baremetalsolution::v2:: + DisableInteractiveSerialConsoleRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DisableInteractiveSerialConsole(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::baremetalsolution::v2:: + DisableInteractiveSerialConsoleRequest const& request) { + return stub_->DisableInteractiveSerialConsole(context, options, + request); + }, + *current, request, __func__); +} + +future> +BareMetalSolutionConnectionImpl::DisableInteractiveSerialConsole( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DisableInteractiveSerialConsole", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::baremetalsolution::v2:: + DisableInteractiveSerialConsoleResponse>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::baremetalsolution::v2:: + DisableInteractiveSerialConsoleResponse>, + polling_policy(*current), __func__); +} + future> BareMetalSolutionConnectionImpl::DetachLun( google::cloud::baremetalsolution::v2::DetachLunRequest const& request) { @@ -427,6 +763,60 @@ BareMetalSolutionConnectionImpl::DetachLun( polling_policy(*current), __func__); } +StatusOr +BareMetalSolutionConnectionImpl::DetachLun( + ExperimentalTag, NoAwaitTag, + google::cloud::baremetalsolution::v2::DetachLunRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DetachLun(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::baremetalsolution::v2::DetachLunRequest const& + request) { + return stub_->DetachLun(context, options, request); + }, + *current, request, __func__); +} + +future> +BareMetalSolutionConnectionImpl::DetachLun( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DetachLun", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::baremetalsolution::v2::Instance>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::baremetalsolution::v2::Instance>, + polling_policy(*current), __func__); +} + StreamRange BareMetalSolutionConnectionImpl::ListSSHKeys( google::cloud::baremetalsolution::v2::ListSSHKeysRequest request) { @@ -583,6 +973,60 @@ BareMetalSolutionConnectionImpl::UpdateVolume( polling_policy(*current), __func__); } +StatusOr +BareMetalSolutionConnectionImpl::UpdateVolume( + ExperimentalTag, NoAwaitTag, + google::cloud::baremetalsolution::v2::UpdateVolumeRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UpdateVolume(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::baremetalsolution::v2::UpdateVolumeRequest const& + request) { + return stub_->UpdateVolume(context, options, request); + }, + *current, request, __func__); +} + +future> +BareMetalSolutionConnectionImpl::UpdateVolume( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to UpdateVolume", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::baremetalsolution::v2::Volume>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::baremetalsolution::v2::Volume>, + polling_policy(*current), __func__); +} + StatusOr BareMetalSolutionConnectionImpl::RenameVolume( google::cloud::baremetalsolution::v2::RenameVolumeRequest const& request) { @@ -614,8 +1058,102 @@ BareMetalSolutionConnectionImpl::EvictVolume( google::cloud::internal::ImmutableOptions options, google::cloud::baremetalsolution::v2::EvictVolumeRequest const& request) { - return stub->AsyncEvictVolume(cq, std::move(context), - std::move(options), request); + return stub->AsyncEvictVolume(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::cloud::baremetalsolution::v2::OperationMetadata>, + retry_policy(*current), backoff_policy(*current), idempotent, + polling_policy(*current), __func__); +} + +StatusOr +BareMetalSolutionConnectionImpl::EvictVolume( + ExperimentalTag, NoAwaitTag, + google::cloud::baremetalsolution::v2::EvictVolumeRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->EvictVolume(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::baremetalsolution::v2::EvictVolumeRequest const& + request) { + return stub_->EvictVolume(context, options, request); + }, + *current, request, __func__); +} + +future> +BareMetalSolutionConnectionImpl::EvictVolume( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to EvictVolume", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::baremetalsolution::v2::OperationMetadata>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::cloud::baremetalsolution::v2::OperationMetadata>, + polling_policy(*current), __func__); +} + +future> +BareMetalSolutionConnectionImpl::ResizeVolume( + google::cloud::baremetalsolution::v2::ResizeVolumeRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + auto request_copy = request; + auto const idempotent = + idempotency_policy(*current)->ResizeVolume(request_copy); + return google::cloud::internal::AsyncLongRunningOperation< + google::cloud::baremetalsolution::v2::Volume>( + background_->cq(), current, std::move(request_copy), + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::baremetalsolution::v2::ResizeVolumeRequest const& + request) { + return stub->AsyncResizeVolume(cq, std::move(context), + std::move(options), request); }, [stub = stub_](google::cloud::CompletionQueue& cq, std::shared_ptr context, @@ -632,31 +1170,46 @@ BareMetalSolutionConnectionImpl::EvictVolume( return stub->AsyncCancelOperation(cq, std::move(context), std::move(options), request); }, - &google::cloud::internal::ExtractLongRunningResultMetadata< - google::cloud::baremetalsolution::v2::OperationMetadata>, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::baremetalsolution::v2::Volume>, retry_policy(*current), backoff_policy(*current), idempotent, polling_policy(*current), __func__); } -future> +StatusOr BareMetalSolutionConnectionImpl::ResizeVolume( + ExperimentalTag, NoAwaitTag, google::cloud::baremetalsolution::v2::ResizeVolumeRequest const& request) { auto current = google::cloud::internal::SaveCurrentOptions(); - auto request_copy = request; - auto const idempotent = - idempotency_policy(*current)->ResizeVolume(request_copy); - return google::cloud::internal::AsyncLongRunningOperation< - google::cloud::baremetalsolution::v2::Volume>( - background_->cq(), current, std::move(request_copy), - [stub = stub_]( - google::cloud::CompletionQueue& cq, - std::shared_ptr context, - google::cloud::internal::ImmutableOptions options, - google::cloud::baremetalsolution::v2::ResizeVolumeRequest const& - request) { - return stub->AsyncResizeVolume(cq, std::move(context), - std::move(options), request); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->ResizeVolume(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::baremetalsolution::v2::ResizeVolumeRequest const& + request) { + return stub_->ResizeVolume(context, options, request); }, + *current, request, __func__); +} + +future> +BareMetalSolutionConnectionImpl::ResizeVolume( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to ResizeVolume", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::baremetalsolution::v2::Volume>( + background_->cq(), current, operation, [stub = stub_](google::cloud::CompletionQueue& cq, std::shared_ptr context, google::cloud::internal::ImmutableOptions options, @@ -674,7 +1227,6 @@ BareMetalSolutionConnectionImpl::ResizeVolume( }, &google::cloud::internal::ExtractLongRunningResultResponse< google::cloud::baremetalsolution::v2::Volume>, - retry_policy(*current), backoff_policy(*current), idempotent, polling_policy(*current), __func__); } @@ -786,6 +1338,60 @@ BareMetalSolutionConnectionImpl::UpdateNetwork( polling_policy(*current), __func__); } +StatusOr +BareMetalSolutionConnectionImpl::UpdateNetwork( + ExperimentalTag, NoAwaitTag, + google::cloud::baremetalsolution::v2::UpdateNetworkRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UpdateNetwork(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::baremetalsolution::v2::UpdateNetworkRequest const& + request) { + return stub_->UpdateNetwork(context, options, request); + }, + *current, request, __func__); +} + +future> +BareMetalSolutionConnectionImpl::UpdateNetwork( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to UpdateNetwork", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::baremetalsolution::v2::Network>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::baremetalsolution::v2::Network>, + polling_policy(*current), __func__); +} + StatusOr BareMetalSolutionConnectionImpl::CreateVolumeSnapshot( google::cloud::baremetalsolution::v2::CreateVolumeSnapshotRequest const& @@ -842,6 +1448,61 @@ BareMetalSolutionConnectionImpl::RestoreVolumeSnapshot( polling_policy(*current), __func__); } +StatusOr +BareMetalSolutionConnectionImpl::RestoreVolumeSnapshot( + ExperimentalTag, NoAwaitTag, + google::cloud::baremetalsolution::v2::RestoreVolumeSnapshotRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->RestoreVolumeSnapshot(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::baremetalsolution::v2:: + RestoreVolumeSnapshotRequest const& request) { + return stub_->RestoreVolumeSnapshot(context, options, request); + }, + *current, request, __func__); +} + +future> +BareMetalSolutionConnectionImpl::RestoreVolumeSnapshot( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to RestoreVolumeSnapshot", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::baremetalsolution::v2::VolumeSnapshot>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::baremetalsolution::v2::VolumeSnapshot>, + polling_policy(*current), __func__); +} + Status BareMetalSolutionConnectionImpl::DeleteVolumeSnapshot( google::cloud::baremetalsolution::v2::DeleteVolumeSnapshotRequest const& request) { @@ -998,6 +1659,60 @@ BareMetalSolutionConnectionImpl::EvictLun( polling_policy(*current), __func__); } +StatusOr +BareMetalSolutionConnectionImpl::EvictLun( + ExperimentalTag, NoAwaitTag, + google::cloud::baremetalsolution::v2::EvictLunRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->EvictLun(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::baremetalsolution::v2::EvictLunRequest const& + request) { + return stub_->EvictLun(context, options, request); + }, + *current, request, __func__); +} + +future> +BareMetalSolutionConnectionImpl::EvictLun( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to EvictLun", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::baremetalsolution::v2::OperationMetadata>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::cloud::baremetalsolution::v2::OperationMetadata>, + polling_policy(*current), __func__); +} + StatusOr BareMetalSolutionConnectionImpl::GetNfsShare( google::cloud::baremetalsolution::v2::GetNfsShareRequest const& request) { @@ -1089,6 +1804,61 @@ BareMetalSolutionConnectionImpl::UpdateNfsShare( polling_policy(*current), __func__); } +StatusOr +BareMetalSolutionConnectionImpl::UpdateNfsShare( + ExperimentalTag, NoAwaitTag, + google::cloud::baremetalsolution::v2::UpdateNfsShareRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UpdateNfsShare(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::baremetalsolution::v2::UpdateNfsShareRequest const& + request) { + return stub_->UpdateNfsShare(context, options, request); + }, + *current, request, __func__); +} + +future> +BareMetalSolutionConnectionImpl::UpdateNfsShare( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to UpdateNfsShare", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::baremetalsolution::v2::NfsShare>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::baremetalsolution::v2::NfsShare>, + polling_policy(*current), __func__); +} + future> BareMetalSolutionConnectionImpl::CreateNfsShare( google::cloud::baremetalsolution::v2::CreateNfsShareRequest const& @@ -1130,6 +1900,61 @@ BareMetalSolutionConnectionImpl::CreateNfsShare( polling_policy(*current), __func__); } +StatusOr +BareMetalSolutionConnectionImpl::CreateNfsShare( + ExperimentalTag, NoAwaitTag, + google::cloud::baremetalsolution::v2::CreateNfsShareRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateNfsShare(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::baremetalsolution::v2::CreateNfsShareRequest const& + request) { + return stub_->CreateNfsShare(context, options, request); + }, + *current, request, __func__); +} + +future> +BareMetalSolutionConnectionImpl::CreateNfsShare( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to CreateNfsShare", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::baremetalsolution::v2::NfsShare>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::baremetalsolution::v2::NfsShare>, + polling_policy(*current), __func__); +} + StatusOr BareMetalSolutionConnectionImpl::RenameNfsShare( google::cloud::baremetalsolution::v2::RenameNfsShareRequest const& @@ -1187,6 +2012,61 @@ BareMetalSolutionConnectionImpl::DeleteNfsShare( polling_policy(*current), __func__); } +StatusOr +BareMetalSolutionConnectionImpl::DeleteNfsShare( + ExperimentalTag, NoAwaitTag, + google::cloud::baremetalsolution::v2::DeleteNfsShareRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteNfsShare(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::baremetalsolution::v2::DeleteNfsShareRequest const& + request) { + return stub_->DeleteNfsShare(context, options, request); + }, + *current, request, __func__); +} + +future> +BareMetalSolutionConnectionImpl::DeleteNfsShare( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteNfsShare", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::baremetalsolution::v2::OperationMetadata>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::cloud::baremetalsolution::v2::OperationMetadata>, + polling_policy(*current), __func__); +} + StreamRange BareMetalSolutionConnectionImpl::ListProvisioningQuotas( google::cloud::baremetalsolution::v2::ListProvisioningQuotasRequest diff --git a/google/cloud/baremetalsolution/v2/internal/bare_metal_solution_connection_impl.h b/google/cloud/baremetalsolution/v2/internal/bare_metal_solution_connection_impl.h index 2695c2c2852bd..0b9938d288875 100644 --- a/google/cloud/baremetalsolution/v2/internal/bare_metal_solution_connection_impl.h +++ b/google/cloud/baremetalsolution/v2/internal/bare_metal_solution_connection_impl.h @@ -66,6 +66,15 @@ class BareMetalSolutionConnectionImpl google::cloud::baremetalsolution::v2::UpdateInstanceRequest const& request) override; + StatusOr UpdateInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::baremetalsolution::v2::UpdateInstanceRequest const& + request) override; + + future> + UpdateInstance(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr RenameInstance( google::cloud::baremetalsolution::v2::RenameInstanceRequest const& request) override; @@ -75,31 +84,89 @@ class BareMetalSolutionConnectionImpl google::cloud::baremetalsolution::v2::ResetInstanceRequest const& request) override; + StatusOr ResetInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::baremetalsolution::v2::ResetInstanceRequest const& request) + override; + + future> + ResetInstance(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> StartInstance( google::cloud::baremetalsolution::v2::StartInstanceRequest const& request) override; + StatusOr StartInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::baremetalsolution::v2::StartInstanceRequest const& request) + override; + + future> + StartInstance(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> StopInstance(google::cloud::baremetalsolution::v2::StopInstanceRequest const& request) override; + StatusOr StopInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::baremetalsolution::v2::StopInstanceRequest const& request) + override; + + future> + StopInstance(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> EnableInteractiveSerialConsole( google::cloud::baremetalsolution::v2:: EnableInteractiveSerialConsoleRequest const& request) override; + StatusOr EnableInteractiveSerialConsole( + ExperimentalTag, NoAwaitTag, + google::cloud::baremetalsolution::v2:: + EnableInteractiveSerialConsoleRequest const& request) override; + + future> + EnableInteractiveSerialConsole( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DisableInteractiveSerialConsole( google::cloud::baremetalsolution::v2:: DisableInteractiveSerialConsoleRequest const& request) override; + StatusOr DisableInteractiveSerialConsole( + ExperimentalTag, NoAwaitTag, + google::cloud::baremetalsolution::v2:: + DisableInteractiveSerialConsoleRequest const& request) override; + + future> + DisableInteractiveSerialConsole( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DetachLun( google::cloud::baremetalsolution::v2::DetachLunRequest const& request) override; + StatusOr DetachLun( + ExperimentalTag, NoAwaitTag, + google::cloud::baremetalsolution::v2::DetachLunRequest const& request) + override; + + future> DetachLun( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListSSHKeys( google::cloud::baremetalsolution::v2::ListSSHKeysRequest request) override; @@ -124,6 +191,15 @@ class BareMetalSolutionConnectionImpl google::cloud::baremetalsolution::v2::UpdateVolumeRequest const& request) override; + StatusOr UpdateVolume( + ExperimentalTag, NoAwaitTag, + google::cloud::baremetalsolution::v2::UpdateVolumeRequest const& request) + override; + + future> UpdateVolume( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr RenameVolume( google::cloud::baremetalsolution::v2::RenameVolumeRequest const& request) override; @@ -132,10 +208,28 @@ class BareMetalSolutionConnectionImpl EvictVolume(google::cloud::baremetalsolution::v2::EvictVolumeRequest const& request) override; + StatusOr EvictVolume( + ExperimentalTag, NoAwaitTag, + google::cloud::baremetalsolution::v2::EvictVolumeRequest const& request) + override; + + future> + EvictVolume(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ResizeVolume( google::cloud::baremetalsolution::v2::ResizeVolumeRequest const& request) override; + StatusOr ResizeVolume( + ExperimentalTag, NoAwaitTag, + google::cloud::baremetalsolution::v2::ResizeVolumeRequest const& request) + override; + + future> ResizeVolume( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListNetworks( google::cloud::baremetalsolution::v2::ListNetworksRequest request) override; @@ -153,6 +247,15 @@ class BareMetalSolutionConnectionImpl google::cloud::baremetalsolution::v2::UpdateNetworkRequest const& request) override; + StatusOr UpdateNetwork( + ExperimentalTag, NoAwaitTag, + google::cloud::baremetalsolution::v2::UpdateNetworkRequest const& request) + override; + + future> UpdateNetwork( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr CreateVolumeSnapshot( google::cloud::baremetalsolution::v2::CreateVolumeSnapshotRequest const& @@ -163,6 +266,16 @@ class BareMetalSolutionConnectionImpl google::cloud::baremetalsolution::v2::RestoreVolumeSnapshotRequest const& request) override; + StatusOr RestoreVolumeSnapshot( + ExperimentalTag, NoAwaitTag, + google::cloud::baremetalsolution::v2::RestoreVolumeSnapshotRequest const& + request) override; + + future> + RestoreVolumeSnapshot( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + Status DeleteVolumeSnapshot( google::cloud::baremetalsolution::v2::DeleteVolumeSnapshotRequest const& request) override; @@ -188,6 +301,15 @@ class BareMetalSolutionConnectionImpl EvictLun(google::cloud::baremetalsolution::v2::EvictLunRequest const& request) override; + StatusOr EvictLun( + ExperimentalTag, NoAwaitTag, + google::cloud::baremetalsolution::v2::EvictLunRequest const& request) + override; + + future> + EvictLun(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetNfsShare( google::cloud::baremetalsolution::v2::GetNfsShareRequest const& request) override; @@ -201,11 +323,29 @@ class BareMetalSolutionConnectionImpl google::cloud::baremetalsolution::v2::UpdateNfsShareRequest const& request) override; + StatusOr UpdateNfsShare( + ExperimentalTag, NoAwaitTag, + google::cloud::baremetalsolution::v2::UpdateNfsShareRequest const& + request) override; + + future> + UpdateNfsShare(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> CreateNfsShare( google::cloud::baremetalsolution::v2::CreateNfsShareRequest const& request) override; + StatusOr CreateNfsShare( + ExperimentalTag, NoAwaitTag, + google::cloud::baremetalsolution::v2::CreateNfsShareRequest const& + request) override; + + future> + CreateNfsShare(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr RenameNfsShare( google::cloud::baremetalsolution::v2::RenameNfsShareRequest const& request) override; @@ -215,6 +355,15 @@ class BareMetalSolutionConnectionImpl google::cloud::baremetalsolution::v2::DeleteNfsShareRequest const& request) override; + StatusOr DeleteNfsShare( + ExperimentalTag, NoAwaitTag, + google::cloud::baremetalsolution::v2::DeleteNfsShareRequest const& + request) override; + + future> + DeleteNfsShare(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListProvisioningQuotas( google::cloud::baremetalsolution::v2::ListProvisioningQuotasRequest diff --git a/google/cloud/baremetalsolution/v2/internal/bare_metal_solution_tracing_connection.cc b/google/cloud/baremetalsolution/v2/internal/bare_metal_solution_tracing_connection.cc index 8f80fa8ad6006..f24ce36d75765 100644 --- a/google/cloud/baremetalsolution/v2/internal/bare_metal_solution_tracing_connection.cc +++ b/google/cloud/baremetalsolution/v2/internal/bare_metal_solution_tracing_connection.cc @@ -64,6 +64,28 @@ BareMetalSolutionTracingConnection::UpdateInstance( return internal::EndSpan(std::move(span), child_->UpdateInstance(request)); } +StatusOr +BareMetalSolutionTracingConnection::UpdateInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::baremetalsolution::v2::UpdateInstanceRequest const& + request) { + auto span = internal::MakeSpan( + "baremetalsolution_v2::BareMetalSolutionConnection::UpdateInstance"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->UpdateInstance(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +BareMetalSolutionTracingConnection::UpdateInstance( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "baremetalsolution_v2::BareMetalSolutionConnection::UpdateInstance"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->UpdateInstance(ExperimentalTag{}, operation)); +} + StatusOr BareMetalSolutionTracingConnection::RenameInstance( google::cloud::baremetalsolution::v2::RenameInstanceRequest const& @@ -83,6 +105,27 @@ BareMetalSolutionTracingConnection::ResetInstance( return internal::EndSpan(std::move(span), child_->ResetInstance(request)); } +StatusOr +BareMetalSolutionTracingConnection::ResetInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::baremetalsolution::v2::ResetInstanceRequest const& request) { + auto span = internal::MakeSpan( + "baremetalsolution_v2::BareMetalSolutionConnection::ResetInstance"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->ResetInstance(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +BareMetalSolutionTracingConnection::ResetInstance( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "baremetalsolution_v2::BareMetalSolutionConnection::ResetInstance"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->ResetInstance(ExperimentalTag{}, operation)); +} + future> BareMetalSolutionTracingConnection::StartInstance( google::cloud::baremetalsolution::v2::StartInstanceRequest const& request) { @@ -92,6 +135,27 @@ BareMetalSolutionTracingConnection::StartInstance( return internal::EndSpan(std::move(span), child_->StartInstance(request)); } +StatusOr +BareMetalSolutionTracingConnection::StartInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::baremetalsolution::v2::StartInstanceRequest const& request) { + auto span = internal::MakeSpan( + "baremetalsolution_v2::BareMetalSolutionConnection::StartInstance"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->StartInstance(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +BareMetalSolutionTracingConnection::StartInstance( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "baremetalsolution_v2::BareMetalSolutionConnection::StartInstance"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->StartInstance(ExperimentalTag{}, operation)); +} + future> BareMetalSolutionTracingConnection::StopInstance( google::cloud::baremetalsolution::v2::StopInstanceRequest const& request) { @@ -101,6 +165,27 @@ BareMetalSolutionTracingConnection::StopInstance( return internal::EndSpan(std::move(span), child_->StopInstance(request)); } +StatusOr +BareMetalSolutionTracingConnection::StopInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::baremetalsolution::v2::StopInstanceRequest const& request) { + auto span = internal::MakeSpan( + "baremetalsolution_v2::BareMetalSolutionConnection::StopInstance"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->StopInstance(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +BareMetalSolutionTracingConnection::StopInstance( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "baremetalsolution_v2::BareMetalSolutionConnection::StopInstance"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->StopInstance(ExperimentalTag{}, operation)); +} + future> BareMetalSolutionTracingConnection::EnableInteractiveSerialConsole( @@ -114,6 +199,33 @@ BareMetalSolutionTracingConnection::EnableInteractiveSerialConsole( child_->EnableInteractiveSerialConsole(request)); } +StatusOr +BareMetalSolutionTracingConnection::EnableInteractiveSerialConsole( + ExperimentalTag, NoAwaitTag, + google::cloud::baremetalsolution::v2:: + EnableInteractiveSerialConsoleRequest const& request) { + auto span = internal::MakeSpan( + "baremetalsolution_v2::BareMetalSolutionConnection::" + "EnableInteractiveSerialConsole"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->EnableInteractiveSerialConsole(ExperimentalTag{}, + NoAwaitTag{}, request)); +} + +future> +BareMetalSolutionTracingConnection::EnableInteractiveSerialConsole( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "baremetalsolution_v2::BareMetalSolutionConnection::" + "EnableInteractiveSerialConsole"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), + child_->EnableInteractiveSerialConsole(ExperimentalTag{}, operation)); +} + future> BareMetalSolutionTracingConnection::DisableInteractiveSerialConsole( @@ -127,6 +239,33 @@ BareMetalSolutionTracingConnection::DisableInteractiveSerialConsole( child_->DisableInteractiveSerialConsole(request)); } +StatusOr +BareMetalSolutionTracingConnection::DisableInteractiveSerialConsole( + ExperimentalTag, NoAwaitTag, + google::cloud::baremetalsolution::v2:: + DisableInteractiveSerialConsoleRequest const& request) { + auto span = internal::MakeSpan( + "baremetalsolution_v2::BareMetalSolutionConnection::" + "DisableInteractiveSerialConsole"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->DisableInteractiveSerialConsole(ExperimentalTag{}, + NoAwaitTag{}, request)); +} + +future> +BareMetalSolutionTracingConnection::DisableInteractiveSerialConsole( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "baremetalsolution_v2::BareMetalSolutionConnection::" + "DisableInteractiveSerialConsole"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), + child_->DisableInteractiveSerialConsole(ExperimentalTag{}, operation)); +} + future> BareMetalSolutionTracingConnection::DetachLun( google::cloud::baremetalsolution::v2::DetachLunRequest const& request) { @@ -136,6 +275,27 @@ BareMetalSolutionTracingConnection::DetachLun( return internal::EndSpan(std::move(span), child_->DetachLun(request)); } +StatusOr +BareMetalSolutionTracingConnection::DetachLun( + ExperimentalTag, NoAwaitTag, + google::cloud::baremetalsolution::v2::DetachLunRequest const& request) { + auto span = internal::MakeSpan( + "baremetalsolution_v2::BareMetalSolutionConnection::DetachLun"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->DetachLun(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +BareMetalSolutionTracingConnection::DetachLun( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "baremetalsolution_v2::BareMetalSolutionConnection::DetachLun"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->DetachLun(ExperimentalTag{}, operation)); +} + StreamRange BareMetalSolutionTracingConnection::ListSSHKeys( google::cloud::baremetalsolution::v2::ListSSHKeysRequest request) { @@ -195,6 +355,27 @@ BareMetalSolutionTracingConnection::UpdateVolume( return internal::EndSpan(std::move(span), child_->UpdateVolume(request)); } +StatusOr +BareMetalSolutionTracingConnection::UpdateVolume( + ExperimentalTag, NoAwaitTag, + google::cloud::baremetalsolution::v2::UpdateVolumeRequest const& request) { + auto span = internal::MakeSpan( + "baremetalsolution_v2::BareMetalSolutionConnection::UpdateVolume"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->UpdateVolume(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +BareMetalSolutionTracingConnection::UpdateVolume( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "baremetalsolution_v2::BareMetalSolutionConnection::UpdateVolume"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->UpdateVolume(ExperimentalTag{}, operation)); +} + StatusOr BareMetalSolutionTracingConnection::RenameVolume( google::cloud::baremetalsolution::v2::RenameVolumeRequest const& request) { @@ -213,6 +394,27 @@ BareMetalSolutionTracingConnection::EvictVolume( return internal::EndSpan(std::move(span), child_->EvictVolume(request)); } +StatusOr +BareMetalSolutionTracingConnection::EvictVolume( + ExperimentalTag, NoAwaitTag, + google::cloud::baremetalsolution::v2::EvictVolumeRequest const& request) { + auto span = internal::MakeSpan( + "baremetalsolution_v2::BareMetalSolutionConnection::EvictVolume"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->EvictVolume(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +BareMetalSolutionTracingConnection::EvictVolume( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "baremetalsolution_v2::BareMetalSolutionConnection::EvictVolume"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->EvictVolume(ExperimentalTag{}, operation)); +} + future> BareMetalSolutionTracingConnection::ResizeVolume( google::cloud::baremetalsolution::v2::ResizeVolumeRequest const& request) { @@ -222,6 +424,27 @@ BareMetalSolutionTracingConnection::ResizeVolume( return internal::EndSpan(std::move(span), child_->ResizeVolume(request)); } +StatusOr +BareMetalSolutionTracingConnection::ResizeVolume( + ExperimentalTag, NoAwaitTag, + google::cloud::baremetalsolution::v2::ResizeVolumeRequest const& request) { + auto span = internal::MakeSpan( + "baremetalsolution_v2::BareMetalSolutionConnection::ResizeVolume"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->ResizeVolume(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +BareMetalSolutionTracingConnection::ResizeVolume( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "baremetalsolution_v2::BareMetalSolutionConnection::ResizeVolume"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->ResizeVolume(ExperimentalTag{}, operation)); +} + StreamRange BareMetalSolutionTracingConnection::ListNetworks( google::cloud::baremetalsolution::v2::ListNetworksRequest request) { @@ -262,6 +485,27 @@ BareMetalSolutionTracingConnection::UpdateNetwork( return internal::EndSpan(std::move(span), child_->UpdateNetwork(request)); } +StatusOr +BareMetalSolutionTracingConnection::UpdateNetwork( + ExperimentalTag, NoAwaitTag, + google::cloud::baremetalsolution::v2::UpdateNetworkRequest const& request) { + auto span = internal::MakeSpan( + "baremetalsolution_v2::BareMetalSolutionConnection::UpdateNetwork"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->UpdateNetwork(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +BareMetalSolutionTracingConnection::UpdateNetwork( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "baremetalsolution_v2::BareMetalSolutionConnection::UpdateNetwork"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->UpdateNetwork(ExperimentalTag{}, operation)); +} + StatusOr BareMetalSolutionTracingConnection::CreateVolumeSnapshot( google::cloud::baremetalsolution::v2::CreateVolumeSnapshotRequest const& @@ -285,6 +529,31 @@ BareMetalSolutionTracingConnection::RestoreVolumeSnapshot( child_->RestoreVolumeSnapshot(request)); } +StatusOr +BareMetalSolutionTracingConnection::RestoreVolumeSnapshot( + ExperimentalTag, NoAwaitTag, + google::cloud::baremetalsolution::v2::RestoreVolumeSnapshotRequest const& + request) { + auto span = internal::MakeSpan( + "baremetalsolution_v2::BareMetalSolutionConnection::" + "RestoreVolumeSnapshot"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->RestoreVolumeSnapshot(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +BareMetalSolutionTracingConnection::RestoreVolumeSnapshot( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "baremetalsolution_v2::BareMetalSolutionConnection::" + "RestoreVolumeSnapshot"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->RestoreVolumeSnapshot( + ExperimentalTag{}, operation)); +} + Status BareMetalSolutionTracingConnection::DeleteVolumeSnapshot( google::cloud::baremetalsolution::v2::DeleteVolumeSnapshotRequest const& request) { @@ -347,6 +616,27 @@ BareMetalSolutionTracingConnection::EvictLun( return internal::EndSpan(std::move(span), child_->EvictLun(request)); } +StatusOr +BareMetalSolutionTracingConnection::EvictLun( + ExperimentalTag, NoAwaitTag, + google::cloud::baremetalsolution::v2::EvictLunRequest const& request) { + auto span = internal::MakeSpan( + "baremetalsolution_v2::BareMetalSolutionConnection::EvictLun"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->EvictLun(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +BareMetalSolutionTracingConnection::EvictLun( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "baremetalsolution_v2::BareMetalSolutionConnection::EvictLun"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->EvictLun(ExperimentalTag{}, operation)); +} + StatusOr BareMetalSolutionTracingConnection::GetNfsShare( google::cloud::baremetalsolution::v2::GetNfsShareRequest const& request) { @@ -378,6 +668,28 @@ BareMetalSolutionTracingConnection::UpdateNfsShare( return internal::EndSpan(std::move(span), child_->UpdateNfsShare(request)); } +StatusOr +BareMetalSolutionTracingConnection::UpdateNfsShare( + ExperimentalTag, NoAwaitTag, + google::cloud::baremetalsolution::v2::UpdateNfsShareRequest const& + request) { + auto span = internal::MakeSpan( + "baremetalsolution_v2::BareMetalSolutionConnection::UpdateNfsShare"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->UpdateNfsShare(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +BareMetalSolutionTracingConnection::UpdateNfsShare( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "baremetalsolution_v2::BareMetalSolutionConnection::UpdateNfsShare"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->UpdateNfsShare(ExperimentalTag{}, operation)); +} + future> BareMetalSolutionTracingConnection::CreateNfsShare( google::cloud::baremetalsolution::v2::CreateNfsShareRequest const& @@ -388,6 +700,28 @@ BareMetalSolutionTracingConnection::CreateNfsShare( return internal::EndSpan(std::move(span), child_->CreateNfsShare(request)); } +StatusOr +BareMetalSolutionTracingConnection::CreateNfsShare( + ExperimentalTag, NoAwaitTag, + google::cloud::baremetalsolution::v2::CreateNfsShareRequest const& + request) { + auto span = internal::MakeSpan( + "baremetalsolution_v2::BareMetalSolutionConnection::CreateNfsShare"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->CreateNfsShare(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +BareMetalSolutionTracingConnection::CreateNfsShare( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "baremetalsolution_v2::BareMetalSolutionConnection::CreateNfsShare"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->CreateNfsShare(ExperimentalTag{}, operation)); +} + StatusOr BareMetalSolutionTracingConnection::RenameNfsShare( google::cloud::baremetalsolution::v2::RenameNfsShareRequest const& @@ -408,6 +742,28 @@ BareMetalSolutionTracingConnection::DeleteNfsShare( return internal::EndSpan(std::move(span), child_->DeleteNfsShare(request)); } +StatusOr +BareMetalSolutionTracingConnection::DeleteNfsShare( + ExperimentalTag, NoAwaitTag, + google::cloud::baremetalsolution::v2::DeleteNfsShareRequest const& + request) { + auto span = internal::MakeSpan( + "baremetalsolution_v2::BareMetalSolutionConnection::DeleteNfsShare"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->DeleteNfsShare(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +BareMetalSolutionTracingConnection::DeleteNfsShare( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "baremetalsolution_v2::BareMetalSolutionConnection::DeleteNfsShare"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->DeleteNfsShare(ExperimentalTag{}, operation)); +} + StreamRange BareMetalSolutionTracingConnection::ListProvisioningQuotas( google::cloud::baremetalsolution::v2::ListProvisioningQuotasRequest diff --git a/google/cloud/baremetalsolution/v2/internal/bare_metal_solution_tracing_connection.h b/google/cloud/baremetalsolution/v2/internal/bare_metal_solution_tracing_connection.h index 5529297a41230..01b8eb23c6f81 100644 --- a/google/cloud/baremetalsolution/v2/internal/bare_metal_solution_tracing_connection.h +++ b/google/cloud/baremetalsolution/v2/internal/bare_metal_solution_tracing_connection.h @@ -53,6 +53,15 @@ class BareMetalSolutionTracingConnection google::cloud::baremetalsolution::v2::UpdateInstanceRequest const& request) override; + StatusOr UpdateInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::baremetalsolution::v2::UpdateInstanceRequest const& + request) override; + + future> + UpdateInstance(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr RenameInstance( google::cloud::baremetalsolution::v2::RenameInstanceRequest const& request) override; @@ -62,31 +71,89 @@ class BareMetalSolutionTracingConnection google::cloud::baremetalsolution::v2::ResetInstanceRequest const& request) override; + StatusOr ResetInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::baremetalsolution::v2::ResetInstanceRequest const& request) + override; + + future> + ResetInstance(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> StartInstance( google::cloud::baremetalsolution::v2::StartInstanceRequest const& request) override; + StatusOr StartInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::baremetalsolution::v2::StartInstanceRequest const& request) + override; + + future> + StartInstance(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> StopInstance(google::cloud::baremetalsolution::v2::StopInstanceRequest const& request) override; + StatusOr StopInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::baremetalsolution::v2::StopInstanceRequest const& request) + override; + + future> + StopInstance(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> EnableInteractiveSerialConsole( google::cloud::baremetalsolution::v2:: EnableInteractiveSerialConsoleRequest const& request) override; + StatusOr EnableInteractiveSerialConsole( + ExperimentalTag, NoAwaitTag, + google::cloud::baremetalsolution::v2:: + EnableInteractiveSerialConsoleRequest const& request) override; + + future> + EnableInteractiveSerialConsole( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DisableInteractiveSerialConsole( google::cloud::baremetalsolution::v2:: DisableInteractiveSerialConsoleRequest const& request) override; + StatusOr DisableInteractiveSerialConsole( + ExperimentalTag, NoAwaitTag, + google::cloud::baremetalsolution::v2:: + DisableInteractiveSerialConsoleRequest const& request) override; + + future> + DisableInteractiveSerialConsole( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DetachLun( google::cloud::baremetalsolution::v2::DetachLunRequest const& request) override; + StatusOr DetachLun( + ExperimentalTag, NoAwaitTag, + google::cloud::baremetalsolution::v2::DetachLunRequest const& request) + override; + + future> DetachLun( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListSSHKeys( google::cloud::baremetalsolution::v2::ListSSHKeysRequest request) override; @@ -111,6 +178,15 @@ class BareMetalSolutionTracingConnection google::cloud::baremetalsolution::v2::UpdateVolumeRequest const& request) override; + StatusOr UpdateVolume( + ExperimentalTag, NoAwaitTag, + google::cloud::baremetalsolution::v2::UpdateVolumeRequest const& request) + override; + + future> UpdateVolume( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr RenameVolume( google::cloud::baremetalsolution::v2::RenameVolumeRequest const& request) override; @@ -119,10 +195,28 @@ class BareMetalSolutionTracingConnection EvictVolume(google::cloud::baremetalsolution::v2::EvictVolumeRequest const& request) override; + StatusOr EvictVolume( + ExperimentalTag, NoAwaitTag, + google::cloud::baremetalsolution::v2::EvictVolumeRequest const& request) + override; + + future> + EvictVolume(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ResizeVolume( google::cloud::baremetalsolution::v2::ResizeVolumeRequest const& request) override; + StatusOr ResizeVolume( + ExperimentalTag, NoAwaitTag, + google::cloud::baremetalsolution::v2::ResizeVolumeRequest const& request) + override; + + future> ResizeVolume( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListNetworks( google::cloud::baremetalsolution::v2::ListNetworksRequest request) override; @@ -140,6 +234,15 @@ class BareMetalSolutionTracingConnection google::cloud::baremetalsolution::v2::UpdateNetworkRequest const& request) override; + StatusOr UpdateNetwork( + ExperimentalTag, NoAwaitTag, + google::cloud::baremetalsolution::v2::UpdateNetworkRequest const& request) + override; + + future> UpdateNetwork( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr CreateVolumeSnapshot( google::cloud::baremetalsolution::v2::CreateVolumeSnapshotRequest const& @@ -150,6 +253,16 @@ class BareMetalSolutionTracingConnection google::cloud::baremetalsolution::v2::RestoreVolumeSnapshotRequest const& request) override; + StatusOr RestoreVolumeSnapshot( + ExperimentalTag, NoAwaitTag, + google::cloud::baremetalsolution::v2::RestoreVolumeSnapshotRequest const& + request) override; + + future> + RestoreVolumeSnapshot( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + Status DeleteVolumeSnapshot( google::cloud::baremetalsolution::v2::DeleteVolumeSnapshotRequest const& request) override; @@ -175,6 +288,15 @@ class BareMetalSolutionTracingConnection EvictLun(google::cloud::baremetalsolution::v2::EvictLunRequest const& request) override; + StatusOr EvictLun( + ExperimentalTag, NoAwaitTag, + google::cloud::baremetalsolution::v2::EvictLunRequest const& request) + override; + + future> + EvictLun(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetNfsShare( google::cloud::baremetalsolution::v2::GetNfsShareRequest const& request) override; @@ -188,11 +310,29 @@ class BareMetalSolutionTracingConnection google::cloud::baremetalsolution::v2::UpdateNfsShareRequest const& request) override; + StatusOr UpdateNfsShare( + ExperimentalTag, NoAwaitTag, + google::cloud::baremetalsolution::v2::UpdateNfsShareRequest const& + request) override; + + future> + UpdateNfsShare(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> CreateNfsShare( google::cloud::baremetalsolution::v2::CreateNfsShareRequest const& request) override; + StatusOr CreateNfsShare( + ExperimentalTag, NoAwaitTag, + google::cloud::baremetalsolution::v2::CreateNfsShareRequest const& + request) override; + + future> + CreateNfsShare(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr RenameNfsShare( google::cloud::baremetalsolution::v2::RenameNfsShareRequest const& request) override; @@ -202,6 +342,15 @@ class BareMetalSolutionTracingConnection google::cloud::baremetalsolution::v2::DeleteNfsShareRequest const& request) override; + StatusOr DeleteNfsShare( + ExperimentalTag, NoAwaitTag, + google::cloud::baremetalsolution::v2::DeleteNfsShareRequest const& + request) override; + + future> + DeleteNfsShare(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListProvisioningQuotas( google::cloud::baremetalsolution::v2::ListProvisioningQuotasRequest diff --git a/google/cloud/baremetalsolution/v2/mocks/mock_bare_metal_solution_connection.h b/google/cloud/baremetalsolution/v2/mocks/mock_bare_metal_solution_connection.h index 0f62e722d712a..fe88600a36c11 100644 --- a/google/cloud/baremetalsolution/v2/mocks/mock_bare_metal_solution_connection.h +++ b/google/cloud/baremetalsolution/v2/mocks/mock_bare_metal_solution_connection.h @@ -65,6 +65,19 @@ class MockBareMetalSolutionConnection request), (override)); + MOCK_METHOD( + StatusOr, UpdateInstance, + (ExperimentalTag, NoAwaitTag, + google::cloud::baremetalsolution::v2::UpdateInstanceRequest const& + request), + (override)); + + MOCK_METHOD(future>, + UpdateInstance, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr, RenameInstance, (google::cloud::baremetalsolution::v2::RenameInstanceRequest const& @@ -78,6 +91,19 @@ class MockBareMetalSolutionConnection request), (override)); + MOCK_METHOD(StatusOr, ResetInstance, + (ExperimentalTag, NoAwaitTag, + google::cloud::baremetalsolution::v2::ResetInstanceRequest const& + request), + (override)); + + MOCK_METHOD(future>, + ResetInstance, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, StartInstance, @@ -85,6 +111,19 @@ class MockBareMetalSolutionConnection request), (override)); + MOCK_METHOD(StatusOr, StartInstance, + (ExperimentalTag, NoAwaitTag, + google::cloud::baremetalsolution::v2::StartInstanceRequest const& + request), + (override)); + + MOCK_METHOD(future>, + StartInstance, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future< StatusOr>, @@ -93,6 +132,19 @@ class MockBareMetalSolutionConnection request), (override)); + MOCK_METHOD(StatusOr, StopInstance, + (ExperimentalTag, NoAwaitTag, + google::cloud::baremetalsolution::v2::StopInstanceRequest const& + request), + (override)); + + MOCK_METHOD( + future< + StatusOr>, + StopInstance, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, EnableInteractiveSerialConsole, @@ -100,6 +152,20 @@ class MockBareMetalSolutionConnection EnableInteractiveSerialConsoleRequest const& request), (override)); + MOCK_METHOD(StatusOr, + EnableInteractiveSerialConsole, + (ExperimentalTag, NoAwaitTag, + google::cloud::baremetalsolution::v2:: + EnableInteractiveSerialConsoleRequest const& request), + (override)); + + MOCK_METHOD(future>, + EnableInteractiveSerialConsole, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, DisableInteractiveSerialConsole, @@ -107,12 +173,38 @@ class MockBareMetalSolutionConnection DisableInteractiveSerialConsoleRequest const& request), (override)); + MOCK_METHOD(StatusOr, + DisableInteractiveSerialConsole, + (ExperimentalTag, NoAwaitTag, + google::cloud::baremetalsolution::v2:: + DisableInteractiveSerialConsoleRequest const& request), + (override)); + + MOCK_METHOD(future>, + DisableInteractiveSerialConsole, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DetachLun, (google::cloud::baremetalsolution::v2::DetachLunRequest const& request), (override)); + MOCK_METHOD( + StatusOr, DetachLun, + (ExperimentalTag, NoAwaitTag, + google::cloud::baremetalsolution::v2::DetachLunRequest const& request), + (override)); + + MOCK_METHOD(future>, + DetachLun, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( (StreamRange), ListSSHKeys, (google::cloud::baremetalsolution::v2::ListSSHKeysRequest request), @@ -145,6 +237,18 @@ class MockBareMetalSolutionConnection request), (override)); + MOCK_METHOD(StatusOr, UpdateVolume, + (ExperimentalTag, NoAwaitTag, + google::cloud::baremetalsolution::v2::UpdateVolumeRequest const& + request), + (override)); + + MOCK_METHOD(future>, + UpdateVolume, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(StatusOr, RenameVolume, (google::cloud::baremetalsolution::v2::RenameVolumeRequest const& @@ -157,12 +261,36 @@ class MockBareMetalSolutionConnection (google::cloud::baremetalsolution::v2::EvictVolumeRequest const& request), (override)); + MOCK_METHOD( + StatusOr, EvictVolume, + (ExperimentalTag, NoAwaitTag, + google::cloud::baremetalsolution::v2::EvictVolumeRequest const& request), + (override)); + + MOCK_METHOD( + future>, + EvictVolume, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, ResizeVolume, (google::cloud::baremetalsolution::v2::ResizeVolumeRequest const& request), (override)); + MOCK_METHOD(StatusOr, ResizeVolume, + (ExperimentalTag, NoAwaitTag, + google::cloud::baremetalsolution::v2::ResizeVolumeRequest const& + request), + (override)); + + MOCK_METHOD(future>, + ResizeVolume, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( (StreamRange), ListNetworks, @@ -187,6 +315,18 @@ class MockBareMetalSolutionConnection request), (override)); + MOCK_METHOD(StatusOr, UpdateNetwork, + (ExperimentalTag, NoAwaitTag, + google::cloud::baremetalsolution::v2::UpdateNetworkRequest const& + request), + (override)); + + MOCK_METHOD(future>, + UpdateNetwork, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr, CreateVolumeSnapshot, @@ -201,6 +341,19 @@ class MockBareMetalSolutionConnection request), (override)); + MOCK_METHOD( + StatusOr, RestoreVolumeSnapshot, + (ExperimentalTag, NoAwaitTag, + google::cloud::baremetalsolution::v2::RestoreVolumeSnapshotRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + RestoreVolumeSnapshot, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( Status, DeleteVolumeSnapshot, (google::cloud::baremetalsolution::v2::DeleteVolumeSnapshotRequest const& @@ -237,6 +390,18 @@ class MockBareMetalSolutionConnection (google::cloud::baremetalsolution::v2::EvictLunRequest const& request), (override)); + MOCK_METHOD( + StatusOr, EvictLun, + (ExperimentalTag, NoAwaitTag, + google::cloud::baremetalsolution::v2::EvictLunRequest const& request), + (override)); + + MOCK_METHOD( + future>, + EvictLun, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr, GetNfsShare, (google::cloud::baremetalsolution::v2::GetNfsShareRequest const& request), @@ -255,6 +420,19 @@ class MockBareMetalSolutionConnection request), (override)); + MOCK_METHOD( + StatusOr, UpdateNfsShare, + (ExperimentalTag, NoAwaitTag, + google::cloud::baremetalsolution::v2::UpdateNfsShareRequest const& + request), + (override)); + + MOCK_METHOD(future>, + UpdateNfsShare, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, CreateNfsShare, @@ -262,6 +440,19 @@ class MockBareMetalSolutionConnection request), (override)); + MOCK_METHOD( + StatusOr, CreateNfsShare, + (ExperimentalTag, NoAwaitTag, + google::cloud::baremetalsolution::v2::CreateNfsShareRequest const& + request), + (override)); + + MOCK_METHOD(future>, + CreateNfsShare, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr, RenameNfsShare, (google::cloud::baremetalsolution::v2::RenameNfsShareRequest const& @@ -275,6 +466,19 @@ class MockBareMetalSolutionConnection request), (override)); + MOCK_METHOD( + StatusOr, DeleteNfsShare, + (ExperimentalTag, NoAwaitTag, + google::cloud::baremetalsolution::v2::DeleteNfsShareRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + DeleteNfsShare, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( (StreamRange), ListProvisioningQuotas, diff --git a/google/cloud/batch/v1/batch_connection.cc b/google/cloud/batch/v1/batch_connection.cc index d70841cc8558f..a35ead3384194 100644 --- a/google/cloud/batch/v1/batch_connection.cc +++ b/google/cloud/batch/v1/batch_connection.cc @@ -56,6 +56,21 @@ BatchServiceConnection::DeleteJob( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr BatchServiceConnection::DeleteJob( + ExperimentalTag, NoAwaitTag, + google::cloud::batch::v1::DeleteJobRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +BatchServiceConnection::DeleteJob(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StreamRange BatchServiceConnection::ListJobs( google::cloud::batch::v1:: ListJobsRequest) { // NOLINT(performance-unnecessary-value-param) diff --git a/google/cloud/batch/v1/batch_connection.h b/google/cloud/batch/v1/batch_connection.h index e68337dba3fd8..f388f06c72ac1 100644 --- a/google/cloud/batch/v1/batch_connection.h +++ b/google/cloud/batch/v1/batch_connection.h @@ -22,8 +22,10 @@ #include "google/cloud/batch/v1/batch_connection_idempotency_policy.h" #include "google/cloud/batch/v1/internal/batch_retry_traits.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/internal/retry_policy_impl.h" +#include "google/cloud/no_await_tag.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" #include "google/cloud/status_or.h" @@ -194,6 +196,13 @@ class BatchServiceConnection { virtual future> DeleteJob(google::cloud::batch::v1::DeleteJobRequest const& request); + virtual StatusOr DeleteJob( + ExperimentalTag, NoAwaitTag, + google::cloud::batch::v1::DeleteJobRequest const& request); + + virtual future> + DeleteJob(ExperimentalTag, google::longrunning::Operation const& operation); + virtual StreamRange ListJobs( google::cloud::batch::v1::ListJobsRequest request); diff --git a/google/cloud/batch/v1/internal/batch_connection_impl.cc b/google/cloud/batch/v1/internal/batch_connection_impl.cc index 507166975acd4..ce0358c1731ba 100644 --- a/google/cloud/batch/v1/internal/batch_connection_impl.cc +++ b/google/cloud/batch/v1/internal/batch_connection_impl.cc @@ -126,6 +126,57 @@ BatchServiceConnectionImpl::DeleteJob( polling_policy(*current), __func__); } +StatusOr BatchServiceConnectionImpl::DeleteJob( + ExperimentalTag, NoAwaitTag, + google::cloud::batch::v1::DeleteJobRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteJob(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::batch::v1::DeleteJobRequest const& request) { + return stub_->DeleteJob(context, options, request); + }, + *current, request, __func__); +} + +future> +BatchServiceConnectionImpl::DeleteJob( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteJob", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::batch::v1::OperationMetadata>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::cloud::batch::v1::OperationMetadata>, + polling_policy(*current), __func__); +} + StreamRange BatchServiceConnectionImpl::ListJobs( google::cloud::batch::v1::ListJobsRequest request) { request.clear_page_token(); diff --git a/google/cloud/batch/v1/internal/batch_connection_impl.h b/google/cloud/batch/v1/internal/batch_connection_impl.h index 8a9336508406f..f44fb5c94ca4c 100644 --- a/google/cloud/batch/v1/internal/batch_connection_impl.h +++ b/google/cloud/batch/v1/internal/batch_connection_impl.h @@ -60,6 +60,14 @@ class BatchServiceConnectionImpl : public batch_v1::BatchServiceConnection { future> DeleteJob( google::cloud::batch::v1::DeleteJobRequest const& request) override; + StatusOr DeleteJob( + ExperimentalTag, NoAwaitTag, + google::cloud::batch::v1::DeleteJobRequest const& request) override; + + future> DeleteJob( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListJobs( google::cloud::batch::v1::ListJobsRequest request) override; diff --git a/google/cloud/batch/v1/internal/batch_tracing_connection.cc b/google/cloud/batch/v1/internal/batch_tracing_connection.cc index b59c778051c8d..5891ed38e428d 100644 --- a/google/cloud/batch/v1/internal/batch_tracing_connection.cc +++ b/google/cloud/batch/v1/internal/batch_tracing_connection.cc @@ -56,6 +56,25 @@ BatchServiceTracingConnection::DeleteJob( return internal::EndSpan(std::move(span), child_->DeleteJob(request)); } +StatusOr +BatchServiceTracingConnection::DeleteJob( + ExperimentalTag, NoAwaitTag, + google::cloud::batch::v1::DeleteJobRequest const& request) { + auto span = internal::MakeSpan("batch_v1::BatchServiceConnection::DeleteJob"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->DeleteJob(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +BatchServiceTracingConnection::DeleteJob( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan("batch_v1::BatchServiceConnection::DeleteJob"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->DeleteJob(ExperimentalTag{}, operation)); +} + StreamRange BatchServiceTracingConnection::ListJobs( google::cloud::batch::v1::ListJobsRequest request) { diff --git a/google/cloud/batch/v1/internal/batch_tracing_connection.h b/google/cloud/batch/v1/internal/batch_tracing_connection.h index d3c0dc61b3eff..a8ea113e93e45 100644 --- a/google/cloud/batch/v1/internal/batch_tracing_connection.h +++ b/google/cloud/batch/v1/internal/batch_tracing_connection.h @@ -48,6 +48,14 @@ class BatchServiceTracingConnection : public batch_v1::BatchServiceConnection { future> DeleteJob( google::cloud::batch::v1::DeleteJobRequest const& request) override; + StatusOr DeleteJob( + ExperimentalTag, NoAwaitTag, + google::cloud::batch::v1::DeleteJobRequest const& request) override; + + future> DeleteJob( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListJobs( google::cloud::batch::v1::ListJobsRequest request) override; diff --git a/google/cloud/batch/v1/mocks/mock_batch_connection.h b/google/cloud/batch/v1/mocks/mock_batch_connection.h index 67d92665857d9..94530d976187e 100644 --- a/google/cloud/batch/v1/mocks/mock_batch_connection.h +++ b/google/cloud/batch/v1/mocks/mock_batch_connection.h @@ -59,6 +59,17 @@ class MockBatchServiceConnection : public batch_v1::BatchServiceConnection { (google::cloud::batch::v1::DeleteJobRequest const& request), (override)); + MOCK_METHOD(StatusOr, DeleteJob, + (ExperimentalTag, NoAwaitTag, + google::cloud::batch::v1::DeleteJobRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteJob, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD((StreamRange), ListJobs, (google::cloud::batch::v1::ListJobsRequest request), (override)); diff --git a/google/cloud/beyondcorp/appconnections/v1/app_connections_connection.cc b/google/cloud/beyondcorp/appconnections/v1/app_connections_connection.cc index 055472b1acf28..0841735e62859 100644 --- a/google/cloud/beyondcorp/appconnections/v1/app_connections_connection.cc +++ b/google/cloud/beyondcorp/appconnections/v1/app_connections_connection.cc @@ -63,6 +63,23 @@ AppConnectionsServiceConnection::CreateAppConnection( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +AppConnectionsServiceConnection::CreateAppConnection( + ExperimentalTag, NoAwaitTag, + google::cloud::beyondcorp::appconnections::v1:: + CreateAppConnectionRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +AppConnectionsServiceConnection::CreateAppConnection( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> AppConnectionsServiceConnection::UpdateAppConnection( google::cloud::beyondcorp::appconnections::v1:: @@ -72,6 +89,23 @@ AppConnectionsServiceConnection::UpdateAppConnection( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +AppConnectionsServiceConnection::UpdateAppConnection( + ExperimentalTag, NoAwaitTag, + google::cloud::beyondcorp::appconnections::v1:: + UpdateAppConnectionRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +AppConnectionsServiceConnection::UpdateAppConnection( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> AppConnectionsServiceConnection::DeleteAppConnection( @@ -83,6 +117,25 @@ AppConnectionsServiceConnection::DeleteAppConnection( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +AppConnectionsServiceConnection::DeleteAppConnection( + ExperimentalTag, NoAwaitTag, + google::cloud::beyondcorp::appconnections::v1:: + DeleteAppConnectionRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +AppConnectionsServiceConnection::DeleteAppConnection( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StreamRange AppConnectionsServiceConnection::ResolveAppConnections( diff --git a/google/cloud/beyondcorp/appconnections/v1/app_connections_connection.h b/google/cloud/beyondcorp/appconnections/v1/app_connections_connection.h index 9cecebeefd262..0f1dec86eb4d0 100644 --- a/google/cloud/beyondcorp/appconnections/v1/app_connections_connection.h +++ b/google/cloud/beyondcorp/appconnections/v1/app_connections_connection.h @@ -23,8 +23,10 @@ #include "google/cloud/beyondcorp/appconnections/v1/app_connections_connection_idempotency_policy.h" #include "google/cloud/beyondcorp/appconnections/v1/internal/app_connections_retry_traits.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/internal/retry_policy_impl.h" +#include "google/cloud/no_await_tag.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" #include "google/cloud/status_or.h" @@ -208,16 +210,46 @@ class AppConnectionsServiceConnection { CreateAppConnection(google::cloud::beyondcorp::appconnections::v1:: CreateAppConnectionRequest const& request); + virtual StatusOr CreateAppConnection( + ExperimentalTag, NoAwaitTag, + google::cloud::beyondcorp::appconnections::v1:: + CreateAppConnectionRequest const& request); + + virtual future< + StatusOr> + CreateAppConnection(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future< StatusOr> UpdateAppConnection(google::cloud::beyondcorp::appconnections::v1:: UpdateAppConnectionRequest const& request); + virtual StatusOr UpdateAppConnection( + ExperimentalTag, NoAwaitTag, + google::cloud::beyondcorp::appconnections::v1:: + UpdateAppConnectionRequest const& request); + + virtual future< + StatusOr> + UpdateAppConnection(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> DeleteAppConnection(google::cloud::beyondcorp::appconnections::v1:: DeleteAppConnectionRequest const& request); + virtual StatusOr DeleteAppConnection( + ExperimentalTag, NoAwaitTag, + google::cloud::beyondcorp::appconnections::v1:: + DeleteAppConnectionRequest const& request); + + virtual future> + DeleteAppConnection(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StreamRange ResolveAppConnections(google::cloud::beyondcorp::appconnections::v1:: diff --git a/google/cloud/beyondcorp/appconnections/v1/internal/app_connections_connection_impl.cc b/google/cloud/beyondcorp/appconnections/v1/internal/app_connections_connection_impl.cc index fd3a50efc0486..7d3f0fd73171e 100644 --- a/google/cloud/beyondcorp/appconnections/v1/internal/app_connections_connection_impl.cc +++ b/google/cloud/beyondcorp/appconnections/v1/internal/app_connections_connection_impl.cc @@ -172,6 +172,61 @@ AppConnectionsServiceConnectionImpl::CreateAppConnection( polling_policy(*current), __func__); } +StatusOr +AppConnectionsServiceConnectionImpl::CreateAppConnection( + ExperimentalTag, NoAwaitTag, + google::cloud::beyondcorp::appconnections::v1:: + CreateAppConnectionRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateAppConnection(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::beyondcorp::appconnections::v1:: + CreateAppConnectionRequest const& request) { + return stub_->CreateAppConnection(context, options, request); + }, + *current, request, __func__); +} + +future> +AppConnectionsServiceConnectionImpl::CreateAppConnection( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to CreateAppConnection", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::beyondcorp::appconnections::v1::AppConnection>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::beyondcorp::appconnections::v1::AppConnection>, + polling_policy(*current), __func__); +} + future> AppConnectionsServiceConnectionImpl::UpdateAppConnection( google::cloud::beyondcorp::appconnections::v1:: @@ -212,6 +267,61 @@ AppConnectionsServiceConnectionImpl::UpdateAppConnection( polling_policy(*current), __func__); } +StatusOr +AppConnectionsServiceConnectionImpl::UpdateAppConnection( + ExperimentalTag, NoAwaitTag, + google::cloud::beyondcorp::appconnections::v1:: + UpdateAppConnectionRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UpdateAppConnection(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::beyondcorp::appconnections::v1:: + UpdateAppConnectionRequest const& request) { + return stub_->UpdateAppConnection(context, options, request); + }, + *current, request, __func__); +} + +future> +AppConnectionsServiceConnectionImpl::UpdateAppConnection( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to UpdateAppConnection", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::beyondcorp::appconnections::v1::AppConnection>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::beyondcorp::appconnections::v1::AppConnection>, + polling_policy(*current), __func__); +} + future> AppConnectionsServiceConnectionImpl::DeleteAppConnection( @@ -255,6 +365,65 @@ AppConnectionsServiceConnectionImpl::DeleteAppConnection( polling_policy(*current), __func__); } +StatusOr +AppConnectionsServiceConnectionImpl::DeleteAppConnection( + ExperimentalTag, NoAwaitTag, + google::cloud::beyondcorp::appconnections::v1:: + DeleteAppConnectionRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteAppConnection(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::beyondcorp::appconnections::v1:: + DeleteAppConnectionRequest const& request) { + return stub_->DeleteAppConnection(context, options, request); + }, + *current, request, __func__); +} + +future> +AppConnectionsServiceConnectionImpl::DeleteAppConnection( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteAppConnection", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::beyondcorp::appconnections::v1:: + AppConnectionOperationMetadata>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::cloud::beyondcorp::appconnections::v1:: + AppConnectionOperationMetadata>, + polling_policy(*current), __func__); +} + StreamRange AppConnectionsServiceConnectionImpl::ResolveAppConnections( diff --git a/google/cloud/beyondcorp/appconnections/v1/internal/app_connections_connection_impl.h b/google/cloud/beyondcorp/appconnections/v1/internal/app_connections_connection_impl.h index ad9a03301cfac..7ebb9aba7c752 100644 --- a/google/cloud/beyondcorp/appconnections/v1/internal/app_connections_connection_impl.h +++ b/google/cloud/beyondcorp/appconnections/v1/internal/app_connections_connection_impl.h @@ -68,15 +68,43 @@ class AppConnectionsServiceConnectionImpl CreateAppConnection(google::cloud::beyondcorp::appconnections::v1:: CreateAppConnectionRequest const& request) override; + StatusOr CreateAppConnection( + ExperimentalTag, NoAwaitTag, + google::cloud::beyondcorp::appconnections::v1:: + CreateAppConnectionRequest const& request) override; + + future> + CreateAppConnection(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateAppConnection(google::cloud::beyondcorp::appconnections::v1:: UpdateAppConnectionRequest const& request) override; + StatusOr UpdateAppConnection( + ExperimentalTag, NoAwaitTag, + google::cloud::beyondcorp::appconnections::v1:: + UpdateAppConnectionRequest const& request) override; + + future> + UpdateAppConnection(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteAppConnection(google::cloud::beyondcorp::appconnections::v1:: DeleteAppConnectionRequest const& request) override; + StatusOr DeleteAppConnection( + ExperimentalTag, NoAwaitTag, + google::cloud::beyondcorp::appconnections::v1:: + DeleteAppConnectionRequest const& request) override; + + future> + DeleteAppConnection(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ResolveAppConnections(google::cloud::beyondcorp::appconnections::v1:: diff --git a/google/cloud/beyondcorp/appconnections/v1/internal/app_connections_tracing_connection.cc b/google/cloud/beyondcorp/appconnections/v1/internal/app_connections_tracing_connection.cc index 3a04a17374de2..d28dbd02bc78a 100644 --- a/google/cloud/beyondcorp/appconnections/v1/internal/app_connections_tracing_connection.cc +++ b/google/cloud/beyondcorp/appconnections/v1/internal/app_connections_tracing_connection.cc @@ -73,6 +73,31 @@ AppConnectionsServiceTracingConnection::CreateAppConnection( child_->CreateAppConnection(request)); } +StatusOr +AppConnectionsServiceTracingConnection::CreateAppConnection( + ExperimentalTag, NoAwaitTag, + google::cloud::beyondcorp::appconnections::v1:: + CreateAppConnectionRequest const& request) { + auto span = internal::MakeSpan( + "beyondcorp_appconnections_v1::AppConnectionsServiceConnection::" + "CreateAppConnection"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->CreateAppConnection(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +AppConnectionsServiceTracingConnection::CreateAppConnection( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "beyondcorp_appconnections_v1::AppConnectionsServiceConnection::" + "CreateAppConnection"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->CreateAppConnection( + ExperimentalTag{}, operation)); +} + future> AppConnectionsServiceTracingConnection::UpdateAppConnection( google::cloud::beyondcorp::appconnections::v1:: @@ -85,6 +110,31 @@ AppConnectionsServiceTracingConnection::UpdateAppConnection( child_->UpdateAppConnection(request)); } +StatusOr +AppConnectionsServiceTracingConnection::UpdateAppConnection( + ExperimentalTag, NoAwaitTag, + google::cloud::beyondcorp::appconnections::v1:: + UpdateAppConnectionRequest const& request) { + auto span = internal::MakeSpan( + "beyondcorp_appconnections_v1::AppConnectionsServiceConnection::" + "UpdateAppConnection"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->UpdateAppConnection(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +AppConnectionsServiceTracingConnection::UpdateAppConnection( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "beyondcorp_appconnections_v1::AppConnectionsServiceConnection::" + "UpdateAppConnection"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->UpdateAppConnection( + ExperimentalTag{}, operation)); +} + future> AppConnectionsServiceTracingConnection::DeleteAppConnection( @@ -98,6 +148,32 @@ AppConnectionsServiceTracingConnection::DeleteAppConnection( child_->DeleteAppConnection(request)); } +StatusOr +AppConnectionsServiceTracingConnection::DeleteAppConnection( + ExperimentalTag, NoAwaitTag, + google::cloud::beyondcorp::appconnections::v1:: + DeleteAppConnectionRequest const& request) { + auto span = internal::MakeSpan( + "beyondcorp_appconnections_v1::AppConnectionsServiceConnection::" + "DeleteAppConnection"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->DeleteAppConnection(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +AppConnectionsServiceTracingConnection::DeleteAppConnection( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "beyondcorp_appconnections_v1::AppConnectionsServiceConnection::" + "DeleteAppConnection"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->DeleteAppConnection( + ExperimentalTag{}, operation)); +} + StreamRange AppConnectionsServiceTracingConnection::ResolveAppConnections( diff --git a/google/cloud/beyondcorp/appconnections/v1/internal/app_connections_tracing_connection.h b/google/cloud/beyondcorp/appconnections/v1/internal/app_connections_tracing_connection.h index ef0a321ff880f..92faf008949af 100644 --- a/google/cloud/beyondcorp/appconnections/v1/internal/app_connections_tracing_connection.h +++ b/google/cloud/beyondcorp/appconnections/v1/internal/app_connections_tracing_connection.h @@ -56,15 +56,43 @@ class AppConnectionsServiceTracingConnection CreateAppConnection(google::cloud::beyondcorp::appconnections::v1:: CreateAppConnectionRequest const& request) override; + StatusOr CreateAppConnection( + ExperimentalTag, NoAwaitTag, + google::cloud::beyondcorp::appconnections::v1:: + CreateAppConnectionRequest const& request) override; + + future> + CreateAppConnection(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateAppConnection(google::cloud::beyondcorp::appconnections::v1:: UpdateAppConnectionRequest const& request) override; + StatusOr UpdateAppConnection( + ExperimentalTag, NoAwaitTag, + google::cloud::beyondcorp::appconnections::v1:: + UpdateAppConnectionRequest const& request) override; + + future> + UpdateAppConnection(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteAppConnection(google::cloud::beyondcorp::appconnections::v1:: DeleteAppConnectionRequest const& request) override; + StatusOr DeleteAppConnection( + ExperimentalTag, NoAwaitTag, + google::cloud::beyondcorp::appconnections::v1:: + DeleteAppConnectionRequest const& request) override; + + future> + DeleteAppConnection(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ResolveAppConnections(google::cloud::beyondcorp::appconnections::v1:: diff --git a/google/cloud/beyondcorp/appconnections/v1/mocks/mock_app_connections_connection.h b/google/cloud/beyondcorp/appconnections/v1/mocks/mock_app_connections_connection.h index 40417d3d40020..1aa1a5b45a0c0 100644 --- a/google/cloud/beyondcorp/appconnections/v1/mocks/mock_app_connections_connection.h +++ b/google/cloud/beyondcorp/appconnections/v1/mocks/mock_app_connections_connection.h @@ -71,6 +71,19 @@ class MockAppConnectionsServiceConnection CreateAppConnectionRequest const& request), (override)); + MOCK_METHOD(StatusOr, CreateAppConnection, + (ExperimentalTag, NoAwaitTag, + google::cloud::beyondcorp::appconnections::v1:: + CreateAppConnectionRequest const& request), + (override)); + + MOCK_METHOD( + future>, + CreateAppConnection, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, @@ -79,6 +92,19 @@ class MockAppConnectionsServiceConnection UpdateAppConnectionRequest const& request), (override)); + MOCK_METHOD(StatusOr, UpdateAppConnection, + (ExperimentalTag, NoAwaitTag, + google::cloud::beyondcorp::appconnections::v1:: + UpdateAppConnectionRequest const& request), + (override)); + + MOCK_METHOD( + future>, + UpdateAppConnection, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, DeleteAppConnection, @@ -86,6 +112,19 @@ class MockAppConnectionsServiceConnection DeleteAppConnectionRequest const& request), (override)); + MOCK_METHOD(StatusOr, DeleteAppConnection, + (ExperimentalTag, NoAwaitTag, + google::cloud::beyondcorp::appconnections::v1:: + DeleteAppConnectionRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteAppConnection, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( (StreamRange), diff --git a/google/cloud/beyondcorp/appconnectors/v1/app_connectors_connection.cc b/google/cloud/beyondcorp/appconnectors/v1/app_connectors_connection.cc index 1250acadb43ef..4a5123421d035 100644 --- a/google/cloud/beyondcorp/appconnectors/v1/app_connectors_connection.cc +++ b/google/cloud/beyondcorp/appconnectors/v1/app_connectors_connection.cc @@ -62,6 +62,23 @@ AppConnectorsServiceConnection::CreateAppConnector( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +AppConnectorsServiceConnection::CreateAppConnector( + ExperimentalTag, NoAwaitTag, + google::cloud::beyondcorp::appconnectors::v1:: + CreateAppConnectorRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +AppConnectorsServiceConnection::CreateAppConnector( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> AppConnectorsServiceConnection::UpdateAppConnector( google::cloud::beyondcorp::appconnectors::v1:: @@ -71,6 +88,23 @@ AppConnectorsServiceConnection::UpdateAppConnector( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +AppConnectorsServiceConnection::UpdateAppConnector( + ExperimentalTag, NoAwaitTag, + google::cloud::beyondcorp::appconnectors::v1:: + UpdateAppConnectorRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +AppConnectorsServiceConnection::UpdateAppConnector( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> AppConnectorsServiceConnection::DeleteAppConnector( @@ -82,6 +116,25 @@ AppConnectorsServiceConnection::DeleteAppConnector( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +AppConnectorsServiceConnection::DeleteAppConnector( + ExperimentalTag, NoAwaitTag, + google::cloud::beyondcorp::appconnectors::v1:: + DeleteAppConnectorRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +AppConnectorsServiceConnection::DeleteAppConnector( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> AppConnectorsServiceConnection::ReportStatus( google::cloud::beyondcorp::appconnectors::v1::ReportStatusRequest const&) { @@ -90,6 +143,22 @@ AppConnectorsServiceConnection::ReportStatus( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +AppConnectorsServiceConnection::ReportStatus( + ExperimentalTag, NoAwaitTag, + google::cloud::beyondcorp::appconnectors::v1::ReportStatusRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +AppConnectorsServiceConnection::ReportStatus( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + std::shared_ptr MakeAppConnectorsServiceConnection(Options options) { internal::CheckExpectedOptions CreateAppConnector( + ExperimentalTag, NoAwaitTag, + google::cloud::beyondcorp::appconnectors::v1:: + CreateAppConnectorRequest const& request); + + virtual future< + StatusOr> + CreateAppConnector(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future< StatusOr> UpdateAppConnector(google::cloud::beyondcorp::appconnectors::v1:: UpdateAppConnectorRequest const& request); + virtual StatusOr UpdateAppConnector( + ExperimentalTag, NoAwaitTag, + google::cloud::beyondcorp::appconnectors::v1:: + UpdateAppConnectorRequest const& request); + + virtual future< + StatusOr> + UpdateAppConnector(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> DeleteAppConnector(google::cloud::beyondcorp::appconnectors::v1:: DeleteAppConnectorRequest const& request); + virtual StatusOr DeleteAppConnector( + ExperimentalTag, NoAwaitTag, + google::cloud::beyondcorp::appconnectors::v1:: + DeleteAppConnectorRequest const& request); + + virtual future> + DeleteAppConnector(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future< StatusOr> ReportStatus( google::cloud::beyondcorp::appconnectors::v1::ReportStatusRequest const& request); + + virtual StatusOr ReportStatus( + ExperimentalTag, NoAwaitTag, + google::cloud::beyondcorp::appconnectors::v1::ReportStatusRequest const& + request); + + virtual future< + StatusOr> + ReportStatus(ExperimentalTag, + google::longrunning::Operation const& operation); }; /** diff --git a/google/cloud/beyondcorp/appconnectors/v1/internal/app_connectors_connection_impl.cc b/google/cloud/beyondcorp/appconnectors/v1/internal/app_connectors_connection_impl.cc index d490168b23110..91472ec0e5212 100644 --- a/google/cloud/beyondcorp/appconnectors/v1/internal/app_connectors_connection_impl.cc +++ b/google/cloud/beyondcorp/appconnectors/v1/internal/app_connectors_connection_impl.cc @@ -169,6 +169,61 @@ AppConnectorsServiceConnectionImpl::CreateAppConnector( polling_policy(*current), __func__); } +StatusOr +AppConnectorsServiceConnectionImpl::CreateAppConnector( + ExperimentalTag, NoAwaitTag, + google::cloud::beyondcorp::appconnectors::v1:: + CreateAppConnectorRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateAppConnector(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::beyondcorp::appconnectors::v1:: + CreateAppConnectorRequest const& request) { + return stub_->CreateAppConnector(context, options, request); + }, + *current, request, __func__); +} + +future> +AppConnectorsServiceConnectionImpl::CreateAppConnector( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to CreateAppConnector", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::beyondcorp::appconnectors::v1::AppConnector>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::beyondcorp::appconnectors::v1::AppConnector>, + polling_policy(*current), __func__); +} + future> AppConnectorsServiceConnectionImpl::UpdateAppConnector( google::cloud::beyondcorp::appconnectors::v1:: @@ -209,6 +264,61 @@ AppConnectorsServiceConnectionImpl::UpdateAppConnector( polling_policy(*current), __func__); } +StatusOr +AppConnectorsServiceConnectionImpl::UpdateAppConnector( + ExperimentalTag, NoAwaitTag, + google::cloud::beyondcorp::appconnectors::v1:: + UpdateAppConnectorRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UpdateAppConnector(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::beyondcorp::appconnectors::v1:: + UpdateAppConnectorRequest const& request) { + return stub_->UpdateAppConnector(context, options, request); + }, + *current, request, __func__); +} + +future> +AppConnectorsServiceConnectionImpl::UpdateAppConnector( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to UpdateAppConnector", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::beyondcorp::appconnectors::v1::AppConnector>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::beyondcorp::appconnectors::v1::AppConnector>, + polling_policy(*current), __func__); +} + future> AppConnectorsServiceConnectionImpl::DeleteAppConnector( @@ -252,6 +362,64 @@ AppConnectorsServiceConnectionImpl::DeleteAppConnector( polling_policy(*current), __func__); } +StatusOr +AppConnectorsServiceConnectionImpl::DeleteAppConnector( + ExperimentalTag, NoAwaitTag, + google::cloud::beyondcorp::appconnectors::v1:: + DeleteAppConnectorRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteAppConnector(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::beyondcorp::appconnectors::v1:: + DeleteAppConnectorRequest const& request) { + return stub_->DeleteAppConnector(context, options, request); + }, + *current, request, __func__); +} + +future> +AppConnectorsServiceConnectionImpl::DeleteAppConnector( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteAppConnector", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::beyondcorp::appconnectors::v1:: + AppConnectorOperationMetadata>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::cloud::beyondcorp::appconnectors::v1:: + AppConnectorOperationMetadata>, + polling_policy(*current), __func__); +} + future> AppConnectorsServiceConnectionImpl::ReportStatus( google::cloud::beyondcorp::appconnectors::v1::ReportStatusRequest const& @@ -292,6 +460,61 @@ AppConnectorsServiceConnectionImpl::ReportStatus( polling_policy(*current), __func__); } +StatusOr +AppConnectorsServiceConnectionImpl::ReportStatus( + ExperimentalTag, NoAwaitTag, + google::cloud::beyondcorp::appconnectors::v1::ReportStatusRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->ReportStatus(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::beyondcorp::appconnectors::v1:: + ReportStatusRequest const& request) { + return stub_->ReportStatus(context, options, request); + }, + *current, request, __func__); +} + +future> +AppConnectorsServiceConnectionImpl::ReportStatus( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to ReportStatus", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::beyondcorp::appconnectors::v1::AppConnector>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::beyondcorp::appconnectors::v1::AppConnector>, + polling_policy(*current), __func__); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace beyondcorp_appconnectors_v1_internal } // namespace cloud diff --git a/google/cloud/beyondcorp/appconnectors/v1/internal/app_connectors_connection_impl.h b/google/cloud/beyondcorp/appconnectors/v1/internal/app_connectors_connection_impl.h index 60586a225dd05..155f958bbc5b6 100644 --- a/google/cloud/beyondcorp/appconnectors/v1/internal/app_connectors_connection_impl.h +++ b/google/cloud/beyondcorp/appconnectors/v1/internal/app_connectors_connection_impl.h @@ -67,20 +67,57 @@ class AppConnectorsServiceConnectionImpl CreateAppConnector(google::cloud::beyondcorp::appconnectors::v1:: CreateAppConnectorRequest const& request) override; + StatusOr CreateAppConnector( + ExperimentalTag, NoAwaitTag, + google::cloud::beyondcorp::appconnectors::v1:: + CreateAppConnectorRequest const& request) override; + + future> + CreateAppConnector(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateAppConnector(google::cloud::beyondcorp::appconnectors::v1:: UpdateAppConnectorRequest const& request) override; + StatusOr UpdateAppConnector( + ExperimentalTag, NoAwaitTag, + google::cloud::beyondcorp::appconnectors::v1:: + UpdateAppConnectorRequest const& request) override; + + future> + UpdateAppConnector(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteAppConnector(google::cloud::beyondcorp::appconnectors::v1:: DeleteAppConnectorRequest const& request) override; + StatusOr DeleteAppConnector( + ExperimentalTag, NoAwaitTag, + google::cloud::beyondcorp::appconnectors::v1:: + DeleteAppConnectorRequest const& request) override; + + future> + DeleteAppConnector(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ReportStatus( google::cloud::beyondcorp::appconnectors::v1::ReportStatusRequest const& request) override; + StatusOr ReportStatus( + ExperimentalTag, NoAwaitTag, + google::cloud::beyondcorp::appconnectors::v1::ReportStatusRequest const& + request) override; + + future> + ReportStatus(ExperimentalTag, + google::longrunning::Operation const& operation) override; + private: std::unique_ptr background_; std::shared_ptr< diff --git a/google/cloud/beyondcorp/appconnectors/v1/internal/app_connectors_tracing_connection.cc b/google/cloud/beyondcorp/appconnectors/v1/internal/app_connectors_tracing_connection.cc index 6f1eaf7d84783..38ac4f64cf33e 100644 --- a/google/cloud/beyondcorp/appconnectors/v1/internal/app_connectors_tracing_connection.cc +++ b/google/cloud/beyondcorp/appconnectors/v1/internal/app_connectors_tracing_connection.cc @@ -71,6 +71,31 @@ AppConnectorsServiceTracingConnection::CreateAppConnector( child_->CreateAppConnector(request)); } +StatusOr +AppConnectorsServiceTracingConnection::CreateAppConnector( + ExperimentalTag, NoAwaitTag, + google::cloud::beyondcorp::appconnectors::v1:: + CreateAppConnectorRequest const& request) { + auto span = internal::MakeSpan( + "beyondcorp_appconnectors_v1::AppConnectorsServiceConnection::" + "CreateAppConnector"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->CreateAppConnector(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +AppConnectorsServiceTracingConnection::CreateAppConnector( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "beyondcorp_appconnectors_v1::AppConnectorsServiceConnection::" + "CreateAppConnector"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->CreateAppConnector( + ExperimentalTag{}, operation)); +} + future> AppConnectorsServiceTracingConnection::UpdateAppConnector( google::cloud::beyondcorp::appconnectors::v1:: @@ -83,6 +108,31 @@ AppConnectorsServiceTracingConnection::UpdateAppConnector( child_->UpdateAppConnector(request)); } +StatusOr +AppConnectorsServiceTracingConnection::UpdateAppConnector( + ExperimentalTag, NoAwaitTag, + google::cloud::beyondcorp::appconnectors::v1:: + UpdateAppConnectorRequest const& request) { + auto span = internal::MakeSpan( + "beyondcorp_appconnectors_v1::AppConnectorsServiceConnection::" + "UpdateAppConnector"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->UpdateAppConnector(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +AppConnectorsServiceTracingConnection::UpdateAppConnector( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "beyondcorp_appconnectors_v1::AppConnectorsServiceConnection::" + "UpdateAppConnector"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->UpdateAppConnector( + ExperimentalTag{}, operation)); +} + future> AppConnectorsServiceTracingConnection::DeleteAppConnector( @@ -96,6 +146,32 @@ AppConnectorsServiceTracingConnection::DeleteAppConnector( child_->DeleteAppConnector(request)); } +StatusOr +AppConnectorsServiceTracingConnection::DeleteAppConnector( + ExperimentalTag, NoAwaitTag, + google::cloud::beyondcorp::appconnectors::v1:: + DeleteAppConnectorRequest const& request) { + auto span = internal::MakeSpan( + "beyondcorp_appconnectors_v1::AppConnectorsServiceConnection::" + "DeleteAppConnector"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->DeleteAppConnector(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +AppConnectorsServiceTracingConnection::DeleteAppConnector( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "beyondcorp_appconnectors_v1::AppConnectorsServiceConnection::" + "DeleteAppConnector"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->DeleteAppConnector( + ExperimentalTag{}, operation)); +} + future> AppConnectorsServiceTracingConnection::ReportStatus( google::cloud::beyondcorp::appconnectors::v1::ReportStatusRequest const& @@ -107,6 +183,30 @@ AppConnectorsServiceTracingConnection::ReportStatus( return internal::EndSpan(std::move(span), child_->ReportStatus(request)); } +StatusOr +AppConnectorsServiceTracingConnection::ReportStatus( + ExperimentalTag, NoAwaitTag, + google::cloud::beyondcorp::appconnectors::v1::ReportStatusRequest const& + request) { + auto span = internal::MakeSpan( + "beyondcorp_appconnectors_v1::AppConnectorsServiceConnection::" + "ReportStatus"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->ReportStatus(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +AppConnectorsServiceTracingConnection::ReportStatus( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "beyondcorp_appconnectors_v1::AppConnectorsServiceConnection::" + "ReportStatus"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->ReportStatus(ExperimentalTag{}, operation)); +} + #endif // GOOGLE_CLOUD_CPP_HAVE_OPENTELEMETRY std::shared_ptr diff --git a/google/cloud/beyondcorp/appconnectors/v1/internal/app_connectors_tracing_connection.h b/google/cloud/beyondcorp/appconnectors/v1/internal/app_connectors_tracing_connection.h index 2fdad8f2f9616..7b36d98a163c5 100644 --- a/google/cloud/beyondcorp/appconnectors/v1/internal/app_connectors_tracing_connection.h +++ b/google/cloud/beyondcorp/appconnectors/v1/internal/app_connectors_tracing_connection.h @@ -55,20 +55,57 @@ class AppConnectorsServiceTracingConnection CreateAppConnector(google::cloud::beyondcorp::appconnectors::v1:: CreateAppConnectorRequest const& request) override; + StatusOr CreateAppConnector( + ExperimentalTag, NoAwaitTag, + google::cloud::beyondcorp::appconnectors::v1:: + CreateAppConnectorRequest const& request) override; + + future> + CreateAppConnector(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateAppConnector(google::cloud::beyondcorp::appconnectors::v1:: UpdateAppConnectorRequest const& request) override; + StatusOr UpdateAppConnector( + ExperimentalTag, NoAwaitTag, + google::cloud::beyondcorp::appconnectors::v1:: + UpdateAppConnectorRequest const& request) override; + + future> + UpdateAppConnector(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteAppConnector(google::cloud::beyondcorp::appconnectors::v1:: DeleteAppConnectorRequest const& request) override; + StatusOr DeleteAppConnector( + ExperimentalTag, NoAwaitTag, + google::cloud::beyondcorp::appconnectors::v1:: + DeleteAppConnectorRequest const& request) override; + + future> + DeleteAppConnector(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ReportStatus( google::cloud::beyondcorp::appconnectors::v1::ReportStatusRequest const& request) override; + StatusOr ReportStatus( + ExperimentalTag, NoAwaitTag, + google::cloud::beyondcorp::appconnectors::v1::ReportStatusRequest const& + request) override; + + future> + ReportStatus(ExperimentalTag, + google::longrunning::Operation const& operation) override; + private: std::shared_ptr child_; diff --git a/google/cloud/beyondcorp/appconnectors/v1/mocks/mock_app_connectors_connection.h b/google/cloud/beyondcorp/appconnectors/v1/mocks/mock_app_connectors_connection.h index 2ec3040f1c7c4..55dd0de75d8ad 100644 --- a/google/cloud/beyondcorp/appconnectors/v1/mocks/mock_app_connectors_connection.h +++ b/google/cloud/beyondcorp/appconnectors/v1/mocks/mock_app_connectors_connection.h @@ -69,6 +69,19 @@ class MockAppConnectorsServiceConnection CreateAppConnectorRequest const& request), (override)); + MOCK_METHOD(StatusOr, CreateAppConnector, + (ExperimentalTag, NoAwaitTag, + google::cloud::beyondcorp::appconnectors::v1:: + CreateAppConnectorRequest const& request), + (override)); + + MOCK_METHOD( + future< + StatusOr>, + CreateAppConnector, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future< StatusOr>, @@ -77,6 +90,19 @@ class MockAppConnectorsServiceConnection UpdateAppConnectorRequest const& request), (override)); + MOCK_METHOD(StatusOr, UpdateAppConnector, + (ExperimentalTag, NoAwaitTag, + google::cloud::beyondcorp::appconnectors::v1:: + UpdateAppConnectorRequest const& request), + (override)); + + MOCK_METHOD( + future< + StatusOr>, + UpdateAppConnector, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, DeleteAppConnector, @@ -84,6 +110,19 @@ class MockAppConnectorsServiceConnection DeleteAppConnectorRequest const& request), (override)); + MOCK_METHOD(StatusOr, DeleteAppConnector, + (ExperimentalTag, NoAwaitTag, + google::cloud::beyondcorp::appconnectors::v1:: + DeleteAppConnectorRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteAppConnector, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future< StatusOr>, @@ -91,6 +130,20 @@ class MockAppConnectorsServiceConnection (google::cloud::beyondcorp::appconnectors::v1::ReportStatusRequest const& request), (override)); + + MOCK_METHOD( + StatusOr, ReportStatus, + (ExperimentalTag, NoAwaitTag, + google::cloud::beyondcorp::appconnectors::v1::ReportStatusRequest const& + request), + (override)); + + MOCK_METHOD( + future< + StatusOr>, + ReportStatus, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); }; GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END diff --git a/google/cloud/beyondcorp/appgateways/v1/app_gateways_connection.cc b/google/cloud/beyondcorp/appgateways/v1/app_gateways_connection.cc index bbb272cdf10b1..29736b62b8000 100644 --- a/google/cloud/beyondcorp/appgateways/v1/app_gateways_connection.cc +++ b/google/cloud/beyondcorp/appgateways/v1/app_gateways_connection.cc @@ -61,6 +61,23 @@ AppGatewaysServiceConnection::CreateAppGateway( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +AppGatewaysServiceConnection::CreateAppGateway( + ExperimentalTag, NoAwaitTag, + google::cloud::beyondcorp::appgateways::v1:: + CreateAppGatewayRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +AppGatewaysServiceConnection::CreateAppGateway( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> AppGatewaysServiceConnection::DeleteAppGateway( @@ -71,6 +88,24 @@ AppGatewaysServiceConnection::DeleteAppGateway( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +AppGatewaysServiceConnection::DeleteAppGateway( + ExperimentalTag, NoAwaitTag, + google::cloud::beyondcorp::appgateways::v1:: + DeleteAppGatewayRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +AppGatewaysServiceConnection::DeleteAppGateway( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + std::shared_ptr MakeAppGatewaysServiceConnection( Options options) { internal::CheckExpectedOptions CreateAppGateway( + ExperimentalTag, NoAwaitTag, + google::cloud::beyondcorp::appgateways::v1::CreateAppGatewayRequest const& + request); + + virtual future< + StatusOr> + CreateAppGateway(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> DeleteAppGateway( google::cloud::beyondcorp::appgateways::v1::DeleteAppGatewayRequest const& request); + + virtual StatusOr DeleteAppGateway( + ExperimentalTag, NoAwaitTag, + google::cloud::beyondcorp::appgateways::v1::DeleteAppGatewayRequest const& + request); + + virtual future> + DeleteAppGateway(ExperimentalTag, + google::longrunning::Operation const& operation); }; /** diff --git a/google/cloud/beyondcorp/appgateways/v1/internal/app_gateways_connection_impl.cc b/google/cloud/beyondcorp/appgateways/v1/internal/app_gateways_connection_impl.cc index 639511f107bb1..fa67ac6e1b81c 100644 --- a/google/cloud/beyondcorp/appgateways/v1/internal/app_gateways_connection_impl.cc +++ b/google/cloud/beyondcorp/appgateways/v1/internal/app_gateways_connection_impl.cc @@ -166,6 +166,61 @@ AppGatewaysServiceConnectionImpl::CreateAppGateway( polling_policy(*current), __func__); } +StatusOr +AppGatewaysServiceConnectionImpl::CreateAppGateway( + ExperimentalTag, NoAwaitTag, + google::cloud::beyondcorp::appgateways::v1::CreateAppGatewayRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateAppGateway(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::beyondcorp::appgateways::v1:: + CreateAppGatewayRequest const& request) { + return stub_->CreateAppGateway(context, options, request); + }, + *current, request, __func__); +} + +future> +AppGatewaysServiceConnectionImpl::CreateAppGateway( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to CreateAppGateway", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::beyondcorp::appgateways::v1::AppGateway>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::beyondcorp::appgateways::v1::AppGateway>, + polling_policy(*current), __func__); +} + future> AppGatewaysServiceConnectionImpl::DeleteAppGateway( @@ -208,6 +263,63 @@ AppGatewaysServiceConnectionImpl::DeleteAppGateway( polling_policy(*current), __func__); } +StatusOr +AppGatewaysServiceConnectionImpl::DeleteAppGateway( + ExperimentalTag, NoAwaitTag, + google::cloud::beyondcorp::appgateways::v1::DeleteAppGatewayRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteAppGateway(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::beyondcorp::appgateways::v1:: + DeleteAppGatewayRequest const& request) { + return stub_->DeleteAppGateway(context, options, request); + }, + *current, request, __func__); +} + +future> +AppGatewaysServiceConnectionImpl::DeleteAppGateway( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteAppGateway", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::beyondcorp::appgateways::v1::AppGatewayOperationMetadata>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::cloud::beyondcorp::appgateways::v1:: + AppGatewayOperationMetadata>, + polling_policy(*current), __func__); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace beyondcorp_appgateways_v1_internal } // namespace cloud diff --git a/google/cloud/beyondcorp/appgateways/v1/internal/app_gateways_connection_impl.h b/google/cloud/beyondcorp/appgateways/v1/internal/app_gateways_connection_impl.h index 2a2f55e462793..dc9c667d125a2 100644 --- a/google/cloud/beyondcorp/appgateways/v1/internal/app_gateways_connection_impl.h +++ b/google/cloud/beyondcorp/appgateways/v1/internal/app_gateways_connection_impl.h @@ -69,12 +69,31 @@ class AppGatewaysServiceConnectionImpl google::cloud::beyondcorp::appgateways::v1::CreateAppGatewayRequest const& request) override; + StatusOr CreateAppGateway( + ExperimentalTag, NoAwaitTag, + google::cloud::beyondcorp::appgateways::v1::CreateAppGatewayRequest const& + request) override; + + future> + CreateAppGateway(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteAppGateway( google::cloud::beyondcorp::appgateways::v1::DeleteAppGatewayRequest const& request) override; + StatusOr DeleteAppGateway( + ExperimentalTag, NoAwaitTag, + google::cloud::beyondcorp::appgateways::v1::DeleteAppGatewayRequest const& + request) override; + + future> + DeleteAppGateway(ExperimentalTag, + google::longrunning::Operation const& operation) override; + private: std::unique_ptr background_; std::shared_ptr diff --git a/google/cloud/beyondcorp/appgateways/v1/internal/app_gateways_tracing_connection.cc b/google/cloud/beyondcorp/appgateways/v1/internal/app_gateways_tracing_connection.cc index 6eb7798c658e5..8a9f1449ac957 100644 --- a/google/cloud/beyondcorp/appgateways/v1/internal/app_gateways_tracing_connection.cc +++ b/google/cloud/beyondcorp/appgateways/v1/internal/app_gateways_tracing_connection.cc @@ -69,6 +69,31 @@ AppGatewaysServiceTracingConnection::CreateAppGateway( return internal::EndSpan(std::move(span), child_->CreateAppGateway(request)); } +StatusOr +AppGatewaysServiceTracingConnection::CreateAppGateway( + ExperimentalTag, NoAwaitTag, + google::cloud::beyondcorp::appgateways::v1::CreateAppGatewayRequest const& + request) { + auto span = internal::MakeSpan( + "beyondcorp_appgateways_v1::AppGatewaysServiceConnection::" + "CreateAppGateway"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->CreateAppGateway(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +AppGatewaysServiceTracingConnection::CreateAppGateway( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "beyondcorp_appgateways_v1::AppGatewaysServiceConnection::" + "CreateAppGateway"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->CreateAppGateway(ExperimentalTag{}, operation)); +} + future> AppGatewaysServiceTracingConnection::DeleteAppGateway( @@ -81,6 +106,32 @@ AppGatewaysServiceTracingConnection::DeleteAppGateway( return internal::EndSpan(std::move(span), child_->DeleteAppGateway(request)); } +StatusOr +AppGatewaysServiceTracingConnection::DeleteAppGateway( + ExperimentalTag, NoAwaitTag, + google::cloud::beyondcorp::appgateways::v1::DeleteAppGatewayRequest const& + request) { + auto span = internal::MakeSpan( + "beyondcorp_appgateways_v1::AppGatewaysServiceConnection::" + "DeleteAppGateway"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->DeleteAppGateway(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +AppGatewaysServiceTracingConnection::DeleteAppGateway( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "beyondcorp_appgateways_v1::AppGatewaysServiceConnection::" + "DeleteAppGateway"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->DeleteAppGateway(ExperimentalTag{}, operation)); +} + #endif // GOOGLE_CLOUD_CPP_HAVE_OPENTELEMETRY std::shared_ptr diff --git a/google/cloud/beyondcorp/appgateways/v1/internal/app_gateways_tracing_connection.h b/google/cloud/beyondcorp/appgateways/v1/internal/app_gateways_tracing_connection.h index 781a384d958d7..a1f7f9c50d410 100644 --- a/google/cloud/beyondcorp/appgateways/v1/internal/app_gateways_tracing_connection.h +++ b/google/cloud/beyondcorp/appgateways/v1/internal/app_gateways_tracing_connection.h @@ -56,12 +56,31 @@ class AppGatewaysServiceTracingConnection google::cloud::beyondcorp::appgateways::v1::CreateAppGatewayRequest const& request) override; + StatusOr CreateAppGateway( + ExperimentalTag, NoAwaitTag, + google::cloud::beyondcorp::appgateways::v1::CreateAppGatewayRequest const& + request) override; + + future> + CreateAppGateway(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteAppGateway( google::cloud::beyondcorp::appgateways::v1::DeleteAppGatewayRequest const& request) override; + StatusOr DeleteAppGateway( + ExperimentalTag, NoAwaitTag, + google::cloud::beyondcorp::appgateways::v1::DeleteAppGatewayRequest const& + request) override; + + future> + DeleteAppGateway(ExperimentalTag, + google::longrunning::Operation const& operation) override; + private: std::shared_ptr child_; diff --git a/google/cloud/beyondcorp/appgateways/v1/mocks/mock_app_gateways_connection.h b/google/cloud/beyondcorp/appgateways/v1/mocks/mock_app_gateways_connection.h index 2b226f74c1b48..cb5f5f5085ce8 100644 --- a/google/cloud/beyondcorp/appgateways/v1/mocks/mock_app_gateways_connection.h +++ b/google/cloud/beyondcorp/appgateways/v1/mocks/mock_app_gateways_connection.h @@ -68,12 +68,37 @@ class MockAppGatewaysServiceConnection CreateAppGatewayRequest const& request), (override)); + MOCK_METHOD(StatusOr, CreateAppGateway, + (ExperimentalTag, NoAwaitTag, + google::cloud::beyondcorp::appgateways::v1:: + CreateAppGatewayRequest const& request), + (override)); + + MOCK_METHOD( + future>, + CreateAppGateway, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, DeleteAppGateway, (google::cloud::beyondcorp::appgateways::v1:: DeleteAppGatewayRequest const& request), (override)); + + MOCK_METHOD(StatusOr, DeleteAppGateway, + (ExperimentalTag, NoAwaitTag, + google::cloud::beyondcorp::appgateways::v1:: + DeleteAppGatewayRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteAppGateway, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); }; GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END diff --git a/google/cloud/bigquery/analyticshub/v1/analytics_hub_connection.cc b/google/cloud/bigquery/analyticshub/v1/analytics_hub_connection.cc index bc868e2d9e95c..7ea8c3e31b84c 100644 --- a/google/cloud/bigquery/analyticshub/v1/analytics_hub_connection.cc +++ b/google/cloud/bigquery/analyticshub/v1/analytics_hub_connection.cc @@ -128,6 +128,25 @@ AnalyticsHubServiceConnection::SubscribeDataExchange( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +AnalyticsHubServiceConnection::SubscribeDataExchange( + ExperimentalTag, NoAwaitTag, + google::cloud::bigquery::analyticshub::v1:: + SubscribeDataExchangeRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +AnalyticsHubServiceConnection::SubscribeDataExchange( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> AnalyticsHubServiceConnection::RefreshSubscription( @@ -138,6 +157,24 @@ AnalyticsHubServiceConnection::RefreshSubscription( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +AnalyticsHubServiceConnection::RefreshSubscription( + ExperimentalTag, NoAwaitTag, + google::cloud::bigquery::analyticshub::v1:: + RefreshSubscriptionRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +AnalyticsHubServiceConnection::RefreshSubscription( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr AnalyticsHubServiceConnection::GetSubscription( google::cloud::bigquery::analyticshub::v1::GetSubscriptionRequest const&) { @@ -176,6 +213,23 @@ AnalyticsHubServiceConnection::DeleteSubscription( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +AnalyticsHubServiceConnection::DeleteSubscription( + ExperimentalTag, NoAwaitTag, + google::cloud::bigquery::analyticshub::v1:: + DeleteSubscriptionRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +AnalyticsHubServiceConnection::DeleteSubscription( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr AnalyticsHubServiceConnection::GetIamPolicy( google::iam::v1::GetIamPolicyRequest const&) { return Status(StatusCode::kUnimplemented, "not implemented"); diff --git a/google/cloud/bigquery/analyticshub/v1/analytics_hub_connection.h b/google/cloud/bigquery/analyticshub/v1/analytics_hub_connection.h index 9dcb81658900f..93e9603cc7152 100644 --- a/google/cloud/bigquery/analyticshub/v1/analytics_hub_connection.h +++ b/google/cloud/bigquery/analyticshub/v1/analytics_hub_connection.h @@ -22,8 +22,10 @@ #include "google/cloud/bigquery/analyticshub/v1/analytics_hub_connection_idempotency_policy.h" #include "google/cloud/bigquery/analyticshub/v1/internal/analytics_hub_retry_traits.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/internal/retry_policy_impl.h" +#include "google/cloud/no_await_tag.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" #include "google/cloud/status_or.h" @@ -249,11 +251,31 @@ class AnalyticsHubServiceConnection { SubscribeDataExchange(google::cloud::bigquery::analyticshub::v1:: SubscribeDataExchangeRequest const& request); + virtual StatusOr SubscribeDataExchange( + ExperimentalTag, NoAwaitTag, + google::cloud::bigquery::analyticshub::v1:: + SubscribeDataExchangeRequest const& request); + + virtual future> + SubscribeDataExchange(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> RefreshSubscription(google::cloud::bigquery::analyticshub::v1:: RefreshSubscriptionRequest const& request); + virtual StatusOr RefreshSubscription( + ExperimentalTag, NoAwaitTag, + google::cloud::bigquery::analyticshub::v1:: + RefreshSubscriptionRequest const& request); + + virtual future> + RefreshSubscription(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StatusOr GetSubscription( google::cloud::bigquery::analyticshub::v1::GetSubscriptionRequest const& @@ -279,6 +301,16 @@ class AnalyticsHubServiceConnection { DeleteSubscription(google::cloud::bigquery::analyticshub::v1:: DeleteSubscriptionRequest const& request); + virtual StatusOr DeleteSubscription( + ExperimentalTag, NoAwaitTag, + google::cloud::bigquery::analyticshub::v1:: + DeleteSubscriptionRequest const& request); + + virtual future< + StatusOr> + DeleteSubscription(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StatusOr GetIamPolicy( google::iam::v1::GetIamPolicyRequest const& request); diff --git a/google/cloud/bigquery/analyticshub/v1/internal/analytics_hub_connection_impl.cc b/google/cloud/bigquery/analyticshub/v1/internal/analytics_hub_connection_impl.cc index a3fc48153b1cd..3bb2de0bc88cb 100644 --- a/google/cloud/bigquery/analyticshub/v1/internal/analytics_hub_connection_impl.cc +++ b/google/cloud/bigquery/analyticshub/v1/internal/analytics_hub_connection_impl.cc @@ -371,6 +371,63 @@ AnalyticsHubServiceConnectionImpl::SubscribeDataExchange( polling_policy(*current), __func__); } +StatusOr +AnalyticsHubServiceConnectionImpl::SubscribeDataExchange( + ExperimentalTag, NoAwaitTag, + google::cloud::bigquery::analyticshub::v1:: + SubscribeDataExchangeRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->SubscribeDataExchange(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::bigquery::analyticshub::v1:: + SubscribeDataExchangeRequest const& request) { + return stub_->SubscribeDataExchange(context, options, request); + }, + *current, request, __func__); +} + +future> +AnalyticsHubServiceConnectionImpl::SubscribeDataExchange( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to SubscribeDataExchange", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::bigquery::analyticshub::v1::SubscribeDataExchangeResponse>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::bigquery::analyticshub::v1:: + SubscribeDataExchangeResponse>, + polling_policy(*current), __func__); +} + future> AnalyticsHubServiceConnectionImpl::RefreshSubscription( @@ -413,6 +470,63 @@ AnalyticsHubServiceConnectionImpl::RefreshSubscription( polling_policy(*current), __func__); } +StatusOr +AnalyticsHubServiceConnectionImpl::RefreshSubscription( + ExperimentalTag, NoAwaitTag, + google::cloud::bigquery::analyticshub::v1::RefreshSubscriptionRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->RefreshSubscription(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::bigquery::analyticshub::v1:: + RefreshSubscriptionRequest const& request) { + return stub_->RefreshSubscription(context, options, request); + }, + *current, request, __func__); +} + +future> +AnalyticsHubServiceConnectionImpl::RefreshSubscription( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to RefreshSubscription", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::bigquery::analyticshub::v1::RefreshSubscriptionResponse>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::bigquery::analyticshub::v1:: + RefreshSubscriptionResponse>, + polling_policy(*current), __func__); +} + StatusOr AnalyticsHubServiceConnectionImpl::GetSubscription( google::cloud::bigquery::analyticshub::v1::GetSubscriptionRequest const& @@ -562,6 +676,61 @@ AnalyticsHubServiceConnectionImpl::DeleteSubscription( polling_policy(*current), __func__); } +StatusOr +AnalyticsHubServiceConnectionImpl::DeleteSubscription( + ExperimentalTag, NoAwaitTag, + google::cloud::bigquery::analyticshub::v1::DeleteSubscriptionRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteSubscription(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::bigquery::analyticshub::v1:: + DeleteSubscriptionRequest const& request) { + return stub_->DeleteSubscription(context, options, request); + }, + *current, request, __func__); +} + +future> +AnalyticsHubServiceConnectionImpl::DeleteSubscription( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteSubscription", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::bigquery::analyticshub::v1::OperationMetadata>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::cloud::bigquery::analyticshub::v1::OperationMetadata>, + polling_policy(*current), __func__); +} + StatusOr AnalyticsHubServiceConnectionImpl::GetIamPolicy( google::iam::v1::GetIamPolicyRequest const& request) { diff --git a/google/cloud/bigquery/analyticshub/v1/internal/analytics_hub_connection_impl.h b/google/cloud/bigquery/analyticshub/v1/internal/analytics_hub_connection_impl.h index b852299f0fa83..992a5cb551f29 100644 --- a/google/cloud/bigquery/analyticshub/v1/internal/analytics_hub_connection_impl.h +++ b/google/cloud/bigquery/analyticshub/v1/internal/analytics_hub_connection_impl.h @@ -112,11 +112,32 @@ class AnalyticsHubServiceConnectionImpl google::cloud::bigquery::analyticshub::v1:: SubscribeDataExchangeRequest const& request) override; + StatusOr SubscribeDataExchange( + ExperimentalTag, NoAwaitTag, + google::cloud::bigquery::analyticshub::v1:: + SubscribeDataExchangeRequest const& request) override; + + future> + SubscribeDataExchange( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> RefreshSubscription(google::cloud::bigquery::analyticshub::v1:: RefreshSubscriptionRequest const& request) override; + StatusOr RefreshSubscription( + ExperimentalTag, NoAwaitTag, + google::cloud::bigquery::analyticshub::v1:: + RefreshSubscriptionRequest const& request) override; + + future> + RefreshSubscription(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetSubscription( google::cloud::bigquery::analyticshub::v1::GetSubscriptionRequest const& @@ -141,6 +162,15 @@ class AnalyticsHubServiceConnectionImpl DeleteSubscription(google::cloud::bigquery::analyticshub::v1:: DeleteSubscriptionRequest const& request) override; + StatusOr DeleteSubscription( + ExperimentalTag, NoAwaitTag, + google::cloud::bigquery::analyticshub::v1:: + DeleteSubscriptionRequest const& request) override; + + future> + DeleteSubscription(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetIamPolicy( google::iam::v1::GetIamPolicyRequest const& request) override; diff --git a/google/cloud/bigquery/analyticshub/v1/internal/analytics_hub_tracing_connection.cc b/google/cloud/bigquery/analyticshub/v1/internal/analytics_hub_tracing_connection.cc index 3beab90182f52..67a2955a4df0d 100644 --- a/google/cloud/bigquery/analyticshub/v1/internal/analytics_hub_tracing_connection.cc +++ b/google/cloud/bigquery/analyticshub/v1/internal/analytics_hub_tracing_connection.cc @@ -180,6 +180,32 @@ AnalyticsHubServiceTracingConnection::SubscribeDataExchange( child_->SubscribeDataExchange(request)); } +StatusOr +AnalyticsHubServiceTracingConnection::SubscribeDataExchange( + ExperimentalTag, NoAwaitTag, + google::cloud::bigquery::analyticshub::v1:: + SubscribeDataExchangeRequest const& request) { + auto span = internal::MakeSpan( + "bigquery_analyticshub_v1::AnalyticsHubServiceConnection::" + "SubscribeDataExchange"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->SubscribeDataExchange(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +AnalyticsHubServiceTracingConnection::SubscribeDataExchange( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "bigquery_analyticshub_v1::AnalyticsHubServiceConnection::" + "SubscribeDataExchange"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->SubscribeDataExchange( + ExperimentalTag{}, operation)); +} + future> AnalyticsHubServiceTracingConnection::RefreshSubscription( @@ -193,6 +219,32 @@ AnalyticsHubServiceTracingConnection::RefreshSubscription( child_->RefreshSubscription(request)); } +StatusOr +AnalyticsHubServiceTracingConnection::RefreshSubscription( + ExperimentalTag, NoAwaitTag, + google::cloud::bigquery::analyticshub::v1::RefreshSubscriptionRequest const& + request) { + auto span = internal::MakeSpan( + "bigquery_analyticshub_v1::AnalyticsHubServiceConnection::" + "RefreshSubscription"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->RefreshSubscription(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +AnalyticsHubServiceTracingConnection::RefreshSubscription( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "bigquery_analyticshub_v1::AnalyticsHubServiceConnection::" + "RefreshSubscription"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->RefreshSubscription( + ExperimentalTag{}, operation)); +} + StatusOr AnalyticsHubServiceTracingConnection::GetSubscription( google::cloud::bigquery::analyticshub::v1::GetSubscriptionRequest const& @@ -255,6 +307,31 @@ AnalyticsHubServiceTracingConnection::DeleteSubscription( child_->DeleteSubscription(request)); } +StatusOr +AnalyticsHubServiceTracingConnection::DeleteSubscription( + ExperimentalTag, NoAwaitTag, + google::cloud::bigquery::analyticshub::v1::DeleteSubscriptionRequest const& + request) { + auto span = internal::MakeSpan( + "bigquery_analyticshub_v1::AnalyticsHubServiceConnection::" + "DeleteSubscription"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->DeleteSubscription(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +AnalyticsHubServiceTracingConnection::DeleteSubscription( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "bigquery_analyticshub_v1::AnalyticsHubServiceConnection::" + "DeleteSubscription"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->DeleteSubscription( + ExperimentalTag{}, operation)); +} + StatusOr AnalyticsHubServiceTracingConnection::GetIamPolicy( google::iam::v1::GetIamPolicyRequest const& request) { diff --git a/google/cloud/bigquery/analyticshub/v1/internal/analytics_hub_tracing_connection.h b/google/cloud/bigquery/analyticshub/v1/internal/analytics_hub_tracing_connection.h index 0a49714839718..691d195695d66 100644 --- a/google/cloud/bigquery/analyticshub/v1/internal/analytics_hub_tracing_connection.h +++ b/google/cloud/bigquery/analyticshub/v1/internal/analytics_hub_tracing_connection.h @@ -99,11 +99,32 @@ class AnalyticsHubServiceTracingConnection google::cloud::bigquery::analyticshub::v1:: SubscribeDataExchangeRequest const& request) override; + StatusOr SubscribeDataExchange( + ExperimentalTag, NoAwaitTag, + google::cloud::bigquery::analyticshub::v1:: + SubscribeDataExchangeRequest const& request) override; + + future> + SubscribeDataExchange( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> RefreshSubscription(google::cloud::bigquery::analyticshub::v1:: RefreshSubscriptionRequest const& request) override; + StatusOr RefreshSubscription( + ExperimentalTag, NoAwaitTag, + google::cloud::bigquery::analyticshub::v1:: + RefreshSubscriptionRequest const& request) override; + + future> + RefreshSubscription(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetSubscription( google::cloud::bigquery::analyticshub::v1::GetSubscriptionRequest const& @@ -128,6 +149,15 @@ class AnalyticsHubServiceTracingConnection DeleteSubscription(google::cloud::bigquery::analyticshub::v1:: DeleteSubscriptionRequest const& request) override; + StatusOr DeleteSubscription( + ExperimentalTag, NoAwaitTag, + google::cloud::bigquery::analyticshub::v1:: + DeleteSubscriptionRequest const& request) override; + + future> + DeleteSubscription(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetIamPolicy( google::iam::v1::GetIamPolicyRequest const& request) override; diff --git a/google/cloud/bigquery/analyticshub/v1/mocks/mock_analytics_hub_connection.h b/google/cloud/bigquery/analyticshub/v1/mocks/mock_analytics_hub_connection.h index 67fa7a006e600..568d6deebd3e5 100644 --- a/google/cloud/bigquery/analyticshub/v1/mocks/mock_analytics_hub_connection.h +++ b/google/cloud/bigquery/analyticshub/v1/mocks/mock_analytics_hub_connection.h @@ -132,6 +132,19 @@ class MockAnalyticsHubServiceConnection SubscribeDataExchangeRequest const& request), (override)); + MOCK_METHOD(StatusOr, SubscribeDataExchange, + (ExperimentalTag, NoAwaitTag, + google::cloud::bigquery::analyticshub::v1:: + SubscribeDataExchangeRequest const& request), + (override)); + + MOCK_METHOD(future>, + SubscribeDataExchange, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, RefreshSubscription, @@ -139,6 +152,19 @@ class MockAnalyticsHubServiceConnection RefreshSubscriptionRequest const& request), (override)); + MOCK_METHOD(StatusOr, RefreshSubscription, + (ExperimentalTag, NoAwaitTag, + google::cloud::bigquery::analyticshub::v1:: + RefreshSubscriptionRequest const& request), + (override)); + + MOCK_METHOD(future>, + RefreshSubscription, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr, GetSubscription, @@ -175,6 +201,19 @@ class MockAnalyticsHubServiceConnection DeleteSubscriptionRequest const& request), (override)); + MOCK_METHOD(StatusOr, DeleteSubscription, + (ExperimentalTag, NoAwaitTag, + google::cloud::bigquery::analyticshub::v1:: + DeleteSubscriptionRequest const& request), + (override)); + + MOCK_METHOD( + future>, + DeleteSubscription, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(StatusOr, GetIamPolicy, (google::iam::v1::GetIamPolicyRequest const& request), (override)); diff --git a/google/cloud/bigquery/biglake/v1/metastore_connection.h b/google/cloud/bigquery/biglake/v1/metastore_connection.h index acf97201beea7..8a6283747c647 100644 --- a/google/cloud/bigquery/biglake/v1/metastore_connection.h +++ b/google/cloud/bigquery/biglake/v1/metastore_connection.h @@ -22,6 +22,7 @@ #include "google/cloud/bigquery/biglake/v1/internal/metastore_retry_traits.h" #include "google/cloud/bigquery/biglake/v1/metastore_connection_idempotency_policy.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/internal/retry_policy_impl.h" #include "google/cloud/options.h" #include "google/cloud/status_or.h" diff --git a/google/cloud/bigquery/connection/v1/connection_connection.h b/google/cloud/bigquery/connection/v1/connection_connection.h index cacdee9d8391c..c8021aeaf7d1c 100644 --- a/google/cloud/bigquery/connection/v1/connection_connection.h +++ b/google/cloud/bigquery/connection/v1/connection_connection.h @@ -22,6 +22,7 @@ #include "google/cloud/bigquery/connection/v1/connection_connection_idempotency_policy.h" #include "google/cloud/bigquery/connection/v1/internal/connection_retry_traits.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/internal/retry_policy_impl.h" #include "google/cloud/options.h" #include "google/cloud/status_or.h" diff --git a/google/cloud/bigquery/datapolicies/v1/data_policy_connection.h b/google/cloud/bigquery/datapolicies/v1/data_policy_connection.h index 8adcf71c164fc..2f7c3f7e07d9f 100644 --- a/google/cloud/bigquery/datapolicies/v1/data_policy_connection.h +++ b/google/cloud/bigquery/datapolicies/v1/data_policy_connection.h @@ -22,6 +22,7 @@ #include "google/cloud/bigquery/datapolicies/v1/data_policy_connection_idempotency_policy.h" #include "google/cloud/bigquery/datapolicies/v1/internal/data_policy_retry_traits.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/internal/retry_policy_impl.h" #include "google/cloud/options.h" #include "google/cloud/status_or.h" diff --git a/google/cloud/bigquery/datatransfer/v1/data_transfer_connection.h b/google/cloud/bigquery/datatransfer/v1/data_transfer_connection.h index c2574ffcff385..6057d40459443 100644 --- a/google/cloud/bigquery/datatransfer/v1/data_transfer_connection.h +++ b/google/cloud/bigquery/datatransfer/v1/data_transfer_connection.h @@ -22,6 +22,7 @@ #include "google/cloud/bigquery/datatransfer/v1/data_transfer_connection_idempotency_policy.h" #include "google/cloud/bigquery/datatransfer/v1/internal/data_transfer_retry_traits.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/internal/retry_policy_impl.h" #include "google/cloud/options.h" #include "google/cloud/status_or.h" diff --git a/google/cloud/bigquery/migration/v2/migration_connection.h b/google/cloud/bigquery/migration/v2/migration_connection.h index 773edbb66cbef..32eac8e6f5744 100644 --- a/google/cloud/bigquery/migration/v2/migration_connection.h +++ b/google/cloud/bigquery/migration/v2/migration_connection.h @@ -22,6 +22,7 @@ #include "google/cloud/bigquery/migration/v2/internal/migration_retry_traits.h" #include "google/cloud/bigquery/migration/v2/migration_connection_idempotency_policy.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/internal/retry_policy_impl.h" #include "google/cloud/options.h" #include "google/cloud/status_or.h" diff --git a/google/cloud/bigquery/reservation/v1/reservation_connection.h b/google/cloud/bigquery/reservation/v1/reservation_connection.h index e0eebb61a4c52..981106d823a46 100644 --- a/google/cloud/bigquery/reservation/v1/reservation_connection.h +++ b/google/cloud/bigquery/reservation/v1/reservation_connection.h @@ -22,6 +22,7 @@ #include "google/cloud/bigquery/reservation/v1/internal/reservation_retry_traits.h" #include "google/cloud/bigquery/reservation/v1/reservation_connection_idempotency_policy.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/internal/retry_policy_impl.h" #include "google/cloud/options.h" #include "google/cloud/status_or.h" diff --git a/google/cloud/bigquery/storage/v1/bigquery_read_connection.h b/google/cloud/bigquery/storage/v1/bigquery_read_connection.h index 63a7245212169..c359833edb15c 100644 --- a/google/cloud/bigquery/storage/v1/bigquery_read_connection.h +++ b/google/cloud/bigquery/storage/v1/bigquery_read_connection.h @@ -22,6 +22,7 @@ #include "google/cloud/bigquery/storage/v1/bigquery_read_connection_idempotency_policy.h" #include "google/cloud/bigquery/storage/v1/internal/bigquery_read_retry_traits.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/internal/retry_policy_impl.h" #include "google/cloud/options.h" #include "google/cloud/status_or.h" diff --git a/google/cloud/bigquery/storage/v1/bigquery_write_connection.h b/google/cloud/bigquery/storage/v1/bigquery_write_connection.h index a2dd1c8ee5550..c7fe9b4fd2652 100644 --- a/google/cloud/bigquery/storage/v1/bigquery_write_connection.h +++ b/google/cloud/bigquery/storage/v1/bigquery_write_connection.h @@ -22,6 +22,7 @@ #include "google/cloud/bigquery/storage/v1/bigquery_write_connection_idempotency_policy.h" #include "google/cloud/bigquery/storage/v1/internal/bigquery_write_retry_traits.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/internal/async_read_write_stream_impl.h" #include "google/cloud/internal/retry_policy_impl.h" #include "google/cloud/options.h" diff --git a/google/cloud/bigtable/admin/bigtable_instance_admin_connection.cc b/google/cloud/bigtable/admin/bigtable_instance_admin_connection.cc index 3eb941949a22b..ad0e7b9f9962b 100644 --- a/google/cloud/bigtable/admin/bigtable_instance_admin_connection.cc +++ b/google/cloud/bigtable/admin/bigtable_instance_admin_connection.cc @@ -46,6 +46,22 @@ BigtableInstanceAdminConnection::CreateInstance( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +BigtableInstanceAdminConnection::CreateInstance( + ExperimentalTag, NoAwaitTag, + google::bigtable::admin::v2::CreateInstanceRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +BigtableInstanceAdminConnection::CreateInstance( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr BigtableInstanceAdminConnection::GetInstance( google::bigtable::admin::v2::GetInstanceRequest const&) { @@ -72,6 +88,22 @@ BigtableInstanceAdminConnection::PartialUpdateInstance( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +BigtableInstanceAdminConnection::PartialUpdateInstance( + ExperimentalTag, NoAwaitTag, + google::bigtable::admin::v2::PartialUpdateInstanceRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +BigtableInstanceAdminConnection::PartialUpdateInstance( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + Status BigtableInstanceAdminConnection::DeleteInstance( google::bigtable::admin::v2::DeleteInstanceRequest const&) { return Status(StatusCode::kUnimplemented, "not implemented"); @@ -85,6 +117,22 @@ BigtableInstanceAdminConnection::CreateCluster( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +BigtableInstanceAdminConnection::CreateCluster( + ExperimentalTag, NoAwaitTag, + google::bigtable::admin::v2::CreateClusterRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +BigtableInstanceAdminConnection::CreateCluster( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr BigtableInstanceAdminConnection::GetCluster( google::bigtable::admin::v2::GetClusterRequest const&) { @@ -105,6 +153,21 @@ BigtableInstanceAdminConnection::UpdateCluster( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +BigtableInstanceAdminConnection::UpdateCluster( + ExperimentalTag, NoAwaitTag, google::bigtable::admin::v2::Cluster const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +BigtableInstanceAdminConnection::UpdateCluster( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> BigtableInstanceAdminConnection::PartialUpdateCluster( google::bigtable::admin::v2::PartialUpdateClusterRequest const&) { @@ -113,6 +176,22 @@ BigtableInstanceAdminConnection::PartialUpdateCluster( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +BigtableInstanceAdminConnection::PartialUpdateCluster( + ExperimentalTag, NoAwaitTag, + google::bigtable::admin::v2::PartialUpdateClusterRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +BigtableInstanceAdminConnection::PartialUpdateCluster( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + Status BigtableInstanceAdminConnection::DeleteCluster( google::bigtable::admin::v2::DeleteClusterRequest const&) { return Status(StatusCode::kUnimplemented, "not implemented"); @@ -146,6 +225,22 @@ BigtableInstanceAdminConnection::UpdateAppProfile( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +BigtableInstanceAdminConnection::UpdateAppProfile( + ExperimentalTag, NoAwaitTag, + google::bigtable::admin::v2::UpdateAppProfileRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +BigtableInstanceAdminConnection::UpdateAppProfile( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + Status BigtableInstanceAdminConnection::DeleteAppProfile( google::bigtable::admin::v2::DeleteAppProfileRequest const&) { return Status(StatusCode::kUnimplemented, "not implemented"); diff --git a/google/cloud/bigtable/admin/bigtable_instance_admin_connection.h b/google/cloud/bigtable/admin/bigtable_instance_admin_connection.h index 45b723ab38d46..925adff763a83 100644 --- a/google/cloud/bigtable/admin/bigtable_instance_admin_connection.h +++ b/google/cloud/bigtable/admin/bigtable_instance_admin_connection.h @@ -22,8 +22,10 @@ #include "google/cloud/bigtable/admin/bigtable_instance_admin_connection_idempotency_policy.h" #include "google/cloud/bigtable/admin/internal/bigtable_instance_admin_retry_traits.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/internal/retry_policy_impl.h" +#include "google/cloud/no_await_tag.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" #include "google/cloud/status_or.h" @@ -197,6 +199,14 @@ class BigtableInstanceAdminConnection { CreateInstance( google::bigtable::admin::v2::CreateInstanceRequest const& request); + virtual StatusOr CreateInstance( + ExperimentalTag, NoAwaitTag, + google::bigtable::admin::v2::CreateInstanceRequest const& request); + + virtual future> + CreateInstance(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StatusOr GetInstance( google::bigtable::admin::v2::GetInstanceRequest const& request); @@ -211,12 +221,27 @@ class BigtableInstanceAdminConnection { PartialUpdateInstance( google::bigtable::admin::v2::PartialUpdateInstanceRequest const& request); + virtual StatusOr PartialUpdateInstance( + ExperimentalTag, NoAwaitTag, + google::bigtable::admin::v2::PartialUpdateInstanceRequest const& request); + + virtual future> + PartialUpdateInstance(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual Status DeleteInstance( google::bigtable::admin::v2::DeleteInstanceRequest const& request); virtual future> CreateCluster( google::bigtable::admin::v2::CreateClusterRequest const& request); + virtual StatusOr CreateCluster( + ExperimentalTag, NoAwaitTag, + google::bigtable::admin::v2::CreateClusterRequest const& request); + + virtual future> CreateCluster( + ExperimentalTag, google::longrunning::Operation const& operation); + virtual StatusOr GetCluster( google::bigtable::admin::v2::GetClusterRequest const& request); @@ -226,10 +251,25 @@ class BigtableInstanceAdminConnection { virtual future> UpdateCluster( google::bigtable::admin::v2::Cluster const& request); + virtual StatusOr UpdateCluster( + ExperimentalTag, NoAwaitTag, + google::bigtable::admin::v2::Cluster const& request); + + virtual future> UpdateCluster( + ExperimentalTag, google::longrunning::Operation const& operation); + virtual future> PartialUpdateCluster( google::bigtable::admin::v2::PartialUpdateClusterRequest const& request); + virtual StatusOr PartialUpdateCluster( + ExperimentalTag, NoAwaitTag, + google::bigtable::admin::v2::PartialUpdateClusterRequest const& request); + + virtual future> + PartialUpdateCluster(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual Status DeleteCluster( google::bigtable::admin::v2::DeleteClusterRequest const& request); @@ -246,6 +286,14 @@ class BigtableInstanceAdminConnection { UpdateAppProfile( google::bigtable::admin::v2::UpdateAppProfileRequest const& request); + virtual StatusOr UpdateAppProfile( + ExperimentalTag, NoAwaitTag, + google::bigtable::admin::v2::UpdateAppProfileRequest const& request); + + virtual future> + UpdateAppProfile(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual Status DeleteAppProfile( google::bigtable::admin::v2::DeleteAppProfileRequest const& request); diff --git a/google/cloud/bigtable/admin/bigtable_table_admin_connection.cc b/google/cloud/bigtable/admin/bigtable_table_admin_connection.cc index fbfc9c041fef3..55a6d826f526c 100644 --- a/google/cloud/bigtable/admin/bigtable_table_admin_connection.cc +++ b/google/cloud/bigtable/admin/bigtable_table_admin_connection.cc @@ -66,6 +66,22 @@ BigtableTableAdminConnection::UpdateTable( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +BigtableTableAdminConnection::UpdateTable( + ExperimentalTag, NoAwaitTag, + google::bigtable::admin::v2::UpdateTableRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +BigtableTableAdminConnection::UpdateTable( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + Status BigtableTableAdminConnection::DeleteTable( google::bigtable::admin::v2::DeleteTableRequest const&) { return Status(StatusCode::kUnimplemented, "not implemented"); @@ -79,6 +95,22 @@ BigtableTableAdminConnection::UndeleteTable( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +BigtableTableAdminConnection::UndeleteTable( + ExperimentalTag, NoAwaitTag, + google::bigtable::admin::v2::UndeleteTableRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +BigtableTableAdminConnection::UndeleteTable( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> BigtableTableAdminConnection::CreateAuthorizedView( google::bigtable::admin::v2::CreateAuthorizedViewRequest const&) { @@ -87,6 +119,22 @@ BigtableTableAdminConnection::CreateAuthorizedView( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +BigtableTableAdminConnection::CreateAuthorizedView( + ExperimentalTag, NoAwaitTag, + google::bigtable::admin::v2::CreateAuthorizedViewRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +BigtableTableAdminConnection::CreateAuthorizedView( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StreamRange BigtableTableAdminConnection::ListAuthorizedViews( google::bigtable::admin::v2:: @@ -109,6 +157,22 @@ BigtableTableAdminConnection::UpdateAuthorizedView( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +BigtableTableAdminConnection::UpdateAuthorizedView( + ExperimentalTag, NoAwaitTag, + google::bigtable::admin::v2::UpdateAuthorizedViewRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +BigtableTableAdminConnection::UpdateAuthorizedView( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + Status BigtableTableAdminConnection::DeleteAuthorizedView( google::bigtable::admin::v2::DeleteAuthorizedViewRequest const&) { return Status(StatusCode::kUnimplemented, "not implemented"); @@ -145,6 +209,22 @@ BigtableTableAdminConnection::CreateBackup( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +BigtableTableAdminConnection::CreateBackup( + ExperimentalTag, NoAwaitTag, + google::bigtable::admin::v2::CreateBackupRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +BigtableTableAdminConnection::CreateBackup( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr BigtableTableAdminConnection::GetBackup( google::bigtable::admin::v2::GetBackupRequest const&) { @@ -178,6 +258,22 @@ BigtableTableAdminConnection::RestoreTable( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +BigtableTableAdminConnection::RestoreTable( + ExperimentalTag, NoAwaitTag, + google::bigtable::admin::v2::RestoreTableRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +BigtableTableAdminConnection::RestoreTable( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> BigtableTableAdminConnection::CopyBackup( google::bigtable::admin::v2::CopyBackupRequest const&) { @@ -186,6 +282,22 @@ BigtableTableAdminConnection::CopyBackup( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +BigtableTableAdminConnection::CopyBackup( + ExperimentalTag, NoAwaitTag, + google::bigtable::admin::v2::CopyBackupRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +BigtableTableAdminConnection::CopyBackup( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr BigtableTableAdminConnection::GetIamPolicy( google::iam::v1::GetIamPolicyRequest const&) { return Status(StatusCode::kUnimplemented, "not implemented"); diff --git a/google/cloud/bigtable/admin/bigtable_table_admin_connection.h b/google/cloud/bigtable/admin/bigtable_table_admin_connection.h index 7a1958a10884b..9a237b469edb1 100644 --- a/google/cloud/bigtable/admin/bigtable_table_admin_connection.h +++ b/google/cloud/bigtable/admin/bigtable_table_admin_connection.h @@ -22,8 +22,10 @@ #include "google/cloud/bigtable/admin/bigtable_table_admin_connection_idempotency_policy.h" #include "google/cloud/bigtable/admin/internal/bigtable_table_admin_retry_traits.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/internal/retry_policy_impl.h" +#include "google/cloud/no_await_tag.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" #include "google/cloud/status_or.h" @@ -202,16 +204,38 @@ class BigtableTableAdminConnection { virtual future> UpdateTable( google::bigtable::admin::v2::UpdateTableRequest const& request); + virtual StatusOr UpdateTable( + ExperimentalTag, NoAwaitTag, + google::bigtable::admin::v2::UpdateTableRequest const& request); + + virtual future> UpdateTable( + ExperimentalTag, google::longrunning::Operation const& operation); + virtual Status DeleteTable( google::bigtable::admin::v2::DeleteTableRequest const& request); virtual future> UndeleteTable( google::bigtable::admin::v2::UndeleteTableRequest const& request); + virtual StatusOr UndeleteTable( + ExperimentalTag, NoAwaitTag, + google::bigtable::admin::v2::UndeleteTableRequest const& request); + + virtual future> UndeleteTable( + ExperimentalTag, google::longrunning::Operation const& operation); + virtual future> CreateAuthorizedView( google::bigtable::admin::v2::CreateAuthorizedViewRequest const& request); + virtual StatusOr CreateAuthorizedView( + ExperimentalTag, NoAwaitTag, + google::bigtable::admin::v2::CreateAuthorizedViewRequest const& request); + + virtual future> + CreateAuthorizedView(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StreamRange ListAuthorizedViews( google::bigtable::admin::v2::ListAuthorizedViewsRequest request); @@ -224,6 +248,14 @@ class BigtableTableAdminConnection { UpdateAuthorizedView( google::bigtable::admin::v2::UpdateAuthorizedViewRequest const& request); + virtual StatusOr UpdateAuthorizedView( + ExperimentalTag, NoAwaitTag, + google::bigtable::admin::v2::UpdateAuthorizedViewRequest const& request); + + virtual future> + UpdateAuthorizedView(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual Status DeleteAuthorizedView( google::bigtable::admin::v2::DeleteAuthorizedViewRequest const& request); @@ -246,6 +278,13 @@ class BigtableTableAdminConnection { virtual future> CreateBackup( google::bigtable::admin::v2::CreateBackupRequest const& request); + virtual StatusOr CreateBackup( + ExperimentalTag, NoAwaitTag, + google::bigtable::admin::v2::CreateBackupRequest const& request); + + virtual future> CreateBackup( + ExperimentalTag, google::longrunning::Operation const& operation); + virtual StatusOr GetBackup( google::bigtable::admin::v2::GetBackupRequest const& request); @@ -261,9 +300,23 @@ class BigtableTableAdminConnection { virtual future> RestoreTable( google::bigtable::admin::v2::RestoreTableRequest const& request); + virtual StatusOr RestoreTable( + ExperimentalTag, NoAwaitTag, + google::bigtable::admin::v2::RestoreTableRequest const& request); + + virtual future> RestoreTable( + ExperimentalTag, google::longrunning::Operation const& operation); + virtual future> CopyBackup( google::bigtable::admin::v2::CopyBackupRequest const& request); + virtual StatusOr CopyBackup( + ExperimentalTag, NoAwaitTag, + google::bigtable::admin::v2::CopyBackupRequest const& request); + + virtual future> CopyBackup( + ExperimentalTag, google::longrunning::Operation const& operation); + virtual StatusOr GetIamPolicy( google::iam::v1::GetIamPolicyRequest const& request); diff --git a/google/cloud/bigtable/admin/internal/bigtable_instance_admin_connection_impl.cc b/google/cloud/bigtable/admin/internal/bigtable_instance_admin_connection_impl.cc index 9bcc8f3eeb5cc..871f8b4fcbbb9 100644 --- a/google/cloud/bigtable/admin/internal/bigtable_instance_admin_connection_impl.cc +++ b/google/cloud/bigtable/admin/internal/bigtable_instance_admin_connection_impl.cc @@ -110,6 +110,59 @@ BigtableInstanceAdminConnectionImpl::CreateInstance( polling_policy(*current), __func__); } +StatusOr +BigtableInstanceAdminConnectionImpl::CreateInstance( + ExperimentalTag, NoAwaitTag, + google::bigtable::admin::v2::CreateInstanceRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateInstance(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::bigtable::admin::v2::CreateInstanceRequest const& request) { + return stub_->CreateInstance(context, options, request); + }, + *current, request, __func__); +} + +future> +BigtableInstanceAdminConnectionImpl::CreateInstance( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to CreateInstance", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::bigtable::admin::v2::Instance>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::bigtable::admin::v2::Instance>, + polling_policy(*current), __func__); +} + StatusOr BigtableInstanceAdminConnectionImpl::GetInstance( google::bigtable::admin::v2::GetInstanceRequest const& request) { @@ -192,6 +245,59 @@ BigtableInstanceAdminConnectionImpl::PartialUpdateInstance( polling_policy(*current), __func__); } +StatusOr +BigtableInstanceAdminConnectionImpl::PartialUpdateInstance( + ExperimentalTag, NoAwaitTag, + google::bigtable::admin::v2::PartialUpdateInstanceRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->PartialUpdateInstance(request), + [this](grpc::ClientContext& context, Options const& options, + google::bigtable::admin::v2::PartialUpdateInstanceRequest const& + request) { + return stub_->PartialUpdateInstance(context, options, request); + }, + *current, request, __func__); +} + +future> +BigtableInstanceAdminConnectionImpl::PartialUpdateInstance( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to PartialUpdateInstance", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::bigtable::admin::v2::Instance>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::bigtable::admin::v2::Instance>, + polling_policy(*current), __func__); +} + Status BigtableInstanceAdminConnectionImpl::DeleteInstance( google::bigtable::admin::v2::DeleteInstanceRequest const& request) { auto current = google::cloud::internal::SaveCurrentOptions(); @@ -245,6 +351,57 @@ BigtableInstanceAdminConnectionImpl::CreateCluster( polling_policy(*current), __func__); } +StatusOr +BigtableInstanceAdminConnectionImpl::CreateCluster( + ExperimentalTag, NoAwaitTag, + google::bigtable::admin::v2::CreateClusterRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateCluster(request), + [this](grpc::ClientContext& context, Options const& options, + google::bigtable::admin::v2::CreateClusterRequest const& request) { + return stub_->CreateCluster(context, options, request); + }, + *current, request, __func__); +} + +future> +BigtableInstanceAdminConnectionImpl::CreateCluster( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to CreateCluster", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::bigtable::admin::v2::Cluster>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::bigtable::admin::v2::Cluster>, + polling_policy(*current), __func__); +} + StatusOr BigtableInstanceAdminConnectionImpl::GetCluster( google::bigtable::admin::v2::GetClusterRequest const& request) { @@ -311,6 +468,57 @@ BigtableInstanceAdminConnectionImpl::UpdateCluster( polling_policy(*current), __func__); } +StatusOr +BigtableInstanceAdminConnectionImpl::UpdateCluster( + ExperimentalTag, NoAwaitTag, + google::bigtable::admin::v2::Cluster const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UpdateCluster(request), + [this](grpc::ClientContext& context, Options const& options, + google::bigtable::admin::v2::Cluster const& request) { + return stub_->UpdateCluster(context, options, request); + }, + *current, request, __func__); +} + +future> +BigtableInstanceAdminConnectionImpl::UpdateCluster( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to UpdateCluster", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::bigtable::admin::v2::Cluster>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::bigtable::admin::v2::Cluster>, + polling_policy(*current), __func__); +} + future> BigtableInstanceAdminConnectionImpl::PartialUpdateCluster( google::bigtable::admin::v2::PartialUpdateClusterRequest const& request) { @@ -351,6 +559,59 @@ BigtableInstanceAdminConnectionImpl::PartialUpdateCluster( polling_policy(*current), __func__); } +StatusOr +BigtableInstanceAdminConnectionImpl::PartialUpdateCluster( + ExperimentalTag, NoAwaitTag, + google::bigtable::admin::v2::PartialUpdateClusterRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->PartialUpdateCluster(request), + [this](grpc::ClientContext& context, Options const& options, + google::bigtable::admin::v2::PartialUpdateClusterRequest const& + request) { + return stub_->PartialUpdateCluster(context, options, request); + }, + *current, request, __func__); +} + +future> +BigtableInstanceAdminConnectionImpl::PartialUpdateCluster( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to PartialUpdateCluster", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::bigtable::admin::v2::Cluster>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::bigtable::admin::v2::Cluster>, + polling_policy(*current), __func__); +} + Status BigtableInstanceAdminConnectionImpl::DeleteCluster( google::bigtable::admin::v2::DeleteClusterRequest const& request) { auto current = google::cloud::internal::SaveCurrentOptions(); @@ -467,6 +728,59 @@ BigtableInstanceAdminConnectionImpl::UpdateAppProfile( polling_policy(*current), __func__); } +StatusOr +BigtableInstanceAdminConnectionImpl::UpdateAppProfile( + ExperimentalTag, NoAwaitTag, + google::bigtable::admin::v2::UpdateAppProfileRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UpdateAppProfile(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::bigtable::admin::v2::UpdateAppProfileRequest const& request) { + return stub_->UpdateAppProfile(context, options, request); + }, + *current, request, __func__); +} + +future> +BigtableInstanceAdminConnectionImpl::UpdateAppProfile( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to UpdateAppProfile", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::bigtable::admin::v2::AppProfile>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::bigtable::admin::v2::AppProfile>, + polling_policy(*current), __func__); +} + Status BigtableInstanceAdminConnectionImpl::DeleteAppProfile( google::bigtable::admin::v2::DeleteAppProfileRequest const& request) { auto current = google::cloud::internal::SaveCurrentOptions(); diff --git a/google/cloud/bigtable/admin/internal/bigtable_instance_admin_connection_impl.h b/google/cloud/bigtable/admin/internal/bigtable_instance_admin_connection_impl.h index 111dcd0c8c940..12fb2202b4ac6 100644 --- a/google/cloud/bigtable/admin/internal/bigtable_instance_admin_connection_impl.h +++ b/google/cloud/bigtable/admin/internal/bigtable_instance_admin_connection_impl.h @@ -56,6 +56,15 @@ class BigtableInstanceAdminConnectionImpl google::bigtable::admin::v2::CreateInstanceRequest const& request) override; + StatusOr CreateInstance( + ExperimentalTag, NoAwaitTag, + google::bigtable::admin::v2::CreateInstanceRequest const& request) + override; + + future> CreateInstance( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetInstance( google::bigtable::admin::v2::GetInstanceRequest const& request) override; @@ -70,6 +79,15 @@ class BigtableInstanceAdminConnectionImpl google::bigtable::admin::v2::PartialUpdateInstanceRequest const& request) override; + StatusOr PartialUpdateInstance( + ExperimentalTag, NoAwaitTag, + google::bigtable::admin::v2::PartialUpdateInstanceRequest const& request) + override; + + future> PartialUpdateInstance( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + Status DeleteInstance( google::bigtable::admin::v2::DeleteInstanceRequest const& request) override; @@ -78,6 +96,15 @@ class BigtableInstanceAdminConnectionImpl google::bigtable::admin::v2::CreateClusterRequest const& request) override; + StatusOr CreateCluster( + ExperimentalTag, NoAwaitTag, + google::bigtable::admin::v2::CreateClusterRequest const& request) + override; + + future> CreateCluster( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetCluster( google::bigtable::admin::v2::GetClusterRequest const& request) override; @@ -87,10 +114,27 @@ class BigtableInstanceAdminConnectionImpl future> UpdateCluster( google::bigtable::admin::v2::Cluster const& request) override; + StatusOr UpdateCluster( + ExperimentalTag, NoAwaitTag, + google::bigtable::admin::v2::Cluster const& request) override; + + future> UpdateCluster( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> PartialUpdateCluster( google::bigtable::admin::v2::PartialUpdateClusterRequest const& request) override; + StatusOr PartialUpdateCluster( + ExperimentalTag, NoAwaitTag, + google::bigtable::admin::v2::PartialUpdateClusterRequest const& request) + override; + + future> PartialUpdateCluster( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + Status DeleteCluster(google::bigtable::admin::v2::DeleteClusterRequest const& request) override; @@ -109,6 +153,15 @@ class BigtableInstanceAdminConnectionImpl google::bigtable::admin::v2::UpdateAppProfileRequest const& request) override; + StatusOr UpdateAppProfile( + ExperimentalTag, NoAwaitTag, + google::bigtable::admin::v2::UpdateAppProfileRequest const& request) + override; + + future> UpdateAppProfile( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + Status DeleteAppProfile( google::bigtable::admin::v2::DeleteAppProfileRequest const& request) override; diff --git a/google/cloud/bigtable/admin/internal/bigtable_instance_admin_tracing_connection.cc b/google/cloud/bigtable/admin/internal/bigtable_instance_admin_tracing_connection.cc index bebd5da81bdeb..a0837805ad410 100644 --- a/google/cloud/bigtable/admin/internal/bigtable_instance_admin_tracing_connection.cc +++ b/google/cloud/bigtable/admin/internal/bigtable_instance_admin_tracing_connection.cc @@ -42,6 +42,27 @@ BigtableInstanceAdminTracingConnection::CreateInstance( return internal::EndSpan(std::move(span), child_->CreateInstance(request)); } +StatusOr +BigtableInstanceAdminTracingConnection::CreateInstance( + ExperimentalTag, NoAwaitTag, + google::bigtable::admin::v2::CreateInstanceRequest const& request) { + auto span = internal::MakeSpan( + "bigtable_admin::BigtableInstanceAdminConnection::CreateInstance"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->CreateInstance(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +BigtableInstanceAdminTracingConnection::CreateInstance( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "bigtable_admin::BigtableInstanceAdminConnection::CreateInstance"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->CreateInstance(ExperimentalTag{}, operation)); +} + StatusOr BigtableInstanceAdminTracingConnection::GetInstance( google::bigtable::admin::v2::GetInstanceRequest const& request) { @@ -79,6 +100,28 @@ BigtableInstanceAdminTracingConnection::PartialUpdateInstance( child_->PartialUpdateInstance(request)); } +StatusOr +BigtableInstanceAdminTracingConnection::PartialUpdateInstance( + ExperimentalTag, NoAwaitTag, + google::bigtable::admin::v2::PartialUpdateInstanceRequest const& request) { + auto span = internal::MakeSpan( + "bigtable_admin::BigtableInstanceAdminConnection::PartialUpdateInstance"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->PartialUpdateInstance(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +BigtableInstanceAdminTracingConnection::PartialUpdateInstance( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "bigtable_admin::BigtableInstanceAdminConnection::PartialUpdateInstance"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->PartialUpdateInstance( + ExperimentalTag{}, operation)); +} + Status BigtableInstanceAdminTracingConnection::DeleteInstance( google::bigtable::admin::v2::DeleteInstanceRequest const& request) { auto span = internal::MakeSpan( @@ -96,6 +139,27 @@ BigtableInstanceAdminTracingConnection::CreateCluster( return internal::EndSpan(std::move(span), child_->CreateCluster(request)); } +StatusOr +BigtableInstanceAdminTracingConnection::CreateCluster( + ExperimentalTag, NoAwaitTag, + google::bigtable::admin::v2::CreateClusterRequest const& request) { + auto span = internal::MakeSpan( + "bigtable_admin::BigtableInstanceAdminConnection::CreateCluster"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->CreateCluster(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +BigtableInstanceAdminTracingConnection::CreateCluster( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "bigtable_admin::BigtableInstanceAdminConnection::CreateCluster"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->CreateCluster(ExperimentalTag{}, operation)); +} + StatusOr BigtableInstanceAdminTracingConnection::GetCluster( google::bigtable::admin::v2::GetClusterRequest const& request) { @@ -123,6 +187,27 @@ BigtableInstanceAdminTracingConnection::UpdateCluster( return internal::EndSpan(std::move(span), child_->UpdateCluster(request)); } +StatusOr +BigtableInstanceAdminTracingConnection::UpdateCluster( + ExperimentalTag, NoAwaitTag, + google::bigtable::admin::v2::Cluster const& request) { + auto span = internal::MakeSpan( + "bigtable_admin::BigtableInstanceAdminConnection::UpdateCluster"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->UpdateCluster(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +BigtableInstanceAdminTracingConnection::UpdateCluster( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "bigtable_admin::BigtableInstanceAdminConnection::UpdateCluster"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->UpdateCluster(ExperimentalTag{}, operation)); +} + future> BigtableInstanceAdminTracingConnection::PartialUpdateCluster( google::bigtable::admin::v2::PartialUpdateClusterRequest const& request) { @@ -133,6 +218,28 @@ BigtableInstanceAdminTracingConnection::PartialUpdateCluster( child_->PartialUpdateCluster(request)); } +StatusOr +BigtableInstanceAdminTracingConnection::PartialUpdateCluster( + ExperimentalTag, NoAwaitTag, + google::bigtable::admin::v2::PartialUpdateClusterRequest const& request) { + auto span = internal::MakeSpan( + "bigtable_admin::BigtableInstanceAdminConnection::PartialUpdateCluster"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->PartialUpdateCluster(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +BigtableInstanceAdminTracingConnection::PartialUpdateCluster( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "bigtable_admin::BigtableInstanceAdminConnection::PartialUpdateCluster"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->PartialUpdateCluster( + ExperimentalTag{}, operation)); +} + Status BigtableInstanceAdminTracingConnection::DeleteCluster( google::bigtable::admin::v2::DeleteClusterRequest const& request) { auto span = internal::MakeSpan( @@ -179,6 +286,28 @@ BigtableInstanceAdminTracingConnection::UpdateAppProfile( return internal::EndSpan(std::move(span), child_->UpdateAppProfile(request)); } +StatusOr +BigtableInstanceAdminTracingConnection::UpdateAppProfile( + ExperimentalTag, NoAwaitTag, + google::bigtable::admin::v2::UpdateAppProfileRequest const& request) { + auto span = internal::MakeSpan( + "bigtable_admin::BigtableInstanceAdminConnection::UpdateAppProfile"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->UpdateAppProfile(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +BigtableInstanceAdminTracingConnection::UpdateAppProfile( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "bigtable_admin::BigtableInstanceAdminConnection::UpdateAppProfile"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->UpdateAppProfile(ExperimentalTag{}, operation)); +} + Status BigtableInstanceAdminTracingConnection::DeleteAppProfile( google::bigtable::admin::v2::DeleteAppProfileRequest const& request) { auto span = internal::MakeSpan( diff --git a/google/cloud/bigtable/admin/internal/bigtable_instance_admin_tracing_connection.h b/google/cloud/bigtable/admin/internal/bigtable_instance_admin_tracing_connection.h index aaa14e3a3bcc2..1b0582ab9be79 100644 --- a/google/cloud/bigtable/admin/internal/bigtable_instance_admin_tracing_connection.h +++ b/google/cloud/bigtable/admin/internal/bigtable_instance_admin_tracing_connection.h @@ -44,6 +44,15 @@ class BigtableInstanceAdminTracingConnection google::bigtable::admin::v2::CreateInstanceRequest const& request) override; + StatusOr CreateInstance( + ExperimentalTag, NoAwaitTag, + google::bigtable::admin::v2::CreateInstanceRequest const& request) + override; + + future> CreateInstance( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetInstance( google::bigtable::admin::v2::GetInstanceRequest const& request) override; @@ -58,6 +67,15 @@ class BigtableInstanceAdminTracingConnection google::bigtable::admin::v2::PartialUpdateInstanceRequest const& request) override; + StatusOr PartialUpdateInstance( + ExperimentalTag, NoAwaitTag, + google::bigtable::admin::v2::PartialUpdateInstanceRequest const& request) + override; + + future> PartialUpdateInstance( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + Status DeleteInstance( google::bigtable::admin::v2::DeleteInstanceRequest const& request) override; @@ -66,6 +84,15 @@ class BigtableInstanceAdminTracingConnection google::bigtable::admin::v2::CreateClusterRequest const& request) override; + StatusOr CreateCluster( + ExperimentalTag, NoAwaitTag, + google::bigtable::admin::v2::CreateClusterRequest const& request) + override; + + future> CreateCluster( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetCluster( google::bigtable::admin::v2::GetClusterRequest const& request) override; @@ -75,10 +102,27 @@ class BigtableInstanceAdminTracingConnection future> UpdateCluster( google::bigtable::admin::v2::Cluster const& request) override; + StatusOr UpdateCluster( + ExperimentalTag, NoAwaitTag, + google::bigtable::admin::v2::Cluster const& request) override; + + future> UpdateCluster( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> PartialUpdateCluster( google::bigtable::admin::v2::PartialUpdateClusterRequest const& request) override; + StatusOr PartialUpdateCluster( + ExperimentalTag, NoAwaitTag, + google::bigtable::admin::v2::PartialUpdateClusterRequest const& request) + override; + + future> PartialUpdateCluster( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + Status DeleteCluster(google::bigtable::admin::v2::DeleteClusterRequest const& request) override; @@ -97,6 +141,15 @@ class BigtableInstanceAdminTracingConnection google::bigtable::admin::v2::UpdateAppProfileRequest const& request) override; + StatusOr UpdateAppProfile( + ExperimentalTag, NoAwaitTag, + google::bigtable::admin::v2::UpdateAppProfileRequest const& request) + override; + + future> UpdateAppProfile( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + Status DeleteAppProfile( google::bigtable::admin::v2::DeleteAppProfileRequest const& request) override; diff --git a/google/cloud/bigtable/admin/internal/bigtable_table_admin_connection_impl.cc b/google/cloud/bigtable/admin/internal/bigtable_table_admin_connection_impl.cc index b61f965601cca..017caedef2617 100644 --- a/google/cloud/bigtable/admin/internal/bigtable_table_admin_connection_impl.cc +++ b/google/cloud/bigtable/admin/internal/bigtable_table_admin_connection_impl.cc @@ -170,6 +170,57 @@ BigtableTableAdminConnectionImpl::UpdateTable( polling_policy(*current), __func__); } +StatusOr +BigtableTableAdminConnectionImpl::UpdateTable( + ExperimentalTag, NoAwaitTag, + google::bigtable::admin::v2::UpdateTableRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UpdateTable(request), + [this](grpc::ClientContext& context, Options const& options, + google::bigtable::admin::v2::UpdateTableRequest const& request) { + return stub_->UpdateTable(context, options, request); + }, + *current, request, __func__); +} + +future> +BigtableTableAdminConnectionImpl::UpdateTable( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to UpdateTable", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::bigtable::admin::v2::Table>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::bigtable::admin::v2::Table>, + polling_policy(*current), __func__); +} + Status BigtableTableAdminConnectionImpl::DeleteTable( google::bigtable::admin::v2::DeleteTableRequest const& request) { auto current = google::cloud::internal::SaveCurrentOptions(); @@ -222,6 +273,57 @@ BigtableTableAdminConnectionImpl::UndeleteTable( polling_policy(*current), __func__); } +StatusOr +BigtableTableAdminConnectionImpl::UndeleteTable( + ExperimentalTag, NoAwaitTag, + google::bigtable::admin::v2::UndeleteTableRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UndeleteTable(request), + [this](grpc::ClientContext& context, Options const& options, + google::bigtable::admin::v2::UndeleteTableRequest const& request) { + return stub_->UndeleteTable(context, options, request); + }, + *current, request, __func__); +} + +future> +BigtableTableAdminConnectionImpl::UndeleteTable( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to UndeleteTable", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::bigtable::admin::v2::Table>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::bigtable::admin::v2::Table>, + polling_policy(*current), __func__); +} + future> BigtableTableAdminConnectionImpl::CreateAuthorizedView( google::bigtable::admin::v2::CreateAuthorizedViewRequest const& request) { @@ -262,6 +364,60 @@ BigtableTableAdminConnectionImpl::CreateAuthorizedView( polling_policy(*current), __func__); } +StatusOr +BigtableTableAdminConnectionImpl::CreateAuthorizedView( + ExperimentalTag, NoAwaitTag, + google::bigtable::admin::v2::CreateAuthorizedViewRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateAuthorizedView(request), + [this](grpc::ClientContext& context, Options const& options, + google::bigtable::admin::v2::CreateAuthorizedViewRequest const& + request) { + return stub_->CreateAuthorizedView(context, options, request); + }, + *current, request, __func__); +} + +future> +BigtableTableAdminConnectionImpl::CreateAuthorizedView( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to CreateAuthorizedView", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::bigtable::admin::v2::AuthorizedView>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::bigtable::admin::v2::AuthorizedView>, + polling_policy(*current), __func__); +} + StreamRange BigtableTableAdminConnectionImpl::ListAuthorizedViews( google::bigtable::admin::v2::ListAuthorizedViewsRequest request) { @@ -352,6 +508,60 @@ BigtableTableAdminConnectionImpl::UpdateAuthorizedView( polling_policy(*current), __func__); } +StatusOr +BigtableTableAdminConnectionImpl::UpdateAuthorizedView( + ExperimentalTag, NoAwaitTag, + google::bigtable::admin::v2::UpdateAuthorizedViewRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UpdateAuthorizedView(request), + [this](grpc::ClientContext& context, Options const& options, + google::bigtable::admin::v2::UpdateAuthorizedViewRequest const& + request) { + return stub_->UpdateAuthorizedView(context, options, request); + }, + *current, request, __func__); +} + +future> +BigtableTableAdminConnectionImpl::UpdateAuthorizedView( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to UpdateAuthorizedView", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::bigtable::admin::v2::AuthorizedView>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::bigtable::admin::v2::AuthorizedView>, + polling_policy(*current), __func__); +} + Status BigtableTableAdminConnectionImpl::DeleteAuthorizedView( google::bigtable::admin::v2::DeleteAuthorizedViewRequest const& request) { auto current = google::cloud::internal::SaveCurrentOptions(); @@ -464,6 +674,57 @@ BigtableTableAdminConnectionImpl::CreateBackup( polling_policy(*current), __func__); } +StatusOr +BigtableTableAdminConnectionImpl::CreateBackup( + ExperimentalTag, NoAwaitTag, + google::bigtable::admin::v2::CreateBackupRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateBackup(request), + [this](grpc::ClientContext& context, Options const& options, + google::bigtable::admin::v2::CreateBackupRequest const& request) { + return stub_->CreateBackup(context, options, request); + }, + *current, request, __func__); +} + +future> +BigtableTableAdminConnectionImpl::CreateBackup( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to CreateBackup", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::bigtable::admin::v2::Backup>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::bigtable::admin::v2::Backup>, + polling_policy(*current), __func__); +} + StatusOr BigtableTableAdminConnectionImpl::GetBackup( google::bigtable::admin::v2::GetBackupRequest const& request) { @@ -578,6 +839,57 @@ BigtableTableAdminConnectionImpl::RestoreTable( polling_policy(*current), __func__); } +StatusOr +BigtableTableAdminConnectionImpl::RestoreTable( + ExperimentalTag, NoAwaitTag, + google::bigtable::admin::v2::RestoreTableRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->RestoreTable(request), + [this](grpc::ClientContext& context, Options const& options, + google::bigtable::admin::v2::RestoreTableRequest const& request) { + return stub_->RestoreTable(context, options, request); + }, + *current, request, __func__); +} + +future> +BigtableTableAdminConnectionImpl::RestoreTable( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to RestoreTable", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::bigtable::admin::v2::Table>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::bigtable::admin::v2::Table>, + polling_policy(*current), __func__); +} + future> BigtableTableAdminConnectionImpl::CopyBackup( google::bigtable::admin::v2::CopyBackupRequest const& request) { @@ -617,6 +929,57 @@ BigtableTableAdminConnectionImpl::CopyBackup( polling_policy(*current), __func__); } +StatusOr +BigtableTableAdminConnectionImpl::CopyBackup( + ExperimentalTag, NoAwaitTag, + google::bigtable::admin::v2::CopyBackupRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CopyBackup(request), + [this](grpc::ClientContext& context, Options const& options, + google::bigtable::admin::v2::CopyBackupRequest const& request) { + return stub_->CopyBackup(context, options, request); + }, + *current, request, __func__); +} + +future> +BigtableTableAdminConnectionImpl::CopyBackup( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to CopyBackup", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::bigtable::admin::v2::Backup>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::bigtable::admin::v2::Backup>, + polling_policy(*current), __func__); +} + StatusOr BigtableTableAdminConnectionImpl::GetIamPolicy( google::iam::v1::GetIamPolicyRequest const& request) { diff --git a/google/cloud/bigtable/admin/internal/bigtable_table_admin_connection_impl.h b/google/cloud/bigtable/admin/internal/bigtable_table_admin_connection_impl.h index 1890ef2a2194c..76737dc1cdfff 100644 --- a/google/cloud/bigtable/admin/internal/bigtable_table_admin_connection_impl.h +++ b/google/cloud/bigtable/admin/internal/bigtable_table_admin_connection_impl.h @@ -64,6 +64,14 @@ class BigtableTableAdminConnectionImpl future> UpdateTable( google::bigtable::admin::v2::UpdateTableRequest const& request) override; + StatusOr UpdateTable( + ExperimentalTag, NoAwaitTag, + google::bigtable::admin::v2::UpdateTableRequest const& request) override; + + future> UpdateTable( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + Status DeleteTable( google::bigtable::admin::v2::DeleteTableRequest const& request) override; @@ -71,11 +79,30 @@ class BigtableTableAdminConnectionImpl google::bigtable::admin::v2::UndeleteTableRequest const& request) override; + StatusOr UndeleteTable( + ExperimentalTag, NoAwaitTag, + google::bigtable::admin::v2::UndeleteTableRequest const& request) + override; + + future> UndeleteTable( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> CreateAuthorizedView( google::bigtable::admin::v2::CreateAuthorizedViewRequest const& request) override; + StatusOr CreateAuthorizedView( + ExperimentalTag, NoAwaitTag, + google::bigtable::admin::v2::CreateAuthorizedViewRequest const& request) + override; + + future> + CreateAuthorizedView( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListAuthorizedViews( google::bigtable::admin::v2::ListAuthorizedViewsRequest request) override; @@ -88,6 +115,16 @@ class BigtableTableAdminConnectionImpl google::bigtable::admin::v2::UpdateAuthorizedViewRequest const& request) override; + StatusOr UpdateAuthorizedView( + ExperimentalTag, NoAwaitTag, + google::bigtable::admin::v2::UpdateAuthorizedViewRequest const& request) + override; + + future> + UpdateAuthorizedView( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + Status DeleteAuthorizedView( google::bigtable::admin::v2::DeleteAuthorizedViewRequest const& request) override; @@ -111,6 +148,14 @@ class BigtableTableAdminConnectionImpl future> CreateBackup( google::bigtable::admin::v2::CreateBackupRequest const& request) override; + StatusOr CreateBackup( + ExperimentalTag, NoAwaitTag, + google::bigtable::admin::v2::CreateBackupRequest const& request) override; + + future> CreateBackup( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetBackup( google::bigtable::admin::v2::GetBackupRequest const& request) override; @@ -126,9 +171,25 @@ class BigtableTableAdminConnectionImpl future> RestoreTable( google::bigtable::admin::v2::RestoreTableRequest const& request) override; + StatusOr RestoreTable( + ExperimentalTag, NoAwaitTag, + google::bigtable::admin::v2::RestoreTableRequest const& request) override; + + future> RestoreTable( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> CopyBackup( google::bigtable::admin::v2::CopyBackupRequest const& request) override; + StatusOr CopyBackup( + ExperimentalTag, NoAwaitTag, + google::bigtable::admin::v2::CopyBackupRequest const& request) override; + + future> CopyBackup( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetIamPolicy( google::iam::v1::GetIamPolicyRequest const& request) override; diff --git a/google/cloud/bigtable/admin/internal/bigtable_table_admin_tracing_connection.cc b/google/cloud/bigtable/admin/internal/bigtable_table_admin_tracing_connection.cc index e8ebf108863e3..c98af9f60f065 100644 --- a/google/cloud/bigtable/admin/internal/bigtable_table_admin_tracing_connection.cc +++ b/google/cloud/bigtable/admin/internal/bigtable_table_admin_tracing_connection.cc @@ -71,6 +71,27 @@ BigtableTableAdminTracingConnection::UpdateTable( return internal::EndSpan(std::move(span), child_->UpdateTable(request)); } +StatusOr +BigtableTableAdminTracingConnection::UpdateTable( + ExperimentalTag, NoAwaitTag, + google::bigtable::admin::v2::UpdateTableRequest const& request) { + auto span = internal::MakeSpan( + "bigtable_admin::BigtableTableAdminConnection::UpdateTable"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->UpdateTable(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +BigtableTableAdminTracingConnection::UpdateTable( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "bigtable_admin::BigtableTableAdminConnection::UpdateTable"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->UpdateTable(ExperimentalTag{}, operation)); +} + Status BigtableTableAdminTracingConnection::DeleteTable( google::bigtable::admin::v2::DeleteTableRequest const& request) { auto span = internal::MakeSpan( @@ -88,6 +109,27 @@ BigtableTableAdminTracingConnection::UndeleteTable( return internal::EndSpan(std::move(span), child_->UndeleteTable(request)); } +StatusOr +BigtableTableAdminTracingConnection::UndeleteTable( + ExperimentalTag, NoAwaitTag, + google::bigtable::admin::v2::UndeleteTableRequest const& request) { + auto span = internal::MakeSpan( + "bigtable_admin::BigtableTableAdminConnection::UndeleteTable"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->UndeleteTable(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +BigtableTableAdminTracingConnection::UndeleteTable( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "bigtable_admin::BigtableTableAdminConnection::UndeleteTable"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->UndeleteTable(ExperimentalTag{}, operation)); +} + future> BigtableTableAdminTracingConnection::CreateAuthorizedView( google::bigtable::admin::v2::CreateAuthorizedViewRequest const& request) { @@ -98,6 +140,28 @@ BigtableTableAdminTracingConnection::CreateAuthorizedView( child_->CreateAuthorizedView(request)); } +StatusOr +BigtableTableAdminTracingConnection::CreateAuthorizedView( + ExperimentalTag, NoAwaitTag, + google::bigtable::admin::v2::CreateAuthorizedViewRequest const& request) { + auto span = internal::MakeSpan( + "bigtable_admin::BigtableTableAdminConnection::CreateAuthorizedView"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->CreateAuthorizedView(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +BigtableTableAdminTracingConnection::CreateAuthorizedView( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "bigtable_admin::BigtableTableAdminConnection::CreateAuthorizedView"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->CreateAuthorizedView( + ExperimentalTag{}, operation)); +} + StreamRange BigtableTableAdminTracingConnection::ListAuthorizedViews( google::bigtable::admin::v2::ListAuthorizedViewsRequest request) { @@ -129,6 +193,28 @@ BigtableTableAdminTracingConnection::UpdateAuthorizedView( child_->UpdateAuthorizedView(request)); } +StatusOr +BigtableTableAdminTracingConnection::UpdateAuthorizedView( + ExperimentalTag, NoAwaitTag, + google::bigtable::admin::v2::UpdateAuthorizedViewRequest const& request) { + auto span = internal::MakeSpan( + "bigtable_admin::BigtableTableAdminConnection::UpdateAuthorizedView"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->UpdateAuthorizedView(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +BigtableTableAdminTracingConnection::UpdateAuthorizedView( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "bigtable_admin::BigtableTableAdminConnection::UpdateAuthorizedView"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->UpdateAuthorizedView( + ExperimentalTag{}, operation)); +} + Status BigtableTableAdminTracingConnection::DeleteAuthorizedView( google::bigtable::admin::v2::DeleteAuthorizedViewRequest const& request) { auto span = internal::MakeSpan( @@ -182,6 +268,27 @@ BigtableTableAdminTracingConnection::CreateBackup( return internal::EndSpan(std::move(span), child_->CreateBackup(request)); } +StatusOr +BigtableTableAdminTracingConnection::CreateBackup( + ExperimentalTag, NoAwaitTag, + google::bigtable::admin::v2::CreateBackupRequest const& request) { + auto span = internal::MakeSpan( + "bigtable_admin::BigtableTableAdminConnection::CreateBackup"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->CreateBackup(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +BigtableTableAdminTracingConnection::CreateBackup( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "bigtable_admin::BigtableTableAdminConnection::CreateBackup"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->CreateBackup(ExperimentalTag{}, operation)); +} + StatusOr BigtableTableAdminTracingConnection::GetBackup( google::bigtable::admin::v2::GetBackupRequest const& request) { @@ -228,6 +335,27 @@ BigtableTableAdminTracingConnection::RestoreTable( return internal::EndSpan(std::move(span), child_->RestoreTable(request)); } +StatusOr +BigtableTableAdminTracingConnection::RestoreTable( + ExperimentalTag, NoAwaitTag, + google::bigtable::admin::v2::RestoreTableRequest const& request) { + auto span = internal::MakeSpan( + "bigtable_admin::BigtableTableAdminConnection::RestoreTable"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->RestoreTable(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +BigtableTableAdminTracingConnection::RestoreTable( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "bigtable_admin::BigtableTableAdminConnection::RestoreTable"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->RestoreTable(ExperimentalTag{}, operation)); +} + future> BigtableTableAdminTracingConnection::CopyBackup( google::bigtable::admin::v2::CopyBackupRequest const& request) { @@ -237,6 +365,27 @@ BigtableTableAdminTracingConnection::CopyBackup( return internal::EndSpan(std::move(span), child_->CopyBackup(request)); } +StatusOr +BigtableTableAdminTracingConnection::CopyBackup( + ExperimentalTag, NoAwaitTag, + google::bigtable::admin::v2::CopyBackupRequest const& request) { + auto span = internal::MakeSpan( + "bigtable_admin::BigtableTableAdminConnection::CopyBackup"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->CopyBackup(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +BigtableTableAdminTracingConnection::CopyBackup( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "bigtable_admin::BigtableTableAdminConnection::CopyBackup"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->CopyBackup(ExperimentalTag{}, operation)); +} + StatusOr BigtableTableAdminTracingConnection::GetIamPolicy( google::iam::v1::GetIamPolicyRequest const& request) { diff --git a/google/cloud/bigtable/admin/internal/bigtable_table_admin_tracing_connection.h b/google/cloud/bigtable/admin/internal/bigtable_table_admin_tracing_connection.h index 03cc4d6ea9d2a..0f0a0f84d5bb2 100644 --- a/google/cloud/bigtable/admin/internal/bigtable_table_admin_tracing_connection.h +++ b/google/cloud/bigtable/admin/internal/bigtable_table_admin_tracing_connection.h @@ -52,6 +52,14 @@ class BigtableTableAdminTracingConnection future> UpdateTable( google::bigtable::admin::v2::UpdateTableRequest const& request) override; + StatusOr UpdateTable( + ExperimentalTag, NoAwaitTag, + google::bigtable::admin::v2::UpdateTableRequest const& request) override; + + future> UpdateTable( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + Status DeleteTable( google::bigtable::admin::v2::DeleteTableRequest const& request) override; @@ -59,11 +67,30 @@ class BigtableTableAdminTracingConnection google::bigtable::admin::v2::UndeleteTableRequest const& request) override; + StatusOr UndeleteTable( + ExperimentalTag, NoAwaitTag, + google::bigtable::admin::v2::UndeleteTableRequest const& request) + override; + + future> UndeleteTable( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> CreateAuthorizedView( google::bigtable::admin::v2::CreateAuthorizedViewRequest const& request) override; + StatusOr CreateAuthorizedView( + ExperimentalTag, NoAwaitTag, + google::bigtable::admin::v2::CreateAuthorizedViewRequest const& request) + override; + + future> + CreateAuthorizedView( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListAuthorizedViews( google::bigtable::admin::v2::ListAuthorizedViewsRequest request) override; @@ -76,6 +103,16 @@ class BigtableTableAdminTracingConnection google::bigtable::admin::v2::UpdateAuthorizedViewRequest const& request) override; + StatusOr UpdateAuthorizedView( + ExperimentalTag, NoAwaitTag, + google::bigtable::admin::v2::UpdateAuthorizedViewRequest const& request) + override; + + future> + UpdateAuthorizedView( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + Status DeleteAuthorizedView( google::bigtable::admin::v2::DeleteAuthorizedViewRequest const& request) override; @@ -99,6 +136,14 @@ class BigtableTableAdminTracingConnection future> CreateBackup( google::bigtable::admin::v2::CreateBackupRequest const& request) override; + StatusOr CreateBackup( + ExperimentalTag, NoAwaitTag, + google::bigtable::admin::v2::CreateBackupRequest const& request) override; + + future> CreateBackup( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetBackup( google::bigtable::admin::v2::GetBackupRequest const& request) override; @@ -114,9 +159,25 @@ class BigtableTableAdminTracingConnection future> RestoreTable( google::bigtable::admin::v2::RestoreTableRequest const& request) override; + StatusOr RestoreTable( + ExperimentalTag, NoAwaitTag, + google::bigtable::admin::v2::RestoreTableRequest const& request) override; + + future> RestoreTable( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> CopyBackup( google::bigtable::admin::v2::CopyBackupRequest const& request) override; + StatusOr CopyBackup( + ExperimentalTag, NoAwaitTag, + google::bigtable::admin::v2::CopyBackupRequest const& request) override; + + future> CopyBackup( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetIamPolicy( google::iam::v1::GetIamPolicyRequest const& request) override; diff --git a/google/cloud/bigtable/admin/mocks/mock_bigtable_instance_admin_connection.h b/google/cloud/bigtable/admin/mocks/mock_bigtable_instance_admin_connection.h index eb704b782375f..f95cf8f23f0f8 100644 --- a/google/cloud/bigtable/admin/mocks/mock_bigtable_instance_admin_connection.h +++ b/google/cloud/bigtable/admin/mocks/mock_bigtable_instance_admin_connection.h @@ -52,6 +52,18 @@ class MockBigtableInstanceAdminConnection (google::bigtable::admin::v2::CreateInstanceRequest const& request), (override)); + MOCK_METHOD( + StatusOr, CreateInstance, + (ExperimentalTag, NoAwaitTag, + google::bigtable::admin::v2::CreateInstanceRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateInstance, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(StatusOr, GetInstance, (google::bigtable::admin::v2::GetInstanceRequest const& request), (override)); @@ -72,6 +84,18 @@ class MockBigtableInstanceAdminConnection request), (override)); + MOCK_METHOD(StatusOr, PartialUpdateInstance, + (ExperimentalTag, NoAwaitTag, + google::bigtable::admin::v2::PartialUpdateInstanceRequest const& + request), + (override)); + + MOCK_METHOD(future>, + PartialUpdateInstance, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( Status, DeleteInstance, (google::bigtable::admin::v2::DeleteInstanceRequest const& request), @@ -82,6 +106,18 @@ class MockBigtableInstanceAdminConnection (google::bigtable::admin::v2::CreateClusterRequest const& request), (override)); + MOCK_METHOD( + StatusOr, CreateCluster, + (ExperimentalTag, NoAwaitTag, + google::bigtable::admin::v2::CreateClusterRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateCluster, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(StatusOr, GetCluster, (google::bigtable::admin::v2::GetClusterRequest const& request), (override)); @@ -96,12 +132,35 @@ class MockBigtableInstanceAdminConnection (google::bigtable::admin::v2::Cluster const& request), (override)); + MOCK_METHOD(StatusOr, UpdateCluster, + (ExperimentalTag, NoAwaitTag, + google::bigtable::admin::v2::Cluster const& request), + (override)); + + MOCK_METHOD(future>, + UpdateCluster, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, PartialUpdateCluster, (google::bigtable::admin::v2::PartialUpdateClusterRequest const& request), (override)); + MOCK_METHOD( + StatusOr, PartialUpdateCluster, + (ExperimentalTag, NoAwaitTag, + google::bigtable::admin::v2::PartialUpdateClusterRequest const& request), + (override)); + + MOCK_METHOD(future>, + PartialUpdateCluster, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( Status, DeleteCluster, (google::bigtable::admin::v2::DeleteClusterRequest const& request), @@ -128,6 +187,18 @@ class MockBigtableInstanceAdminConnection (google::bigtable::admin::v2::UpdateAppProfileRequest const& request), (override)); + MOCK_METHOD( + StatusOr, UpdateAppProfile, + (ExperimentalTag, NoAwaitTag, + google::bigtable::admin::v2::UpdateAppProfileRequest const& request), + (override)); + + MOCK_METHOD(future>, + UpdateAppProfile, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( Status, DeleteAppProfile, (google::bigtable::admin::v2::DeleteAppProfileRequest const& request), diff --git a/google/cloud/bigtable/admin/mocks/mock_bigtable_table_admin_connection.h b/google/cloud/bigtable/admin/mocks/mock_bigtable_table_admin_connection.h index 6bbd522b0d37f..8281216e8bfc3 100644 --- a/google/cloud/bigtable/admin/mocks/mock_bigtable_table_admin_connection.h +++ b/google/cloud/bigtable/admin/mocks/mock_bigtable_table_admin_connection.h @@ -63,6 +63,16 @@ class MockBigtableTableAdminConnection (google::bigtable::admin::v2::UpdateTableRequest const& request), (override)); + MOCK_METHOD(StatusOr, UpdateTable, + (ExperimentalTag, NoAwaitTag, + google::bigtable::admin::v2::UpdateTableRequest const& request), + (override)); + + MOCK_METHOD(future>, UpdateTable, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(Status, DeleteTable, (google::bigtable::admin::v2::DeleteTableRequest const& request), (override)); @@ -72,12 +82,36 @@ class MockBigtableTableAdminConnection (google::bigtable::admin::v2::UndeleteTableRequest const& request), (override)); + MOCK_METHOD( + StatusOr, UndeleteTable, + (ExperimentalTag, NoAwaitTag, + google::bigtable::admin::v2::UndeleteTableRequest const& request), + (override)); + + MOCK_METHOD(future>, + UndeleteTable, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, CreateAuthorizedView, (google::bigtable::admin::v2::CreateAuthorizedViewRequest const& request), (override)); + MOCK_METHOD( + StatusOr, CreateAuthorizedView, + (ExperimentalTag, NoAwaitTag, + google::bigtable::admin::v2::CreateAuthorizedViewRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateAuthorizedView, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD((StreamRange), ListAuthorizedViews, (google::bigtable::admin::v2::ListAuthorizedViewsRequest request), @@ -94,6 +128,18 @@ class MockBigtableTableAdminConnection (google::bigtable::admin::v2::UpdateAuthorizedViewRequest const& request), (override)); + MOCK_METHOD( + StatusOr, UpdateAuthorizedView, + (ExperimentalTag, NoAwaitTag, + google::bigtable::admin::v2::UpdateAuthorizedViewRequest const& request), + (override)); + + MOCK_METHOD(future>, + UpdateAuthorizedView, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( Status, DeleteAuthorizedView, (google::bigtable::admin::v2::DeleteAuthorizedViewRequest const& request), @@ -126,6 +172,17 @@ class MockBigtableTableAdminConnection (google::bigtable::admin::v2::CreateBackupRequest const& request), (override)); + MOCK_METHOD(StatusOr, CreateBackup, + (ExperimentalTag, NoAwaitTag, + google::bigtable::admin::v2::CreateBackupRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateBackup, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(StatusOr, GetBackup, (google::bigtable::admin::v2::GetBackupRequest const& request), (override)); @@ -147,10 +204,31 @@ class MockBigtableTableAdminConnection (google::bigtable::admin::v2::RestoreTableRequest const& request), (override)); + MOCK_METHOD(StatusOr, RestoreTable, + (ExperimentalTag, NoAwaitTag, + google::bigtable::admin::v2::RestoreTableRequest const& request), + (override)); + + MOCK_METHOD(future>, + RestoreTable, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, CopyBackup, (google::bigtable::admin::v2::CopyBackupRequest const& request), (override)); + MOCK_METHOD(StatusOr, CopyBackup, + (ExperimentalTag, NoAwaitTag, + google::bigtable::admin::v2::CopyBackupRequest const& request), + (override)); + + MOCK_METHOD(future>, CopyBackup, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(StatusOr, GetIamPolicy, (google::iam::v1::GetIamPolicyRequest const& request), (override)); diff --git a/google/cloud/bigtable/instance_admin_test.cc b/google/cloud/bigtable/instance_admin_test.cc index 4b4c15e27ff43..0ccc713815799 100644 --- a/google/cloud/bigtable/instance_admin_test.cc +++ b/google/cloud/bigtable/instance_admin_test.cc @@ -53,6 +53,7 @@ using ::google::cloud::bigtable::testing::MockPollingPolicy; using ::google::cloud::bigtable::testing::MockRetryPolicy; using ::google::cloud::bigtable_internal::InstanceAdminTester; using ::google::cloud::testing_util::StatusIs; +using ::testing::_; using ::testing::An; using ::testing::Contains; using ::testing::ElementsAreArray; @@ -300,7 +301,7 @@ TEST_F(InstanceAdminTest, CreateInstance) { {"c1", ClusterConfig("l1", 3, btadmin::HDD)}}; auto config = InstanceConfig(kInstanceId, kDisplayName, cluster_map); - EXPECT_CALL(*connection_, CreateInstance) + EXPECT_CALL(*connection_, CreateInstance(_)) .WillOnce([&](btadmin::CreateInstanceRequest const& request) { CheckOptions(google::cloud::internal::CurrentOptions()); EXPECT_EQ(kInstanceId, request.instance_id()); @@ -324,7 +325,7 @@ TEST_F(InstanceAdminTest, CreateCluster) { auto const location_name = LocationName("the-location"); auto config = ClusterConfig("the-location", 3, btadmin::HDD); - EXPECT_CALL(*connection_, CreateCluster) + EXPECT_CALL(*connection_, CreateCluster(_)) .WillOnce([&](btadmin::CreateClusterRequest const& request) { CheckOptions(google::cloud::internal::CurrentOptions()); EXPECT_EQ(kClusterId, request.cluster_id()); @@ -345,7 +346,7 @@ TEST_F(InstanceAdminTest, UpdateInstance) { InstanceUpdateConfig config({}); config.set_display_name(kDisplayName); - EXPECT_CALL(*connection_, PartialUpdateInstance) + EXPECT_CALL(*connection_, PartialUpdateInstance(_)) .WillOnce([&](btadmin::PartialUpdateInstanceRequest const& request) { CheckOptions(google::cloud::internal::CurrentOptions()); EXPECT_EQ(kDisplayName, request.instance().display_name()); @@ -458,7 +459,7 @@ TEST_F(InstanceAdminTest, UpdateCluster) { c.set_default_storage_type(btadmin::HDD); auto config = ClusterConfig(std::move(c)); - EXPECT_CALL(*connection_, UpdateCluster) + EXPECT_CALL(*connection_, UpdateCluster(_)) .WillOnce([&](btadmin::Cluster const& cluster) { CheckOptions(google::cloud::internal::CurrentOptions()); EXPECT_EQ(kClusterName, cluster.name()); @@ -520,7 +521,7 @@ TEST_F(InstanceAdminTest, UpdateAppProfile) { auto constexpr kDescription = "description"; auto config = AppProfileUpdateConfig().set_description(kDescription); - EXPECT_CALL(*connection_, UpdateAppProfile) + EXPECT_CALL(*connection_, UpdateAppProfile(_)) .WillOnce([&](btadmin::UpdateAppProfileRequest const& request) { CheckOptions(google::cloud::internal::CurrentOptions()); EXPECT_EQ(kProfileName, request.app_profile().name()); diff --git a/google/cloud/bigtable/table_admin_test.cc b/google/cloud/bigtable/table_admin_test.cc index 2462b9f0cc500..9dbb22392d881 100644 --- a/google/cloud/bigtable/table_admin_test.cc +++ b/google/cloud/bigtable/table_admin_test.cc @@ -79,6 +79,7 @@ using ::google::cloud::internal::ToChronoTimePoint; using ::google::cloud::testing_util::IsProtoEqual; using ::google::cloud::testing_util::StatusIs; using std::chrono::hours; +using ::testing::_; using ::testing::An; using ::testing::ElementsAre; using ::testing::ElementsAreArray; @@ -426,7 +427,7 @@ TEST_F(TableAdminTest, CreateBackup) { auto const expire_time = std::chrono::system_clock::now() + hours(24); auto admin = DefaultTableAdmin(); - EXPECT_CALL(*connection_, CreateBackup) + EXPECT_CALL(*connection_, CreateBackup(_)) .WillOnce([expire_time](btadmin::CreateBackupRequest const& request) { CheckOptions(google::cloud::internal::CurrentOptions()); EXPECT_EQ(kClusterName, request.parent()); @@ -584,7 +585,7 @@ TEST_F(TableAdminTest, RestoreTableParams) { TEST_F(TableAdminTest, RestoreTable) { auto admin = DefaultTableAdmin(); - EXPECT_CALL(*connection_, RestoreTable) + EXPECT_CALL(*connection_, RestoreTable(_)) .Times(2) .WillRepeatedly([](btadmin::RestoreTableRequest const& request) { CheckOptions(google::cloud::internal::CurrentOptions()); diff --git a/google/cloud/billing/budgets/v1/budget_connection.h b/google/cloud/billing/budgets/v1/budget_connection.h index 043e149ecd36b..7990b0a560b9b 100644 --- a/google/cloud/billing/budgets/v1/budget_connection.h +++ b/google/cloud/billing/budgets/v1/budget_connection.h @@ -22,6 +22,7 @@ #include "google/cloud/billing/budgets/v1/budget_connection_idempotency_policy.h" #include "google/cloud/billing/budgets/v1/internal/budget_retry_traits.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/internal/retry_policy_impl.h" #include "google/cloud/options.h" #include "google/cloud/status_or.h" diff --git a/google/cloud/billing/v1/cloud_billing_connection.h b/google/cloud/billing/v1/cloud_billing_connection.h index 99cbf66c45ac7..45221b9fcf345 100644 --- a/google/cloud/billing/v1/cloud_billing_connection.h +++ b/google/cloud/billing/v1/cloud_billing_connection.h @@ -22,6 +22,7 @@ #include "google/cloud/billing/v1/cloud_billing_connection_idempotency_policy.h" #include "google/cloud/billing/v1/internal/cloud_billing_retry_traits.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/internal/retry_policy_impl.h" #include "google/cloud/options.h" #include "google/cloud/status_or.h" diff --git a/google/cloud/billing/v1/cloud_catalog_connection.h b/google/cloud/billing/v1/cloud_catalog_connection.h index 3f7af5098a5b4..a93a565fa4bf8 100644 --- a/google/cloud/billing/v1/cloud_catalog_connection.h +++ b/google/cloud/billing/v1/cloud_catalog_connection.h @@ -22,6 +22,7 @@ #include "google/cloud/billing/v1/cloud_catalog_connection_idempotency_policy.h" #include "google/cloud/billing/v1/internal/cloud_catalog_retry_traits.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/internal/retry_policy_impl.h" #include "google/cloud/options.h" #include "google/cloud/status_or.h" diff --git a/google/cloud/binaryauthorization/v1/binauthz_management_service_v1_connection.h b/google/cloud/binaryauthorization/v1/binauthz_management_service_v1_connection.h index db4fffc36869d..921971e3b39c4 100644 --- a/google/cloud/binaryauthorization/v1/binauthz_management_service_v1_connection.h +++ b/google/cloud/binaryauthorization/v1/binauthz_management_service_v1_connection.h @@ -22,6 +22,7 @@ #include "google/cloud/binaryauthorization/v1/binauthz_management_service_v1_connection_idempotency_policy.h" #include "google/cloud/binaryauthorization/v1/internal/binauthz_management_service_v1_retry_traits.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/internal/retry_policy_impl.h" #include "google/cloud/options.h" #include "google/cloud/status_or.h" diff --git a/google/cloud/binaryauthorization/v1/system_policy_v1_connection.h b/google/cloud/binaryauthorization/v1/system_policy_v1_connection.h index e290a300a0200..a5eabbb614a5e 100644 --- a/google/cloud/binaryauthorization/v1/system_policy_v1_connection.h +++ b/google/cloud/binaryauthorization/v1/system_policy_v1_connection.h @@ -22,6 +22,7 @@ #include "google/cloud/binaryauthorization/v1/internal/system_policy_v1_retry_traits.h" #include "google/cloud/binaryauthorization/v1/system_policy_v1_connection_idempotency_policy.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/internal/retry_policy_impl.h" #include "google/cloud/options.h" #include "google/cloud/status_or.h" diff --git a/google/cloud/binaryauthorization/v1/validation_helper_v1_connection.h b/google/cloud/binaryauthorization/v1/validation_helper_v1_connection.h index 2813a6ff98716..814db9ee51061 100644 --- a/google/cloud/binaryauthorization/v1/validation_helper_v1_connection.h +++ b/google/cloud/binaryauthorization/v1/validation_helper_v1_connection.h @@ -22,6 +22,7 @@ #include "google/cloud/binaryauthorization/v1/internal/validation_helper_v1_retry_traits.h" #include "google/cloud/binaryauthorization/v1/validation_helper_v1_connection_idempotency_policy.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/internal/retry_policy_impl.h" #include "google/cloud/options.h" #include "google/cloud/status_or.h" diff --git a/google/cloud/certificatemanager/v1/certificate_manager_connection.cc b/google/cloud/certificatemanager/v1/certificate_manager_connection.cc index a19db0917a156..be67331bdca1c 100644 --- a/google/cloud/certificatemanager/v1/certificate_manager_connection.cc +++ b/google/cloud/certificatemanager/v1/certificate_manager_connection.cc @@ -60,6 +60,22 @@ CertificateManagerConnection::CreateCertificate( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +CertificateManagerConnection::CreateCertificate( + ExperimentalTag, NoAwaitTag, + google::cloud::certificatemanager::v1::CreateCertificateRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +CertificateManagerConnection::CreateCertificate( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> CertificateManagerConnection::UpdateCertificate( google::cloud::certificatemanager::v1::UpdateCertificateRequest const&) { @@ -68,6 +84,22 @@ CertificateManagerConnection::UpdateCertificate( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +CertificateManagerConnection::UpdateCertificate( + ExperimentalTag, NoAwaitTag, + google::cloud::certificatemanager::v1::UpdateCertificateRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +CertificateManagerConnection::UpdateCertificate( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> CertificateManagerConnection::DeleteCertificate( google::cloud::certificatemanager::v1::DeleteCertificateRequest const&) { @@ -76,6 +108,22 @@ CertificateManagerConnection::DeleteCertificate( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +CertificateManagerConnection::DeleteCertificate( + ExperimentalTag, NoAwaitTag, + google::cloud::certificatemanager::v1::DeleteCertificateRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +CertificateManagerConnection::DeleteCertificate( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StreamRange CertificateManagerConnection::ListCertificateMaps( google::cloud::certificatemanager::v1:: @@ -98,6 +146,22 @@ CertificateManagerConnection::CreateCertificateMap( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +CertificateManagerConnection::CreateCertificateMap( + ExperimentalTag, NoAwaitTag, + google::cloud::certificatemanager::v1::CreateCertificateMapRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +CertificateManagerConnection::CreateCertificateMap( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> CertificateManagerConnection::UpdateCertificateMap( google::cloud::certificatemanager::v1::UpdateCertificateMapRequest const&) { @@ -106,6 +170,22 @@ CertificateManagerConnection::UpdateCertificateMap( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +CertificateManagerConnection::UpdateCertificateMap( + ExperimentalTag, NoAwaitTag, + google::cloud::certificatemanager::v1::UpdateCertificateMapRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +CertificateManagerConnection::UpdateCertificateMap( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> CertificateManagerConnection::DeleteCertificateMap( google::cloud::certificatemanager::v1::DeleteCertificateMapRequest const&) { @@ -114,6 +194,22 @@ CertificateManagerConnection::DeleteCertificateMap( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +CertificateManagerConnection::DeleteCertificateMap( + ExperimentalTag, NoAwaitTag, + google::cloud::certificatemanager::v1::DeleteCertificateMapRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +CertificateManagerConnection::DeleteCertificateMap( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StreamRange CertificateManagerConnection::ListCertificateMapEntries( google::cloud::certificatemanager::v1:: @@ -138,6 +234,23 @@ CertificateManagerConnection::CreateCertificateMapEntry( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +CertificateManagerConnection::CreateCertificateMapEntry( + ExperimentalTag, NoAwaitTag, + google::cloud::certificatemanager::v1:: + CreateCertificateMapEntryRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +CertificateManagerConnection::CreateCertificateMapEntry( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> CertificateManagerConnection::UpdateCertificateMapEntry( google::cloud::certificatemanager::v1:: @@ -147,6 +260,23 @@ CertificateManagerConnection::UpdateCertificateMapEntry( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +CertificateManagerConnection::UpdateCertificateMapEntry( + ExperimentalTag, NoAwaitTag, + google::cloud::certificatemanager::v1:: + UpdateCertificateMapEntryRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +CertificateManagerConnection::UpdateCertificateMapEntry( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> CertificateManagerConnection::DeleteCertificateMapEntry( google::cloud::certificatemanager::v1:: @@ -156,6 +286,23 @@ CertificateManagerConnection::DeleteCertificateMapEntry( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +CertificateManagerConnection::DeleteCertificateMapEntry( + ExperimentalTag, NoAwaitTag, + google::cloud::certificatemanager::v1:: + DeleteCertificateMapEntryRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +CertificateManagerConnection::DeleteCertificateMapEntry( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StreamRange CertificateManagerConnection::ListDnsAuthorizations( google::cloud::certificatemanager::v1:: @@ -179,6 +326,23 @@ CertificateManagerConnection::CreateDnsAuthorization( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +CertificateManagerConnection::CreateDnsAuthorization( + ExperimentalTag, NoAwaitTag, + google::cloud::certificatemanager::v1:: + CreateDnsAuthorizationRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +CertificateManagerConnection::CreateDnsAuthorization( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> CertificateManagerConnection::UpdateDnsAuthorization( google::cloud::certificatemanager::v1:: @@ -188,6 +352,23 @@ CertificateManagerConnection::UpdateDnsAuthorization( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +CertificateManagerConnection::UpdateDnsAuthorization( + ExperimentalTag, NoAwaitTag, + google::cloud::certificatemanager::v1:: + UpdateDnsAuthorizationRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +CertificateManagerConnection::UpdateDnsAuthorization( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> CertificateManagerConnection::DeleteDnsAuthorization( google::cloud::certificatemanager::v1:: @@ -197,6 +378,23 @@ CertificateManagerConnection::DeleteDnsAuthorization( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +CertificateManagerConnection::DeleteDnsAuthorization( + ExperimentalTag, NoAwaitTag, + google::cloud::certificatemanager::v1:: + DeleteDnsAuthorizationRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +CertificateManagerConnection::DeleteDnsAuthorization( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StreamRange CertificateManagerConnection::ListCertificateIssuanceConfigs( google::cloud::certificatemanager::v1:: @@ -222,6 +420,24 @@ CertificateManagerConnection::CreateCertificateIssuanceConfig( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +CertificateManagerConnection::CreateCertificateIssuanceConfig( + ExperimentalTag, NoAwaitTag, + google::cloud::certificatemanager::v1:: + CreateCertificateIssuanceConfigRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future< + StatusOr> +CertificateManagerConnection::CreateCertificateIssuanceConfig( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> CertificateManagerConnection::DeleteCertificateIssuanceConfig( google::cloud::certificatemanager::v1:: @@ -231,6 +447,23 @@ CertificateManagerConnection::DeleteCertificateIssuanceConfig( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +CertificateManagerConnection::DeleteCertificateIssuanceConfig( + ExperimentalTag, NoAwaitTag, + google::cloud::certificatemanager::v1:: + DeleteCertificateIssuanceConfigRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +CertificateManagerConnection::DeleteCertificateIssuanceConfig( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StreamRange CertificateManagerConnection::ListTrustConfigs( google::cloud::certificatemanager::v1:: @@ -253,6 +486,22 @@ CertificateManagerConnection::CreateTrustConfig( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +CertificateManagerConnection::CreateTrustConfig( + ExperimentalTag, NoAwaitTag, + google::cloud::certificatemanager::v1::CreateTrustConfigRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +CertificateManagerConnection::CreateTrustConfig( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> CertificateManagerConnection::UpdateTrustConfig( google::cloud::certificatemanager::v1::UpdateTrustConfigRequest const&) { @@ -261,6 +510,22 @@ CertificateManagerConnection::UpdateTrustConfig( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +CertificateManagerConnection::UpdateTrustConfig( + ExperimentalTag, NoAwaitTag, + google::cloud::certificatemanager::v1::UpdateTrustConfigRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +CertificateManagerConnection::UpdateTrustConfig( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> CertificateManagerConnection::DeleteTrustConfig( google::cloud::certificatemanager::v1::DeleteTrustConfigRequest const&) { @@ -269,6 +534,22 @@ CertificateManagerConnection::DeleteTrustConfig( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +CertificateManagerConnection::DeleteTrustConfig( + ExperimentalTag, NoAwaitTag, + google::cloud::certificatemanager::v1::DeleteTrustConfigRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +CertificateManagerConnection::DeleteTrustConfig( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + std::shared_ptr MakeCertificateManagerConnection( Options options) { internal::CheckExpectedOptions CreateCertificate( + ExperimentalTag, NoAwaitTag, + google::cloud::certificatemanager::v1::CreateCertificateRequest const& + request); + + virtual future> + CreateCertificate(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> UpdateCertificate( google::cloud::certificatemanager::v1::UpdateCertificateRequest const& request); + virtual StatusOr UpdateCertificate( + ExperimentalTag, NoAwaitTag, + google::cloud::certificatemanager::v1::UpdateCertificateRequest const& + request); + + virtual future> + UpdateCertificate(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future< StatusOr> DeleteCertificate( google::cloud::certificatemanager::v1::DeleteCertificateRequest const& request); + virtual StatusOr DeleteCertificate( + ExperimentalTag, NoAwaitTag, + google::cloud::certificatemanager::v1::DeleteCertificateRequest const& + request); + + virtual future< + StatusOr> + DeleteCertificate(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StreamRange ListCertificateMaps( google::cloud::certificatemanager::v1::ListCertificateMapsRequest @@ -230,18 +260,48 @@ class CertificateManagerConnection { google::cloud::certificatemanager::v1::CreateCertificateMapRequest const& request); + virtual StatusOr CreateCertificateMap( + ExperimentalTag, NoAwaitTag, + google::cloud::certificatemanager::v1::CreateCertificateMapRequest const& + request); + + virtual future< + StatusOr> + CreateCertificateMap(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future< StatusOr> UpdateCertificateMap( google::cloud::certificatemanager::v1::UpdateCertificateMapRequest const& request); + virtual StatusOr UpdateCertificateMap( + ExperimentalTag, NoAwaitTag, + google::cloud::certificatemanager::v1::UpdateCertificateMapRequest const& + request); + + virtual future< + StatusOr> + UpdateCertificateMap(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future< StatusOr> DeleteCertificateMap( google::cloud::certificatemanager::v1::DeleteCertificateMapRequest const& request); + virtual StatusOr DeleteCertificateMap( + ExperimentalTag, NoAwaitTag, + google::cloud::certificatemanager::v1::DeleteCertificateMapRequest const& + request); + + virtual future< + StatusOr> + DeleteCertificateMap(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StreamRange< google::cloud::certificatemanager::v1::CertificateMapEntry> ListCertificateMapEntries( @@ -258,18 +318,48 @@ class CertificateManagerConnection { google::cloud::certificatemanager::v1:: CreateCertificateMapEntryRequest const& request); + virtual StatusOr CreateCertificateMapEntry( + ExperimentalTag, NoAwaitTag, + google::cloud::certificatemanager::v1:: + CreateCertificateMapEntryRequest const& request); + + virtual future< + StatusOr> + CreateCertificateMapEntry(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future< StatusOr> UpdateCertificateMapEntry( google::cloud::certificatemanager::v1:: UpdateCertificateMapEntryRequest const& request); + virtual StatusOr UpdateCertificateMapEntry( + ExperimentalTag, NoAwaitTag, + google::cloud::certificatemanager::v1:: + UpdateCertificateMapEntryRequest const& request); + + virtual future< + StatusOr> + UpdateCertificateMapEntry(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future< StatusOr> DeleteCertificateMapEntry( google::cloud::certificatemanager::v1:: DeleteCertificateMapEntryRequest const& request); + virtual StatusOr DeleteCertificateMapEntry( + ExperimentalTag, NoAwaitTag, + google::cloud::certificatemanager::v1:: + DeleteCertificateMapEntryRequest const& request); + + virtual future< + StatusOr> + DeleteCertificateMapEntry(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StreamRange ListDnsAuthorizations( google::cloud::certificatemanager::v1::ListDnsAuthorizationsRequest @@ -285,16 +375,46 @@ class CertificateManagerConnection { CreateDnsAuthorization(google::cloud::certificatemanager::v1:: CreateDnsAuthorizationRequest const& request); + virtual StatusOr CreateDnsAuthorization( + ExperimentalTag, NoAwaitTag, + google::cloud::certificatemanager::v1:: + CreateDnsAuthorizationRequest const& request); + + virtual future< + StatusOr> + CreateDnsAuthorization(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future< StatusOr> UpdateDnsAuthorization(google::cloud::certificatemanager::v1:: UpdateDnsAuthorizationRequest const& request); + virtual StatusOr UpdateDnsAuthorization( + ExperimentalTag, NoAwaitTag, + google::cloud::certificatemanager::v1:: + UpdateDnsAuthorizationRequest const& request); + + virtual future< + StatusOr> + UpdateDnsAuthorization(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future< StatusOr> DeleteDnsAuthorization(google::cloud::certificatemanager::v1:: DeleteDnsAuthorizationRequest const& request); + virtual StatusOr DeleteDnsAuthorization( + ExperimentalTag, NoAwaitTag, + google::cloud::certificatemanager::v1:: + DeleteDnsAuthorizationRequest const& request); + + virtual future< + StatusOr> + DeleteDnsAuthorization(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StreamRange< google::cloud::certificatemanager::v1::CertificateIssuanceConfig> ListCertificateIssuanceConfigs( @@ -313,12 +433,34 @@ class CertificateManagerConnection { google::cloud::certificatemanager::v1:: CreateCertificateIssuanceConfigRequest const& request); + virtual StatusOr + CreateCertificateIssuanceConfig( + ExperimentalTag, NoAwaitTag, + google::cloud::certificatemanager::v1:: + CreateCertificateIssuanceConfigRequest const& request); + + virtual future> + CreateCertificateIssuanceConfig( + ExperimentalTag, google::longrunning::Operation const& operation); + virtual future< StatusOr> DeleteCertificateIssuanceConfig( google::cloud::certificatemanager::v1:: DeleteCertificateIssuanceConfigRequest const& request); + virtual StatusOr + DeleteCertificateIssuanceConfig( + ExperimentalTag, NoAwaitTag, + google::cloud::certificatemanager::v1:: + DeleteCertificateIssuanceConfigRequest const& request); + + virtual future< + StatusOr> + DeleteCertificateIssuanceConfig( + ExperimentalTag, google::longrunning::Operation const& operation); + virtual StreamRange ListTrustConfigs( google::cloud::certificatemanager::v1::ListTrustConfigsRequest request); @@ -333,16 +475,44 @@ class CertificateManagerConnection { google::cloud::certificatemanager::v1::CreateTrustConfigRequest const& request); + virtual StatusOr CreateTrustConfig( + ExperimentalTag, NoAwaitTag, + google::cloud::certificatemanager::v1::CreateTrustConfigRequest const& + request); + + virtual future> + CreateTrustConfig(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> UpdateTrustConfig( google::cloud::certificatemanager::v1::UpdateTrustConfigRequest const& request); + virtual StatusOr UpdateTrustConfig( + ExperimentalTag, NoAwaitTag, + google::cloud::certificatemanager::v1::UpdateTrustConfigRequest const& + request); + + virtual future> + UpdateTrustConfig(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future< StatusOr> DeleteTrustConfig( google::cloud::certificatemanager::v1::DeleteTrustConfigRequest const& request); + + virtual StatusOr DeleteTrustConfig( + ExperimentalTag, NoAwaitTag, + google::cloud::certificatemanager::v1::DeleteTrustConfigRequest const& + request); + + virtual future< + StatusOr> + DeleteTrustConfig(ExperimentalTag, + google::longrunning::Operation const& operation); }; /** diff --git a/google/cloud/certificatemanager/v1/internal/certificate_manager_connection_impl.cc b/google/cloud/certificatemanager/v1/internal/certificate_manager_connection_impl.cc index d183191310e11..25563cee3f4cc 100644 --- a/google/cloud/certificatemanager/v1/internal/certificate_manager_connection_impl.cc +++ b/google/cloud/certificatemanager/v1/internal/certificate_manager_connection_impl.cc @@ -166,6 +166,62 @@ CertificateManagerConnectionImpl::CreateCertificate( polling_policy(*current), __func__); } +StatusOr +CertificateManagerConnectionImpl::CreateCertificate( + ExperimentalTag, NoAwaitTag, + google::cloud::certificatemanager::v1::CreateCertificateRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateCertificate(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::certificatemanager::v1::CreateCertificateRequest const& + request) { + return stub_->CreateCertificate(context, options, request); + }, + *current, request, __func__); +} + +future> +CertificateManagerConnectionImpl::CreateCertificate( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to CreateCertificate", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::certificatemanager::v1::Certificate>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::certificatemanager::v1::Certificate>, + polling_policy(*current), __func__); +} + future> CertificateManagerConnectionImpl::UpdateCertificate( google::cloud::certificatemanager::v1::UpdateCertificateRequest const& @@ -207,6 +263,62 @@ CertificateManagerConnectionImpl::UpdateCertificate( polling_policy(*current), __func__); } +StatusOr +CertificateManagerConnectionImpl::UpdateCertificate( + ExperimentalTag, NoAwaitTag, + google::cloud::certificatemanager::v1::UpdateCertificateRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UpdateCertificate(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::certificatemanager::v1::UpdateCertificateRequest const& + request) { + return stub_->UpdateCertificate(context, options, request); + }, + *current, request, __func__); +} + +future> +CertificateManagerConnectionImpl::UpdateCertificate( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to UpdateCertificate", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::certificatemanager::v1::Certificate>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::certificatemanager::v1::Certificate>, + polling_policy(*current), __func__); +} + future> CertificateManagerConnectionImpl::DeleteCertificate( google::cloud::certificatemanager::v1::DeleteCertificateRequest const& @@ -248,6 +360,62 @@ CertificateManagerConnectionImpl::DeleteCertificate( polling_policy(*current), __func__); } +StatusOr +CertificateManagerConnectionImpl::DeleteCertificate( + ExperimentalTag, NoAwaitTag, + google::cloud::certificatemanager::v1::DeleteCertificateRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteCertificate(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::certificatemanager::v1::DeleteCertificateRequest const& + request) { + return stub_->DeleteCertificate(context, options, request); + }, + *current, request, __func__); +} + +future> +CertificateManagerConnectionImpl::DeleteCertificate( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteCertificate", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::certificatemanager::v1::OperationMetadata>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::cloud::certificatemanager::v1::OperationMetadata>, + polling_policy(*current), __func__); +} + StreamRange CertificateManagerConnectionImpl::ListCertificateMaps( google::cloud::certificatemanager::v1::ListCertificateMapsRequest request) { @@ -340,6 +508,61 @@ CertificateManagerConnectionImpl::CreateCertificateMap( polling_policy(*current), __func__); } +StatusOr +CertificateManagerConnectionImpl::CreateCertificateMap( + ExperimentalTag, NoAwaitTag, + google::cloud::certificatemanager::v1::CreateCertificateMapRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateCertificateMap(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::certificatemanager::v1:: + CreateCertificateMapRequest const& request) { + return stub_->CreateCertificateMap(context, options, request); + }, + *current, request, __func__); +} + +future> +CertificateManagerConnectionImpl::CreateCertificateMap( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to CreateCertificateMap", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::certificatemanager::v1::CertificateMap>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::certificatemanager::v1::CertificateMap>, + polling_policy(*current), __func__); +} + future> CertificateManagerConnectionImpl::UpdateCertificateMap( google::cloud::certificatemanager::v1::UpdateCertificateMapRequest const& @@ -380,6 +603,61 @@ CertificateManagerConnectionImpl::UpdateCertificateMap( polling_policy(*current), __func__); } +StatusOr +CertificateManagerConnectionImpl::UpdateCertificateMap( + ExperimentalTag, NoAwaitTag, + google::cloud::certificatemanager::v1::UpdateCertificateMapRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UpdateCertificateMap(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::certificatemanager::v1:: + UpdateCertificateMapRequest const& request) { + return stub_->UpdateCertificateMap(context, options, request); + }, + *current, request, __func__); +} + +future> +CertificateManagerConnectionImpl::UpdateCertificateMap( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to UpdateCertificateMap", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::certificatemanager::v1::CertificateMap>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::certificatemanager::v1::CertificateMap>, + polling_policy(*current), __func__); +} + future> CertificateManagerConnectionImpl::DeleteCertificateMap( google::cloud::certificatemanager::v1::DeleteCertificateMapRequest const& @@ -420,6 +698,61 @@ CertificateManagerConnectionImpl::DeleteCertificateMap( polling_policy(*current), __func__); } +StatusOr +CertificateManagerConnectionImpl::DeleteCertificateMap( + ExperimentalTag, NoAwaitTag, + google::cloud::certificatemanager::v1::DeleteCertificateMapRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteCertificateMap(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::certificatemanager::v1:: + DeleteCertificateMapRequest const& request) { + return stub_->DeleteCertificateMap(context, options, request); + }, + *current, request, __func__); +} + +future> +CertificateManagerConnectionImpl::DeleteCertificateMap( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteCertificateMap", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::certificatemanager::v1::OperationMetadata>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::cloud::certificatemanager::v1::OperationMetadata>, + polling_policy(*current), __func__); +} + StreamRange CertificateManagerConnectionImpl::ListCertificateMapEntries( google::cloud::certificatemanager::v1::ListCertificateMapEntriesRequest @@ -515,6 +848,61 @@ CertificateManagerConnectionImpl::CreateCertificateMapEntry( polling_policy(*current), __func__); } +StatusOr +CertificateManagerConnectionImpl::CreateCertificateMapEntry( + ExperimentalTag, NoAwaitTag, + google::cloud::certificatemanager::v1:: + CreateCertificateMapEntryRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateCertificateMapEntry(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::certificatemanager::v1:: + CreateCertificateMapEntryRequest const& request) { + return stub_->CreateCertificateMapEntry(context, options, request); + }, + *current, request, __func__); +} + +future> +CertificateManagerConnectionImpl::CreateCertificateMapEntry( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to CreateCertificateMapEntry", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::certificatemanager::v1::CertificateMapEntry>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::certificatemanager::v1::CertificateMapEntry>, + polling_policy(*current), __func__); +} + future> CertificateManagerConnectionImpl::UpdateCertificateMapEntry( google::cloud::certificatemanager::v1:: @@ -555,6 +943,61 @@ CertificateManagerConnectionImpl::UpdateCertificateMapEntry( polling_policy(*current), __func__); } +StatusOr +CertificateManagerConnectionImpl::UpdateCertificateMapEntry( + ExperimentalTag, NoAwaitTag, + google::cloud::certificatemanager::v1:: + UpdateCertificateMapEntryRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UpdateCertificateMapEntry(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::certificatemanager::v1:: + UpdateCertificateMapEntryRequest const& request) { + return stub_->UpdateCertificateMapEntry(context, options, request); + }, + *current, request, __func__); +} + +future> +CertificateManagerConnectionImpl::UpdateCertificateMapEntry( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to UpdateCertificateMapEntry", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::certificatemanager::v1::CertificateMapEntry>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::certificatemanager::v1::CertificateMapEntry>, + polling_policy(*current), __func__); +} + future> CertificateManagerConnectionImpl::DeleteCertificateMapEntry( google::cloud::certificatemanager::v1:: @@ -595,6 +1038,61 @@ CertificateManagerConnectionImpl::DeleteCertificateMapEntry( polling_policy(*current), __func__); } +StatusOr +CertificateManagerConnectionImpl::DeleteCertificateMapEntry( + ExperimentalTag, NoAwaitTag, + google::cloud::certificatemanager::v1:: + DeleteCertificateMapEntryRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteCertificateMapEntry(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::certificatemanager::v1:: + DeleteCertificateMapEntryRequest const& request) { + return stub_->DeleteCertificateMapEntry(context, options, request); + }, + *current, request, __func__); +} + +future> +CertificateManagerConnectionImpl::DeleteCertificateMapEntry( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteCertificateMapEntry", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::certificatemanager::v1::OperationMetadata>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::cloud::certificatemanager::v1::OperationMetadata>, + polling_policy(*current), __func__); +} + StreamRange CertificateManagerConnectionImpl::ListDnsAuthorizations( google::cloud::certificatemanager::v1::ListDnsAuthorizationsRequest @@ -689,25 +1187,136 @@ CertificateManagerConnectionImpl::CreateDnsAuthorization( polling_policy(*current), __func__); } -future> +StatusOr +CertificateManagerConnectionImpl::CreateDnsAuthorization( + ExperimentalTag, NoAwaitTag, + google::cloud::certificatemanager::v1::CreateDnsAuthorizationRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateDnsAuthorization(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::certificatemanager::v1:: + CreateDnsAuthorizationRequest const& request) { + return stub_->CreateDnsAuthorization(context, options, request); + }, + *current, request, __func__); +} + +future> +CertificateManagerConnectionImpl::CreateDnsAuthorization( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to CreateDnsAuthorization", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::certificatemanager::v1::DnsAuthorization>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::certificatemanager::v1::DnsAuthorization>, + polling_policy(*current), __func__); +} + +future> +CertificateManagerConnectionImpl::UpdateDnsAuthorization( + google::cloud::certificatemanager::v1::UpdateDnsAuthorizationRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + auto request_copy = request; + auto const idempotent = + idempotency_policy(*current)->UpdateDnsAuthorization(request_copy); + return google::cloud::internal::AsyncLongRunningOperation< + google::cloud::certificatemanager::v1::DnsAuthorization>( + background_->cq(), current, std::move(request_copy), + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::certificatemanager::v1:: + UpdateDnsAuthorizationRequest const& request) { + return stub->AsyncUpdateDnsAuthorization(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::certificatemanager::v1::DnsAuthorization>, + retry_policy(*current), backoff_policy(*current), idempotent, + polling_policy(*current), __func__); +} + +StatusOr CertificateManagerConnectionImpl::UpdateDnsAuthorization( + ExperimentalTag, NoAwaitTag, google::cloud::certificatemanager::v1::UpdateDnsAuthorizationRequest const& request) { auto current = google::cloud::internal::SaveCurrentOptions(); - auto request_copy = request; - auto const idempotent = - idempotency_policy(*current)->UpdateDnsAuthorization(request_copy); - return google::cloud::internal::AsyncLongRunningOperation< - google::cloud::certificatemanager::v1::DnsAuthorization>( - background_->cq(), current, std::move(request_copy), - [stub = stub_](google::cloud::CompletionQueue& cq, - std::shared_ptr context, - google::cloud::internal::ImmutableOptions options, - google::cloud::certificatemanager::v1:: - UpdateDnsAuthorizationRequest const& request) { - return stub->AsyncUpdateDnsAuthorization(cq, std::move(context), - std::move(options), request); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UpdateDnsAuthorization(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::certificatemanager::v1:: + UpdateDnsAuthorizationRequest const& request) { + return stub_->UpdateDnsAuthorization(context, options, request); }, + *current, request, __func__); +} + +future> +CertificateManagerConnectionImpl::UpdateDnsAuthorization( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to UpdateDnsAuthorization", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::certificatemanager::v1::DnsAuthorization>( + background_->cq(), current, operation, [stub = stub_](google::cloud::CompletionQueue& cq, std::shared_ptr context, google::cloud::internal::ImmutableOptions options, @@ -725,7 +1334,6 @@ CertificateManagerConnectionImpl::UpdateDnsAuthorization( }, &google::cloud::internal::ExtractLongRunningResultResponse< google::cloud::certificatemanager::v1::DnsAuthorization>, - retry_policy(*current), backoff_policy(*current), idempotent, polling_policy(*current), __func__); } @@ -769,6 +1377,61 @@ CertificateManagerConnectionImpl::DeleteDnsAuthorization( polling_policy(*current), __func__); } +StatusOr +CertificateManagerConnectionImpl::DeleteDnsAuthorization( + ExperimentalTag, NoAwaitTag, + google::cloud::certificatemanager::v1::DeleteDnsAuthorizationRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteDnsAuthorization(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::certificatemanager::v1:: + DeleteDnsAuthorizationRequest const& request) { + return stub_->DeleteDnsAuthorization(context, options, request); + }, + *current, request, __func__); +} + +future> +CertificateManagerConnectionImpl::DeleteDnsAuthorization( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteDnsAuthorization", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::certificatemanager::v1::OperationMetadata>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::cloud::certificatemanager::v1::OperationMetadata>, + polling_policy(*current), __func__); +} + StreamRange CertificateManagerConnectionImpl::ListCertificateIssuanceConfigs( google::cloud::certificatemanager::v1::ListCertificateIssuanceConfigsRequest @@ -869,6 +1532,63 @@ CertificateManagerConnectionImpl::CreateCertificateIssuanceConfig( polling_policy(*current), __func__); } +StatusOr +CertificateManagerConnectionImpl::CreateCertificateIssuanceConfig( + ExperimentalTag, NoAwaitTag, + google::cloud::certificatemanager::v1:: + CreateCertificateIssuanceConfigRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateCertificateIssuanceConfig(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::certificatemanager::v1:: + CreateCertificateIssuanceConfigRequest const& request) { + return stub_->CreateCertificateIssuanceConfig(context, options, + request); + }, + *current, request, __func__); +} + +future< + StatusOr> +CertificateManagerConnectionImpl::CreateCertificateIssuanceConfig( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to CreateCertificateIssuanceConfig", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::certificatemanager::v1::CertificateIssuanceConfig>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::certificatemanager::v1::CertificateIssuanceConfig>, + polling_policy(*current), __func__); +} + future> CertificateManagerConnectionImpl::DeleteCertificateIssuanceConfig( google::cloud::certificatemanager::v1:: @@ -911,6 +1631,62 @@ CertificateManagerConnectionImpl::DeleteCertificateIssuanceConfig( polling_policy(*current), __func__); } +StatusOr +CertificateManagerConnectionImpl::DeleteCertificateIssuanceConfig( + ExperimentalTag, NoAwaitTag, + google::cloud::certificatemanager::v1:: + DeleteCertificateIssuanceConfigRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteCertificateIssuanceConfig(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::certificatemanager::v1:: + DeleteCertificateIssuanceConfigRequest const& request) { + return stub_->DeleteCertificateIssuanceConfig(context, options, + request); + }, + *current, request, __func__); +} + +future> +CertificateManagerConnectionImpl::DeleteCertificateIssuanceConfig( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteCertificateIssuanceConfig", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::certificatemanager::v1::OperationMetadata>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::cloud::certificatemanager::v1::OperationMetadata>, + polling_policy(*current), __func__); +} + StreamRange CertificateManagerConnectionImpl::ListTrustConfigs( google::cloud::certificatemanager::v1::ListTrustConfigsRequest request) { @@ -1004,6 +1780,62 @@ CertificateManagerConnectionImpl::CreateTrustConfig( polling_policy(*current), __func__); } +StatusOr +CertificateManagerConnectionImpl::CreateTrustConfig( + ExperimentalTag, NoAwaitTag, + google::cloud::certificatemanager::v1::CreateTrustConfigRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateTrustConfig(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::certificatemanager::v1::CreateTrustConfigRequest const& + request) { + return stub_->CreateTrustConfig(context, options, request); + }, + *current, request, __func__); +} + +future> +CertificateManagerConnectionImpl::CreateTrustConfig( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to CreateTrustConfig", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::certificatemanager::v1::TrustConfig>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::certificatemanager::v1::TrustConfig>, + polling_policy(*current), __func__); +} + future> CertificateManagerConnectionImpl::UpdateTrustConfig( google::cloud::certificatemanager::v1::UpdateTrustConfigRequest const& @@ -1045,6 +1877,62 @@ CertificateManagerConnectionImpl::UpdateTrustConfig( polling_policy(*current), __func__); } +StatusOr +CertificateManagerConnectionImpl::UpdateTrustConfig( + ExperimentalTag, NoAwaitTag, + google::cloud::certificatemanager::v1::UpdateTrustConfigRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UpdateTrustConfig(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::certificatemanager::v1::UpdateTrustConfigRequest const& + request) { + return stub_->UpdateTrustConfig(context, options, request); + }, + *current, request, __func__); +} + +future> +CertificateManagerConnectionImpl::UpdateTrustConfig( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to UpdateTrustConfig", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::certificatemanager::v1::TrustConfig>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::certificatemanager::v1::TrustConfig>, + polling_policy(*current), __func__); +} + future> CertificateManagerConnectionImpl::DeleteTrustConfig( google::cloud::certificatemanager::v1::DeleteTrustConfigRequest const& @@ -1086,6 +1974,62 @@ CertificateManagerConnectionImpl::DeleteTrustConfig( polling_policy(*current), __func__); } +StatusOr +CertificateManagerConnectionImpl::DeleteTrustConfig( + ExperimentalTag, NoAwaitTag, + google::cloud::certificatemanager::v1::DeleteTrustConfigRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteTrustConfig(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::certificatemanager::v1::DeleteTrustConfigRequest const& + request) { + return stub_->DeleteTrustConfig(context, options, request); + }, + *current, request, __func__); +} + +future> +CertificateManagerConnectionImpl::DeleteTrustConfig( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteTrustConfig", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::certificatemanager::v1::OperationMetadata>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::cloud::certificatemanager::v1::OperationMetadata>, + polling_policy(*current), __func__); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace certificatemanager_v1_internal } // namespace cloud diff --git a/google/cloud/certificatemanager/v1/internal/certificate_manager_connection_impl.h b/google/cloud/certificatemanager/v1/internal/certificate_manager_connection_impl.h index 6b9a732b22c45..84ad60b67a64f 100644 --- a/google/cloud/certificatemanager/v1/internal/certificate_manager_connection_impl.h +++ b/google/cloud/certificatemanager/v1/internal/certificate_manager_connection_impl.h @@ -67,16 +67,43 @@ class CertificateManagerConnectionImpl google::cloud::certificatemanager::v1::CreateCertificateRequest const& request) override; + StatusOr CreateCertificate( + ExperimentalTag, NoAwaitTag, + google::cloud::certificatemanager::v1::CreateCertificateRequest const& + request) override; + + future> + CreateCertificate(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateCertificate( google::cloud::certificatemanager::v1::UpdateCertificateRequest const& request) override; + StatusOr UpdateCertificate( + ExperimentalTag, NoAwaitTag, + google::cloud::certificatemanager::v1::UpdateCertificateRequest const& + request) override; + + future> + UpdateCertificate(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteCertificate( google::cloud::certificatemanager::v1::DeleteCertificateRequest const& request) override; + StatusOr DeleteCertificate( + ExperimentalTag, NoAwaitTag, + google::cloud::certificatemanager::v1::DeleteCertificateRequest const& + request) override; + + future> + DeleteCertificate(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListCertificateMaps( google::cloud::certificatemanager::v1::ListCertificateMapsRequest request) @@ -92,16 +119,46 @@ class CertificateManagerConnectionImpl google::cloud::certificatemanager::v1::CreateCertificateMapRequest const& request) override; + StatusOr CreateCertificateMap( + ExperimentalTag, NoAwaitTag, + google::cloud::certificatemanager::v1::CreateCertificateMapRequest const& + request) override; + + future> + CreateCertificateMap( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateCertificateMap( google::cloud::certificatemanager::v1::UpdateCertificateMapRequest const& request) override; + StatusOr UpdateCertificateMap( + ExperimentalTag, NoAwaitTag, + google::cloud::certificatemanager::v1::UpdateCertificateMapRequest const& + request) override; + + future> + UpdateCertificateMap( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteCertificateMap( google::cloud::certificatemanager::v1::DeleteCertificateMapRequest const& request) override; + StatusOr DeleteCertificateMap( + ExperimentalTag, NoAwaitTag, + google::cloud::certificatemanager::v1::DeleteCertificateMapRequest const& + request) override; + + future> + DeleteCertificateMap( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListCertificateMapEntries( google::cloud::certificatemanager::v1::ListCertificateMapEntriesRequest @@ -117,16 +174,46 @@ class CertificateManagerConnectionImpl google::cloud::certificatemanager::v1:: CreateCertificateMapEntryRequest const& request) override; + StatusOr CreateCertificateMapEntry( + ExperimentalTag, NoAwaitTag, + google::cloud::certificatemanager::v1:: + CreateCertificateMapEntryRequest const& request) override; + + future> + CreateCertificateMapEntry( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateCertificateMapEntry( google::cloud::certificatemanager::v1:: UpdateCertificateMapEntryRequest const& request) override; + StatusOr UpdateCertificateMapEntry( + ExperimentalTag, NoAwaitTag, + google::cloud::certificatemanager::v1:: + UpdateCertificateMapEntryRequest const& request) override; + + future> + UpdateCertificateMapEntry( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteCertificateMapEntry( google::cloud::certificatemanager::v1:: DeleteCertificateMapEntryRequest const& request) override; + StatusOr DeleteCertificateMapEntry( + ExperimentalTag, NoAwaitTag, + google::cloud::certificatemanager::v1:: + DeleteCertificateMapEntryRequest const& request) override; + + future> + DeleteCertificateMapEntry( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListDnsAuthorizations( google::cloud::certificatemanager::v1::ListDnsAuthorizationsRequest @@ -142,16 +229,46 @@ class CertificateManagerConnectionImpl google::cloud::certificatemanager::v1:: CreateDnsAuthorizationRequest const& request) override; + StatusOr CreateDnsAuthorization( + ExperimentalTag, NoAwaitTag, + google::cloud::certificatemanager::v1:: + CreateDnsAuthorizationRequest const& request) override; + + future> + CreateDnsAuthorization( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateDnsAuthorization( google::cloud::certificatemanager::v1:: UpdateDnsAuthorizationRequest const& request) override; + StatusOr UpdateDnsAuthorization( + ExperimentalTag, NoAwaitTag, + google::cloud::certificatemanager::v1:: + UpdateDnsAuthorizationRequest const& request) override; + + future> + UpdateDnsAuthorization( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteDnsAuthorization( google::cloud::certificatemanager::v1:: DeleteDnsAuthorizationRequest const& request) override; + StatusOr DeleteDnsAuthorization( + ExperimentalTag, NoAwaitTag, + google::cloud::certificatemanager::v1:: + DeleteDnsAuthorizationRequest const& request) override; + + future> + DeleteDnsAuthorization( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListCertificateIssuanceConfigs( google::cloud::certificatemanager::v1:: @@ -168,11 +285,32 @@ class CertificateManagerConnectionImpl google::cloud::certificatemanager::v1:: CreateCertificateIssuanceConfigRequest const& request) override; + StatusOr CreateCertificateIssuanceConfig( + ExperimentalTag, NoAwaitTag, + google::cloud::certificatemanager::v1:: + CreateCertificateIssuanceConfigRequest const& request) override; + + future> + CreateCertificateIssuanceConfig( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteCertificateIssuanceConfig( google::cloud::certificatemanager::v1:: DeleteCertificateIssuanceConfigRequest const& request) override; + StatusOr DeleteCertificateIssuanceConfig( + ExperimentalTag, NoAwaitTag, + google::cloud::certificatemanager::v1:: + DeleteCertificateIssuanceConfigRequest const& request) override; + + future> + DeleteCertificateIssuanceConfig( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListTrustConfigs( google::cloud::certificatemanager::v1::ListTrustConfigsRequest request) @@ -187,16 +325,43 @@ class CertificateManagerConnectionImpl google::cloud::certificatemanager::v1::CreateTrustConfigRequest const& request) override; + StatusOr CreateTrustConfig( + ExperimentalTag, NoAwaitTag, + google::cloud::certificatemanager::v1::CreateTrustConfigRequest const& + request) override; + + future> + CreateTrustConfig(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateTrustConfig( google::cloud::certificatemanager::v1::UpdateTrustConfigRequest const& request) override; + StatusOr UpdateTrustConfig( + ExperimentalTag, NoAwaitTag, + google::cloud::certificatemanager::v1::UpdateTrustConfigRequest const& + request) override; + + future> + UpdateTrustConfig(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteTrustConfig( google::cloud::certificatemanager::v1::DeleteTrustConfigRequest const& request) override; + StatusOr DeleteTrustConfig( + ExperimentalTag, NoAwaitTag, + google::cloud::certificatemanager::v1::DeleteTrustConfigRequest const& + request) override; + + future> + DeleteTrustConfig(ExperimentalTag, + google::longrunning::Operation const& operation) override; + private: std::unique_ptr background_; std::shared_ptr stub_; diff --git a/google/cloud/certificatemanager/v1/internal/certificate_manager_tracing_connection.cc b/google/cloud/certificatemanager/v1/internal/certificate_manager_tracing_connection.cc index bc954b6662715..6e11e9811b8dc 100644 --- a/google/cloud/certificatemanager/v1/internal/certificate_manager_tracing_connection.cc +++ b/google/cloud/certificatemanager/v1/internal/certificate_manager_tracing_connection.cc @@ -65,6 +65,29 @@ CertificateManagerTracingConnection::CreateCertificate( return internal::EndSpan(std::move(span), child_->CreateCertificate(request)); } +StatusOr +CertificateManagerTracingConnection::CreateCertificate( + ExperimentalTag, NoAwaitTag, + google::cloud::certificatemanager::v1::CreateCertificateRequest const& + request) { + auto span = internal::MakeSpan( + "certificatemanager_v1::CertificateManagerConnection::CreateCertificate"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->CreateCertificate(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +CertificateManagerTracingConnection::CreateCertificate( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "certificatemanager_v1::CertificateManagerConnection::CreateCertificate"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->CreateCertificate(ExperimentalTag{}, operation)); +} + future> CertificateManagerTracingConnection::UpdateCertificate( google::cloud::certificatemanager::v1::UpdateCertificateRequest const& @@ -75,6 +98,29 @@ CertificateManagerTracingConnection::UpdateCertificate( return internal::EndSpan(std::move(span), child_->UpdateCertificate(request)); } +StatusOr +CertificateManagerTracingConnection::UpdateCertificate( + ExperimentalTag, NoAwaitTag, + google::cloud::certificatemanager::v1::UpdateCertificateRequest const& + request) { + auto span = internal::MakeSpan( + "certificatemanager_v1::CertificateManagerConnection::UpdateCertificate"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->UpdateCertificate(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +CertificateManagerTracingConnection::UpdateCertificate( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "certificatemanager_v1::CertificateManagerConnection::UpdateCertificate"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->UpdateCertificate(ExperimentalTag{}, operation)); +} + future> CertificateManagerTracingConnection::DeleteCertificate( google::cloud::certificatemanager::v1::DeleteCertificateRequest const& @@ -85,6 +131,29 @@ CertificateManagerTracingConnection::DeleteCertificate( return internal::EndSpan(std::move(span), child_->DeleteCertificate(request)); } +StatusOr +CertificateManagerTracingConnection::DeleteCertificate( + ExperimentalTag, NoAwaitTag, + google::cloud::certificatemanager::v1::DeleteCertificateRequest const& + request) { + auto span = internal::MakeSpan( + "certificatemanager_v1::CertificateManagerConnection::DeleteCertificate"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->DeleteCertificate(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +CertificateManagerTracingConnection::DeleteCertificate( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "certificatemanager_v1::CertificateManagerConnection::DeleteCertificate"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->DeleteCertificate(ExperimentalTag{}, operation)); +} + StreamRange CertificateManagerTracingConnection::ListCertificateMaps( google::cloud::certificatemanager::v1::ListCertificateMapsRequest request) { @@ -120,6 +189,31 @@ CertificateManagerTracingConnection::CreateCertificateMap( child_->CreateCertificateMap(request)); } +StatusOr +CertificateManagerTracingConnection::CreateCertificateMap( + ExperimentalTag, NoAwaitTag, + google::cloud::certificatemanager::v1::CreateCertificateMapRequest const& + request) { + auto span = internal::MakeSpan( + "certificatemanager_v1::CertificateManagerConnection::" + "CreateCertificateMap"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->CreateCertificateMap(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +CertificateManagerTracingConnection::CreateCertificateMap( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "certificatemanager_v1::CertificateManagerConnection::" + "CreateCertificateMap"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->CreateCertificateMap( + ExperimentalTag{}, operation)); +} + future> CertificateManagerTracingConnection::UpdateCertificateMap( google::cloud::certificatemanager::v1::UpdateCertificateMapRequest const& @@ -132,6 +226,31 @@ CertificateManagerTracingConnection::UpdateCertificateMap( child_->UpdateCertificateMap(request)); } +StatusOr +CertificateManagerTracingConnection::UpdateCertificateMap( + ExperimentalTag, NoAwaitTag, + google::cloud::certificatemanager::v1::UpdateCertificateMapRequest const& + request) { + auto span = internal::MakeSpan( + "certificatemanager_v1::CertificateManagerConnection::" + "UpdateCertificateMap"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->UpdateCertificateMap(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +CertificateManagerTracingConnection::UpdateCertificateMap( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "certificatemanager_v1::CertificateManagerConnection::" + "UpdateCertificateMap"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->UpdateCertificateMap( + ExperimentalTag{}, operation)); +} + future> CertificateManagerTracingConnection::DeleteCertificateMap( google::cloud::certificatemanager::v1::DeleteCertificateMapRequest const& @@ -144,6 +263,31 @@ CertificateManagerTracingConnection::DeleteCertificateMap( child_->DeleteCertificateMap(request)); } +StatusOr +CertificateManagerTracingConnection::DeleteCertificateMap( + ExperimentalTag, NoAwaitTag, + google::cloud::certificatemanager::v1::DeleteCertificateMapRequest const& + request) { + auto span = internal::MakeSpan( + "certificatemanager_v1::CertificateManagerConnection::" + "DeleteCertificateMap"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->DeleteCertificateMap(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +CertificateManagerTracingConnection::DeleteCertificateMap( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "certificatemanager_v1::CertificateManagerConnection::" + "DeleteCertificateMap"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->DeleteCertificateMap( + ExperimentalTag{}, operation)); +} + StreamRange CertificateManagerTracingConnection::ListCertificateMapEntries( google::cloud::certificatemanager::v1::ListCertificateMapEntriesRequest @@ -181,6 +325,31 @@ CertificateManagerTracingConnection::CreateCertificateMapEntry( child_->CreateCertificateMapEntry(request)); } +StatusOr +CertificateManagerTracingConnection::CreateCertificateMapEntry( + ExperimentalTag, NoAwaitTag, + google::cloud::certificatemanager::v1:: + CreateCertificateMapEntryRequest const& request) { + auto span = internal::MakeSpan( + "certificatemanager_v1::CertificateManagerConnection::" + "CreateCertificateMapEntry"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->CreateCertificateMapEntry(ExperimentalTag{}, NoAwaitTag{}, + request)); +} + +future> +CertificateManagerTracingConnection::CreateCertificateMapEntry( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "certificatemanager_v1::CertificateManagerConnection::" + "CreateCertificateMapEntry"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->CreateCertificateMapEntry( + ExperimentalTag{}, operation)); +} + future> CertificateManagerTracingConnection::UpdateCertificateMapEntry( google::cloud::certificatemanager::v1:: @@ -193,6 +362,31 @@ CertificateManagerTracingConnection::UpdateCertificateMapEntry( child_->UpdateCertificateMapEntry(request)); } +StatusOr +CertificateManagerTracingConnection::UpdateCertificateMapEntry( + ExperimentalTag, NoAwaitTag, + google::cloud::certificatemanager::v1:: + UpdateCertificateMapEntryRequest const& request) { + auto span = internal::MakeSpan( + "certificatemanager_v1::CertificateManagerConnection::" + "UpdateCertificateMapEntry"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->UpdateCertificateMapEntry(ExperimentalTag{}, NoAwaitTag{}, + request)); +} + +future> +CertificateManagerTracingConnection::UpdateCertificateMapEntry( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "certificatemanager_v1::CertificateManagerConnection::" + "UpdateCertificateMapEntry"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->UpdateCertificateMapEntry( + ExperimentalTag{}, operation)); +} + future> CertificateManagerTracingConnection::DeleteCertificateMapEntry( google::cloud::certificatemanager::v1:: @@ -205,6 +399,31 @@ CertificateManagerTracingConnection::DeleteCertificateMapEntry( child_->DeleteCertificateMapEntry(request)); } +StatusOr +CertificateManagerTracingConnection::DeleteCertificateMapEntry( + ExperimentalTag, NoAwaitTag, + google::cloud::certificatemanager::v1:: + DeleteCertificateMapEntryRequest const& request) { + auto span = internal::MakeSpan( + "certificatemanager_v1::CertificateManagerConnection::" + "DeleteCertificateMapEntry"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->DeleteCertificateMapEntry(ExperimentalTag{}, NoAwaitTag{}, + request)); +} + +future> +CertificateManagerTracingConnection::DeleteCertificateMapEntry( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "certificatemanager_v1::CertificateManagerConnection::" + "DeleteCertificateMapEntry"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->DeleteCertificateMapEntry( + ExperimentalTag{}, operation)); +} + StreamRange CertificateManagerTracingConnection::ListDnsAuthorizations( google::cloud::certificatemanager::v1::ListDnsAuthorizationsRequest @@ -242,6 +461,31 @@ CertificateManagerTracingConnection::CreateDnsAuthorization( child_->CreateDnsAuthorization(request)); } +StatusOr +CertificateManagerTracingConnection::CreateDnsAuthorization( + ExperimentalTag, NoAwaitTag, + google::cloud::certificatemanager::v1::CreateDnsAuthorizationRequest const& + request) { + auto span = internal::MakeSpan( + "certificatemanager_v1::CertificateManagerConnection::" + "CreateDnsAuthorization"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->CreateDnsAuthorization(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +CertificateManagerTracingConnection::CreateDnsAuthorization( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "certificatemanager_v1::CertificateManagerConnection::" + "CreateDnsAuthorization"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->CreateDnsAuthorization( + ExperimentalTag{}, operation)); +} + future> CertificateManagerTracingConnection::UpdateDnsAuthorization( google::cloud::certificatemanager::v1::UpdateDnsAuthorizationRequest const& @@ -254,6 +498,31 @@ CertificateManagerTracingConnection::UpdateDnsAuthorization( child_->UpdateDnsAuthorization(request)); } +StatusOr +CertificateManagerTracingConnection::UpdateDnsAuthorization( + ExperimentalTag, NoAwaitTag, + google::cloud::certificatemanager::v1::UpdateDnsAuthorizationRequest const& + request) { + auto span = internal::MakeSpan( + "certificatemanager_v1::CertificateManagerConnection::" + "UpdateDnsAuthorization"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->UpdateDnsAuthorization(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +CertificateManagerTracingConnection::UpdateDnsAuthorization( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "certificatemanager_v1::CertificateManagerConnection::" + "UpdateDnsAuthorization"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->UpdateDnsAuthorization( + ExperimentalTag{}, operation)); +} + future> CertificateManagerTracingConnection::DeleteDnsAuthorization( google::cloud::certificatemanager::v1::DeleteDnsAuthorizationRequest const& @@ -266,6 +535,31 @@ CertificateManagerTracingConnection::DeleteDnsAuthorization( child_->DeleteDnsAuthorization(request)); } +StatusOr +CertificateManagerTracingConnection::DeleteDnsAuthorization( + ExperimentalTag, NoAwaitTag, + google::cloud::certificatemanager::v1::DeleteDnsAuthorizationRequest const& + request) { + auto span = internal::MakeSpan( + "certificatemanager_v1::CertificateManagerConnection::" + "DeleteDnsAuthorization"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->DeleteDnsAuthorization(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +CertificateManagerTracingConnection::DeleteDnsAuthorization( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "certificatemanager_v1::CertificateManagerConnection::" + "DeleteDnsAuthorization"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->DeleteDnsAuthorization( + ExperimentalTag{}, operation)); +} + StreamRange CertificateManagerTracingConnection::ListCertificateIssuanceConfigs( google::cloud::certificatemanager::v1::ListCertificateIssuanceConfigsRequest @@ -305,6 +599,33 @@ CertificateManagerTracingConnection::CreateCertificateIssuanceConfig( child_->CreateCertificateIssuanceConfig(request)); } +StatusOr +CertificateManagerTracingConnection::CreateCertificateIssuanceConfig( + ExperimentalTag, NoAwaitTag, + google::cloud::certificatemanager::v1:: + CreateCertificateIssuanceConfigRequest const& request) { + auto span = internal::MakeSpan( + "certificatemanager_v1::CertificateManagerConnection::" + "CreateCertificateIssuanceConfig"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->CreateCertificateIssuanceConfig(ExperimentalTag{}, + NoAwaitTag{}, request)); +} + +future< + StatusOr> +CertificateManagerTracingConnection::CreateCertificateIssuanceConfig( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "certificatemanager_v1::CertificateManagerConnection::" + "CreateCertificateIssuanceConfig"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), + child_->CreateCertificateIssuanceConfig(ExperimentalTag{}, operation)); +} + future> CertificateManagerTracingConnection::DeleteCertificateIssuanceConfig( google::cloud::certificatemanager::v1:: @@ -317,6 +638,32 @@ CertificateManagerTracingConnection::DeleteCertificateIssuanceConfig( child_->DeleteCertificateIssuanceConfig(request)); } +StatusOr +CertificateManagerTracingConnection::DeleteCertificateIssuanceConfig( + ExperimentalTag, NoAwaitTag, + google::cloud::certificatemanager::v1:: + DeleteCertificateIssuanceConfigRequest const& request) { + auto span = internal::MakeSpan( + "certificatemanager_v1::CertificateManagerConnection::" + "DeleteCertificateIssuanceConfig"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->DeleteCertificateIssuanceConfig(ExperimentalTag{}, + NoAwaitTag{}, request)); +} + +future> +CertificateManagerTracingConnection::DeleteCertificateIssuanceConfig( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "certificatemanager_v1::CertificateManagerConnection::" + "DeleteCertificateIssuanceConfig"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), + child_->DeleteCertificateIssuanceConfig(ExperimentalTag{}, operation)); +} + StreamRange CertificateManagerTracingConnection::ListTrustConfigs( google::cloud::certificatemanager::v1::ListTrustConfigsRequest request) { @@ -349,6 +696,29 @@ CertificateManagerTracingConnection::CreateTrustConfig( return internal::EndSpan(std::move(span), child_->CreateTrustConfig(request)); } +StatusOr +CertificateManagerTracingConnection::CreateTrustConfig( + ExperimentalTag, NoAwaitTag, + google::cloud::certificatemanager::v1::CreateTrustConfigRequest const& + request) { + auto span = internal::MakeSpan( + "certificatemanager_v1::CertificateManagerConnection::CreateTrustConfig"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->CreateTrustConfig(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +CertificateManagerTracingConnection::CreateTrustConfig( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "certificatemanager_v1::CertificateManagerConnection::CreateTrustConfig"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->CreateTrustConfig(ExperimentalTag{}, operation)); +} + future> CertificateManagerTracingConnection::UpdateTrustConfig( google::cloud::certificatemanager::v1::UpdateTrustConfigRequest const& @@ -359,6 +729,29 @@ CertificateManagerTracingConnection::UpdateTrustConfig( return internal::EndSpan(std::move(span), child_->UpdateTrustConfig(request)); } +StatusOr +CertificateManagerTracingConnection::UpdateTrustConfig( + ExperimentalTag, NoAwaitTag, + google::cloud::certificatemanager::v1::UpdateTrustConfigRequest const& + request) { + auto span = internal::MakeSpan( + "certificatemanager_v1::CertificateManagerConnection::UpdateTrustConfig"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->UpdateTrustConfig(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +CertificateManagerTracingConnection::UpdateTrustConfig( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "certificatemanager_v1::CertificateManagerConnection::UpdateTrustConfig"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->UpdateTrustConfig(ExperimentalTag{}, operation)); +} + future> CertificateManagerTracingConnection::DeleteTrustConfig( google::cloud::certificatemanager::v1::DeleteTrustConfigRequest const& @@ -369,6 +762,29 @@ CertificateManagerTracingConnection::DeleteTrustConfig( return internal::EndSpan(std::move(span), child_->DeleteTrustConfig(request)); } +StatusOr +CertificateManagerTracingConnection::DeleteTrustConfig( + ExperimentalTag, NoAwaitTag, + google::cloud::certificatemanager::v1::DeleteTrustConfigRequest const& + request) { + auto span = internal::MakeSpan( + "certificatemanager_v1::CertificateManagerConnection::DeleteTrustConfig"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->DeleteTrustConfig(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +CertificateManagerTracingConnection::DeleteTrustConfig( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "certificatemanager_v1::CertificateManagerConnection::DeleteTrustConfig"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->DeleteTrustConfig(ExperimentalTag{}, operation)); +} + #endif // GOOGLE_CLOUD_CPP_HAVE_OPENTELEMETRY std::shared_ptr diff --git a/google/cloud/certificatemanager/v1/internal/certificate_manager_tracing_connection.h b/google/cloud/certificatemanager/v1/internal/certificate_manager_tracing_connection.h index 46895aa7c5d04..3251dec695f7d 100644 --- a/google/cloud/certificatemanager/v1/internal/certificate_manager_tracing_connection.h +++ b/google/cloud/certificatemanager/v1/internal/certificate_manager_tracing_connection.h @@ -55,16 +55,43 @@ class CertificateManagerTracingConnection google::cloud::certificatemanager::v1::CreateCertificateRequest const& request) override; + StatusOr CreateCertificate( + ExperimentalTag, NoAwaitTag, + google::cloud::certificatemanager::v1::CreateCertificateRequest const& + request) override; + + future> + CreateCertificate(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateCertificate( google::cloud::certificatemanager::v1::UpdateCertificateRequest const& request) override; + StatusOr UpdateCertificate( + ExperimentalTag, NoAwaitTag, + google::cloud::certificatemanager::v1::UpdateCertificateRequest const& + request) override; + + future> + UpdateCertificate(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteCertificate( google::cloud::certificatemanager::v1::DeleteCertificateRequest const& request) override; + StatusOr DeleteCertificate( + ExperimentalTag, NoAwaitTag, + google::cloud::certificatemanager::v1::DeleteCertificateRequest const& + request) override; + + future> + DeleteCertificate(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListCertificateMaps( google::cloud::certificatemanager::v1::ListCertificateMapsRequest request) @@ -80,16 +107,46 @@ class CertificateManagerTracingConnection google::cloud::certificatemanager::v1::CreateCertificateMapRequest const& request) override; + StatusOr CreateCertificateMap( + ExperimentalTag, NoAwaitTag, + google::cloud::certificatemanager::v1::CreateCertificateMapRequest const& + request) override; + + future> + CreateCertificateMap( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateCertificateMap( google::cloud::certificatemanager::v1::UpdateCertificateMapRequest const& request) override; + StatusOr UpdateCertificateMap( + ExperimentalTag, NoAwaitTag, + google::cloud::certificatemanager::v1::UpdateCertificateMapRequest const& + request) override; + + future> + UpdateCertificateMap( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteCertificateMap( google::cloud::certificatemanager::v1::DeleteCertificateMapRequest const& request) override; + StatusOr DeleteCertificateMap( + ExperimentalTag, NoAwaitTag, + google::cloud::certificatemanager::v1::DeleteCertificateMapRequest const& + request) override; + + future> + DeleteCertificateMap( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListCertificateMapEntries( google::cloud::certificatemanager::v1::ListCertificateMapEntriesRequest @@ -105,16 +162,46 @@ class CertificateManagerTracingConnection google::cloud::certificatemanager::v1:: CreateCertificateMapEntryRequest const& request) override; + StatusOr CreateCertificateMapEntry( + ExperimentalTag, NoAwaitTag, + google::cloud::certificatemanager::v1:: + CreateCertificateMapEntryRequest const& request) override; + + future> + CreateCertificateMapEntry( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateCertificateMapEntry( google::cloud::certificatemanager::v1:: UpdateCertificateMapEntryRequest const& request) override; + StatusOr UpdateCertificateMapEntry( + ExperimentalTag, NoAwaitTag, + google::cloud::certificatemanager::v1:: + UpdateCertificateMapEntryRequest const& request) override; + + future> + UpdateCertificateMapEntry( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteCertificateMapEntry( google::cloud::certificatemanager::v1:: DeleteCertificateMapEntryRequest const& request) override; + StatusOr DeleteCertificateMapEntry( + ExperimentalTag, NoAwaitTag, + google::cloud::certificatemanager::v1:: + DeleteCertificateMapEntryRequest const& request) override; + + future> + DeleteCertificateMapEntry( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListDnsAuthorizations( google::cloud::certificatemanager::v1::ListDnsAuthorizationsRequest @@ -130,16 +217,46 @@ class CertificateManagerTracingConnection google::cloud::certificatemanager::v1:: CreateDnsAuthorizationRequest const& request) override; + StatusOr CreateDnsAuthorization( + ExperimentalTag, NoAwaitTag, + google::cloud::certificatemanager::v1:: + CreateDnsAuthorizationRequest const& request) override; + + future> + CreateDnsAuthorization( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateDnsAuthorization( google::cloud::certificatemanager::v1:: UpdateDnsAuthorizationRequest const& request) override; + StatusOr UpdateDnsAuthorization( + ExperimentalTag, NoAwaitTag, + google::cloud::certificatemanager::v1:: + UpdateDnsAuthorizationRequest const& request) override; + + future> + UpdateDnsAuthorization( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteDnsAuthorization( google::cloud::certificatemanager::v1:: DeleteDnsAuthorizationRequest const& request) override; + StatusOr DeleteDnsAuthorization( + ExperimentalTag, NoAwaitTag, + google::cloud::certificatemanager::v1:: + DeleteDnsAuthorizationRequest const& request) override; + + future> + DeleteDnsAuthorization( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListCertificateIssuanceConfigs( google::cloud::certificatemanager::v1:: @@ -156,11 +273,32 @@ class CertificateManagerTracingConnection google::cloud::certificatemanager::v1:: CreateCertificateIssuanceConfigRequest const& request) override; + StatusOr CreateCertificateIssuanceConfig( + ExperimentalTag, NoAwaitTag, + google::cloud::certificatemanager::v1:: + CreateCertificateIssuanceConfigRequest const& request) override; + + future> + CreateCertificateIssuanceConfig( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteCertificateIssuanceConfig( google::cloud::certificatemanager::v1:: DeleteCertificateIssuanceConfigRequest const& request) override; + StatusOr DeleteCertificateIssuanceConfig( + ExperimentalTag, NoAwaitTag, + google::cloud::certificatemanager::v1:: + DeleteCertificateIssuanceConfigRequest const& request) override; + + future> + DeleteCertificateIssuanceConfig( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListTrustConfigs( google::cloud::certificatemanager::v1::ListTrustConfigsRequest request) @@ -175,16 +313,43 @@ class CertificateManagerTracingConnection google::cloud::certificatemanager::v1::CreateTrustConfigRequest const& request) override; + StatusOr CreateTrustConfig( + ExperimentalTag, NoAwaitTag, + google::cloud::certificatemanager::v1::CreateTrustConfigRequest const& + request) override; + + future> + CreateTrustConfig(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateTrustConfig( google::cloud::certificatemanager::v1::UpdateTrustConfigRequest const& request) override; + StatusOr UpdateTrustConfig( + ExperimentalTag, NoAwaitTag, + google::cloud::certificatemanager::v1::UpdateTrustConfigRequest const& + request) override; + + future> + UpdateTrustConfig(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteTrustConfig( google::cloud::certificatemanager::v1::DeleteTrustConfigRequest const& request) override; + StatusOr DeleteTrustConfig( + ExperimentalTag, NoAwaitTag, + google::cloud::certificatemanager::v1::DeleteTrustConfigRequest const& + request) override; + + future> + DeleteTrustConfig(ExperimentalTag, + google::longrunning::Operation const& operation) override; + private: std::shared_ptr child_; }; diff --git a/google/cloud/certificatemanager/v1/mocks/mock_certificate_manager_connection.h b/google/cloud/certificatemanager/v1/mocks/mock_certificate_manager_connection.h index 827b6b7709cb7..7fc928b0de6a9 100644 --- a/google/cloud/certificatemanager/v1/mocks/mock_certificate_manager_connection.h +++ b/google/cloud/certificatemanager/v1/mocks/mock_certificate_manager_connection.h @@ -67,6 +67,19 @@ class MockCertificateManagerConnection request), (override)); + MOCK_METHOD( + StatusOr, CreateCertificate, + (ExperimentalTag, NoAwaitTag, + google::cloud::certificatemanager::v1::CreateCertificateRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + CreateCertificate, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, UpdateCertificate, @@ -74,6 +87,19 @@ class MockCertificateManagerConnection request), (override)); + MOCK_METHOD( + StatusOr, UpdateCertificate, + (ExperimentalTag, NoAwaitTag, + google::cloud::certificatemanager::v1::UpdateCertificateRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + UpdateCertificate, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future< StatusOr>, @@ -82,6 +108,20 @@ class MockCertificateManagerConnection request), (override)); + MOCK_METHOD( + StatusOr, DeleteCertificate, + (ExperimentalTag, NoAwaitTag, + google::cloud::certificatemanager::v1::DeleteCertificateRequest const& + request), + (override)); + + MOCK_METHOD( + future< + StatusOr>, + DeleteCertificate, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( (StreamRange), ListCertificateMaps, @@ -103,6 +143,19 @@ class MockCertificateManagerConnection request), (override)); + MOCK_METHOD( + StatusOr, CreateCertificateMap, + (ExperimentalTag, NoAwaitTag, + google::cloud::certificatemanager::v1::CreateCertificateMapRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + CreateCertificateMap, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, UpdateCertificateMap, @@ -110,6 +163,19 @@ class MockCertificateManagerConnection request), (override)); + MOCK_METHOD( + StatusOr, UpdateCertificateMap, + (ExperimentalTag, NoAwaitTag, + google::cloud::certificatemanager::v1::UpdateCertificateMapRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + UpdateCertificateMap, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future< StatusOr>, @@ -118,6 +184,20 @@ class MockCertificateManagerConnection request), (override)); + MOCK_METHOD( + StatusOr, DeleteCertificateMap, + (ExperimentalTag, NoAwaitTag, + google::cloud::certificatemanager::v1::DeleteCertificateMapRequest const& + request), + (override)); + + MOCK_METHOD( + future< + StatusOr>, + DeleteCertificateMap, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( (StreamRange), ListCertificateMapEntries, @@ -140,6 +220,20 @@ class MockCertificateManagerConnection CreateCertificateMapEntryRequest const& request), (override)); + MOCK_METHOD(StatusOr, + CreateCertificateMapEntry, + (ExperimentalTag, NoAwaitTag, + google::cloud::certificatemanager::v1:: + CreateCertificateMapEntryRequest const& request), + (override)); + + MOCK_METHOD( + future< + StatusOr>, + CreateCertificateMapEntry, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future< StatusOr>, @@ -148,6 +242,20 @@ class MockCertificateManagerConnection UpdateCertificateMapEntryRequest const& request), (override)); + MOCK_METHOD(StatusOr, + UpdateCertificateMapEntry, + (ExperimentalTag, NoAwaitTag, + google::cloud::certificatemanager::v1:: + UpdateCertificateMapEntryRequest const& request), + (override)); + + MOCK_METHOD( + future< + StatusOr>, + UpdateCertificateMapEntry, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future< StatusOr>, @@ -156,6 +264,20 @@ class MockCertificateManagerConnection DeleteCertificateMapEntryRequest const& request), (override)); + MOCK_METHOD(StatusOr, + DeleteCertificateMapEntry, + (ExperimentalTag, NoAwaitTag, + google::cloud::certificatemanager::v1:: + DeleteCertificateMapEntryRequest const& request), + (override)); + + MOCK_METHOD( + future< + StatusOr>, + DeleteCertificateMapEntry, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( (StreamRange), ListDnsAuthorizations, @@ -177,6 +299,18 @@ class MockCertificateManagerConnection CreateDnsAuthorizationRequest const& request), (override)); + MOCK_METHOD(StatusOr, CreateDnsAuthorization, + (ExperimentalTag, NoAwaitTag, + google::cloud::certificatemanager::v1:: + CreateDnsAuthorizationRequest const& request), + (override)); + + MOCK_METHOD( + future>, + CreateDnsAuthorization, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, UpdateDnsAuthorization, @@ -184,6 +318,18 @@ class MockCertificateManagerConnection UpdateDnsAuthorizationRequest const& request), (override)); + MOCK_METHOD(StatusOr, UpdateDnsAuthorization, + (ExperimentalTag, NoAwaitTag, + google::cloud::certificatemanager::v1:: + UpdateDnsAuthorizationRequest const& request), + (override)); + + MOCK_METHOD( + future>, + UpdateDnsAuthorization, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future< StatusOr>, @@ -192,6 +338,19 @@ class MockCertificateManagerConnection DeleteDnsAuthorizationRequest const& request), (override)); + MOCK_METHOD(StatusOr, DeleteDnsAuthorization, + (ExperimentalTag, NoAwaitTag, + google::cloud::certificatemanager::v1:: + DeleteDnsAuthorizationRequest const& request), + (override)); + + MOCK_METHOD( + future< + StatusOr>, + DeleteDnsAuthorization, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( (StreamRange< google::cloud::certificatemanager::v1::CertificateIssuanceConfig>), @@ -216,6 +375,20 @@ class MockCertificateManagerConnection CreateCertificateIssuanceConfigRequest const& request), (override)); + MOCK_METHOD(StatusOr, + CreateCertificateIssuanceConfig, + (ExperimentalTag, NoAwaitTag, + google::cloud::certificatemanager::v1:: + CreateCertificateIssuanceConfigRequest const& request), + (override)); + + MOCK_METHOD( + future>, + CreateCertificateIssuanceConfig, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future< StatusOr>, @@ -224,6 +397,20 @@ class MockCertificateManagerConnection DeleteCertificateIssuanceConfigRequest const& request), (override)); + MOCK_METHOD(StatusOr, + DeleteCertificateIssuanceConfig, + (ExperimentalTag, NoAwaitTag, + google::cloud::certificatemanager::v1:: + DeleteCertificateIssuanceConfigRequest const& request), + (override)); + + MOCK_METHOD( + future< + StatusOr>, + DeleteCertificateIssuanceConfig, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( (StreamRange), ListTrustConfigs, @@ -244,6 +431,19 @@ class MockCertificateManagerConnection request), (override)); + MOCK_METHOD( + StatusOr, CreateTrustConfig, + (ExperimentalTag, NoAwaitTag, + google::cloud::certificatemanager::v1::CreateTrustConfigRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + CreateTrustConfig, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, UpdateTrustConfig, @@ -251,6 +451,19 @@ class MockCertificateManagerConnection request), (override)); + MOCK_METHOD( + StatusOr, UpdateTrustConfig, + (ExperimentalTag, NoAwaitTag, + google::cloud::certificatemanager::v1::UpdateTrustConfigRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + UpdateTrustConfig, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future< StatusOr>, @@ -258,6 +471,20 @@ class MockCertificateManagerConnection (google::cloud::certificatemanager::v1::DeleteTrustConfigRequest const& request), (override)); + + MOCK_METHOD( + StatusOr, DeleteTrustConfig, + (ExperimentalTag, NoAwaitTag, + google::cloud::certificatemanager::v1::DeleteTrustConfigRequest const& + request), + (override)); + + MOCK_METHOD( + future< + StatusOr>, + DeleteTrustConfig, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); }; GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END diff --git a/google/cloud/channel/v1/cloud_channel_connection.cc b/google/cloud/channel/v1/cloud_channel_connection.cc index e6ad359d1443e..4eb4bb3ce9c11 100644 --- a/google/cloud/channel/v1/cloud_channel_connection.cc +++ b/google/cloud/channel/v1/cloud_channel_connection.cc @@ -89,6 +89,22 @@ CloudChannelServiceConnection::ProvisionCloudIdentity( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +CloudChannelServiceConnection::ProvisionCloudIdentity( + ExperimentalTag, NoAwaitTag, + google::cloud::channel::v1::ProvisionCloudIdentityRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +CloudChannelServiceConnection::ProvisionCloudIdentity( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StreamRange CloudChannelServiceConnection::ListEntitlements( google::cloud::channel::v1:: @@ -127,9 +143,41 @@ CloudChannelServiceConnection::CreateEntitlement( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +CloudChannelServiceConnection::CreateEntitlement( + ExperimentalTag, NoAwaitTag, + google::cloud::channel::v1::CreateEntitlementRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> +CloudChannelServiceConnection::CreateEntitlement( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +CloudChannelServiceConnection::ChangeParameters( + google::cloud::channel::v1::ChangeParametersRequest const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +StatusOr CloudChannelServiceConnection::ChangeParameters( + ExperimentalTag, NoAwaitTag, google::cloud::channel::v1::ChangeParametersRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +CloudChannelServiceConnection::ChangeParameters( + ExperimentalTag, google::longrunning::Operation const&) { return google::cloud::make_ready_future< StatusOr>( Status(StatusCode::kUnimplemented, "not implemented")); @@ -143,6 +191,22 @@ CloudChannelServiceConnection::ChangeRenewalSettings( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +CloudChannelServiceConnection::ChangeRenewalSettings( + ExperimentalTag, NoAwaitTag, + google::cloud::channel::v1::ChangeRenewalSettingsRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +CloudChannelServiceConnection::ChangeRenewalSettings( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> CloudChannelServiceConnection::ChangeOffer( google::cloud::channel::v1::ChangeOfferRequest const&) { @@ -151,6 +215,22 @@ CloudChannelServiceConnection::ChangeOffer( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +CloudChannelServiceConnection::ChangeOffer( + ExperimentalTag, NoAwaitTag, + google::cloud::channel::v1::ChangeOfferRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +CloudChannelServiceConnection::ChangeOffer( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> CloudChannelServiceConnection::StartPaidService( google::cloud::channel::v1::StartPaidServiceRequest const&) { @@ -159,6 +239,22 @@ CloudChannelServiceConnection::StartPaidService( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +CloudChannelServiceConnection::StartPaidService( + ExperimentalTag, NoAwaitTag, + google::cloud::channel::v1::StartPaidServiceRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +CloudChannelServiceConnection::StartPaidService( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> CloudChannelServiceConnection::SuspendEntitlement( google::cloud::channel::v1::SuspendEntitlementRequest const&) { @@ -167,6 +263,22 @@ CloudChannelServiceConnection::SuspendEntitlement( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +CloudChannelServiceConnection::SuspendEntitlement( + ExperimentalTag, NoAwaitTag, + google::cloud::channel::v1::SuspendEntitlementRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +CloudChannelServiceConnection::SuspendEntitlement( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> CloudChannelServiceConnection::CancelEntitlement( google::cloud::channel::v1::CancelEntitlementRequest const&) { @@ -175,6 +287,22 @@ CloudChannelServiceConnection::CancelEntitlement( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +CloudChannelServiceConnection::CancelEntitlement( + ExperimentalTag, NoAwaitTag, + google::cloud::channel::v1::CancelEntitlementRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +CloudChannelServiceConnection::CancelEntitlement( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> CloudChannelServiceConnection::ActivateEntitlement( google::cloud::channel::v1::ActivateEntitlementRequest const&) { @@ -183,6 +311,22 @@ CloudChannelServiceConnection::ActivateEntitlement( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +CloudChannelServiceConnection::ActivateEntitlement( + ExperimentalTag, NoAwaitTag, + google::cloud::channel::v1::ActivateEntitlementRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +CloudChannelServiceConnection::ActivateEntitlement( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> CloudChannelServiceConnection::TransferEntitlements( google::cloud::channel::v1::TransferEntitlementsRequest const&) { @@ -191,6 +335,22 @@ CloudChannelServiceConnection::TransferEntitlements( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +CloudChannelServiceConnection::TransferEntitlements( + ExperimentalTag, NoAwaitTag, + google::cloud::channel::v1::TransferEntitlementsRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +CloudChannelServiceConnection::TransferEntitlements( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> CloudChannelServiceConnection::TransferEntitlementsToGoogle( google::cloud::channel::v1::TransferEntitlementsToGoogleRequest const&) { @@ -199,6 +359,22 @@ CloudChannelServiceConnection::TransferEntitlementsToGoogle( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +CloudChannelServiceConnection::TransferEntitlementsToGoogle( + ExperimentalTag, NoAwaitTag, + google::cloud::channel::v1::TransferEntitlementsToGoogleRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +CloudChannelServiceConnection::TransferEntitlementsToGoogle( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StreamRange CloudChannelServiceConnection::ListChannelPartnerLinks( google::cloud::channel::v1:: diff --git a/google/cloud/channel/v1/cloud_channel_connection.h b/google/cloud/channel/v1/cloud_channel_connection.h index 420d9ddf47bfb..c35572701ff5e 100644 --- a/google/cloud/channel/v1/cloud_channel_connection.h +++ b/google/cloud/channel/v1/cloud_channel_connection.h @@ -22,8 +22,10 @@ #include "google/cloud/channel/v1/cloud_channel_connection_idempotency_policy.h" #include "google/cloud/channel/v1/internal/cloud_channel_retry_traits.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/internal/retry_policy_impl.h" +#include "google/cloud/no_await_tag.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" #include "google/cloud/status_or.h" @@ -217,6 +219,14 @@ class CloudChannelServiceConnection { ProvisionCloudIdentity( google::cloud::channel::v1::ProvisionCloudIdentityRequest const& request); + virtual StatusOr ProvisionCloudIdentity( + ExperimentalTag, NoAwaitTag, + google::cloud::channel::v1::ProvisionCloudIdentityRequest const& request); + + virtual future> + ProvisionCloudIdentity(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StreamRange ListEntitlements( google::cloud::channel::v1::ListEntitlementsRequest request); @@ -235,43 +245,124 @@ class CloudChannelServiceConnection { CreateEntitlement( google::cloud::channel::v1::CreateEntitlementRequest const& request); + virtual StatusOr CreateEntitlement( + ExperimentalTag, NoAwaitTag, + google::cloud::channel::v1::CreateEntitlementRequest const& request); + + virtual future> + CreateEntitlement(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> ChangeParameters( google::cloud::channel::v1::ChangeParametersRequest const& request); + virtual StatusOr ChangeParameters( + ExperimentalTag, NoAwaitTag, + google::cloud::channel::v1::ChangeParametersRequest const& request); + + virtual future> + ChangeParameters(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> ChangeRenewalSettings( google::cloud::channel::v1::ChangeRenewalSettingsRequest const& request); + virtual StatusOr ChangeRenewalSettings( + ExperimentalTag, NoAwaitTag, + google::cloud::channel::v1::ChangeRenewalSettingsRequest const& request); + + virtual future> + ChangeRenewalSettings(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> ChangeOffer( google::cloud::channel::v1::ChangeOfferRequest const& request); + virtual StatusOr ChangeOffer( + ExperimentalTag, NoAwaitTag, + google::cloud::channel::v1::ChangeOfferRequest const& request); + + virtual future> ChangeOffer( + ExperimentalTag, google::longrunning::Operation const& operation); + virtual future> StartPaidService( google::cloud::channel::v1::StartPaidServiceRequest const& request); + virtual StatusOr StartPaidService( + ExperimentalTag, NoAwaitTag, + google::cloud::channel::v1::StartPaidServiceRequest const& request); + + virtual future> + StartPaidService(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> SuspendEntitlement( google::cloud::channel::v1::SuspendEntitlementRequest const& request); + virtual StatusOr SuspendEntitlement( + ExperimentalTag, NoAwaitTag, + google::cloud::channel::v1::SuspendEntitlementRequest const& request); + + virtual future> + SuspendEntitlement(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> CancelEntitlement( google::cloud::channel::v1::CancelEntitlementRequest const& request); + virtual StatusOr CancelEntitlement( + ExperimentalTag, NoAwaitTag, + google::cloud::channel::v1::CancelEntitlementRequest const& request); + + virtual future> + CancelEntitlement(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> ActivateEntitlement( google::cloud::channel::v1::ActivateEntitlementRequest const& request); + virtual StatusOr ActivateEntitlement( + ExperimentalTag, NoAwaitTag, + google::cloud::channel::v1::ActivateEntitlementRequest const& request); + + virtual future> + ActivateEntitlement(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future< StatusOr> TransferEntitlements( google::cloud::channel::v1::TransferEntitlementsRequest const& request); + virtual StatusOr TransferEntitlements( + ExperimentalTag, NoAwaitTag, + google::cloud::channel::v1::TransferEntitlementsRequest const& request); + + virtual future< + StatusOr> + TransferEntitlements(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> TransferEntitlementsToGoogle( google::cloud::channel::v1::TransferEntitlementsToGoogleRequest const& request); + virtual StatusOr TransferEntitlementsToGoogle( + ExperimentalTag, NoAwaitTag, + google::cloud::channel::v1::TransferEntitlementsToGoogleRequest const& + request); + + virtual future> + TransferEntitlementsToGoogle(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StreamRange ListChannelPartnerLinks( google::cloud::channel::v1::ListChannelPartnerLinksRequest request); diff --git a/google/cloud/channel/v1/cloud_channel_reports_connection.cc b/google/cloud/channel/v1/cloud_channel_reports_connection.cc index 29943ca84ffdf..88a70f9587773 100644 --- a/google/cloud/channel/v1/cloud_channel_reports_connection.cc +++ b/google/cloud/channel/v1/cloud_channel_reports_connection.cc @@ -47,6 +47,22 @@ CloudChannelReportsServiceConnection::RunReportJob( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +CloudChannelReportsServiceConnection::RunReportJob( + ExperimentalTag, NoAwaitTag, + google::cloud::channel::v1::RunReportJobRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +CloudChannelReportsServiceConnection::RunReportJob( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StreamRange CloudChannelReportsServiceConnection::FetchReportResults( google::cloud::channel::v1:: diff --git a/google/cloud/channel/v1/cloud_channel_reports_connection.h b/google/cloud/channel/v1/cloud_channel_reports_connection.h index 1710571ee0aef..903fdc478c5be 100644 --- a/google/cloud/channel/v1/cloud_channel_reports_connection.h +++ b/google/cloud/channel/v1/cloud_channel_reports_connection.h @@ -22,8 +22,10 @@ #include "google/cloud/channel/v1/cloud_channel_reports_connection_idempotency_policy.h" #include "google/cloud/channel/v1/internal/cloud_channel_reports_retry_traits.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/internal/retry_policy_impl.h" +#include "google/cloud/no_await_tag.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" #include "google/cloud/status_or.h" @@ -206,6 +208,14 @@ class CloudChannelReportsServiceConnection { virtual future> RunReportJob(google::cloud::channel::v1::RunReportJobRequest const& request); + virtual StatusOr RunReportJob( + ExperimentalTag, NoAwaitTag, + google::cloud::channel::v1::RunReportJobRequest const& request); + + virtual future> + RunReportJob(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StreamRange FetchReportResults( google::cloud::channel::v1::FetchReportResultsRequest request); diff --git a/google/cloud/channel/v1/internal/cloud_channel_connection_impl.cc b/google/cloud/channel/v1/internal/cloud_channel_connection_impl.cc index e41dec68153e6..9c4972c47abdc 100644 --- a/google/cloud/channel/v1/internal/cloud_channel_connection_impl.cc +++ b/google/cloud/channel/v1/internal/cloud_channel_connection_impl.cc @@ -227,6 +227,58 @@ CloudChannelServiceConnectionImpl::ProvisionCloudIdentity( polling_policy(*current), __func__); } +StatusOr +CloudChannelServiceConnectionImpl::ProvisionCloudIdentity( + ExperimentalTag, NoAwaitTag, + google::cloud::channel::v1::ProvisionCloudIdentityRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->ProvisionCloudIdentity(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::channel::v1::ProvisionCloudIdentityRequest const& + request) { + return stub_->ProvisionCloudIdentity(context, options, request); + }, + *current, request, __func__); +} + +future> +CloudChannelServiceConnectionImpl::ProvisionCloudIdentity( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to ProvisionCloudIdentity", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::channel::v1::Customer>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::channel::v1::Customer>, + polling_policy(*current), __func__); +} + StreamRange CloudChannelServiceConnectionImpl::ListEntitlements( google::cloud::channel::v1::ListEntitlementsRequest request) { @@ -386,6 +438,58 @@ CloudChannelServiceConnectionImpl::CreateEntitlement( polling_policy(*current), __func__); } +StatusOr +CloudChannelServiceConnectionImpl::CreateEntitlement( + ExperimentalTag, NoAwaitTag, + google::cloud::channel::v1::CreateEntitlementRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateEntitlement(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::channel::v1::CreateEntitlementRequest const& request) { + return stub_->CreateEntitlement(context, options, request); + }, + *current, request, __func__); +} + +future> +CloudChannelServiceConnectionImpl::CreateEntitlement( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to CreateEntitlement", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::channel::v1::Entitlement>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::channel::v1::Entitlement>, + polling_policy(*current), __func__); +} + future> CloudChannelServiceConnectionImpl::ChangeParameters( google::cloud::channel::v1::ChangeParametersRequest const& request) { @@ -425,6 +529,58 @@ CloudChannelServiceConnectionImpl::ChangeParameters( polling_policy(*current), __func__); } +StatusOr +CloudChannelServiceConnectionImpl::ChangeParameters( + ExperimentalTag, NoAwaitTag, + google::cloud::channel::v1::ChangeParametersRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->ChangeParameters(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::channel::v1::ChangeParametersRequest const& request) { + return stub_->ChangeParameters(context, options, request); + }, + *current, request, __func__); +} + +future> +CloudChannelServiceConnectionImpl::ChangeParameters( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to ChangeParameters", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::channel::v1::Entitlement>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::channel::v1::Entitlement>, + polling_policy(*current), __func__); +} + future> CloudChannelServiceConnectionImpl::ChangeRenewalSettings( google::cloud::channel::v1::ChangeRenewalSettingsRequest const& request) { @@ -465,6 +621,58 @@ CloudChannelServiceConnectionImpl::ChangeRenewalSettings( polling_policy(*current), __func__); } +StatusOr +CloudChannelServiceConnectionImpl::ChangeRenewalSettings( + ExperimentalTag, NoAwaitTag, + google::cloud::channel::v1::ChangeRenewalSettingsRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->ChangeRenewalSettings(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::channel::v1::ChangeRenewalSettingsRequest const& + request) { + return stub_->ChangeRenewalSettings(context, options, request); + }, + *current, request, __func__); +} + +future> +CloudChannelServiceConnectionImpl::ChangeRenewalSettings( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to ChangeRenewalSettings", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::channel::v1::Entitlement>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::channel::v1::Entitlement>, + polling_policy(*current), __func__); +} + future> CloudChannelServiceConnectionImpl::ChangeOffer( google::cloud::channel::v1::ChangeOfferRequest const& request) { @@ -504,6 +712,57 @@ CloudChannelServiceConnectionImpl::ChangeOffer( polling_policy(*current), __func__); } +StatusOr +CloudChannelServiceConnectionImpl::ChangeOffer( + ExperimentalTag, NoAwaitTag, + google::cloud::channel::v1::ChangeOfferRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->ChangeOffer(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::channel::v1::ChangeOfferRequest const& request) { + return stub_->ChangeOffer(context, options, request); + }, + *current, request, __func__); +} + +future> +CloudChannelServiceConnectionImpl::ChangeOffer( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to ChangeOffer", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::channel::v1::Entitlement>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::channel::v1::Entitlement>, + polling_policy(*current), __func__); +} + future> CloudChannelServiceConnectionImpl::StartPaidService( google::cloud::channel::v1::StartPaidServiceRequest const& request) { @@ -543,6 +802,58 @@ CloudChannelServiceConnectionImpl::StartPaidService( polling_policy(*current), __func__); } +StatusOr +CloudChannelServiceConnectionImpl::StartPaidService( + ExperimentalTag, NoAwaitTag, + google::cloud::channel::v1::StartPaidServiceRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->StartPaidService(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::channel::v1::StartPaidServiceRequest const& request) { + return stub_->StartPaidService(context, options, request); + }, + *current, request, __func__); +} + +future> +CloudChannelServiceConnectionImpl::StartPaidService( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to StartPaidService", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::channel::v1::Entitlement>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::channel::v1::Entitlement>, + polling_policy(*current), __func__); +} + future> CloudChannelServiceConnectionImpl::SuspendEntitlement( google::cloud::channel::v1::SuspendEntitlementRequest const& request) { @@ -583,6 +894,58 @@ CloudChannelServiceConnectionImpl::SuspendEntitlement( polling_policy(*current), __func__); } +StatusOr +CloudChannelServiceConnectionImpl::SuspendEntitlement( + ExperimentalTag, NoAwaitTag, + google::cloud::channel::v1::SuspendEntitlementRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->SuspendEntitlement(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::channel::v1::SuspendEntitlementRequest const& + request) { + return stub_->SuspendEntitlement(context, options, request); + }, + *current, request, __func__); +} + +future> +CloudChannelServiceConnectionImpl::SuspendEntitlement( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to SuspendEntitlement", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::channel::v1::Entitlement>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::channel::v1::Entitlement>, + polling_policy(*current), __func__); +} + future> CloudChannelServiceConnectionImpl::CancelEntitlement( google::cloud::channel::v1::CancelEntitlementRequest const& request) { @@ -622,6 +985,59 @@ CloudChannelServiceConnectionImpl::CancelEntitlement( polling_policy(*current), __func__); } +StatusOr +CloudChannelServiceConnectionImpl::CancelEntitlement( + ExperimentalTag, NoAwaitTag, + google::cloud::channel::v1::CancelEntitlementRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CancelEntitlement(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::channel::v1::CancelEntitlementRequest const& request) { + return stub_->CancelEntitlement(context, options, request); + }, + *current, request, __func__); +} + +future> +CloudChannelServiceConnectionImpl::CancelEntitlement( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to CancelEntitlement", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::channel::v1::OperationMetadata>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::cloud::channel::v1::OperationMetadata>, + polling_policy(*current), __func__); +} + future> CloudChannelServiceConnectionImpl::ActivateEntitlement( google::cloud::channel::v1::ActivateEntitlementRequest const& request) { @@ -662,6 +1078,58 @@ CloudChannelServiceConnectionImpl::ActivateEntitlement( polling_policy(*current), __func__); } +StatusOr +CloudChannelServiceConnectionImpl::ActivateEntitlement( + ExperimentalTag, NoAwaitTag, + google::cloud::channel::v1::ActivateEntitlementRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->ActivateEntitlement(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::channel::v1::ActivateEntitlementRequest const& + request) { + return stub_->ActivateEntitlement(context, options, request); + }, + *current, request, __func__); +} + +future> +CloudChannelServiceConnectionImpl::ActivateEntitlement( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to ActivateEntitlement", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::channel::v1::Entitlement>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::channel::v1::Entitlement>, + polling_policy(*current), __func__); +} + future> CloudChannelServiceConnectionImpl::TransferEntitlements( google::cloud::channel::v1::TransferEntitlementsRequest const& request) { @@ -702,6 +1170,59 @@ CloudChannelServiceConnectionImpl::TransferEntitlements( polling_policy(*current), __func__); } +StatusOr +CloudChannelServiceConnectionImpl::TransferEntitlements( + ExperimentalTag, NoAwaitTag, + google::cloud::channel::v1::TransferEntitlementsRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->TransferEntitlements(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::channel::v1::TransferEntitlementsRequest const& + request) { + return stub_->TransferEntitlements(context, options, request); + }, + *current, request, __func__); +} + +future> +CloudChannelServiceConnectionImpl::TransferEntitlements( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to TransferEntitlements", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::channel::v1::TransferEntitlementsResponse>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::channel::v1::TransferEntitlementsResponse>, + polling_policy(*current), __func__); +} + future> CloudChannelServiceConnectionImpl::TransferEntitlementsToGoogle( google::cloud::channel::v1::TransferEntitlementsToGoogleRequest const& @@ -743,6 +1264,61 @@ CloudChannelServiceConnectionImpl::TransferEntitlementsToGoogle( polling_policy(*current), __func__); } +StatusOr +CloudChannelServiceConnectionImpl::TransferEntitlementsToGoogle( + ExperimentalTag, NoAwaitTag, + google::cloud::channel::v1::TransferEntitlementsToGoogleRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->TransferEntitlementsToGoogle(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::channel::v1::TransferEntitlementsToGoogleRequest const& + request) { + return stub_->TransferEntitlementsToGoogle(context, options, request); + }, + *current, request, __func__); +} + +future> +CloudChannelServiceConnectionImpl::TransferEntitlementsToGoogle( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to TransferEntitlementsToGoogle", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::channel::v1::OperationMetadata>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::cloud::channel::v1::OperationMetadata>, + polling_policy(*current), __func__); +} + StreamRange CloudChannelServiceConnectionImpl::ListChannelPartnerLinks( google::cloud::channel::v1::ListChannelPartnerLinksRequest request) { diff --git a/google/cloud/channel/v1/internal/cloud_channel_connection_impl.h b/google/cloud/channel/v1/internal/cloud_channel_connection_impl.h index da91ce078983a..1cb1705c77e08 100644 --- a/google/cloud/channel/v1/internal/cloud_channel_connection_impl.h +++ b/google/cloud/channel/v1/internal/cloud_channel_connection_impl.h @@ -82,6 +82,15 @@ class CloudChannelServiceConnectionImpl google::cloud::channel::v1::ProvisionCloudIdentityRequest const& request) override; + StatusOr ProvisionCloudIdentity( + ExperimentalTag, NoAwaitTag, + google::cloud::channel::v1::ProvisionCloudIdentityRequest const& request) + override; + + future> ProvisionCloudIdentity( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListEntitlements( google::cloud::channel::v1::ListEntitlementsRequest request) override; @@ -101,44 +110,136 @@ class CloudChannelServiceConnectionImpl google::cloud::channel::v1::CreateEntitlementRequest const& request) override; + StatusOr CreateEntitlement( + ExperimentalTag, NoAwaitTag, + google::cloud::channel::v1::CreateEntitlementRequest const& request) + override; + + future> CreateEntitlement( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ChangeParameters( google::cloud::channel::v1::ChangeParametersRequest const& request) override; + StatusOr ChangeParameters( + ExperimentalTag, NoAwaitTag, + google::cloud::channel::v1::ChangeParametersRequest const& request) + override; + + future> ChangeParameters( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ChangeRenewalSettings( google::cloud::channel::v1::ChangeRenewalSettingsRequest const& request) override; + StatusOr ChangeRenewalSettings( + ExperimentalTag, NoAwaitTag, + google::cloud::channel::v1::ChangeRenewalSettingsRequest const& request) + override; + + future> + ChangeRenewalSettings( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ChangeOffer( google::cloud::channel::v1::ChangeOfferRequest const& request) override; + StatusOr ChangeOffer( + ExperimentalTag, NoAwaitTag, + google::cloud::channel::v1::ChangeOfferRequest const& request) override; + + future> ChangeOffer( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> StartPaidService( google::cloud::channel::v1::StartPaidServiceRequest const& request) override; + StatusOr StartPaidService( + ExperimentalTag, NoAwaitTag, + google::cloud::channel::v1::StartPaidServiceRequest const& request) + override; + + future> StartPaidService( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> SuspendEntitlement( google::cloud::channel::v1::SuspendEntitlementRequest const& request) override; + StatusOr SuspendEntitlement( + ExperimentalTag, NoAwaitTag, + google::cloud::channel::v1::SuspendEntitlementRequest const& request) + override; + + future> SuspendEntitlement( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> CancelEntitlement(google::cloud::channel::v1::CancelEntitlementRequest const& request) override; + StatusOr CancelEntitlement( + ExperimentalTag, NoAwaitTag, + google::cloud::channel::v1::CancelEntitlementRequest const& request) + override; + + future> + CancelEntitlement(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ActivateEntitlement( google::cloud::channel::v1::ActivateEntitlementRequest const& request) override; + StatusOr ActivateEntitlement( + ExperimentalTag, NoAwaitTag, + google::cloud::channel::v1::ActivateEntitlementRequest const& request) + override; + + future> ActivateEntitlement( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> TransferEntitlements( google::cloud::channel::v1::TransferEntitlementsRequest const& request) override; + StatusOr TransferEntitlements( + ExperimentalTag, NoAwaitTag, + google::cloud::channel::v1::TransferEntitlementsRequest const& request) + override; + + future> + TransferEntitlements( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> TransferEntitlementsToGoogle( google::cloud::channel::v1::TransferEntitlementsToGoogleRequest const& request) override; + StatusOr TransferEntitlementsToGoogle( + ExperimentalTag, NoAwaitTag, + google::cloud::channel::v1::TransferEntitlementsToGoogleRequest const& + request) override; + + future> + TransferEntitlementsToGoogle( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListChannelPartnerLinks( google::cloud::channel::v1::ListChannelPartnerLinksRequest request) diff --git a/google/cloud/channel/v1/internal/cloud_channel_reports_connection_impl.cc b/google/cloud/channel/v1/internal/cloud_channel_reports_connection_impl.cc index 6f9495b42b6fb..3b4ed77e10815 100644 --- a/google/cloud/channel/v1/internal/cloud_channel_reports_connection_impl.cc +++ b/google/cloud/channel/v1/internal/cloud_channel_reports_connection_impl.cc @@ -113,6 +113,58 @@ CloudChannelReportsServiceConnectionImpl::RunReportJob( polling_policy(*current), __func__); } +StatusOr +CloudChannelReportsServiceConnectionImpl::RunReportJob( + ExperimentalTag, NoAwaitTag, + google::cloud::channel::v1::RunReportJobRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->RunReportJob(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::channel::v1::RunReportJobRequest const& request) { + return stub_->RunReportJob(context, options, request); + }, + *current, request, __func__); +} + +future> +CloudChannelReportsServiceConnectionImpl::RunReportJob( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to RunReportJob", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::channel::v1::RunReportJobResponse>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::channel::v1::RunReportJobResponse>, + polling_policy(*current), __func__); +} + StreamRange CloudChannelReportsServiceConnectionImpl::FetchReportResults( google::cloud::channel::v1::FetchReportResultsRequest request) { diff --git a/google/cloud/channel/v1/internal/cloud_channel_reports_connection_impl.h b/google/cloud/channel/v1/internal/cloud_channel_reports_connection_impl.h index 37acd0959c22c..82f9f257279a1 100644 --- a/google/cloud/channel/v1/internal/cloud_channel_reports_connection_impl.h +++ b/google/cloud/channel/v1/internal/cloud_channel_reports_connection_impl.h @@ -56,6 +56,14 @@ class CloudChannelReportsServiceConnectionImpl RunReportJob( google::cloud::channel::v1::RunReportJobRequest const& request) override; + StatusOr RunReportJob( + ExperimentalTag, NoAwaitTag, + google::cloud::channel::v1::RunReportJobRequest const& request) override; + + future> + RunReportJob(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange FetchReportResults( google::cloud::channel::v1::FetchReportResultsRequest request) override; diff --git a/google/cloud/channel/v1/internal/cloud_channel_reports_tracing_connection.cc b/google/cloud/channel/v1/internal/cloud_channel_reports_tracing_connection.cc index a08137795ca8c..ee5f3f8e1fc66 100644 --- a/google/cloud/channel/v1/internal/cloud_channel_reports_tracing_connection.cc +++ b/google/cloud/channel/v1/internal/cloud_channel_reports_tracing_connection.cc @@ -43,6 +43,27 @@ CloudChannelReportsServiceTracingConnection::RunReportJob( return internal::EndSpan(std::move(span), child_->RunReportJob(request)); } +StatusOr +CloudChannelReportsServiceTracingConnection::RunReportJob( + ExperimentalTag, NoAwaitTag, + google::cloud::channel::v1::RunReportJobRequest const& request) { + auto span = internal::MakeSpan( + "channel_v1::CloudChannelReportsServiceConnection::RunReportJob"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->RunReportJob(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +CloudChannelReportsServiceTracingConnection::RunReportJob( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "channel_v1::CloudChannelReportsServiceConnection::RunReportJob"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->RunReportJob(ExperimentalTag{}, operation)); +} + StreamRange CloudChannelReportsServiceTracingConnection::FetchReportResults( google::cloud::channel::v1::FetchReportResultsRequest request) { diff --git a/google/cloud/channel/v1/internal/cloud_channel_reports_tracing_connection.h b/google/cloud/channel/v1/internal/cloud_channel_reports_tracing_connection.h index abb60a0eb944c..da96924e4a672 100644 --- a/google/cloud/channel/v1/internal/cloud_channel_reports_tracing_connection.h +++ b/google/cloud/channel/v1/internal/cloud_channel_reports_tracing_connection.h @@ -44,6 +44,14 @@ class CloudChannelReportsServiceTracingConnection RunReportJob( google::cloud::channel::v1::RunReportJobRequest const& request) override; + StatusOr RunReportJob( + ExperimentalTag, NoAwaitTag, + google::cloud::channel::v1::RunReportJobRequest const& request) override; + + future> + RunReportJob(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange FetchReportResults( google::cloud::channel::v1::FetchReportResultsRequest request) override; diff --git a/google/cloud/channel/v1/internal/cloud_channel_tracing_connection.cc b/google/cloud/channel/v1/internal/cloud_channel_tracing_connection.cc index 614d0e7ce75f4..2bb4033300723 100644 --- a/google/cloud/channel/v1/internal/cloud_channel_tracing_connection.cc +++ b/google/cloud/channel/v1/internal/cloud_channel_tracing_connection.cc @@ -110,6 +110,28 @@ CloudChannelServiceTracingConnection::ProvisionCloudIdentity( child_->ProvisionCloudIdentity(request)); } +StatusOr +CloudChannelServiceTracingConnection::ProvisionCloudIdentity( + ExperimentalTag, NoAwaitTag, + google::cloud::channel::v1::ProvisionCloudIdentityRequest const& request) { + auto span = internal::MakeSpan( + "channel_v1::CloudChannelServiceConnection::ProvisionCloudIdentity"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->ProvisionCloudIdentity(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +CloudChannelServiceTracingConnection::ProvisionCloudIdentity( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "channel_v1::CloudChannelServiceConnection::ProvisionCloudIdentity"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->ProvisionCloudIdentity( + ExperimentalTag{}, operation)); +} + StreamRange CloudChannelServiceTracingConnection::ListEntitlements( google::cloud::channel::v1::ListEntitlementsRequest request) { @@ -163,6 +185,28 @@ CloudChannelServiceTracingConnection::CreateEntitlement( return internal::EndSpan(std::move(span), child_->CreateEntitlement(request)); } +StatusOr +CloudChannelServiceTracingConnection::CreateEntitlement( + ExperimentalTag, NoAwaitTag, + google::cloud::channel::v1::CreateEntitlementRequest const& request) { + auto span = internal::MakeSpan( + "channel_v1::CloudChannelServiceConnection::CreateEntitlement"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->CreateEntitlement(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +CloudChannelServiceTracingConnection::CreateEntitlement( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "channel_v1::CloudChannelServiceConnection::CreateEntitlement"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->CreateEntitlement(ExperimentalTag{}, operation)); +} + future> CloudChannelServiceTracingConnection::ChangeParameters( google::cloud::channel::v1::ChangeParametersRequest const& request) { @@ -172,6 +216,28 @@ CloudChannelServiceTracingConnection::ChangeParameters( return internal::EndSpan(std::move(span), child_->ChangeParameters(request)); } +StatusOr +CloudChannelServiceTracingConnection::ChangeParameters( + ExperimentalTag, NoAwaitTag, + google::cloud::channel::v1::ChangeParametersRequest const& request) { + auto span = internal::MakeSpan( + "channel_v1::CloudChannelServiceConnection::ChangeParameters"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->ChangeParameters(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +CloudChannelServiceTracingConnection::ChangeParameters( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "channel_v1::CloudChannelServiceConnection::ChangeParameters"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->ChangeParameters(ExperimentalTag{}, operation)); +} + future> CloudChannelServiceTracingConnection::ChangeRenewalSettings( google::cloud::channel::v1::ChangeRenewalSettingsRequest const& request) { @@ -182,6 +248,28 @@ CloudChannelServiceTracingConnection::ChangeRenewalSettings( child_->ChangeRenewalSettings(request)); } +StatusOr +CloudChannelServiceTracingConnection::ChangeRenewalSettings( + ExperimentalTag, NoAwaitTag, + google::cloud::channel::v1::ChangeRenewalSettingsRequest const& request) { + auto span = internal::MakeSpan( + "channel_v1::CloudChannelServiceConnection::ChangeRenewalSettings"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->ChangeRenewalSettings(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +CloudChannelServiceTracingConnection::ChangeRenewalSettings( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "channel_v1::CloudChannelServiceConnection::ChangeRenewalSettings"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->ChangeRenewalSettings( + ExperimentalTag{}, operation)); +} + future> CloudChannelServiceTracingConnection::ChangeOffer( google::cloud::channel::v1::ChangeOfferRequest const& request) { @@ -191,6 +279,27 @@ CloudChannelServiceTracingConnection::ChangeOffer( return internal::EndSpan(std::move(span), child_->ChangeOffer(request)); } +StatusOr +CloudChannelServiceTracingConnection::ChangeOffer( + ExperimentalTag, NoAwaitTag, + google::cloud::channel::v1::ChangeOfferRequest const& request) { + auto span = internal::MakeSpan( + "channel_v1::CloudChannelServiceConnection::ChangeOffer"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->ChangeOffer(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +CloudChannelServiceTracingConnection::ChangeOffer( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "channel_v1::CloudChannelServiceConnection::ChangeOffer"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->ChangeOffer(ExperimentalTag{}, operation)); +} + future> CloudChannelServiceTracingConnection::StartPaidService( google::cloud::channel::v1::StartPaidServiceRequest const& request) { @@ -200,6 +309,28 @@ CloudChannelServiceTracingConnection::StartPaidService( return internal::EndSpan(std::move(span), child_->StartPaidService(request)); } +StatusOr +CloudChannelServiceTracingConnection::StartPaidService( + ExperimentalTag, NoAwaitTag, + google::cloud::channel::v1::StartPaidServiceRequest const& request) { + auto span = internal::MakeSpan( + "channel_v1::CloudChannelServiceConnection::StartPaidService"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->StartPaidService(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +CloudChannelServiceTracingConnection::StartPaidService( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "channel_v1::CloudChannelServiceConnection::StartPaidService"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->StartPaidService(ExperimentalTag{}, operation)); +} + future> CloudChannelServiceTracingConnection::SuspendEntitlement( google::cloud::channel::v1::SuspendEntitlementRequest const& request) { @@ -210,6 +341,28 @@ CloudChannelServiceTracingConnection::SuspendEntitlement( child_->SuspendEntitlement(request)); } +StatusOr +CloudChannelServiceTracingConnection::SuspendEntitlement( + ExperimentalTag, NoAwaitTag, + google::cloud::channel::v1::SuspendEntitlementRequest const& request) { + auto span = internal::MakeSpan( + "channel_v1::CloudChannelServiceConnection::SuspendEntitlement"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->SuspendEntitlement(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +CloudChannelServiceTracingConnection::SuspendEntitlement( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "channel_v1::CloudChannelServiceConnection::SuspendEntitlement"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->SuspendEntitlement( + ExperimentalTag{}, operation)); +} + future> CloudChannelServiceTracingConnection::CancelEntitlement( google::cloud::channel::v1::CancelEntitlementRequest const& request) { @@ -219,6 +372,28 @@ CloudChannelServiceTracingConnection::CancelEntitlement( return internal::EndSpan(std::move(span), child_->CancelEntitlement(request)); } +StatusOr +CloudChannelServiceTracingConnection::CancelEntitlement( + ExperimentalTag, NoAwaitTag, + google::cloud::channel::v1::CancelEntitlementRequest const& request) { + auto span = internal::MakeSpan( + "channel_v1::CloudChannelServiceConnection::CancelEntitlement"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->CancelEntitlement(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +CloudChannelServiceTracingConnection::CancelEntitlement( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "channel_v1::CloudChannelServiceConnection::CancelEntitlement"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->CancelEntitlement(ExperimentalTag{}, operation)); +} + future> CloudChannelServiceTracingConnection::ActivateEntitlement( google::cloud::channel::v1::ActivateEntitlementRequest const& request) { @@ -229,6 +404,28 @@ CloudChannelServiceTracingConnection::ActivateEntitlement( child_->ActivateEntitlement(request)); } +StatusOr +CloudChannelServiceTracingConnection::ActivateEntitlement( + ExperimentalTag, NoAwaitTag, + google::cloud::channel::v1::ActivateEntitlementRequest const& request) { + auto span = internal::MakeSpan( + "channel_v1::CloudChannelServiceConnection::ActivateEntitlement"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->ActivateEntitlement(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +CloudChannelServiceTracingConnection::ActivateEntitlement( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "channel_v1::CloudChannelServiceConnection::ActivateEntitlement"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->ActivateEntitlement( + ExperimentalTag{}, operation)); +} + future> CloudChannelServiceTracingConnection::TransferEntitlements( google::cloud::channel::v1::TransferEntitlementsRequest const& request) { @@ -239,6 +436,28 @@ CloudChannelServiceTracingConnection::TransferEntitlements( child_->TransferEntitlements(request)); } +StatusOr +CloudChannelServiceTracingConnection::TransferEntitlements( + ExperimentalTag, NoAwaitTag, + google::cloud::channel::v1::TransferEntitlementsRequest const& request) { + auto span = internal::MakeSpan( + "channel_v1::CloudChannelServiceConnection::TransferEntitlements"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->TransferEntitlements(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +CloudChannelServiceTracingConnection::TransferEntitlements( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "channel_v1::CloudChannelServiceConnection::TransferEntitlements"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->TransferEntitlements( + ExperimentalTag{}, operation)); +} + future> CloudChannelServiceTracingConnection::TransferEntitlementsToGoogle( google::cloud::channel::v1::TransferEntitlementsToGoogleRequest const& @@ -251,6 +470,32 @@ CloudChannelServiceTracingConnection::TransferEntitlementsToGoogle( child_->TransferEntitlementsToGoogle(request)); } +StatusOr +CloudChannelServiceTracingConnection::TransferEntitlementsToGoogle( + ExperimentalTag, NoAwaitTag, + google::cloud::channel::v1::TransferEntitlementsToGoogleRequest const& + request) { + auto span = internal::MakeSpan( + "channel_v1::CloudChannelServiceConnection::" + "TransferEntitlementsToGoogle"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->TransferEntitlementsToGoogle(ExperimentalTag{}, + NoAwaitTag{}, request)); +} + +future> +CloudChannelServiceTracingConnection::TransferEntitlementsToGoogle( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "channel_v1::CloudChannelServiceConnection::" + "TransferEntitlementsToGoogle"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), + child_->TransferEntitlementsToGoogle(ExperimentalTag{}, operation)); +} + StreamRange CloudChannelServiceTracingConnection::ListChannelPartnerLinks( google::cloud::channel::v1::ListChannelPartnerLinksRequest request) { diff --git a/google/cloud/channel/v1/internal/cloud_channel_tracing_connection.h b/google/cloud/channel/v1/internal/cloud_channel_tracing_connection.h index 3b0d10440ab9f..52589cf09842b 100644 --- a/google/cloud/channel/v1/internal/cloud_channel_tracing_connection.h +++ b/google/cloud/channel/v1/internal/cloud_channel_tracing_connection.h @@ -70,6 +70,15 @@ class CloudChannelServiceTracingConnection google::cloud::channel::v1::ProvisionCloudIdentityRequest const& request) override; + StatusOr ProvisionCloudIdentity( + ExperimentalTag, NoAwaitTag, + google::cloud::channel::v1::ProvisionCloudIdentityRequest const& request) + override; + + future> ProvisionCloudIdentity( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListEntitlements( google::cloud::channel::v1::ListEntitlementsRequest request) override; @@ -89,44 +98,136 @@ class CloudChannelServiceTracingConnection google::cloud::channel::v1::CreateEntitlementRequest const& request) override; + StatusOr CreateEntitlement( + ExperimentalTag, NoAwaitTag, + google::cloud::channel::v1::CreateEntitlementRequest const& request) + override; + + future> CreateEntitlement( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ChangeParameters( google::cloud::channel::v1::ChangeParametersRequest const& request) override; + StatusOr ChangeParameters( + ExperimentalTag, NoAwaitTag, + google::cloud::channel::v1::ChangeParametersRequest const& request) + override; + + future> ChangeParameters( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ChangeRenewalSettings( google::cloud::channel::v1::ChangeRenewalSettingsRequest const& request) override; + StatusOr ChangeRenewalSettings( + ExperimentalTag, NoAwaitTag, + google::cloud::channel::v1::ChangeRenewalSettingsRequest const& request) + override; + + future> + ChangeRenewalSettings( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ChangeOffer( google::cloud::channel::v1::ChangeOfferRequest const& request) override; + StatusOr ChangeOffer( + ExperimentalTag, NoAwaitTag, + google::cloud::channel::v1::ChangeOfferRequest const& request) override; + + future> ChangeOffer( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> StartPaidService( google::cloud::channel::v1::StartPaidServiceRequest const& request) override; + StatusOr StartPaidService( + ExperimentalTag, NoAwaitTag, + google::cloud::channel::v1::StartPaidServiceRequest const& request) + override; + + future> StartPaidService( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> SuspendEntitlement( google::cloud::channel::v1::SuspendEntitlementRequest const& request) override; + StatusOr SuspendEntitlement( + ExperimentalTag, NoAwaitTag, + google::cloud::channel::v1::SuspendEntitlementRequest const& request) + override; + + future> SuspendEntitlement( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> CancelEntitlement(google::cloud::channel::v1::CancelEntitlementRequest const& request) override; + StatusOr CancelEntitlement( + ExperimentalTag, NoAwaitTag, + google::cloud::channel::v1::CancelEntitlementRequest const& request) + override; + + future> + CancelEntitlement(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ActivateEntitlement( google::cloud::channel::v1::ActivateEntitlementRequest const& request) override; + StatusOr ActivateEntitlement( + ExperimentalTag, NoAwaitTag, + google::cloud::channel::v1::ActivateEntitlementRequest const& request) + override; + + future> ActivateEntitlement( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> TransferEntitlements( google::cloud::channel::v1::TransferEntitlementsRequest const& request) override; + StatusOr TransferEntitlements( + ExperimentalTag, NoAwaitTag, + google::cloud::channel::v1::TransferEntitlementsRequest const& request) + override; + + future> + TransferEntitlements( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> TransferEntitlementsToGoogle( google::cloud::channel::v1::TransferEntitlementsToGoogleRequest const& request) override; + StatusOr TransferEntitlementsToGoogle( + ExperimentalTag, NoAwaitTag, + google::cloud::channel::v1::TransferEntitlementsToGoogleRequest const& + request) override; + + future> + TransferEntitlementsToGoogle( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListChannelPartnerLinks( google::cloud::channel::v1::ListChannelPartnerLinksRequest request) diff --git a/google/cloud/channel/v1/mocks/mock_cloud_channel_connection.h b/google/cloud/channel/v1/mocks/mock_cloud_channel_connection.h index b7ffdcbeaf7db..b859a46c568ed 100644 --- a/google/cloud/channel/v1/mocks/mock_cloud_channel_connection.h +++ b/google/cloud/channel/v1/mocks/mock_cloud_channel_connection.h @@ -90,6 +90,18 @@ class MockCloudChannelServiceConnection request), (override)); + MOCK_METHOD(StatusOr, ProvisionCloudIdentity, + (ExperimentalTag, NoAwaitTag, + google::cloud::channel::v1::ProvisionCloudIdentityRequest const& + request), + (override)); + + MOCK_METHOD(future>, + ProvisionCloudIdentity, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD((StreamRange), ListEntitlements, (google::cloud::channel::v1::ListEntitlementsRequest request), @@ -117,47 +129,142 @@ class MockCloudChannelServiceConnection (google::cloud::channel::v1::CreateEntitlementRequest const& request), (override)); + MOCK_METHOD( + StatusOr, CreateEntitlement, + (ExperimentalTag, NoAwaitTag, + google::cloud::channel::v1::CreateEntitlementRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateEntitlement, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, ChangeParameters, (google::cloud::channel::v1::ChangeParametersRequest const& request), (override)); + MOCK_METHOD( + StatusOr, ChangeParameters, + (ExperimentalTag, NoAwaitTag, + google::cloud::channel::v1::ChangeParametersRequest const& request), + (override)); + + MOCK_METHOD(future>, + ChangeParameters, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, ChangeRenewalSettings, (google::cloud::channel::v1::ChangeRenewalSettingsRequest const& request), (override)); + MOCK_METHOD( + StatusOr, ChangeRenewalSettings, + (ExperimentalTag, NoAwaitTag, + google::cloud::channel::v1::ChangeRenewalSettingsRequest const& request), + (override)); + + MOCK_METHOD(future>, + ChangeRenewalSettings, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, ChangeOffer, (google::cloud::channel::v1::ChangeOfferRequest const& request), (override)); + MOCK_METHOD(StatusOr, ChangeOffer, + (ExperimentalTag, NoAwaitTag, + google::cloud::channel::v1::ChangeOfferRequest const& request), + (override)); + + MOCK_METHOD(future>, + ChangeOffer, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, StartPaidService, (google::cloud::channel::v1::StartPaidServiceRequest const& request), (override)); + MOCK_METHOD( + StatusOr, StartPaidService, + (ExperimentalTag, NoAwaitTag, + google::cloud::channel::v1::StartPaidServiceRequest const& request), + (override)); + + MOCK_METHOD(future>, + StartPaidService, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, SuspendEntitlement, (google::cloud::channel::v1::SuspendEntitlementRequest const& request), (override)); + MOCK_METHOD( + StatusOr, SuspendEntitlement, + (ExperimentalTag, NoAwaitTag, + google::cloud::channel::v1::SuspendEntitlementRequest const& request), + (override)); + + MOCK_METHOD(future>, + SuspendEntitlement, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, CancelEntitlement, (google::cloud::channel::v1::CancelEntitlementRequest const& request), (override)); + MOCK_METHOD( + StatusOr, CancelEntitlement, + (ExperimentalTag, NoAwaitTag, + google::cloud::channel::v1::CancelEntitlementRequest const& request), + (override)); + + MOCK_METHOD(future>, + CancelEntitlement, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, ActivateEntitlement, (google::cloud::channel::v1::ActivateEntitlementRequest const& request), (override)); + MOCK_METHOD( + StatusOr, ActivateEntitlement, + (ExperimentalTag, NoAwaitTag, + google::cloud::channel::v1::ActivateEntitlementRequest const& request), + (override)); + + MOCK_METHOD(future>, + ActivateEntitlement, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future< StatusOr>, @@ -165,6 +272,19 @@ class MockCloudChannelServiceConnection (google::cloud::channel::v1::TransferEntitlementsRequest const& request), (override)); + MOCK_METHOD( + StatusOr, TransferEntitlements, + (ExperimentalTag, NoAwaitTag, + google::cloud::channel::v1::TransferEntitlementsRequest const& request), + (override)); + + MOCK_METHOD( + future< + StatusOr>, + TransferEntitlements, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, TransferEntitlementsToGoogle, @@ -172,6 +292,19 @@ class MockCloudChannelServiceConnection request), (override)); + MOCK_METHOD( + StatusOr, TransferEntitlementsToGoogle, + (ExperimentalTag, NoAwaitTag, + google::cloud::channel::v1::TransferEntitlementsToGoogleRequest const& + request), + (override)); + + MOCK_METHOD(future>, + TransferEntitlementsToGoogle, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( (StreamRange), ListChannelPartnerLinks, diff --git a/google/cloud/channel/v1/mocks/mock_cloud_channel_reports_connection.h b/google/cloud/channel/v1/mocks/mock_cloud_channel_reports_connection.h index 0ec8569863549..be633db33d264 100644 --- a/google/cloud/channel/v1/mocks/mock_cloud_channel_reports_connection.h +++ b/google/cloud/channel/v1/mocks/mock_cloud_channel_reports_connection.h @@ -53,6 +53,17 @@ class MockCloudChannelReportsServiceConnection (google::cloud::channel::v1::RunReportJobRequest const& request), (override)); + MOCK_METHOD(StatusOr, RunReportJob, + (ExperimentalTag, NoAwaitTag, + google::cloud::channel::v1::RunReportJobRequest const& request), + (override)); + + MOCK_METHOD( + future>, + RunReportJob, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD((StreamRange), FetchReportResults, (google::cloud::channel::v1::FetchReportResultsRequest request), diff --git a/google/cloud/cloudbuild/v1/cloud_build_connection.cc b/google/cloud/cloudbuild/v1/cloud_build_connection.cc index 8ff5192670455..fe6196c32afec 100644 --- a/google/cloud/cloudbuild/v1/cloud_build_connection.cc +++ b/google/cloud/cloudbuild/v1/cloud_build_connection.cc @@ -46,6 +46,21 @@ CloudBuildConnection::CreateBuild( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr CloudBuildConnection::CreateBuild( + ExperimentalTag, NoAwaitTag, + google::devtools::cloudbuild::v1::CreateBuildRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +CloudBuildConnection::CreateBuild(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr CloudBuildConnection::GetBuild( google::devtools::cloudbuild::v1::GetBuildRequest const&) { @@ -74,6 +89,21 @@ CloudBuildConnection::RetryBuild( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr CloudBuildConnection::RetryBuild( + ExperimentalTag, NoAwaitTag, + google::devtools::cloudbuild::v1::RetryBuildRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +CloudBuildConnection::RetryBuild(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> CloudBuildConnection::ApproveBuild( google::devtools::cloudbuild::v1::ApproveBuildRequest const&) { @@ -82,6 +112,21 @@ CloudBuildConnection::ApproveBuild( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr CloudBuildConnection::ApproveBuild( + ExperimentalTag, NoAwaitTag, + google::devtools::cloudbuild::v1::ApproveBuildRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +CloudBuildConnection::ApproveBuild(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr CloudBuildConnection::CreateBuildTrigger( google::devtools::cloudbuild::v1::CreateBuildTriggerRequest const&) { @@ -121,6 +166,21 @@ CloudBuildConnection::RunBuildTrigger( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr CloudBuildConnection::RunBuildTrigger( + ExperimentalTag, NoAwaitTag, + google::devtools::cloudbuild::v1::RunBuildTriggerRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +CloudBuildConnection::RunBuildTrigger(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr CloudBuildConnection::ReceiveTriggerWebhook( google::devtools::cloudbuild::v1::ReceiveTriggerWebhookRequest const&) { @@ -135,6 +195,21 @@ CloudBuildConnection::CreateWorkerPool( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr CloudBuildConnection::CreateWorkerPool( + ExperimentalTag, NoAwaitTag, + google::devtools::cloudbuild::v1::CreateWorkerPoolRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +CloudBuildConnection::CreateWorkerPool(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr CloudBuildConnection::GetWorkerPool( google::devtools::cloudbuild::v1::GetWorkerPoolRequest const&) { @@ -150,6 +225,22 @@ CloudBuildConnection::DeleteWorkerPool( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr CloudBuildConnection::DeleteWorkerPool( + ExperimentalTag, NoAwaitTag, + google::devtools::cloudbuild::v1::DeleteWorkerPoolRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +CloudBuildConnection::DeleteWorkerPool(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> CloudBuildConnection::UpdateWorkerPool( google::devtools::cloudbuild::v1::UpdateWorkerPoolRequest const&) { @@ -158,6 +249,21 @@ CloudBuildConnection::UpdateWorkerPool( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr CloudBuildConnection::UpdateWorkerPool( + ExperimentalTag, NoAwaitTag, + google::devtools::cloudbuild::v1::UpdateWorkerPoolRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +CloudBuildConnection::UpdateWorkerPool(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StreamRange CloudBuildConnection::ListWorkerPools( google::devtools::cloudbuild::v1:: diff --git a/google/cloud/cloudbuild/v1/cloud_build_connection.h b/google/cloud/cloudbuild/v1/cloud_build_connection.h index 1ea0c833f672b..b1c4b4e4c7239 100644 --- a/google/cloud/cloudbuild/v1/cloud_build_connection.h +++ b/google/cloud/cloudbuild/v1/cloud_build_connection.h @@ -22,8 +22,10 @@ #include "google/cloud/cloudbuild/v1/cloud_build_connection_idempotency_policy.h" #include "google/cloud/cloudbuild/v1/internal/cloud_build_retry_traits.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/internal/retry_policy_impl.h" +#include "google/cloud/no_await_tag.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" #include "google/cloud/status_or.h" @@ -187,6 +189,13 @@ class CloudBuildConnection { virtual future> CreateBuild( google::devtools::cloudbuild::v1::CreateBuildRequest const& request); + virtual StatusOr CreateBuild( + ExperimentalTag, NoAwaitTag, + google::devtools::cloudbuild::v1::CreateBuildRequest const& request); + + virtual future> CreateBuild( + ExperimentalTag, google::longrunning::Operation const& operation); + virtual StatusOr GetBuild( google::devtools::cloudbuild::v1::GetBuildRequest const& request); @@ -199,10 +208,25 @@ class CloudBuildConnection { virtual future> RetryBuild( google::devtools::cloudbuild::v1::RetryBuildRequest const& request); + virtual StatusOr RetryBuild( + ExperimentalTag, NoAwaitTag, + google::devtools::cloudbuild::v1::RetryBuildRequest const& request); + + virtual future> RetryBuild( + ExperimentalTag, google::longrunning::Operation const& operation); + virtual future> ApproveBuild( google::devtools::cloudbuild::v1::ApproveBuildRequest const& request); + virtual StatusOr ApproveBuild( + ExperimentalTag, NoAwaitTag, + google::devtools::cloudbuild::v1::ApproveBuildRequest const& request); + + virtual future> + ApproveBuild(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StatusOr CreateBuildTrigger( google::devtools::cloudbuild::v1::CreateBuildTriggerRequest const& @@ -229,6 +253,14 @@ class CloudBuildConnection { RunBuildTrigger( google::devtools::cloudbuild::v1::RunBuildTriggerRequest const& request); + virtual StatusOr RunBuildTrigger( + ExperimentalTag, NoAwaitTag, + google::devtools::cloudbuild::v1::RunBuildTriggerRequest const& request); + + virtual future> + RunBuildTrigger(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StatusOr< google::devtools::cloudbuild::v1::ReceiveTriggerWebhookResponse> ReceiveTriggerWebhook( @@ -239,6 +271,14 @@ class CloudBuildConnection { CreateWorkerPool( google::devtools::cloudbuild::v1::CreateWorkerPoolRequest const& request); + virtual StatusOr CreateWorkerPool( + ExperimentalTag, NoAwaitTag, + google::devtools::cloudbuild::v1::CreateWorkerPoolRequest const& request); + + virtual future> + CreateWorkerPool(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StatusOr GetWorkerPool( google::devtools::cloudbuild::v1::GetWorkerPoolRequest const& request); @@ -247,10 +287,27 @@ class CloudBuildConnection { DeleteWorkerPool( google::devtools::cloudbuild::v1::DeleteWorkerPoolRequest const& request); + virtual StatusOr DeleteWorkerPool( + ExperimentalTag, NoAwaitTag, + google::devtools::cloudbuild::v1::DeleteWorkerPoolRequest const& request); + + virtual future> + DeleteWorkerPool(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> UpdateWorkerPool( google::devtools::cloudbuild::v1::UpdateWorkerPoolRequest const& request); + virtual StatusOr UpdateWorkerPool( + ExperimentalTag, NoAwaitTag, + google::devtools::cloudbuild::v1::UpdateWorkerPoolRequest const& request); + + virtual future> + UpdateWorkerPool(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StreamRange ListWorkerPools( google::devtools::cloudbuild::v1::ListWorkerPoolsRequest request); diff --git a/google/cloud/cloudbuild/v1/internal/cloud_build_connection_impl.cc b/google/cloud/cloudbuild/v1/internal/cloud_build_connection_impl.cc index 3e738d5f3a426..28608541e44aa 100644 --- a/google/cloud/cloudbuild/v1/internal/cloud_build_connection_impl.cc +++ b/google/cloud/cloudbuild/v1/internal/cloud_build_connection_impl.cc @@ -103,6 +103,58 @@ CloudBuildConnectionImpl::CreateBuild( polling_policy(*current), __func__); } +StatusOr CloudBuildConnectionImpl::CreateBuild( + ExperimentalTag, NoAwaitTag, + google::devtools::cloudbuild::v1::CreateBuildRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateBuild(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::devtools::cloudbuild::v1::CreateBuildRequest const& request) { + return stub_->CreateBuild(context, options, request); + }, + *current, request, __func__); +} + +future> +CloudBuildConnectionImpl::CreateBuild( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to CreateBuild", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::devtools::cloudbuild::v1::Build>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::devtools::cloudbuild::v1::Build>, + polling_policy(*current), __func__); +} + StatusOr CloudBuildConnectionImpl::GetBuild( google::devtools::cloudbuild::v1::GetBuildRequest const& request) { @@ -205,6 +257,58 @@ CloudBuildConnectionImpl::RetryBuild( polling_policy(*current), __func__); } +StatusOr CloudBuildConnectionImpl::RetryBuild( + ExperimentalTag, NoAwaitTag, + google::devtools::cloudbuild::v1::RetryBuildRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->RetryBuild(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::devtools::cloudbuild::v1::RetryBuildRequest const& request) { + return stub_->RetryBuild(context, options, request); + }, + *current, request, __func__); +} + +future> +CloudBuildConnectionImpl::RetryBuild( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to RetryBuild", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::devtools::cloudbuild::v1::Build>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::devtools::cloudbuild::v1::Build>, + polling_policy(*current), __func__); +} + future> CloudBuildConnectionImpl::ApproveBuild( google::devtools::cloudbuild::v1::ApproveBuildRequest const& request) { @@ -245,6 +349,58 @@ CloudBuildConnectionImpl::ApproveBuild( polling_policy(*current), __func__); } +StatusOr CloudBuildConnectionImpl::ApproveBuild( + ExperimentalTag, NoAwaitTag, + google::devtools::cloudbuild::v1::ApproveBuildRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->ApproveBuild(request), + [this](grpc::ClientContext& context, Options const& options, + google::devtools::cloudbuild::v1::ApproveBuildRequest const& + request) { + return stub_->ApproveBuild(context, options, request); + }, + *current, request, __func__); +} + +future> +CloudBuildConnectionImpl::ApproveBuild( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to ApproveBuild", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::devtools::cloudbuild::v1::Build>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::devtools::cloudbuild::v1::Build>, + polling_policy(*current), __func__); +} + StatusOr CloudBuildConnectionImpl::CreateBuildTrigger( google::devtools::cloudbuild::v1::CreateBuildTriggerRequest const& @@ -381,6 +537,59 @@ CloudBuildConnectionImpl::RunBuildTrigger( polling_policy(*current), __func__); } +StatusOr +CloudBuildConnectionImpl::RunBuildTrigger( + ExperimentalTag, NoAwaitTag, + google::devtools::cloudbuild::v1::RunBuildTriggerRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->RunBuildTrigger(request), + [this](grpc::ClientContext& context, Options const& options, + google::devtools::cloudbuild::v1::RunBuildTriggerRequest const& + request) { + return stub_->RunBuildTrigger(context, options, request); + }, + *current, request, __func__); +} + +future> +CloudBuildConnectionImpl::RunBuildTrigger( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to RunBuildTrigger", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::devtools::cloudbuild::v1::Build>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::devtools::cloudbuild::v1::Build>, + polling_policy(*current), __func__); +} + StatusOr CloudBuildConnectionImpl::ReceiveTriggerWebhook( google::devtools::cloudbuild::v1::ReceiveTriggerWebhookRequest const& @@ -438,6 +647,60 @@ CloudBuildConnectionImpl::CreateWorkerPool( polling_policy(*current), __func__); } +StatusOr +CloudBuildConnectionImpl::CreateWorkerPool( + ExperimentalTag, NoAwaitTag, + google::devtools::cloudbuild::v1::CreateWorkerPoolRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateWorkerPool(request), + [this](grpc::ClientContext& context, Options const& options, + google::devtools::cloudbuild::v1::CreateWorkerPoolRequest const& + request) { + return stub_->CreateWorkerPool(context, options, request); + }, + *current, request, __func__); +} + +future> +CloudBuildConnectionImpl::CreateWorkerPool( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to CreateWorkerPool", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::devtools::cloudbuild::v1::WorkerPool>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::devtools::cloudbuild::v1::WorkerPool>, + polling_policy(*current), __func__); +} + StatusOr CloudBuildConnectionImpl::GetWorkerPool( google::devtools::cloudbuild::v1::GetWorkerPoolRequest const& request) { @@ -494,6 +757,61 @@ CloudBuildConnectionImpl::DeleteWorkerPool( polling_policy(*current), __func__); } +StatusOr +CloudBuildConnectionImpl::DeleteWorkerPool( + ExperimentalTag, NoAwaitTag, + google::devtools::cloudbuild::v1::DeleteWorkerPoolRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteWorkerPool(request), + [this](grpc::ClientContext& context, Options const& options, + google::devtools::cloudbuild::v1::DeleteWorkerPoolRequest const& + request) { + return stub_->DeleteWorkerPool(context, options, request); + }, + *current, request, __func__); +} + +future> +CloudBuildConnectionImpl::DeleteWorkerPool( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteWorkerPool", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::devtools::cloudbuild::v1::DeleteWorkerPoolOperationMetadata>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::devtools::cloudbuild::v1::DeleteWorkerPoolOperationMetadata>, + polling_policy(*current), __func__); +} + future> CloudBuildConnectionImpl::UpdateWorkerPool( google::devtools::cloudbuild::v1::UpdateWorkerPoolRequest const& request) { @@ -534,6 +852,60 @@ CloudBuildConnectionImpl::UpdateWorkerPool( polling_policy(*current), __func__); } +StatusOr +CloudBuildConnectionImpl::UpdateWorkerPool( + ExperimentalTag, NoAwaitTag, + google::devtools::cloudbuild::v1::UpdateWorkerPoolRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UpdateWorkerPool(request), + [this](grpc::ClientContext& context, Options const& options, + google::devtools::cloudbuild::v1::UpdateWorkerPoolRequest const& + request) { + return stub_->UpdateWorkerPool(context, options, request); + }, + *current, request, __func__); +} + +future> +CloudBuildConnectionImpl::UpdateWorkerPool( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to UpdateWorkerPool", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::devtools::cloudbuild::v1::WorkerPool>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::devtools::cloudbuild::v1::WorkerPool>, + polling_policy(*current), __func__); +} + StreamRange CloudBuildConnectionImpl::ListWorkerPools( google::devtools::cloudbuild::v1::ListWorkerPoolsRequest request) { diff --git a/google/cloud/cloudbuild/v1/internal/cloud_build_connection_impl.h b/google/cloud/cloudbuild/v1/internal/cloud_build_connection_impl.h index da330b4041f62..eb5b2a42cc31e 100644 --- a/google/cloud/cloudbuild/v1/internal/cloud_build_connection_impl.h +++ b/google/cloud/cloudbuild/v1/internal/cloud_build_connection_impl.h @@ -55,6 +55,15 @@ class CloudBuildConnectionImpl : public cloudbuild_v1::CloudBuildConnection { google::devtools::cloudbuild::v1::CreateBuildRequest const& request) override; + StatusOr CreateBuild( + ExperimentalTag, NoAwaitTag, + google::devtools::cloudbuild::v1::CreateBuildRequest const& request) + override; + + future> CreateBuild( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetBuild( google::devtools::cloudbuild::v1::GetBuildRequest const& request) override; @@ -70,10 +79,28 @@ class CloudBuildConnectionImpl : public cloudbuild_v1::CloudBuildConnection { google::devtools::cloudbuild::v1::RetryBuildRequest const& request) override; + StatusOr RetryBuild( + ExperimentalTag, NoAwaitTag, + google::devtools::cloudbuild::v1::RetryBuildRequest const& request) + override; + + future> RetryBuild( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ApproveBuild( google::devtools::cloudbuild::v1::ApproveBuildRequest const& request) override; + StatusOr ApproveBuild( + ExperimentalTag, NoAwaitTag, + google::devtools::cloudbuild::v1::ApproveBuildRequest const& request) + override; + + future> ApproveBuild( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr CreateBuildTrigger( google::devtools::cloudbuild::v1::CreateBuildTriggerRequest const& request) override; @@ -98,6 +125,15 @@ class CloudBuildConnectionImpl : public cloudbuild_v1::CloudBuildConnection { google::devtools::cloudbuild::v1::RunBuildTriggerRequest const& request) override; + StatusOr RunBuildTrigger( + ExperimentalTag, NoAwaitTag, + google::devtools::cloudbuild::v1::RunBuildTriggerRequest const& request) + override; + + future> RunBuildTrigger( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr ReceiveTriggerWebhook( google::devtools::cloudbuild::v1::ReceiveTriggerWebhookRequest const& @@ -108,6 +144,15 @@ class CloudBuildConnectionImpl : public cloudbuild_v1::CloudBuildConnection { google::devtools::cloudbuild::v1::CreateWorkerPoolRequest const& request) override; + StatusOr CreateWorkerPool( + ExperimentalTag, NoAwaitTag, + google::devtools::cloudbuild::v1::CreateWorkerPoolRequest const& request) + override; + + future> + CreateWorkerPool(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetWorkerPool( google::devtools::cloudbuild::v1::GetWorkerPoolRequest const& request) override; @@ -118,11 +163,30 @@ class CloudBuildConnectionImpl : public cloudbuild_v1::CloudBuildConnection { google::devtools::cloudbuild::v1::DeleteWorkerPoolRequest const& request) override; + StatusOr DeleteWorkerPool( + ExperimentalTag, NoAwaitTag, + google::devtools::cloudbuild::v1::DeleteWorkerPoolRequest const& request) + override; + + future> + DeleteWorkerPool(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateWorkerPool( google::devtools::cloudbuild::v1::UpdateWorkerPoolRequest const& request) override; + StatusOr UpdateWorkerPool( + ExperimentalTag, NoAwaitTag, + google::devtools::cloudbuild::v1::UpdateWorkerPoolRequest const& request) + override; + + future> + UpdateWorkerPool(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListWorkerPools( google::devtools::cloudbuild::v1::ListWorkerPoolsRequest request) override; diff --git a/google/cloud/cloudbuild/v1/internal/cloud_build_tracing_connection.cc b/google/cloud/cloudbuild/v1/internal/cloud_build_tracing_connection.cc index 4ddbe56d43b59..bdf6de0efa9c6 100644 --- a/google/cloud/cloudbuild/v1/internal/cloud_build_tracing_connection.cc +++ b/google/cloud/cloudbuild/v1/internal/cloud_build_tracing_connection.cc @@ -42,6 +42,27 @@ CloudBuildTracingConnection::CreateBuild( return internal::EndSpan(std::move(span), child_->CreateBuild(request)); } +StatusOr +CloudBuildTracingConnection::CreateBuild( + ExperimentalTag, NoAwaitTag, + google::devtools::cloudbuild::v1::CreateBuildRequest const& request) { + auto span = + internal::MakeSpan("cloudbuild_v1::CloudBuildConnection::CreateBuild"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->CreateBuild(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +CloudBuildTracingConnection::CreateBuild( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = + internal::MakeSpan("cloudbuild_v1::CloudBuildConnection::CreateBuild"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->CreateBuild(ExperimentalTag{}, operation)); +} + StatusOr CloudBuildTracingConnection::GetBuild( google::devtools::cloudbuild::v1::GetBuildRequest const& request) { @@ -80,6 +101,27 @@ CloudBuildTracingConnection::RetryBuild( return internal::EndSpan(std::move(span), child_->RetryBuild(request)); } +StatusOr +CloudBuildTracingConnection::RetryBuild( + ExperimentalTag, NoAwaitTag, + google::devtools::cloudbuild::v1::RetryBuildRequest const& request) { + auto span = + internal::MakeSpan("cloudbuild_v1::CloudBuildConnection::RetryBuild"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->RetryBuild(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +CloudBuildTracingConnection::RetryBuild( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = + internal::MakeSpan("cloudbuild_v1::CloudBuildConnection::RetryBuild"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->RetryBuild(ExperimentalTag{}, operation)); +} + future> CloudBuildTracingConnection::ApproveBuild( google::devtools::cloudbuild::v1::ApproveBuildRequest const& request) { @@ -89,6 +131,27 @@ CloudBuildTracingConnection::ApproveBuild( return internal::EndSpan(std::move(span), child_->ApproveBuild(request)); } +StatusOr +CloudBuildTracingConnection::ApproveBuild( + ExperimentalTag, NoAwaitTag, + google::devtools::cloudbuild::v1::ApproveBuildRequest const& request) { + auto span = + internal::MakeSpan("cloudbuild_v1::CloudBuildConnection::ApproveBuild"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->ApproveBuild(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +CloudBuildTracingConnection::ApproveBuild( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = + internal::MakeSpan("cloudbuild_v1::CloudBuildConnection::ApproveBuild"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->ApproveBuild(ExperimentalTag{}, operation)); +} + StatusOr CloudBuildTracingConnection::CreateBuildTrigger( google::devtools::cloudbuild::v1::CreateBuildTriggerRequest const& @@ -148,6 +211,27 @@ CloudBuildTracingConnection::RunBuildTrigger( return internal::EndSpan(std::move(span), child_->RunBuildTrigger(request)); } +StatusOr +CloudBuildTracingConnection::RunBuildTrigger( + ExperimentalTag, NoAwaitTag, + google::devtools::cloudbuild::v1::RunBuildTriggerRequest const& request) { + auto span = internal::MakeSpan( + "cloudbuild_v1::CloudBuildConnection::RunBuildTrigger"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->RunBuildTrigger(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +CloudBuildTracingConnection::RunBuildTrigger( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "cloudbuild_v1::CloudBuildConnection::RunBuildTrigger"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->RunBuildTrigger(ExperimentalTag{}, operation)); +} + StatusOr CloudBuildTracingConnection::ReceiveTriggerWebhook( google::devtools::cloudbuild::v1::ReceiveTriggerWebhookRequest const& @@ -167,6 +251,28 @@ CloudBuildTracingConnection::CreateWorkerPool( return internal::EndSpan(std::move(span), child_->CreateWorkerPool(request)); } +StatusOr +CloudBuildTracingConnection::CreateWorkerPool( + ExperimentalTag, NoAwaitTag, + google::devtools::cloudbuild::v1::CreateWorkerPoolRequest const& request) { + auto span = internal::MakeSpan( + "cloudbuild_v1::CloudBuildConnection::CreateWorkerPool"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->CreateWorkerPool(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +CloudBuildTracingConnection::CreateWorkerPool( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "cloudbuild_v1::CloudBuildConnection::CreateWorkerPool"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->CreateWorkerPool(ExperimentalTag{}, operation)); +} + StatusOr CloudBuildTracingConnection::GetWorkerPool( google::devtools::cloudbuild::v1::GetWorkerPoolRequest const& request) { @@ -186,6 +292,29 @@ CloudBuildTracingConnection::DeleteWorkerPool( return internal::EndSpan(std::move(span), child_->DeleteWorkerPool(request)); } +StatusOr +CloudBuildTracingConnection::DeleteWorkerPool( + ExperimentalTag, NoAwaitTag, + google::devtools::cloudbuild::v1::DeleteWorkerPoolRequest const& request) { + auto span = internal::MakeSpan( + "cloudbuild_v1::CloudBuildConnection::DeleteWorkerPool"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->DeleteWorkerPool(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +CloudBuildTracingConnection::DeleteWorkerPool( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "cloudbuild_v1::CloudBuildConnection::DeleteWorkerPool"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->DeleteWorkerPool(ExperimentalTag{}, operation)); +} + future> CloudBuildTracingConnection::UpdateWorkerPool( google::devtools::cloudbuild::v1::UpdateWorkerPoolRequest const& request) { @@ -195,6 +324,28 @@ CloudBuildTracingConnection::UpdateWorkerPool( return internal::EndSpan(std::move(span), child_->UpdateWorkerPool(request)); } +StatusOr +CloudBuildTracingConnection::UpdateWorkerPool( + ExperimentalTag, NoAwaitTag, + google::devtools::cloudbuild::v1::UpdateWorkerPoolRequest const& request) { + auto span = internal::MakeSpan( + "cloudbuild_v1::CloudBuildConnection::UpdateWorkerPool"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->UpdateWorkerPool(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +CloudBuildTracingConnection::UpdateWorkerPool( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "cloudbuild_v1::CloudBuildConnection::UpdateWorkerPool"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->UpdateWorkerPool(ExperimentalTag{}, operation)); +} + StreamRange CloudBuildTracingConnection::ListWorkerPools( google::devtools::cloudbuild::v1::ListWorkerPoolsRequest request) { diff --git a/google/cloud/cloudbuild/v1/internal/cloud_build_tracing_connection.h b/google/cloud/cloudbuild/v1/internal/cloud_build_tracing_connection.h index 2cc1fc13c76bd..9e38b98f2dd82 100644 --- a/google/cloud/cloudbuild/v1/internal/cloud_build_tracing_connection.h +++ b/google/cloud/cloudbuild/v1/internal/cloud_build_tracing_connection.h @@ -43,6 +43,15 @@ class CloudBuildTracingConnection : public cloudbuild_v1::CloudBuildConnection { google::devtools::cloudbuild::v1::CreateBuildRequest const& request) override; + StatusOr CreateBuild( + ExperimentalTag, NoAwaitTag, + google::devtools::cloudbuild::v1::CreateBuildRequest const& request) + override; + + future> CreateBuild( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetBuild( google::devtools::cloudbuild::v1::GetBuildRequest const& request) override; @@ -58,10 +67,28 @@ class CloudBuildTracingConnection : public cloudbuild_v1::CloudBuildConnection { google::devtools::cloudbuild::v1::RetryBuildRequest const& request) override; + StatusOr RetryBuild( + ExperimentalTag, NoAwaitTag, + google::devtools::cloudbuild::v1::RetryBuildRequest const& request) + override; + + future> RetryBuild( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ApproveBuild( google::devtools::cloudbuild::v1::ApproveBuildRequest const& request) override; + StatusOr ApproveBuild( + ExperimentalTag, NoAwaitTag, + google::devtools::cloudbuild::v1::ApproveBuildRequest const& request) + override; + + future> ApproveBuild( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr CreateBuildTrigger( google::devtools::cloudbuild::v1::CreateBuildTriggerRequest const& request) override; @@ -86,6 +113,15 @@ class CloudBuildTracingConnection : public cloudbuild_v1::CloudBuildConnection { google::devtools::cloudbuild::v1::RunBuildTriggerRequest const& request) override; + StatusOr RunBuildTrigger( + ExperimentalTag, NoAwaitTag, + google::devtools::cloudbuild::v1::RunBuildTriggerRequest const& request) + override; + + future> RunBuildTrigger( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr ReceiveTriggerWebhook( google::devtools::cloudbuild::v1::ReceiveTriggerWebhookRequest const& @@ -96,6 +132,15 @@ class CloudBuildTracingConnection : public cloudbuild_v1::CloudBuildConnection { google::devtools::cloudbuild::v1::CreateWorkerPoolRequest const& request) override; + StatusOr CreateWorkerPool( + ExperimentalTag, NoAwaitTag, + google::devtools::cloudbuild::v1::CreateWorkerPoolRequest const& request) + override; + + future> + CreateWorkerPool(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetWorkerPool( google::devtools::cloudbuild::v1::GetWorkerPoolRequest const& request) override; @@ -106,11 +151,30 @@ class CloudBuildTracingConnection : public cloudbuild_v1::CloudBuildConnection { google::devtools::cloudbuild::v1::DeleteWorkerPoolRequest const& request) override; + StatusOr DeleteWorkerPool( + ExperimentalTag, NoAwaitTag, + google::devtools::cloudbuild::v1::DeleteWorkerPoolRequest const& request) + override; + + future> + DeleteWorkerPool(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateWorkerPool( google::devtools::cloudbuild::v1::UpdateWorkerPoolRequest const& request) override; + StatusOr UpdateWorkerPool( + ExperimentalTag, NoAwaitTag, + google::devtools::cloudbuild::v1::UpdateWorkerPoolRequest const& request) + override; + + future> + UpdateWorkerPool(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListWorkerPools( google::devtools::cloudbuild::v1::ListWorkerPoolsRequest request) override; diff --git a/google/cloud/cloudbuild/v1/mocks/mock_cloud_build_connection.h b/google/cloud/cloudbuild/v1/mocks/mock_cloud_build_connection.h index 2ed4b302e8516..75fa6bef1196b 100644 --- a/google/cloud/cloudbuild/v1/mocks/mock_cloud_build_connection.h +++ b/google/cloud/cloudbuild/v1/mocks/mock_cloud_build_connection.h @@ -51,6 +51,18 @@ class MockCloudBuildConnection : public cloudbuild_v1::CloudBuildConnection { (google::devtools::cloudbuild::v1::CreateBuildRequest const& request), (override)); + MOCK_METHOD( + StatusOr, CreateBuild, + (ExperimentalTag, NoAwaitTag, + google::devtools::cloudbuild::v1::CreateBuildRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateBuild, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr, GetBuild, (google::devtools::cloudbuild::v1::GetBuildRequest const& request), @@ -71,11 +83,35 @@ class MockCloudBuildConnection : public cloudbuild_v1::CloudBuildConnection { (google::devtools::cloudbuild::v1::RetryBuildRequest const& request), (override)); + MOCK_METHOD( + StatusOr, RetryBuild, + (ExperimentalTag, NoAwaitTag, + google::devtools::cloudbuild::v1::RetryBuildRequest const& request), + (override)); + + MOCK_METHOD(future>, + RetryBuild, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, ApproveBuild, (google::devtools::cloudbuild::v1::ApproveBuildRequest const& request), (override)); + MOCK_METHOD( + StatusOr, ApproveBuild, + (ExperimentalTag, NoAwaitTag, + google::devtools::cloudbuild::v1::ApproveBuildRequest const& request), + (override)); + + MOCK_METHOD(future>, + ApproveBuild, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr, CreateBuildTrigger, @@ -113,6 +149,18 @@ class MockCloudBuildConnection : public cloudbuild_v1::CloudBuildConnection { (google::devtools::cloudbuild::v1::RunBuildTriggerRequest const& request), (override)); + MOCK_METHOD( + StatusOr, RunBuildTrigger, + (ExperimentalTag, NoAwaitTag, + google::devtools::cloudbuild::v1::RunBuildTriggerRequest const& request), + (override)); + + MOCK_METHOD(future>, + RunBuildTrigger, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr, ReceiveTriggerWebhook, @@ -126,6 +174,18 @@ class MockCloudBuildConnection : public cloudbuild_v1::CloudBuildConnection { request), (override)); + MOCK_METHOD(StatusOr, CreateWorkerPool, + (ExperimentalTag, NoAwaitTag, + google::devtools::cloudbuild::v1::CreateWorkerPoolRequest const& + request), + (override)); + + MOCK_METHOD(future>, + CreateWorkerPool, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr, GetWorkerPool, (google::devtools::cloudbuild::v1::GetWorkerPoolRequest const& request), @@ -139,12 +199,37 @@ class MockCloudBuildConnection : public cloudbuild_v1::CloudBuildConnection { request), (override)); + MOCK_METHOD(StatusOr, DeleteWorkerPool, + (ExperimentalTag, NoAwaitTag, + google::devtools::cloudbuild::v1::DeleteWorkerPoolRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + DeleteWorkerPool, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, UpdateWorkerPool, (google::devtools::cloudbuild::v1::UpdateWorkerPoolRequest const& request), (override)); + MOCK_METHOD(StatusOr, UpdateWorkerPool, + (ExperimentalTag, NoAwaitTag, + google::devtools::cloudbuild::v1::UpdateWorkerPoolRequest const& + request), + (override)); + + MOCK_METHOD(future>, + UpdateWorkerPool, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( (StreamRange), ListWorkerPools, diff --git a/google/cloud/cloudbuild/v2/internal/repository_manager_connection_impl.cc b/google/cloud/cloudbuild/v2/internal/repository_manager_connection_impl.cc index 87b49b78cef67..73002d05f3e13 100644 --- a/google/cloud/cloudbuild/v2/internal/repository_manager_connection_impl.cc +++ b/google/cloud/cloudbuild/v2/internal/repository_manager_connection_impl.cc @@ -107,6 +107,60 @@ RepositoryManagerConnectionImpl::CreateConnection( polling_policy(*current), __func__); } +StatusOr +RepositoryManagerConnectionImpl::CreateConnection( + ExperimentalTag, NoAwaitTag, + google::devtools::cloudbuild::v2::CreateConnectionRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateConnection(request), + [this](grpc::ClientContext& context, Options const& options, + google::devtools::cloudbuild::v2::CreateConnectionRequest const& + request) { + return stub_->CreateConnection(context, options, request); + }, + *current, request, __func__); +} + +future> +RepositoryManagerConnectionImpl::CreateConnection( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to CreateConnection", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::devtools::cloudbuild::v2::Connection>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::devtools::cloudbuild::v2::Connection>, + polling_policy(*current), __func__); +} + StatusOr RepositoryManagerConnectionImpl::GetConnection( google::devtools::cloudbuild::v2::GetConnectionRequest const& request) { @@ -197,6 +251,60 @@ RepositoryManagerConnectionImpl::UpdateConnection( polling_policy(*current), __func__); } +StatusOr +RepositoryManagerConnectionImpl::UpdateConnection( + ExperimentalTag, NoAwaitTag, + google::devtools::cloudbuild::v2::UpdateConnectionRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UpdateConnection(request), + [this](grpc::ClientContext& context, Options const& options, + google::devtools::cloudbuild::v2::UpdateConnectionRequest const& + request) { + return stub_->UpdateConnection(context, options, request); + }, + *current, request, __func__); +} + +future> +RepositoryManagerConnectionImpl::UpdateConnection( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to UpdateConnection", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::devtools::cloudbuild::v2::Connection>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::devtools::cloudbuild::v2::Connection>, + polling_policy(*current), __func__); +} + future> RepositoryManagerConnectionImpl::DeleteConnection( google::devtools::cloudbuild::v2::DeleteConnectionRequest const& request) { @@ -237,6 +345,60 @@ RepositoryManagerConnectionImpl::DeleteConnection( polling_policy(*current), __func__); } +StatusOr +RepositoryManagerConnectionImpl::DeleteConnection( + ExperimentalTag, NoAwaitTag, + google::devtools::cloudbuild::v2::DeleteConnectionRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteConnection(request), + [this](grpc::ClientContext& context, Options const& options, + google::devtools::cloudbuild::v2::DeleteConnectionRequest const& + request) { + return stub_->DeleteConnection(context, options, request); + }, + *current, request, __func__); +} + +future> +RepositoryManagerConnectionImpl::DeleteConnection( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteConnection", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::devtools::cloudbuild::v2::OperationMetadata>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::devtools::cloudbuild::v2::OperationMetadata>, + polling_policy(*current), __func__); +} + future> RepositoryManagerConnectionImpl::CreateRepository( google::devtools::cloudbuild::v2::CreateRepositoryRequest const& request) { @@ -277,6 +439,60 @@ RepositoryManagerConnectionImpl::CreateRepository( polling_policy(*current), __func__); } +StatusOr +RepositoryManagerConnectionImpl::CreateRepository( + ExperimentalTag, NoAwaitTag, + google::devtools::cloudbuild::v2::CreateRepositoryRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateRepository(request), + [this](grpc::ClientContext& context, Options const& options, + google::devtools::cloudbuild::v2::CreateRepositoryRequest const& + request) { + return stub_->CreateRepository(context, options, request); + }, + *current, request, __func__); +} + +future> +RepositoryManagerConnectionImpl::CreateRepository( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to CreateRepository", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::devtools::cloudbuild::v2::Repository>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::devtools::cloudbuild::v2::Repository>, + polling_policy(*current), __func__); +} + future< StatusOr> RepositoryManagerConnectionImpl::BatchCreateRepositories( @@ -318,6 +534,62 @@ RepositoryManagerConnectionImpl::BatchCreateRepositories( polling_policy(*current), __func__); } +StatusOr +RepositoryManagerConnectionImpl::BatchCreateRepositories( + ExperimentalTag, NoAwaitTag, + google::devtools::cloudbuild::v2::BatchCreateRepositoriesRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->BatchCreateRepositories(request), + [this](grpc::ClientContext& context, Options const& options, + google::devtools::cloudbuild::v2:: + BatchCreateRepositoriesRequest const& request) { + return stub_->BatchCreateRepositories(context, options, request); + }, + *current, request, __func__); +} + +future< + StatusOr> +RepositoryManagerConnectionImpl::BatchCreateRepositories( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to BatchCreateRepositories", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::devtools::cloudbuild::v2::BatchCreateRepositoriesResponse>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::devtools::cloudbuild::v2::BatchCreateRepositoriesResponse>, + polling_policy(*current), __func__); +} + StatusOr RepositoryManagerConnectionImpl::GetRepository( google::devtools::cloudbuild::v2::GetRepositoryRequest const& request) { @@ -408,6 +680,60 @@ RepositoryManagerConnectionImpl::DeleteRepository( polling_policy(*current), __func__); } +StatusOr +RepositoryManagerConnectionImpl::DeleteRepository( + ExperimentalTag, NoAwaitTag, + google::devtools::cloudbuild::v2::DeleteRepositoryRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteRepository(request), + [this](grpc::ClientContext& context, Options const& options, + google::devtools::cloudbuild::v2::DeleteRepositoryRequest const& + request) { + return stub_->DeleteRepository(context, options, request); + }, + *current, request, __func__); +} + +future> +RepositoryManagerConnectionImpl::DeleteRepository( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteRepository", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::devtools::cloudbuild::v2::OperationMetadata>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::devtools::cloudbuild::v2::OperationMetadata>, + polling_policy(*current), __func__); +} + StatusOr RepositoryManagerConnectionImpl::FetchReadWriteToken( google::devtools::cloudbuild::v2::FetchReadWriteTokenRequest const& diff --git a/google/cloud/cloudbuild/v2/internal/repository_manager_connection_impl.h b/google/cloud/cloudbuild/v2/internal/repository_manager_connection_impl.h index 2e052b47652b6..d89e4093fb189 100644 --- a/google/cloud/cloudbuild/v2/internal/repository_manager_connection_impl.h +++ b/google/cloud/cloudbuild/v2/internal/repository_manager_connection_impl.h @@ -57,6 +57,15 @@ class RepositoryManagerConnectionImpl google::devtools::cloudbuild::v2::CreateConnectionRequest const& request) override; + StatusOr CreateConnection( + ExperimentalTag, NoAwaitTag, + google::devtools::cloudbuild::v2::CreateConnectionRequest const& request) + override; + + future> + CreateConnection(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetConnection( google::devtools::cloudbuild::v2::GetConnectionRequest const& request) override; @@ -70,22 +79,60 @@ class RepositoryManagerConnectionImpl google::devtools::cloudbuild::v2::UpdateConnectionRequest const& request) override; + StatusOr UpdateConnection( + ExperimentalTag, NoAwaitTag, + google::devtools::cloudbuild::v2::UpdateConnectionRequest const& request) + override; + + future> + UpdateConnection(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteConnection( google::devtools::cloudbuild::v2::DeleteConnectionRequest const& request) override; + StatusOr DeleteConnection( + ExperimentalTag, NoAwaitTag, + google::devtools::cloudbuild::v2::DeleteConnectionRequest const& request) + override; + + future> + DeleteConnection(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> CreateRepository( google::devtools::cloudbuild::v2::CreateRepositoryRequest const& request) override; + StatusOr CreateRepository( + ExperimentalTag, NoAwaitTag, + google::devtools::cloudbuild::v2::CreateRepositoryRequest const& request) + override; + + future> + CreateRepository(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> BatchCreateRepositories( google::devtools::cloudbuild::v2::BatchCreateRepositoriesRequest const& request) override; + StatusOr BatchCreateRepositories( + ExperimentalTag, NoAwaitTag, + google::devtools::cloudbuild::v2::BatchCreateRepositoriesRequest const& + request) override; + + future> + BatchCreateRepositories( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetRepository( google::devtools::cloudbuild::v2::GetRepositoryRequest const& request) override; @@ -99,6 +146,15 @@ class RepositoryManagerConnectionImpl google::devtools::cloudbuild::v2::DeleteRepositoryRequest const& request) override; + StatusOr DeleteRepository( + ExperimentalTag, NoAwaitTag, + google::devtools::cloudbuild::v2::DeleteRepositoryRequest const& request) + override; + + future> + DeleteRepository(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr FetchReadWriteToken( google::devtools::cloudbuild::v2::FetchReadWriteTokenRequest const& diff --git a/google/cloud/cloudbuild/v2/internal/repository_manager_tracing_connection.cc b/google/cloud/cloudbuild/v2/internal/repository_manager_tracing_connection.cc index 5409f1f0782cf..7fd4089d6ca77 100644 --- a/google/cloud/cloudbuild/v2/internal/repository_manager_tracing_connection.cc +++ b/google/cloud/cloudbuild/v2/internal/repository_manager_tracing_connection.cc @@ -42,6 +42,28 @@ RepositoryManagerTracingConnection::CreateConnection( return internal::EndSpan(std::move(span), child_->CreateConnection(request)); } +StatusOr +RepositoryManagerTracingConnection::CreateConnection( + ExperimentalTag, NoAwaitTag, + google::devtools::cloudbuild::v2::CreateConnectionRequest const& request) { + auto span = internal::MakeSpan( + "cloudbuild_v2::RepositoryManagerConnection::CreateConnection"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->CreateConnection(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +RepositoryManagerTracingConnection::CreateConnection( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "cloudbuild_v2::RepositoryManagerConnection::CreateConnection"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->CreateConnection(ExperimentalTag{}, operation)); +} + StatusOr RepositoryManagerTracingConnection::GetConnection( google::devtools::cloudbuild::v2::GetConnectionRequest const& request) { @@ -72,6 +94,28 @@ RepositoryManagerTracingConnection::UpdateConnection( return internal::EndSpan(std::move(span), child_->UpdateConnection(request)); } +StatusOr +RepositoryManagerTracingConnection::UpdateConnection( + ExperimentalTag, NoAwaitTag, + google::devtools::cloudbuild::v2::UpdateConnectionRequest const& request) { + auto span = internal::MakeSpan( + "cloudbuild_v2::RepositoryManagerConnection::UpdateConnection"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->UpdateConnection(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +RepositoryManagerTracingConnection::UpdateConnection( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "cloudbuild_v2::RepositoryManagerConnection::UpdateConnection"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->UpdateConnection(ExperimentalTag{}, operation)); +} + future> RepositoryManagerTracingConnection::DeleteConnection( google::devtools::cloudbuild::v2::DeleteConnectionRequest const& request) { @@ -81,6 +125,28 @@ RepositoryManagerTracingConnection::DeleteConnection( return internal::EndSpan(std::move(span), child_->DeleteConnection(request)); } +StatusOr +RepositoryManagerTracingConnection::DeleteConnection( + ExperimentalTag, NoAwaitTag, + google::devtools::cloudbuild::v2::DeleteConnectionRequest const& request) { + auto span = internal::MakeSpan( + "cloudbuild_v2::RepositoryManagerConnection::DeleteConnection"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->DeleteConnection(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +RepositoryManagerTracingConnection::DeleteConnection( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "cloudbuild_v2::RepositoryManagerConnection::DeleteConnection"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->DeleteConnection(ExperimentalTag{}, operation)); +} + future> RepositoryManagerTracingConnection::CreateRepository( google::devtools::cloudbuild::v2::CreateRepositoryRequest const& request) { @@ -90,6 +156,28 @@ RepositoryManagerTracingConnection::CreateRepository( return internal::EndSpan(std::move(span), child_->CreateRepository(request)); } +StatusOr +RepositoryManagerTracingConnection::CreateRepository( + ExperimentalTag, NoAwaitTag, + google::devtools::cloudbuild::v2::CreateRepositoryRequest const& request) { + auto span = internal::MakeSpan( + "cloudbuild_v2::RepositoryManagerConnection::CreateRepository"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->CreateRepository(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +RepositoryManagerTracingConnection::CreateRepository( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "cloudbuild_v2::RepositoryManagerConnection::CreateRepository"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->CreateRepository(ExperimentalTag{}, operation)); +} + future< StatusOr> RepositoryManagerTracingConnection::BatchCreateRepositories( @@ -102,6 +190,30 @@ RepositoryManagerTracingConnection::BatchCreateRepositories( child_->BatchCreateRepositories(request)); } +StatusOr +RepositoryManagerTracingConnection::BatchCreateRepositories( + ExperimentalTag, NoAwaitTag, + google::devtools::cloudbuild::v2::BatchCreateRepositoriesRequest const& + request) { + auto span = internal::MakeSpan( + "cloudbuild_v2::RepositoryManagerConnection::BatchCreateRepositories"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->BatchCreateRepositories(ExperimentalTag{}, NoAwaitTag{}, + request)); +} + +future< + StatusOr> +RepositoryManagerTracingConnection::BatchCreateRepositories( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "cloudbuild_v2::RepositoryManagerConnection::BatchCreateRepositories"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->BatchCreateRepositories( + ExperimentalTag{}, operation)); +} + StatusOr RepositoryManagerTracingConnection::GetRepository( google::devtools::cloudbuild::v2::GetRepositoryRequest const& request) { @@ -132,6 +244,28 @@ RepositoryManagerTracingConnection::DeleteRepository( return internal::EndSpan(std::move(span), child_->DeleteRepository(request)); } +StatusOr +RepositoryManagerTracingConnection::DeleteRepository( + ExperimentalTag, NoAwaitTag, + google::devtools::cloudbuild::v2::DeleteRepositoryRequest const& request) { + auto span = internal::MakeSpan( + "cloudbuild_v2::RepositoryManagerConnection::DeleteRepository"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->DeleteRepository(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +RepositoryManagerTracingConnection::DeleteRepository( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "cloudbuild_v2::RepositoryManagerConnection::DeleteRepository"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->DeleteRepository(ExperimentalTag{}, operation)); +} + StatusOr RepositoryManagerTracingConnection::FetchReadWriteToken( google::devtools::cloudbuild::v2::FetchReadWriteTokenRequest const& diff --git a/google/cloud/cloudbuild/v2/internal/repository_manager_tracing_connection.h b/google/cloud/cloudbuild/v2/internal/repository_manager_tracing_connection.h index e26a23953c05b..756188442128e 100644 --- a/google/cloud/cloudbuild/v2/internal/repository_manager_tracing_connection.h +++ b/google/cloud/cloudbuild/v2/internal/repository_manager_tracing_connection.h @@ -45,6 +45,15 @@ class RepositoryManagerTracingConnection google::devtools::cloudbuild::v2::CreateConnectionRequest const& request) override; + StatusOr CreateConnection( + ExperimentalTag, NoAwaitTag, + google::devtools::cloudbuild::v2::CreateConnectionRequest const& request) + override; + + future> + CreateConnection(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetConnection( google::devtools::cloudbuild::v2::GetConnectionRequest const& request) override; @@ -58,22 +67,60 @@ class RepositoryManagerTracingConnection google::devtools::cloudbuild::v2::UpdateConnectionRequest const& request) override; + StatusOr UpdateConnection( + ExperimentalTag, NoAwaitTag, + google::devtools::cloudbuild::v2::UpdateConnectionRequest const& request) + override; + + future> + UpdateConnection(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteConnection( google::devtools::cloudbuild::v2::DeleteConnectionRequest const& request) override; + StatusOr DeleteConnection( + ExperimentalTag, NoAwaitTag, + google::devtools::cloudbuild::v2::DeleteConnectionRequest const& request) + override; + + future> + DeleteConnection(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> CreateRepository( google::devtools::cloudbuild::v2::CreateRepositoryRequest const& request) override; + StatusOr CreateRepository( + ExperimentalTag, NoAwaitTag, + google::devtools::cloudbuild::v2::CreateRepositoryRequest const& request) + override; + + future> + CreateRepository(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> BatchCreateRepositories( google::devtools::cloudbuild::v2::BatchCreateRepositoriesRequest const& request) override; + StatusOr BatchCreateRepositories( + ExperimentalTag, NoAwaitTag, + google::devtools::cloudbuild::v2::BatchCreateRepositoriesRequest const& + request) override; + + future> + BatchCreateRepositories( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetRepository( google::devtools::cloudbuild::v2::GetRepositoryRequest const& request) override; @@ -87,6 +134,15 @@ class RepositoryManagerTracingConnection google::devtools::cloudbuild::v2::DeleteRepositoryRequest const& request) override; + StatusOr DeleteRepository( + ExperimentalTag, NoAwaitTag, + google::devtools::cloudbuild::v2::DeleteRepositoryRequest const& request) + override; + + future> + DeleteRepository(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr FetchReadWriteToken( google::devtools::cloudbuild::v2::FetchReadWriteTokenRequest const& diff --git a/google/cloud/cloudbuild/v2/mocks/mock_repository_manager_connection.h b/google/cloud/cloudbuild/v2/mocks/mock_repository_manager_connection.h index 8d26deb075471..0ddd0ff21f03d 100644 --- a/google/cloud/cloudbuild/v2/mocks/mock_repository_manager_connection.h +++ b/google/cloud/cloudbuild/v2/mocks/mock_repository_manager_connection.h @@ -53,6 +53,18 @@ class MockRepositoryManagerConnection request), (override)); + MOCK_METHOD(StatusOr, CreateConnection, + (ExperimentalTag, NoAwaitTag, + google::devtools::cloudbuild::v2::CreateConnectionRequest const& + request), + (override)); + + MOCK_METHOD(future>, + CreateConnection, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr, GetConnection, (google::devtools::cloudbuild::v2::GetConnectionRequest const& request), @@ -70,6 +82,18 @@ class MockRepositoryManagerConnection request), (override)); + MOCK_METHOD(StatusOr, UpdateConnection, + (ExperimentalTag, NoAwaitTag, + google::devtools::cloudbuild::v2::UpdateConnectionRequest const& + request), + (override)); + + MOCK_METHOD(future>, + UpdateConnection, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteConnection, @@ -77,12 +101,36 @@ class MockRepositoryManagerConnection request), (override)); + MOCK_METHOD(StatusOr, DeleteConnection, + (ExperimentalTag, NoAwaitTag, + google::devtools::cloudbuild::v2::DeleteConnectionRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + DeleteConnection, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, CreateRepository, (google::devtools::cloudbuild::v2::CreateRepositoryRequest const& request), (override)); + MOCK_METHOD(StatusOr, CreateRepository, + (ExperimentalTag, NoAwaitTag, + google::devtools::cloudbuild::v2::CreateRepositoryRequest const& + request), + (override)); + + MOCK_METHOD(future>, + CreateRepository, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, @@ -91,6 +139,20 @@ class MockRepositoryManagerConnection request), (override)); + MOCK_METHOD( + StatusOr, BatchCreateRepositories, + (ExperimentalTag, NoAwaitTag, + google::devtools::cloudbuild::v2::BatchCreateRepositoriesRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + BatchCreateRepositories, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr, GetRepository, (google::devtools::cloudbuild::v2::GetRepositoryRequest const& request), @@ -109,6 +171,18 @@ class MockRepositoryManagerConnection request), (override)); + MOCK_METHOD(StatusOr, DeleteRepository, + (ExperimentalTag, NoAwaitTag, + google::devtools::cloudbuild::v2::DeleteRepositoryRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + DeleteRepository, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr, FetchReadWriteToken, diff --git a/google/cloud/cloudbuild/v2/repository_manager_connection.cc b/google/cloud/cloudbuild/v2/repository_manager_connection.cc index 096fd451f4ecc..51b2e5572d1e9 100644 --- a/google/cloud/cloudbuild/v2/repository_manager_connection.cc +++ b/google/cloud/cloudbuild/v2/repository_manager_connection.cc @@ -46,6 +46,22 @@ RepositoryManagerConnection::CreateConnection( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +RepositoryManagerConnection::CreateConnection( + ExperimentalTag, NoAwaitTag, + google::devtools::cloudbuild::v2::CreateConnectionRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +RepositoryManagerConnection::CreateConnection( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr RepositoryManagerConnection::GetConnection( google::devtools::cloudbuild::v2::GetConnectionRequest const&) { @@ -68,6 +84,22 @@ RepositoryManagerConnection::UpdateConnection( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +RepositoryManagerConnection::UpdateConnection( + ExperimentalTag, NoAwaitTag, + google::devtools::cloudbuild::v2::UpdateConnectionRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +RepositoryManagerConnection::UpdateConnection( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> RepositoryManagerConnection::DeleteConnection( google::devtools::cloudbuild::v2::DeleteConnectionRequest const&) { @@ -76,6 +108,22 @@ RepositoryManagerConnection::DeleteConnection( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +RepositoryManagerConnection::DeleteConnection( + ExperimentalTag, NoAwaitTag, + google::devtools::cloudbuild::v2::DeleteConnectionRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +RepositoryManagerConnection::DeleteConnection( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> RepositoryManagerConnection::CreateRepository( google::devtools::cloudbuild::v2::CreateRepositoryRequest const&) { @@ -84,6 +132,22 @@ RepositoryManagerConnection::CreateRepository( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +RepositoryManagerConnection::CreateRepository( + ExperimentalTag, NoAwaitTag, + google::devtools::cloudbuild::v2::CreateRepositoryRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +RepositoryManagerConnection::CreateRepository( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future< StatusOr> RepositoryManagerConnection::BatchCreateRepositories( @@ -93,6 +157,23 @@ RepositoryManagerConnection::BatchCreateRepositories( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +RepositoryManagerConnection::BatchCreateRepositories( + ExperimentalTag, NoAwaitTag, + google::devtools::cloudbuild::v2::BatchCreateRepositoriesRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future< + StatusOr> +RepositoryManagerConnection::BatchCreateRepositories( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr RepositoryManagerConnection::GetRepository( google::devtools::cloudbuild::v2::GetRepositoryRequest const&) { @@ -115,6 +196,22 @@ RepositoryManagerConnection::DeleteRepository( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +RepositoryManagerConnection::DeleteRepository( + ExperimentalTag, NoAwaitTag, + google::devtools::cloudbuild::v2::DeleteRepositoryRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +RepositoryManagerConnection::DeleteRepository( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr RepositoryManagerConnection::FetchReadWriteToken( google::devtools::cloudbuild::v2::FetchReadWriteTokenRequest const&) { diff --git a/google/cloud/cloudbuild/v2/repository_manager_connection.h b/google/cloud/cloudbuild/v2/repository_manager_connection.h index 06373e556dec3..b5a4f79517364 100644 --- a/google/cloud/cloudbuild/v2/repository_manager_connection.h +++ b/google/cloud/cloudbuild/v2/repository_manager_connection.h @@ -22,8 +22,10 @@ #include "google/cloud/cloudbuild/v2/internal/repository_manager_retry_traits.h" #include "google/cloud/cloudbuild/v2/repository_manager_connection_idempotency_policy.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/internal/retry_policy_impl.h" +#include "google/cloud/no_await_tag.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" #include "google/cloud/status_or.h" @@ -191,6 +193,14 @@ class RepositoryManagerConnection { CreateConnection( google::devtools::cloudbuild::v2::CreateConnectionRequest const& request); + virtual StatusOr CreateConnection( + ExperimentalTag, NoAwaitTag, + google::devtools::cloudbuild::v2::CreateConnectionRequest const& request); + + virtual future> + CreateConnection(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StatusOr GetConnection( google::devtools::cloudbuild::v2::GetConnectionRequest const& request); @@ -202,20 +212,54 @@ class RepositoryManagerConnection { UpdateConnection( google::devtools::cloudbuild::v2::UpdateConnectionRequest const& request); + virtual StatusOr UpdateConnection( + ExperimentalTag, NoAwaitTag, + google::devtools::cloudbuild::v2::UpdateConnectionRequest const& request); + + virtual future> + UpdateConnection(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> DeleteConnection( google::devtools::cloudbuild::v2::DeleteConnectionRequest const& request); + virtual StatusOr DeleteConnection( + ExperimentalTag, NoAwaitTag, + google::devtools::cloudbuild::v2::DeleteConnectionRequest const& request); + + virtual future> + DeleteConnection(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> CreateRepository( google::devtools::cloudbuild::v2::CreateRepositoryRequest const& request); + virtual StatusOr CreateRepository( + ExperimentalTag, NoAwaitTag, + google::devtools::cloudbuild::v2::CreateRepositoryRequest const& request); + + virtual future> + CreateRepository(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> BatchCreateRepositories( google::devtools::cloudbuild::v2::BatchCreateRepositoriesRequest const& request); + virtual StatusOr BatchCreateRepositories( + ExperimentalTag, NoAwaitTag, + google::devtools::cloudbuild::v2::BatchCreateRepositoriesRequest const& + request); + + virtual future> + BatchCreateRepositories(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StatusOr GetRepository( google::devtools::cloudbuild::v2::GetRepositoryRequest const& request); @@ -227,6 +271,14 @@ class RepositoryManagerConnection { DeleteRepository( google::devtools::cloudbuild::v2::DeleteRepositoryRequest const& request); + virtual StatusOr DeleteRepository( + ExperimentalTag, NoAwaitTag, + google::devtools::cloudbuild::v2::DeleteRepositoryRequest const& request); + + virtual future> + DeleteRepository(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StatusOr< google::devtools::cloudbuild::v2::FetchReadWriteTokenResponse> FetchReadWriteToken( diff --git a/google/cloud/cloudcontrolspartner/v1/cloud_controls_partner_core_connection.h b/google/cloud/cloudcontrolspartner/v1/cloud_controls_partner_core_connection.h index 239dbe023d8f5..7aaf4f795a479 100644 --- a/google/cloud/cloudcontrolspartner/v1/cloud_controls_partner_core_connection.h +++ b/google/cloud/cloudcontrolspartner/v1/cloud_controls_partner_core_connection.h @@ -22,6 +22,7 @@ #include "google/cloud/cloudcontrolspartner/v1/cloud_controls_partner_core_connection_idempotency_policy.h" #include "google/cloud/cloudcontrolspartner/v1/internal/cloud_controls_partner_core_retry_traits.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/internal/retry_policy_impl.h" #include "google/cloud/options.h" #include "google/cloud/status_or.h" diff --git a/google/cloud/cloudcontrolspartner/v1/cloud_controls_partner_monitoring_connection.h b/google/cloud/cloudcontrolspartner/v1/cloud_controls_partner_monitoring_connection.h index 1189f591d077c..2d5bd2b47d049 100644 --- a/google/cloud/cloudcontrolspartner/v1/cloud_controls_partner_monitoring_connection.h +++ b/google/cloud/cloudcontrolspartner/v1/cloud_controls_partner_monitoring_connection.h @@ -22,6 +22,7 @@ #include "google/cloud/cloudcontrolspartner/v1/cloud_controls_partner_monitoring_connection_idempotency_policy.h" #include "google/cloud/cloudcontrolspartner/v1/internal/cloud_controls_partner_monitoring_retry_traits.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/internal/retry_policy_impl.h" #include "google/cloud/options.h" #include "google/cloud/status_or.h" diff --git a/google/cloud/cloudquotas/v1/cloud_quotas_connection.h b/google/cloud/cloudquotas/v1/cloud_quotas_connection.h index 917d43bd1c271..13dcd81059baf 100644 --- a/google/cloud/cloudquotas/v1/cloud_quotas_connection.h +++ b/google/cloud/cloudquotas/v1/cloud_quotas_connection.h @@ -22,6 +22,7 @@ #include "google/cloud/cloudquotas/v1/cloud_quotas_connection_idempotency_policy.h" #include "google/cloud/cloudquotas/v1/internal/cloud_quotas_retry_traits.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/internal/retry_policy_impl.h" #include "google/cloud/options.h" #include "google/cloud/status_or.h" diff --git a/google/cloud/commerce/consumer/procurement/v1/consumer_procurement_connection.cc b/google/cloud/commerce/consumer/procurement/v1/consumer_procurement_connection.cc index 08b162fa645a2..8531cffb0fd4d 100644 --- a/google/cloud/commerce/consumer/procurement/v1/consumer_procurement_connection.cc +++ b/google/cloud/commerce/consumer/procurement/v1/consumer_procurement_connection.cc @@ -49,6 +49,23 @@ ConsumerProcurementServiceConnection::PlaceOrder( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +ConsumerProcurementServiceConnection::PlaceOrder( + ExperimentalTag, NoAwaitTag, + google::cloud::commerce::consumer::procurement::v1:: + PlaceOrderRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +ConsumerProcurementServiceConnection::PlaceOrder( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr ConsumerProcurementServiceConnection::GetOrder( google::cloud::commerce::consumer::procurement::v1:: diff --git a/google/cloud/commerce/consumer/procurement/v1/consumer_procurement_connection.h b/google/cloud/commerce/consumer/procurement/v1/consumer_procurement_connection.h index 4c4f1259243aa..a69ef06c4ba5d 100644 --- a/google/cloud/commerce/consumer/procurement/v1/consumer_procurement_connection.h +++ b/google/cloud/commerce/consumer/procurement/v1/consumer_procurement_connection.h @@ -23,8 +23,10 @@ #include "google/cloud/commerce/consumer/procurement/v1/consumer_procurement_connection_idempotency_policy.h" #include "google/cloud/commerce/consumer/procurement/v1/internal/consumer_procurement_retry_traits.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/internal/retry_policy_impl.h" +#include "google/cloud/no_await_tag.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" #include "google/cloud/status_or.h" @@ -210,6 +212,15 @@ class ConsumerProcurementServiceConnection { PlaceOrder(google::cloud::commerce::consumer::procurement::v1:: PlaceOrderRequest const& request); + virtual StatusOr PlaceOrder( + ExperimentalTag, NoAwaitTag, + google::cloud::commerce::consumer::procurement::v1:: + PlaceOrderRequest const& request); + + virtual future< + StatusOr> + PlaceOrder(ExperimentalTag, google::longrunning::Operation const& operation); + virtual StatusOr GetOrder( google::cloud::commerce::consumer::procurement::v1::GetOrderRequest const& diff --git a/google/cloud/commerce/consumer/procurement/v1/internal/consumer_procurement_connection_impl.cc b/google/cloud/commerce/consumer/procurement/v1/internal/consumer_procurement_connection_impl.cc index b6be3fa6a5d30..565527ff431a6 100644 --- a/google/cloud/commerce/consumer/procurement/v1/internal/consumer_procurement_connection_impl.cc +++ b/google/cloud/commerce/consumer/procurement/v1/internal/consumer_procurement_connection_impl.cc @@ -121,6 +121,61 @@ ConsumerProcurementServiceConnectionImpl::PlaceOrder( polling_policy(*current), __func__); } +StatusOr +ConsumerProcurementServiceConnectionImpl::PlaceOrder( + ExperimentalTag, NoAwaitTag, + google::cloud::commerce::consumer::procurement::v1::PlaceOrderRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->PlaceOrder(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::commerce::consumer::procurement::v1:: + PlaceOrderRequest const& request) { + return stub_->PlaceOrder(context, options, request); + }, + *current, request, __func__); +} + +future> +ConsumerProcurementServiceConnectionImpl::PlaceOrder( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to PlaceOrder", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::commerce::consumer::procurement::v1::Order>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::commerce::consumer::procurement::v1::Order>, + polling_policy(*current), __func__); +} + StatusOr ConsumerProcurementServiceConnectionImpl::GetOrder( google::cloud::commerce::consumer::procurement::v1::GetOrderRequest const& diff --git a/google/cloud/commerce/consumer/procurement/v1/internal/consumer_procurement_connection_impl.h b/google/cloud/commerce/consumer/procurement/v1/internal/consumer_procurement_connection_impl.h index 6d92b1aacb143..410c2e4adabd5 100644 --- a/google/cloud/commerce/consumer/procurement/v1/internal/consumer_procurement_connection_impl.h +++ b/google/cloud/commerce/consumer/procurement/v1/internal/consumer_procurement_connection_impl.h @@ -60,6 +60,15 @@ class ConsumerProcurementServiceConnectionImpl PlaceOrder(google::cloud::commerce::consumer::procurement::v1:: PlaceOrderRequest const& request) override; + StatusOr PlaceOrder( + ExperimentalTag, NoAwaitTag, + google::cloud::commerce::consumer::procurement::v1:: + PlaceOrderRequest const& request) override; + + future> + PlaceOrder(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetOrder( google::cloud::commerce::consumer::procurement::v1::GetOrderRequest const& request) override; diff --git a/google/cloud/commerce/consumer/procurement/v1/internal/consumer_procurement_tracing_connection.cc b/google/cloud/commerce/consumer/procurement/v1/internal/consumer_procurement_tracing_connection.cc index 6c1c2a8d6edc8..ede4ec82ac47a 100644 --- a/google/cloud/commerce/consumer/procurement/v1/internal/consumer_procurement_tracing_connection.cc +++ b/google/cloud/commerce/consumer/procurement/v1/internal/consumer_procurement_tracing_connection.cc @@ -48,6 +48,30 @@ ConsumerProcurementServiceTracingConnection::PlaceOrder( return internal::EndSpan(std::move(span), child_->PlaceOrder(request)); } +StatusOr +ConsumerProcurementServiceTracingConnection::PlaceOrder( + ExperimentalTag, NoAwaitTag, + google::cloud::commerce::consumer::procurement::v1::PlaceOrderRequest const& + request) { + auto span = internal::MakeSpan( + "commerce_consumer_procurement_v1::ConsumerProcurementServiceConnection::" + "PlaceOrder"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->PlaceOrder(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +ConsumerProcurementServiceTracingConnection::PlaceOrder( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "commerce_consumer_procurement_v1::ConsumerProcurementServiceConnection::" + "PlaceOrder"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->PlaceOrder(ExperimentalTag{}, operation)); +} + StatusOr ConsumerProcurementServiceTracingConnection::GetOrder( google::cloud::commerce::consumer::procurement::v1::GetOrderRequest const& diff --git a/google/cloud/commerce/consumer/procurement/v1/internal/consumer_procurement_tracing_connection.h b/google/cloud/commerce/consumer/procurement/v1/internal/consumer_procurement_tracing_connection.h index b63bad51942a9..9041ada913e8a 100644 --- a/google/cloud/commerce/consumer/procurement/v1/internal/consumer_procurement_tracing_connection.h +++ b/google/cloud/commerce/consumer/procurement/v1/internal/consumer_procurement_tracing_connection.h @@ -48,6 +48,15 @@ class ConsumerProcurementServiceTracingConnection PlaceOrder(google::cloud::commerce::consumer::procurement::v1:: PlaceOrderRequest const& request) override; + StatusOr PlaceOrder( + ExperimentalTag, NoAwaitTag, + google::cloud::commerce::consumer::procurement::v1:: + PlaceOrderRequest const& request) override; + + future> + PlaceOrder(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetOrder( google::cloud::commerce::consumer::procurement::v1::GetOrderRequest const& request) override; diff --git a/google/cloud/commerce/consumer/procurement/v1/mocks/mock_consumer_procurement_connection.h b/google/cloud/commerce/consumer/procurement/v1/mocks/mock_consumer_procurement_connection.h index 20c6f5693640a..67060e8434498 100644 --- a/google/cloud/commerce/consumer/procurement/v1/mocks/mock_consumer_procurement_connection.h +++ b/google/cloud/commerce/consumer/procurement/v1/mocks/mock_consumer_procurement_connection.h @@ -57,6 +57,19 @@ class MockConsumerProcurementServiceConnection PlaceOrderRequest const& request), (override)); + MOCK_METHOD(StatusOr, PlaceOrder, + (ExperimentalTag, NoAwaitTag, + google::cloud::commerce::consumer::procurement::v1:: + PlaceOrderRequest const& request), + (override)); + + MOCK_METHOD( + future< + StatusOr>, + PlaceOrder, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr, GetOrder, diff --git a/google/cloud/composer/v1/environments_connection.cc b/google/cloud/composer/v1/environments_connection.cc index 9bed78b16d20c..9040be42bda1a 100644 --- a/google/cloud/composer/v1/environments_connection.cc +++ b/google/cloud/composer/v1/environments_connection.cc @@ -48,6 +48,24 @@ EnvironmentsConnection::CreateEnvironment( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +EnvironmentsConnection::CreateEnvironment( + ExperimentalTag, NoAwaitTag, + google::cloud::orchestration::airflow::service::v1:: + CreateEnvironmentRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future< + StatusOr> +EnvironmentsConnection::CreateEnvironment( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr EnvironmentsConnection::GetEnvironment( google::cloud::orchestration::airflow::service::v1:: @@ -73,6 +91,24 @@ EnvironmentsConnection::UpdateEnvironment( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +EnvironmentsConnection::UpdateEnvironment( + ExperimentalTag, NoAwaitTag, + google::cloud::orchestration::airflow::service::v1:: + UpdateEnvironmentRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future< + StatusOr> +EnvironmentsConnection::UpdateEnvironment( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> EnvironmentsConnection::DeleteEnvironment( @@ -83,6 +119,24 @@ EnvironmentsConnection::DeleteEnvironment( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +EnvironmentsConnection::DeleteEnvironment( + ExperimentalTag, NoAwaitTag, + google::cloud::orchestration::airflow::service::v1:: + DeleteEnvironmentRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +EnvironmentsConnection::DeleteEnvironment( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr EnvironmentsConnection::ExecuteAirflowCommand( @@ -208,6 +262,24 @@ EnvironmentsConnection::SaveSnapshot( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr EnvironmentsConnection::SaveSnapshot( + ExperimentalTag, NoAwaitTag, + google::cloud::orchestration::airflow::service::v1:: + SaveSnapshotRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +EnvironmentsConnection::SaveSnapshot(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> EnvironmentsConnection::LoadSnapshot( @@ -219,6 +291,24 @@ EnvironmentsConnection::LoadSnapshot( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr EnvironmentsConnection::LoadSnapshot( + ExperimentalTag, NoAwaitTag, + google::cloud::orchestration::airflow::service::v1:: + LoadSnapshotRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +EnvironmentsConnection::LoadSnapshot(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> EnvironmentsConnection::DatabaseFailover( @@ -230,6 +320,25 @@ EnvironmentsConnection::DatabaseFailover( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +EnvironmentsConnection::DatabaseFailover( + ExperimentalTag, NoAwaitTag, + google::cloud::orchestration::airflow::service::v1:: + DatabaseFailoverRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +EnvironmentsConnection::DatabaseFailover( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr EnvironmentsConnection::FetchDatabaseProperties( diff --git a/google/cloud/composer/v1/environments_connection.h b/google/cloud/composer/v1/environments_connection.h index 59c5aaf5b5e66..09aae9875040e 100644 --- a/google/cloud/composer/v1/environments_connection.h +++ b/google/cloud/composer/v1/environments_connection.h @@ -22,8 +22,10 @@ #include "google/cloud/composer/v1/environments_connection_idempotency_policy.h" #include "google/cloud/composer/v1/internal/environments_retry_traits.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/internal/retry_policy_impl.h" +#include "google/cloud/no_await_tag.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" #include "google/cloud/status_or.h" @@ -191,6 +193,16 @@ class EnvironmentsConnection { CreateEnvironment(google::cloud::orchestration::airflow::service::v1:: CreateEnvironmentRequest const& request); + virtual StatusOr CreateEnvironment( + ExperimentalTag, NoAwaitTag, + google::cloud::orchestration::airflow::service::v1:: + CreateEnvironmentRequest const& request); + + virtual future< + StatusOr> + CreateEnvironment(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StatusOr< google::cloud::orchestration::airflow::service::v1::Environment> GetEnvironment(google::cloud::orchestration::airflow::service::v1:: @@ -206,11 +218,31 @@ class EnvironmentsConnection { UpdateEnvironment(google::cloud::orchestration::airflow::service::v1:: UpdateEnvironmentRequest const& request); + virtual StatusOr UpdateEnvironment( + ExperimentalTag, NoAwaitTag, + google::cloud::orchestration::airflow::service::v1:: + UpdateEnvironmentRequest const& request); + + virtual future< + StatusOr> + UpdateEnvironment(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> DeleteEnvironment(google::cloud::orchestration::airflow::service::v1:: DeleteEnvironmentRequest const& request); + virtual StatusOr DeleteEnvironment( + ExperimentalTag, NoAwaitTag, + google::cloud::orchestration::airflow::service::v1:: + DeleteEnvironmentRequest const& request); + + virtual future> + DeleteEnvironment(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StatusOr ExecuteAirflowCommand(google::cloud::orchestration::airflow::service::v1:: @@ -291,16 +323,46 @@ class EnvironmentsConnection { SaveSnapshot(google::cloud::orchestration::airflow::service::v1:: SaveSnapshotRequest const& request); + virtual StatusOr SaveSnapshot( + ExperimentalTag, NoAwaitTag, + google::cloud::orchestration::airflow::service::v1:: + SaveSnapshotRequest const& request); + + virtual future> + SaveSnapshot(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> LoadSnapshot(google::cloud::orchestration::airflow::service::v1:: LoadSnapshotRequest const& request); + virtual StatusOr LoadSnapshot( + ExperimentalTag, NoAwaitTag, + google::cloud::orchestration::airflow::service::v1:: + LoadSnapshotRequest const& request); + + virtual future> + LoadSnapshot(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> DatabaseFailover(google::cloud::orchestration::airflow::service::v1:: DatabaseFailoverRequest const& request); + virtual StatusOr DatabaseFailover( + ExperimentalTag, NoAwaitTag, + google::cloud::orchestration::airflow::service::v1:: + DatabaseFailoverRequest const& request); + + virtual future> + DatabaseFailover(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StatusOr FetchDatabaseProperties(google::cloud::orchestration::airflow::service::v1:: diff --git a/google/cloud/composer/v1/image_versions_connection.h b/google/cloud/composer/v1/image_versions_connection.h index cd883f8230410..2c50f1845638f 100644 --- a/google/cloud/composer/v1/image_versions_connection.h +++ b/google/cloud/composer/v1/image_versions_connection.h @@ -22,6 +22,7 @@ #include "google/cloud/composer/v1/image_versions_connection_idempotency_policy.h" #include "google/cloud/composer/v1/internal/image_versions_retry_traits.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/internal/retry_policy_impl.h" #include "google/cloud/options.h" #include "google/cloud/status_or.h" diff --git a/google/cloud/composer/v1/internal/environments_connection_impl.cc b/google/cloud/composer/v1/internal/environments_connection_impl.cc index dd8f1b86e0993..a3de0634c386b 100644 --- a/google/cloud/composer/v1/internal/environments_connection_impl.cc +++ b/google/cloud/composer/v1/internal/environments_connection_impl.cc @@ -105,6 +105,62 @@ EnvironmentsConnectionImpl::CreateEnvironment( polling_policy(*current), __func__); } +StatusOr +EnvironmentsConnectionImpl::CreateEnvironment( + ExperimentalTag, NoAwaitTag, + google::cloud::orchestration::airflow::service::v1:: + CreateEnvironmentRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateEnvironment(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::orchestration::airflow::service::v1:: + CreateEnvironmentRequest const& request) { + return stub_->CreateEnvironment(context, options, request); + }, + *current, request, __func__); +} + +future< + StatusOr> +EnvironmentsConnectionImpl::CreateEnvironment( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to CreateEnvironment", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::orchestration::airflow::service::v1::Environment>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::orchestration::airflow::service::v1::Environment>, + polling_policy(*current), __func__); +} + StatusOr EnvironmentsConnectionImpl::GetEnvironment( google::cloud::orchestration::airflow::service::v1:: @@ -200,6 +256,62 @@ EnvironmentsConnectionImpl::UpdateEnvironment( polling_policy(*current), __func__); } +StatusOr +EnvironmentsConnectionImpl::UpdateEnvironment( + ExperimentalTag, NoAwaitTag, + google::cloud::orchestration::airflow::service::v1:: + UpdateEnvironmentRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UpdateEnvironment(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::orchestration::airflow::service::v1:: + UpdateEnvironmentRequest const& request) { + return stub_->UpdateEnvironment(context, options, request); + }, + *current, request, __func__); +} + +future< + StatusOr> +EnvironmentsConnectionImpl::UpdateEnvironment( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to UpdateEnvironment", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::orchestration::airflow::service::v1::Environment>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::orchestration::airflow::service::v1::Environment>, + polling_policy(*current), __func__); +} + future> EnvironmentsConnectionImpl::DeleteEnvironment( @@ -242,6 +354,63 @@ EnvironmentsConnectionImpl::DeleteEnvironment( polling_policy(*current), __func__); } +StatusOr +EnvironmentsConnectionImpl::DeleteEnvironment( + ExperimentalTag, NoAwaitTag, + google::cloud::orchestration::airflow::service::v1:: + DeleteEnvironmentRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteEnvironment(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::orchestration::airflow::service::v1:: + DeleteEnvironmentRequest const& request) { + return stub_->DeleteEnvironment(context, options, request); + }, + *current, request, __func__); +} + +future> +EnvironmentsConnectionImpl::DeleteEnvironment( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteEnvironment", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::orchestration::airflow::service::v1::OperationMetadata>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::cloud::orchestration::airflow::service::v1:: + OperationMetadata>, + polling_policy(*current), __func__); +} + StatusOr EnvironmentsConnectionImpl::ExecuteAirflowCommand( @@ -589,6 +758,63 @@ EnvironmentsConnectionImpl::SaveSnapshot( polling_policy(*current), __func__); } +StatusOr +EnvironmentsConnectionImpl::SaveSnapshot( + ExperimentalTag, NoAwaitTag, + google::cloud::orchestration::airflow::service::v1:: + SaveSnapshotRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->SaveSnapshot(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::orchestration::airflow::service::v1:: + SaveSnapshotRequest const& request) { + return stub_->SaveSnapshot(context, options, request); + }, + *current, request, __func__); +} + +future> +EnvironmentsConnectionImpl::SaveSnapshot( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to SaveSnapshot", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::orchestration::airflow::service::v1::SaveSnapshotResponse>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::orchestration::airflow::service::v1:: + SaveSnapshotResponse>, + polling_policy(*current), __func__); +} + future> EnvironmentsConnectionImpl::LoadSnapshot( @@ -631,6 +857,63 @@ EnvironmentsConnectionImpl::LoadSnapshot( polling_policy(*current), __func__); } +StatusOr +EnvironmentsConnectionImpl::LoadSnapshot( + ExperimentalTag, NoAwaitTag, + google::cloud::orchestration::airflow::service::v1:: + LoadSnapshotRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->LoadSnapshot(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::orchestration::airflow::service::v1:: + LoadSnapshotRequest const& request) { + return stub_->LoadSnapshot(context, options, request); + }, + *current, request, __func__); +} + +future> +EnvironmentsConnectionImpl::LoadSnapshot( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to LoadSnapshot", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::orchestration::airflow::service::v1::LoadSnapshotResponse>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::orchestration::airflow::service::v1:: + LoadSnapshotResponse>, + polling_policy(*current), __func__); +} + future> EnvironmentsConnectionImpl::DatabaseFailover( @@ -674,6 +957,65 @@ EnvironmentsConnectionImpl::DatabaseFailover( polling_policy(*current), __func__); } +StatusOr +EnvironmentsConnectionImpl::DatabaseFailover( + ExperimentalTag, NoAwaitTag, + google::cloud::orchestration::airflow::service::v1:: + DatabaseFailoverRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DatabaseFailover(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::orchestration::airflow::service::v1:: + DatabaseFailoverRequest const& request) { + return stub_->DatabaseFailover(context, options, request); + }, + *current, request, __func__); +} + +future> +EnvironmentsConnectionImpl::DatabaseFailover( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DatabaseFailover", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::orchestration::airflow::service::v1:: + DatabaseFailoverResponse>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::orchestration::airflow::service::v1:: + DatabaseFailoverResponse>, + polling_policy(*current), __func__); +} + StatusOr EnvironmentsConnectionImpl::FetchDatabaseProperties( diff --git a/google/cloud/composer/v1/internal/environments_connection_impl.h b/google/cloud/composer/v1/internal/environments_connection_impl.h index 9b3abacf51081..8260234203014 100644 --- a/google/cloud/composer/v1/internal/environments_connection_impl.h +++ b/google/cloud/composer/v1/internal/environments_connection_impl.h @@ -56,6 +56,16 @@ class EnvironmentsConnectionImpl : public composer_v1::EnvironmentsConnection { CreateEnvironment(google::cloud::orchestration::airflow::service::v1:: CreateEnvironmentRequest const& request) override; + StatusOr CreateEnvironment( + ExperimentalTag, NoAwaitTag, + google::cloud::orchestration::airflow::service::v1:: + CreateEnvironmentRequest const& request) override; + + future< + StatusOr> + CreateEnvironment(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetEnvironment(google::cloud::orchestration::airflow::service::v1:: GetEnvironmentRequest const& request) override; @@ -69,11 +79,31 @@ class EnvironmentsConnectionImpl : public composer_v1::EnvironmentsConnection { UpdateEnvironment(google::cloud::orchestration::airflow::service::v1:: UpdateEnvironmentRequest const& request) override; + StatusOr UpdateEnvironment( + ExperimentalTag, NoAwaitTag, + google::cloud::orchestration::airflow::service::v1:: + UpdateEnvironmentRequest const& request) override; + + future< + StatusOr> + UpdateEnvironment(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteEnvironment(google::cloud::orchestration::airflow::service::v1:: DeleteEnvironmentRequest const& request) override; + StatusOr DeleteEnvironment( + ExperimentalTag, NoAwaitTag, + google::cloud::orchestration::airflow::service::v1:: + DeleteEnvironmentRequest const& request) override; + + future> + DeleteEnvironment(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr ExecuteAirflowCommand( @@ -157,16 +187,46 @@ class EnvironmentsConnectionImpl : public composer_v1::EnvironmentsConnection { SaveSnapshot(google::cloud::orchestration::airflow::service::v1:: SaveSnapshotRequest const& request) override; + StatusOr SaveSnapshot( + ExperimentalTag, NoAwaitTag, + google::cloud::orchestration::airflow::service::v1:: + SaveSnapshotRequest const& request) override; + + future> + SaveSnapshot(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> LoadSnapshot(google::cloud::orchestration::airflow::service::v1:: LoadSnapshotRequest const& request) override; + StatusOr LoadSnapshot( + ExperimentalTag, NoAwaitTag, + google::cloud::orchestration::airflow::service::v1:: + LoadSnapshotRequest const& request) override; + + future> + LoadSnapshot(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DatabaseFailover(google::cloud::orchestration::airflow::service::v1:: DatabaseFailoverRequest const& request) override; + StatusOr DatabaseFailover( + ExperimentalTag, NoAwaitTag, + google::cloud::orchestration::airflow::service::v1:: + DatabaseFailoverRequest const& request) override; + + future> + DatabaseFailover(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr FetchDatabaseProperties( diff --git a/google/cloud/composer/v1/internal/environments_tracing_connection.cc b/google/cloud/composer/v1/internal/environments_tracing_connection.cc index d17b7b8d9e42d..b97f41bef7fb3 100644 --- a/google/cloud/composer/v1/internal/environments_tracing_connection.cc +++ b/google/cloud/composer/v1/internal/environments_tracing_connection.cc @@ -44,6 +44,30 @@ EnvironmentsTracingConnection::CreateEnvironment( return internal::EndSpan(std::move(span), child_->CreateEnvironment(request)); } +StatusOr +EnvironmentsTracingConnection::CreateEnvironment( + ExperimentalTag, NoAwaitTag, + google::cloud::orchestration::airflow::service::v1:: + CreateEnvironmentRequest const& request) { + auto span = internal::MakeSpan( + "composer_v1::EnvironmentsConnection::CreateEnvironment"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->CreateEnvironment(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future< + StatusOr> +EnvironmentsTracingConnection::CreateEnvironment( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "composer_v1::EnvironmentsConnection::CreateEnvironment"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->CreateEnvironment(ExperimentalTag{}, operation)); +} + StatusOr EnvironmentsTracingConnection::GetEnvironment( google::cloud::orchestration::airflow::service::v1:: @@ -78,6 +102,30 @@ EnvironmentsTracingConnection::UpdateEnvironment( return internal::EndSpan(std::move(span), child_->UpdateEnvironment(request)); } +StatusOr +EnvironmentsTracingConnection::UpdateEnvironment( + ExperimentalTag, NoAwaitTag, + google::cloud::orchestration::airflow::service::v1:: + UpdateEnvironmentRequest const& request) { + auto span = internal::MakeSpan( + "composer_v1::EnvironmentsConnection::UpdateEnvironment"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->UpdateEnvironment(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future< + StatusOr> +EnvironmentsTracingConnection::UpdateEnvironment( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "composer_v1::EnvironmentsConnection::UpdateEnvironment"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->UpdateEnvironment(ExperimentalTag{}, operation)); +} + future> EnvironmentsTracingConnection::DeleteEnvironment( @@ -89,6 +137,30 @@ EnvironmentsTracingConnection::DeleteEnvironment( return internal::EndSpan(std::move(span), child_->DeleteEnvironment(request)); } +StatusOr +EnvironmentsTracingConnection::DeleteEnvironment( + ExperimentalTag, NoAwaitTag, + google::cloud::orchestration::airflow::service::v1:: + DeleteEnvironmentRequest const& request) { + auto span = internal::MakeSpan( + "composer_v1::EnvironmentsConnection::DeleteEnvironment"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->DeleteEnvironment(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +EnvironmentsTracingConnection::DeleteEnvironment( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "composer_v1::EnvironmentsConnection::DeleteEnvironment"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->DeleteEnvironment(ExperimentalTag{}, operation)); +} + StatusOr EnvironmentsTracingConnection::ExecuteAirflowCommand( @@ -263,6 +335,29 @@ EnvironmentsTracingConnection::SaveSnapshot( return internal::EndSpan(std::move(span), child_->SaveSnapshot(request)); } +StatusOr +EnvironmentsTracingConnection::SaveSnapshot( + ExperimentalTag, NoAwaitTag, + google::cloud::orchestration::airflow::service::v1:: + SaveSnapshotRequest const& request) { + auto span = + internal::MakeSpan("composer_v1::EnvironmentsConnection::SaveSnapshot"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->SaveSnapshot(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +EnvironmentsTracingConnection::SaveSnapshot( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = + internal::MakeSpan("composer_v1::EnvironmentsConnection::SaveSnapshot"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->SaveSnapshot(ExperimentalTag{}, operation)); +} + future> EnvironmentsTracingConnection::LoadSnapshot( @@ -274,6 +369,29 @@ EnvironmentsTracingConnection::LoadSnapshot( return internal::EndSpan(std::move(span), child_->LoadSnapshot(request)); } +StatusOr +EnvironmentsTracingConnection::LoadSnapshot( + ExperimentalTag, NoAwaitTag, + google::cloud::orchestration::airflow::service::v1:: + LoadSnapshotRequest const& request) { + auto span = + internal::MakeSpan("composer_v1::EnvironmentsConnection::LoadSnapshot"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->LoadSnapshot(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +EnvironmentsTracingConnection::LoadSnapshot( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = + internal::MakeSpan("composer_v1::EnvironmentsConnection::LoadSnapshot"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->LoadSnapshot(ExperimentalTag{}, operation)); +} + future> EnvironmentsTracingConnection::DatabaseFailover( @@ -285,6 +403,30 @@ EnvironmentsTracingConnection::DatabaseFailover( return internal::EndSpan(std::move(span), child_->DatabaseFailover(request)); } +StatusOr +EnvironmentsTracingConnection::DatabaseFailover( + ExperimentalTag, NoAwaitTag, + google::cloud::orchestration::airflow::service::v1:: + DatabaseFailoverRequest const& request) { + auto span = internal::MakeSpan( + "composer_v1::EnvironmentsConnection::DatabaseFailover"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->DatabaseFailover(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +EnvironmentsTracingConnection::DatabaseFailover( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "composer_v1::EnvironmentsConnection::DatabaseFailover"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->DatabaseFailover(ExperimentalTag{}, operation)); +} + StatusOr EnvironmentsTracingConnection::FetchDatabaseProperties( diff --git a/google/cloud/composer/v1/internal/environments_tracing_connection.h b/google/cloud/composer/v1/internal/environments_tracing_connection.h index db1384284abd5..21bdc689081ff 100644 --- a/google/cloud/composer/v1/internal/environments_tracing_connection.h +++ b/google/cloud/composer/v1/internal/environments_tracing_connection.h @@ -45,6 +45,16 @@ class EnvironmentsTracingConnection CreateEnvironment(google::cloud::orchestration::airflow::service::v1:: CreateEnvironmentRequest const& request) override; + StatusOr CreateEnvironment( + ExperimentalTag, NoAwaitTag, + google::cloud::orchestration::airflow::service::v1:: + CreateEnvironmentRequest const& request) override; + + future< + StatusOr> + CreateEnvironment(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetEnvironment(google::cloud::orchestration::airflow::service::v1:: GetEnvironmentRequest const& request) override; @@ -58,11 +68,31 @@ class EnvironmentsTracingConnection UpdateEnvironment(google::cloud::orchestration::airflow::service::v1:: UpdateEnvironmentRequest const& request) override; + StatusOr UpdateEnvironment( + ExperimentalTag, NoAwaitTag, + google::cloud::orchestration::airflow::service::v1:: + UpdateEnvironmentRequest const& request) override; + + future< + StatusOr> + UpdateEnvironment(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteEnvironment(google::cloud::orchestration::airflow::service::v1:: DeleteEnvironmentRequest const& request) override; + StatusOr DeleteEnvironment( + ExperimentalTag, NoAwaitTag, + google::cloud::orchestration::airflow::service::v1:: + DeleteEnvironmentRequest const& request) override; + + future> + DeleteEnvironment(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr ExecuteAirflowCommand( @@ -146,16 +176,46 @@ class EnvironmentsTracingConnection SaveSnapshot(google::cloud::orchestration::airflow::service::v1:: SaveSnapshotRequest const& request) override; + StatusOr SaveSnapshot( + ExperimentalTag, NoAwaitTag, + google::cloud::orchestration::airflow::service::v1:: + SaveSnapshotRequest const& request) override; + + future> + SaveSnapshot(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> LoadSnapshot(google::cloud::orchestration::airflow::service::v1:: LoadSnapshotRequest const& request) override; + StatusOr LoadSnapshot( + ExperimentalTag, NoAwaitTag, + google::cloud::orchestration::airflow::service::v1:: + LoadSnapshotRequest const& request) override; + + future> + LoadSnapshot(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DatabaseFailover(google::cloud::orchestration::airflow::service::v1:: DatabaseFailoverRequest const& request) override; + StatusOr DatabaseFailover( + ExperimentalTag, NoAwaitTag, + google::cloud::orchestration::airflow::service::v1:: + DatabaseFailoverRequest const& request) override; + + future> + DatabaseFailover(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr FetchDatabaseProperties( diff --git a/google/cloud/composer/v1/mocks/mock_environments_connection.h b/google/cloud/composer/v1/mocks/mock_environments_connection.h index 9ca7cc9cbb366..343576189440b 100644 --- a/google/cloud/composer/v1/mocks/mock_environments_connection.h +++ b/google/cloud/composer/v1/mocks/mock_environments_connection.h @@ -54,6 +54,19 @@ class MockEnvironmentsConnection : public composer_v1::EnvironmentsConnection { CreateEnvironmentRequest const& request), (override)); + MOCK_METHOD(StatusOr, CreateEnvironment, + (ExperimentalTag, NoAwaitTag, + google::cloud::orchestration::airflow::service::v1:: + CreateEnvironmentRequest const& request), + (override)); + + MOCK_METHOD( + future>, + CreateEnvironment, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr, GetEnvironment, @@ -77,6 +90,19 @@ class MockEnvironmentsConnection : public composer_v1::EnvironmentsConnection { UpdateEnvironmentRequest const& request), (override)); + MOCK_METHOD(StatusOr, UpdateEnvironment, + (ExperimentalTag, NoAwaitTag, + google::cloud::orchestration::airflow::service::v1:: + UpdateEnvironmentRequest const& request), + (override)); + + MOCK_METHOD( + future>, + UpdateEnvironment, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, DeleteEnvironment, @@ -84,6 +110,19 @@ class MockEnvironmentsConnection : public composer_v1::EnvironmentsConnection { DeleteEnvironmentRequest const& request), (override)); + MOCK_METHOD(StatusOr, DeleteEnvironment, + (ExperimentalTag, NoAwaitTag, + google::cloud::orchestration::airflow::service::v1:: + DeleteEnvironmentRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteEnvironment, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(StatusOr, ExecuteAirflowCommand, @@ -186,6 +225,19 @@ class MockEnvironmentsConnection : public composer_v1::EnvironmentsConnection { SaveSnapshotRequest const& request), (override)); + MOCK_METHOD(StatusOr, SaveSnapshot, + (ExperimentalTag, NoAwaitTag, + google::cloud::orchestration::airflow::service::v1:: + SaveSnapshotRequest const& request), + (override)); + + MOCK_METHOD(future>, + SaveSnapshot, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, LoadSnapshot, @@ -193,6 +245,19 @@ class MockEnvironmentsConnection : public composer_v1::EnvironmentsConnection { LoadSnapshotRequest const& request), (override)); + MOCK_METHOD(StatusOr, LoadSnapshot, + (ExperimentalTag, NoAwaitTag, + google::cloud::orchestration::airflow::service::v1:: + LoadSnapshotRequest const& request), + (override)); + + MOCK_METHOD(future>, + LoadSnapshot, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, DatabaseFailover, @@ -200,6 +265,19 @@ class MockEnvironmentsConnection : public composer_v1::EnvironmentsConnection { DatabaseFailoverRequest const& request), (override)); + MOCK_METHOD(StatusOr, DatabaseFailover, + (ExperimentalTag, NoAwaitTag, + google::cloud::orchestration::airflow::service::v1:: + DatabaseFailoverRequest const& request), + (override)); + + MOCK_METHOD(future>, + DatabaseFailover, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(StatusOr, FetchDatabaseProperties, diff --git a/google/cloud/compute/accelerator_types/v1/accelerator_types_connection.h b/google/cloud/compute/accelerator_types/v1/accelerator_types_connection.h index a02435242f742..84aeac795b233 100644 --- a/google/cloud/compute/accelerator_types/v1/accelerator_types_connection.h +++ b/google/cloud/compute/accelerator_types/v1/accelerator_types_connection.h @@ -22,6 +22,7 @@ #include "google/cloud/compute/accelerator_types/v1/accelerator_types_connection_idempotency_policy.h" #include "google/cloud/compute/accelerator_types/v1/internal/accelerator_types_retry_traits.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/internal/retry_policy_impl.h" #include "google/cloud/options.h" #include "google/cloud/status_or.h" diff --git a/google/cloud/compute/addresses/v1/addresses_connection.cc b/google/cloud/compute/addresses/v1/addresses_connection.cc index 7c35f19a18309..f1554acf3d6f5 100644 --- a/google/cloud/compute/addresses/v1/addresses_connection.cc +++ b/google/cloud/compute/addresses/v1/addresses_connection.cc @@ -54,6 +54,22 @@ AddressesConnection::DeleteAddress( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +AddressesConnection::DeleteAddress( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::addresses::v1::DeleteAddressRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +AddressesConnection::DeleteAddress( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr AddressesConnection::GetAddress( google::cloud::cpp::compute::addresses::v1::GetAddressRequest const&) { @@ -68,6 +84,22 @@ AddressesConnection::InsertAddress( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +AddressesConnection::InsertAddress( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::addresses::v1::InsertAddressRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +AddressesConnection::InsertAddress( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StreamRange AddressesConnection::ListAddresses( google::cloud::cpp::compute::addresses::v1:: @@ -84,6 +116,21 @@ AddressesConnection::Move( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr AddressesConnection::Move( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::addresses::v1::MoveRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +AddressesConnection::Move(ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> AddressesConnection::SetLabels( google::cloud::cpp::compute::addresses::v1::SetLabelsRequest const&) { @@ -92,6 +139,22 @@ AddressesConnection::SetLabels( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +AddressesConnection::SetLabels( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::addresses::v1::SetLabelsRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +AddressesConnection::SetLabels( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace compute_addresses_v1 } // namespace cloud diff --git a/google/cloud/compute/addresses/v1/addresses_connection.h b/google/cloud/compute/addresses/v1/addresses_connection.h index 89cbb4bfe1e62..2e244556c5d74 100644 --- a/google/cloud/compute/addresses/v1/addresses_connection.h +++ b/google/cloud/compute/addresses/v1/addresses_connection.h @@ -22,8 +22,10 @@ #include "google/cloud/compute/addresses/v1/addresses_connection_idempotency_policy.h" #include "google/cloud/compute/addresses/v1/internal/addresses_retry_traits.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/internal/retry_policy_impl.h" +#include "google/cloud/no_await_tag.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" #include "google/cloud/status_or.h" @@ -194,6 +196,15 @@ class AddressesConnection { google::cloud::cpp::compute::addresses::v1::DeleteAddressRequest const& request); + virtual StatusOr DeleteAddress( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::addresses::v1::DeleteAddressRequest const& + request); + + virtual future> + DeleteAddress(ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual StatusOr GetAddress( google::cloud::cpp::compute::addresses::v1::GetAddressRequest const& request); @@ -203,15 +214,41 @@ class AddressesConnection { google::cloud::cpp::compute::addresses::v1::InsertAddressRequest const& request); + virtual StatusOr InsertAddress( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::addresses::v1::InsertAddressRequest const& + request); + + virtual future> + InsertAddress(ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual StreamRange ListAddresses( google::cloud::cpp::compute::addresses::v1::ListAddressesRequest request); virtual future> Move( google::cloud::cpp::compute::addresses::v1::MoveRequest const& request); + virtual StatusOr Move( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::addresses::v1::MoveRequest const& request); + + virtual future> Move( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual future> SetLabels(google::cloud::cpp::compute::addresses::v1::SetLabelsRequest const& request); + + virtual StatusOr SetLabels( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::addresses::v1::SetLabelsRequest const& + request); + + virtual future> + SetLabels(ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); }; GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END diff --git a/google/cloud/compute/addresses/v1/internal/addresses_rest_connection_impl.cc b/google/cloud/compute/addresses/v1/internal/addresses_rest_connection_impl.cc index 373d1c3f5adb4..b02532ff31143 100644 --- a/google/cloud/compute/addresses/v1/internal/addresses_rest_connection_impl.cc +++ b/google/cloud/compute/addresses/v1/internal/addresses_rest_connection_impl.cc @@ -23,6 +23,7 @@ #include "google/cloud/internal/async_rest_long_running_operation_custom.h" #include "google/cloud/internal/extract_long_running_result.h" #include "google/cloud/internal/pagination_range.h" +#include "google/cloud/internal/rest_lro_helpers.h" #include "google/cloud/internal/rest_retry_loop.h" #include "google/cloud/rest_options.h" #include @@ -142,6 +143,79 @@ AddressesRestConnectionImpl::DeleteAddress( }); } +StatusOr +AddressesRestConnectionImpl::DeleteAddress( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::addresses::v1::DeleteAddressRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteAddress(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::addresses::v1:: + DeleteAddressRequest const& request) { + return stub_->DeleteAddress(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +AddressesRestConnectionImpl::DeleteAddress( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::region_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }); +} + StatusOr AddressesRestConnectionImpl::GetAddress( google::cloud::cpp::compute::addresses::v1::GetAddressRequest const& @@ -219,6 +293,79 @@ AddressesRestConnectionImpl::InsertAddress( }); } +StatusOr +AddressesRestConnectionImpl::InsertAddress( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::addresses::v1::InsertAddressRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->InsertAddress(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::addresses::v1:: + InsertAddressRequest const& request) { + return stub_->InsertAddress(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +AddressesRestConnectionImpl::InsertAddress( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::region_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }); +} + StreamRange AddressesRestConnectionImpl::ListAddresses( google::cloud::cpp::compute::addresses::v1::ListAddressesRequest request) { @@ -314,6 +461,78 @@ AddressesRestConnectionImpl::Move( }); } +StatusOr +AddressesRestConnectionImpl::Move( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::addresses::v1::MoveRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->Move(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::addresses::v1::MoveRequest const& + request) { + return stub_->Move(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +AddressesRestConnectionImpl::Move( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::region_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }); +} + future> AddressesRestConnectionImpl::SetLabels( google::cloud::cpp::compute::addresses::v1::SetLabelsRequest const& @@ -375,6 +594,79 @@ AddressesRestConnectionImpl::SetLabels( }); } +StatusOr +AddressesRestConnectionImpl::SetLabels( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::addresses::v1::SetLabelsRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->SetLabels(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::addresses::v1::SetLabelsRequest const& + request) { + return stub_->SetLabels(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +AddressesRestConnectionImpl::SetLabels( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::region_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace compute_addresses_v1_internal } // namespace cloud diff --git a/google/cloud/compute/addresses/v1/internal/addresses_rest_connection_impl.h b/google/cloud/compute/addresses/v1/internal/addresses_rest_connection_impl.h index 3d1ba3058404e..6311422682df1 100644 --- a/google/cloud/compute/addresses/v1/internal/addresses_rest_connection_impl.h +++ b/google/cloud/compute/addresses/v1/internal/addresses_rest_connection_impl.h @@ -60,6 +60,15 @@ class AddressesRestConnectionImpl google::cloud::cpp::compute::addresses::v1::DeleteAddressRequest const& request) override; + StatusOr DeleteAddress( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::addresses::v1::DeleteAddressRequest const& + request) override; + + future> DeleteAddress( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StatusOr GetAddress( google::cloud::cpp::compute::addresses::v1::GetAddressRequest const& request) override; @@ -68,6 +77,15 @@ class AddressesRestConnectionImpl google::cloud::cpp::compute::addresses::v1::InsertAddressRequest const& request) override; + StatusOr InsertAddress( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::addresses::v1::InsertAddressRequest const& + request) override; + + future> InsertAddress( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StreamRange ListAddresses( google::cloud::cpp::compute::addresses::v1::ListAddressesRequest request) override; @@ -76,10 +94,28 @@ class AddressesRestConnectionImpl google::cloud::cpp::compute::addresses::v1::MoveRequest const& request) override; + StatusOr Move( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::addresses::v1::MoveRequest const& request) + override; + + future> Move( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> SetLabels( google::cloud::cpp::compute::addresses::v1::SetLabelsRequest const& request) override; + StatusOr SetLabels( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::addresses::v1::SetLabelsRequest const& + request) override; + + future> SetLabels( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + private: static std::unique_ptr retry_policy(Options const& options) { diff --git a/google/cloud/compute/addresses/v1/internal/addresses_tracing_connection.cc b/google/cloud/compute/addresses/v1/internal/addresses_tracing_connection.cc index 193e7e09bcd36..00a137fdb4d95 100644 --- a/google/cloud/compute/addresses/v1/internal/addresses_tracing_connection.cc +++ b/google/cloud/compute/addresses/v1/internal/addresses_tracing_connection.cc @@ -57,6 +57,29 @@ AddressesTracingConnection::DeleteAddress( return internal::EndSpan(std::move(span), child_->DeleteAddress(request)); } +StatusOr +AddressesTracingConnection::DeleteAddress( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::addresses::v1::DeleteAddressRequest const& + request) { + auto span = internal::MakeSpan( + "compute_addresses_v1::AddressesConnection::DeleteAddress"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->DeleteAddress(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +AddressesTracingConnection::DeleteAddress( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_addresses_v1::AddressesConnection::DeleteAddress"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->DeleteAddress(ExperimentalTag{}, operation)); +} + StatusOr AddressesTracingConnection::GetAddress( google::cloud::cpp::compute::addresses::v1::GetAddressRequest const& @@ -77,6 +100,29 @@ AddressesTracingConnection::InsertAddress( return internal::EndSpan(std::move(span), child_->InsertAddress(request)); } +StatusOr +AddressesTracingConnection::InsertAddress( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::addresses::v1::InsertAddressRequest const& + request) { + auto span = internal::MakeSpan( + "compute_addresses_v1::AddressesConnection::InsertAddress"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->InsertAddress(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +AddressesTracingConnection::InsertAddress( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_addresses_v1::AddressesConnection::InsertAddress"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->InsertAddress(ExperimentalTag{}, operation)); +} + StreamRange AddressesTracingConnection::ListAddresses( google::cloud::cpp::compute::addresses::v1::ListAddressesRequest request) { @@ -97,6 +143,28 @@ AddressesTracingConnection::Move( return internal::EndSpan(std::move(span), child_->Move(request)); } +StatusOr +AddressesTracingConnection::Move( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::addresses::v1::MoveRequest const& request) { + auto span = + internal::MakeSpan("compute_addresses_v1::AddressesConnection::Move"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->Move(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +AddressesTracingConnection::Move( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = + internal::MakeSpan("compute_addresses_v1::AddressesConnection::Move"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->Move(ExperimentalTag{}, operation)); +} + future> AddressesTracingConnection::SetLabels( google::cloud::cpp::compute::addresses::v1::SetLabelsRequest const& @@ -107,6 +175,29 @@ AddressesTracingConnection::SetLabels( return internal::EndSpan(std::move(span), child_->SetLabels(request)); } +StatusOr +AddressesTracingConnection::SetLabels( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::addresses::v1::SetLabelsRequest const& + request) { + auto span = internal::MakeSpan( + "compute_addresses_v1::AddressesConnection::SetLabels"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->SetLabels(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +AddressesTracingConnection::SetLabels( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_addresses_v1::AddressesConnection::SetLabels"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->SetLabels(ExperimentalTag{}, operation)); +} + #endif // GOOGLE_CLOUD_CPP_HAVE_OPENTELEMETRY std::shared_ptr diff --git a/google/cloud/compute/addresses/v1/internal/addresses_tracing_connection.h b/google/cloud/compute/addresses/v1/internal/addresses_tracing_connection.h index bb6c2dca744fa..7a73571fd0dc9 100644 --- a/google/cloud/compute/addresses/v1/internal/addresses_tracing_connection.h +++ b/google/cloud/compute/addresses/v1/internal/addresses_tracing_connection.h @@ -50,6 +50,15 @@ class AddressesTracingConnection google::cloud::cpp::compute::addresses::v1::DeleteAddressRequest const& request) override; + StatusOr DeleteAddress( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::addresses::v1::DeleteAddressRequest const& + request) override; + + future> DeleteAddress( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StatusOr GetAddress( google::cloud::cpp::compute::addresses::v1::GetAddressRequest const& request) override; @@ -58,6 +67,15 @@ class AddressesTracingConnection google::cloud::cpp::compute::addresses::v1::InsertAddressRequest const& request) override; + StatusOr InsertAddress( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::addresses::v1::InsertAddressRequest const& + request) override; + + future> InsertAddress( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StreamRange ListAddresses( google::cloud::cpp::compute::addresses::v1::ListAddressesRequest request) override; @@ -66,10 +84,28 @@ class AddressesTracingConnection google::cloud::cpp::compute::addresses::v1::MoveRequest const& request) override; + StatusOr Move( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::addresses::v1::MoveRequest const& request) + override; + + future> Move( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> SetLabels( google::cloud::cpp::compute::addresses::v1::SetLabelsRequest const& request) override; + StatusOr SetLabels( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::addresses::v1::SetLabelsRequest const& + request) override; + + future> SetLabels( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + private: std::shared_ptr child_; }; diff --git a/google/cloud/compute/addresses/v1/mocks/mock_addresses_connection.h b/google/cloud/compute/addresses/v1/mocks/mock_addresses_connection.h index 6095924888dad..e80bd46c93c8f 100644 --- a/google/cloud/compute/addresses/v1/mocks/mock_addresses_connection.h +++ b/google/cloud/compute/addresses/v1/mocks/mock_addresses_connection.h @@ -62,6 +62,19 @@ class MockAddressesConnection request), (override)); + MOCK_METHOD( + StatusOr, DeleteAddress, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::addresses::v1::DeleteAddressRequest const& + request), + (override)); + + MOCK_METHOD(future>, + DeleteAddress, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr, GetAddress, (google::cloud::cpp::compute::addresses::v1::GetAddressRequest const& @@ -75,6 +88,19 @@ class MockAddressesConnection request), (override)); + MOCK_METHOD( + StatusOr, InsertAddress, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::addresses::v1::InsertAddressRequest const& + request), + (override)); + + MOCK_METHOD(future>, + InsertAddress, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD((StreamRange), ListAddresses, (google::cloud::cpp::compute::addresses::v1::ListAddressesRequest @@ -86,11 +112,36 @@ class MockAddressesConnection (google::cloud::cpp::compute::addresses::v1::MoveRequest const& request), (override)); + MOCK_METHOD( + StatusOr, Move, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::addresses::v1::MoveRequest const& request), + (override)); + + MOCK_METHOD(future>, + Move, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD( future>, SetLabels, (google::cloud::cpp::compute::addresses::v1::SetLabelsRequest const& request), (override)); + + MOCK_METHOD( + StatusOr, SetLabels, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::addresses::v1::SetLabelsRequest const& + request), + (override)); + + MOCK_METHOD(future>, + SetLabels, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); }; GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END diff --git a/google/cloud/compute/autoscalers/v1/autoscalers_connection.cc b/google/cloud/compute/autoscalers/v1/autoscalers_connection.cc index a182926f4099f..8b366ca8841e0 100644 --- a/google/cloud/compute/autoscalers/v1/autoscalers_connection.cc +++ b/google/cloud/compute/autoscalers/v1/autoscalers_connection.cc @@ -55,6 +55,23 @@ AutoscalersConnection::DeleteAutoscaler( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +AutoscalersConnection::DeleteAutoscaler( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::autoscalers::v1:: + DeleteAutoscalerRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +AutoscalersConnection::DeleteAutoscaler( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr AutoscalersConnection::GetAutoscaler( google::cloud::cpp::compute::autoscalers::v1::GetAutoscalerRequest const&) { @@ -70,6 +87,23 @@ AutoscalersConnection::InsertAutoscaler( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +AutoscalersConnection::InsertAutoscaler( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::autoscalers::v1:: + InsertAutoscalerRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +AutoscalersConnection::InsertAutoscaler( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StreamRange AutoscalersConnection::ListAutoscalers( google::cloud::cpp::compute::autoscalers::v1:: @@ -87,6 +121,23 @@ AutoscalersConnection::PatchAutoscaler( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +AutoscalersConnection::PatchAutoscaler( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::autoscalers::v1:: + PatchAutoscalerRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +AutoscalersConnection::PatchAutoscaler( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> AutoscalersConnection::UpdateAutoscaler( google::cloud::cpp::compute::autoscalers::v1:: @@ -96,6 +147,23 @@ AutoscalersConnection::UpdateAutoscaler( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +AutoscalersConnection::UpdateAutoscaler( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::autoscalers::v1:: + UpdateAutoscalerRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +AutoscalersConnection::UpdateAutoscaler( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace compute_autoscalers_v1 } // namespace cloud diff --git a/google/cloud/compute/autoscalers/v1/autoscalers_connection.h b/google/cloud/compute/autoscalers/v1/autoscalers_connection.h index b1f83ae423853..fbb1a693bf892 100644 --- a/google/cloud/compute/autoscalers/v1/autoscalers_connection.h +++ b/google/cloud/compute/autoscalers/v1/autoscalers_connection.h @@ -22,8 +22,10 @@ #include "google/cloud/compute/autoscalers/v1/autoscalers_connection_idempotency_policy.h" #include "google/cloud/compute/autoscalers/v1/internal/autoscalers_retry_traits.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/internal/retry_policy_impl.h" +#include "google/cloud/no_await_tag.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" #include "google/cloud/status_or.h" @@ -192,6 +194,15 @@ class AutoscalersConnection { DeleteAutoscaler(google::cloud::cpp::compute::autoscalers::v1:: DeleteAutoscalerRequest const& request); + virtual StatusOr DeleteAutoscaler( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::autoscalers::v1:: + DeleteAutoscalerRequest const& request); + + virtual future> + DeleteAutoscaler(ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual StatusOr GetAutoscaler( google::cloud::cpp::compute::autoscalers::v1::GetAutoscalerRequest const& request); @@ -200,6 +211,15 @@ class AutoscalersConnection { InsertAutoscaler(google::cloud::cpp::compute::autoscalers::v1:: InsertAutoscalerRequest const& request); + virtual StatusOr InsertAutoscaler( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::autoscalers::v1:: + InsertAutoscalerRequest const& request); + + virtual future> + InsertAutoscaler(ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual StreamRange ListAutoscalers( google::cloud::cpp::compute::autoscalers::v1::ListAutoscalersRequest @@ -209,9 +229,27 @@ class AutoscalersConnection { PatchAutoscaler(google::cloud::cpp::compute::autoscalers::v1:: PatchAutoscalerRequest const& request); + virtual StatusOr PatchAutoscaler( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::autoscalers::v1:: + PatchAutoscalerRequest const& request); + + virtual future> + PatchAutoscaler(ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual future> UpdateAutoscaler(google::cloud::cpp::compute::autoscalers::v1:: UpdateAutoscalerRequest const& request); + + virtual StatusOr UpdateAutoscaler( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::autoscalers::v1:: + UpdateAutoscalerRequest const& request); + + virtual future> + UpdateAutoscaler(ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); }; GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END diff --git a/google/cloud/compute/autoscalers/v1/internal/autoscalers_rest_connection_impl.cc b/google/cloud/compute/autoscalers/v1/internal/autoscalers_rest_connection_impl.cc index cb49f4ea26da1..aa96111e7f0a8 100644 --- a/google/cloud/compute/autoscalers/v1/internal/autoscalers_rest_connection_impl.cc +++ b/google/cloud/compute/autoscalers/v1/internal/autoscalers_rest_connection_impl.cc @@ -23,6 +23,7 @@ #include "google/cloud/internal/async_rest_long_running_operation_custom.h" #include "google/cloud/internal/extract_long_running_result.h" #include "google/cloud/internal/pagination_range.h" +#include "google/cloud/internal/rest_lro_helpers.h" #include "google/cloud/internal/rest_retry_loop.h" #include "google/cloud/rest_options.h" #include @@ -144,6 +145,79 @@ AutoscalersRestConnectionImpl::DeleteAutoscaler( }); } +StatusOr +AutoscalersRestConnectionImpl::DeleteAutoscaler( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::autoscalers::v1::DeleteAutoscalerRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteAutoscaler(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::autoscalers::v1:: + DeleteAutoscalerRequest const& request) { + return stub_->DeleteAutoscaler(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +AutoscalersRestConnectionImpl::DeleteAutoscaler( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::zone_operations::v1::DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::zone_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::zone_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation]( + std::string const&, + google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest& + r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_zone(info.zone); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::zone_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_zone(info.zone); + r.set_operation(info.operation); + }); +} + StatusOr AutoscalersRestConnectionImpl::GetAutoscaler( google::cloud::cpp::compute::autoscalers::v1::GetAutoscalerRequest const& @@ -220,6 +294,79 @@ AutoscalersRestConnectionImpl::InsertAutoscaler( }); } +StatusOr +AutoscalersRestConnectionImpl::InsertAutoscaler( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::autoscalers::v1::InsertAutoscalerRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->InsertAutoscaler(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::autoscalers::v1:: + InsertAutoscalerRequest const& request) { + return stub_->InsertAutoscaler(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +AutoscalersRestConnectionImpl::InsertAutoscaler( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::zone_operations::v1::DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::zone_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::zone_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation]( + std::string const&, + google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest& + r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_zone(info.zone); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::zone_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_zone(info.zone); + r.set_operation(info.operation); + }); +} + StreamRange AutoscalersRestConnectionImpl::ListAutoscalers( google::cloud::cpp::compute::autoscalers::v1::ListAutoscalersRequest @@ -316,6 +463,79 @@ AutoscalersRestConnectionImpl::PatchAutoscaler( }); } +StatusOr +AutoscalersRestConnectionImpl::PatchAutoscaler( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::autoscalers::v1::PatchAutoscalerRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->PatchAutoscaler(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::autoscalers::v1:: + PatchAutoscalerRequest const& request) { + return stub_->PatchAutoscaler(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +AutoscalersRestConnectionImpl::PatchAutoscaler( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::zone_operations::v1::DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::zone_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::zone_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation]( + std::string const&, + google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest& + r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_zone(info.zone); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::zone_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_zone(info.zone); + r.set_operation(info.operation); + }); +} + future> AutoscalersRestConnectionImpl::UpdateAutoscaler( google::cloud::cpp::compute::autoscalers::v1::UpdateAutoscalerRequest const& @@ -376,6 +596,79 @@ AutoscalersRestConnectionImpl::UpdateAutoscaler( }); } +StatusOr +AutoscalersRestConnectionImpl::UpdateAutoscaler( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::autoscalers::v1::UpdateAutoscalerRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UpdateAutoscaler(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::autoscalers::v1:: + UpdateAutoscalerRequest const& request) { + return stub_->UpdateAutoscaler(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +AutoscalersRestConnectionImpl::UpdateAutoscaler( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::zone_operations::v1::DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::zone_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::zone_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation]( + std::string const&, + google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest& + r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_zone(info.zone); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::zone_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_zone(info.zone); + r.set_operation(info.operation); + }); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace compute_autoscalers_v1_internal } // namespace cloud diff --git a/google/cloud/compute/autoscalers/v1/internal/autoscalers_rest_connection_impl.h b/google/cloud/compute/autoscalers/v1/internal/autoscalers_rest_connection_impl.h index 479b95489a6da..a613617f9bb93 100644 --- a/google/cloud/compute/autoscalers/v1/internal/autoscalers_rest_connection_impl.h +++ b/google/cloud/compute/autoscalers/v1/internal/autoscalers_rest_connection_impl.h @@ -61,6 +61,15 @@ class AutoscalersRestConnectionImpl google::cloud::cpp::compute::autoscalers::v1:: DeleteAutoscalerRequest const& request) override; + StatusOr DeleteAutoscaler( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::autoscalers::v1:: + DeleteAutoscalerRequest const& request) override; + + future> DeleteAutoscaler( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StatusOr GetAutoscaler( google::cloud::cpp::compute::autoscalers::v1::GetAutoscalerRequest const& request) override; @@ -69,6 +78,15 @@ class AutoscalersRestConnectionImpl google::cloud::cpp::compute::autoscalers::v1:: InsertAutoscalerRequest const& request) override; + StatusOr InsertAutoscaler( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::autoscalers::v1:: + InsertAutoscalerRequest const& request) override; + + future> InsertAutoscaler( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StreamRange ListAutoscalers( google::cloud::cpp::compute::autoscalers::v1::ListAutoscalersRequest request) override; @@ -77,10 +95,28 @@ class AutoscalersRestConnectionImpl google::cloud::cpp::compute::autoscalers::v1:: PatchAutoscalerRequest const& request) override; + StatusOr PatchAutoscaler( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::autoscalers::v1:: + PatchAutoscalerRequest const& request) override; + + future> PatchAutoscaler( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> UpdateAutoscaler( google::cloud::cpp::compute::autoscalers::v1:: UpdateAutoscalerRequest const& request) override; + StatusOr UpdateAutoscaler( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::autoscalers::v1:: + UpdateAutoscalerRequest const& request) override; + + future> UpdateAutoscaler( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + private: static std::unique_ptr retry_policy(Options const& options) { diff --git a/google/cloud/compute/autoscalers/v1/internal/autoscalers_tracing_connection.cc b/google/cloud/compute/autoscalers/v1/internal/autoscalers_tracing_connection.cc index 824361aef58fc..023095741141d 100644 --- a/google/cloud/compute/autoscalers/v1/internal/autoscalers_tracing_connection.cc +++ b/google/cloud/compute/autoscalers/v1/internal/autoscalers_tracing_connection.cc @@ -58,6 +58,30 @@ AutoscalersTracingConnection::DeleteAutoscaler( return internal::EndSpan(std::move(span), child_->DeleteAutoscaler(request)); } +StatusOr +AutoscalersTracingConnection::DeleteAutoscaler( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::autoscalers::v1::DeleteAutoscalerRequest const& + request) { + auto span = internal::MakeSpan( + "compute_autoscalers_v1::AutoscalersConnection::DeleteAutoscaler"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->DeleteAutoscaler(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +AutoscalersTracingConnection::DeleteAutoscaler( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_autoscalers_v1::AutoscalersConnection::DeleteAutoscaler"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->DeleteAutoscaler(ExperimentalTag{}, operation)); +} + StatusOr AutoscalersTracingConnection::GetAutoscaler( google::cloud::cpp::compute::autoscalers::v1::GetAutoscalerRequest const& @@ -78,6 +102,30 @@ AutoscalersTracingConnection::InsertAutoscaler( return internal::EndSpan(std::move(span), child_->InsertAutoscaler(request)); } +StatusOr +AutoscalersTracingConnection::InsertAutoscaler( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::autoscalers::v1::InsertAutoscalerRequest const& + request) { + auto span = internal::MakeSpan( + "compute_autoscalers_v1::AutoscalersConnection::InsertAutoscaler"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->InsertAutoscaler(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +AutoscalersTracingConnection::InsertAutoscaler( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_autoscalers_v1::AutoscalersConnection::InsertAutoscaler"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->InsertAutoscaler(ExperimentalTag{}, operation)); +} + StreamRange AutoscalersTracingConnection::ListAutoscalers( google::cloud::cpp::compute::autoscalers::v1::ListAutoscalersRequest @@ -101,6 +149,29 @@ AutoscalersTracingConnection::PatchAutoscaler( return internal::EndSpan(std::move(span), child_->PatchAutoscaler(request)); } +StatusOr +AutoscalersTracingConnection::PatchAutoscaler( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::autoscalers::v1::PatchAutoscalerRequest const& + request) { + auto span = internal::MakeSpan( + "compute_autoscalers_v1::AutoscalersConnection::PatchAutoscaler"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->PatchAutoscaler(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +AutoscalersTracingConnection::PatchAutoscaler( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_autoscalers_v1::AutoscalersConnection::PatchAutoscaler"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->PatchAutoscaler(ExperimentalTag{}, operation)); +} + future> AutoscalersTracingConnection::UpdateAutoscaler( google::cloud::cpp::compute::autoscalers::v1::UpdateAutoscalerRequest const& @@ -111,6 +182,30 @@ AutoscalersTracingConnection::UpdateAutoscaler( return internal::EndSpan(std::move(span), child_->UpdateAutoscaler(request)); } +StatusOr +AutoscalersTracingConnection::UpdateAutoscaler( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::autoscalers::v1::UpdateAutoscalerRequest const& + request) { + auto span = internal::MakeSpan( + "compute_autoscalers_v1::AutoscalersConnection::UpdateAutoscaler"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->UpdateAutoscaler(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +AutoscalersTracingConnection::UpdateAutoscaler( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_autoscalers_v1::AutoscalersConnection::UpdateAutoscaler"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->UpdateAutoscaler(ExperimentalTag{}, operation)); +} + #endif // GOOGLE_CLOUD_CPP_HAVE_OPENTELEMETRY std::shared_ptr diff --git a/google/cloud/compute/autoscalers/v1/internal/autoscalers_tracing_connection.h b/google/cloud/compute/autoscalers/v1/internal/autoscalers_tracing_connection.h index 36378ce2febbc..260e65bc397bf 100644 --- a/google/cloud/compute/autoscalers/v1/internal/autoscalers_tracing_connection.h +++ b/google/cloud/compute/autoscalers/v1/internal/autoscalers_tracing_connection.h @@ -50,6 +50,15 @@ class AutoscalersTracingConnection google::cloud::cpp::compute::autoscalers::v1:: DeleteAutoscalerRequest const& request) override; + StatusOr DeleteAutoscaler( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::autoscalers::v1:: + DeleteAutoscalerRequest const& request) override; + + future> DeleteAutoscaler( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StatusOr GetAutoscaler( google::cloud::cpp::compute::autoscalers::v1::GetAutoscalerRequest const& request) override; @@ -58,6 +67,15 @@ class AutoscalersTracingConnection google::cloud::cpp::compute::autoscalers::v1:: InsertAutoscalerRequest const& request) override; + StatusOr InsertAutoscaler( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::autoscalers::v1:: + InsertAutoscalerRequest const& request) override; + + future> InsertAutoscaler( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StreamRange ListAutoscalers( google::cloud::cpp::compute::autoscalers::v1::ListAutoscalersRequest request) override; @@ -66,10 +84,28 @@ class AutoscalersTracingConnection google::cloud::cpp::compute::autoscalers::v1:: PatchAutoscalerRequest const& request) override; + StatusOr PatchAutoscaler( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::autoscalers::v1:: + PatchAutoscalerRequest const& request) override; + + future> PatchAutoscaler( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> UpdateAutoscaler( google::cloud::cpp::compute::autoscalers::v1:: UpdateAutoscalerRequest const& request) override; + StatusOr UpdateAutoscaler( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::autoscalers::v1:: + UpdateAutoscalerRequest const& request) override; + + future> UpdateAutoscaler( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + private: std::shared_ptr child_; }; diff --git a/google/cloud/compute/autoscalers/v1/mocks/mock_autoscalers_connection.h b/google/cloud/compute/autoscalers/v1/mocks/mock_autoscalers_connection.h index 588ae8d4badb6..af5721382c3de 100644 --- a/google/cloud/compute/autoscalers/v1/mocks/mock_autoscalers_connection.h +++ b/google/cloud/compute/autoscalers/v1/mocks/mock_autoscalers_connection.h @@ -62,6 +62,19 @@ class MockAutoscalersConnection DeleteAutoscalerRequest const& request), (override)); + MOCK_METHOD(StatusOr, + DeleteAutoscaler, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::autoscalers::v1:: + DeleteAutoscalerRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteAutoscaler, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr, GetAutoscaler, (google::cloud::cpp::compute::autoscalers::v1::GetAutoscalerRequest const& @@ -74,6 +87,19 @@ class MockAutoscalersConnection InsertAutoscalerRequest const& request), (override)); + MOCK_METHOD(StatusOr, + InsertAutoscaler, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::autoscalers::v1:: + InsertAutoscalerRequest const& request), + (override)); + + MOCK_METHOD(future>, + InsertAutoscaler, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD( (StreamRange), ListAutoscalers, @@ -87,11 +113,37 @@ class MockAutoscalersConnection PatchAutoscalerRequest const& request), (override)); + MOCK_METHOD(StatusOr, + PatchAutoscaler, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::autoscalers::v1:: + PatchAutoscalerRequest const& request), + (override)); + + MOCK_METHOD(future>, + PatchAutoscaler, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD(future>, UpdateAutoscaler, (google::cloud::cpp::compute::autoscalers::v1:: UpdateAutoscalerRequest const& request), (override)); + + MOCK_METHOD(StatusOr, + UpdateAutoscaler, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::autoscalers::v1:: + UpdateAutoscalerRequest const& request), + (override)); + + MOCK_METHOD(future>, + UpdateAutoscaler, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); }; GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END diff --git a/google/cloud/compute/backend_buckets/v1/backend_buckets_connection.cc b/google/cloud/compute/backend_buckets/v1/backend_buckets_connection.cc index 4b6b0255b54fd..2d0809e644429 100644 --- a/google/cloud/compute/backend_buckets/v1/backend_buckets_connection.cc +++ b/google/cloud/compute/backend_buckets/v1/backend_buckets_connection.cc @@ -45,6 +45,23 @@ BackendBucketsConnection::AddSignedUrlKey( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +BackendBucketsConnection::AddSignedUrlKey( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::backend_buckets::v1:: + AddSignedUrlKeyRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +BackendBucketsConnection::AddSignedUrlKey( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> BackendBucketsConnection::DeleteBackendBucket( google::cloud::cpp::compute::backend_buckets::v1:: @@ -54,6 +71,23 @@ BackendBucketsConnection::DeleteBackendBucket( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +BackendBucketsConnection::DeleteBackendBucket( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::backend_buckets::v1:: + DeleteBackendBucketRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +BackendBucketsConnection::DeleteBackendBucket( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> BackendBucketsConnection::DeleteSignedUrlKey( google::cloud::cpp::compute::backend_buckets::v1:: @@ -63,6 +97,23 @@ BackendBucketsConnection::DeleteSignedUrlKey( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +BackendBucketsConnection::DeleteSignedUrlKey( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::backend_buckets::v1:: + DeleteSignedUrlKeyRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +BackendBucketsConnection::DeleteSignedUrlKey( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr BackendBucketsConnection::GetBackendBucket( google::cloud::cpp::compute::backend_buckets::v1:: @@ -86,6 +137,23 @@ BackendBucketsConnection::InsertBackendBucket( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +BackendBucketsConnection::InsertBackendBucket( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::backend_buckets::v1:: + InsertBackendBucketRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +BackendBucketsConnection::InsertBackendBucket( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StreamRange BackendBucketsConnection::ListBackendBuckets( google::cloud::cpp::compute::backend_buckets::v1:: @@ -103,6 +171,23 @@ BackendBucketsConnection::PatchBackendBucket( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +BackendBucketsConnection::PatchBackendBucket( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::backend_buckets::v1:: + PatchBackendBucketRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +BackendBucketsConnection::PatchBackendBucket( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> BackendBucketsConnection::SetEdgeSecurityPolicy( google::cloud::cpp::compute::backend_buckets::v1:: @@ -112,6 +197,23 @@ BackendBucketsConnection::SetEdgeSecurityPolicy( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +BackendBucketsConnection::SetEdgeSecurityPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::backend_buckets::v1:: + SetEdgeSecurityPolicyRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +BackendBucketsConnection::SetEdgeSecurityPolicy( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr BackendBucketsConnection::SetIamPolicy( google::cloud::cpp::compute::backend_buckets::v1:: @@ -135,6 +237,23 @@ BackendBucketsConnection::UpdateBackendBucket( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +BackendBucketsConnection::UpdateBackendBucket( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::backend_buckets::v1:: + UpdateBackendBucketRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +BackendBucketsConnection::UpdateBackendBucket( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace compute_backend_buckets_v1 } // namespace cloud diff --git a/google/cloud/compute/backend_buckets/v1/backend_buckets_connection.h b/google/cloud/compute/backend_buckets/v1/backend_buckets_connection.h index 6f406d9d49762..fc5f0e5a978e1 100644 --- a/google/cloud/compute/backend_buckets/v1/backend_buckets_connection.h +++ b/google/cloud/compute/backend_buckets/v1/backend_buckets_connection.h @@ -22,8 +22,10 @@ #include "google/cloud/compute/backend_buckets/v1/backend_buckets_connection_idempotency_policy.h" #include "google/cloud/compute/backend_buckets/v1/internal/backend_buckets_retry_traits.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/internal/retry_policy_impl.h" +#include "google/cloud/no_await_tag.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" #include "google/cloud/status_or.h" @@ -189,14 +191,43 @@ class BackendBucketsConnection { AddSignedUrlKey(google::cloud::cpp::compute::backend_buckets::v1:: AddSignedUrlKeyRequest const& request); + virtual StatusOr AddSignedUrlKey( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::backend_buckets::v1:: + AddSignedUrlKeyRequest const& request); + + virtual future> + AddSignedUrlKey(ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual future> DeleteBackendBucket(google::cloud::cpp::compute::backend_buckets::v1:: DeleteBackendBucketRequest const& request); + virtual StatusOr + DeleteBackendBucket(ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::backend_buckets::v1:: + DeleteBackendBucketRequest const& request); + + virtual future> + DeleteBackendBucket( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual future> DeleteSignedUrlKey(google::cloud::cpp::compute::backend_buckets::v1:: DeleteSignedUrlKeyRequest const& request); + virtual StatusOr + DeleteSignedUrlKey(ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::backend_buckets::v1:: + DeleteSignedUrlKeyRequest const& request); + + virtual future> + DeleteSignedUrlKey( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual StatusOr GetBackendBucket(google::cloud::cpp::compute::backend_buckets::v1:: GetBackendBucketRequest const& request); @@ -209,6 +240,16 @@ class BackendBucketsConnection { InsertBackendBucket(google::cloud::cpp::compute::backend_buckets::v1:: InsertBackendBucketRequest const& request); + virtual StatusOr + InsertBackendBucket(ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::backend_buckets::v1:: + InsertBackendBucketRequest const& request); + + virtual future> + InsertBackendBucket( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual StreamRange ListBackendBuckets(google::cloud::cpp::compute::backend_buckets::v1:: ListBackendBucketsRequest request); @@ -217,10 +258,30 @@ class BackendBucketsConnection { PatchBackendBucket(google::cloud::cpp::compute::backend_buckets::v1:: PatchBackendBucketRequest const& request); + virtual StatusOr + PatchBackendBucket(ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::backend_buckets::v1:: + PatchBackendBucketRequest const& request); + + virtual future> + PatchBackendBucket( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual future> SetEdgeSecurityPolicy(google::cloud::cpp::compute::backend_buckets::v1:: SetEdgeSecurityPolicyRequest const& request); + virtual StatusOr + SetEdgeSecurityPolicy(ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::backend_buckets::v1:: + SetEdgeSecurityPolicyRequest const& request); + + virtual future> + SetEdgeSecurityPolicy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual StatusOr SetIamPolicy( google::cloud::cpp::compute::backend_buckets::v1:: SetIamPolicyRequest const& request); @@ -232,6 +293,16 @@ class BackendBucketsConnection { virtual future> UpdateBackendBucket(google::cloud::cpp::compute::backend_buckets::v1:: UpdateBackendBucketRequest const& request); + + virtual StatusOr + UpdateBackendBucket(ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::backend_buckets::v1:: + UpdateBackendBucketRequest const& request); + + virtual future> + UpdateBackendBucket( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); }; GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END diff --git a/google/cloud/compute/backend_buckets/v1/internal/backend_buckets_rest_connection_impl.cc b/google/cloud/compute/backend_buckets/v1/internal/backend_buckets_rest_connection_impl.cc index 51594b5038780..af1c26bbe04fa 100644 --- a/google/cloud/compute/backend_buckets/v1/internal/backend_buckets_rest_connection_impl.cc +++ b/google/cloud/compute/backend_buckets/v1/internal/backend_buckets_rest_connection_impl.cc @@ -23,6 +23,7 @@ #include "google/cloud/internal/async_rest_long_running_operation_custom.h" #include "google/cloud/internal/extract_long_running_result.h" #include "google/cloud/internal/pagination_range.h" +#include "google/cloud/internal/rest_lro_helpers.h" #include "google/cloud/internal/rest_retry_loop.h" #include "google/cloud/rest_options.h" #include @@ -101,6 +102,77 @@ BackendBucketsRestConnectionImpl::AddSignedUrlKey( }); } +StatusOr +BackendBucketsRestConnectionImpl::AddSignedUrlKey( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::backend_buckets::v1:: + AddSignedUrlKeyRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->AddSignedUrlKey(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::backend_buckets::v1:: + AddSignedUrlKeyRequest const& request) { + return stub_->AddSignedUrlKey(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +BackendBucketsRestConnectionImpl::AddSignedUrlKey( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::global_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }); +} + future> BackendBucketsRestConnectionImpl::DeleteBackendBucket( google::cloud::cpp::compute::backend_buckets::v1:: @@ -159,6 +231,77 @@ BackendBucketsRestConnectionImpl::DeleteBackendBucket( }); } +StatusOr +BackendBucketsRestConnectionImpl::DeleteBackendBucket( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::backend_buckets::v1:: + DeleteBackendBucketRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteBackendBucket(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::backend_buckets::v1:: + DeleteBackendBucketRequest const& request) { + return stub_->DeleteBackendBucket(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +BackendBucketsRestConnectionImpl::DeleteBackendBucket( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::global_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }); +} + future> BackendBucketsRestConnectionImpl::DeleteSignedUrlKey( google::cloud::cpp::compute::backend_buckets::v1:: @@ -217,6 +360,77 @@ BackendBucketsRestConnectionImpl::DeleteSignedUrlKey( }); } +StatusOr +BackendBucketsRestConnectionImpl::DeleteSignedUrlKey( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::backend_buckets::v1:: + DeleteSignedUrlKeyRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteSignedUrlKey(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::backend_buckets::v1:: + DeleteSignedUrlKeyRequest const& request) { + return stub_->DeleteSignedUrlKey(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +BackendBucketsRestConnectionImpl::DeleteSignedUrlKey( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::global_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }); +} + StatusOr BackendBucketsRestConnectionImpl::GetBackendBucket( google::cloud::cpp::compute::backend_buckets::v1:: @@ -307,6 +521,77 @@ BackendBucketsRestConnectionImpl::InsertBackendBucket( }); } +StatusOr +BackendBucketsRestConnectionImpl::InsertBackendBucket( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::backend_buckets::v1:: + InsertBackendBucketRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->InsertBackendBucket(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::backend_buckets::v1:: + InsertBackendBucketRequest const& request) { + return stub_->InsertBackendBucket(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +BackendBucketsRestConnectionImpl::InsertBackendBucket( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::global_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }); +} + StreamRange BackendBucketsRestConnectionImpl::ListBackendBuckets( google::cloud::cpp::compute::backend_buckets::v1::ListBackendBucketsRequest @@ -402,6 +687,77 @@ BackendBucketsRestConnectionImpl::PatchBackendBucket( }); } +StatusOr +BackendBucketsRestConnectionImpl::PatchBackendBucket( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::backend_buckets::v1:: + PatchBackendBucketRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->PatchBackendBucket(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::backend_buckets::v1:: + PatchBackendBucketRequest const& request) { + return stub_->PatchBackendBucket(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +BackendBucketsRestConnectionImpl::PatchBackendBucket( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::global_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }); +} + future> BackendBucketsRestConnectionImpl::SetEdgeSecurityPolicy( google::cloud::cpp::compute::backend_buckets::v1:: @@ -460,6 +816,77 @@ BackendBucketsRestConnectionImpl::SetEdgeSecurityPolicy( }); } +StatusOr +BackendBucketsRestConnectionImpl::SetEdgeSecurityPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::backend_buckets::v1:: + SetEdgeSecurityPolicyRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->SetEdgeSecurityPolicy(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::backend_buckets::v1:: + SetEdgeSecurityPolicyRequest const& request) { + return stub_->SetEdgeSecurityPolicy(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +BackendBucketsRestConnectionImpl::SetEdgeSecurityPolicy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::global_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }); +} + StatusOr BackendBucketsRestConnectionImpl::SetIamPolicy( google::cloud::cpp::compute::backend_buckets::v1::SetIamPolicyRequest const& @@ -550,6 +977,77 @@ BackendBucketsRestConnectionImpl::UpdateBackendBucket( }); } +StatusOr +BackendBucketsRestConnectionImpl::UpdateBackendBucket( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::backend_buckets::v1:: + UpdateBackendBucketRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UpdateBackendBucket(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::backend_buckets::v1:: + UpdateBackendBucketRequest const& request) { + return stub_->UpdateBackendBucket(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +BackendBucketsRestConnectionImpl::UpdateBackendBucket( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::global_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace compute_backend_buckets_v1_internal } // namespace cloud diff --git a/google/cloud/compute/backend_buckets/v1/internal/backend_buckets_rest_connection_impl.h b/google/cloud/compute/backend_buckets/v1/internal/backend_buckets_rest_connection_impl.h index ab05f5bf4af53..6e1f53600f6b2 100644 --- a/google/cloud/compute/backend_buckets/v1/internal/backend_buckets_rest_connection_impl.h +++ b/google/cloud/compute/backend_buckets/v1/internal/backend_buckets_rest_connection_impl.h @@ -56,14 +56,43 @@ class BackendBucketsRestConnectionImpl google::cloud::cpp::compute::backend_buckets::v1:: AddSignedUrlKeyRequest const& request) override; + StatusOr AddSignedUrlKey( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::backend_buckets::v1:: + AddSignedUrlKeyRequest const& request) override; + + future> AddSignedUrlKey( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> DeleteBackendBucket(google::cloud::cpp::compute::backend_buckets::v1:: DeleteBackendBucketRequest const& request) override; + StatusOr DeleteBackendBucket( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::backend_buckets::v1:: + DeleteBackendBucketRequest const& request) override; + + future> + DeleteBackendBucket( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> DeleteSignedUrlKey(google::cloud::cpp::compute::backend_buckets::v1:: DeleteSignedUrlKeyRequest const& request) override; + StatusOr DeleteSignedUrlKey( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::backend_buckets::v1:: + DeleteSignedUrlKeyRequest const& request) override; + + future> + DeleteSignedUrlKey( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StatusOr GetBackendBucket( google::cloud::cpp::compute::backend_buckets::v1:: GetBackendBucketRequest const& request) override; @@ -76,6 +105,16 @@ class BackendBucketsRestConnectionImpl InsertBackendBucket(google::cloud::cpp::compute::backend_buckets::v1:: InsertBackendBucketRequest const& request) override; + StatusOr InsertBackendBucket( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::backend_buckets::v1:: + InsertBackendBucketRequest const& request) override; + + future> + InsertBackendBucket( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StreamRange ListBackendBuckets(google::cloud::cpp::compute::backend_buckets::v1:: ListBackendBucketsRequest request) override; @@ -84,11 +123,31 @@ class BackendBucketsRestConnectionImpl PatchBackendBucket(google::cloud::cpp::compute::backend_buckets::v1:: PatchBackendBucketRequest const& request) override; + StatusOr PatchBackendBucket( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::backend_buckets::v1:: + PatchBackendBucketRequest const& request) override; + + future> + PatchBackendBucket( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> SetEdgeSecurityPolicy( google::cloud::cpp::compute::backend_buckets::v1:: SetEdgeSecurityPolicyRequest const& request) override; + StatusOr SetEdgeSecurityPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::backend_buckets::v1:: + SetEdgeSecurityPolicyRequest const& request) override; + + future> + SetEdgeSecurityPolicy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StatusOr SetIamPolicy( google::cloud::cpp::compute::backend_buckets::v1:: SetIamPolicyRequest const& request) override; @@ -101,6 +160,16 @@ class BackendBucketsRestConnectionImpl UpdateBackendBucket(google::cloud::cpp::compute::backend_buckets::v1:: UpdateBackendBucketRequest const& request) override; + StatusOr UpdateBackendBucket( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::backend_buckets::v1:: + UpdateBackendBucketRequest const& request) override; + + future> + UpdateBackendBucket( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + private: static std::unique_ptr retry_policy(Options const& options) { diff --git a/google/cloud/compute/backend_buckets/v1/internal/backend_buckets_tracing_connection.cc b/google/cloud/compute/backend_buckets/v1/internal/backend_buckets_tracing_connection.cc index 86fd3230c3f9b..6c99c92106052 100644 --- a/google/cloud/compute/backend_buckets/v1/internal/backend_buckets_tracing_connection.cc +++ b/google/cloud/compute/backend_buckets/v1/internal/backend_buckets_tracing_connection.cc @@ -43,6 +43,29 @@ BackendBucketsTracingConnection::AddSignedUrlKey( return internal::EndSpan(std::move(span), child_->AddSignedUrlKey(request)); } +StatusOr +BackendBucketsTracingConnection::AddSignedUrlKey( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::backend_buckets::v1:: + AddSignedUrlKeyRequest const& request) { + auto span = internal::MakeSpan( + "compute_backend_buckets_v1::BackendBucketsConnection::AddSignedUrlKey"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->AddSignedUrlKey(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +BackendBucketsTracingConnection::AddSignedUrlKey( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_backend_buckets_v1::BackendBucketsConnection::AddSignedUrlKey"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->AddSignedUrlKey(ExperimentalTag{}, operation)); +} + future> BackendBucketsTracingConnection::DeleteBackendBucket( google::cloud::cpp::compute::backend_buckets::v1:: @@ -55,6 +78,32 @@ BackendBucketsTracingConnection::DeleteBackendBucket( child_->DeleteBackendBucket(request)); } +StatusOr +BackendBucketsTracingConnection::DeleteBackendBucket( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::backend_buckets::v1:: + DeleteBackendBucketRequest const& request) { + auto span = internal::MakeSpan( + "compute_backend_buckets_v1::BackendBucketsConnection::" + "DeleteBackendBucket"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->DeleteBackendBucket(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +BackendBucketsTracingConnection::DeleteBackendBucket( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_backend_buckets_v1::BackendBucketsConnection::" + "DeleteBackendBucket"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->DeleteBackendBucket( + ExperimentalTag{}, operation)); +} + future> BackendBucketsTracingConnection::DeleteSignedUrlKey( google::cloud::cpp::compute::backend_buckets::v1:: @@ -67,6 +116,32 @@ BackendBucketsTracingConnection::DeleteSignedUrlKey( child_->DeleteSignedUrlKey(request)); } +StatusOr +BackendBucketsTracingConnection::DeleteSignedUrlKey( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::backend_buckets::v1:: + DeleteSignedUrlKeyRequest const& request) { + auto span = internal::MakeSpan( + "compute_backend_buckets_v1::BackendBucketsConnection::" + "DeleteSignedUrlKey"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->DeleteSignedUrlKey(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +BackendBucketsTracingConnection::DeleteSignedUrlKey( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_backend_buckets_v1::BackendBucketsConnection::" + "DeleteSignedUrlKey"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->DeleteSignedUrlKey( + ExperimentalTag{}, operation)); +} + StatusOr BackendBucketsTracingConnection::GetBackendBucket( google::cloud::cpp::compute::backend_buckets::v1:: @@ -99,6 +174,32 @@ BackendBucketsTracingConnection::InsertBackendBucket( child_->InsertBackendBucket(request)); } +StatusOr +BackendBucketsTracingConnection::InsertBackendBucket( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::backend_buckets::v1:: + InsertBackendBucketRequest const& request) { + auto span = internal::MakeSpan( + "compute_backend_buckets_v1::BackendBucketsConnection::" + "InsertBackendBucket"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->InsertBackendBucket(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +BackendBucketsTracingConnection::InsertBackendBucket( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_backend_buckets_v1::BackendBucketsConnection::" + "InsertBackendBucket"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->InsertBackendBucket( + ExperimentalTag{}, operation)); +} + StreamRange BackendBucketsTracingConnection::ListBackendBuckets( google::cloud::cpp::compute::backend_buckets::v1::ListBackendBucketsRequest @@ -125,6 +226,32 @@ BackendBucketsTracingConnection::PatchBackendBucket( child_->PatchBackendBucket(request)); } +StatusOr +BackendBucketsTracingConnection::PatchBackendBucket( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::backend_buckets::v1:: + PatchBackendBucketRequest const& request) { + auto span = internal::MakeSpan( + "compute_backend_buckets_v1::BackendBucketsConnection::" + "PatchBackendBucket"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->PatchBackendBucket(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +BackendBucketsTracingConnection::PatchBackendBucket( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_backend_buckets_v1::BackendBucketsConnection::" + "PatchBackendBucket"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->PatchBackendBucket( + ExperimentalTag{}, operation)); +} + future> BackendBucketsTracingConnection::SetEdgeSecurityPolicy( google::cloud::cpp::compute::backend_buckets::v1:: @@ -137,6 +264,32 @@ BackendBucketsTracingConnection::SetEdgeSecurityPolicy( child_->SetEdgeSecurityPolicy(request)); } +StatusOr +BackendBucketsTracingConnection::SetEdgeSecurityPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::backend_buckets::v1:: + SetEdgeSecurityPolicyRequest const& request) { + auto span = internal::MakeSpan( + "compute_backend_buckets_v1::BackendBucketsConnection::" + "SetEdgeSecurityPolicy"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->SetEdgeSecurityPolicy(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +BackendBucketsTracingConnection::SetEdgeSecurityPolicy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_backend_buckets_v1::BackendBucketsConnection::" + "SetEdgeSecurityPolicy"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->SetEdgeSecurityPolicy( + ExperimentalTag{}, operation)); +} + StatusOr BackendBucketsTracingConnection::SetIamPolicy( google::cloud::cpp::compute::backend_buckets::v1::SetIamPolicyRequest const& @@ -170,6 +323,32 @@ BackendBucketsTracingConnection::UpdateBackendBucket( child_->UpdateBackendBucket(request)); } +StatusOr +BackendBucketsTracingConnection::UpdateBackendBucket( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::backend_buckets::v1:: + UpdateBackendBucketRequest const& request) { + auto span = internal::MakeSpan( + "compute_backend_buckets_v1::BackendBucketsConnection::" + "UpdateBackendBucket"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->UpdateBackendBucket(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +BackendBucketsTracingConnection::UpdateBackendBucket( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_backend_buckets_v1::BackendBucketsConnection::" + "UpdateBackendBucket"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->UpdateBackendBucket( + ExperimentalTag{}, operation)); +} + #endif // GOOGLE_CLOUD_CPP_HAVE_OPENTELEMETRY std::shared_ptr diff --git a/google/cloud/compute/backend_buckets/v1/internal/backend_buckets_tracing_connection.h b/google/cloud/compute/backend_buckets/v1/internal/backend_buckets_tracing_connection.h index e1e5c8e7f9aee..cd8fc5ac9b6fd 100644 --- a/google/cloud/compute/backend_buckets/v1/internal/backend_buckets_tracing_connection.h +++ b/google/cloud/compute/backend_buckets/v1/internal/backend_buckets_tracing_connection.h @@ -45,14 +45,43 @@ class BackendBucketsTracingConnection google::cloud::cpp::compute::backend_buckets::v1:: AddSignedUrlKeyRequest const& request) override; + StatusOr AddSignedUrlKey( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::backend_buckets::v1:: + AddSignedUrlKeyRequest const& request) override; + + future> AddSignedUrlKey( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> DeleteBackendBucket(google::cloud::cpp::compute::backend_buckets::v1:: DeleteBackendBucketRequest const& request) override; + StatusOr DeleteBackendBucket( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::backend_buckets::v1:: + DeleteBackendBucketRequest const& request) override; + + future> + DeleteBackendBucket( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> DeleteSignedUrlKey(google::cloud::cpp::compute::backend_buckets::v1:: DeleteSignedUrlKeyRequest const& request) override; + StatusOr DeleteSignedUrlKey( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::backend_buckets::v1:: + DeleteSignedUrlKeyRequest const& request) override; + + future> + DeleteSignedUrlKey( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StatusOr GetBackendBucket( google::cloud::cpp::compute::backend_buckets::v1:: GetBackendBucketRequest const& request) override; @@ -65,6 +94,16 @@ class BackendBucketsTracingConnection InsertBackendBucket(google::cloud::cpp::compute::backend_buckets::v1:: InsertBackendBucketRequest const& request) override; + StatusOr InsertBackendBucket( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::backend_buckets::v1:: + InsertBackendBucketRequest const& request) override; + + future> + InsertBackendBucket( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StreamRange ListBackendBuckets(google::cloud::cpp::compute::backend_buckets::v1:: ListBackendBucketsRequest request) override; @@ -73,11 +112,31 @@ class BackendBucketsTracingConnection PatchBackendBucket(google::cloud::cpp::compute::backend_buckets::v1:: PatchBackendBucketRequest const& request) override; + StatusOr PatchBackendBucket( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::backend_buckets::v1:: + PatchBackendBucketRequest const& request) override; + + future> + PatchBackendBucket( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> SetEdgeSecurityPolicy( google::cloud::cpp::compute::backend_buckets::v1:: SetEdgeSecurityPolicyRequest const& request) override; + StatusOr SetEdgeSecurityPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::backend_buckets::v1:: + SetEdgeSecurityPolicyRequest const& request) override; + + future> + SetEdgeSecurityPolicy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StatusOr SetIamPolicy( google::cloud::cpp::compute::backend_buckets::v1:: SetIamPolicyRequest const& request) override; @@ -90,6 +149,16 @@ class BackendBucketsTracingConnection UpdateBackendBucket(google::cloud::cpp::compute::backend_buckets::v1:: UpdateBackendBucketRequest const& request) override; + StatusOr UpdateBackendBucket( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::backend_buckets::v1:: + UpdateBackendBucketRequest const& request) override; + + future> + UpdateBackendBucket( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + private: std::shared_ptr child_; }; diff --git a/google/cloud/compute/backend_buckets/v1/mocks/mock_backend_buckets_connection.h b/google/cloud/compute/backend_buckets/v1/mocks/mock_backend_buckets_connection.h index 72ea62f6b5065..f71d92a4c6ccf 100644 --- a/google/cloud/compute/backend_buckets/v1/mocks/mock_backend_buckets_connection.h +++ b/google/cloud/compute/backend_buckets/v1/mocks/mock_backend_buckets_connection.h @@ -53,18 +53,57 @@ class MockBackendBucketsConnection AddSignedUrlKeyRequest const& request), (override)); + MOCK_METHOD(StatusOr, + AddSignedUrlKey, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::backend_buckets::v1:: + AddSignedUrlKeyRequest const& request), + (override)); + + MOCK_METHOD(future>, + AddSignedUrlKey, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD(future>, DeleteBackendBucket, (google::cloud::cpp::compute::backend_buckets::v1:: DeleteBackendBucketRequest const& request), (override)); + MOCK_METHOD(StatusOr, + DeleteBackendBucket, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::backend_buckets::v1:: + DeleteBackendBucketRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteBackendBucket, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD(future>, DeleteSignedUrlKey, (google::cloud::cpp::compute::backend_buckets::v1:: DeleteSignedUrlKeyRequest const& request), (override)); + MOCK_METHOD(StatusOr, + DeleteSignedUrlKey, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::backend_buckets::v1:: + DeleteSignedUrlKeyRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteSignedUrlKey, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD(StatusOr, GetBackendBucket, (google::cloud::cpp::compute::backend_buckets::v1:: @@ -82,6 +121,19 @@ class MockBackendBucketsConnection InsertBackendBucketRequest const& request), (override)); + MOCK_METHOD(StatusOr, + InsertBackendBucket, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::backend_buckets::v1:: + InsertBackendBucketRequest const& request), + (override)); + + MOCK_METHOD(future>, + InsertBackendBucket, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD((StreamRange), ListBackendBuckets, (google::cloud::cpp::compute::backend_buckets::v1:: @@ -94,12 +146,38 @@ class MockBackendBucketsConnection PatchBackendBucketRequest const& request), (override)); + MOCK_METHOD(StatusOr, + PatchBackendBucket, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::backend_buckets::v1:: + PatchBackendBucketRequest const& request), + (override)); + + MOCK_METHOD(future>, + PatchBackendBucket, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD(future>, SetEdgeSecurityPolicy, (google::cloud::cpp::compute::backend_buckets::v1:: SetEdgeSecurityPolicyRequest const& request), (override)); + MOCK_METHOD(StatusOr, + SetEdgeSecurityPolicy, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::backend_buckets::v1:: + SetEdgeSecurityPolicyRequest const& request), + (override)); + + MOCK_METHOD(future>, + SetEdgeSecurityPolicy, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD(StatusOr, SetIamPolicy, (google::cloud::cpp::compute::backend_buckets::v1:: SetIamPolicyRequest const& request), @@ -117,6 +195,19 @@ class MockBackendBucketsConnection (google::cloud::cpp::compute::backend_buckets::v1:: UpdateBackendBucketRequest const& request), (override)); + + MOCK_METHOD(StatusOr, + UpdateBackendBucket, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::backend_buckets::v1:: + UpdateBackendBucketRequest const& request), + (override)); + + MOCK_METHOD(future>, + UpdateBackendBucket, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); }; GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END diff --git a/google/cloud/compute/backend_services/v1/backend_services_connection.cc b/google/cloud/compute/backend_services/v1/backend_services_connection.cc index 75b2ae11aa7a2..34b00ad48c633 100644 --- a/google/cloud/compute/backend_services/v1/backend_services_connection.cc +++ b/google/cloud/compute/backend_services/v1/backend_services_connection.cc @@ -45,6 +45,23 @@ BackendServicesConnection::AddSignedUrlKey( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +BackendServicesConnection::AddSignedUrlKey( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::backend_services::v1:: + AddSignedUrlKeyRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +BackendServicesConnection::AddSignedUrlKey( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StreamRange> BackendServicesConnection::AggregatedListBackendServices( @@ -64,6 +81,23 @@ BackendServicesConnection::DeleteBackendService( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +BackendServicesConnection::DeleteBackendService( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::backend_services::v1:: + DeleteBackendServiceRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +BackendServicesConnection::DeleteBackendService( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> BackendServicesConnection::DeleteSignedUrlKey( google::cloud::cpp::compute::backend_services::v1:: @@ -73,6 +107,23 @@ BackendServicesConnection::DeleteSignedUrlKey( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +BackendServicesConnection::DeleteSignedUrlKey( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::backend_services::v1:: + DeleteSignedUrlKeyRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +BackendServicesConnection::DeleteSignedUrlKey( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr BackendServicesConnection::GetBackendService( google::cloud::cpp::compute::backend_services::v1:: @@ -103,6 +154,23 @@ BackendServicesConnection::InsertBackendService( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +BackendServicesConnection::InsertBackendService( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::backend_services::v1:: + InsertBackendServiceRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +BackendServicesConnection::InsertBackendService( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StreamRange BackendServicesConnection::ListBackendServices( google::cloud::cpp::compute::backend_services::v1:: @@ -128,6 +196,23 @@ BackendServicesConnection::PatchBackendService( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +BackendServicesConnection::PatchBackendService( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::backend_services::v1:: + PatchBackendServiceRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +BackendServicesConnection::PatchBackendService( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> BackendServicesConnection::SetEdgeSecurityPolicy( google::cloud::cpp::compute::backend_services::v1:: @@ -137,6 +222,23 @@ BackendServicesConnection::SetEdgeSecurityPolicy( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +BackendServicesConnection::SetEdgeSecurityPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::backend_services::v1:: + SetEdgeSecurityPolicyRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +BackendServicesConnection::SetEdgeSecurityPolicy( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr BackendServicesConnection::SetIamPolicy( google::cloud::cpp::compute::backend_services::v1:: @@ -153,6 +255,23 @@ BackendServicesConnection::SetSecurityPolicy( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +BackendServicesConnection::SetSecurityPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::backend_services::v1:: + SetSecurityPolicyRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +BackendServicesConnection::SetSecurityPolicy( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr BackendServicesConnection::TestIamPermissions( google::cloud::cpp::compute::backend_services::v1:: @@ -169,6 +288,23 @@ BackendServicesConnection::UpdateBackendService( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +BackendServicesConnection::UpdateBackendService( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::backend_services::v1:: + UpdateBackendServiceRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +BackendServicesConnection::UpdateBackendService( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace compute_backend_services_v1 } // namespace cloud diff --git a/google/cloud/compute/backend_services/v1/backend_services_connection.h b/google/cloud/compute/backend_services/v1/backend_services_connection.h index 2987d49a31683..155880116ecb7 100644 --- a/google/cloud/compute/backend_services/v1/backend_services_connection.h +++ b/google/cloud/compute/backend_services/v1/backend_services_connection.h @@ -22,8 +22,10 @@ #include "google/cloud/compute/backend_services/v1/backend_services_connection_idempotency_policy.h" #include "google/cloud/compute/backend_services/v1/internal/backend_services_retry_traits.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/internal/retry_policy_impl.h" +#include "google/cloud/no_await_tag.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" #include "google/cloud/status_or.h" @@ -190,6 +192,15 @@ class BackendServicesConnection { AddSignedUrlKey(google::cloud::cpp::compute::backend_services::v1:: AddSignedUrlKeyRequest const& request); + virtual StatusOr AddSignedUrlKey( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::backend_services::v1:: + AddSignedUrlKeyRequest const& request); + + virtual future> + AddSignedUrlKey(ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual StreamRange> AggregatedListBackendServices( @@ -200,10 +211,30 @@ class BackendServicesConnection { DeleteBackendService(google::cloud::cpp::compute::backend_services::v1:: DeleteBackendServiceRequest const& request); + virtual StatusOr + DeleteBackendService(ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::backend_services::v1:: + DeleteBackendServiceRequest const& request); + + virtual future> + DeleteBackendService( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual future> DeleteSignedUrlKey(google::cloud::cpp::compute::backend_services::v1:: DeleteSignedUrlKeyRequest const& request); + virtual StatusOr + DeleteSignedUrlKey(ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::backend_services::v1:: + DeleteSignedUrlKeyRequest const& request); + + virtual future> + DeleteSignedUrlKey( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual StatusOr GetBackendService(google::cloud::cpp::compute::backend_services::v1:: GetBackendServiceRequest const& request); @@ -221,6 +252,16 @@ class BackendServicesConnection { InsertBackendService(google::cloud::cpp::compute::backend_services::v1:: InsertBackendServiceRequest const& request); + virtual StatusOr + InsertBackendService(ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::backend_services::v1:: + InsertBackendServiceRequest const& request); + + virtual future> + InsertBackendService( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual StreamRange ListBackendServices(google::cloud::cpp::compute::backend_services::v1:: ListBackendServicesRequest request); @@ -234,10 +275,30 @@ class BackendServicesConnection { PatchBackendService(google::cloud::cpp::compute::backend_services::v1:: PatchBackendServiceRequest const& request); + virtual StatusOr + PatchBackendService(ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::backend_services::v1:: + PatchBackendServiceRequest const& request); + + virtual future> + PatchBackendService( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual future> SetEdgeSecurityPolicy(google::cloud::cpp::compute::backend_services::v1:: SetEdgeSecurityPolicyRequest const& request); + virtual StatusOr + SetEdgeSecurityPolicy(ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::backend_services::v1:: + SetEdgeSecurityPolicyRequest const& request); + + virtual future> + SetEdgeSecurityPolicy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual StatusOr SetIamPolicy( google::cloud::cpp::compute::backend_services::v1:: SetIamPolicyRequest const& request); @@ -246,6 +307,16 @@ class BackendServicesConnection { SetSecurityPolicy(google::cloud::cpp::compute::backend_services::v1:: SetSecurityPolicyRequest const& request); + virtual StatusOr + SetSecurityPolicy(ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::backend_services::v1:: + SetSecurityPolicyRequest const& request); + + virtual future> + SetSecurityPolicy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual StatusOr TestIamPermissions(google::cloud::cpp::compute::backend_services::v1:: TestIamPermissionsRequest const& request); @@ -253,6 +324,16 @@ class BackendServicesConnection { virtual future> UpdateBackendService(google::cloud::cpp::compute::backend_services::v1:: UpdateBackendServiceRequest const& request); + + virtual StatusOr + UpdateBackendService(ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::backend_services::v1:: + UpdateBackendServiceRequest const& request); + + virtual future> + UpdateBackendService( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); }; GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END diff --git a/google/cloud/compute/backend_services/v1/internal/backend_services_rest_connection_impl.cc b/google/cloud/compute/backend_services/v1/internal/backend_services_rest_connection_impl.cc index 18cff0bca67f6..86af17c2e29b1 100644 --- a/google/cloud/compute/backend_services/v1/internal/backend_services_rest_connection_impl.cc +++ b/google/cloud/compute/backend_services/v1/internal/backend_services_rest_connection_impl.cc @@ -23,6 +23,7 @@ #include "google/cloud/internal/async_rest_long_running_operation_custom.h" #include "google/cloud/internal/extract_long_running_result.h" #include "google/cloud/internal/pagination_range.h" +#include "google/cloud/internal/rest_lro_helpers.h" #include "google/cloud/internal/rest_retry_loop.h" #include "google/cloud/rest_options.h" #include @@ -102,6 +103,77 @@ BackendServicesRestConnectionImpl::AddSignedUrlKey( }); } +StatusOr +BackendServicesRestConnectionImpl::AddSignedUrlKey( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::backend_services::v1:: + AddSignedUrlKeyRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->AddSignedUrlKey(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::backend_services::v1:: + AddSignedUrlKeyRequest const& request) { + return stub_->AddSignedUrlKey(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +BackendServicesRestConnectionImpl::AddSignedUrlKey( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::global_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }); +} + StreamRange> BackendServicesRestConnectionImpl::AggregatedListBackendServices( @@ -203,6 +275,77 @@ BackendServicesRestConnectionImpl::DeleteBackendService( }); } +StatusOr +BackendServicesRestConnectionImpl::DeleteBackendService( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::backend_services::v1:: + DeleteBackendServiceRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteBackendService(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::backend_services::v1:: + DeleteBackendServiceRequest const& request) { + return stub_->DeleteBackendService(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +BackendServicesRestConnectionImpl::DeleteBackendService( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::global_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }); +} + future> BackendServicesRestConnectionImpl::DeleteSignedUrlKey( google::cloud::cpp::compute::backend_services::v1:: @@ -261,6 +404,77 @@ BackendServicesRestConnectionImpl::DeleteSignedUrlKey( }); } +StatusOr +BackendServicesRestConnectionImpl::DeleteSignedUrlKey( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::backend_services::v1:: + DeleteSignedUrlKeyRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteSignedUrlKey(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::backend_services::v1:: + DeleteSignedUrlKeyRequest const& request) { + return stub_->DeleteSignedUrlKey(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +BackendServicesRestConnectionImpl::DeleteSignedUrlKey( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::global_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }); +} + StatusOr BackendServicesRestConnectionImpl::GetBackendService( google::cloud::cpp::compute::backend_services::v1:: @@ -367,6 +581,77 @@ BackendServicesRestConnectionImpl::InsertBackendService( }); } +StatusOr +BackendServicesRestConnectionImpl::InsertBackendService( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::backend_services::v1:: + InsertBackendServiceRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->InsertBackendService(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::backend_services::v1:: + InsertBackendServiceRequest const& request) { + return stub_->InsertBackendService(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +BackendServicesRestConnectionImpl::InsertBackendService( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::global_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }); +} + StreamRange BackendServicesRestConnectionImpl::ListBackendServices( google::cloud::cpp::compute::backend_services::v1:: @@ -501,6 +786,77 @@ BackendServicesRestConnectionImpl::PatchBackendService( }); } +StatusOr +BackendServicesRestConnectionImpl::PatchBackendService( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::backend_services::v1:: + PatchBackendServiceRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->PatchBackendService(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::backend_services::v1:: + PatchBackendServiceRequest const& request) { + return stub_->PatchBackendService(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +BackendServicesRestConnectionImpl::PatchBackendService( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::global_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }); +} + future> BackendServicesRestConnectionImpl::SetEdgeSecurityPolicy( google::cloud::cpp::compute::backend_services::v1:: @@ -559,6 +915,77 @@ BackendServicesRestConnectionImpl::SetEdgeSecurityPolicy( }); } +StatusOr +BackendServicesRestConnectionImpl::SetEdgeSecurityPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::backend_services::v1:: + SetEdgeSecurityPolicyRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->SetEdgeSecurityPolicy(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::backend_services::v1:: + SetEdgeSecurityPolicyRequest const& request) { + return stub_->SetEdgeSecurityPolicy(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +BackendServicesRestConnectionImpl::SetEdgeSecurityPolicy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::global_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }); +} + StatusOr BackendServicesRestConnectionImpl::SetIamPolicy( google::cloud::cpp::compute::backend_services::v1:: @@ -633,6 +1060,77 @@ BackendServicesRestConnectionImpl::SetSecurityPolicy( }); } +StatusOr +BackendServicesRestConnectionImpl::SetSecurityPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::backend_services::v1:: + SetSecurityPolicyRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->SetSecurityPolicy(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::backend_services::v1:: + SetSecurityPolicyRequest const& request) { + return stub_->SetSecurityPolicy(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +BackendServicesRestConnectionImpl::SetSecurityPolicy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::global_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }); +} + StatusOr BackendServicesRestConnectionImpl::TestIamPermissions( google::cloud::cpp::compute::backend_services::v1:: @@ -707,6 +1205,77 @@ BackendServicesRestConnectionImpl::UpdateBackendService( }); } +StatusOr +BackendServicesRestConnectionImpl::UpdateBackendService( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::backend_services::v1:: + UpdateBackendServiceRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UpdateBackendService(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::backend_services::v1:: + UpdateBackendServiceRequest const& request) { + return stub_->UpdateBackendService(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +BackendServicesRestConnectionImpl::UpdateBackendService( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::global_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace compute_backend_services_v1_internal } // namespace cloud diff --git a/google/cloud/compute/backend_services/v1/internal/backend_services_rest_connection_impl.h b/google/cloud/compute/backend_services/v1/internal/backend_services_rest_connection_impl.h index 620704582fd80..37d46f5a04b1b 100644 --- a/google/cloud/compute/backend_services/v1/internal/backend_services_rest_connection_impl.h +++ b/google/cloud/compute/backend_services/v1/internal/backend_services_rest_connection_impl.h @@ -56,6 +56,15 @@ class BackendServicesRestConnectionImpl google::cloud::cpp::compute::backend_services::v1:: AddSignedUrlKeyRequest const& request) override; + StatusOr AddSignedUrlKey( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::backend_services::v1:: + AddSignedUrlKeyRequest const& request) override; + + future> AddSignedUrlKey( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StreamRange> AggregatedListBackendServices( @@ -66,10 +75,30 @@ class BackendServicesRestConnectionImpl DeleteBackendService(google::cloud::cpp::compute::backend_services::v1:: DeleteBackendServiceRequest const& request) override; + StatusOr DeleteBackendService( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::backend_services::v1:: + DeleteBackendServiceRequest const& request) override; + + future> + DeleteBackendService( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> DeleteSignedUrlKey(google::cloud::cpp::compute::backend_services::v1:: DeleteSignedUrlKeyRequest const& request) override; + StatusOr DeleteSignedUrlKey( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::backend_services::v1:: + DeleteSignedUrlKeyRequest const& request) override; + + future> + DeleteSignedUrlKey( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StatusOr GetBackendService( google::cloud::cpp::compute::backend_services::v1:: GetBackendServiceRequest const& request) override; @@ -87,6 +116,16 @@ class BackendServicesRestConnectionImpl InsertBackendService(google::cloud::cpp::compute::backend_services::v1:: InsertBackendServiceRequest const& request) override; + StatusOr InsertBackendService( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::backend_services::v1:: + InsertBackendServiceRequest const& request) override; + + future> + InsertBackendService( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StreamRange ListBackendServices(google::cloud::cpp::compute::backend_services::v1:: ListBackendServicesRequest request) override; @@ -99,11 +138,31 @@ class BackendServicesRestConnectionImpl PatchBackendService(google::cloud::cpp::compute::backend_services::v1:: PatchBackendServiceRequest const& request) override; + StatusOr PatchBackendService( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::backend_services::v1:: + PatchBackendServiceRequest const& request) override; + + future> + PatchBackendService( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> SetEdgeSecurityPolicy( google::cloud::cpp::compute::backend_services::v1:: SetEdgeSecurityPolicyRequest const& request) override; + StatusOr SetEdgeSecurityPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::backend_services::v1:: + SetEdgeSecurityPolicyRequest const& request) override; + + future> + SetEdgeSecurityPolicy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StatusOr SetIamPolicy( google::cloud::cpp::compute::backend_services::v1:: SetIamPolicyRequest const& request) override; @@ -112,6 +171,16 @@ class BackendServicesRestConnectionImpl SetSecurityPolicy(google::cloud::cpp::compute::backend_services::v1:: SetSecurityPolicyRequest const& request) override; + StatusOr SetSecurityPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::backend_services::v1:: + SetSecurityPolicyRequest const& request) override; + + future> + SetSecurityPolicy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StatusOr TestIamPermissions(google::cloud::cpp::compute::backend_services::v1:: TestIamPermissionsRequest const& request) override; @@ -120,6 +189,16 @@ class BackendServicesRestConnectionImpl UpdateBackendService(google::cloud::cpp::compute::backend_services::v1:: UpdateBackendServiceRequest const& request) override; + StatusOr UpdateBackendService( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::backend_services::v1:: + UpdateBackendServiceRequest const& request) override; + + future> + UpdateBackendService( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + private: static std::unique_ptr< compute_backend_services_v1::BackendServicesRetryPolicy> diff --git a/google/cloud/compute/backend_services/v1/internal/backend_services_tracing_connection.cc b/google/cloud/compute/backend_services/v1/internal/backend_services_tracing_connection.cc index 0311728c24f4b..a53404ff0e3f1 100644 --- a/google/cloud/compute/backend_services/v1/internal/backend_services_tracing_connection.cc +++ b/google/cloud/compute/backend_services/v1/internal/backend_services_tracing_connection.cc @@ -45,6 +45,31 @@ BackendServicesTracingConnection::AddSignedUrlKey( return internal::EndSpan(std::move(span), child_->AddSignedUrlKey(request)); } +StatusOr +BackendServicesTracingConnection::AddSignedUrlKey( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::backend_services::v1:: + AddSignedUrlKeyRequest const& request) { + auto span = internal::MakeSpan( + "compute_backend_services_v1::BackendServicesConnection::" + "AddSignedUrlKey"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->AddSignedUrlKey(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +BackendServicesTracingConnection::AddSignedUrlKey( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_backend_services_v1::BackendServicesConnection::" + "AddSignedUrlKey"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->AddSignedUrlKey(ExperimentalTag{}, operation)); +} + StreamRange> BackendServicesTracingConnection::AggregatedListBackendServices( @@ -72,6 +97,32 @@ BackendServicesTracingConnection::DeleteBackendService( child_->DeleteBackendService(request)); } +StatusOr +BackendServicesTracingConnection::DeleteBackendService( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::backend_services::v1:: + DeleteBackendServiceRequest const& request) { + auto span = internal::MakeSpan( + "compute_backend_services_v1::BackendServicesConnection::" + "DeleteBackendService"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->DeleteBackendService(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +BackendServicesTracingConnection::DeleteBackendService( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_backend_services_v1::BackendServicesConnection::" + "DeleteBackendService"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->DeleteBackendService( + ExperimentalTag{}, operation)); +} + future> BackendServicesTracingConnection::DeleteSignedUrlKey( google::cloud::cpp::compute::backend_services::v1:: @@ -84,6 +135,32 @@ BackendServicesTracingConnection::DeleteSignedUrlKey( child_->DeleteSignedUrlKey(request)); } +StatusOr +BackendServicesTracingConnection::DeleteSignedUrlKey( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::backend_services::v1:: + DeleteSignedUrlKeyRequest const& request) { + auto span = internal::MakeSpan( + "compute_backend_services_v1::BackendServicesConnection::" + "DeleteSignedUrlKey"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->DeleteSignedUrlKey(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +BackendServicesTracingConnection::DeleteSignedUrlKey( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_backend_services_v1::BackendServicesConnection::" + "DeleteSignedUrlKey"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->DeleteSignedUrlKey( + ExperimentalTag{}, operation)); +} + StatusOr BackendServicesTracingConnection::GetBackendService( google::cloud::cpp::compute::backend_services::v1:: @@ -127,6 +204,32 @@ BackendServicesTracingConnection::InsertBackendService( child_->InsertBackendService(request)); } +StatusOr +BackendServicesTracingConnection::InsertBackendService( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::backend_services::v1:: + InsertBackendServiceRequest const& request) { + auto span = internal::MakeSpan( + "compute_backend_services_v1::BackendServicesConnection::" + "InsertBackendService"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->InsertBackendService(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +BackendServicesTracingConnection::InsertBackendService( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_backend_services_v1::BackendServicesConnection::" + "InsertBackendService"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->InsertBackendService( + ExperimentalTag{}, operation)); +} + StreamRange BackendServicesTracingConnection::ListBackendServices( google::cloud::cpp::compute::backend_services::v1:: @@ -166,6 +269,32 @@ BackendServicesTracingConnection::PatchBackendService( child_->PatchBackendService(request)); } +StatusOr +BackendServicesTracingConnection::PatchBackendService( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::backend_services::v1:: + PatchBackendServiceRequest const& request) { + auto span = internal::MakeSpan( + "compute_backend_services_v1::BackendServicesConnection::" + "PatchBackendService"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->PatchBackendService(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +BackendServicesTracingConnection::PatchBackendService( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_backend_services_v1::BackendServicesConnection::" + "PatchBackendService"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->PatchBackendService( + ExperimentalTag{}, operation)); +} + future> BackendServicesTracingConnection::SetEdgeSecurityPolicy( google::cloud::cpp::compute::backend_services::v1:: @@ -178,6 +307,32 @@ BackendServicesTracingConnection::SetEdgeSecurityPolicy( child_->SetEdgeSecurityPolicy(request)); } +StatusOr +BackendServicesTracingConnection::SetEdgeSecurityPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::backend_services::v1:: + SetEdgeSecurityPolicyRequest const& request) { + auto span = internal::MakeSpan( + "compute_backend_services_v1::BackendServicesConnection::" + "SetEdgeSecurityPolicy"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->SetEdgeSecurityPolicy(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +BackendServicesTracingConnection::SetEdgeSecurityPolicy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_backend_services_v1::BackendServicesConnection::" + "SetEdgeSecurityPolicy"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->SetEdgeSecurityPolicy( + ExperimentalTag{}, operation)); +} + StatusOr BackendServicesTracingConnection::SetIamPolicy( google::cloud::cpp::compute::backend_services::v1:: @@ -199,6 +354,32 @@ BackendServicesTracingConnection::SetSecurityPolicy( return internal::EndSpan(std::move(span), child_->SetSecurityPolicy(request)); } +StatusOr +BackendServicesTracingConnection::SetSecurityPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::backend_services::v1:: + SetSecurityPolicyRequest const& request) { + auto span = internal::MakeSpan( + "compute_backend_services_v1::BackendServicesConnection::" + "SetSecurityPolicy"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->SetSecurityPolicy(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +BackendServicesTracingConnection::SetSecurityPolicy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_backend_services_v1::BackendServicesConnection::" + "SetSecurityPolicy"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->SetSecurityPolicy(ExperimentalTag{}, operation)); +} + StatusOr BackendServicesTracingConnection::TestIamPermissions( google::cloud::cpp::compute::backend_services::v1:: @@ -222,6 +403,32 @@ BackendServicesTracingConnection::UpdateBackendService( child_->UpdateBackendService(request)); } +StatusOr +BackendServicesTracingConnection::UpdateBackendService( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::backend_services::v1:: + UpdateBackendServiceRequest const& request) { + auto span = internal::MakeSpan( + "compute_backend_services_v1::BackendServicesConnection::" + "UpdateBackendService"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->UpdateBackendService(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +BackendServicesTracingConnection::UpdateBackendService( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_backend_services_v1::BackendServicesConnection::" + "UpdateBackendService"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->UpdateBackendService( + ExperimentalTag{}, operation)); +} + #endif // GOOGLE_CLOUD_CPP_HAVE_OPENTELEMETRY std::shared_ptr diff --git a/google/cloud/compute/backend_services/v1/internal/backend_services_tracing_connection.h b/google/cloud/compute/backend_services/v1/internal/backend_services_tracing_connection.h index fa805bad68f56..948723d11d637 100644 --- a/google/cloud/compute/backend_services/v1/internal/backend_services_tracing_connection.h +++ b/google/cloud/compute/backend_services/v1/internal/backend_services_tracing_connection.h @@ -45,6 +45,15 @@ class BackendServicesTracingConnection google::cloud::cpp::compute::backend_services::v1:: AddSignedUrlKeyRequest const& request) override; + StatusOr AddSignedUrlKey( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::backend_services::v1:: + AddSignedUrlKeyRequest const& request) override; + + future> AddSignedUrlKey( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StreamRange> AggregatedListBackendServices( @@ -55,10 +64,30 @@ class BackendServicesTracingConnection DeleteBackendService(google::cloud::cpp::compute::backend_services::v1:: DeleteBackendServiceRequest const& request) override; + StatusOr DeleteBackendService( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::backend_services::v1:: + DeleteBackendServiceRequest const& request) override; + + future> + DeleteBackendService( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> DeleteSignedUrlKey(google::cloud::cpp::compute::backend_services::v1:: DeleteSignedUrlKeyRequest const& request) override; + StatusOr DeleteSignedUrlKey( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::backend_services::v1:: + DeleteSignedUrlKeyRequest const& request) override; + + future> + DeleteSignedUrlKey( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StatusOr GetBackendService( google::cloud::cpp::compute::backend_services::v1:: GetBackendServiceRequest const& request) override; @@ -76,6 +105,16 @@ class BackendServicesTracingConnection InsertBackendService(google::cloud::cpp::compute::backend_services::v1:: InsertBackendServiceRequest const& request) override; + StatusOr InsertBackendService( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::backend_services::v1:: + InsertBackendServiceRequest const& request) override; + + future> + InsertBackendService( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StreamRange ListBackendServices(google::cloud::cpp::compute::backend_services::v1:: ListBackendServicesRequest request) override; @@ -88,11 +127,31 @@ class BackendServicesTracingConnection PatchBackendService(google::cloud::cpp::compute::backend_services::v1:: PatchBackendServiceRequest const& request) override; + StatusOr PatchBackendService( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::backend_services::v1:: + PatchBackendServiceRequest const& request) override; + + future> + PatchBackendService( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> SetEdgeSecurityPolicy( google::cloud::cpp::compute::backend_services::v1:: SetEdgeSecurityPolicyRequest const& request) override; + StatusOr SetEdgeSecurityPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::backend_services::v1:: + SetEdgeSecurityPolicyRequest const& request) override; + + future> + SetEdgeSecurityPolicy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StatusOr SetIamPolicy( google::cloud::cpp::compute::backend_services::v1:: SetIamPolicyRequest const& request) override; @@ -101,6 +160,16 @@ class BackendServicesTracingConnection SetSecurityPolicy(google::cloud::cpp::compute::backend_services::v1:: SetSecurityPolicyRequest const& request) override; + StatusOr SetSecurityPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::backend_services::v1:: + SetSecurityPolicyRequest const& request) override; + + future> + SetSecurityPolicy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StatusOr TestIamPermissions(google::cloud::cpp::compute::backend_services::v1:: TestIamPermissionsRequest const& request) override; @@ -109,6 +178,16 @@ class BackendServicesTracingConnection UpdateBackendService(google::cloud::cpp::compute::backend_services::v1:: UpdateBackendServiceRequest const& request) override; + StatusOr UpdateBackendService( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::backend_services::v1:: + UpdateBackendServiceRequest const& request) override; + + future> + UpdateBackendService( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + private: std::shared_ptr child_; diff --git a/google/cloud/compute/backend_services/v1/mocks/mock_backend_services_connection.h b/google/cloud/compute/backend_services/v1/mocks/mock_backend_services_connection.h index 77612565c3b51..c36eadced264a 100644 --- a/google/cloud/compute/backend_services/v1/mocks/mock_backend_services_connection.h +++ b/google/cloud/compute/backend_services/v1/mocks/mock_backend_services_connection.h @@ -53,6 +53,19 @@ class MockBackendServicesConnection AddSignedUrlKeyRequest const& request), (override)); + MOCK_METHOD(StatusOr, + AddSignedUrlKey, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::backend_services::v1:: + AddSignedUrlKeyRequest const& request), + (override)); + + MOCK_METHOD(future>, + AddSignedUrlKey, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD( (StreamRange>), @@ -67,12 +80,38 @@ class MockBackendServicesConnection DeleteBackendServiceRequest const& request), (override)); + MOCK_METHOD(StatusOr, + DeleteBackendService, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::backend_services::v1:: + DeleteBackendServiceRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteBackendService, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD(future>, DeleteSignedUrlKey, (google::cloud::cpp::compute::backend_services::v1:: DeleteSignedUrlKeyRequest const& request), (override)); + MOCK_METHOD(StatusOr, + DeleteSignedUrlKey, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::backend_services::v1:: + DeleteSignedUrlKeyRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteSignedUrlKey, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD(StatusOr, GetBackendService, (google::cloud::cpp::compute::backend_services::v1:: @@ -97,6 +136,19 @@ class MockBackendServicesConnection InsertBackendServiceRequest const& request), (override)); + MOCK_METHOD(StatusOr, + InsertBackendService, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::backend_services::v1:: + InsertBackendServiceRequest const& request), + (override)); + + MOCK_METHOD(future>, + InsertBackendService, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD((StreamRange), ListBackendServices, (google::cloud::cpp::compute::backend_services::v1:: @@ -116,12 +168,38 @@ class MockBackendServicesConnection PatchBackendServiceRequest const& request), (override)); + MOCK_METHOD(StatusOr, + PatchBackendService, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::backend_services::v1:: + PatchBackendServiceRequest const& request), + (override)); + + MOCK_METHOD(future>, + PatchBackendService, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD(future>, SetEdgeSecurityPolicy, (google::cloud::cpp::compute::backend_services::v1:: SetEdgeSecurityPolicyRequest const& request), (override)); + MOCK_METHOD(StatusOr, + SetEdgeSecurityPolicy, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::backend_services::v1:: + SetEdgeSecurityPolicyRequest const& request), + (override)); + + MOCK_METHOD(future>, + SetEdgeSecurityPolicy, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD(StatusOr, SetIamPolicy, (google::cloud::cpp::compute::backend_services::v1:: SetIamPolicyRequest const& request), @@ -133,6 +211,19 @@ class MockBackendServicesConnection SetSecurityPolicyRequest const& request), (override)); + MOCK_METHOD(StatusOr, + SetSecurityPolicy, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::backend_services::v1:: + SetSecurityPolicyRequest const& request), + (override)); + + MOCK_METHOD(future>, + SetSecurityPolicy, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr, TestIamPermissions, @@ -145,6 +236,19 @@ class MockBackendServicesConnection (google::cloud::cpp::compute::backend_services::v1:: UpdateBackendServiceRequest const& request), (override)); + + MOCK_METHOD(StatusOr, + UpdateBackendService, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::backend_services::v1:: + UpdateBackendServiceRequest const& request), + (override)); + + MOCK_METHOD(future>, + UpdateBackendService, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); }; GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END diff --git a/google/cloud/compute/disk_types/v1/disk_types_connection.h b/google/cloud/compute/disk_types/v1/disk_types_connection.h index 0b29ddc91dafd..d1aa7c71913f9 100644 --- a/google/cloud/compute/disk_types/v1/disk_types_connection.h +++ b/google/cloud/compute/disk_types/v1/disk_types_connection.h @@ -22,6 +22,7 @@ #include "google/cloud/compute/disk_types/v1/disk_types_connection_idempotency_policy.h" #include "google/cloud/compute/disk_types/v1/internal/disk_types_retry_traits.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/internal/retry_policy_impl.h" #include "google/cloud/options.h" #include "google/cloud/status_or.h" diff --git a/google/cloud/compute/disks/v1/disks_connection.cc b/google/cloud/compute/disks/v1/disks_connection.cc index 3f8ffcef37fc9..9496d70669e9b 100644 --- a/google/cloud/compute/disks/v1/disks_connection.cc +++ b/google/cloud/compute/disks/v1/disks_connection.cc @@ -44,6 +44,22 @@ DisksConnection::AddResourcePolicies( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +DisksConnection::AddResourcePolicies( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::disks::v1::AddResourcePoliciesRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +DisksConnection::AddResourcePolicies( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StreamRange< std::pair> DisksConnection::AggregatedListDisks( @@ -62,6 +78,22 @@ DisksConnection::BulkInsert( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +DisksConnection::BulkInsert( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::disks::v1::BulkInsertRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +DisksConnection::BulkInsert(ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> DisksConnection::CreateSnapshot( google::cloud::cpp::compute::disks::v1::CreateSnapshotRequest const&) { @@ -70,6 +102,22 @@ DisksConnection::CreateSnapshot( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +DisksConnection::CreateSnapshot( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::disks::v1::CreateSnapshotRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +DisksConnection::CreateSnapshot( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> DisksConnection::DeleteDisk( google::cloud::cpp::compute::disks::v1::DeleteDiskRequest const&) { @@ -78,6 +126,22 @@ DisksConnection::DeleteDisk( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +DisksConnection::DeleteDisk( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::disks::v1::DeleteDiskRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +DisksConnection::DeleteDisk(ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr DisksConnection::GetDisk( google::cloud::cpp::compute::disks::v1::GetDiskRequest const&) { return Status(StatusCode::kUnimplemented, "not implemented"); @@ -96,6 +160,22 @@ DisksConnection::InsertDisk( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +DisksConnection::InsertDisk( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::disks::v1::InsertDiskRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +DisksConnection::InsertDisk(ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StreamRange DisksConnection::ListDisks( google::cloud::cpp::compute::disks::v1:: ListDisksRequest) { // NOLINT(performance-unnecessary-value-param) @@ -112,6 +192,23 @@ DisksConnection::RemoveResourcePolicies( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +DisksConnection::RemoveResourcePolicies( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::disks::v1:: + RemoveResourcePoliciesRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +DisksConnection::RemoveResourcePolicies( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> DisksConnection::Resize( google::cloud::cpp::compute::disks::v1::ResizeRequest const&) { @@ -120,6 +217,21 @@ DisksConnection::Resize( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr DisksConnection::Resize( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::disks::v1::ResizeRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +DisksConnection::Resize(ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr DisksConnection::SetIamPolicy( google::cloud::cpp::compute::disks::v1::SetIamPolicyRequest const&) { return Status(StatusCode::kUnimplemented, "not implemented"); @@ -133,6 +245,21 @@ DisksConnection::SetLabels( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr DisksConnection::SetLabels( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::disks::v1::SetLabelsRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +DisksConnection::SetLabels(ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> DisksConnection::StartAsyncReplication( google::cloud::cpp::compute::disks::v1:: @@ -142,6 +269,23 @@ DisksConnection::StartAsyncReplication( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +DisksConnection::StartAsyncReplication( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::disks::v1:: + StartAsyncReplicationRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +DisksConnection::StartAsyncReplication( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> DisksConnection::StopAsyncReplication(google::cloud::cpp::compute::disks::v1:: StopAsyncReplicationRequest const&) { @@ -150,10 +294,43 @@ DisksConnection::StopAsyncReplication(google::cloud::cpp::compute::disks::v1:: Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +DisksConnection::StopAsyncReplication(ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::disks::v1:: + StopAsyncReplicationRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> +DisksConnection::StopAsyncReplication( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +DisksConnection::StopGroupAsyncReplication( + google::cloud::cpp::compute::disks::v1:: + StopGroupAsyncReplicationRequest const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +StatusOr DisksConnection::StopGroupAsyncReplication( + ExperimentalTag, NoAwaitTag, google::cloud::cpp::compute::disks::v1:: StopGroupAsyncReplicationRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +DisksConnection::StopGroupAsyncReplication( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { return google::cloud::make_ready_future< StatusOr>( Status(StatusCode::kUnimplemented, "not implemented")); @@ -173,6 +350,22 @@ DisksConnection::UpdateDisk( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +DisksConnection::UpdateDisk( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::disks::v1::UpdateDiskRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +DisksConnection::UpdateDisk(ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace compute_disks_v1 } // namespace cloud diff --git a/google/cloud/compute/disks/v1/disks_connection.h b/google/cloud/compute/disks/v1/disks_connection.h index 8235a2a64168f..40ff92330c61c 100644 --- a/google/cloud/compute/disks/v1/disks_connection.h +++ b/google/cloud/compute/disks/v1/disks_connection.h @@ -22,8 +22,10 @@ #include "google/cloud/compute/disks/v1/disks_connection_idempotency_policy.h" #include "google/cloud/compute/disks/v1/internal/disks_retry_traits.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/internal/retry_policy_impl.h" +#include "google/cloud/no_await_tag.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" #include "google/cloud/status_or.h" @@ -185,6 +187,17 @@ class DisksConnection { google::cloud::cpp::compute::disks::v1::AddResourcePoliciesRequest const& request); + virtual StatusOr + AddResourcePolicies( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::disks::v1::AddResourcePoliciesRequest const& + request); + + virtual future> + AddResourcePolicies( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual StreamRange< std::pair> AggregatedListDisks( @@ -195,15 +208,40 @@ class DisksConnection { BulkInsert( google::cloud::cpp::compute::disks::v1::BulkInsertRequest const& request); + virtual StatusOr BulkInsert( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::disks::v1::BulkInsertRequest const& request); + + virtual future> + BulkInsert(ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual future> CreateSnapshot( google::cloud::cpp::compute::disks::v1::CreateSnapshotRequest const& request); + virtual StatusOr CreateSnapshot( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::disks::v1::CreateSnapshotRequest const& + request); + + virtual future> + CreateSnapshot(ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual future> DeleteDisk( google::cloud::cpp::compute::disks::v1::DeleteDiskRequest const& request); + virtual StatusOr DeleteDisk( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::disks::v1::DeleteDiskRequest const& request); + + virtual future> + DeleteDisk(ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual StatusOr GetDisk( google::cloud::cpp::compute::disks::v1::GetDiskRequest const& request); @@ -215,6 +253,14 @@ class DisksConnection { InsertDisk( google::cloud::cpp::compute::disks::v1::InsertDiskRequest const& request); + virtual StatusOr InsertDisk( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::disks::v1::InsertDiskRequest const& request); + + virtual future> + InsertDisk(ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual StreamRange ListDisks( google::cloud::cpp::compute::disks::v1::ListDisksRequest request); @@ -222,9 +268,27 @@ class DisksConnection { RemoveResourcePolicies(google::cloud::cpp::compute::disks::v1:: RemoveResourcePoliciesRequest const& request); + virtual StatusOr + RemoveResourcePolicies(ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::disks::v1:: + RemoveResourcePoliciesRequest const& request); + + virtual future> + RemoveResourcePolicies( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual future> Resize( google::cloud::cpp::compute::disks::v1::ResizeRequest const& request); + virtual StatusOr Resize( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::disks::v1::ResizeRequest const& request); + + virtual future> Resize( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual StatusOr SetIamPolicy( google::cloud::cpp::compute::disks::v1::SetIamPolicyRequest const& request); @@ -233,20 +297,60 @@ class DisksConnection { SetLabels( google::cloud::cpp::compute::disks::v1::SetLabelsRequest const& request); + virtual StatusOr SetLabels( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::disks::v1::SetLabelsRequest const& request); + + virtual future> + SetLabels(ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual future> StartAsyncReplication(google::cloud::cpp::compute::disks::v1:: StartAsyncReplicationRequest const& request); + virtual StatusOr + StartAsyncReplication(ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::disks::v1:: + StartAsyncReplicationRequest const& request); + + virtual future> + StartAsyncReplication( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual future> StopAsyncReplication( google::cloud::cpp::compute::disks::v1::StopAsyncReplicationRequest const& request); + virtual StatusOr + StopAsyncReplication( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::disks::v1::StopAsyncReplicationRequest const& + request); + virtual future> + StopAsyncReplication( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + + virtual future> + StopGroupAsyncReplication( + google::cloud::cpp::compute::disks::v1:: + StopGroupAsyncReplicationRequest const& request); + + virtual StatusOr StopGroupAsyncReplication( + ExperimentalTag, NoAwaitTag, google::cloud::cpp::compute::disks::v1:: StopGroupAsyncReplicationRequest const& request); + virtual future> + StopGroupAsyncReplication( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual StatusOr TestIamPermissions( google::cloud::cpp::compute::disks::v1::TestIamPermissionsRequest const& @@ -255,6 +359,14 @@ class DisksConnection { virtual future> UpdateDisk( google::cloud::cpp::compute::disks::v1::UpdateDiskRequest const& request); + + virtual StatusOr UpdateDisk( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::disks::v1::UpdateDiskRequest const& request); + + virtual future> + UpdateDisk(ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); }; GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END diff --git a/google/cloud/compute/disks/v1/internal/disks_rest_connection_impl.cc b/google/cloud/compute/disks/v1/internal/disks_rest_connection_impl.cc index 47bf2c148619b..0a03fd32e270e 100644 --- a/google/cloud/compute/disks/v1/internal/disks_rest_connection_impl.cc +++ b/google/cloud/compute/disks/v1/internal/disks_rest_connection_impl.cc @@ -23,6 +23,7 @@ #include "google/cloud/internal/async_rest_long_running_operation_custom.h" #include "google/cloud/internal/extract_long_running_result.h" #include "google/cloud/internal/pagination_range.h" +#include "google/cloud/internal/rest_lro_helpers.h" #include "google/cloud/internal/rest_retry_loop.h" #include "google/cloud/rest_options.h" #include @@ -102,6 +103,79 @@ DisksRestConnectionImpl::AddResourcePolicies( }); } +StatusOr +DisksRestConnectionImpl::AddResourcePolicies( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::disks::v1::AddResourcePoliciesRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->AddResourcePolicies(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::disks::v1:: + AddResourcePoliciesRequest const& request) { + return stub_->AddResourcePolicies(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +DisksRestConnectionImpl::AddResourcePolicies( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::zone_operations::v1::DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::zone_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::zone_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation]( + std::string const&, + google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest& + r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_zone(info.zone); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::zone_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_zone(info.zone); + r.set_operation(info.operation); + }); +} + StreamRange< std::pair> DisksRestConnectionImpl::AggregatedListDisks( @@ -200,6 +274,78 @@ DisksRestConnectionImpl::BulkInsert( }); } +StatusOr +DisksRestConnectionImpl::BulkInsert( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::disks::v1::BulkInsertRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->BulkInsert(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::disks::v1::BulkInsertRequest const& + request) { + return stub_->BulkInsert(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +DisksRestConnectionImpl::BulkInsert( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::zone_operations::v1::DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::zone_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::zone_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation]( + std::string const&, + google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest& + r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_zone(info.zone); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::zone_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_zone(info.zone); + r.set_operation(info.operation); + }); +} + future> DisksRestConnectionImpl::CreateSnapshot( google::cloud::cpp::compute::disks::v1::CreateSnapshotRequest const& @@ -261,6 +407,80 @@ DisksRestConnectionImpl::CreateSnapshot( }); } +StatusOr +DisksRestConnectionImpl::CreateSnapshot( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::disks::v1::CreateSnapshotRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateSnapshot(request), + [this]( + rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::disks::v1::CreateSnapshotRequest const& + request) { + return stub_->CreateSnapshot(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +DisksRestConnectionImpl::CreateSnapshot( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::zone_operations::v1::DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::zone_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::zone_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation]( + std::string const&, + google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest& + r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_zone(info.zone); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::zone_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_zone(info.zone); + r.set_operation(info.operation); + }); +} + future> DisksRestConnectionImpl::DeleteDisk( google::cloud::cpp::compute::disks::v1::DeleteDiskRequest const& request) { @@ -321,6 +541,78 @@ DisksRestConnectionImpl::DeleteDisk( }); } +StatusOr +DisksRestConnectionImpl::DeleteDisk( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::disks::v1::DeleteDiskRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteDisk(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::disks::v1::DeleteDiskRequest const& + request) { + return stub_->DeleteDisk(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +DisksRestConnectionImpl::DeleteDisk( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::zone_operations::v1::DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::zone_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::zone_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation]( + std::string const&, + google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest& + r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_zone(info.zone); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::zone_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_zone(info.zone); + r.set_operation(info.operation); + }); +} + StatusOr DisksRestConnectionImpl::GetDisk( google::cloud::cpp::compute::disks::v1::GetDiskRequest const& request) { @@ -412,6 +704,78 @@ DisksRestConnectionImpl::InsertDisk( }); } +StatusOr +DisksRestConnectionImpl::InsertDisk( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::disks::v1::InsertDiskRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->InsertDisk(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::disks::v1::InsertDiskRequest const& + request) { + return stub_->InsertDisk(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +DisksRestConnectionImpl::InsertDisk( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::zone_operations::v1::DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::zone_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::zone_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation]( + std::string const&, + google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest& + r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_zone(info.zone); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::zone_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_zone(info.zone); + r.set_operation(info.operation); + }); +} + StreamRange DisksRestConnectionImpl::ListDisks( google::cloud::cpp::compute::disks::v1::ListDisksRequest request) { @@ -508,18 +872,91 @@ DisksRestConnectionImpl::RemoveResourcePolicies( }); } -future> -DisksRestConnectionImpl::Resize( - google::cloud::cpp::compute::disks::v1::ResizeRequest const& request) { +StatusOr +DisksRestConnectionImpl::RemoveResourcePolicies( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::disks::v1::RemoveResourcePoliciesRequest const& + request) { auto current = google::cloud::internal::SaveCurrentOptions(); - return rest_internal::AsyncRestLongRunningOperation< - google::cloud::cpp::compute::v1::Operation, - google::cloud::cpp::compute::v1::Operation, - google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest, - google::cloud::cpp::compute::zone_operations::v1::DeleteOperationRequest>( - background_->cq(), current, request, - [stub = stub_]( - CompletionQueue& cq, + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->RemoveResourcePolicies(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::disks::v1:: + RemoveResourcePoliciesRequest const& request) { + return stub_->RemoveResourcePolicies(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +DisksRestConnectionImpl::RemoveResourcePolicies( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::zone_operations::v1::DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::zone_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::zone_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation]( + std::string const&, + google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest& + r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_zone(info.zone); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::zone_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_zone(info.zone); + r.set_operation(info.operation); + }); +} + +future> +DisksRestConnectionImpl::Resize( + google::cloud::cpp::compute::disks::v1::ResizeRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::zone_operations::v1::DeleteOperationRequest>( + background_->cq(), current, request, + [stub = stub_]( + CompletionQueue& cq, std::unique_ptr context, google::cloud::internal::ImmutableOptions options, google::cloud::cpp::compute::disks::v1::ResizeRequest const& @@ -568,6 +1005,78 @@ DisksRestConnectionImpl::Resize( }); } +StatusOr +DisksRestConnectionImpl::Resize( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::disks::v1::ResizeRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->Resize(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::disks::v1::ResizeRequest const& + request) { + return stub_->Resize(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +DisksRestConnectionImpl::Resize( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::zone_operations::v1::DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::zone_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::zone_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation]( + std::string const&, + google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest& + r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_zone(info.zone); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::zone_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_zone(info.zone); + r.set_operation(info.operation); + }); +} + StatusOr DisksRestConnectionImpl::SetIamPolicy( google::cloud::cpp::compute::disks::v1::SetIamPolicyRequest const& @@ -644,6 +1153,78 @@ DisksRestConnectionImpl::SetLabels( }); } +StatusOr +DisksRestConnectionImpl::SetLabels( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::disks::v1::SetLabelsRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->SetLabels(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::disks::v1::SetLabelsRequest const& + request) { + return stub_->SetLabels(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +DisksRestConnectionImpl::SetLabels( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::zone_operations::v1::DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::zone_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::zone_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation]( + std::string const&, + google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest& + r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_zone(info.zone); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::zone_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_zone(info.zone); + r.set_operation(info.operation); + }); +} + future> DisksRestConnectionImpl::StartAsyncReplication( google::cloud::cpp::compute::disks::v1::StartAsyncReplicationRequest const& @@ -704,6 +1285,79 @@ DisksRestConnectionImpl::StartAsyncReplication( }); } +StatusOr +DisksRestConnectionImpl::StartAsyncReplication( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::disks::v1::StartAsyncReplicationRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->StartAsyncReplication(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::disks::v1:: + StartAsyncReplicationRequest const& request) { + return stub_->StartAsyncReplication(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +DisksRestConnectionImpl::StartAsyncReplication( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::zone_operations::v1::DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::zone_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::zone_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation]( + std::string const&, + google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest& + r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_zone(info.zone); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::zone_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_zone(info.zone); + r.set_operation(info.operation); + }); +} + future> DisksRestConnectionImpl::StopAsyncReplication( google::cloud::cpp::compute::disks::v1::StopAsyncReplicationRequest const& @@ -764,6 +1418,79 @@ DisksRestConnectionImpl::StopAsyncReplication( }); } +StatusOr +DisksRestConnectionImpl::StopAsyncReplication( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::disks::v1::StopAsyncReplicationRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->StopAsyncReplication(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::disks::v1:: + StopAsyncReplicationRequest const& request) { + return stub_->StopAsyncReplication(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +DisksRestConnectionImpl::StopAsyncReplication( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::zone_operations::v1::DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::zone_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::zone_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation]( + std::string const&, + google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest& + r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_zone(info.zone); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::zone_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_zone(info.zone); + r.set_operation(info.operation); + }); +} + future> DisksRestConnectionImpl::StopGroupAsyncReplication( google::cloud::cpp::compute::disks::v1:: @@ -824,6 +1551,79 @@ DisksRestConnectionImpl::StopGroupAsyncReplication( }); } +StatusOr +DisksRestConnectionImpl::StopGroupAsyncReplication( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::disks::v1:: + StopGroupAsyncReplicationRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->StopGroupAsyncReplication(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::disks::v1:: + StopGroupAsyncReplicationRequest const& request) { + return stub_->StopGroupAsyncReplication(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +DisksRestConnectionImpl::StopGroupAsyncReplication( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::zone_operations::v1::DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::zone_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::zone_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation]( + std::string const&, + google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest& + r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_zone(info.zone); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::zone_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_zone(info.zone); + r.set_operation(info.operation); + }); +} + StatusOr DisksRestConnectionImpl::TestIamPermissions( google::cloud::cpp::compute::disks::v1::TestIamPermissionsRequest const& @@ -900,6 +1700,78 @@ DisksRestConnectionImpl::UpdateDisk( }); } +StatusOr +DisksRestConnectionImpl::UpdateDisk( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::disks::v1::UpdateDiskRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UpdateDisk(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::disks::v1::UpdateDiskRequest const& + request) { + return stub_->UpdateDisk(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +DisksRestConnectionImpl::UpdateDisk( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::zone_operations::v1::DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::zone_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::zone_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation]( + std::string const&, + google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest& + r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_zone(info.zone); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::zone_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_zone(info.zone); + r.set_operation(info.operation); + }); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace compute_disks_v1_internal } // namespace cloud diff --git a/google/cloud/compute/disks/v1/internal/disks_rest_connection_impl.h b/google/cloud/compute/disks/v1/internal/disks_rest_connection_impl.h index ea1c939095d7d..9cec5a654e541 100644 --- a/google/cloud/compute/disks/v1/internal/disks_rest_connection_impl.h +++ b/google/cloud/compute/disks/v1/internal/disks_rest_connection_impl.h @@ -54,6 +54,16 @@ class DisksRestConnectionImpl : public compute_disks_v1::DisksConnection { google::cloud::cpp::compute::disks::v1::AddResourcePoliciesRequest const& request) override; + StatusOr AddResourcePolicies( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::disks::v1::AddResourcePoliciesRequest const& + request) override; + + future> + AddResourcePolicies( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StreamRange< std::pair> AggregatedListDisks( @@ -64,14 +74,41 @@ class DisksRestConnectionImpl : public compute_disks_v1::DisksConnection { google::cloud::cpp::compute::disks::v1::BulkInsertRequest const& request) override; + StatusOr BulkInsert( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::disks::v1::BulkInsertRequest const& request) + override; + + future> BulkInsert( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> CreateSnapshot( google::cloud::cpp::compute::disks::v1::CreateSnapshotRequest const& request) override; + StatusOr CreateSnapshot( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::disks::v1::CreateSnapshotRequest const& + request) override; + + future> CreateSnapshot( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> DeleteDisk( google::cloud::cpp::compute::disks::v1::DeleteDiskRequest const& request) override; + StatusOr DeleteDisk( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::disks::v1::DeleteDiskRequest const& request) + override; + + future> DeleteDisk( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StatusOr GetDisk( google::cloud::cpp::compute::disks::v1::GetDiskRequest const& request) override; @@ -84,6 +121,15 @@ class DisksRestConnectionImpl : public compute_disks_v1::DisksConnection { google::cloud::cpp::compute::disks::v1::InsertDiskRequest const& request) override; + StatusOr InsertDisk( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::disks::v1::InsertDiskRequest const& request) + override; + + future> InsertDisk( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StreamRange ListDisks( google::cloud::cpp::compute::disks::v1::ListDisksRequest request) override; @@ -93,10 +139,29 @@ class DisksRestConnectionImpl : public compute_disks_v1::DisksConnection { google::cloud::cpp::compute::disks::v1:: RemoveResourcePoliciesRequest const& request) override; + StatusOr RemoveResourcePolicies( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::disks::v1:: + RemoveResourcePoliciesRequest const& request) override; + + future> + RemoveResourcePolicies( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> Resize( google::cloud::cpp::compute::disks::v1::ResizeRequest const& request) override; + StatusOr Resize( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::disks::v1::ResizeRequest const& request) + override; + + future> Resize( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StatusOr SetIamPolicy( google::cloud::cpp::compute::disks::v1::SetIamPolicyRequest const& request) override; @@ -105,21 +170,61 @@ class DisksRestConnectionImpl : public compute_disks_v1::DisksConnection { google::cloud::cpp::compute::disks::v1::SetLabelsRequest const& request) override; + StatusOr SetLabels( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::disks::v1::SetLabelsRequest const& request) + override; + + future> SetLabels( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> StartAsyncReplication( google::cloud::cpp::compute::disks::v1:: StartAsyncReplicationRequest const& request) override; + StatusOr StartAsyncReplication( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::disks::v1:: + StartAsyncReplicationRequest const& request) override; + + future> + StartAsyncReplication( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> StopAsyncReplication( google::cloud::cpp::compute::disks::v1::StopAsyncReplicationRequest const& request) override; + StatusOr StopAsyncReplication( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::disks::v1::StopAsyncReplicationRequest const& + request) override; + + future> + StopAsyncReplication( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> StopGroupAsyncReplication( google::cloud::cpp::compute::disks::v1:: StopGroupAsyncReplicationRequest const& request) override; + StatusOr + StopGroupAsyncReplication( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::disks::v1:: + StopGroupAsyncReplicationRequest const& request) override; + + future> + StopGroupAsyncReplication( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StatusOr TestIamPermissions( google::cloud::cpp::compute::disks::v1::TestIamPermissionsRequest const& @@ -129,6 +234,15 @@ class DisksRestConnectionImpl : public compute_disks_v1::DisksConnection { google::cloud::cpp::compute::disks::v1::UpdateDiskRequest const& request) override; + StatusOr UpdateDisk( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::disks::v1::UpdateDiskRequest const& request) + override; + + future> UpdateDisk( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + private: static std::unique_ptr retry_policy( Options const& options) { diff --git a/google/cloud/compute/disks/v1/internal/disks_tracing_connection.cc b/google/cloud/compute/disks/v1/internal/disks_tracing_connection.cc index eaa936957a046..9213599d1cc5b 100644 --- a/google/cloud/compute/disks/v1/internal/disks_tracing_connection.cc +++ b/google/cloud/compute/disks/v1/internal/disks_tracing_connection.cc @@ -44,6 +44,30 @@ DisksTracingConnection::AddResourcePolicies( child_->AddResourcePolicies(request)); } +StatusOr +DisksTracingConnection::AddResourcePolicies( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::disks::v1::AddResourcePoliciesRequest const& + request) { + auto span = internal::MakeSpan( + "compute_disks_v1::DisksConnection::AddResourcePolicies"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->AddResourcePolicies(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +DisksTracingConnection::AddResourcePolicies( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_disks_v1::DisksConnection::AddResourcePolicies"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->AddResourcePolicies( + ExperimentalTag{}, operation)); +} + StreamRange< std::pair> DisksTracingConnection::AggregatedListDisks( @@ -67,6 +91,28 @@ DisksTracingConnection::BulkInsert( return internal::EndSpan(std::move(span), child_->BulkInsert(request)); } +StatusOr +DisksTracingConnection::BulkInsert( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::disks::v1::BulkInsertRequest const& request) { + auto span = + internal::MakeSpan("compute_disks_v1::DisksConnection::BulkInsert"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->BulkInsert(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +DisksTracingConnection::BulkInsert( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = + internal::MakeSpan("compute_disks_v1::DisksConnection::BulkInsert"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->BulkInsert(ExperimentalTag{}, operation)); +} + future> DisksTracingConnection::CreateSnapshot( google::cloud::cpp::compute::disks::v1::CreateSnapshotRequest const& @@ -77,6 +123,29 @@ DisksTracingConnection::CreateSnapshot( return internal::EndSpan(std::move(span), child_->CreateSnapshot(request)); } +StatusOr +DisksTracingConnection::CreateSnapshot( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::disks::v1::CreateSnapshotRequest const& + request) { + auto span = + internal::MakeSpan("compute_disks_v1::DisksConnection::CreateSnapshot"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->CreateSnapshot(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +DisksTracingConnection::CreateSnapshot( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = + internal::MakeSpan("compute_disks_v1::DisksConnection::CreateSnapshot"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->CreateSnapshot(ExperimentalTag{}, operation)); +} + future> DisksTracingConnection::DeleteDisk( google::cloud::cpp::compute::disks::v1::DeleteDiskRequest const& request) { @@ -86,6 +155,28 @@ DisksTracingConnection::DeleteDisk( return internal::EndSpan(std::move(span), child_->DeleteDisk(request)); } +StatusOr +DisksTracingConnection::DeleteDisk( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::disks::v1::DeleteDiskRequest const& request) { + auto span = + internal::MakeSpan("compute_disks_v1::DisksConnection::DeleteDisk"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->DeleteDisk(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +DisksTracingConnection::DeleteDisk( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = + internal::MakeSpan("compute_disks_v1::DisksConnection::DeleteDisk"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->DeleteDisk(ExperimentalTag{}, operation)); +} + StatusOr DisksTracingConnection::GetDisk( google::cloud::cpp::compute::disks::v1::GetDiskRequest const& request) { auto span = internal::MakeSpan("compute_disks_v1::DisksConnection::GetDisk"); @@ -112,6 +203,28 @@ DisksTracingConnection::InsertDisk( return internal::EndSpan(std::move(span), child_->InsertDisk(request)); } +StatusOr +DisksTracingConnection::InsertDisk( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::disks::v1::InsertDiskRequest const& request) { + auto span = + internal::MakeSpan("compute_disks_v1::DisksConnection::InsertDisk"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->InsertDisk(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +DisksTracingConnection::InsertDisk( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = + internal::MakeSpan("compute_disks_v1::DisksConnection::InsertDisk"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->InsertDisk(ExperimentalTag{}, operation)); +} + StreamRange DisksTracingConnection::ListDisks( google::cloud::cpp::compute::disks::v1::ListDisksRequest request) { @@ -134,6 +247,30 @@ DisksTracingConnection::RemoveResourcePolicies( child_->RemoveResourcePolicies(request)); } +StatusOr +DisksTracingConnection::RemoveResourcePolicies( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::disks::v1::RemoveResourcePoliciesRequest const& + request) { + auto span = internal::MakeSpan( + "compute_disks_v1::DisksConnection::RemoveResourcePolicies"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->RemoveResourcePolicies(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +DisksTracingConnection::RemoveResourcePolicies( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_disks_v1::DisksConnection::RemoveResourcePolicies"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->RemoveResourcePolicies( + ExperimentalTag{}, operation)); +} + future> DisksTracingConnection::Resize( google::cloud::cpp::compute::disks::v1::ResizeRequest const& request) { @@ -142,6 +279,26 @@ DisksTracingConnection::Resize( return internal::EndSpan(std::move(span), child_->Resize(request)); } +StatusOr +DisksTracingConnection::Resize( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::disks::v1::ResizeRequest const& request) { + auto span = internal::MakeSpan("compute_disks_v1::DisksConnection::Resize"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->Resize(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +DisksTracingConnection::Resize( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan("compute_disks_v1::DisksConnection::Resize"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->Resize(ExperimentalTag{}, operation)); +} + StatusOr DisksTracingConnection::SetIamPolicy( google::cloud::cpp::compute::disks::v1::SetIamPolicyRequest const& @@ -161,6 +318,28 @@ DisksTracingConnection::SetLabels( return internal::EndSpan(std::move(span), child_->SetLabels(request)); } +StatusOr +DisksTracingConnection::SetLabels( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::disks::v1::SetLabelsRequest const& request) { + auto span = + internal::MakeSpan("compute_disks_v1::DisksConnection::SetLabels"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->SetLabels(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +DisksTracingConnection::SetLabels( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = + internal::MakeSpan("compute_disks_v1::DisksConnection::SetLabels"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->SetLabels(ExperimentalTag{}, operation)); +} + future> DisksTracingConnection::StartAsyncReplication( google::cloud::cpp::compute::disks::v1::StartAsyncReplicationRequest const& @@ -172,6 +351,30 @@ DisksTracingConnection::StartAsyncReplication( child_->StartAsyncReplication(request)); } +StatusOr +DisksTracingConnection::StartAsyncReplication( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::disks::v1::StartAsyncReplicationRequest const& + request) { + auto span = internal::MakeSpan( + "compute_disks_v1::DisksConnection::StartAsyncReplication"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->StartAsyncReplication(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +DisksTracingConnection::StartAsyncReplication( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_disks_v1::DisksConnection::StartAsyncReplication"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->StartAsyncReplication( + ExperimentalTag{}, operation)); +} + future> DisksTracingConnection::StopAsyncReplication( google::cloud::cpp::compute::disks::v1::StopAsyncReplicationRequest const& @@ -183,6 +386,30 @@ DisksTracingConnection::StopAsyncReplication( child_->StopAsyncReplication(request)); } +StatusOr +DisksTracingConnection::StopAsyncReplication( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::disks::v1::StopAsyncReplicationRequest const& + request) { + auto span = internal::MakeSpan( + "compute_disks_v1::DisksConnection::StopAsyncReplication"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->StopAsyncReplication(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +DisksTracingConnection::StopAsyncReplication( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_disks_v1::DisksConnection::StopAsyncReplication"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->StopAsyncReplication( + ExperimentalTag{}, operation)); +} + future> DisksTracingConnection::StopGroupAsyncReplication( google::cloud::cpp::compute::disks::v1:: @@ -194,6 +421,30 @@ DisksTracingConnection::StopGroupAsyncReplication( child_->StopGroupAsyncReplication(request)); } +StatusOr +DisksTracingConnection::StopGroupAsyncReplication( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::disks::v1:: + StopGroupAsyncReplicationRequest const& request) { + auto span = internal::MakeSpan( + "compute_disks_v1::DisksConnection::StopGroupAsyncReplication"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->StopGroupAsyncReplication(ExperimentalTag{}, NoAwaitTag{}, + request)); +} + +future> +DisksTracingConnection::StopGroupAsyncReplication( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_disks_v1::DisksConnection::StopGroupAsyncReplication"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->StopGroupAsyncReplication( + ExperimentalTag{}, operation)); +} + StatusOr DisksTracingConnection::TestIamPermissions( google::cloud::cpp::compute::disks::v1::TestIamPermissionsRequest const& @@ -213,6 +464,28 @@ DisksTracingConnection::UpdateDisk( return internal::EndSpan(std::move(span), child_->UpdateDisk(request)); } +StatusOr +DisksTracingConnection::UpdateDisk( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::disks::v1::UpdateDiskRequest const& request) { + auto span = + internal::MakeSpan("compute_disks_v1::DisksConnection::UpdateDisk"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->UpdateDisk(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +DisksTracingConnection::UpdateDisk( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = + internal::MakeSpan("compute_disks_v1::DisksConnection::UpdateDisk"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->UpdateDisk(ExperimentalTag{}, operation)); +} + #endif // GOOGLE_CLOUD_CPP_HAVE_OPENTELEMETRY std::shared_ptr MakeDisksTracingConnection( diff --git a/google/cloud/compute/disks/v1/internal/disks_tracing_connection.h b/google/cloud/compute/disks/v1/internal/disks_tracing_connection.h index 84446cdbcfea5..a6df0f21bfe20 100644 --- a/google/cloud/compute/disks/v1/internal/disks_tracing_connection.h +++ b/google/cloud/compute/disks/v1/internal/disks_tracing_connection.h @@ -44,6 +44,16 @@ class DisksTracingConnection : public compute_disks_v1::DisksConnection { google::cloud::cpp::compute::disks::v1::AddResourcePoliciesRequest const& request) override; + StatusOr AddResourcePolicies( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::disks::v1::AddResourcePoliciesRequest const& + request) override; + + future> + AddResourcePolicies( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StreamRange< std::pair> AggregatedListDisks( @@ -54,14 +64,41 @@ class DisksTracingConnection : public compute_disks_v1::DisksConnection { google::cloud::cpp::compute::disks::v1::BulkInsertRequest const& request) override; + StatusOr BulkInsert( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::disks::v1::BulkInsertRequest const& request) + override; + + future> BulkInsert( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> CreateSnapshot( google::cloud::cpp::compute::disks::v1::CreateSnapshotRequest const& request) override; + StatusOr CreateSnapshot( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::disks::v1::CreateSnapshotRequest const& + request) override; + + future> CreateSnapshot( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> DeleteDisk( google::cloud::cpp::compute::disks::v1::DeleteDiskRequest const& request) override; + StatusOr DeleteDisk( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::disks::v1::DeleteDiskRequest const& request) + override; + + future> DeleteDisk( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StatusOr GetDisk( google::cloud::cpp::compute::disks::v1::GetDiskRequest const& request) override; @@ -74,6 +111,15 @@ class DisksTracingConnection : public compute_disks_v1::DisksConnection { google::cloud::cpp::compute::disks::v1::InsertDiskRequest const& request) override; + StatusOr InsertDisk( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::disks::v1::InsertDiskRequest const& request) + override; + + future> InsertDisk( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StreamRange ListDisks( google::cloud::cpp::compute::disks::v1::ListDisksRequest request) override; @@ -83,10 +129,29 @@ class DisksTracingConnection : public compute_disks_v1::DisksConnection { google::cloud::cpp::compute::disks::v1:: RemoveResourcePoliciesRequest const& request) override; + StatusOr RemoveResourcePolicies( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::disks::v1:: + RemoveResourcePoliciesRequest const& request) override; + + future> + RemoveResourcePolicies( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> Resize( google::cloud::cpp::compute::disks::v1::ResizeRequest const& request) override; + StatusOr Resize( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::disks::v1::ResizeRequest const& request) + override; + + future> Resize( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StatusOr SetIamPolicy( google::cloud::cpp::compute::disks::v1::SetIamPolicyRequest const& request) override; @@ -95,21 +160,61 @@ class DisksTracingConnection : public compute_disks_v1::DisksConnection { google::cloud::cpp::compute::disks::v1::SetLabelsRequest const& request) override; + StatusOr SetLabels( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::disks::v1::SetLabelsRequest const& request) + override; + + future> SetLabels( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> StartAsyncReplication( google::cloud::cpp::compute::disks::v1:: StartAsyncReplicationRequest const& request) override; + StatusOr StartAsyncReplication( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::disks::v1:: + StartAsyncReplicationRequest const& request) override; + + future> + StartAsyncReplication( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> StopAsyncReplication( google::cloud::cpp::compute::disks::v1::StopAsyncReplicationRequest const& request) override; + StatusOr StopAsyncReplication( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::disks::v1::StopAsyncReplicationRequest const& + request) override; + + future> + StopAsyncReplication( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> StopGroupAsyncReplication( google::cloud::cpp::compute::disks::v1:: StopGroupAsyncReplicationRequest const& request) override; + StatusOr + StopGroupAsyncReplication( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::disks::v1:: + StopGroupAsyncReplicationRequest const& request) override; + + future> + StopGroupAsyncReplication( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StatusOr TestIamPermissions( google::cloud::cpp::compute::disks::v1::TestIamPermissionsRequest const& @@ -119,6 +224,15 @@ class DisksTracingConnection : public compute_disks_v1::DisksConnection { google::cloud::cpp::compute::disks::v1::UpdateDiskRequest const& request) override; + StatusOr UpdateDisk( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::disks::v1::UpdateDiskRequest const& request) + override; + + future> UpdateDisk( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + private: std::shared_ptr child_; }; diff --git a/google/cloud/compute/disks/v1/mocks/mock_disks_connection.h b/google/cloud/compute/disks/v1/mocks/mock_disks_connection.h index aecdfb49c66ad..064dec2aca1f8 100644 --- a/google/cloud/compute/disks/v1/mocks/mock_disks_connection.h +++ b/google/cloud/compute/disks/v1/mocks/mock_disks_connection.h @@ -53,6 +53,19 @@ class MockDisksConnection : public compute_disks_v1::DisksConnection { request), (override)); + MOCK_METHOD( + StatusOr, AddResourcePolicies, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::disks::v1::AddResourcePoliciesRequest const& + request), + (override)); + + MOCK_METHOD(future>, + AddResourcePolicies, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD( (StreamRange>), @@ -67,6 +80,18 @@ class MockDisksConnection : public compute_disks_v1::DisksConnection { request), (override)); + MOCK_METHOD(StatusOr, BulkInsert, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::disks::v1::BulkInsertRequest const& + request), + (override)); + + MOCK_METHOD(future>, + BulkInsert, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD( future>, CreateSnapshot, @@ -74,12 +99,37 @@ class MockDisksConnection : public compute_disks_v1::DisksConnection { request), (override)); + MOCK_METHOD( + StatusOr, CreateSnapshot, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::disks::v1::CreateSnapshotRequest const& + request), + (override)); + + MOCK_METHOD(future>, + CreateSnapshot, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD(future>, DeleteDisk, (google::cloud::cpp::compute::disks::v1::DeleteDiskRequest const& request), (override)); + MOCK_METHOD(StatusOr, DeleteDisk, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::disks::v1::DeleteDiskRequest const& + request), + (override)); + + MOCK_METHOD(future>, + DeleteDisk, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr, GetDisk, (google::cloud::cpp::compute::disks::v1::GetDiskRequest const& request), @@ -97,6 +147,18 @@ class MockDisksConnection : public compute_disks_v1::DisksConnection { request), (override)); + MOCK_METHOD(StatusOr, InsertDisk, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::disks::v1::InsertDiskRequest const& + request), + (override)); + + MOCK_METHOD(future>, + InsertDisk, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD( (StreamRange), ListDisks, (google::cloud::cpp::compute::disks::v1::ListDisksRequest request), @@ -108,11 +170,36 @@ class MockDisksConnection : public compute_disks_v1::DisksConnection { RemoveResourcePoliciesRequest const& request), (override)); + MOCK_METHOD(StatusOr, + RemoveResourcePolicies, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::disks::v1:: + RemoveResourcePoliciesRequest const& request), + (override)); + + MOCK_METHOD(future>, + RemoveResourcePolicies, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD( future>, Resize, (google::cloud::cpp::compute::disks::v1::ResizeRequest const& request), (override)); + MOCK_METHOD( + StatusOr, Resize, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::disks::v1::ResizeRequest const& request), + (override)); + + MOCK_METHOD(future>, + Resize, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr, SetIamPolicy, (google::cloud::cpp::compute::disks::v1::SetIamPolicyRequest const& @@ -124,24 +211,75 @@ class MockDisksConnection : public compute_disks_v1::DisksConnection { (google::cloud::cpp::compute::disks::v1::SetLabelsRequest const& request), (override)); + MOCK_METHOD( + StatusOr, SetLabels, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::disks::v1::SetLabelsRequest const& request), + (override)); + + MOCK_METHOD(future>, + SetLabels, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD(future>, StartAsyncReplication, (google::cloud::cpp::compute::disks::v1:: StartAsyncReplicationRequest const& request), (override)); + MOCK_METHOD(StatusOr, + StartAsyncReplication, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::disks::v1:: + StartAsyncReplicationRequest const& request), + (override)); + + MOCK_METHOD(future>, + StartAsyncReplication, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD(future>, StopAsyncReplication, (google::cloud::cpp::compute::disks::v1:: StopAsyncReplicationRequest const& request), (override)); + MOCK_METHOD(StatusOr, + StopAsyncReplication, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::disks::v1:: + StopAsyncReplicationRequest const& request), + (override)); + + MOCK_METHOD(future>, + StopAsyncReplication, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD(future>, StopGroupAsyncReplication, (google::cloud::cpp::compute::disks::v1:: StopGroupAsyncReplicationRequest const& request), (override)); + MOCK_METHOD(StatusOr, + StopGroupAsyncReplication, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::disks::v1:: + StopGroupAsyncReplicationRequest const& request), + (override)); + + MOCK_METHOD(future>, + StopGroupAsyncReplication, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr, TestIamPermissions, @@ -154,6 +292,18 @@ class MockDisksConnection : public compute_disks_v1::DisksConnection { (google::cloud::cpp::compute::disks::v1::UpdateDiskRequest const& request), (override)); + + MOCK_METHOD(StatusOr, UpdateDisk, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::disks::v1::UpdateDiskRequest const& + request), + (override)); + + MOCK_METHOD(future>, + UpdateDisk, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); }; GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END diff --git a/google/cloud/compute/external_vpn_gateways/v1/external_vpn_gateways_connection.cc b/google/cloud/compute/external_vpn_gateways/v1/external_vpn_gateways_connection.cc index cff00c7ebb84b..18bf3fd393fbe 100644 --- a/google/cloud/compute/external_vpn_gateways/v1/external_vpn_gateways_connection.cc +++ b/google/cloud/compute/external_vpn_gateways/v1/external_vpn_gateways_connection.cc @@ -46,6 +46,23 @@ ExternalVpnGatewaysConnection::DeleteExternalVpnGateway( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +ExternalVpnGatewaysConnection::DeleteExternalVpnGateway( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::external_vpn_gateways::v1:: + DeleteExternalVpnGatewayRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +ExternalVpnGatewaysConnection::DeleteExternalVpnGateway( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr ExternalVpnGatewaysConnection::GetExternalVpnGateway( google::cloud::cpp::compute::external_vpn_gateways::v1:: @@ -62,6 +79,23 @@ ExternalVpnGatewaysConnection::InsertExternalVpnGateway( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +ExternalVpnGatewaysConnection::InsertExternalVpnGateway( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::external_vpn_gateways::v1:: + InsertExternalVpnGatewayRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +ExternalVpnGatewaysConnection::InsertExternalVpnGateway( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StreamRange ExternalVpnGatewaysConnection::ListExternalVpnGateways( google::cloud::cpp::compute::external_vpn_gateways::v1:: @@ -79,6 +113,23 @@ ExternalVpnGatewaysConnection::SetLabels( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +ExternalVpnGatewaysConnection::SetLabels( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::external_vpn_gateways::v1:: + SetLabelsRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +ExternalVpnGatewaysConnection::SetLabels( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr ExternalVpnGatewaysConnection::TestIamPermissions( google::cloud::cpp::compute::external_vpn_gateways::v1:: diff --git a/google/cloud/compute/external_vpn_gateways/v1/external_vpn_gateways_connection.h b/google/cloud/compute/external_vpn_gateways/v1/external_vpn_gateways_connection.h index 4d16fa1362d65..3a94c096a2fec 100644 --- a/google/cloud/compute/external_vpn_gateways/v1/external_vpn_gateways_connection.h +++ b/google/cloud/compute/external_vpn_gateways/v1/external_vpn_gateways_connection.h @@ -23,8 +23,10 @@ #include "google/cloud/compute/external_vpn_gateways/v1/external_vpn_gateways_connection_idempotency_policy.h" #include "google/cloud/compute/external_vpn_gateways/v1/internal/external_vpn_gateways_retry_traits.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/internal/retry_policy_impl.h" +#include "google/cloud/no_await_tag.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" #include "google/cloud/status_or.h" @@ -194,6 +196,17 @@ class ExternalVpnGatewaysConnection { google::cloud::cpp::compute::external_vpn_gateways::v1:: DeleteExternalVpnGatewayRequest const& request); + virtual StatusOr + DeleteExternalVpnGateway( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::external_vpn_gateways::v1:: + DeleteExternalVpnGatewayRequest const& request); + + virtual future> + DeleteExternalVpnGateway( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual StatusOr GetExternalVpnGateway(google::cloud::cpp::compute::external_vpn_gateways::v1:: GetExternalVpnGatewayRequest const& request); @@ -203,6 +216,17 @@ class ExternalVpnGatewaysConnection { google::cloud::cpp::compute::external_vpn_gateways::v1:: InsertExternalVpnGatewayRequest const& request); + virtual StatusOr + InsertExternalVpnGateway( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::external_vpn_gateways::v1:: + InsertExternalVpnGatewayRequest const& request); + + virtual future> + InsertExternalVpnGateway( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual StreamRange ListExternalVpnGateways(google::cloud::cpp::compute::external_vpn_gateways:: v1::ListExternalVpnGatewaysRequest request); @@ -211,6 +235,15 @@ class ExternalVpnGatewaysConnection { SetLabels(google::cloud::cpp::compute::external_vpn_gateways::v1:: SetLabelsRequest const& request); + virtual StatusOr SetLabels( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::external_vpn_gateways::v1:: + SetLabelsRequest const& request); + + virtual future> + SetLabels(ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual StatusOr TestIamPermissions(google::cloud::cpp::compute::external_vpn_gateways::v1:: TestIamPermissionsRequest const& request); diff --git a/google/cloud/compute/external_vpn_gateways/v1/internal/external_vpn_gateways_rest_connection_impl.cc b/google/cloud/compute/external_vpn_gateways/v1/internal/external_vpn_gateways_rest_connection_impl.cc index ac315b1b6d1cd..a5256114c90b1 100644 --- a/google/cloud/compute/external_vpn_gateways/v1/internal/external_vpn_gateways_rest_connection_impl.cc +++ b/google/cloud/compute/external_vpn_gateways/v1/internal/external_vpn_gateways_rest_connection_impl.cc @@ -24,6 +24,7 @@ #include "google/cloud/internal/async_rest_long_running_operation_custom.h" #include "google/cloud/internal/extract_long_running_result.h" #include "google/cloud/internal/pagination_range.h" +#include "google/cloud/internal/rest_lro_helpers.h" #include "google/cloud/internal/rest_retry_loop.h" #include "google/cloud/rest_options.h" #include @@ -103,6 +104,77 @@ ExternalVpnGatewaysRestConnectionImpl::DeleteExternalVpnGateway( }); } +StatusOr +ExternalVpnGatewaysRestConnectionImpl::DeleteExternalVpnGateway( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::external_vpn_gateways::v1:: + DeleteExternalVpnGatewayRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteExternalVpnGateway(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::external_vpn_gateways::v1:: + DeleteExternalVpnGatewayRequest const& request) { + return stub_->DeleteExternalVpnGateway(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +ExternalVpnGatewaysRestConnectionImpl::DeleteExternalVpnGateway( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::global_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }); +} + StatusOr ExternalVpnGatewaysRestConnectionImpl::GetExternalVpnGateway( google::cloud::cpp::compute::external_vpn_gateways::v1:: @@ -177,6 +249,77 @@ ExternalVpnGatewaysRestConnectionImpl::InsertExternalVpnGateway( }); } +StatusOr +ExternalVpnGatewaysRestConnectionImpl::InsertExternalVpnGateway( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::external_vpn_gateways::v1:: + InsertExternalVpnGatewayRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->InsertExternalVpnGateway(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::external_vpn_gateways::v1:: + InsertExternalVpnGatewayRequest const& request) { + return stub_->InsertExternalVpnGateway(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +ExternalVpnGatewaysRestConnectionImpl::InsertExternalVpnGateway( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::global_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }); +} + StreamRange ExternalVpnGatewaysRestConnectionImpl::ListExternalVpnGateways( google::cloud::cpp::compute::external_vpn_gateways::v1:: @@ -275,6 +418,77 @@ ExternalVpnGatewaysRestConnectionImpl::SetLabels( }); } +StatusOr +ExternalVpnGatewaysRestConnectionImpl::SetLabels( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::external_vpn_gateways::v1:: + SetLabelsRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->SetLabels(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::external_vpn_gateways::v1:: + SetLabelsRequest const& request) { + return stub_->SetLabels(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +ExternalVpnGatewaysRestConnectionImpl::SetLabels( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::global_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }); +} + StatusOr ExternalVpnGatewaysRestConnectionImpl::TestIamPermissions( google::cloud::cpp::compute::external_vpn_gateways::v1:: diff --git a/google/cloud/compute/external_vpn_gateways/v1/internal/external_vpn_gateways_rest_connection_impl.h b/google/cloud/compute/external_vpn_gateways/v1/internal/external_vpn_gateways_rest_connection_impl.h index 46b0d8dfba0a9..fbd18229e7844 100644 --- a/google/cloud/compute/external_vpn_gateways/v1/internal/external_vpn_gateways_rest_connection_impl.h +++ b/google/cloud/compute/external_vpn_gateways/v1/internal/external_vpn_gateways_rest_connection_impl.h @@ -58,6 +58,16 @@ class ExternalVpnGatewaysRestConnectionImpl google::cloud::cpp::compute::external_vpn_gateways::v1:: DeleteExternalVpnGatewayRequest const& request) override; + StatusOr DeleteExternalVpnGateway( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::external_vpn_gateways::v1:: + DeleteExternalVpnGatewayRequest const& request) override; + + future> + DeleteExternalVpnGateway( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StatusOr GetExternalVpnGateway( google::cloud::cpp::compute::external_vpn_gateways::v1:: @@ -68,6 +78,16 @@ class ExternalVpnGatewaysRestConnectionImpl google::cloud::cpp::compute::external_vpn_gateways::v1:: InsertExternalVpnGatewayRequest const& request) override; + StatusOr InsertExternalVpnGateway( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::external_vpn_gateways::v1:: + InsertExternalVpnGatewayRequest const& request) override; + + future> + InsertExternalVpnGateway( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StreamRange ListExternalVpnGateways( google::cloud::cpp::compute::external_vpn_gateways::v1:: @@ -77,6 +97,15 @@ class ExternalVpnGatewaysRestConnectionImpl google::cloud::cpp::compute::external_vpn_gateways::v1:: SetLabelsRequest const& request) override; + StatusOr SetLabels( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::external_vpn_gateways::v1:: + SetLabelsRequest const& request) override; + + future> SetLabels( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StatusOr TestIamPermissions(google::cloud::cpp::compute::external_vpn_gateways::v1:: TestIamPermissionsRequest const& request) override; diff --git a/google/cloud/compute/external_vpn_gateways/v1/internal/external_vpn_gateways_tracing_connection.cc b/google/cloud/compute/external_vpn_gateways/v1/internal/external_vpn_gateways_tracing_connection.cc index d7f4c420630ca..a492c9eaa3950 100644 --- a/google/cloud/compute/external_vpn_gateways/v1/internal/external_vpn_gateways_tracing_connection.cc +++ b/google/cloud/compute/external_vpn_gateways/v1/internal/external_vpn_gateways_tracing_connection.cc @@ -48,6 +48,32 @@ ExternalVpnGatewaysTracingConnection::DeleteExternalVpnGateway( child_->DeleteExternalVpnGateway(request)); } +StatusOr +ExternalVpnGatewaysTracingConnection::DeleteExternalVpnGateway( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::external_vpn_gateways::v1:: + DeleteExternalVpnGatewayRequest const& request) { + auto span = internal::MakeSpan( + "compute_external_vpn_gateways_v1::ExternalVpnGatewaysConnection::" + "DeleteExternalVpnGateway"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->DeleteExternalVpnGateway(ExperimentalTag{}, NoAwaitTag{}, + request)); +} + +future> +ExternalVpnGatewaysTracingConnection::DeleteExternalVpnGateway( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_external_vpn_gateways_v1::ExternalVpnGatewaysConnection::" + "DeleteExternalVpnGateway"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->DeleteExternalVpnGateway( + ExperimentalTag{}, operation)); +} + StatusOr ExternalVpnGatewaysTracingConnection::GetExternalVpnGateway( google::cloud::cpp::compute::external_vpn_gateways::v1:: @@ -71,6 +97,32 @@ ExternalVpnGatewaysTracingConnection::InsertExternalVpnGateway( child_->InsertExternalVpnGateway(request)); } +StatusOr +ExternalVpnGatewaysTracingConnection::InsertExternalVpnGateway( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::external_vpn_gateways::v1:: + InsertExternalVpnGatewayRequest const& request) { + auto span = internal::MakeSpan( + "compute_external_vpn_gateways_v1::ExternalVpnGatewaysConnection::" + "InsertExternalVpnGateway"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->InsertExternalVpnGateway(ExperimentalTag{}, NoAwaitTag{}, + request)); +} + +future> +ExternalVpnGatewaysTracingConnection::InsertExternalVpnGateway( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_external_vpn_gateways_v1::ExternalVpnGatewaysConnection::" + "InsertExternalVpnGateway"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->InsertExternalVpnGateway( + ExperimentalTag{}, operation)); +} + StreamRange ExternalVpnGatewaysTracingConnection::ListExternalVpnGateways( google::cloud::cpp::compute::external_vpn_gateways::v1:: @@ -96,6 +148,31 @@ ExternalVpnGatewaysTracingConnection::SetLabels( return internal::EndSpan(std::move(span), child_->SetLabels(request)); } +StatusOr +ExternalVpnGatewaysTracingConnection::SetLabels( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::external_vpn_gateways::v1:: + SetLabelsRequest const& request) { + auto span = internal::MakeSpan( + "compute_external_vpn_gateways_v1::ExternalVpnGatewaysConnection::" + "SetLabels"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->SetLabels(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +ExternalVpnGatewaysTracingConnection::SetLabels( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_external_vpn_gateways_v1::ExternalVpnGatewaysConnection::" + "SetLabels"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->SetLabels(ExperimentalTag{}, operation)); +} + StatusOr ExternalVpnGatewaysTracingConnection::TestIamPermissions( google::cloud::cpp::compute::external_vpn_gateways::v1:: diff --git a/google/cloud/compute/external_vpn_gateways/v1/internal/external_vpn_gateways_tracing_connection.h b/google/cloud/compute/external_vpn_gateways/v1/internal/external_vpn_gateways_tracing_connection.h index 7a2ed6db04078..19271f407ac44 100644 --- a/google/cloud/compute/external_vpn_gateways/v1/internal/external_vpn_gateways_tracing_connection.h +++ b/google/cloud/compute/external_vpn_gateways/v1/internal/external_vpn_gateways_tracing_connection.h @@ -48,6 +48,16 @@ class ExternalVpnGatewaysTracingConnection google::cloud::cpp::compute::external_vpn_gateways::v1:: DeleteExternalVpnGatewayRequest const& request) override; + StatusOr DeleteExternalVpnGateway( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::external_vpn_gateways::v1:: + DeleteExternalVpnGatewayRequest const& request) override; + + future> + DeleteExternalVpnGateway( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StatusOr GetExternalVpnGateway( google::cloud::cpp::compute::external_vpn_gateways::v1:: @@ -58,6 +68,16 @@ class ExternalVpnGatewaysTracingConnection google::cloud::cpp::compute::external_vpn_gateways::v1:: InsertExternalVpnGatewayRequest const& request) override; + StatusOr InsertExternalVpnGateway( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::external_vpn_gateways::v1:: + InsertExternalVpnGatewayRequest const& request) override; + + future> + InsertExternalVpnGateway( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StreamRange ListExternalVpnGateways( google::cloud::cpp::compute::external_vpn_gateways::v1:: @@ -67,6 +87,15 @@ class ExternalVpnGatewaysTracingConnection google::cloud::cpp::compute::external_vpn_gateways::v1:: SetLabelsRequest const& request) override; + StatusOr SetLabels( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::external_vpn_gateways::v1:: + SetLabelsRequest const& request) override; + + future> SetLabels( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StatusOr TestIamPermissions(google::cloud::cpp::compute::external_vpn_gateways::v1:: TestIamPermissionsRequest const& request) override; diff --git a/google/cloud/compute/external_vpn_gateways/v1/mocks/mock_external_vpn_gateways_connection.h b/google/cloud/compute/external_vpn_gateways/v1/mocks/mock_external_vpn_gateways_connection.h index b87411f3dbc78..7bf12b16f397a 100644 --- a/google/cloud/compute/external_vpn_gateways/v1/mocks/mock_external_vpn_gateways_connection.h +++ b/google/cloud/compute/external_vpn_gateways/v1/mocks/mock_external_vpn_gateways_connection.h @@ -54,6 +54,19 @@ class MockExternalVpnGatewaysConnection DeleteExternalVpnGatewayRequest const& request), (override)); + MOCK_METHOD(StatusOr, + DeleteExternalVpnGateway, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::external_vpn_gateways::v1:: + DeleteExternalVpnGatewayRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteExternalVpnGateway, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD(StatusOr, GetExternalVpnGateway, (google::cloud::cpp::compute::external_vpn_gateways::v1:: @@ -66,6 +79,19 @@ class MockExternalVpnGatewaysConnection InsertExternalVpnGatewayRequest const& request), (override)); + MOCK_METHOD(StatusOr, + InsertExternalVpnGateway, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::external_vpn_gateways::v1:: + InsertExternalVpnGatewayRequest const& request), + (override)); + + MOCK_METHOD(future>, + InsertExternalVpnGateway, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD( (StreamRange), ListExternalVpnGateways, @@ -79,6 +105,18 @@ class MockExternalVpnGatewaysConnection SetLabelsRequest const& request), (override)); + MOCK_METHOD(StatusOr, SetLabels, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::external_vpn_gateways::v1:: + SetLabelsRequest const& request), + (override)); + + MOCK_METHOD(future>, + SetLabels, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr, TestIamPermissions, diff --git a/google/cloud/compute/firewall_policies/v1/firewall_policies_connection.cc b/google/cloud/compute/firewall_policies/v1/firewall_policies_connection.cc index dd4756c601704..7b1a9b33a0327 100644 --- a/google/cloud/compute/firewall_policies/v1/firewall_policies_connection.cc +++ b/google/cloud/compute/firewall_policies/v1/firewall_policies_connection.cc @@ -45,6 +45,23 @@ FirewallPoliciesConnection::AddAssociation( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +FirewallPoliciesConnection::AddAssociation( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::firewall_policies::v1:: + AddAssociationRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +FirewallPoliciesConnection::AddAssociation( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> FirewallPoliciesConnection::AddRule( google::cloud::cpp::compute::firewall_policies::v1::AddRuleRequest const&) { @@ -53,6 +70,22 @@ FirewallPoliciesConnection::AddRule( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +FirewallPoliciesConnection::AddRule( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::firewall_policies::v1::AddRuleRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +FirewallPoliciesConnection::AddRule( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> FirewallPoliciesConnection::CloneRules( google::cloud::cpp::compute::firewall_policies::v1:: @@ -62,6 +95,23 @@ FirewallPoliciesConnection::CloneRules( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +FirewallPoliciesConnection::CloneRules( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::firewall_policies::v1:: + CloneRulesRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +FirewallPoliciesConnection::CloneRules( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> FirewallPoliciesConnection::DeleteFirewallPolicy( google::cloud::cpp::compute::firewall_policies::v1:: @@ -71,6 +121,23 @@ FirewallPoliciesConnection::DeleteFirewallPolicy( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +FirewallPoliciesConnection::DeleteFirewallPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::firewall_policies::v1:: + DeleteFirewallPolicyRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +FirewallPoliciesConnection::DeleteFirewallPolicy( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr FirewallPoliciesConnection::GetFirewallPolicy( google::cloud::cpp::compute::firewall_policies::v1:: @@ -107,6 +174,23 @@ FirewallPoliciesConnection::InsertFirewallPolicy( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +FirewallPoliciesConnection::InsertFirewallPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::firewall_policies::v1:: + InsertFirewallPolicyRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +FirewallPoliciesConnection::InsertFirewallPolicy( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StreamRange FirewallPoliciesConnection::ListFirewallPolicies( google::cloud::cpp::compute::firewall_policies::v1:: @@ -131,6 +215,22 @@ FirewallPoliciesConnection::Move( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +FirewallPoliciesConnection::Move( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::firewall_policies::v1::MoveRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +FirewallPoliciesConnection::Move( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> FirewallPoliciesConnection::PatchFirewallPolicy( google::cloud::cpp::compute::firewall_policies::v1:: @@ -140,6 +240,23 @@ FirewallPoliciesConnection::PatchFirewallPolicy( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +FirewallPoliciesConnection::PatchFirewallPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::firewall_policies::v1:: + PatchFirewallPolicyRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +FirewallPoliciesConnection::PatchFirewallPolicy( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> FirewallPoliciesConnection::PatchRule( google::cloud::cpp::compute::firewall_policies::v1:: @@ -149,6 +266,23 @@ FirewallPoliciesConnection::PatchRule( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +FirewallPoliciesConnection::PatchRule( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::firewall_policies::v1:: + PatchRuleRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +FirewallPoliciesConnection::PatchRule( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> FirewallPoliciesConnection::RemoveAssociation( google::cloud::cpp::compute::firewall_policies::v1:: @@ -158,6 +292,23 @@ FirewallPoliciesConnection::RemoveAssociation( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +FirewallPoliciesConnection::RemoveAssociation( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::firewall_policies::v1:: + RemoveAssociationRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +FirewallPoliciesConnection::RemoveAssociation( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> FirewallPoliciesConnection::RemoveRule( google::cloud::cpp::compute::firewall_policies::v1:: @@ -167,6 +318,23 @@ FirewallPoliciesConnection::RemoveRule( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +FirewallPoliciesConnection::RemoveRule( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::firewall_policies::v1:: + RemoveRuleRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +FirewallPoliciesConnection::RemoveRule( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr FirewallPoliciesConnection::SetIamPolicy( google::cloud::cpp::compute::firewall_policies::v1:: diff --git a/google/cloud/compute/firewall_policies/v1/firewall_policies_connection.h b/google/cloud/compute/firewall_policies/v1/firewall_policies_connection.h index 3c95e92dfa593..c9509227a4000 100644 --- a/google/cloud/compute/firewall_policies/v1/firewall_policies_connection.h +++ b/google/cloud/compute/firewall_policies/v1/firewall_policies_connection.h @@ -22,8 +22,10 @@ #include "google/cloud/compute/firewall_policies/v1/firewall_policies_connection_idempotency_policy.h" #include "google/cloud/compute/firewall_policies/v1/internal/firewall_policies_retry_traits.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/internal/retry_policy_impl.h" +#include "google/cloud/no_await_tag.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" #include "google/cloud/status_or.h" @@ -190,18 +192,55 @@ class FirewallPoliciesConnection { AddAssociation(google::cloud::cpp::compute::firewall_policies::v1:: AddAssociationRequest const& request); + virtual StatusOr AddAssociation( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::firewall_policies::v1:: + AddAssociationRequest const& request); + + virtual future> + AddAssociation(ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual future> AddRule( google::cloud::cpp::compute::firewall_policies::v1::AddRuleRequest const& request); + virtual StatusOr AddRule( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::firewall_policies::v1::AddRuleRequest const& + request); + + virtual future> AddRule( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual future> CloneRules(google::cloud::cpp::compute::firewall_policies::v1:: CloneRulesRequest const& request); + virtual StatusOr CloneRules( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::firewall_policies::v1:: + CloneRulesRequest const& request); + + virtual future> + CloneRules(ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual future> DeleteFirewallPolicy(google::cloud::cpp::compute::firewall_policies::v1:: DeleteFirewallPolicyRequest const& request); + virtual StatusOr + DeleteFirewallPolicy(ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::firewall_policies::v1:: + DeleteFirewallPolicyRequest const& request); + + virtual future> + DeleteFirewallPolicy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual StatusOr GetFirewallPolicy(google::cloud::cpp::compute::firewall_policies::v1:: GetFirewallPolicyRequest const& request); @@ -222,6 +261,16 @@ class FirewallPoliciesConnection { InsertFirewallPolicy(google::cloud::cpp::compute::firewall_policies::v1:: InsertFirewallPolicyRequest const& request); + virtual StatusOr + InsertFirewallPolicy(ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::firewall_policies::v1:: + InsertFirewallPolicyRequest const& request); + + virtual future> + InsertFirewallPolicy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual StreamRange ListFirewallPolicies(google::cloud::cpp::compute::firewall_policies::v1:: ListFirewallPoliciesRequest request); @@ -235,22 +284,69 @@ class FirewallPoliciesConnection { google::cloud::cpp::compute::firewall_policies::v1::MoveRequest const& request); + virtual StatusOr Move( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::firewall_policies::v1::MoveRequest const& + request); + + virtual future> Move( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual future> PatchFirewallPolicy(google::cloud::cpp::compute::firewall_policies::v1:: PatchFirewallPolicyRequest const& request); + virtual StatusOr + PatchFirewallPolicy(ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::firewall_policies::v1:: + PatchFirewallPolicyRequest const& request); + + virtual future> + PatchFirewallPolicy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual future> PatchRule(google::cloud::cpp::compute::firewall_policies::v1:: PatchRuleRequest const& request); + virtual StatusOr PatchRule( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::firewall_policies::v1:: + PatchRuleRequest const& request); + + virtual future> + PatchRule(ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual future> RemoveAssociation(google::cloud::cpp::compute::firewall_policies::v1:: RemoveAssociationRequest const& request); + virtual StatusOr + RemoveAssociation(ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::firewall_policies::v1:: + RemoveAssociationRequest const& request); + + virtual future> + RemoveAssociation( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual future> RemoveRule(google::cloud::cpp::compute::firewall_policies::v1:: RemoveRuleRequest const& request); + virtual StatusOr RemoveRule( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::firewall_policies::v1:: + RemoveRuleRequest const& request); + + virtual future> + RemoveRule(ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual StatusOr SetIamPolicy( google::cloud::cpp::compute::firewall_policies::v1:: SetIamPolicyRequest const& request); diff --git a/google/cloud/compute/firewall_policies/v1/internal/firewall_policies_rest_connection_impl.cc b/google/cloud/compute/firewall_policies/v1/internal/firewall_policies_rest_connection_impl.cc index 43d0aeb988ed2..29c525815feb7 100644 --- a/google/cloud/compute/firewall_policies/v1/internal/firewall_policies_rest_connection_impl.cc +++ b/google/cloud/compute/firewall_policies/v1/internal/firewall_policies_rest_connection_impl.cc @@ -23,6 +23,7 @@ #include "google/cloud/internal/async_rest_long_running_operation_custom.h" #include "google/cloud/internal/extract_long_running_result.h" #include "google/cloud/internal/pagination_range.h" +#include "google/cloud/internal/rest_lro_helpers.h" #include "google/cloud/internal/rest_retry_loop.h" #include "google/cloud/rest_options.h" #include @@ -99,6 +100,78 @@ FirewallPoliciesRestConnectionImpl::AddAssociation( v1::DeleteOperationRequest& r) { r.set_operation(op); }); } +StatusOr +FirewallPoliciesRestConnectionImpl::AddAssociation( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::firewall_policies::v1:: + AddAssociationRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->AddAssociation(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::firewall_policies::v1:: + AddAssociationRequest const& request) { + return stub_->AddAssociation(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +FirewallPoliciesRestConnectionImpl::AddAssociation( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::global_organization_operations::v1:: + GetOperationRequest, + google::cloud::cpp::compute::global_organization_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_]( + CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_organization_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_organization_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_organization_operations:: + v1::GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_organization_operations:: + v1::DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_operation(info.operation); + }); +} + future> FirewallPoliciesRestConnectionImpl::AddRule( google::cloud::cpp::compute::firewall_policies::v1::AddRuleRequest const& @@ -154,6 +227,78 @@ FirewallPoliciesRestConnectionImpl::AddRule( v1::DeleteOperationRequest& r) { r.set_operation(op); }); } +StatusOr +FirewallPoliciesRestConnectionImpl::AddRule( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::firewall_policies::v1::AddRuleRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->AddRule(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::firewall_policies::v1:: + AddRuleRequest const& request) { + return stub_->AddRule(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +FirewallPoliciesRestConnectionImpl::AddRule( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::global_organization_operations::v1:: + GetOperationRequest, + google::cloud::cpp::compute::global_organization_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_]( + CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_organization_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_organization_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_organization_operations:: + v1::GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_organization_operations:: + v1::DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_operation(info.operation); + }); +} + future> FirewallPoliciesRestConnectionImpl::CloneRules( google::cloud::cpp::compute::firewall_policies::v1::CloneRulesRequest const& @@ -209,6 +354,78 @@ FirewallPoliciesRestConnectionImpl::CloneRules( v1::DeleteOperationRequest& r) { r.set_operation(op); }); } +StatusOr +FirewallPoliciesRestConnectionImpl::CloneRules( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::firewall_policies::v1::CloneRulesRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CloneRules(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::firewall_policies::v1:: + CloneRulesRequest const& request) { + return stub_->CloneRules(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +FirewallPoliciesRestConnectionImpl::CloneRules( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::global_organization_operations::v1:: + GetOperationRequest, + google::cloud::cpp::compute::global_organization_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_]( + CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_organization_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_organization_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_organization_operations:: + v1::GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_organization_operations:: + v1::DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_operation(info.operation); + }); +} + future> FirewallPoliciesRestConnectionImpl::DeleteFirewallPolicy( google::cloud::cpp::compute::firewall_policies::v1:: @@ -264,6 +481,78 @@ FirewallPoliciesRestConnectionImpl::DeleteFirewallPolicy( v1::DeleteOperationRequest& r) { r.set_operation(op); }); } +StatusOr +FirewallPoliciesRestConnectionImpl::DeleteFirewallPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::firewall_policies::v1:: + DeleteFirewallPolicyRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteFirewallPolicy(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::firewall_policies::v1:: + DeleteFirewallPolicyRequest const& request) { + return stub_->DeleteFirewallPolicy(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +FirewallPoliciesRestConnectionImpl::DeleteFirewallPolicy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::global_organization_operations::v1:: + GetOperationRequest, + google::cloud::cpp::compute::global_organization_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_]( + CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_organization_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_organization_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_organization_operations:: + v1::GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_organization_operations:: + v1::DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_operation(info.operation); + }); +} + StatusOr FirewallPoliciesRestConnectionImpl::GetFirewallPolicy( google::cloud::cpp::compute::firewall_policies::v1:: @@ -383,58 +672,130 @@ FirewallPoliciesRestConnectionImpl::InsertFirewallPolicy( v1::DeleteOperationRequest& r) { r.set_operation(op); }); } -StreamRange -FirewallPoliciesRestConnectionImpl::ListFirewallPolicies( - google::cloud::cpp::compute::firewall_policies::v1:: - ListFirewallPoliciesRequest request) { - request.clear_page_token(); - auto current = google::cloud::internal::SaveCurrentOptions(); - auto idempotency = - idempotency_policy(*current)->ListFirewallPolicies(request); - char const* function_name = __func__; - return google::cloud::internal::MakePaginationRange< - StreamRange>( - current, std::move(request), - [idempotency, function_name, stub = stub_, - retry = std::shared_ptr< - compute_firewall_policies_v1::FirewallPoliciesRetryPolicy>( - retry_policy(*current)), - backoff = std::shared_ptr(backoff_policy(*current))]( - Options const& options, - google::cloud::cpp::compute::firewall_policies::v1:: - ListFirewallPoliciesRequest const& r) { - return google::cloud::rest_internal::RestRetryLoop( - retry->clone(), backoff->clone(), idempotency, - [stub](rest_internal::RestContext& rest_context, - Options const& options, - google::cloud::cpp::compute::firewall_policies::v1:: - ListFirewallPoliciesRequest const& request) { - return stub->ListFirewallPolicies(rest_context, options, request); - }, - options, r, function_name); - }, - [](google::cloud::cpp::compute::v1::FirewallPolicyList r) { - std::vector result( - r.items().size()); - auto& messages = *r.mutable_items(); - std::move(messages.begin(), messages.end(), result.begin()); - return result; - }); -} - -StatusOr< - google::cloud::cpp::compute::v1::FirewallPoliciesListAssociationsResponse> -FirewallPoliciesRestConnectionImpl::ListAssociations( +StatusOr +FirewallPoliciesRestConnectionImpl::InsertFirewallPolicy( + ExperimentalTag, NoAwaitTag, google::cloud::cpp::compute::firewall_policies::v1:: - ListAssociationsRequest const& request) { + InsertFirewallPolicyRequest const& request) { auto current = google::cloud::internal::SaveCurrentOptions(); return google::cloud::rest_internal::RestRetryLoop( retry_policy(*current), backoff_policy(*current), - idempotency_policy(*current)->ListAssociations(request), + idempotency_policy(*current)->InsertFirewallPolicy(request), [this](rest_internal::RestContext& rest_context, Options const& options, google::cloud::cpp::compute::firewall_policies::v1:: - ListAssociationsRequest const& request) { - return stub_->ListAssociations(rest_context, options, request); + InsertFirewallPolicyRequest const& request) { + return stub_->InsertFirewallPolicy(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +FirewallPoliciesRestConnectionImpl::InsertFirewallPolicy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::global_organization_operations::v1:: + GetOperationRequest, + google::cloud::cpp::compute::global_organization_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_]( + CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_organization_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_organization_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_organization_operations:: + v1::GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_organization_operations:: + v1::DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_operation(info.operation); + }); +} + +StreamRange +FirewallPoliciesRestConnectionImpl::ListFirewallPolicies( + google::cloud::cpp::compute::firewall_policies::v1:: + ListFirewallPoliciesRequest request) { + request.clear_page_token(); + auto current = google::cloud::internal::SaveCurrentOptions(); + auto idempotency = + idempotency_policy(*current)->ListFirewallPolicies(request); + char const* function_name = __func__; + return google::cloud::internal::MakePaginationRange< + StreamRange>( + current, std::move(request), + [idempotency, function_name, stub = stub_, + retry = std::shared_ptr< + compute_firewall_policies_v1::FirewallPoliciesRetryPolicy>( + retry_policy(*current)), + backoff = std::shared_ptr(backoff_policy(*current))]( + Options const& options, + google::cloud::cpp::compute::firewall_policies::v1:: + ListFirewallPoliciesRequest const& r) { + return google::cloud::rest_internal::RestRetryLoop( + retry->clone(), backoff->clone(), idempotency, + [stub](rest_internal::RestContext& rest_context, + Options const& options, + google::cloud::cpp::compute::firewall_policies::v1:: + ListFirewallPoliciesRequest const& request) { + return stub->ListFirewallPolicies(rest_context, options, request); + }, + options, r, function_name); + }, + [](google::cloud::cpp::compute::v1::FirewallPolicyList r) { + std::vector result( + r.items().size()); + auto& messages = *r.mutable_items(); + std::move(messages.begin(), messages.end(), result.begin()); + return result; + }); +} + +StatusOr< + google::cloud::cpp::compute::v1::FirewallPoliciesListAssociationsResponse> +FirewallPoliciesRestConnectionImpl::ListAssociations( + google::cloud::cpp::compute::firewall_policies::v1:: + ListAssociationsRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->ListAssociations(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::firewall_policies::v1:: + ListAssociationsRequest const& request) { + return stub_->ListAssociations(rest_context, options, request); }, *current, request, __func__); } @@ -495,6 +856,77 @@ FirewallPoliciesRestConnectionImpl::Move( v1::DeleteOperationRequest& r) { r.set_operation(op); }); } +StatusOr +FirewallPoliciesRestConnectionImpl::Move( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::firewall_policies::v1::MoveRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->Move(request), + [this]( + rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::firewall_policies::v1::MoveRequest const& + request) { return stub_->Move(rest_context, options, request); }, + *current, request, __func__); +} + +future> +FirewallPoliciesRestConnectionImpl::Move( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::global_organization_operations::v1:: + GetOperationRequest, + google::cloud::cpp::compute::global_organization_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_]( + CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_organization_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_organization_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_organization_operations:: + v1::GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_organization_operations:: + v1::DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_operation(info.operation); + }); +} + future> FirewallPoliciesRestConnectionImpl::PatchFirewallPolicy( google::cloud::cpp::compute::firewall_policies::v1:: @@ -550,6 +982,78 @@ FirewallPoliciesRestConnectionImpl::PatchFirewallPolicy( v1::DeleteOperationRequest& r) { r.set_operation(op); }); } +StatusOr +FirewallPoliciesRestConnectionImpl::PatchFirewallPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::firewall_policies::v1:: + PatchFirewallPolicyRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->PatchFirewallPolicy(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::firewall_policies::v1:: + PatchFirewallPolicyRequest const& request) { + return stub_->PatchFirewallPolicy(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +FirewallPoliciesRestConnectionImpl::PatchFirewallPolicy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::global_organization_operations::v1:: + GetOperationRequest, + google::cloud::cpp::compute::global_organization_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_]( + CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_organization_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_organization_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_organization_operations:: + v1::GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_organization_operations:: + v1::DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_operation(info.operation); + }); +} + future> FirewallPoliciesRestConnectionImpl::PatchRule( google::cloud::cpp::compute::firewall_policies::v1::PatchRuleRequest const& @@ -605,6 +1109,78 @@ FirewallPoliciesRestConnectionImpl::PatchRule( v1::DeleteOperationRequest& r) { r.set_operation(op); }); } +StatusOr +FirewallPoliciesRestConnectionImpl::PatchRule( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::firewall_policies::v1::PatchRuleRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->PatchRule(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::firewall_policies::v1:: + PatchRuleRequest const& request) { + return stub_->PatchRule(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +FirewallPoliciesRestConnectionImpl::PatchRule( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::global_organization_operations::v1:: + GetOperationRequest, + google::cloud::cpp::compute::global_organization_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_]( + CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_organization_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_organization_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_organization_operations:: + v1::GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_organization_operations:: + v1::DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_operation(info.operation); + }); +} + future> FirewallPoliciesRestConnectionImpl::RemoveAssociation( google::cloud::cpp::compute::firewall_policies::v1:: @@ -660,6 +1236,78 @@ FirewallPoliciesRestConnectionImpl::RemoveAssociation( v1::DeleteOperationRequest& r) { r.set_operation(op); }); } +StatusOr +FirewallPoliciesRestConnectionImpl::RemoveAssociation( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::firewall_policies::v1:: + RemoveAssociationRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->RemoveAssociation(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::firewall_policies::v1:: + RemoveAssociationRequest const& request) { + return stub_->RemoveAssociation(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +FirewallPoliciesRestConnectionImpl::RemoveAssociation( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::global_organization_operations::v1:: + GetOperationRequest, + google::cloud::cpp::compute::global_organization_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_]( + CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_organization_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_organization_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_organization_operations:: + v1::GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_organization_operations:: + v1::DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_operation(info.operation); + }); +} + future> FirewallPoliciesRestConnectionImpl::RemoveRule( google::cloud::cpp::compute::firewall_policies::v1::RemoveRuleRequest const& @@ -715,6 +1363,78 @@ FirewallPoliciesRestConnectionImpl::RemoveRule( v1::DeleteOperationRequest& r) { r.set_operation(op); }); } +StatusOr +FirewallPoliciesRestConnectionImpl::RemoveRule( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::firewall_policies::v1::RemoveRuleRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->RemoveRule(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::firewall_policies::v1:: + RemoveRuleRequest const& request) { + return stub_->RemoveRule(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +FirewallPoliciesRestConnectionImpl::RemoveRule( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::global_organization_operations::v1:: + GetOperationRequest, + google::cloud::cpp::compute::global_organization_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_]( + CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_organization_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_organization_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_organization_operations:: + v1::GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_organization_operations:: + v1::DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_operation(info.operation); + }); +} + StatusOr FirewallPoliciesRestConnectionImpl::SetIamPolicy( google::cloud::cpp::compute::firewall_policies::v1:: diff --git a/google/cloud/compute/firewall_policies/v1/internal/firewall_policies_rest_connection_impl.h b/google/cloud/compute/firewall_policies/v1/internal/firewall_policies_rest_connection_impl.h index e45646654952e..92fb3d166b8e9 100644 --- a/google/cloud/compute/firewall_policies/v1/internal/firewall_policies_rest_connection_impl.h +++ b/google/cloud/compute/firewall_policies/v1/internal/firewall_policies_rest_connection_impl.h @@ -56,18 +56,55 @@ class FirewallPoliciesRestConnectionImpl google::cloud::cpp::compute::firewall_policies::v1:: AddAssociationRequest const& request) override; + StatusOr AddAssociation( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::firewall_policies::v1:: + AddAssociationRequest const& request) override; + + future> AddAssociation( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> AddRule( google::cloud::cpp::compute::firewall_policies::v1::AddRuleRequest const& request) override; + StatusOr AddRule( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::firewall_policies::v1::AddRuleRequest const& + request) override; + + future> AddRule( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> CloneRules( google::cloud::cpp::compute::firewall_policies::v1:: CloneRulesRequest const& request) override; + StatusOr CloneRules( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::firewall_policies::v1:: + CloneRulesRequest const& request) override; + + future> CloneRules( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> DeleteFirewallPolicy(google::cloud::cpp::compute::firewall_policies::v1:: DeleteFirewallPolicyRequest const& request) override; + StatusOr DeleteFirewallPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::firewall_policies::v1:: + DeleteFirewallPolicyRequest const& request) override; + + future> + DeleteFirewallPolicy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StatusOr GetFirewallPolicy( google::cloud::cpp::compute::firewall_policies::v1:: GetFirewallPolicyRequest const& request) override; @@ -88,6 +125,16 @@ class FirewallPoliciesRestConnectionImpl InsertFirewallPolicy(google::cloud::cpp::compute::firewall_policies::v1:: InsertFirewallPolicyRequest const& request) override; + StatusOr InsertFirewallPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::firewall_policies::v1:: + InsertFirewallPolicyRequest const& request) override; + + future> + InsertFirewallPolicy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StreamRange ListFirewallPolicies(google::cloud::cpp::compute::firewall_policies::v1:: ListFirewallPoliciesRequest request) override; @@ -101,22 +148,69 @@ class FirewallPoliciesRestConnectionImpl google::cloud::cpp::compute::firewall_policies::v1::MoveRequest const& request) override; + StatusOr Move( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::firewall_policies::v1::MoveRequest const& + request) override; + + future> Move( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> PatchFirewallPolicy(google::cloud::cpp::compute::firewall_policies::v1:: PatchFirewallPolicyRequest const& request) override; + StatusOr PatchFirewallPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::firewall_policies::v1:: + PatchFirewallPolicyRequest const& request) override; + + future> + PatchFirewallPolicy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> PatchRule( google::cloud::cpp::compute::firewall_policies::v1:: PatchRuleRequest const& request) override; + StatusOr PatchRule( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::firewall_policies::v1:: + PatchRuleRequest const& request) override; + + future> PatchRule( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> RemoveAssociation(google::cloud::cpp::compute::firewall_policies::v1:: RemoveAssociationRequest const& request) override; + StatusOr RemoveAssociation( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::firewall_policies::v1:: + RemoveAssociationRequest const& request) override; + + future> + RemoveAssociation( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> RemoveRule( google::cloud::cpp::compute::firewall_policies::v1:: RemoveRuleRequest const& request) override; + StatusOr RemoveRule( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::firewall_policies::v1:: + RemoveRuleRequest const& request) override; + + future> RemoveRule( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StatusOr SetIamPolicy( google::cloud::cpp::compute::firewall_policies::v1:: SetIamPolicyRequest const& request) override; diff --git a/google/cloud/compute/firewall_policies/v1/internal/firewall_policies_tracing_connection.cc b/google/cloud/compute/firewall_policies/v1/internal/firewall_policies_tracing_connection.cc index 383905ae90505..44929de0fba82 100644 --- a/google/cloud/compute/firewall_policies/v1/internal/firewall_policies_tracing_connection.cc +++ b/google/cloud/compute/firewall_policies/v1/internal/firewall_policies_tracing_connection.cc @@ -45,6 +45,31 @@ FirewallPoliciesTracingConnection::AddAssociation( return internal::EndSpan(std::move(span), child_->AddAssociation(request)); } +StatusOr +FirewallPoliciesTracingConnection::AddAssociation( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::firewall_policies::v1:: + AddAssociationRequest const& request) { + auto span = internal::MakeSpan( + "compute_firewall_policies_v1::FirewallPoliciesConnection::" + "AddAssociation"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->AddAssociation(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +FirewallPoliciesTracingConnection::AddAssociation( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_firewall_policies_v1::FirewallPoliciesConnection::" + "AddAssociation"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->AddAssociation(ExperimentalTag{}, operation)); +} + future> FirewallPoliciesTracingConnection::AddRule( google::cloud::cpp::compute::firewall_policies::v1::AddRuleRequest const& @@ -55,6 +80,29 @@ FirewallPoliciesTracingConnection::AddRule( return internal::EndSpan(std::move(span), child_->AddRule(request)); } +StatusOr +FirewallPoliciesTracingConnection::AddRule( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::firewall_policies::v1::AddRuleRequest const& + request) { + auto span = internal::MakeSpan( + "compute_firewall_policies_v1::FirewallPoliciesConnection::AddRule"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->AddRule(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +FirewallPoliciesTracingConnection::AddRule( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_firewall_policies_v1::FirewallPoliciesConnection::AddRule"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->AddRule(ExperimentalTag{}, operation)); +} + future> FirewallPoliciesTracingConnection::CloneRules( google::cloud::cpp::compute::firewall_policies::v1::CloneRulesRequest const& @@ -65,6 +113,29 @@ FirewallPoliciesTracingConnection::CloneRules( return internal::EndSpan(std::move(span), child_->CloneRules(request)); } +StatusOr +FirewallPoliciesTracingConnection::CloneRules( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::firewall_policies::v1::CloneRulesRequest const& + request) { + auto span = internal::MakeSpan( + "compute_firewall_policies_v1::FirewallPoliciesConnection::CloneRules"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->CloneRules(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +FirewallPoliciesTracingConnection::CloneRules( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_firewall_policies_v1::FirewallPoliciesConnection::CloneRules"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->CloneRules(ExperimentalTag{}, operation)); +} + future> FirewallPoliciesTracingConnection::DeleteFirewallPolicy( google::cloud::cpp::compute::firewall_policies::v1:: @@ -77,6 +148,32 @@ FirewallPoliciesTracingConnection::DeleteFirewallPolicy( child_->DeleteFirewallPolicy(request)); } +StatusOr +FirewallPoliciesTracingConnection::DeleteFirewallPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::firewall_policies::v1:: + DeleteFirewallPolicyRequest const& request) { + auto span = internal::MakeSpan( + "compute_firewall_policies_v1::FirewallPoliciesConnection::" + "DeleteFirewallPolicy"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->DeleteFirewallPolicy(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +FirewallPoliciesTracingConnection::DeleteFirewallPolicy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_firewall_policies_v1::FirewallPoliciesConnection::" + "DeleteFirewallPolicy"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->DeleteFirewallPolicy( + ExperimentalTag{}, operation)); +} + StatusOr FirewallPoliciesTracingConnection::GetFirewallPolicy( google::cloud::cpp::compute::firewall_policies::v1:: @@ -131,6 +228,32 @@ FirewallPoliciesTracingConnection::InsertFirewallPolicy( child_->InsertFirewallPolicy(request)); } +StatusOr +FirewallPoliciesTracingConnection::InsertFirewallPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::firewall_policies::v1:: + InsertFirewallPolicyRequest const& request) { + auto span = internal::MakeSpan( + "compute_firewall_policies_v1::FirewallPoliciesConnection::" + "InsertFirewallPolicy"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->InsertFirewallPolicy(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +FirewallPoliciesTracingConnection::InsertFirewallPolicy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_firewall_policies_v1::FirewallPoliciesConnection::" + "InsertFirewallPolicy"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->InsertFirewallPolicy( + ExperimentalTag{}, operation)); +} + StreamRange FirewallPoliciesTracingConnection::ListFirewallPolicies( google::cloud::cpp::compute::firewall_policies::v1:: @@ -167,6 +290,29 @@ FirewallPoliciesTracingConnection::Move( return internal::EndSpan(std::move(span), child_->Move(request)); } +StatusOr +FirewallPoliciesTracingConnection::Move( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::firewall_policies::v1::MoveRequest const& + request) { + auto span = internal::MakeSpan( + "compute_firewall_policies_v1::FirewallPoliciesConnection::Move"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->Move(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +FirewallPoliciesTracingConnection::Move( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_firewall_policies_v1::FirewallPoliciesConnection::Move"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->Move(ExperimentalTag{}, operation)); +} + future> FirewallPoliciesTracingConnection::PatchFirewallPolicy( google::cloud::cpp::compute::firewall_policies::v1:: @@ -179,6 +325,32 @@ FirewallPoliciesTracingConnection::PatchFirewallPolicy( child_->PatchFirewallPolicy(request)); } +StatusOr +FirewallPoliciesTracingConnection::PatchFirewallPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::firewall_policies::v1:: + PatchFirewallPolicyRequest const& request) { + auto span = internal::MakeSpan( + "compute_firewall_policies_v1::FirewallPoliciesConnection::" + "PatchFirewallPolicy"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->PatchFirewallPolicy(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +FirewallPoliciesTracingConnection::PatchFirewallPolicy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_firewall_policies_v1::FirewallPoliciesConnection::" + "PatchFirewallPolicy"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->PatchFirewallPolicy( + ExperimentalTag{}, operation)); +} + future> FirewallPoliciesTracingConnection::PatchRule( google::cloud::cpp::compute::firewall_policies::v1::PatchRuleRequest const& @@ -189,6 +361,29 @@ FirewallPoliciesTracingConnection::PatchRule( return internal::EndSpan(std::move(span), child_->PatchRule(request)); } +StatusOr +FirewallPoliciesTracingConnection::PatchRule( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::firewall_policies::v1::PatchRuleRequest const& + request) { + auto span = internal::MakeSpan( + "compute_firewall_policies_v1::FirewallPoliciesConnection::PatchRule"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->PatchRule(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +FirewallPoliciesTracingConnection::PatchRule( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_firewall_policies_v1::FirewallPoliciesConnection::PatchRule"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->PatchRule(ExperimentalTag{}, operation)); +} + future> FirewallPoliciesTracingConnection::RemoveAssociation( google::cloud::cpp::compute::firewall_policies::v1:: @@ -200,6 +395,32 @@ FirewallPoliciesTracingConnection::RemoveAssociation( return internal::EndSpan(std::move(span), child_->RemoveAssociation(request)); } +StatusOr +FirewallPoliciesTracingConnection::RemoveAssociation( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::firewall_policies::v1:: + RemoveAssociationRequest const& request) { + auto span = internal::MakeSpan( + "compute_firewall_policies_v1::FirewallPoliciesConnection::" + "RemoveAssociation"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->RemoveAssociation(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +FirewallPoliciesTracingConnection::RemoveAssociation( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_firewall_policies_v1::FirewallPoliciesConnection::" + "RemoveAssociation"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->RemoveAssociation(ExperimentalTag{}, operation)); +} + future> FirewallPoliciesTracingConnection::RemoveRule( google::cloud::cpp::compute::firewall_policies::v1::RemoveRuleRequest const& @@ -210,6 +431,29 @@ FirewallPoliciesTracingConnection::RemoveRule( return internal::EndSpan(std::move(span), child_->RemoveRule(request)); } +StatusOr +FirewallPoliciesTracingConnection::RemoveRule( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::firewall_policies::v1::RemoveRuleRequest const& + request) { + auto span = internal::MakeSpan( + "compute_firewall_policies_v1::FirewallPoliciesConnection::RemoveRule"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->RemoveRule(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +FirewallPoliciesTracingConnection::RemoveRule( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_firewall_policies_v1::FirewallPoliciesConnection::RemoveRule"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->RemoveRule(ExperimentalTag{}, operation)); +} + StatusOr FirewallPoliciesTracingConnection::SetIamPolicy( google::cloud::cpp::compute::firewall_policies::v1:: diff --git a/google/cloud/compute/firewall_policies/v1/internal/firewall_policies_tracing_connection.h b/google/cloud/compute/firewall_policies/v1/internal/firewall_policies_tracing_connection.h index af296075d61b0..17eb85b99231d 100644 --- a/google/cloud/compute/firewall_policies/v1/internal/firewall_policies_tracing_connection.h +++ b/google/cloud/compute/firewall_policies/v1/internal/firewall_policies_tracing_connection.h @@ -45,18 +45,55 @@ class FirewallPoliciesTracingConnection google::cloud::cpp::compute::firewall_policies::v1:: AddAssociationRequest const& request) override; + StatusOr AddAssociation( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::firewall_policies::v1:: + AddAssociationRequest const& request) override; + + future> AddAssociation( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> AddRule( google::cloud::cpp::compute::firewall_policies::v1::AddRuleRequest const& request) override; + StatusOr AddRule( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::firewall_policies::v1::AddRuleRequest const& + request) override; + + future> AddRule( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> CloneRules( google::cloud::cpp::compute::firewall_policies::v1:: CloneRulesRequest const& request) override; + StatusOr CloneRules( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::firewall_policies::v1:: + CloneRulesRequest const& request) override; + + future> CloneRules( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> DeleteFirewallPolicy(google::cloud::cpp::compute::firewall_policies::v1:: DeleteFirewallPolicyRequest const& request) override; + StatusOr DeleteFirewallPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::firewall_policies::v1:: + DeleteFirewallPolicyRequest const& request) override; + + future> + DeleteFirewallPolicy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StatusOr GetFirewallPolicy( google::cloud::cpp::compute::firewall_policies::v1:: GetFirewallPolicyRequest const& request) override; @@ -77,6 +114,16 @@ class FirewallPoliciesTracingConnection InsertFirewallPolicy(google::cloud::cpp::compute::firewall_policies::v1:: InsertFirewallPolicyRequest const& request) override; + StatusOr InsertFirewallPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::firewall_policies::v1:: + InsertFirewallPolicyRequest const& request) override; + + future> + InsertFirewallPolicy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StreamRange ListFirewallPolicies(google::cloud::cpp::compute::firewall_policies::v1:: ListFirewallPoliciesRequest request) override; @@ -90,22 +137,69 @@ class FirewallPoliciesTracingConnection google::cloud::cpp::compute::firewall_policies::v1::MoveRequest const& request) override; + StatusOr Move( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::firewall_policies::v1::MoveRequest const& + request) override; + + future> Move( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> PatchFirewallPolicy(google::cloud::cpp::compute::firewall_policies::v1:: PatchFirewallPolicyRequest const& request) override; + StatusOr PatchFirewallPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::firewall_policies::v1:: + PatchFirewallPolicyRequest const& request) override; + + future> + PatchFirewallPolicy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> PatchRule( google::cloud::cpp::compute::firewall_policies::v1:: PatchRuleRequest const& request) override; + StatusOr PatchRule( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::firewall_policies::v1:: + PatchRuleRequest const& request) override; + + future> PatchRule( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> RemoveAssociation(google::cloud::cpp::compute::firewall_policies::v1:: RemoveAssociationRequest const& request) override; + StatusOr RemoveAssociation( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::firewall_policies::v1:: + RemoveAssociationRequest const& request) override; + + future> + RemoveAssociation( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> RemoveRule( google::cloud::cpp::compute::firewall_policies::v1:: RemoveRuleRequest const& request) override; + StatusOr RemoveRule( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::firewall_policies::v1:: + RemoveRuleRequest const& request) override; + + future> RemoveRule( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StatusOr SetIamPolicy( google::cloud::cpp::compute::firewall_policies::v1:: SetIamPolicyRequest const& request) override; diff --git a/google/cloud/compute/firewall_policies/v1/mocks/mock_firewall_policies_connection.h b/google/cloud/compute/firewall_policies/v1/mocks/mock_firewall_policies_connection.h index c8b576ef4c893..c125c39da42ea 100644 --- a/google/cloud/compute/firewall_policies/v1/mocks/mock_firewall_policies_connection.h +++ b/google/cloud/compute/firewall_policies/v1/mocks/mock_firewall_policies_connection.h @@ -53,24 +53,75 @@ class MockFirewallPoliciesConnection AddAssociationRequest const& request), (override)); + MOCK_METHOD(StatusOr, + AddAssociation, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::firewall_policies::v1:: + AddAssociationRequest const& request), + (override)); + + MOCK_METHOD(future>, + AddAssociation, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD( future>, AddRule, (google::cloud::cpp::compute::firewall_policies::v1::AddRuleRequest const& request), (override)); + MOCK_METHOD( + StatusOr, AddRule, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::firewall_policies::v1::AddRuleRequest const& + request), + (override)); + + MOCK_METHOD(future>, + AddRule, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD(future>, CloneRules, (google::cloud::cpp::compute::firewall_policies::v1:: CloneRulesRequest const& request), (override)); + MOCK_METHOD(StatusOr, CloneRules, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::firewall_policies::v1:: + CloneRulesRequest const& request), + (override)); + + MOCK_METHOD(future>, + CloneRules, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD(future>, DeleteFirewallPolicy, (google::cloud::cpp::compute::firewall_policies::v1:: DeleteFirewallPolicyRequest const& request), (override)); + MOCK_METHOD(StatusOr, + DeleteFirewallPolicy, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::firewall_policies::v1:: + DeleteFirewallPolicyRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteFirewallPolicy, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD(StatusOr, GetFirewallPolicy, (google::cloud::cpp::compute::firewall_policies::v1:: @@ -101,6 +152,19 @@ class MockFirewallPoliciesConnection InsertFirewallPolicyRequest const& request), (override)); + MOCK_METHOD(StatusOr, + InsertFirewallPolicy, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::firewall_policies::v1:: + InsertFirewallPolicyRequest const& request), + (override)); + + MOCK_METHOD(future>, + InsertFirewallPolicy, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD((StreamRange), ListFirewallPolicies, (google::cloud::cpp::compute::firewall_policies::v1:: @@ -120,30 +184,93 @@ class MockFirewallPoliciesConnection request), (override)); + MOCK_METHOD( + StatusOr, Move, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::firewall_policies::v1::MoveRequest const& + request), + (override)); + + MOCK_METHOD(future>, + Move, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD(future>, PatchFirewallPolicy, (google::cloud::cpp::compute::firewall_policies::v1:: PatchFirewallPolicyRequest const& request), (override)); + MOCK_METHOD(StatusOr, + PatchFirewallPolicy, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::firewall_policies::v1:: + PatchFirewallPolicyRequest const& request), + (override)); + + MOCK_METHOD(future>, + PatchFirewallPolicy, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD(future>, PatchRule, (google::cloud::cpp::compute::firewall_policies::v1:: PatchRuleRequest const& request), (override)); + MOCK_METHOD(StatusOr, PatchRule, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::firewall_policies::v1:: + PatchRuleRequest const& request), + (override)); + + MOCK_METHOD(future>, + PatchRule, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD(future>, RemoveAssociation, (google::cloud::cpp::compute::firewall_policies::v1:: RemoveAssociationRequest const& request), (override)); + MOCK_METHOD(StatusOr, + RemoveAssociation, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::firewall_policies::v1:: + RemoveAssociationRequest const& request), + (override)); + + MOCK_METHOD(future>, + RemoveAssociation, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD(future>, RemoveRule, (google::cloud::cpp::compute::firewall_policies::v1:: RemoveRuleRequest const& request), (override)); + MOCK_METHOD(StatusOr, RemoveRule, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::firewall_policies::v1:: + RemoveRuleRequest const& request), + (override)); + + MOCK_METHOD(future>, + RemoveRule, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD(StatusOr, SetIamPolicy, (google::cloud::cpp::compute::firewall_policies::v1:: SetIamPolicyRequest const& request), diff --git a/google/cloud/compute/firewalls/v1/firewalls_connection.cc b/google/cloud/compute/firewalls/v1/firewalls_connection.cc index 0cb43e25f8734..fbf45f6ce5569 100644 --- a/google/cloud/compute/firewalls/v1/firewalls_connection.cc +++ b/google/cloud/compute/firewalls/v1/firewalls_connection.cc @@ -44,6 +44,22 @@ FirewallsConnection::DeleteFirewall( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +FirewallsConnection::DeleteFirewall( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::firewalls::v1::DeleteFirewallRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +FirewallsConnection::DeleteFirewall( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr FirewallsConnection::GetFirewall( google::cloud::cpp::compute::firewalls::v1::GetFirewallRequest const&) { @@ -58,6 +74,22 @@ FirewallsConnection::InsertFirewall( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +FirewallsConnection::InsertFirewall( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::firewalls::v1::InsertFirewallRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +FirewallsConnection::InsertFirewall( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StreamRange FirewallsConnection::ListFirewalls( google::cloud::cpp::compute::firewalls::v1:: @@ -74,6 +106,22 @@ FirewallsConnection::PatchFirewall( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +FirewallsConnection::PatchFirewall( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::firewalls::v1::PatchFirewallRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +FirewallsConnection::PatchFirewall( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> FirewallsConnection::UpdateFirewall( google::cloud::cpp::compute::firewalls::v1::UpdateFirewallRequest const&) { @@ -82,6 +130,22 @@ FirewallsConnection::UpdateFirewall( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +FirewallsConnection::UpdateFirewall( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::firewalls::v1::UpdateFirewallRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +FirewallsConnection::UpdateFirewall( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace compute_firewalls_v1 } // namespace cloud diff --git a/google/cloud/compute/firewalls/v1/firewalls_connection.h b/google/cloud/compute/firewalls/v1/firewalls_connection.h index 60f4649a0d5a1..507fae1df248f 100644 --- a/google/cloud/compute/firewalls/v1/firewalls_connection.h +++ b/google/cloud/compute/firewalls/v1/firewalls_connection.h @@ -22,8 +22,10 @@ #include "google/cloud/compute/firewalls/v1/firewalls_connection_idempotency_policy.h" #include "google/cloud/compute/firewalls/v1/internal/firewalls_retry_traits.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/internal/retry_policy_impl.h" +#include "google/cloud/no_await_tag.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" #include "google/cloud/status_or.h" @@ -188,6 +190,15 @@ class FirewallsConnection { google::cloud::cpp::compute::firewalls::v1::DeleteFirewallRequest const& request); + virtual StatusOr DeleteFirewall( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::firewalls::v1::DeleteFirewallRequest const& + request); + + virtual future> + DeleteFirewall(ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual StatusOr GetFirewall( google::cloud::cpp::compute::firewalls::v1::GetFirewallRequest const& request); @@ -197,6 +208,15 @@ class FirewallsConnection { google::cloud::cpp::compute::firewalls::v1::InsertFirewallRequest const& request); + virtual StatusOr InsertFirewall( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::firewalls::v1::InsertFirewallRequest const& + request); + + virtual future> + InsertFirewall(ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual StreamRange ListFirewalls( google::cloud::cpp::compute::firewalls::v1::ListFirewallsRequest request); @@ -205,10 +225,28 @@ class FirewallsConnection { google::cloud::cpp::compute::firewalls::v1::PatchFirewallRequest const& request); + virtual StatusOr PatchFirewall( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::firewalls::v1::PatchFirewallRequest const& + request); + + virtual future> + PatchFirewall(ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual future> UpdateFirewall( google::cloud::cpp::compute::firewalls::v1::UpdateFirewallRequest const& request); + + virtual StatusOr UpdateFirewall( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::firewalls::v1::UpdateFirewallRequest const& + request); + + virtual future> + UpdateFirewall(ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); }; GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END diff --git a/google/cloud/compute/firewalls/v1/internal/firewalls_rest_connection_impl.cc b/google/cloud/compute/firewalls/v1/internal/firewalls_rest_connection_impl.cc index c5990039a67c6..e76a45ed96e58 100644 --- a/google/cloud/compute/firewalls/v1/internal/firewalls_rest_connection_impl.cc +++ b/google/cloud/compute/firewalls/v1/internal/firewalls_rest_connection_impl.cc @@ -23,6 +23,7 @@ #include "google/cloud/internal/async_rest_long_running_operation_custom.h" #include "google/cloud/internal/extract_long_running_result.h" #include "google/cloud/internal/pagination_range.h" +#include "google/cloud/internal/rest_lro_helpers.h" #include "google/cloud/internal/rest_retry_loop.h" #include "google/cloud/rest_options.h" #include @@ -100,6 +101,77 @@ FirewallsRestConnectionImpl::DeleteFirewall( }); } +StatusOr +FirewallsRestConnectionImpl::DeleteFirewall( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::firewalls::v1::DeleteFirewallRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteFirewall(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::firewalls::v1:: + DeleteFirewallRequest const& request) { + return stub_->DeleteFirewall(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +FirewallsRestConnectionImpl::DeleteFirewall( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::global_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }); +} + StatusOr FirewallsRestConnectionImpl::GetFirewall( google::cloud::cpp::compute::firewalls::v1::GetFirewallRequest const& @@ -175,6 +247,77 @@ FirewallsRestConnectionImpl::InsertFirewall( }); } +StatusOr +FirewallsRestConnectionImpl::InsertFirewall( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::firewalls::v1::InsertFirewallRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->InsertFirewall(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::firewalls::v1:: + InsertFirewallRequest const& request) { + return stub_->InsertFirewall(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +FirewallsRestConnectionImpl::InsertFirewall( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::global_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }); +} + StreamRange FirewallsRestConnectionImpl::ListFirewalls( google::cloud::cpp::compute::firewalls::v1::ListFirewallsRequest request) { @@ -268,6 +411,77 @@ FirewallsRestConnectionImpl::PatchFirewall( }); } +StatusOr +FirewallsRestConnectionImpl::PatchFirewall( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::firewalls::v1::PatchFirewallRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->PatchFirewall(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::firewalls::v1:: + PatchFirewallRequest const& request) { + return stub_->PatchFirewall(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +FirewallsRestConnectionImpl::PatchFirewall( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::global_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }); +} + future> FirewallsRestConnectionImpl::UpdateFirewall( google::cloud::cpp::compute::firewalls::v1::UpdateFirewallRequest const& @@ -326,6 +540,77 @@ FirewallsRestConnectionImpl::UpdateFirewall( }); } +StatusOr +FirewallsRestConnectionImpl::UpdateFirewall( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::firewalls::v1::UpdateFirewallRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UpdateFirewall(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::firewalls::v1:: + UpdateFirewallRequest const& request) { + return stub_->UpdateFirewall(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +FirewallsRestConnectionImpl::UpdateFirewall( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::global_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace compute_firewalls_v1_internal } // namespace cloud diff --git a/google/cloud/compute/firewalls/v1/internal/firewalls_rest_connection_impl.h b/google/cloud/compute/firewalls/v1/internal/firewalls_rest_connection_impl.h index c41a6a392d1fb..3fc44248da93c 100644 --- a/google/cloud/compute/firewalls/v1/internal/firewalls_rest_connection_impl.h +++ b/google/cloud/compute/firewalls/v1/internal/firewalls_rest_connection_impl.h @@ -54,6 +54,15 @@ class FirewallsRestConnectionImpl google::cloud::cpp::compute::firewalls::v1::DeleteFirewallRequest const& request) override; + StatusOr DeleteFirewall( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::firewalls::v1::DeleteFirewallRequest const& + request) override; + + future> DeleteFirewall( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StatusOr GetFirewall( google::cloud::cpp::compute::firewalls::v1::GetFirewallRequest const& request) override; @@ -62,6 +71,15 @@ class FirewallsRestConnectionImpl google::cloud::cpp::compute::firewalls::v1::InsertFirewallRequest const& request) override; + StatusOr InsertFirewall( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::firewalls::v1::InsertFirewallRequest const& + request) override; + + future> InsertFirewall( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StreamRange ListFirewalls( google::cloud::cpp::compute::firewalls::v1::ListFirewallsRequest request) override; @@ -70,10 +88,28 @@ class FirewallsRestConnectionImpl google::cloud::cpp::compute::firewalls::v1::PatchFirewallRequest const& request) override; + StatusOr PatchFirewall( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::firewalls::v1::PatchFirewallRequest const& + request) override; + + future> PatchFirewall( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> UpdateFirewall( google::cloud::cpp::compute::firewalls::v1::UpdateFirewallRequest const& request) override; + StatusOr UpdateFirewall( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::firewalls::v1::UpdateFirewallRequest const& + request) override; + + future> UpdateFirewall( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + private: static std::unique_ptr retry_policy(Options const& options) { diff --git a/google/cloud/compute/firewalls/v1/internal/firewalls_tracing_connection.cc b/google/cloud/compute/firewalls/v1/internal/firewalls_tracing_connection.cc index 5a06934358901..d96336cf08a10 100644 --- a/google/cloud/compute/firewalls/v1/internal/firewalls_tracing_connection.cc +++ b/google/cloud/compute/firewalls/v1/internal/firewalls_tracing_connection.cc @@ -43,6 +43,29 @@ FirewallsTracingConnection::DeleteFirewall( return internal::EndSpan(std::move(span), child_->DeleteFirewall(request)); } +StatusOr +FirewallsTracingConnection::DeleteFirewall( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::firewalls::v1::DeleteFirewallRequest const& + request) { + auto span = internal::MakeSpan( + "compute_firewalls_v1::FirewallsConnection::DeleteFirewall"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->DeleteFirewall(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +FirewallsTracingConnection::DeleteFirewall( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_firewalls_v1::FirewallsConnection::DeleteFirewall"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->DeleteFirewall(ExperimentalTag{}, operation)); +} + StatusOr FirewallsTracingConnection::GetFirewall( google::cloud::cpp::compute::firewalls::v1::GetFirewallRequest const& @@ -63,6 +86,29 @@ FirewallsTracingConnection::InsertFirewall( return internal::EndSpan(std::move(span), child_->InsertFirewall(request)); } +StatusOr +FirewallsTracingConnection::InsertFirewall( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::firewalls::v1::InsertFirewallRequest const& + request) { + auto span = internal::MakeSpan( + "compute_firewalls_v1::FirewallsConnection::InsertFirewall"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->InsertFirewall(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +FirewallsTracingConnection::InsertFirewall( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_firewalls_v1::FirewallsConnection::InsertFirewall"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->InsertFirewall(ExperimentalTag{}, operation)); +} + StreamRange FirewallsTracingConnection::ListFirewalls( google::cloud::cpp::compute::firewalls::v1::ListFirewallsRequest request) { @@ -85,6 +131,29 @@ FirewallsTracingConnection::PatchFirewall( return internal::EndSpan(std::move(span), child_->PatchFirewall(request)); } +StatusOr +FirewallsTracingConnection::PatchFirewall( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::firewalls::v1::PatchFirewallRequest const& + request) { + auto span = internal::MakeSpan( + "compute_firewalls_v1::FirewallsConnection::PatchFirewall"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->PatchFirewall(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +FirewallsTracingConnection::PatchFirewall( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_firewalls_v1::FirewallsConnection::PatchFirewall"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->PatchFirewall(ExperimentalTag{}, operation)); +} + future> FirewallsTracingConnection::UpdateFirewall( google::cloud::cpp::compute::firewalls::v1::UpdateFirewallRequest const& @@ -95,6 +164,29 @@ FirewallsTracingConnection::UpdateFirewall( return internal::EndSpan(std::move(span), child_->UpdateFirewall(request)); } +StatusOr +FirewallsTracingConnection::UpdateFirewall( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::firewalls::v1::UpdateFirewallRequest const& + request) { + auto span = internal::MakeSpan( + "compute_firewalls_v1::FirewallsConnection::UpdateFirewall"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->UpdateFirewall(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +FirewallsTracingConnection::UpdateFirewall( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_firewalls_v1::FirewallsConnection::UpdateFirewall"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->UpdateFirewall(ExperimentalTag{}, operation)); +} + #endif // GOOGLE_CLOUD_CPP_HAVE_OPENTELEMETRY std::shared_ptr diff --git a/google/cloud/compute/firewalls/v1/internal/firewalls_tracing_connection.h b/google/cloud/compute/firewalls/v1/internal/firewalls_tracing_connection.h index eab606fc895c8..6d18a90c848d6 100644 --- a/google/cloud/compute/firewalls/v1/internal/firewalls_tracing_connection.h +++ b/google/cloud/compute/firewalls/v1/internal/firewalls_tracing_connection.h @@ -44,6 +44,15 @@ class FirewallsTracingConnection google::cloud::cpp::compute::firewalls::v1::DeleteFirewallRequest const& request) override; + StatusOr DeleteFirewall( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::firewalls::v1::DeleteFirewallRequest const& + request) override; + + future> DeleteFirewall( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StatusOr GetFirewall( google::cloud::cpp::compute::firewalls::v1::GetFirewallRequest const& request) override; @@ -52,6 +61,15 @@ class FirewallsTracingConnection google::cloud::cpp::compute::firewalls::v1::InsertFirewallRequest const& request) override; + StatusOr InsertFirewall( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::firewalls::v1::InsertFirewallRequest const& + request) override; + + future> InsertFirewall( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StreamRange ListFirewalls( google::cloud::cpp::compute::firewalls::v1::ListFirewallsRequest request) override; @@ -60,10 +78,28 @@ class FirewallsTracingConnection google::cloud::cpp::compute::firewalls::v1::PatchFirewallRequest const& request) override; + StatusOr PatchFirewall( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::firewalls::v1::PatchFirewallRequest const& + request) override; + + future> PatchFirewall( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> UpdateFirewall( google::cloud::cpp::compute::firewalls::v1::UpdateFirewallRequest const& request) override; + StatusOr UpdateFirewall( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::firewalls::v1::UpdateFirewallRequest const& + request) override; + + future> UpdateFirewall( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + private: std::shared_ptr child_; }; diff --git a/google/cloud/compute/firewalls/v1/mocks/mock_firewalls_connection.h b/google/cloud/compute/firewalls/v1/mocks/mock_firewalls_connection.h index b52c8597c7ed9..2314c5eb9cfb6 100644 --- a/google/cloud/compute/firewalls/v1/mocks/mock_firewalls_connection.h +++ b/google/cloud/compute/firewalls/v1/mocks/mock_firewalls_connection.h @@ -54,6 +54,19 @@ class MockFirewallsConnection request), (override)); + MOCK_METHOD( + StatusOr, DeleteFirewall, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::firewalls::v1::DeleteFirewallRequest const& + request), + (override)); + + MOCK_METHOD(future>, + DeleteFirewall, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr, GetFirewall, (google::cloud::cpp::compute::firewalls::v1::GetFirewallRequest const& @@ -67,6 +80,19 @@ class MockFirewallsConnection request), (override)); + MOCK_METHOD( + StatusOr, InsertFirewall, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::firewalls::v1::InsertFirewallRequest const& + request), + (override)); + + MOCK_METHOD(future>, + InsertFirewall, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD((StreamRange), ListFirewalls, (google::cloud::cpp::compute::firewalls::v1::ListFirewallsRequest @@ -80,12 +106,38 @@ class MockFirewallsConnection request), (override)); + MOCK_METHOD( + StatusOr, PatchFirewall, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::firewalls::v1::PatchFirewallRequest const& + request), + (override)); + + MOCK_METHOD(future>, + PatchFirewall, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD( future>, UpdateFirewall, (google::cloud::cpp::compute::firewalls::v1::UpdateFirewallRequest const& request), (override)); + + MOCK_METHOD( + StatusOr, UpdateFirewall, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::firewalls::v1::UpdateFirewallRequest const& + request), + (override)); + + MOCK_METHOD(future>, + UpdateFirewall, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); }; GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END diff --git a/google/cloud/compute/forwarding_rules/v1/forwarding_rules_connection.cc b/google/cloud/compute/forwarding_rules/v1/forwarding_rules_connection.cc index c3df72f1c2a73..d20f79e9d96af 100644 --- a/google/cloud/compute/forwarding_rules/v1/forwarding_rules_connection.cc +++ b/google/cloud/compute/forwarding_rules/v1/forwarding_rules_connection.cc @@ -55,6 +55,23 @@ ForwardingRulesConnection::DeleteForwardingRule( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +ForwardingRulesConnection::DeleteForwardingRule( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::forwarding_rules::v1:: + DeleteForwardingRuleRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +ForwardingRulesConnection::DeleteForwardingRule( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr ForwardingRulesConnection::GetForwardingRule( google::cloud::cpp::compute::forwarding_rules::v1:: @@ -71,6 +88,23 @@ ForwardingRulesConnection::InsertForwardingRule( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +ForwardingRulesConnection::InsertForwardingRule( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::forwarding_rules::v1:: + InsertForwardingRuleRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +ForwardingRulesConnection::InsertForwardingRule( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StreamRange ForwardingRulesConnection::ListForwardingRules( google::cloud::cpp::compute::forwarding_rules::v1:: @@ -88,10 +122,44 @@ ForwardingRulesConnection::PatchForwardingRule( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +ForwardingRulesConnection::PatchForwardingRule( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::forwarding_rules::v1:: + PatchForwardingRuleRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> +ForwardingRulesConnection::PatchForwardingRule( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +ForwardingRulesConnection::SetLabels( + google::cloud::cpp::compute::forwarding_rules::v1:: + SetLabelsRequest const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +StatusOr ForwardingRulesConnection::SetLabels( + ExperimentalTag, NoAwaitTag, google::cloud::cpp::compute::forwarding_rules::v1:: SetLabelsRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +ForwardingRulesConnection::SetLabels( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { return google::cloud::make_ready_future< StatusOr>( Status(StatusCode::kUnimplemented, "not implemented")); @@ -106,6 +174,23 @@ ForwardingRulesConnection::SetTarget( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +ForwardingRulesConnection::SetTarget( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::forwarding_rules::v1:: + SetTargetRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +ForwardingRulesConnection::SetTarget( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace compute_forwarding_rules_v1 } // namespace cloud diff --git a/google/cloud/compute/forwarding_rules/v1/forwarding_rules_connection.h b/google/cloud/compute/forwarding_rules/v1/forwarding_rules_connection.h index 2ee746aa8566f..59920425a2280 100644 --- a/google/cloud/compute/forwarding_rules/v1/forwarding_rules_connection.h +++ b/google/cloud/compute/forwarding_rules/v1/forwarding_rules_connection.h @@ -22,8 +22,10 @@ #include "google/cloud/compute/forwarding_rules/v1/forwarding_rules_connection_idempotency_policy.h" #include "google/cloud/compute/forwarding_rules/v1/internal/forwarding_rules_retry_traits.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/internal/retry_policy_impl.h" +#include "google/cloud/no_await_tag.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" #include "google/cloud/status_or.h" @@ -196,6 +198,16 @@ class ForwardingRulesConnection { DeleteForwardingRule(google::cloud::cpp::compute::forwarding_rules::v1:: DeleteForwardingRuleRequest const& request); + virtual StatusOr + DeleteForwardingRule(ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::forwarding_rules::v1:: + DeleteForwardingRuleRequest const& request); + + virtual future> + DeleteForwardingRule( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual StatusOr GetForwardingRule(google::cloud::cpp::compute::forwarding_rules::v1:: GetForwardingRuleRequest const& request); @@ -204,6 +216,16 @@ class ForwardingRulesConnection { InsertForwardingRule(google::cloud::cpp::compute::forwarding_rules::v1:: InsertForwardingRuleRequest const& request); + virtual StatusOr + InsertForwardingRule(ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::forwarding_rules::v1:: + InsertForwardingRuleRequest const& request); + + virtual future> + InsertForwardingRule( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual StreamRange ListForwardingRules(google::cloud::cpp::compute::forwarding_rules::v1:: ListForwardingRulesRequest request); @@ -212,15 +234,43 @@ class ForwardingRulesConnection { PatchForwardingRule(google::cloud::cpp::compute::forwarding_rules::v1:: PatchForwardingRuleRequest const& request); + virtual StatusOr + PatchForwardingRule(ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::forwarding_rules::v1:: + PatchForwardingRuleRequest const& request); + + virtual future> + PatchForwardingRule( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual future> SetLabels( google::cloud::cpp::compute::forwarding_rules::v1::SetLabelsRequest const& request); + virtual StatusOr SetLabels( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::forwarding_rules::v1::SetLabelsRequest const& + request); + + virtual future> + SetLabels(ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual future> SetTarget( google::cloud::cpp::compute::forwarding_rules::v1::SetTargetRequest const& request); + + virtual StatusOr SetTarget( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::forwarding_rules::v1::SetTargetRequest const& + request); + + virtual future> + SetTarget(ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); }; GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END diff --git a/google/cloud/compute/forwarding_rules/v1/internal/forwarding_rules_rest_connection_impl.cc b/google/cloud/compute/forwarding_rules/v1/internal/forwarding_rules_rest_connection_impl.cc index 20c1fe9f488b1..7a5381a1f87d0 100644 --- a/google/cloud/compute/forwarding_rules/v1/internal/forwarding_rules_rest_connection_impl.cc +++ b/google/cloud/compute/forwarding_rules/v1/internal/forwarding_rules_rest_connection_impl.cc @@ -23,6 +23,7 @@ #include "google/cloud/internal/async_rest_long_running_operation_custom.h" #include "google/cloud/internal/extract_long_running_result.h" #include "google/cloud/internal/pagination_range.h" +#include "google/cloud/internal/rest_lro_helpers.h" #include "google/cloud/internal/rest_retry_loop.h" #include "google/cloud/rest_options.h" #include @@ -147,6 +148,79 @@ ForwardingRulesRestConnectionImpl::DeleteForwardingRule( }); } +StatusOr +ForwardingRulesRestConnectionImpl::DeleteForwardingRule( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::forwarding_rules::v1:: + DeleteForwardingRuleRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteForwardingRule(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::forwarding_rules::v1:: + DeleteForwardingRuleRequest const& request) { + return stub_->DeleteForwardingRule(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +ForwardingRulesRestConnectionImpl::DeleteForwardingRule( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::region_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }); +} + StatusOr ForwardingRulesRestConnectionImpl::GetForwardingRule( google::cloud::cpp::compute::forwarding_rules::v1:: @@ -223,6 +297,79 @@ ForwardingRulesRestConnectionImpl::InsertForwardingRule( }); } +StatusOr +ForwardingRulesRestConnectionImpl::InsertForwardingRule( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::forwarding_rules::v1:: + InsertForwardingRuleRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->InsertForwardingRule(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::forwarding_rules::v1:: + InsertForwardingRuleRequest const& request) { + return stub_->InsertForwardingRule(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +ForwardingRulesRestConnectionImpl::InsertForwardingRule( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::region_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }); +} + StreamRange ForwardingRulesRestConnectionImpl::ListForwardingRules( google::cloud::cpp::compute::forwarding_rules::v1:: @@ -321,6 +468,79 @@ ForwardingRulesRestConnectionImpl::PatchForwardingRule( }); } +StatusOr +ForwardingRulesRestConnectionImpl::PatchForwardingRule( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::forwarding_rules::v1:: + PatchForwardingRuleRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->PatchForwardingRule(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::forwarding_rules::v1:: + PatchForwardingRuleRequest const& request) { + return stub_->PatchForwardingRule(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +ForwardingRulesRestConnectionImpl::PatchForwardingRule( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::region_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }); +} + future> ForwardingRulesRestConnectionImpl::SetLabels( google::cloud::cpp::compute::forwarding_rules::v1::SetLabelsRequest const& @@ -381,6 +601,79 @@ ForwardingRulesRestConnectionImpl::SetLabels( }); } +StatusOr +ForwardingRulesRestConnectionImpl::SetLabels( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::forwarding_rules::v1::SetLabelsRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->SetLabels(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::forwarding_rules::v1:: + SetLabelsRequest const& request) { + return stub_->SetLabels(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +ForwardingRulesRestConnectionImpl::SetLabels( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::region_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }); +} + future> ForwardingRulesRestConnectionImpl::SetTarget( google::cloud::cpp::compute::forwarding_rules::v1::SetTargetRequest const& @@ -441,6 +734,79 @@ ForwardingRulesRestConnectionImpl::SetTarget( }); } +StatusOr +ForwardingRulesRestConnectionImpl::SetTarget( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::forwarding_rules::v1::SetTargetRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->SetTarget(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::forwarding_rules::v1:: + SetTargetRequest const& request) { + return stub_->SetTarget(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +ForwardingRulesRestConnectionImpl::SetTarget( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::region_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace compute_forwarding_rules_v1_internal } // namespace cloud diff --git a/google/cloud/compute/forwarding_rules/v1/internal/forwarding_rules_rest_connection_impl.h b/google/cloud/compute/forwarding_rules/v1/internal/forwarding_rules_rest_connection_impl.h index f00fef7183d0b..c519db93ff3ab 100644 --- a/google/cloud/compute/forwarding_rules/v1/internal/forwarding_rules_rest_connection_impl.h +++ b/google/cloud/compute/forwarding_rules/v1/internal/forwarding_rules_rest_connection_impl.h @@ -62,6 +62,16 @@ class ForwardingRulesRestConnectionImpl DeleteForwardingRule(google::cloud::cpp::compute::forwarding_rules::v1:: DeleteForwardingRuleRequest const& request) override; + StatusOr DeleteForwardingRule( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::forwarding_rules::v1:: + DeleteForwardingRuleRequest const& request) override; + + future> + DeleteForwardingRule( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StatusOr GetForwardingRule( google::cloud::cpp::compute::forwarding_rules::v1:: GetForwardingRuleRequest const& request) override; @@ -70,6 +80,16 @@ class ForwardingRulesRestConnectionImpl InsertForwardingRule(google::cloud::cpp::compute::forwarding_rules::v1:: InsertForwardingRuleRequest const& request) override; + StatusOr InsertForwardingRule( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::forwarding_rules::v1:: + InsertForwardingRuleRequest const& request) override; + + future> + InsertForwardingRule( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StreamRange ListForwardingRules(google::cloud::cpp::compute::forwarding_rules::v1:: ListForwardingRulesRequest request) override; @@ -78,14 +98,42 @@ class ForwardingRulesRestConnectionImpl PatchForwardingRule(google::cloud::cpp::compute::forwarding_rules::v1:: PatchForwardingRuleRequest const& request) override; + StatusOr PatchForwardingRule( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::forwarding_rules::v1:: + PatchForwardingRuleRequest const& request) override; + + future> + PatchForwardingRule( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> SetLabels( google::cloud::cpp::compute::forwarding_rules::v1::SetLabelsRequest const& request) override; + StatusOr SetLabels( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::forwarding_rules::v1::SetLabelsRequest const& + request) override; + + future> SetLabels( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> SetTarget( google::cloud::cpp::compute::forwarding_rules::v1::SetTargetRequest const& request) override; + StatusOr SetTarget( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::forwarding_rules::v1::SetTargetRequest const& + request) override; + + future> SetTarget( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + private: static std::unique_ptr< compute_forwarding_rules_v1::ForwardingRulesRetryPolicy> diff --git a/google/cloud/compute/forwarding_rules/v1/internal/forwarding_rules_tracing_connection.cc b/google/cloud/compute/forwarding_rules/v1/internal/forwarding_rules_tracing_connection.cc index af3ce7c7c8299..5259b880bd389 100644 --- a/google/cloud/compute/forwarding_rules/v1/internal/forwarding_rules_tracing_connection.cc +++ b/google/cloud/compute/forwarding_rules/v1/internal/forwarding_rules_tracing_connection.cc @@ -61,6 +61,32 @@ ForwardingRulesTracingConnection::DeleteForwardingRule( child_->DeleteForwardingRule(request)); } +StatusOr +ForwardingRulesTracingConnection::DeleteForwardingRule( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::forwarding_rules::v1:: + DeleteForwardingRuleRequest const& request) { + auto span = internal::MakeSpan( + "compute_forwarding_rules_v1::ForwardingRulesConnection::" + "DeleteForwardingRule"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->DeleteForwardingRule(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +ForwardingRulesTracingConnection::DeleteForwardingRule( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_forwarding_rules_v1::ForwardingRulesConnection::" + "DeleteForwardingRule"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->DeleteForwardingRule( + ExperimentalTag{}, operation)); +} + StatusOr ForwardingRulesTracingConnection::GetForwardingRule( google::cloud::cpp::compute::forwarding_rules::v1:: @@ -84,6 +110,32 @@ ForwardingRulesTracingConnection::InsertForwardingRule( child_->InsertForwardingRule(request)); } +StatusOr +ForwardingRulesTracingConnection::InsertForwardingRule( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::forwarding_rules::v1:: + InsertForwardingRuleRequest const& request) { + auto span = internal::MakeSpan( + "compute_forwarding_rules_v1::ForwardingRulesConnection::" + "InsertForwardingRule"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->InsertForwardingRule(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +ForwardingRulesTracingConnection::InsertForwardingRule( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_forwarding_rules_v1::ForwardingRulesConnection::" + "InsertForwardingRule"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->InsertForwardingRule( + ExperimentalTag{}, operation)); +} + StreamRange ForwardingRulesTracingConnection::ListForwardingRules( google::cloud::cpp::compute::forwarding_rules::v1:: @@ -110,6 +162,32 @@ ForwardingRulesTracingConnection::PatchForwardingRule( child_->PatchForwardingRule(request)); } +StatusOr +ForwardingRulesTracingConnection::PatchForwardingRule( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::forwarding_rules::v1:: + PatchForwardingRuleRequest const& request) { + auto span = internal::MakeSpan( + "compute_forwarding_rules_v1::ForwardingRulesConnection::" + "PatchForwardingRule"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->PatchForwardingRule(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +ForwardingRulesTracingConnection::PatchForwardingRule( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_forwarding_rules_v1::ForwardingRulesConnection::" + "PatchForwardingRule"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->PatchForwardingRule( + ExperimentalTag{}, operation)); +} + future> ForwardingRulesTracingConnection::SetLabels( google::cloud::cpp::compute::forwarding_rules::v1::SetLabelsRequest const& @@ -120,6 +198,29 @@ ForwardingRulesTracingConnection::SetLabels( return internal::EndSpan(std::move(span), child_->SetLabels(request)); } +StatusOr +ForwardingRulesTracingConnection::SetLabels( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::forwarding_rules::v1::SetLabelsRequest const& + request) { + auto span = internal::MakeSpan( + "compute_forwarding_rules_v1::ForwardingRulesConnection::SetLabels"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->SetLabels(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +ForwardingRulesTracingConnection::SetLabels( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_forwarding_rules_v1::ForwardingRulesConnection::SetLabels"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->SetLabels(ExperimentalTag{}, operation)); +} + future> ForwardingRulesTracingConnection::SetTarget( google::cloud::cpp::compute::forwarding_rules::v1::SetTargetRequest const& @@ -130,6 +231,29 @@ ForwardingRulesTracingConnection::SetTarget( return internal::EndSpan(std::move(span), child_->SetTarget(request)); } +StatusOr +ForwardingRulesTracingConnection::SetTarget( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::forwarding_rules::v1::SetTargetRequest const& + request) { + auto span = internal::MakeSpan( + "compute_forwarding_rules_v1::ForwardingRulesConnection::SetTarget"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->SetTarget(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +ForwardingRulesTracingConnection::SetTarget( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_forwarding_rules_v1::ForwardingRulesConnection::SetTarget"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->SetTarget(ExperimentalTag{}, operation)); +} + #endif // GOOGLE_CLOUD_CPP_HAVE_OPENTELEMETRY std::shared_ptr diff --git a/google/cloud/compute/forwarding_rules/v1/internal/forwarding_rules_tracing_connection.h b/google/cloud/compute/forwarding_rules/v1/internal/forwarding_rules_tracing_connection.h index eb4caa93cf5cd..6ad89df7db366 100644 --- a/google/cloud/compute/forwarding_rules/v1/internal/forwarding_rules_tracing_connection.h +++ b/google/cloud/compute/forwarding_rules/v1/internal/forwarding_rules_tracing_connection.h @@ -51,6 +51,16 @@ class ForwardingRulesTracingConnection DeleteForwardingRule(google::cloud::cpp::compute::forwarding_rules::v1:: DeleteForwardingRuleRequest const& request) override; + StatusOr DeleteForwardingRule( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::forwarding_rules::v1:: + DeleteForwardingRuleRequest const& request) override; + + future> + DeleteForwardingRule( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StatusOr GetForwardingRule( google::cloud::cpp::compute::forwarding_rules::v1:: GetForwardingRuleRequest const& request) override; @@ -59,6 +69,16 @@ class ForwardingRulesTracingConnection InsertForwardingRule(google::cloud::cpp::compute::forwarding_rules::v1:: InsertForwardingRuleRequest const& request) override; + StatusOr InsertForwardingRule( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::forwarding_rules::v1:: + InsertForwardingRuleRequest const& request) override; + + future> + InsertForwardingRule( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StreamRange ListForwardingRules(google::cloud::cpp::compute::forwarding_rules::v1:: ListForwardingRulesRequest request) override; @@ -67,14 +87,42 @@ class ForwardingRulesTracingConnection PatchForwardingRule(google::cloud::cpp::compute::forwarding_rules::v1:: PatchForwardingRuleRequest const& request) override; + StatusOr PatchForwardingRule( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::forwarding_rules::v1:: + PatchForwardingRuleRequest const& request) override; + + future> + PatchForwardingRule( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> SetLabels( google::cloud::cpp::compute::forwarding_rules::v1::SetLabelsRequest const& request) override; + StatusOr SetLabels( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::forwarding_rules::v1::SetLabelsRequest const& + request) override; + + future> SetLabels( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> SetTarget( google::cloud::cpp::compute::forwarding_rules::v1::SetTargetRequest const& request) override; + StatusOr SetTarget( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::forwarding_rules::v1::SetTargetRequest const& + request) override; + + future> SetTarget( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + private: std::shared_ptr child_; diff --git a/google/cloud/compute/forwarding_rules/v1/mocks/mock_forwarding_rules_connection.h b/google/cloud/compute/forwarding_rules/v1/mocks/mock_forwarding_rules_connection.h index 1933ea0cca817..c1927a22f8269 100644 --- a/google/cloud/compute/forwarding_rules/v1/mocks/mock_forwarding_rules_connection.h +++ b/google/cloud/compute/forwarding_rules/v1/mocks/mock_forwarding_rules_connection.h @@ -61,6 +61,19 @@ class MockForwardingRulesConnection DeleteForwardingRuleRequest const& request), (override)); + MOCK_METHOD(StatusOr, + DeleteForwardingRule, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::forwarding_rules::v1:: + DeleteForwardingRuleRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteForwardingRule, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD(StatusOr, GetForwardingRule, (google::cloud::cpp::compute::forwarding_rules::v1:: @@ -73,6 +86,19 @@ class MockForwardingRulesConnection InsertForwardingRuleRequest const& request), (override)); + MOCK_METHOD(StatusOr, + InsertForwardingRule, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::forwarding_rules::v1:: + InsertForwardingRuleRequest const& request), + (override)); + + MOCK_METHOD(future>, + InsertForwardingRule, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD((StreamRange), ListForwardingRules, (google::cloud::cpp::compute::forwarding_rules::v1:: @@ -85,17 +111,54 @@ class MockForwardingRulesConnection PatchForwardingRuleRequest const& request), (override)); + MOCK_METHOD(StatusOr, + PatchForwardingRule, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::forwarding_rules::v1:: + PatchForwardingRuleRequest const& request), + (override)); + + MOCK_METHOD(future>, + PatchForwardingRule, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD(future>, SetLabels, (google::cloud::cpp::compute::forwarding_rules::v1:: SetLabelsRequest const& request), (override)); + MOCK_METHOD(StatusOr, SetLabels, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::forwarding_rules::v1:: + SetLabelsRequest const& request), + (override)); + + MOCK_METHOD(future>, + SetLabels, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD(future>, SetTarget, (google::cloud::cpp::compute::forwarding_rules::v1:: SetTargetRequest const& request), (override)); + + MOCK_METHOD(StatusOr, SetTarget, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::forwarding_rules::v1:: + SetTargetRequest const& request), + (override)); + + MOCK_METHOD(future>, + SetTarget, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); }; GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END diff --git a/google/cloud/compute/global_addresses/v1/global_addresses_connection.cc b/google/cloud/compute/global_addresses/v1/global_addresses_connection.cc index 09416050f7fa5..50faf00c5c5b4 100644 --- a/google/cloud/compute/global_addresses/v1/global_addresses_connection.cc +++ b/google/cloud/compute/global_addresses/v1/global_addresses_connection.cc @@ -45,6 +45,23 @@ GlobalAddressesConnection::DeleteAddress( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +GlobalAddressesConnection::DeleteAddress( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::global_addresses::v1:: + DeleteAddressRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +GlobalAddressesConnection::DeleteAddress( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr GlobalAddressesConnection::GetAddress( google::cloud::cpp::compute::global_addresses::v1:: @@ -61,6 +78,23 @@ GlobalAddressesConnection::InsertAddress( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +GlobalAddressesConnection::InsertAddress( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::global_addresses::v1:: + InsertAddressRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +GlobalAddressesConnection::InsertAddress( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StreamRange GlobalAddressesConnection::ListGlobalAddresses( google::cloud::cpp::compute::global_addresses::v1:: @@ -77,6 +111,22 @@ GlobalAddressesConnection::Move( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +GlobalAddressesConnection::Move( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::global_addresses::v1::MoveRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +GlobalAddressesConnection::Move( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> GlobalAddressesConnection::SetLabels( google::cloud::cpp::compute::global_addresses::v1:: @@ -86,6 +136,23 @@ GlobalAddressesConnection::SetLabels( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +GlobalAddressesConnection::SetLabels( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::global_addresses::v1:: + SetLabelsRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +GlobalAddressesConnection::SetLabels( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace compute_global_addresses_v1 } // namespace cloud diff --git a/google/cloud/compute/global_addresses/v1/global_addresses_connection.h b/google/cloud/compute/global_addresses/v1/global_addresses_connection.h index 9baa98c40649d..a2ca6942e3321 100644 --- a/google/cloud/compute/global_addresses/v1/global_addresses_connection.h +++ b/google/cloud/compute/global_addresses/v1/global_addresses_connection.h @@ -22,8 +22,10 @@ #include "google/cloud/compute/global_addresses/v1/global_addresses_connection_idempotency_policy.h" #include "google/cloud/compute/global_addresses/v1/internal/global_addresses_retry_traits.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/internal/retry_policy_impl.h" +#include "google/cloud/no_await_tag.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" #include "google/cloud/status_or.h" @@ -190,6 +192,15 @@ class GlobalAddressesConnection { DeleteAddress(google::cloud::cpp::compute::global_addresses::v1:: DeleteAddressRequest const& request); + virtual StatusOr DeleteAddress( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::global_addresses::v1:: + DeleteAddressRequest const& request); + + virtual future> + DeleteAddress(ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual StatusOr GetAddress( google::cloud::cpp::compute::global_addresses::v1:: GetAddressRequest const& request); @@ -198,6 +209,15 @@ class GlobalAddressesConnection { InsertAddress(google::cloud::cpp::compute::global_addresses::v1:: InsertAddressRequest const& request); + virtual StatusOr InsertAddress( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::global_addresses::v1:: + InsertAddressRequest const& request); + + virtual future> + InsertAddress(ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual StreamRange ListGlobalAddresses(google::cloud::cpp::compute::global_addresses::v1:: ListGlobalAddressesRequest request); @@ -206,10 +226,28 @@ class GlobalAddressesConnection { google::cloud::cpp::compute::global_addresses::v1::MoveRequest const& request); + virtual StatusOr Move( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::global_addresses::v1::MoveRequest const& + request); + + virtual future> Move( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual future> SetLabels( google::cloud::cpp::compute::global_addresses::v1::SetLabelsRequest const& request); + + virtual StatusOr SetLabels( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::global_addresses::v1::SetLabelsRequest const& + request); + + virtual future> + SetLabels(ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); }; GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END diff --git a/google/cloud/compute/global_addresses/v1/internal/global_addresses_rest_connection_impl.cc b/google/cloud/compute/global_addresses/v1/internal/global_addresses_rest_connection_impl.cc index f35e2f34cd928..3705feef46a3b 100644 --- a/google/cloud/compute/global_addresses/v1/internal/global_addresses_rest_connection_impl.cc +++ b/google/cloud/compute/global_addresses/v1/internal/global_addresses_rest_connection_impl.cc @@ -23,6 +23,7 @@ #include "google/cloud/internal/async_rest_long_running_operation_custom.h" #include "google/cloud/internal/extract_long_running_result.h" #include "google/cloud/internal/pagination_range.h" +#include "google/cloud/internal/rest_lro_helpers.h" #include "google/cloud/internal/rest_retry_loop.h" #include "google/cloud/rest_options.h" #include @@ -102,6 +103,77 @@ GlobalAddressesRestConnectionImpl::DeleteAddress( }); } +StatusOr +GlobalAddressesRestConnectionImpl::DeleteAddress( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::global_addresses::v1:: + DeleteAddressRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteAddress(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::global_addresses::v1:: + DeleteAddressRequest const& request) { + return stub_->DeleteAddress(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +GlobalAddressesRestConnectionImpl::DeleteAddress( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::global_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }); +} + StatusOr GlobalAddressesRestConnectionImpl::GetAddress( google::cloud::cpp::compute::global_addresses::v1::GetAddressRequest const& @@ -176,6 +248,77 @@ GlobalAddressesRestConnectionImpl::InsertAddress( }); } +StatusOr +GlobalAddressesRestConnectionImpl::InsertAddress( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::global_addresses::v1:: + InsertAddressRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->InsertAddress(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::global_addresses::v1:: + InsertAddressRequest const& request) { + return stub_->InsertAddress(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +GlobalAddressesRestConnectionImpl::InsertAddress( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::global_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }); +} + StreamRange GlobalAddressesRestConnectionImpl::ListGlobalAddresses( google::cloud::cpp::compute::global_addresses::v1:: @@ -273,6 +416,76 @@ GlobalAddressesRestConnectionImpl::Move( }); } +StatusOr +GlobalAddressesRestConnectionImpl::Move( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::global_addresses::v1::MoveRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->Move(request), + [this]( + rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::global_addresses::v1::MoveRequest const& + request) { return stub_->Move(rest_context, options, request); }, + *current, request, __func__); +} + +future> +GlobalAddressesRestConnectionImpl::Move( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::global_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }); +} + future> GlobalAddressesRestConnectionImpl::SetLabels( google::cloud::cpp::compute::global_addresses::v1::SetLabelsRequest const& @@ -331,6 +544,77 @@ GlobalAddressesRestConnectionImpl::SetLabels( }); } +StatusOr +GlobalAddressesRestConnectionImpl::SetLabels( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::global_addresses::v1::SetLabelsRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->SetLabels(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::global_addresses::v1:: + SetLabelsRequest const& request) { + return stub_->SetLabels(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +GlobalAddressesRestConnectionImpl::SetLabels( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::global_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace compute_global_addresses_v1_internal } // namespace cloud diff --git a/google/cloud/compute/global_addresses/v1/internal/global_addresses_rest_connection_impl.h b/google/cloud/compute/global_addresses/v1/internal/global_addresses_rest_connection_impl.h index b3824d80a4227..84c0cd65ddc60 100644 --- a/google/cloud/compute/global_addresses/v1/internal/global_addresses_rest_connection_impl.h +++ b/google/cloud/compute/global_addresses/v1/internal/global_addresses_rest_connection_impl.h @@ -56,6 +56,15 @@ class GlobalAddressesRestConnectionImpl google::cloud::cpp::compute::global_addresses::v1:: DeleteAddressRequest const& request) override; + StatusOr DeleteAddress( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::global_addresses::v1:: + DeleteAddressRequest const& request) override; + + future> DeleteAddress( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StatusOr GetAddress( google::cloud::cpp::compute::global_addresses::v1:: GetAddressRequest const& request) override; @@ -64,6 +73,15 @@ class GlobalAddressesRestConnectionImpl google::cloud::cpp::compute::global_addresses::v1:: InsertAddressRequest const& request) override; + StatusOr InsertAddress( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::global_addresses::v1:: + InsertAddressRequest const& request) override; + + future> InsertAddress( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StreamRange ListGlobalAddresses( google::cloud::cpp::compute::global_addresses::v1:: ListGlobalAddressesRequest request) override; @@ -72,10 +90,28 @@ class GlobalAddressesRestConnectionImpl google::cloud::cpp::compute::global_addresses::v1::MoveRequest const& request) override; + StatusOr Move( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::global_addresses::v1::MoveRequest const& + request) override; + + future> Move( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> SetLabels( google::cloud::cpp::compute::global_addresses::v1::SetLabelsRequest const& request) override; + StatusOr SetLabels( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::global_addresses::v1::SetLabelsRequest const& + request) override; + + future> SetLabels( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + private: static std::unique_ptr< compute_global_addresses_v1::GlobalAddressesRetryPolicy> diff --git a/google/cloud/compute/global_addresses/v1/internal/global_addresses_tracing_connection.cc b/google/cloud/compute/global_addresses/v1/internal/global_addresses_tracing_connection.cc index 0a30ee8854962..6a14e27a3832a 100644 --- a/google/cloud/compute/global_addresses/v1/internal/global_addresses_tracing_connection.cc +++ b/google/cloud/compute/global_addresses/v1/internal/global_addresses_tracing_connection.cc @@ -44,6 +44,29 @@ GlobalAddressesTracingConnection::DeleteAddress( return internal::EndSpan(std::move(span), child_->DeleteAddress(request)); } +StatusOr +GlobalAddressesTracingConnection::DeleteAddress( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::global_addresses::v1:: + DeleteAddressRequest const& request) { + auto span = internal::MakeSpan( + "compute_global_addresses_v1::GlobalAddressesConnection::DeleteAddress"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->DeleteAddress(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +GlobalAddressesTracingConnection::DeleteAddress( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_global_addresses_v1::GlobalAddressesConnection::DeleteAddress"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->DeleteAddress(ExperimentalTag{}, operation)); +} + StatusOr GlobalAddressesTracingConnection::GetAddress( google::cloud::cpp::compute::global_addresses::v1::GetAddressRequest const& @@ -64,6 +87,29 @@ GlobalAddressesTracingConnection::InsertAddress( return internal::EndSpan(std::move(span), child_->InsertAddress(request)); } +StatusOr +GlobalAddressesTracingConnection::InsertAddress( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::global_addresses::v1:: + InsertAddressRequest const& request) { + auto span = internal::MakeSpan( + "compute_global_addresses_v1::GlobalAddressesConnection::InsertAddress"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->InsertAddress(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +GlobalAddressesTracingConnection::InsertAddress( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_global_addresses_v1::GlobalAddressesConnection::InsertAddress"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->InsertAddress(ExperimentalTag{}, operation)); +} + StreamRange GlobalAddressesTracingConnection::ListGlobalAddresses( google::cloud::cpp::compute::global_addresses::v1:: @@ -87,6 +133,29 @@ GlobalAddressesTracingConnection::Move( return internal::EndSpan(std::move(span), child_->Move(request)); } +StatusOr +GlobalAddressesTracingConnection::Move( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::global_addresses::v1::MoveRequest const& + request) { + auto span = internal::MakeSpan( + "compute_global_addresses_v1::GlobalAddressesConnection::Move"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->Move(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +GlobalAddressesTracingConnection::Move( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_global_addresses_v1::GlobalAddressesConnection::Move"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->Move(ExperimentalTag{}, operation)); +} + future> GlobalAddressesTracingConnection::SetLabels( google::cloud::cpp::compute::global_addresses::v1::SetLabelsRequest const& @@ -97,6 +166,29 @@ GlobalAddressesTracingConnection::SetLabels( return internal::EndSpan(std::move(span), child_->SetLabels(request)); } +StatusOr +GlobalAddressesTracingConnection::SetLabels( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::global_addresses::v1::SetLabelsRequest const& + request) { + auto span = internal::MakeSpan( + "compute_global_addresses_v1::GlobalAddressesConnection::SetLabels"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->SetLabels(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +GlobalAddressesTracingConnection::SetLabels( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_global_addresses_v1::GlobalAddressesConnection::SetLabels"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->SetLabels(ExperimentalTag{}, operation)); +} + #endif // GOOGLE_CLOUD_CPP_HAVE_OPENTELEMETRY std::shared_ptr diff --git a/google/cloud/compute/global_addresses/v1/internal/global_addresses_tracing_connection.h b/google/cloud/compute/global_addresses/v1/internal/global_addresses_tracing_connection.h index 317a01c5fcb7f..e755ded5fbc81 100644 --- a/google/cloud/compute/global_addresses/v1/internal/global_addresses_tracing_connection.h +++ b/google/cloud/compute/global_addresses/v1/internal/global_addresses_tracing_connection.h @@ -45,6 +45,15 @@ class GlobalAddressesTracingConnection google::cloud::cpp::compute::global_addresses::v1:: DeleteAddressRequest const& request) override; + StatusOr DeleteAddress( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::global_addresses::v1:: + DeleteAddressRequest const& request) override; + + future> DeleteAddress( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StatusOr GetAddress( google::cloud::cpp::compute::global_addresses::v1:: GetAddressRequest const& request) override; @@ -53,6 +62,15 @@ class GlobalAddressesTracingConnection google::cloud::cpp::compute::global_addresses::v1:: InsertAddressRequest const& request) override; + StatusOr InsertAddress( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::global_addresses::v1:: + InsertAddressRequest const& request) override; + + future> InsertAddress( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StreamRange ListGlobalAddresses( google::cloud::cpp::compute::global_addresses::v1:: ListGlobalAddressesRequest request) override; @@ -61,10 +79,28 @@ class GlobalAddressesTracingConnection google::cloud::cpp::compute::global_addresses::v1::MoveRequest const& request) override; + StatusOr Move( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::global_addresses::v1::MoveRequest const& + request) override; + + future> Move( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> SetLabels( google::cloud::cpp::compute::global_addresses::v1::SetLabelsRequest const& request) override; + StatusOr SetLabels( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::global_addresses::v1::SetLabelsRequest const& + request) override; + + future> SetLabels( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + private: std::shared_ptr child_; diff --git a/google/cloud/compute/global_addresses/v1/mocks/mock_global_addresses_connection.h b/google/cloud/compute/global_addresses/v1/mocks/mock_global_addresses_connection.h index 0a14f3087881d..468c6061e0842 100644 --- a/google/cloud/compute/global_addresses/v1/mocks/mock_global_addresses_connection.h +++ b/google/cloud/compute/global_addresses/v1/mocks/mock_global_addresses_connection.h @@ -53,6 +53,19 @@ class MockGlobalAddressesConnection DeleteAddressRequest const& request), (override)); + MOCK_METHOD(StatusOr, + DeleteAddress, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::global_addresses::v1:: + DeleteAddressRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteAddress, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD(StatusOr, GetAddress, (google::cloud::cpp::compute::global_addresses::v1:: GetAddressRequest const& request), @@ -64,6 +77,19 @@ class MockGlobalAddressesConnection InsertAddressRequest const& request), (override)); + MOCK_METHOD(StatusOr, + InsertAddress, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::global_addresses::v1:: + InsertAddressRequest const& request), + (override)); + + MOCK_METHOD(future>, + InsertAddress, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD((StreamRange), ListGlobalAddresses, (google::cloud::cpp::compute::global_addresses::v1:: @@ -76,11 +102,36 @@ class MockGlobalAddressesConnection request), (override)); + MOCK_METHOD( + StatusOr, Move, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::global_addresses::v1::MoveRequest const& + request), + (override)); + + MOCK_METHOD(future>, + Move, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD(future>, SetLabels, (google::cloud::cpp::compute::global_addresses::v1:: SetLabelsRequest const& request), (override)); + + MOCK_METHOD(StatusOr, SetLabels, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::global_addresses::v1:: + SetLabelsRequest const& request), + (override)); + + MOCK_METHOD(future>, + SetLabels, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); }; GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END diff --git a/google/cloud/compute/global_forwarding_rules/v1/global_forwarding_rules_connection.cc b/google/cloud/compute/global_forwarding_rules/v1/global_forwarding_rules_connection.cc index 00af67687f095..fc9af28354cff 100644 --- a/google/cloud/compute/global_forwarding_rules/v1/global_forwarding_rules_connection.cc +++ b/google/cloud/compute/global_forwarding_rules/v1/global_forwarding_rules_connection.cc @@ -46,6 +46,23 @@ GlobalForwardingRulesConnection::DeleteForwardingRule( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +GlobalForwardingRulesConnection::DeleteForwardingRule( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::global_forwarding_rules::v1:: + DeleteForwardingRuleRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +GlobalForwardingRulesConnection::DeleteForwardingRule( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr GlobalForwardingRulesConnection::GetForwardingRule( google::cloud::cpp::compute::global_forwarding_rules::v1:: @@ -62,6 +79,23 @@ GlobalForwardingRulesConnection::InsertForwardingRule( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +GlobalForwardingRulesConnection::InsertForwardingRule( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::global_forwarding_rules::v1:: + InsertForwardingRuleRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +GlobalForwardingRulesConnection::InsertForwardingRule( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StreamRange GlobalForwardingRulesConnection::ListGlobalForwardingRules( google::cloud::cpp::compute::global_forwarding_rules::v1:: @@ -79,10 +113,44 @@ GlobalForwardingRulesConnection::PatchForwardingRule( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +GlobalForwardingRulesConnection::PatchForwardingRule( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::global_forwarding_rules::v1:: + PatchForwardingRuleRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> +GlobalForwardingRulesConnection::PatchForwardingRule( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +GlobalForwardingRulesConnection::SetLabels( + google::cloud::cpp::compute::global_forwarding_rules::v1:: + SetLabelsRequest const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +StatusOr GlobalForwardingRulesConnection::SetLabels( + ExperimentalTag, NoAwaitTag, google::cloud::cpp::compute::global_forwarding_rules::v1:: SetLabelsRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +GlobalForwardingRulesConnection::SetLabels( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { return google::cloud::make_ready_future< StatusOr>( Status(StatusCode::kUnimplemented, "not implemented")); @@ -97,6 +165,23 @@ GlobalForwardingRulesConnection::SetTarget( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +GlobalForwardingRulesConnection::SetTarget( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::global_forwarding_rules::v1:: + SetTargetRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +GlobalForwardingRulesConnection::SetTarget( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace compute_global_forwarding_rules_v1 } // namespace cloud diff --git a/google/cloud/compute/global_forwarding_rules/v1/global_forwarding_rules_connection.h b/google/cloud/compute/global_forwarding_rules/v1/global_forwarding_rules_connection.h index d836fdb93d345..6e063779c496a 100644 --- a/google/cloud/compute/global_forwarding_rules/v1/global_forwarding_rules_connection.h +++ b/google/cloud/compute/global_forwarding_rules/v1/global_forwarding_rules_connection.h @@ -23,8 +23,10 @@ #include "google/cloud/compute/global_forwarding_rules/v1/global_forwarding_rules_connection_idempotency_policy.h" #include "google/cloud/compute/global_forwarding_rules/v1/internal/global_forwarding_rules_retry_traits.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/internal/retry_policy_impl.h" +#include "google/cloud/no_await_tag.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" #include "google/cloud/status_or.h" @@ -198,6 +200,16 @@ class GlobalForwardingRulesConnection { DeleteForwardingRule(google::cloud::cpp::compute::global_forwarding_rules:: v1::DeleteForwardingRuleRequest const& request); + virtual StatusOr + DeleteForwardingRule(ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::global_forwarding_rules:: + v1::DeleteForwardingRuleRequest const& request); + + virtual future> + DeleteForwardingRule( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual StatusOr GetForwardingRule(google::cloud::cpp::compute::global_forwarding_rules::v1:: GetForwardingRuleRequest const& request); @@ -206,6 +218,16 @@ class GlobalForwardingRulesConnection { InsertForwardingRule(google::cloud::cpp::compute::global_forwarding_rules:: v1::InsertForwardingRuleRequest const& request); + virtual StatusOr + InsertForwardingRule(ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::global_forwarding_rules:: + v1::InsertForwardingRuleRequest const& request); + + virtual future> + InsertForwardingRule( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual StreamRange ListGlobalForwardingRules( google::cloud::cpp::compute::global_forwarding_rules::v1:: @@ -215,13 +237,41 @@ class GlobalForwardingRulesConnection { PatchForwardingRule(google::cloud::cpp::compute::global_forwarding_rules::v1:: PatchForwardingRuleRequest const& request); + virtual StatusOr + PatchForwardingRule(ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::global_forwarding_rules::v1:: + PatchForwardingRuleRequest const& request); + + virtual future> + PatchForwardingRule( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual future> SetLabels(google::cloud::cpp::compute::global_forwarding_rules::v1:: SetLabelsRequest const& request); + virtual StatusOr SetLabels( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::global_forwarding_rules::v1:: + SetLabelsRequest const& request); + + virtual future> + SetLabels(ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual future> SetTarget(google::cloud::cpp::compute::global_forwarding_rules::v1:: SetTargetRequest const& request); + + virtual StatusOr SetTarget( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::global_forwarding_rules::v1:: + SetTargetRequest const& request); + + virtual future> + SetTarget(ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); }; GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END diff --git a/google/cloud/compute/global_forwarding_rules/v1/internal/global_forwarding_rules_rest_connection_impl.cc b/google/cloud/compute/global_forwarding_rules/v1/internal/global_forwarding_rules_rest_connection_impl.cc index e9a54cb5ecc63..9780685056feb 100644 --- a/google/cloud/compute/global_forwarding_rules/v1/internal/global_forwarding_rules_rest_connection_impl.cc +++ b/google/cloud/compute/global_forwarding_rules/v1/internal/global_forwarding_rules_rest_connection_impl.cc @@ -24,6 +24,7 @@ #include "google/cloud/internal/async_rest_long_running_operation_custom.h" #include "google/cloud/internal/extract_long_running_result.h" #include "google/cloud/internal/pagination_range.h" +#include "google/cloud/internal/rest_lro_helpers.h" #include "google/cloud/internal/rest_retry_loop.h" #include "google/cloud/rest_options.h" #include @@ -104,6 +105,77 @@ GlobalForwardingRulesRestConnectionImpl::DeleteForwardingRule( }); } +StatusOr +GlobalForwardingRulesRestConnectionImpl::DeleteForwardingRule( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::global_forwarding_rules::v1:: + DeleteForwardingRuleRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteForwardingRule(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::global_forwarding_rules::v1:: + DeleteForwardingRuleRequest const& request) { + return stub_->DeleteForwardingRule(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +GlobalForwardingRulesRestConnectionImpl::DeleteForwardingRule( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::global_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }); +} + StatusOr GlobalForwardingRulesRestConnectionImpl::GetForwardingRule( google::cloud::cpp::compute::global_forwarding_rules::v1:: @@ -178,6 +250,77 @@ GlobalForwardingRulesRestConnectionImpl::InsertForwardingRule( }); } +StatusOr +GlobalForwardingRulesRestConnectionImpl::InsertForwardingRule( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::global_forwarding_rules::v1:: + InsertForwardingRuleRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->InsertForwardingRule(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::global_forwarding_rules::v1:: + InsertForwardingRuleRequest const& request) { + return stub_->InsertForwardingRule(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +GlobalForwardingRulesRestConnectionImpl::InsertForwardingRule( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::global_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }); +} + StreamRange GlobalForwardingRulesRestConnectionImpl::ListGlobalForwardingRules( google::cloud::cpp::compute::global_forwarding_rules::v1:: @@ -276,6 +419,77 @@ GlobalForwardingRulesRestConnectionImpl::PatchForwardingRule( }); } +StatusOr +GlobalForwardingRulesRestConnectionImpl::PatchForwardingRule( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::global_forwarding_rules::v1:: + PatchForwardingRuleRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->PatchForwardingRule(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::global_forwarding_rules::v1:: + PatchForwardingRuleRequest const& request) { + return stub_->PatchForwardingRule(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +GlobalForwardingRulesRestConnectionImpl::PatchForwardingRule( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::global_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }); +} + future> GlobalForwardingRulesRestConnectionImpl::SetLabels( google::cloud::cpp::compute::global_forwarding_rules::v1:: @@ -334,6 +548,77 @@ GlobalForwardingRulesRestConnectionImpl::SetLabels( }); } +StatusOr +GlobalForwardingRulesRestConnectionImpl::SetLabels( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::global_forwarding_rules::v1:: + SetLabelsRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->SetLabels(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::global_forwarding_rules::v1:: + SetLabelsRequest const& request) { + return stub_->SetLabels(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +GlobalForwardingRulesRestConnectionImpl::SetLabels( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::global_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }); +} + future> GlobalForwardingRulesRestConnectionImpl::SetTarget( google::cloud::cpp::compute::global_forwarding_rules::v1:: @@ -392,6 +677,77 @@ GlobalForwardingRulesRestConnectionImpl::SetTarget( }); } +StatusOr +GlobalForwardingRulesRestConnectionImpl::SetTarget( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::global_forwarding_rules::v1:: + SetTargetRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->SetTarget(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::global_forwarding_rules::v1:: + SetTargetRequest const& request) { + return stub_->SetTarget(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +GlobalForwardingRulesRestConnectionImpl::SetTarget( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::global_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace compute_global_forwarding_rules_v1_internal } // namespace cloud diff --git a/google/cloud/compute/global_forwarding_rules/v1/internal/global_forwarding_rules_rest_connection_impl.h b/google/cloud/compute/global_forwarding_rules/v1/internal/global_forwarding_rules_rest_connection_impl.h index 324bee1507e12..1676d160abd58 100644 --- a/google/cloud/compute/global_forwarding_rules/v1/internal/global_forwarding_rules_rest_connection_impl.h +++ b/google/cloud/compute/global_forwarding_rules/v1/internal/global_forwarding_rules_rest_connection_impl.h @@ -59,6 +59,16 @@ class GlobalForwardingRulesRestConnectionImpl google::cloud::cpp::compute::global_forwarding_rules::v1:: DeleteForwardingRuleRequest const& request) override; + StatusOr DeleteForwardingRule( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::global_forwarding_rules::v1:: + DeleteForwardingRuleRequest const& request) override; + + future> + DeleteForwardingRule( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StatusOr GetForwardingRule( google::cloud::cpp::compute::global_forwarding_rules::v1:: GetForwardingRuleRequest const& request) override; @@ -68,6 +78,16 @@ class GlobalForwardingRulesRestConnectionImpl google::cloud::cpp::compute::global_forwarding_rules::v1:: InsertForwardingRuleRequest const& request) override; + StatusOr InsertForwardingRule( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::global_forwarding_rules::v1:: + InsertForwardingRuleRequest const& request) override; + + future> + InsertForwardingRule( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StreamRange ListGlobalForwardingRules( google::cloud::cpp::compute::global_forwarding_rules::v1:: @@ -77,14 +97,42 @@ class GlobalForwardingRulesRestConnectionImpl PatchForwardingRule(google::cloud::cpp::compute::global_forwarding_rules::v1:: PatchForwardingRuleRequest const& request) override; + StatusOr PatchForwardingRule( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::global_forwarding_rules::v1:: + PatchForwardingRuleRequest const& request) override; + + future> + PatchForwardingRule( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> SetLabels( google::cloud::cpp::compute::global_forwarding_rules::v1:: SetLabelsRequest const& request) override; + StatusOr SetLabels( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::global_forwarding_rules::v1:: + SetLabelsRequest const& request) override; + + future> SetLabels( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> SetTarget( google::cloud::cpp::compute::global_forwarding_rules::v1:: SetTargetRequest const& request) override; + StatusOr SetTarget( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::global_forwarding_rules::v1:: + SetTargetRequest const& request) override; + + future> SetTarget( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + private: static std::unique_ptr< compute_global_forwarding_rules_v1::GlobalForwardingRulesRetryPolicy> diff --git a/google/cloud/compute/global_forwarding_rules/v1/internal/global_forwarding_rules_tracing_connection.cc b/google/cloud/compute/global_forwarding_rules/v1/internal/global_forwarding_rules_tracing_connection.cc index 990686c070dd6..b4a991a9d0b7b 100644 --- a/google/cloud/compute/global_forwarding_rules/v1/internal/global_forwarding_rules_tracing_connection.cc +++ b/google/cloud/compute/global_forwarding_rules/v1/internal/global_forwarding_rules_tracing_connection.cc @@ -48,6 +48,32 @@ GlobalForwardingRulesTracingConnection::DeleteForwardingRule( child_->DeleteForwardingRule(request)); } +StatusOr +GlobalForwardingRulesTracingConnection::DeleteForwardingRule( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::global_forwarding_rules::v1:: + DeleteForwardingRuleRequest const& request) { + auto span = internal::MakeSpan( + "compute_global_forwarding_rules_v1::GlobalForwardingRulesConnection::" + "DeleteForwardingRule"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->DeleteForwardingRule(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +GlobalForwardingRulesTracingConnection::DeleteForwardingRule( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_global_forwarding_rules_v1::GlobalForwardingRulesConnection::" + "DeleteForwardingRule"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->DeleteForwardingRule( + ExperimentalTag{}, operation)); +} + StatusOr GlobalForwardingRulesTracingConnection::GetForwardingRule( google::cloud::cpp::compute::global_forwarding_rules::v1:: @@ -71,6 +97,32 @@ GlobalForwardingRulesTracingConnection::InsertForwardingRule( child_->InsertForwardingRule(request)); } +StatusOr +GlobalForwardingRulesTracingConnection::InsertForwardingRule( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::global_forwarding_rules::v1:: + InsertForwardingRuleRequest const& request) { + auto span = internal::MakeSpan( + "compute_global_forwarding_rules_v1::GlobalForwardingRulesConnection::" + "InsertForwardingRule"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->InsertForwardingRule(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +GlobalForwardingRulesTracingConnection::InsertForwardingRule( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_global_forwarding_rules_v1::GlobalForwardingRulesConnection::" + "InsertForwardingRule"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->InsertForwardingRule( + ExperimentalTag{}, operation)); +} + StreamRange GlobalForwardingRulesTracingConnection::ListGlobalForwardingRules( google::cloud::cpp::compute::global_forwarding_rules::v1:: @@ -97,6 +149,32 @@ GlobalForwardingRulesTracingConnection::PatchForwardingRule( child_->PatchForwardingRule(request)); } +StatusOr +GlobalForwardingRulesTracingConnection::PatchForwardingRule( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::global_forwarding_rules::v1:: + PatchForwardingRuleRequest const& request) { + auto span = internal::MakeSpan( + "compute_global_forwarding_rules_v1::GlobalForwardingRulesConnection::" + "PatchForwardingRule"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->PatchForwardingRule(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +GlobalForwardingRulesTracingConnection::PatchForwardingRule( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_global_forwarding_rules_v1::GlobalForwardingRulesConnection::" + "PatchForwardingRule"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->PatchForwardingRule( + ExperimentalTag{}, operation)); +} + future> GlobalForwardingRulesTracingConnection::SetLabels( google::cloud::cpp::compute::global_forwarding_rules::v1:: @@ -108,6 +186,31 @@ GlobalForwardingRulesTracingConnection::SetLabels( return internal::EndSpan(std::move(span), child_->SetLabels(request)); } +StatusOr +GlobalForwardingRulesTracingConnection::SetLabels( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::global_forwarding_rules::v1:: + SetLabelsRequest const& request) { + auto span = internal::MakeSpan( + "compute_global_forwarding_rules_v1::GlobalForwardingRulesConnection::" + "SetLabels"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->SetLabels(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +GlobalForwardingRulesTracingConnection::SetLabels( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_global_forwarding_rules_v1::GlobalForwardingRulesConnection::" + "SetLabels"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->SetLabels(ExperimentalTag{}, operation)); +} + future> GlobalForwardingRulesTracingConnection::SetTarget( google::cloud::cpp::compute::global_forwarding_rules::v1:: @@ -119,6 +222,31 @@ GlobalForwardingRulesTracingConnection::SetTarget( return internal::EndSpan(std::move(span), child_->SetTarget(request)); } +StatusOr +GlobalForwardingRulesTracingConnection::SetTarget( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::global_forwarding_rules::v1:: + SetTargetRequest const& request) { + auto span = internal::MakeSpan( + "compute_global_forwarding_rules_v1::GlobalForwardingRulesConnection::" + "SetTarget"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->SetTarget(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +GlobalForwardingRulesTracingConnection::SetTarget( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_global_forwarding_rules_v1::GlobalForwardingRulesConnection::" + "SetTarget"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->SetTarget(ExperimentalTag{}, operation)); +} + #endif // GOOGLE_CLOUD_CPP_HAVE_OPENTELEMETRY std::shared_ptr< diff --git a/google/cloud/compute/global_forwarding_rules/v1/internal/global_forwarding_rules_tracing_connection.h b/google/cloud/compute/global_forwarding_rules/v1/internal/global_forwarding_rules_tracing_connection.h index ff86ad709683f..0ec50b10ea617 100644 --- a/google/cloud/compute/global_forwarding_rules/v1/internal/global_forwarding_rules_tracing_connection.h +++ b/google/cloud/compute/global_forwarding_rules/v1/internal/global_forwarding_rules_tracing_connection.h @@ -49,6 +49,16 @@ class GlobalForwardingRulesTracingConnection google::cloud::cpp::compute::global_forwarding_rules::v1:: DeleteForwardingRuleRequest const& request) override; + StatusOr DeleteForwardingRule( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::global_forwarding_rules::v1:: + DeleteForwardingRuleRequest const& request) override; + + future> + DeleteForwardingRule( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StatusOr GetForwardingRule( google::cloud::cpp::compute::global_forwarding_rules::v1:: GetForwardingRuleRequest const& request) override; @@ -58,6 +68,16 @@ class GlobalForwardingRulesTracingConnection google::cloud::cpp::compute::global_forwarding_rules::v1:: InsertForwardingRuleRequest const& request) override; + StatusOr InsertForwardingRule( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::global_forwarding_rules::v1:: + InsertForwardingRuleRequest const& request) override; + + future> + InsertForwardingRule( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StreamRange ListGlobalForwardingRules( google::cloud::cpp::compute::global_forwarding_rules::v1:: @@ -67,14 +87,42 @@ class GlobalForwardingRulesTracingConnection PatchForwardingRule(google::cloud::cpp::compute::global_forwarding_rules::v1:: PatchForwardingRuleRequest const& request) override; + StatusOr PatchForwardingRule( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::global_forwarding_rules::v1:: + PatchForwardingRuleRequest const& request) override; + + future> + PatchForwardingRule( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> SetLabels( google::cloud::cpp::compute::global_forwarding_rules::v1:: SetLabelsRequest const& request) override; + StatusOr SetLabels( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::global_forwarding_rules::v1:: + SetLabelsRequest const& request) override; + + future> SetLabels( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> SetTarget( google::cloud::cpp::compute::global_forwarding_rules::v1:: SetTargetRequest const& request) override; + StatusOr SetTarget( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::global_forwarding_rules::v1:: + SetTargetRequest const& request) override; + + future> SetTarget( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + private: std::shared_ptr< compute_global_forwarding_rules_v1::GlobalForwardingRulesConnection> diff --git a/google/cloud/compute/global_forwarding_rules/v1/mocks/mock_global_forwarding_rules_connection.h b/google/cloud/compute/global_forwarding_rules/v1/mocks/mock_global_forwarding_rules_connection.h index 297c0042c1c99..599f879d8834d 100644 --- a/google/cloud/compute/global_forwarding_rules/v1/mocks/mock_global_forwarding_rules_connection.h +++ b/google/cloud/compute/global_forwarding_rules/v1/mocks/mock_global_forwarding_rules_connection.h @@ -55,6 +55,19 @@ class MockGlobalForwardingRulesConnection DeleteForwardingRuleRequest const& request), (override)); + MOCK_METHOD(StatusOr, + DeleteForwardingRule, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::global_forwarding_rules::v1:: + DeleteForwardingRuleRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteForwardingRule, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD(StatusOr, GetForwardingRule, (google::cloud::cpp::compute::global_forwarding_rules::v1:: @@ -67,6 +80,19 @@ class MockGlobalForwardingRulesConnection InsertForwardingRuleRequest const& request), (override)); + MOCK_METHOD(StatusOr, + InsertForwardingRule, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::global_forwarding_rules::v1:: + InsertForwardingRuleRequest const& request), + (override)); + + MOCK_METHOD(future>, + InsertForwardingRule, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD((StreamRange), ListGlobalForwardingRules, (google::cloud::cpp::compute::global_forwarding_rules::v1:: @@ -79,17 +105,54 @@ class MockGlobalForwardingRulesConnection PatchForwardingRuleRequest const& request), (override)); + MOCK_METHOD(StatusOr, + PatchForwardingRule, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::global_forwarding_rules::v1:: + PatchForwardingRuleRequest const& request), + (override)); + + MOCK_METHOD(future>, + PatchForwardingRule, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD(future>, SetLabels, (google::cloud::cpp::compute::global_forwarding_rules::v1:: SetLabelsRequest const& request), (override)); + MOCK_METHOD(StatusOr, SetLabels, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::global_forwarding_rules::v1:: + SetLabelsRequest const& request), + (override)); + + MOCK_METHOD(future>, + SetLabels, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD(future>, SetTarget, (google::cloud::cpp::compute::global_forwarding_rules::v1:: SetTargetRequest const& request), (override)); + + MOCK_METHOD(StatusOr, SetTarget, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::global_forwarding_rules::v1:: + SetTargetRequest const& request), + (override)); + + MOCK_METHOD(future>, + SetTarget, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); }; GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END diff --git a/google/cloud/compute/global_network_endpoint_groups/v1/global_network_endpoint_groups_connection.cc b/google/cloud/compute/global_network_endpoint_groups/v1/global_network_endpoint_groups_connection.cc index 15809a0cb5985..21e298fe66cdd 100644 --- a/google/cloud/compute/global_network_endpoint_groups/v1/global_network_endpoint_groups_connection.cc +++ b/google/cloud/compute/global_network_endpoint_groups/v1/global_network_endpoint_groups_connection.cc @@ -47,6 +47,23 @@ GlobalNetworkEndpointGroupsConnection::AttachNetworkEndpoints( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +GlobalNetworkEndpointGroupsConnection::AttachNetworkEndpoints( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::global_network_endpoint_groups::v1:: + AttachNetworkEndpointsRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +GlobalNetworkEndpointGroupsConnection::AttachNetworkEndpoints( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> GlobalNetworkEndpointGroupsConnection::DeleteNetworkEndpointGroup( google::cloud::cpp::compute::global_network_endpoint_groups::v1:: @@ -56,6 +73,23 @@ GlobalNetworkEndpointGroupsConnection::DeleteNetworkEndpointGroup( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +GlobalNetworkEndpointGroupsConnection::DeleteNetworkEndpointGroup( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::global_network_endpoint_groups::v1:: + DeleteNetworkEndpointGroupRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +GlobalNetworkEndpointGroupsConnection::DeleteNetworkEndpointGroup( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> GlobalNetworkEndpointGroupsConnection::DetachNetworkEndpoints( google::cloud::cpp::compute::global_network_endpoint_groups::v1:: @@ -65,6 +99,23 @@ GlobalNetworkEndpointGroupsConnection::DetachNetworkEndpoints( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +GlobalNetworkEndpointGroupsConnection::DetachNetworkEndpoints( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::global_network_endpoint_groups::v1:: + DetachNetworkEndpointsRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +GlobalNetworkEndpointGroupsConnection::DetachNetworkEndpoints( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr GlobalNetworkEndpointGroupsConnection::GetNetworkEndpointGroup( google::cloud::cpp::compute::global_network_endpoint_groups::v1:: @@ -81,6 +132,23 @@ GlobalNetworkEndpointGroupsConnection::InsertNetworkEndpointGroup( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +GlobalNetworkEndpointGroupsConnection::InsertNetworkEndpointGroup( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::global_network_endpoint_groups::v1:: + InsertNetworkEndpointGroupRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +GlobalNetworkEndpointGroupsConnection::InsertNetworkEndpointGroup( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StreamRange GlobalNetworkEndpointGroupsConnection::ListGlobalNetworkEndpointGroups( google::cloud::cpp::compute::global_network_endpoint_groups::v1:: diff --git a/google/cloud/compute/global_network_endpoint_groups/v1/global_network_endpoint_groups_connection.h b/google/cloud/compute/global_network_endpoint_groups/v1/global_network_endpoint_groups_connection.h index c08ab57be0f13..0bb39d0d4dd2c 100644 --- a/google/cloud/compute/global_network_endpoint_groups/v1/global_network_endpoint_groups_connection.h +++ b/google/cloud/compute/global_network_endpoint_groups/v1/global_network_endpoint_groups_connection.h @@ -23,8 +23,10 @@ #include "google/cloud/compute/global_network_endpoint_groups/v1/global_network_endpoint_groups_connection_idempotency_policy.h" #include "google/cloud/compute/global_network_endpoint_groups/v1/internal/global_network_endpoint_groups_retry_traits.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/internal/retry_policy_impl.h" +#include "google/cloud/no_await_tag.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" #include "google/cloud/status_or.h" @@ -209,16 +211,49 @@ class GlobalNetworkEndpointGroupsConnection { google::cloud::cpp::compute::global_network_endpoint_groups::v1:: AttachNetworkEndpointsRequest const& request); + virtual StatusOr + AttachNetworkEndpoints( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::global_network_endpoint_groups::v1:: + AttachNetworkEndpointsRequest const& request); + + virtual future> + AttachNetworkEndpoints( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual future> DeleteNetworkEndpointGroup( google::cloud::cpp::compute::global_network_endpoint_groups::v1:: DeleteNetworkEndpointGroupRequest const& request); + virtual StatusOr + DeleteNetworkEndpointGroup( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::global_network_endpoint_groups::v1:: + DeleteNetworkEndpointGroupRequest const& request); + + virtual future> + DeleteNetworkEndpointGroup( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual future> DetachNetworkEndpoints( google::cloud::cpp::compute::global_network_endpoint_groups::v1:: DetachNetworkEndpointsRequest const& request); + virtual StatusOr + DetachNetworkEndpoints( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::global_network_endpoint_groups::v1:: + DetachNetworkEndpointsRequest const& request); + + virtual future> + DetachNetworkEndpoints( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual StatusOr GetNetworkEndpointGroup( google::cloud::cpp::compute::global_network_endpoint_groups::v1:: @@ -229,6 +264,17 @@ class GlobalNetworkEndpointGroupsConnection { google::cloud::cpp::compute::global_network_endpoint_groups::v1:: InsertNetworkEndpointGroupRequest const& request); + virtual StatusOr + InsertNetworkEndpointGroup( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::global_network_endpoint_groups::v1:: + InsertNetworkEndpointGroupRequest const& request); + + virtual future> + InsertNetworkEndpointGroup( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual StreamRange ListGlobalNetworkEndpointGroups( google::cloud::cpp::compute::global_network_endpoint_groups::v1:: diff --git a/google/cloud/compute/global_network_endpoint_groups/v1/internal/global_network_endpoint_groups_rest_connection_impl.cc b/google/cloud/compute/global_network_endpoint_groups/v1/internal/global_network_endpoint_groups_rest_connection_impl.cc index 5be2cc2be35bc..90308b146eb05 100644 --- a/google/cloud/compute/global_network_endpoint_groups/v1/internal/global_network_endpoint_groups_rest_connection_impl.cc +++ b/google/cloud/compute/global_network_endpoint_groups/v1/internal/global_network_endpoint_groups_rest_connection_impl.cc @@ -24,6 +24,7 @@ #include "google/cloud/internal/async_rest_long_running_operation_custom.h" #include "google/cloud/internal/extract_long_running_result.h" #include "google/cloud/internal/pagination_range.h" +#include "google/cloud/internal/rest_lro_helpers.h" #include "google/cloud/internal/rest_retry_loop.h" #include "google/cloud/rest_options.h" #include @@ -106,6 +107,77 @@ GlobalNetworkEndpointGroupsRestConnectionImpl::AttachNetworkEndpoints( }); } +StatusOr +GlobalNetworkEndpointGroupsRestConnectionImpl::AttachNetworkEndpoints( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::global_network_endpoint_groups::v1:: + AttachNetworkEndpointsRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->AttachNetworkEndpoints(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::global_network_endpoint_groups::v1:: + AttachNetworkEndpointsRequest const& request) { + return stub_->AttachNetworkEndpoints(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +GlobalNetworkEndpointGroupsRestConnectionImpl::AttachNetworkEndpoints( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::global_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }); +} + future> GlobalNetworkEndpointGroupsRestConnectionImpl::DeleteNetworkEndpointGroup( google::cloud::cpp::compute::global_network_endpoint_groups::v1:: @@ -165,6 +237,78 @@ GlobalNetworkEndpointGroupsRestConnectionImpl::DeleteNetworkEndpointGroup( }); } +StatusOr +GlobalNetworkEndpointGroupsRestConnectionImpl::DeleteNetworkEndpointGroup( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::global_network_endpoint_groups::v1:: + DeleteNetworkEndpointGroupRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteNetworkEndpointGroup(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::global_network_endpoint_groups::v1:: + DeleteNetworkEndpointGroupRequest const& request) { + return stub_->DeleteNetworkEndpointGroup(rest_context, options, + request); + }, + *current, request, __func__); +} + +future> +GlobalNetworkEndpointGroupsRestConnectionImpl::DeleteNetworkEndpointGroup( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::global_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }); +} + future> GlobalNetworkEndpointGroupsRestConnectionImpl::DetachNetworkEndpoints( google::cloud::cpp::compute::global_network_endpoint_groups::v1:: @@ -224,6 +368,77 @@ GlobalNetworkEndpointGroupsRestConnectionImpl::DetachNetworkEndpoints( }); } +StatusOr +GlobalNetworkEndpointGroupsRestConnectionImpl::DetachNetworkEndpoints( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::global_network_endpoint_groups::v1:: + DetachNetworkEndpointsRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DetachNetworkEndpoints(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::global_network_endpoint_groups::v1:: + DetachNetworkEndpointsRequest const& request) { + return stub_->DetachNetworkEndpoints(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +GlobalNetworkEndpointGroupsRestConnectionImpl::DetachNetworkEndpoints( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::global_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }); +} + StatusOr GlobalNetworkEndpointGroupsRestConnectionImpl::GetNetworkEndpointGroup( google::cloud::cpp::compute::global_network_endpoint_groups::v1:: @@ -299,6 +514,78 @@ GlobalNetworkEndpointGroupsRestConnectionImpl::InsertNetworkEndpointGroup( }); } +StatusOr +GlobalNetworkEndpointGroupsRestConnectionImpl::InsertNetworkEndpointGroup( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::global_network_endpoint_groups::v1:: + InsertNetworkEndpointGroupRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->InsertNetworkEndpointGroup(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::global_network_endpoint_groups::v1:: + InsertNetworkEndpointGroupRequest const& request) { + return stub_->InsertNetworkEndpointGroup(rest_context, options, + request); + }, + *current, request, __func__); +} + +future> +GlobalNetworkEndpointGroupsRestConnectionImpl::InsertNetworkEndpointGroup( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::global_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }); +} + StreamRange GlobalNetworkEndpointGroupsRestConnectionImpl::ListGlobalNetworkEndpointGroups( google::cloud::cpp::compute::global_network_endpoint_groups::v1:: diff --git a/google/cloud/compute/global_network_endpoint_groups/v1/internal/global_network_endpoint_groups_rest_connection_impl.h b/google/cloud/compute/global_network_endpoint_groups/v1/internal/global_network_endpoint_groups_rest_connection_impl.h index 841d313b015d2..6699126a98982 100644 --- a/google/cloud/compute/global_network_endpoint_groups/v1/internal/global_network_endpoint_groups_rest_connection_impl.h +++ b/google/cloud/compute/global_network_endpoint_groups/v1/internal/global_network_endpoint_groups_rest_connection_impl.h @@ -59,16 +59,47 @@ class GlobalNetworkEndpointGroupsRestConnectionImpl google::cloud::cpp::compute::global_network_endpoint_groups::v1:: AttachNetworkEndpointsRequest const& request) override; + StatusOr AttachNetworkEndpoints( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::global_network_endpoint_groups::v1:: + AttachNetworkEndpointsRequest const& request) override; + + future> + AttachNetworkEndpoints( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> DeleteNetworkEndpointGroup( google::cloud::cpp::compute::global_network_endpoint_groups::v1:: DeleteNetworkEndpointGroupRequest const& request) override; + StatusOr + DeleteNetworkEndpointGroup( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::global_network_endpoint_groups::v1:: + DeleteNetworkEndpointGroupRequest const& request) override; + + future> + DeleteNetworkEndpointGroup( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> DetachNetworkEndpoints( google::cloud::cpp::compute::global_network_endpoint_groups::v1:: DetachNetworkEndpointsRequest const& request) override; + StatusOr DetachNetworkEndpoints( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::global_network_endpoint_groups::v1:: + DetachNetworkEndpointsRequest const& request) override; + + future> + DetachNetworkEndpoints( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StatusOr GetNetworkEndpointGroup( google::cloud::cpp::compute::global_network_endpoint_groups::v1:: @@ -79,6 +110,17 @@ class GlobalNetworkEndpointGroupsRestConnectionImpl google::cloud::cpp::compute::global_network_endpoint_groups::v1:: InsertNetworkEndpointGroupRequest const& request) override; + StatusOr + InsertNetworkEndpointGroup( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::global_network_endpoint_groups::v1:: + InsertNetworkEndpointGroupRequest const& request) override; + + future> + InsertNetworkEndpointGroup( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StreamRange ListGlobalNetworkEndpointGroups( google::cloud::cpp::compute::global_network_endpoint_groups::v1:: diff --git a/google/cloud/compute/global_network_endpoint_groups/v1/internal/global_network_endpoint_groups_tracing_connection.cc b/google/cloud/compute/global_network_endpoint_groups/v1/internal/global_network_endpoint_groups_tracing_connection.cc index 3dbbc3c48ce92..b3ff0b1e04ebe 100644 --- a/google/cloud/compute/global_network_endpoint_groups/v1/internal/global_network_endpoint_groups_tracing_connection.cc +++ b/google/cloud/compute/global_network_endpoint_groups/v1/internal/global_network_endpoint_groups_tracing_connection.cc @@ -49,6 +49,32 @@ GlobalNetworkEndpointGroupsTracingConnection::AttachNetworkEndpoints( child_->AttachNetworkEndpoints(request)); } +StatusOr +GlobalNetworkEndpointGroupsTracingConnection::AttachNetworkEndpoints( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::global_network_endpoint_groups::v1:: + AttachNetworkEndpointsRequest const& request) { + auto span = internal::MakeSpan( + "compute_global_network_endpoint_groups_v1::" + "GlobalNetworkEndpointGroupsConnection::AttachNetworkEndpoints"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->AttachNetworkEndpoints(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +GlobalNetworkEndpointGroupsTracingConnection::AttachNetworkEndpoints( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_global_network_endpoint_groups_v1::" + "GlobalNetworkEndpointGroupsConnection::AttachNetworkEndpoints"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->AttachNetworkEndpoints( + ExperimentalTag{}, operation)); +} + future> GlobalNetworkEndpointGroupsTracingConnection::DeleteNetworkEndpointGroup( google::cloud::cpp::compute::global_network_endpoint_groups::v1:: @@ -61,6 +87,32 @@ GlobalNetworkEndpointGroupsTracingConnection::DeleteNetworkEndpointGroup( child_->DeleteNetworkEndpointGroup(request)); } +StatusOr +GlobalNetworkEndpointGroupsTracingConnection::DeleteNetworkEndpointGroup( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::global_network_endpoint_groups::v1:: + DeleteNetworkEndpointGroupRequest const& request) { + auto span = internal::MakeSpan( + "compute_global_network_endpoint_groups_v1::" + "GlobalNetworkEndpointGroupsConnection::DeleteNetworkEndpointGroup"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->DeleteNetworkEndpointGroup(ExperimentalTag{}, NoAwaitTag{}, + request)); +} + +future> +GlobalNetworkEndpointGroupsTracingConnection::DeleteNetworkEndpointGroup( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_global_network_endpoint_groups_v1::" + "GlobalNetworkEndpointGroupsConnection::DeleteNetworkEndpointGroup"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->DeleteNetworkEndpointGroup( + ExperimentalTag{}, operation)); +} + future> GlobalNetworkEndpointGroupsTracingConnection::DetachNetworkEndpoints( google::cloud::cpp::compute::global_network_endpoint_groups::v1:: @@ -73,6 +125,32 @@ GlobalNetworkEndpointGroupsTracingConnection::DetachNetworkEndpoints( child_->DetachNetworkEndpoints(request)); } +StatusOr +GlobalNetworkEndpointGroupsTracingConnection::DetachNetworkEndpoints( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::global_network_endpoint_groups::v1:: + DetachNetworkEndpointsRequest const& request) { + auto span = internal::MakeSpan( + "compute_global_network_endpoint_groups_v1::" + "GlobalNetworkEndpointGroupsConnection::DetachNetworkEndpoints"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->DetachNetworkEndpoints(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +GlobalNetworkEndpointGroupsTracingConnection::DetachNetworkEndpoints( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_global_network_endpoint_groups_v1::" + "GlobalNetworkEndpointGroupsConnection::DetachNetworkEndpoints"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->DetachNetworkEndpoints( + ExperimentalTag{}, operation)); +} + StatusOr GlobalNetworkEndpointGroupsTracingConnection::GetNetworkEndpointGroup( google::cloud::cpp::compute::global_network_endpoint_groups::v1:: @@ -96,6 +174,32 @@ GlobalNetworkEndpointGroupsTracingConnection::InsertNetworkEndpointGroup( child_->InsertNetworkEndpointGroup(request)); } +StatusOr +GlobalNetworkEndpointGroupsTracingConnection::InsertNetworkEndpointGroup( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::global_network_endpoint_groups::v1:: + InsertNetworkEndpointGroupRequest const& request) { + auto span = internal::MakeSpan( + "compute_global_network_endpoint_groups_v1::" + "GlobalNetworkEndpointGroupsConnection::InsertNetworkEndpointGroup"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->InsertNetworkEndpointGroup(ExperimentalTag{}, NoAwaitTag{}, + request)); +} + +future> +GlobalNetworkEndpointGroupsTracingConnection::InsertNetworkEndpointGroup( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_global_network_endpoint_groups_v1::" + "GlobalNetworkEndpointGroupsConnection::InsertNetworkEndpointGroup"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->InsertNetworkEndpointGroup( + ExperimentalTag{}, operation)); +} + StreamRange GlobalNetworkEndpointGroupsTracingConnection::ListGlobalNetworkEndpointGroups( google::cloud::cpp::compute::global_network_endpoint_groups::v1:: diff --git a/google/cloud/compute/global_network_endpoint_groups/v1/internal/global_network_endpoint_groups_tracing_connection.h b/google/cloud/compute/global_network_endpoint_groups/v1/internal/global_network_endpoint_groups_tracing_connection.h index 26467bff5c094..0a2e1397d437f 100644 --- a/google/cloud/compute/global_network_endpoint_groups/v1/internal/global_network_endpoint_groups_tracing_connection.h +++ b/google/cloud/compute/global_network_endpoint_groups/v1/internal/global_network_endpoint_groups_tracing_connection.h @@ -49,16 +49,47 @@ class GlobalNetworkEndpointGroupsTracingConnection google::cloud::cpp::compute::global_network_endpoint_groups::v1:: AttachNetworkEndpointsRequest const& request) override; + StatusOr AttachNetworkEndpoints( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::global_network_endpoint_groups::v1:: + AttachNetworkEndpointsRequest const& request) override; + + future> + AttachNetworkEndpoints( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> DeleteNetworkEndpointGroup( google::cloud::cpp::compute::global_network_endpoint_groups::v1:: DeleteNetworkEndpointGroupRequest const& request) override; + StatusOr + DeleteNetworkEndpointGroup( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::global_network_endpoint_groups::v1:: + DeleteNetworkEndpointGroupRequest const& request) override; + + future> + DeleteNetworkEndpointGroup( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> DetachNetworkEndpoints( google::cloud::cpp::compute::global_network_endpoint_groups::v1:: DetachNetworkEndpointsRequest const& request) override; + StatusOr DetachNetworkEndpoints( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::global_network_endpoint_groups::v1:: + DetachNetworkEndpointsRequest const& request) override; + + future> + DetachNetworkEndpoints( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StatusOr GetNetworkEndpointGroup( google::cloud::cpp::compute::global_network_endpoint_groups::v1:: @@ -69,6 +100,17 @@ class GlobalNetworkEndpointGroupsTracingConnection google::cloud::cpp::compute::global_network_endpoint_groups::v1:: InsertNetworkEndpointGroupRequest const& request) override; + StatusOr + InsertNetworkEndpointGroup( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::global_network_endpoint_groups::v1:: + InsertNetworkEndpointGroupRequest const& request) override; + + future> + InsertNetworkEndpointGroup( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StreamRange ListGlobalNetworkEndpointGroups( google::cloud::cpp::compute::global_network_endpoint_groups::v1:: diff --git a/google/cloud/compute/global_network_endpoint_groups/v1/mocks/mock_global_network_endpoint_groups_connection.h b/google/cloud/compute/global_network_endpoint_groups/v1/mocks/mock_global_network_endpoint_groups_connection.h index b587cd33068d2..e6ab4c9646bce 100644 --- a/google/cloud/compute/global_network_endpoint_groups/v1/mocks/mock_global_network_endpoint_groups_connection.h +++ b/google/cloud/compute/global_network_endpoint_groups/v1/mocks/mock_global_network_endpoint_groups_connection.h @@ -55,18 +55,57 @@ class MockGlobalNetworkEndpointGroupsConnection AttachNetworkEndpointsRequest const& request), (override)); + MOCK_METHOD(StatusOr, + AttachNetworkEndpoints, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::global_network_endpoint_groups::v1:: + AttachNetworkEndpointsRequest const& request), + (override)); + + MOCK_METHOD(future>, + AttachNetworkEndpoints, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD(future>, DeleteNetworkEndpointGroup, (google::cloud::cpp::compute::global_network_endpoint_groups::v1:: DeleteNetworkEndpointGroupRequest const& request), (override)); + MOCK_METHOD(StatusOr, + DeleteNetworkEndpointGroup, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::global_network_endpoint_groups::v1:: + DeleteNetworkEndpointGroupRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteNetworkEndpointGroup, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD(future>, DetachNetworkEndpoints, (google::cloud::cpp::compute::global_network_endpoint_groups::v1:: DetachNetworkEndpointsRequest const& request), (override)); + MOCK_METHOD(StatusOr, + DetachNetworkEndpoints, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::global_network_endpoint_groups::v1:: + DetachNetworkEndpointsRequest const& request), + (override)); + + MOCK_METHOD(future>, + DetachNetworkEndpoints, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD(StatusOr, GetNetworkEndpointGroup, (google::cloud::cpp::compute::global_network_endpoint_groups::v1:: @@ -79,6 +118,19 @@ class MockGlobalNetworkEndpointGroupsConnection InsertNetworkEndpointGroupRequest const& request), (override)); + MOCK_METHOD(StatusOr, + InsertNetworkEndpointGroup, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::global_network_endpoint_groups::v1:: + InsertNetworkEndpointGroupRequest const& request), + (override)); + + MOCK_METHOD(future>, + InsertNetworkEndpointGroup, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD( (StreamRange), ListGlobalNetworkEndpointGroups, diff --git a/google/cloud/compute/global_operations/v1/global_operations_connection.h b/google/cloud/compute/global_operations/v1/global_operations_connection.h index bb1fa3207966f..a78fc31eb343f 100644 --- a/google/cloud/compute/global_operations/v1/global_operations_connection.h +++ b/google/cloud/compute/global_operations/v1/global_operations_connection.h @@ -22,6 +22,7 @@ #include "google/cloud/compute/global_operations/v1/global_operations_connection_idempotency_policy.h" #include "google/cloud/compute/global_operations/v1/internal/global_operations_retry_traits.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/internal/retry_policy_impl.h" #include "google/cloud/options.h" #include "google/cloud/status_or.h" diff --git a/google/cloud/compute/global_organization_operations/v1/global_organization_operations_connection.h b/google/cloud/compute/global_organization_operations/v1/global_organization_operations_connection.h index 6abcdf536143c..6d10684beef4a 100644 --- a/google/cloud/compute/global_organization_operations/v1/global_organization_operations_connection.h +++ b/google/cloud/compute/global_organization_operations/v1/global_organization_operations_connection.h @@ -23,6 +23,7 @@ #include "google/cloud/compute/global_organization_operations/v1/global_organization_operations_connection_idempotency_policy.h" #include "google/cloud/compute/global_organization_operations/v1/internal/global_organization_operations_retry_traits.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/internal/retry_policy_impl.h" #include "google/cloud/options.h" #include "google/cloud/status_or.h" diff --git a/google/cloud/compute/global_public_delegated_prefixes/v1/global_public_delegated_prefixes_connection.cc b/google/cloud/compute/global_public_delegated_prefixes/v1/global_public_delegated_prefixes_connection.cc index 3c26ad4639ab1..86010fad7cb41 100644 --- a/google/cloud/compute/global_public_delegated_prefixes/v1/global_public_delegated_prefixes_connection.cc +++ b/google/cloud/compute/global_public_delegated_prefixes/v1/global_public_delegated_prefixes_connection.cc @@ -47,6 +47,23 @@ GlobalPublicDelegatedPrefixesConnection::DeletePublicDelegatedPrefix( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +GlobalPublicDelegatedPrefixesConnection::DeletePublicDelegatedPrefix( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::global_public_delegated_prefixes::v1:: + DeletePublicDelegatedPrefixRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +GlobalPublicDelegatedPrefixesConnection::DeletePublicDelegatedPrefix( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr GlobalPublicDelegatedPrefixesConnection::GetPublicDelegatedPrefix( google::cloud::cpp::compute::global_public_delegated_prefixes::v1:: @@ -63,6 +80,23 @@ GlobalPublicDelegatedPrefixesConnection::InsertPublicDelegatedPrefix( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +GlobalPublicDelegatedPrefixesConnection::InsertPublicDelegatedPrefix( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::global_public_delegated_prefixes::v1:: + InsertPublicDelegatedPrefixRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +GlobalPublicDelegatedPrefixesConnection::InsertPublicDelegatedPrefix( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StreamRange GlobalPublicDelegatedPrefixesConnection::ListGlobalPublicDelegatedPrefixes( google::cloud::cpp::compute::global_public_delegated_prefixes::v1:: @@ -80,6 +114,23 @@ GlobalPublicDelegatedPrefixesConnection::PatchPublicDelegatedPrefix( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +GlobalPublicDelegatedPrefixesConnection::PatchPublicDelegatedPrefix( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::global_public_delegated_prefixes::v1:: + PatchPublicDelegatedPrefixRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +GlobalPublicDelegatedPrefixesConnection::PatchPublicDelegatedPrefix( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace compute_global_public_delegated_prefixes_v1 } // namespace cloud diff --git a/google/cloud/compute/global_public_delegated_prefixes/v1/global_public_delegated_prefixes_connection.h b/google/cloud/compute/global_public_delegated_prefixes/v1/global_public_delegated_prefixes_connection.h index 3835ddf5ab03a..97d08fca94566 100644 --- a/google/cloud/compute/global_public_delegated_prefixes/v1/global_public_delegated_prefixes_connection.h +++ b/google/cloud/compute/global_public_delegated_prefixes/v1/global_public_delegated_prefixes_connection.h @@ -23,8 +23,10 @@ #include "google/cloud/compute/global_public_delegated_prefixes/v1/global_public_delegated_prefixes_connection_idempotency_policy.h" #include "google/cloud/compute/global_public_delegated_prefixes/v1/internal/global_public_delegated_prefixes_retry_traits.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/internal/retry_policy_impl.h" +#include "google/cloud/no_await_tag.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" #include "google/cloud/status_or.h" @@ -210,6 +212,17 @@ class GlobalPublicDelegatedPrefixesConnection { google::cloud::cpp::compute::global_public_delegated_prefixes::v1:: DeletePublicDelegatedPrefixRequest const& request); + virtual StatusOr + DeletePublicDelegatedPrefix( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::global_public_delegated_prefixes::v1:: + DeletePublicDelegatedPrefixRequest const& request); + + virtual future> + DeletePublicDelegatedPrefix( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual StatusOr GetPublicDelegatedPrefix( google::cloud::cpp::compute::global_public_delegated_prefixes::v1:: @@ -220,6 +233,17 @@ class GlobalPublicDelegatedPrefixesConnection { google::cloud::cpp::compute::global_public_delegated_prefixes::v1:: InsertPublicDelegatedPrefixRequest const& request); + virtual StatusOr + InsertPublicDelegatedPrefix( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::global_public_delegated_prefixes::v1:: + InsertPublicDelegatedPrefixRequest const& request); + + virtual future> + InsertPublicDelegatedPrefix( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual StreamRange ListGlobalPublicDelegatedPrefixes( google::cloud::cpp::compute::global_public_delegated_prefixes::v1:: @@ -229,6 +253,17 @@ class GlobalPublicDelegatedPrefixesConnection { PatchPublicDelegatedPrefix( google::cloud::cpp::compute::global_public_delegated_prefixes::v1:: PatchPublicDelegatedPrefixRequest const& request); + + virtual StatusOr + PatchPublicDelegatedPrefix( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::global_public_delegated_prefixes::v1:: + PatchPublicDelegatedPrefixRequest const& request); + + virtual future> + PatchPublicDelegatedPrefix( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); }; GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END diff --git a/google/cloud/compute/global_public_delegated_prefixes/v1/internal/global_public_delegated_prefixes_rest_connection_impl.cc b/google/cloud/compute/global_public_delegated_prefixes/v1/internal/global_public_delegated_prefixes_rest_connection_impl.cc index 371cc86d377c2..8b8b5240322c6 100644 --- a/google/cloud/compute/global_public_delegated_prefixes/v1/internal/global_public_delegated_prefixes_rest_connection_impl.cc +++ b/google/cloud/compute/global_public_delegated_prefixes/v1/internal/global_public_delegated_prefixes_rest_connection_impl.cc @@ -24,6 +24,7 @@ #include "google/cloud/internal/async_rest_long_running_operation_custom.h" #include "google/cloud/internal/extract_long_running_result.h" #include "google/cloud/internal/pagination_range.h" +#include "google/cloud/internal/rest_lro_helpers.h" #include "google/cloud/internal/rest_retry_loop.h" #include "google/cloud/rest_options.h" #include @@ -106,6 +107,78 @@ GlobalPublicDelegatedPrefixesRestConnectionImpl::DeletePublicDelegatedPrefix( }); } +StatusOr +GlobalPublicDelegatedPrefixesRestConnectionImpl::DeletePublicDelegatedPrefix( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::global_public_delegated_prefixes::v1:: + DeletePublicDelegatedPrefixRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeletePublicDelegatedPrefix(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::global_public_delegated_prefixes::v1:: + DeletePublicDelegatedPrefixRequest const& request) { + return stub_->DeletePublicDelegatedPrefix(rest_context, options, + request); + }, + *current, request, __func__); +} + +future> +GlobalPublicDelegatedPrefixesRestConnectionImpl::DeletePublicDelegatedPrefix( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::global_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }); +} + StatusOr GlobalPublicDelegatedPrefixesRestConnectionImpl::GetPublicDelegatedPrefix( google::cloud::cpp::compute::global_public_delegated_prefixes::v1:: @@ -181,6 +254,78 @@ GlobalPublicDelegatedPrefixesRestConnectionImpl::InsertPublicDelegatedPrefix( }); } +StatusOr +GlobalPublicDelegatedPrefixesRestConnectionImpl::InsertPublicDelegatedPrefix( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::global_public_delegated_prefixes::v1:: + InsertPublicDelegatedPrefixRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->InsertPublicDelegatedPrefix(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::global_public_delegated_prefixes::v1:: + InsertPublicDelegatedPrefixRequest const& request) { + return stub_->InsertPublicDelegatedPrefix(rest_context, options, + request); + }, + *current, request, __func__); +} + +future> +GlobalPublicDelegatedPrefixesRestConnectionImpl::InsertPublicDelegatedPrefix( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::global_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }); +} + StreamRange GlobalPublicDelegatedPrefixesRestConnectionImpl:: ListGlobalPublicDelegatedPrefixes( @@ -283,6 +428,78 @@ GlobalPublicDelegatedPrefixesRestConnectionImpl::PatchPublicDelegatedPrefix( }); } +StatusOr +GlobalPublicDelegatedPrefixesRestConnectionImpl::PatchPublicDelegatedPrefix( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::global_public_delegated_prefixes::v1:: + PatchPublicDelegatedPrefixRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->PatchPublicDelegatedPrefix(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::global_public_delegated_prefixes::v1:: + PatchPublicDelegatedPrefixRequest const& request) { + return stub_->PatchPublicDelegatedPrefix(rest_context, options, + request); + }, + *current, request, __func__); +} + +future> +GlobalPublicDelegatedPrefixesRestConnectionImpl::PatchPublicDelegatedPrefix( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::global_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace compute_global_public_delegated_prefixes_v1_internal } // namespace cloud diff --git a/google/cloud/compute/global_public_delegated_prefixes/v1/internal/global_public_delegated_prefixes_rest_connection_impl.h b/google/cloud/compute/global_public_delegated_prefixes/v1/internal/global_public_delegated_prefixes_rest_connection_impl.h index d9923b623287d..fe879d2a64960 100644 --- a/google/cloud/compute/global_public_delegated_prefixes/v1/internal/global_public_delegated_prefixes_rest_connection_impl.h +++ b/google/cloud/compute/global_public_delegated_prefixes/v1/internal/global_public_delegated_prefixes_rest_connection_impl.h @@ -59,6 +59,17 @@ class GlobalPublicDelegatedPrefixesRestConnectionImpl google::cloud::cpp::compute::global_public_delegated_prefixes::v1:: DeletePublicDelegatedPrefixRequest const& request) override; + StatusOr + DeletePublicDelegatedPrefix( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::global_public_delegated_prefixes::v1:: + DeletePublicDelegatedPrefixRequest const& request) override; + + future> + DeletePublicDelegatedPrefix( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StatusOr GetPublicDelegatedPrefix( google::cloud::cpp::compute::global_public_delegated_prefixes::v1:: @@ -69,6 +80,17 @@ class GlobalPublicDelegatedPrefixesRestConnectionImpl google::cloud::cpp::compute::global_public_delegated_prefixes::v1:: InsertPublicDelegatedPrefixRequest const& request) override; + StatusOr + InsertPublicDelegatedPrefix( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::global_public_delegated_prefixes::v1:: + InsertPublicDelegatedPrefixRequest const& request) override; + + future> + InsertPublicDelegatedPrefix( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StreamRange ListGlobalPublicDelegatedPrefixes( google::cloud::cpp::compute::global_public_delegated_prefixes::v1:: @@ -79,6 +101,17 @@ class GlobalPublicDelegatedPrefixesRestConnectionImpl google::cloud::cpp::compute::global_public_delegated_prefixes::v1:: PatchPublicDelegatedPrefixRequest const& request) override; + StatusOr + PatchPublicDelegatedPrefix( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::global_public_delegated_prefixes::v1:: + PatchPublicDelegatedPrefixRequest const& request) override; + + future> + PatchPublicDelegatedPrefix( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + private: static std::unique_ptr diff --git a/google/cloud/compute/global_public_delegated_prefixes/v1/internal/global_public_delegated_prefixes_tracing_connection.cc b/google/cloud/compute/global_public_delegated_prefixes/v1/internal/global_public_delegated_prefixes_tracing_connection.cc index 7ac87526316c3..c028c0e994b23 100644 --- a/google/cloud/compute/global_public_delegated_prefixes/v1/internal/global_public_delegated_prefixes_tracing_connection.cc +++ b/google/cloud/compute/global_public_delegated_prefixes/v1/internal/global_public_delegated_prefixes_tracing_connection.cc @@ -49,6 +49,32 @@ GlobalPublicDelegatedPrefixesTracingConnection::DeletePublicDelegatedPrefix( child_->DeletePublicDelegatedPrefix(request)); } +StatusOr +GlobalPublicDelegatedPrefixesTracingConnection::DeletePublicDelegatedPrefix( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::global_public_delegated_prefixes::v1:: + DeletePublicDelegatedPrefixRequest const& request) { + auto span = internal::MakeSpan( + "compute_global_public_delegated_prefixes_v1::" + "GlobalPublicDelegatedPrefixesConnection::DeletePublicDelegatedPrefix"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->DeletePublicDelegatedPrefix(ExperimentalTag{}, + NoAwaitTag{}, request)); +} + +future> +GlobalPublicDelegatedPrefixesTracingConnection::DeletePublicDelegatedPrefix( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_global_public_delegated_prefixes_v1::" + "GlobalPublicDelegatedPrefixesConnection::DeletePublicDelegatedPrefix"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->DeletePublicDelegatedPrefix( + ExperimentalTag{}, operation)); +} + StatusOr GlobalPublicDelegatedPrefixesTracingConnection::GetPublicDelegatedPrefix( google::cloud::cpp::compute::global_public_delegated_prefixes::v1:: @@ -72,6 +98,32 @@ GlobalPublicDelegatedPrefixesTracingConnection::InsertPublicDelegatedPrefix( child_->InsertPublicDelegatedPrefix(request)); } +StatusOr +GlobalPublicDelegatedPrefixesTracingConnection::InsertPublicDelegatedPrefix( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::global_public_delegated_prefixes::v1:: + InsertPublicDelegatedPrefixRequest const& request) { + auto span = internal::MakeSpan( + "compute_global_public_delegated_prefixes_v1::" + "GlobalPublicDelegatedPrefixesConnection::InsertPublicDelegatedPrefix"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->InsertPublicDelegatedPrefix(ExperimentalTag{}, + NoAwaitTag{}, request)); +} + +future> +GlobalPublicDelegatedPrefixesTracingConnection::InsertPublicDelegatedPrefix( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_global_public_delegated_prefixes_v1::" + "GlobalPublicDelegatedPrefixesConnection::InsertPublicDelegatedPrefix"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->InsertPublicDelegatedPrefix( + ExperimentalTag{}, operation)); +} + StreamRange GlobalPublicDelegatedPrefixesTracingConnection:: ListGlobalPublicDelegatedPrefixes( @@ -100,6 +152,32 @@ GlobalPublicDelegatedPrefixesTracingConnection::PatchPublicDelegatedPrefix( child_->PatchPublicDelegatedPrefix(request)); } +StatusOr +GlobalPublicDelegatedPrefixesTracingConnection::PatchPublicDelegatedPrefix( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::global_public_delegated_prefixes::v1:: + PatchPublicDelegatedPrefixRequest const& request) { + auto span = internal::MakeSpan( + "compute_global_public_delegated_prefixes_v1::" + "GlobalPublicDelegatedPrefixesConnection::PatchPublicDelegatedPrefix"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->PatchPublicDelegatedPrefix(ExperimentalTag{}, NoAwaitTag{}, + request)); +} + +future> +GlobalPublicDelegatedPrefixesTracingConnection::PatchPublicDelegatedPrefix( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_global_public_delegated_prefixes_v1::" + "GlobalPublicDelegatedPrefixesConnection::PatchPublicDelegatedPrefix"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->PatchPublicDelegatedPrefix( + ExperimentalTag{}, operation)); +} + #endif // GOOGLE_CLOUD_CPP_HAVE_OPENTELEMETRY std::shared_ptr + DeletePublicDelegatedPrefix( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::global_public_delegated_prefixes::v1:: + DeletePublicDelegatedPrefixRequest const& request) override; + + future> + DeletePublicDelegatedPrefix( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StatusOr GetPublicDelegatedPrefix( google::cloud::cpp::compute::global_public_delegated_prefixes::v1:: @@ -59,6 +70,17 @@ class GlobalPublicDelegatedPrefixesTracingConnection google::cloud::cpp::compute::global_public_delegated_prefixes::v1:: InsertPublicDelegatedPrefixRequest const& request) override; + StatusOr + InsertPublicDelegatedPrefix( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::global_public_delegated_prefixes::v1:: + InsertPublicDelegatedPrefixRequest const& request) override; + + future> + InsertPublicDelegatedPrefix( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StreamRange ListGlobalPublicDelegatedPrefixes( google::cloud::cpp::compute::global_public_delegated_prefixes::v1:: @@ -69,6 +91,17 @@ class GlobalPublicDelegatedPrefixesTracingConnection google::cloud::cpp::compute::global_public_delegated_prefixes::v1:: PatchPublicDelegatedPrefixRequest const& request) override; + StatusOr + PatchPublicDelegatedPrefix( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::global_public_delegated_prefixes::v1:: + PatchPublicDelegatedPrefixRequest const& request) override; + + future> + PatchPublicDelegatedPrefix( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + private: std::shared_ptr diff --git a/google/cloud/compute/global_public_delegated_prefixes/v1/mocks/mock_global_public_delegated_prefixes_connection.h b/google/cloud/compute/global_public_delegated_prefixes/v1/mocks/mock_global_public_delegated_prefixes_connection.h index b5264bcddd83f..d511725b5d4b7 100644 --- a/google/cloud/compute/global_public_delegated_prefixes/v1/mocks/mock_global_public_delegated_prefixes_connection.h +++ b/google/cloud/compute/global_public_delegated_prefixes/v1/mocks/mock_global_public_delegated_prefixes_connection.h @@ -55,6 +55,19 @@ class MockGlobalPublicDelegatedPrefixesConnection v1::DeletePublicDelegatedPrefixRequest const& request), (override)); + MOCK_METHOD(StatusOr, + DeletePublicDelegatedPrefix, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::global_public_delegated_prefixes:: + v1::DeletePublicDelegatedPrefixRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeletePublicDelegatedPrefix, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD(StatusOr, GetPublicDelegatedPrefix, (google::cloud::cpp::compute::global_public_delegated_prefixes:: @@ -67,6 +80,19 @@ class MockGlobalPublicDelegatedPrefixesConnection v1::InsertPublicDelegatedPrefixRequest const& request), (override)); + MOCK_METHOD(StatusOr, + InsertPublicDelegatedPrefix, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::global_public_delegated_prefixes:: + v1::InsertPublicDelegatedPrefixRequest const& request), + (override)); + + MOCK_METHOD(future>, + InsertPublicDelegatedPrefix, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD( (StreamRange), ListGlobalPublicDelegatedPrefixes, @@ -79,6 +105,19 @@ class MockGlobalPublicDelegatedPrefixesConnection (google::cloud::cpp::compute::global_public_delegated_prefixes:: v1::PatchPublicDelegatedPrefixRequest const& request), (override)); + + MOCK_METHOD(StatusOr, + PatchPublicDelegatedPrefix, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::global_public_delegated_prefixes:: + v1::PatchPublicDelegatedPrefixRequest const& request), + (override)); + + MOCK_METHOD(future>, + PatchPublicDelegatedPrefix, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); }; GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END diff --git a/google/cloud/compute/health_checks/v1/health_checks_connection.cc b/google/cloud/compute/health_checks/v1/health_checks_connection.cc index d28f48cb0ec96..547556756dc2c 100644 --- a/google/cloud/compute/health_checks/v1/health_checks_connection.cc +++ b/google/cloud/compute/health_checks/v1/health_checks_connection.cc @@ -55,6 +55,23 @@ HealthChecksConnection::DeleteHealthCheck( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +HealthChecksConnection::DeleteHealthCheck( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::health_checks::v1:: + DeleteHealthCheckRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +HealthChecksConnection::DeleteHealthCheck( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr HealthChecksConnection::GetHealthCheck( google::cloud::cpp::compute::health_checks::v1:: @@ -71,6 +88,23 @@ HealthChecksConnection::InsertHealthCheck( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +HealthChecksConnection::InsertHealthCheck( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::health_checks::v1:: + InsertHealthCheckRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +HealthChecksConnection::InsertHealthCheck( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StreamRange HealthChecksConnection::ListHealthChecks( google::cloud::cpp::compute::health_checks::v1:: @@ -88,6 +122,23 @@ HealthChecksConnection::PatchHealthCheck( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +HealthChecksConnection::PatchHealthCheck( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::health_checks::v1:: + PatchHealthCheckRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +HealthChecksConnection::PatchHealthCheck( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> HealthChecksConnection::UpdateHealthCheck( google::cloud::cpp::compute::health_checks::v1:: @@ -97,6 +148,23 @@ HealthChecksConnection::UpdateHealthCheck( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +HealthChecksConnection::UpdateHealthCheck( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::health_checks::v1:: + UpdateHealthCheckRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +HealthChecksConnection::UpdateHealthCheck( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace compute_health_checks_v1 } // namespace cloud diff --git a/google/cloud/compute/health_checks/v1/health_checks_connection.h b/google/cloud/compute/health_checks/v1/health_checks_connection.h index 70636079047d5..7027c0e722f89 100644 --- a/google/cloud/compute/health_checks/v1/health_checks_connection.h +++ b/google/cloud/compute/health_checks/v1/health_checks_connection.h @@ -22,8 +22,10 @@ #include "google/cloud/compute/health_checks/v1/health_checks_connection_idempotency_policy.h" #include "google/cloud/compute/health_checks/v1/internal/health_checks_retry_traits.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/internal/retry_policy_impl.h" +#include "google/cloud/no_await_tag.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" #include "google/cloud/status_or.h" @@ -194,6 +196,16 @@ class HealthChecksConnection { DeleteHealthCheck(google::cloud::cpp::compute::health_checks::v1:: DeleteHealthCheckRequest const& request); + virtual StatusOr + DeleteHealthCheck(ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::health_checks::v1:: + DeleteHealthCheckRequest const& request); + + virtual future> + DeleteHealthCheck( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual StatusOr GetHealthCheck( google::cloud::cpp::compute::health_checks::v1:: GetHealthCheckRequest const& request); @@ -202,6 +214,16 @@ class HealthChecksConnection { InsertHealthCheck(google::cloud::cpp::compute::health_checks::v1:: InsertHealthCheckRequest const& request); + virtual StatusOr + InsertHealthCheck(ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::health_checks::v1:: + InsertHealthCheckRequest const& request); + + virtual future> + InsertHealthCheck( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual StreamRange ListHealthChecks( google::cloud::cpp::compute::health_checks::v1::ListHealthChecksRequest @@ -211,9 +233,28 @@ class HealthChecksConnection { PatchHealthCheck(google::cloud::cpp::compute::health_checks::v1:: PatchHealthCheckRequest const& request); + virtual StatusOr PatchHealthCheck( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::health_checks::v1:: + PatchHealthCheckRequest const& request); + + virtual future> + PatchHealthCheck(ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual future> UpdateHealthCheck(google::cloud::cpp::compute::health_checks::v1:: UpdateHealthCheckRequest const& request); + + virtual StatusOr + UpdateHealthCheck(ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::health_checks::v1:: + UpdateHealthCheckRequest const& request); + + virtual future> + UpdateHealthCheck( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); }; GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END diff --git a/google/cloud/compute/health_checks/v1/internal/health_checks_rest_connection_impl.cc b/google/cloud/compute/health_checks/v1/internal/health_checks_rest_connection_impl.cc index 3c66140d9e4b1..da5952f1eab43 100644 --- a/google/cloud/compute/health_checks/v1/internal/health_checks_rest_connection_impl.cc +++ b/google/cloud/compute/health_checks/v1/internal/health_checks_rest_connection_impl.cc @@ -23,6 +23,7 @@ #include "google/cloud/internal/async_rest_long_running_operation_custom.h" #include "google/cloud/internal/extract_long_running_result.h" #include "google/cloud/internal/pagination_range.h" +#include "google/cloud/internal/rest_lro_helpers.h" #include "google/cloud/internal/rest_retry_loop.h" #include "google/cloud/rest_options.h" #include @@ -144,6 +145,77 @@ HealthChecksRestConnectionImpl::DeleteHealthCheck( }); } +StatusOr +HealthChecksRestConnectionImpl::DeleteHealthCheck( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::health_checks::v1:: + DeleteHealthCheckRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteHealthCheck(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::health_checks::v1:: + DeleteHealthCheckRequest const& request) { + return stub_->DeleteHealthCheck(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +HealthChecksRestConnectionImpl::DeleteHealthCheck( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::global_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }); +} + StatusOr HealthChecksRestConnectionImpl::GetHealthCheck( google::cloud::cpp::compute::health_checks::v1::GetHealthCheckRequest const& @@ -218,6 +290,77 @@ HealthChecksRestConnectionImpl::InsertHealthCheck( }); } +StatusOr +HealthChecksRestConnectionImpl::InsertHealthCheck( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::health_checks::v1:: + InsertHealthCheckRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->InsertHealthCheck(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::health_checks::v1:: + InsertHealthCheckRequest const& request) { + return stub_->InsertHealthCheck(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +HealthChecksRestConnectionImpl::InsertHealthCheck( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::global_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }); +} + StreamRange HealthChecksRestConnectionImpl::ListHealthChecks( google::cloud::cpp::compute::health_checks::v1::ListHealthChecksRequest @@ -313,6 +456,77 @@ HealthChecksRestConnectionImpl::PatchHealthCheck( }); } +StatusOr +HealthChecksRestConnectionImpl::PatchHealthCheck( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::health_checks::v1:: + PatchHealthCheckRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->PatchHealthCheck(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::health_checks::v1:: + PatchHealthCheckRequest const& request) { + return stub_->PatchHealthCheck(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +HealthChecksRestConnectionImpl::PatchHealthCheck( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::global_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }); +} + future> HealthChecksRestConnectionImpl::UpdateHealthCheck( google::cloud::cpp::compute::health_checks::v1:: @@ -371,6 +585,77 @@ HealthChecksRestConnectionImpl::UpdateHealthCheck( }); } +StatusOr +HealthChecksRestConnectionImpl::UpdateHealthCheck( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::health_checks::v1:: + UpdateHealthCheckRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UpdateHealthCheck(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::health_checks::v1:: + UpdateHealthCheckRequest const& request) { + return stub_->UpdateHealthCheck(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +HealthChecksRestConnectionImpl::UpdateHealthCheck( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::global_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace compute_health_checks_v1_internal } // namespace cloud diff --git a/google/cloud/compute/health_checks/v1/internal/health_checks_rest_connection_impl.h b/google/cloud/compute/health_checks/v1/internal/health_checks_rest_connection_impl.h index 734051ae95038..f5e3c9d8ff8db 100644 --- a/google/cloud/compute/health_checks/v1/internal/health_checks_rest_connection_impl.h +++ b/google/cloud/compute/health_checks/v1/internal/health_checks_rest_connection_impl.h @@ -61,6 +61,16 @@ class HealthChecksRestConnectionImpl DeleteHealthCheck(google::cloud::cpp::compute::health_checks::v1:: DeleteHealthCheckRequest const& request) override; + StatusOr DeleteHealthCheck( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::health_checks::v1:: + DeleteHealthCheckRequest const& request) override; + + future> + DeleteHealthCheck( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StatusOr GetHealthCheck( google::cloud::cpp::compute::health_checks::v1:: GetHealthCheckRequest const& request) override; @@ -69,6 +79,16 @@ class HealthChecksRestConnectionImpl InsertHealthCheck(google::cloud::cpp::compute::health_checks::v1:: InsertHealthCheckRequest const& request) override; + StatusOr InsertHealthCheck( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::health_checks::v1:: + InsertHealthCheckRequest const& request) override; + + future> + InsertHealthCheck( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StreamRange ListHealthChecks( google::cloud::cpp::compute::health_checks::v1::ListHealthChecksRequest request) override; @@ -77,10 +97,29 @@ class HealthChecksRestConnectionImpl google::cloud::cpp::compute::health_checks::v1:: PatchHealthCheckRequest const& request) override; + StatusOr PatchHealthCheck( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::health_checks::v1:: + PatchHealthCheckRequest const& request) override; + + future> PatchHealthCheck( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> UpdateHealthCheck(google::cloud::cpp::compute::health_checks::v1:: UpdateHealthCheckRequest const& request) override; + StatusOr UpdateHealthCheck( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::health_checks::v1:: + UpdateHealthCheckRequest const& request) override; + + future> + UpdateHealthCheck( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + private: static std::unique_ptr retry_policy(Options const& options) { diff --git a/google/cloud/compute/health_checks/v1/internal/health_checks_tracing_connection.cc b/google/cloud/compute/health_checks/v1/internal/health_checks_tracing_connection.cc index bd4aacf2bc9cf..57ade757aa3c9 100644 --- a/google/cloud/compute/health_checks/v1/internal/health_checks_tracing_connection.cc +++ b/google/cloud/compute/health_checks/v1/internal/health_checks_tracing_connection.cc @@ -58,6 +58,30 @@ HealthChecksTracingConnection::DeleteHealthCheck( return internal::EndSpan(std::move(span), child_->DeleteHealthCheck(request)); } +StatusOr +HealthChecksTracingConnection::DeleteHealthCheck( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::health_checks::v1:: + DeleteHealthCheckRequest const& request) { + auto span = internal::MakeSpan( + "compute_health_checks_v1::HealthChecksConnection::DeleteHealthCheck"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->DeleteHealthCheck(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +HealthChecksTracingConnection::DeleteHealthCheck( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_health_checks_v1::HealthChecksConnection::DeleteHealthCheck"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->DeleteHealthCheck(ExperimentalTag{}, operation)); +} + StatusOr HealthChecksTracingConnection::GetHealthCheck( google::cloud::cpp::compute::health_checks::v1::GetHealthCheckRequest const& @@ -78,6 +102,30 @@ HealthChecksTracingConnection::InsertHealthCheck( return internal::EndSpan(std::move(span), child_->InsertHealthCheck(request)); } +StatusOr +HealthChecksTracingConnection::InsertHealthCheck( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::health_checks::v1:: + InsertHealthCheckRequest const& request) { + auto span = internal::MakeSpan( + "compute_health_checks_v1::HealthChecksConnection::InsertHealthCheck"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->InsertHealthCheck(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +HealthChecksTracingConnection::InsertHealthCheck( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_health_checks_v1::HealthChecksConnection::InsertHealthCheck"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->InsertHealthCheck(ExperimentalTag{}, operation)); +} + StreamRange HealthChecksTracingConnection::ListHealthChecks( google::cloud::cpp::compute::health_checks::v1::ListHealthChecksRequest @@ -101,6 +149,30 @@ HealthChecksTracingConnection::PatchHealthCheck( return internal::EndSpan(std::move(span), child_->PatchHealthCheck(request)); } +StatusOr +HealthChecksTracingConnection::PatchHealthCheck( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::health_checks::v1:: + PatchHealthCheckRequest const& request) { + auto span = internal::MakeSpan( + "compute_health_checks_v1::HealthChecksConnection::PatchHealthCheck"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->PatchHealthCheck(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +HealthChecksTracingConnection::PatchHealthCheck( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_health_checks_v1::HealthChecksConnection::PatchHealthCheck"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->PatchHealthCheck(ExperimentalTag{}, operation)); +} + future> HealthChecksTracingConnection::UpdateHealthCheck( google::cloud::cpp::compute::health_checks::v1:: @@ -111,6 +183,30 @@ HealthChecksTracingConnection::UpdateHealthCheck( return internal::EndSpan(std::move(span), child_->UpdateHealthCheck(request)); } +StatusOr +HealthChecksTracingConnection::UpdateHealthCheck( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::health_checks::v1:: + UpdateHealthCheckRequest const& request) { + auto span = internal::MakeSpan( + "compute_health_checks_v1::HealthChecksConnection::UpdateHealthCheck"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->UpdateHealthCheck(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +HealthChecksTracingConnection::UpdateHealthCheck( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_health_checks_v1::HealthChecksConnection::UpdateHealthCheck"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->UpdateHealthCheck(ExperimentalTag{}, operation)); +} + #endif // GOOGLE_CLOUD_CPP_HAVE_OPENTELEMETRY std::shared_ptr diff --git a/google/cloud/compute/health_checks/v1/internal/health_checks_tracing_connection.h b/google/cloud/compute/health_checks/v1/internal/health_checks_tracing_connection.h index 8b00bc17f8d59..f5724b555a477 100644 --- a/google/cloud/compute/health_checks/v1/internal/health_checks_tracing_connection.h +++ b/google/cloud/compute/health_checks/v1/internal/health_checks_tracing_connection.h @@ -50,6 +50,16 @@ class HealthChecksTracingConnection DeleteHealthCheck(google::cloud::cpp::compute::health_checks::v1:: DeleteHealthCheckRequest const& request) override; + StatusOr DeleteHealthCheck( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::health_checks::v1:: + DeleteHealthCheckRequest const& request) override; + + future> + DeleteHealthCheck( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StatusOr GetHealthCheck( google::cloud::cpp::compute::health_checks::v1:: GetHealthCheckRequest const& request) override; @@ -58,6 +68,16 @@ class HealthChecksTracingConnection InsertHealthCheck(google::cloud::cpp::compute::health_checks::v1:: InsertHealthCheckRequest const& request) override; + StatusOr InsertHealthCheck( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::health_checks::v1:: + InsertHealthCheckRequest const& request) override; + + future> + InsertHealthCheck( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StreamRange ListHealthChecks( google::cloud::cpp::compute::health_checks::v1::ListHealthChecksRequest request) override; @@ -66,10 +86,29 @@ class HealthChecksTracingConnection google::cloud::cpp::compute::health_checks::v1:: PatchHealthCheckRequest const& request) override; + StatusOr PatchHealthCheck( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::health_checks::v1:: + PatchHealthCheckRequest const& request) override; + + future> PatchHealthCheck( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> UpdateHealthCheck(google::cloud::cpp::compute::health_checks::v1:: UpdateHealthCheckRequest const& request) override; + StatusOr UpdateHealthCheck( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::health_checks::v1:: + UpdateHealthCheckRequest const& request) override; + + future> + UpdateHealthCheck( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + private: std::shared_ptr child_; }; diff --git a/google/cloud/compute/health_checks/v1/mocks/mock_health_checks_connection.h b/google/cloud/compute/health_checks/v1/mocks/mock_health_checks_connection.h index 2fc119be98b75..ed64e57a41be4 100644 --- a/google/cloud/compute/health_checks/v1/mocks/mock_health_checks_connection.h +++ b/google/cloud/compute/health_checks/v1/mocks/mock_health_checks_connection.h @@ -62,6 +62,19 @@ class MockHealthChecksConnection DeleteHealthCheckRequest const& request), (override)); + MOCK_METHOD(StatusOr, + DeleteHealthCheck, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::health_checks::v1:: + DeleteHealthCheckRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteHealthCheck, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD(StatusOr, GetHealthCheck, (google::cloud::cpp::compute::health_checks::v1:: @@ -74,6 +87,19 @@ class MockHealthChecksConnection InsertHealthCheckRequest const& request), (override)); + MOCK_METHOD(StatusOr, + InsertHealthCheck, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::health_checks::v1:: + InsertHealthCheckRequest const& request), + (override)); + + MOCK_METHOD(future>, + InsertHealthCheck, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD( (StreamRange), ListHealthChecks, @@ -87,11 +113,37 @@ class MockHealthChecksConnection PatchHealthCheckRequest const& request), (override)); + MOCK_METHOD(StatusOr, + PatchHealthCheck, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::health_checks::v1:: + PatchHealthCheckRequest const& request), + (override)); + + MOCK_METHOD(future>, + PatchHealthCheck, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD(future>, UpdateHealthCheck, (google::cloud::cpp::compute::health_checks::v1:: UpdateHealthCheckRequest const& request), (override)); + + MOCK_METHOD(StatusOr, + UpdateHealthCheck, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::health_checks::v1:: + UpdateHealthCheckRequest const& request), + (override)); + + MOCK_METHOD(future>, + UpdateHealthCheck, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); }; GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END diff --git a/google/cloud/compute/http_health_checks/v1/http_health_checks_connection.cc b/google/cloud/compute/http_health_checks/v1/http_health_checks_connection.cc index d9534976fafd1..2148055e608e7 100644 --- a/google/cloud/compute/http_health_checks/v1/http_health_checks_connection.cc +++ b/google/cloud/compute/http_health_checks/v1/http_health_checks_connection.cc @@ -45,6 +45,23 @@ HttpHealthChecksConnection::DeleteHttpHealthCheck( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +HttpHealthChecksConnection::DeleteHttpHealthCheck( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::http_health_checks::v1:: + DeleteHttpHealthCheckRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +HttpHealthChecksConnection::DeleteHttpHealthCheck( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr HttpHealthChecksConnection::GetHttpHealthCheck( google::cloud::cpp::compute::http_health_checks::v1:: @@ -61,6 +78,23 @@ HttpHealthChecksConnection::InsertHttpHealthCheck( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +HttpHealthChecksConnection::InsertHttpHealthCheck( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::http_health_checks::v1:: + InsertHttpHealthCheckRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +HttpHealthChecksConnection::InsertHttpHealthCheck( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StreamRange HttpHealthChecksConnection::ListHttpHealthChecks( google::cloud::cpp::compute::http_health_checks::v1:: @@ -78,6 +112,23 @@ HttpHealthChecksConnection::PatchHttpHealthCheck( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +HttpHealthChecksConnection::PatchHttpHealthCheck( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::http_health_checks::v1:: + PatchHttpHealthCheckRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +HttpHealthChecksConnection::PatchHttpHealthCheck( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> HttpHealthChecksConnection::UpdateHttpHealthCheck( google::cloud::cpp::compute::http_health_checks::v1:: @@ -87,6 +138,23 @@ HttpHealthChecksConnection::UpdateHttpHealthCheck( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +HttpHealthChecksConnection::UpdateHttpHealthCheck( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::http_health_checks::v1:: + UpdateHttpHealthCheckRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +HttpHealthChecksConnection::UpdateHttpHealthCheck( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace compute_http_health_checks_v1 } // namespace cloud diff --git a/google/cloud/compute/http_health_checks/v1/http_health_checks_connection.h b/google/cloud/compute/http_health_checks/v1/http_health_checks_connection.h index 6cf6c102b3885..edede85f48ce5 100644 --- a/google/cloud/compute/http_health_checks/v1/http_health_checks_connection.h +++ b/google/cloud/compute/http_health_checks/v1/http_health_checks_connection.h @@ -22,8 +22,10 @@ #include "google/cloud/compute/http_health_checks/v1/http_health_checks_connection_idempotency_policy.h" #include "google/cloud/compute/http_health_checks/v1/internal/http_health_checks_retry_traits.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/internal/retry_policy_impl.h" +#include "google/cloud/no_await_tag.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" #include "google/cloud/status_or.h" @@ -190,6 +192,16 @@ class HttpHealthChecksConnection { DeleteHttpHealthCheck(google::cloud::cpp::compute::http_health_checks::v1:: DeleteHttpHealthCheckRequest const& request); + virtual StatusOr + DeleteHttpHealthCheck(ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::http_health_checks::v1:: + DeleteHttpHealthCheckRequest const& request); + + virtual future> + DeleteHttpHealthCheck( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual StatusOr GetHttpHealthCheck(google::cloud::cpp::compute::http_health_checks::v1:: GetHttpHealthCheckRequest const& request); @@ -198,6 +210,16 @@ class HttpHealthChecksConnection { InsertHttpHealthCheck(google::cloud::cpp::compute::http_health_checks::v1:: InsertHttpHealthCheckRequest const& request); + virtual StatusOr + InsertHttpHealthCheck(ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::http_health_checks::v1:: + InsertHttpHealthCheckRequest const& request); + + virtual future> + InsertHttpHealthCheck( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual StreamRange ListHttpHealthChecks(google::cloud::cpp::compute::http_health_checks::v1:: ListHttpHealthChecksRequest request); @@ -206,9 +228,29 @@ class HttpHealthChecksConnection { PatchHttpHealthCheck(google::cloud::cpp::compute::http_health_checks::v1:: PatchHttpHealthCheckRequest const& request); + virtual StatusOr + PatchHttpHealthCheck(ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::http_health_checks::v1:: + PatchHttpHealthCheckRequest const& request); + + virtual future> + PatchHttpHealthCheck( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual future> UpdateHttpHealthCheck(google::cloud::cpp::compute::http_health_checks::v1:: UpdateHttpHealthCheckRequest const& request); + + virtual StatusOr + UpdateHttpHealthCheck(ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::http_health_checks::v1:: + UpdateHttpHealthCheckRequest const& request); + + virtual future> + UpdateHttpHealthCheck( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); }; GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END diff --git a/google/cloud/compute/http_health_checks/v1/internal/http_health_checks_rest_connection_impl.cc b/google/cloud/compute/http_health_checks/v1/internal/http_health_checks_rest_connection_impl.cc index 151b1625a440d..d0f0232a68b97 100644 --- a/google/cloud/compute/http_health_checks/v1/internal/http_health_checks_rest_connection_impl.cc +++ b/google/cloud/compute/http_health_checks/v1/internal/http_health_checks_rest_connection_impl.cc @@ -23,6 +23,7 @@ #include "google/cloud/internal/async_rest_long_running_operation_custom.h" #include "google/cloud/internal/extract_long_running_result.h" #include "google/cloud/internal/pagination_range.h" +#include "google/cloud/internal/rest_lro_helpers.h" #include "google/cloud/internal/rest_retry_loop.h" #include "google/cloud/rest_options.h" #include @@ -102,6 +103,77 @@ HttpHealthChecksRestConnectionImpl::DeleteHttpHealthCheck( }); } +StatusOr +HttpHealthChecksRestConnectionImpl::DeleteHttpHealthCheck( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::http_health_checks::v1:: + DeleteHttpHealthCheckRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteHttpHealthCheck(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::http_health_checks::v1:: + DeleteHttpHealthCheckRequest const& request) { + return stub_->DeleteHttpHealthCheck(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +HttpHealthChecksRestConnectionImpl::DeleteHttpHealthCheck( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::global_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }); +} + StatusOr HttpHealthChecksRestConnectionImpl::GetHttpHealthCheck( google::cloud::cpp::compute::http_health_checks::v1:: @@ -176,6 +248,77 @@ HttpHealthChecksRestConnectionImpl::InsertHttpHealthCheck( }); } +StatusOr +HttpHealthChecksRestConnectionImpl::InsertHttpHealthCheck( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::http_health_checks::v1:: + InsertHttpHealthCheckRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->InsertHttpHealthCheck(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::http_health_checks::v1:: + InsertHttpHealthCheckRequest const& request) { + return stub_->InsertHttpHealthCheck(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +HttpHealthChecksRestConnectionImpl::InsertHttpHealthCheck( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::global_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }); +} + StreamRange HttpHealthChecksRestConnectionImpl::ListHttpHealthChecks( google::cloud::cpp::compute::http_health_checks::v1:: @@ -273,6 +416,77 @@ HttpHealthChecksRestConnectionImpl::PatchHttpHealthCheck( }); } +StatusOr +HttpHealthChecksRestConnectionImpl::PatchHttpHealthCheck( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::http_health_checks::v1:: + PatchHttpHealthCheckRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->PatchHttpHealthCheck(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::http_health_checks::v1:: + PatchHttpHealthCheckRequest const& request) { + return stub_->PatchHttpHealthCheck(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +HttpHealthChecksRestConnectionImpl::PatchHttpHealthCheck( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::global_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }); +} + future> HttpHealthChecksRestConnectionImpl::UpdateHttpHealthCheck( google::cloud::cpp::compute::http_health_checks::v1:: @@ -331,6 +545,77 @@ HttpHealthChecksRestConnectionImpl::UpdateHttpHealthCheck( }); } +StatusOr +HttpHealthChecksRestConnectionImpl::UpdateHttpHealthCheck( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::http_health_checks::v1:: + UpdateHttpHealthCheckRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UpdateHttpHealthCheck(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::http_health_checks::v1:: + UpdateHttpHealthCheckRequest const& request) { + return stub_->UpdateHttpHealthCheck(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +HttpHealthChecksRestConnectionImpl::UpdateHttpHealthCheck( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::global_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace compute_http_health_checks_v1_internal } // namespace cloud diff --git a/google/cloud/compute/http_health_checks/v1/internal/http_health_checks_rest_connection_impl.h b/google/cloud/compute/http_health_checks/v1/internal/http_health_checks_rest_connection_impl.h index 31a2b69eadeb2..cef07aca4b6a2 100644 --- a/google/cloud/compute/http_health_checks/v1/internal/http_health_checks_rest_connection_impl.h +++ b/google/cloud/compute/http_health_checks/v1/internal/http_health_checks_rest_connection_impl.h @@ -57,6 +57,16 @@ class HttpHealthChecksRestConnectionImpl google::cloud::cpp::compute::http_health_checks::v1:: DeleteHttpHealthCheckRequest const& request) override; + StatusOr DeleteHttpHealthCheck( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::http_health_checks::v1:: + DeleteHttpHealthCheckRequest const& request) override; + + future> + DeleteHttpHealthCheck( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StatusOr GetHttpHealthCheck( google::cloud::cpp::compute::http_health_checks::v1:: GetHttpHealthCheckRequest const& request) override; @@ -66,6 +76,16 @@ class HttpHealthChecksRestConnectionImpl google::cloud::cpp::compute::http_health_checks::v1:: InsertHttpHealthCheckRequest const& request) override; + StatusOr InsertHttpHealthCheck( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::http_health_checks::v1:: + InsertHttpHealthCheckRequest const& request) override; + + future> + InsertHttpHealthCheck( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StreamRange ListHttpHealthChecks(google::cloud::cpp::compute::http_health_checks::v1:: ListHttpHealthChecksRequest request) override; @@ -74,11 +94,31 @@ class HttpHealthChecksRestConnectionImpl PatchHttpHealthCheck(google::cloud::cpp::compute::http_health_checks::v1:: PatchHttpHealthCheckRequest const& request) override; + StatusOr PatchHttpHealthCheck( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::http_health_checks::v1:: + PatchHttpHealthCheckRequest const& request) override; + + future> + PatchHttpHealthCheck( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> UpdateHttpHealthCheck( google::cloud::cpp::compute::http_health_checks::v1:: UpdateHttpHealthCheckRequest const& request) override; + StatusOr UpdateHttpHealthCheck( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::http_health_checks::v1:: + UpdateHttpHealthCheckRequest const& request) override; + + future> + UpdateHttpHealthCheck( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + private: static std::unique_ptr< compute_http_health_checks_v1::HttpHealthChecksRetryPolicy> diff --git a/google/cloud/compute/http_health_checks/v1/internal/http_health_checks_tracing_connection.cc b/google/cloud/compute/http_health_checks/v1/internal/http_health_checks_tracing_connection.cc index cf41d5079a590..38093ddc3507a 100644 --- a/google/cloud/compute/http_health_checks/v1/internal/http_health_checks_tracing_connection.cc +++ b/google/cloud/compute/http_health_checks/v1/internal/http_health_checks_tracing_connection.cc @@ -46,6 +46,32 @@ HttpHealthChecksTracingConnection::DeleteHttpHealthCheck( child_->DeleteHttpHealthCheck(request)); } +StatusOr +HttpHealthChecksTracingConnection::DeleteHttpHealthCheck( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::http_health_checks::v1:: + DeleteHttpHealthCheckRequest const& request) { + auto span = internal::MakeSpan( + "compute_http_health_checks_v1::HttpHealthChecksConnection::" + "DeleteHttpHealthCheck"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->DeleteHttpHealthCheck(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +HttpHealthChecksTracingConnection::DeleteHttpHealthCheck( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_http_health_checks_v1::HttpHealthChecksConnection::" + "DeleteHttpHealthCheck"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->DeleteHttpHealthCheck( + ExperimentalTag{}, operation)); +} + StatusOr HttpHealthChecksTracingConnection::GetHttpHealthCheck( google::cloud::cpp::compute::http_health_checks::v1:: @@ -69,6 +95,32 @@ HttpHealthChecksTracingConnection::InsertHttpHealthCheck( child_->InsertHttpHealthCheck(request)); } +StatusOr +HttpHealthChecksTracingConnection::InsertHttpHealthCheck( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::http_health_checks::v1:: + InsertHttpHealthCheckRequest const& request) { + auto span = internal::MakeSpan( + "compute_http_health_checks_v1::HttpHealthChecksConnection::" + "InsertHttpHealthCheck"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->InsertHttpHealthCheck(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +HttpHealthChecksTracingConnection::InsertHttpHealthCheck( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_http_health_checks_v1::HttpHealthChecksConnection::" + "InsertHttpHealthCheck"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->InsertHttpHealthCheck( + ExperimentalTag{}, operation)); +} + StreamRange HttpHealthChecksTracingConnection::ListHttpHealthChecks( google::cloud::cpp::compute::http_health_checks::v1:: @@ -95,6 +147,32 @@ HttpHealthChecksTracingConnection::PatchHttpHealthCheck( child_->PatchHttpHealthCheck(request)); } +StatusOr +HttpHealthChecksTracingConnection::PatchHttpHealthCheck( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::http_health_checks::v1:: + PatchHttpHealthCheckRequest const& request) { + auto span = internal::MakeSpan( + "compute_http_health_checks_v1::HttpHealthChecksConnection::" + "PatchHttpHealthCheck"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->PatchHttpHealthCheck(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +HttpHealthChecksTracingConnection::PatchHttpHealthCheck( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_http_health_checks_v1::HttpHealthChecksConnection::" + "PatchHttpHealthCheck"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->PatchHttpHealthCheck( + ExperimentalTag{}, operation)); +} + future> HttpHealthChecksTracingConnection::UpdateHttpHealthCheck( google::cloud::cpp::compute::http_health_checks::v1:: @@ -107,6 +185,32 @@ HttpHealthChecksTracingConnection::UpdateHttpHealthCheck( child_->UpdateHttpHealthCheck(request)); } +StatusOr +HttpHealthChecksTracingConnection::UpdateHttpHealthCheck( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::http_health_checks::v1:: + UpdateHttpHealthCheckRequest const& request) { + auto span = internal::MakeSpan( + "compute_http_health_checks_v1::HttpHealthChecksConnection::" + "UpdateHttpHealthCheck"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->UpdateHttpHealthCheck(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +HttpHealthChecksTracingConnection::UpdateHttpHealthCheck( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_http_health_checks_v1::HttpHealthChecksConnection::" + "UpdateHttpHealthCheck"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->UpdateHttpHealthCheck( + ExperimentalTag{}, operation)); +} + #endif // GOOGLE_CLOUD_CPP_HAVE_OPENTELEMETRY std::shared_ptr diff --git a/google/cloud/compute/http_health_checks/v1/internal/http_health_checks_tracing_connection.h b/google/cloud/compute/http_health_checks/v1/internal/http_health_checks_tracing_connection.h index c040e3358fe6f..3b71cfb551c81 100644 --- a/google/cloud/compute/http_health_checks/v1/internal/http_health_checks_tracing_connection.h +++ b/google/cloud/compute/http_health_checks/v1/internal/http_health_checks_tracing_connection.h @@ -46,6 +46,16 @@ class HttpHealthChecksTracingConnection google::cloud::cpp::compute::http_health_checks::v1:: DeleteHttpHealthCheckRequest const& request) override; + StatusOr DeleteHttpHealthCheck( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::http_health_checks::v1:: + DeleteHttpHealthCheckRequest const& request) override; + + future> + DeleteHttpHealthCheck( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StatusOr GetHttpHealthCheck( google::cloud::cpp::compute::http_health_checks::v1:: GetHttpHealthCheckRequest const& request) override; @@ -55,6 +65,16 @@ class HttpHealthChecksTracingConnection google::cloud::cpp::compute::http_health_checks::v1:: InsertHttpHealthCheckRequest const& request) override; + StatusOr InsertHttpHealthCheck( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::http_health_checks::v1:: + InsertHttpHealthCheckRequest const& request) override; + + future> + InsertHttpHealthCheck( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StreamRange ListHttpHealthChecks(google::cloud::cpp::compute::http_health_checks::v1:: ListHttpHealthChecksRequest request) override; @@ -63,11 +83,31 @@ class HttpHealthChecksTracingConnection PatchHttpHealthCheck(google::cloud::cpp::compute::http_health_checks::v1:: PatchHttpHealthCheckRequest const& request) override; + StatusOr PatchHttpHealthCheck( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::http_health_checks::v1:: + PatchHttpHealthCheckRequest const& request) override; + + future> + PatchHttpHealthCheck( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> UpdateHttpHealthCheck( google::cloud::cpp::compute::http_health_checks::v1:: UpdateHttpHealthCheckRequest const& request) override; + StatusOr UpdateHttpHealthCheck( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::http_health_checks::v1:: + UpdateHttpHealthCheckRequest const& request) override; + + future> + UpdateHttpHealthCheck( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + private: std::shared_ptr child_; diff --git a/google/cloud/compute/http_health_checks/v1/mocks/mock_http_health_checks_connection.h b/google/cloud/compute/http_health_checks/v1/mocks/mock_http_health_checks_connection.h index 617ad9c4186aa..9badc1405c56b 100644 --- a/google/cloud/compute/http_health_checks/v1/mocks/mock_http_health_checks_connection.h +++ b/google/cloud/compute/http_health_checks/v1/mocks/mock_http_health_checks_connection.h @@ -53,6 +53,19 @@ class MockHttpHealthChecksConnection DeleteHttpHealthCheckRequest const& request), (override)); + MOCK_METHOD(StatusOr, + DeleteHttpHealthCheck, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::http_health_checks::v1:: + DeleteHttpHealthCheckRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteHttpHealthCheck, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD(StatusOr, GetHttpHealthCheck, (google::cloud::cpp::compute::http_health_checks::v1:: @@ -65,6 +78,19 @@ class MockHttpHealthChecksConnection InsertHttpHealthCheckRequest const& request), (override)); + MOCK_METHOD(StatusOr, + InsertHttpHealthCheck, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::http_health_checks::v1:: + InsertHttpHealthCheckRequest const& request), + (override)); + + MOCK_METHOD(future>, + InsertHttpHealthCheck, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD((StreamRange), ListHttpHealthChecks, (google::cloud::cpp::compute::http_health_checks::v1:: @@ -77,11 +103,37 @@ class MockHttpHealthChecksConnection PatchHttpHealthCheckRequest const& request), (override)); + MOCK_METHOD(StatusOr, + PatchHttpHealthCheck, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::http_health_checks::v1:: + PatchHttpHealthCheckRequest const& request), + (override)); + + MOCK_METHOD(future>, + PatchHttpHealthCheck, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD(future>, UpdateHttpHealthCheck, (google::cloud::cpp::compute::http_health_checks::v1:: UpdateHttpHealthCheckRequest const& request), (override)); + + MOCK_METHOD(StatusOr, + UpdateHttpHealthCheck, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::http_health_checks::v1:: + UpdateHttpHealthCheckRequest const& request), + (override)); + + MOCK_METHOD(future>, + UpdateHttpHealthCheck, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); }; GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END diff --git a/google/cloud/compute/https_health_checks/v1/https_health_checks_connection.cc b/google/cloud/compute/https_health_checks/v1/https_health_checks_connection.cc index ad7233cad7e32..ebf24b1b575fd 100644 --- a/google/cloud/compute/https_health_checks/v1/https_health_checks_connection.cc +++ b/google/cloud/compute/https_health_checks/v1/https_health_checks_connection.cc @@ -45,6 +45,23 @@ HttpsHealthChecksConnection::DeleteHttpsHealthCheck( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +HttpsHealthChecksConnection::DeleteHttpsHealthCheck( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::https_health_checks::v1:: + DeleteHttpsHealthCheckRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +HttpsHealthChecksConnection::DeleteHttpsHealthCheck( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr HttpsHealthChecksConnection::GetHttpsHealthCheck( google::cloud::cpp::compute::https_health_checks::v1:: @@ -61,6 +78,23 @@ HttpsHealthChecksConnection::InsertHttpsHealthCheck( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +HttpsHealthChecksConnection::InsertHttpsHealthCheck( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::https_health_checks::v1:: + InsertHttpsHealthCheckRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +HttpsHealthChecksConnection::InsertHttpsHealthCheck( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StreamRange HttpsHealthChecksConnection::ListHttpsHealthChecks( google::cloud::cpp::compute::https_health_checks::v1:: @@ -78,6 +112,23 @@ HttpsHealthChecksConnection::PatchHttpsHealthCheck( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +HttpsHealthChecksConnection::PatchHttpsHealthCheck( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::https_health_checks::v1:: + PatchHttpsHealthCheckRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +HttpsHealthChecksConnection::PatchHttpsHealthCheck( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> HttpsHealthChecksConnection::UpdateHttpsHealthCheck( google::cloud::cpp::compute::https_health_checks::v1:: @@ -87,6 +138,23 @@ HttpsHealthChecksConnection::UpdateHttpsHealthCheck( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +HttpsHealthChecksConnection::UpdateHttpsHealthCheck( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::https_health_checks::v1:: + UpdateHttpsHealthCheckRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +HttpsHealthChecksConnection::UpdateHttpsHealthCheck( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace compute_https_health_checks_v1 } // namespace cloud diff --git a/google/cloud/compute/https_health_checks/v1/https_health_checks_connection.h b/google/cloud/compute/https_health_checks/v1/https_health_checks_connection.h index 90773b3546f2f..62635072b2a81 100644 --- a/google/cloud/compute/https_health_checks/v1/https_health_checks_connection.h +++ b/google/cloud/compute/https_health_checks/v1/https_health_checks_connection.h @@ -22,8 +22,10 @@ #include "google/cloud/compute/https_health_checks/v1/https_health_checks_connection_idempotency_policy.h" #include "google/cloud/compute/https_health_checks/v1/internal/https_health_checks_retry_traits.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/internal/retry_policy_impl.h" +#include "google/cloud/no_await_tag.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" #include "google/cloud/status_or.h" @@ -190,6 +192,16 @@ class HttpsHealthChecksConnection { DeleteHttpsHealthCheck(google::cloud::cpp::compute::https_health_checks::v1:: DeleteHttpsHealthCheckRequest const& request); + virtual StatusOr + DeleteHttpsHealthCheck(ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::https_health_checks::v1:: + DeleteHttpsHealthCheckRequest const& request); + + virtual future> + DeleteHttpsHealthCheck( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual StatusOr GetHttpsHealthCheck(google::cloud::cpp::compute::https_health_checks::v1:: GetHttpsHealthCheckRequest const& request); @@ -198,6 +210,16 @@ class HttpsHealthChecksConnection { InsertHttpsHealthCheck(google::cloud::cpp::compute::https_health_checks::v1:: InsertHttpsHealthCheckRequest const& request); + virtual StatusOr + InsertHttpsHealthCheck(ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::https_health_checks::v1:: + InsertHttpsHealthCheckRequest const& request); + + virtual future> + InsertHttpsHealthCheck( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual StreamRange ListHttpsHealthChecks(google::cloud::cpp::compute::https_health_checks::v1:: ListHttpsHealthChecksRequest request); @@ -206,9 +228,29 @@ class HttpsHealthChecksConnection { PatchHttpsHealthCheck(google::cloud::cpp::compute::https_health_checks::v1:: PatchHttpsHealthCheckRequest const& request); + virtual StatusOr + PatchHttpsHealthCheck(ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::https_health_checks::v1:: + PatchHttpsHealthCheckRequest const& request); + + virtual future> + PatchHttpsHealthCheck( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual future> UpdateHttpsHealthCheck(google::cloud::cpp::compute::https_health_checks::v1:: UpdateHttpsHealthCheckRequest const& request); + + virtual StatusOr + UpdateHttpsHealthCheck(ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::https_health_checks::v1:: + UpdateHttpsHealthCheckRequest const& request); + + virtual future> + UpdateHttpsHealthCheck( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); }; GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END diff --git a/google/cloud/compute/https_health_checks/v1/internal/https_health_checks_rest_connection_impl.cc b/google/cloud/compute/https_health_checks/v1/internal/https_health_checks_rest_connection_impl.cc index 3bee05e52edb5..00891f4bf23f1 100644 --- a/google/cloud/compute/https_health_checks/v1/internal/https_health_checks_rest_connection_impl.cc +++ b/google/cloud/compute/https_health_checks/v1/internal/https_health_checks_rest_connection_impl.cc @@ -23,6 +23,7 @@ #include "google/cloud/internal/async_rest_long_running_operation_custom.h" #include "google/cloud/internal/extract_long_running_result.h" #include "google/cloud/internal/pagination_range.h" +#include "google/cloud/internal/rest_lro_helpers.h" #include "google/cloud/internal/rest_retry_loop.h" #include "google/cloud/rest_options.h" #include @@ -102,6 +103,77 @@ HttpsHealthChecksRestConnectionImpl::DeleteHttpsHealthCheck( }); } +StatusOr +HttpsHealthChecksRestConnectionImpl::DeleteHttpsHealthCheck( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::https_health_checks::v1:: + DeleteHttpsHealthCheckRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteHttpsHealthCheck(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::https_health_checks::v1:: + DeleteHttpsHealthCheckRequest const& request) { + return stub_->DeleteHttpsHealthCheck(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +HttpsHealthChecksRestConnectionImpl::DeleteHttpsHealthCheck( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::global_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }); +} + StatusOr HttpsHealthChecksRestConnectionImpl::GetHttpsHealthCheck( google::cloud::cpp::compute::https_health_checks::v1:: @@ -176,6 +248,77 @@ HttpsHealthChecksRestConnectionImpl::InsertHttpsHealthCheck( }); } +StatusOr +HttpsHealthChecksRestConnectionImpl::InsertHttpsHealthCheck( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::https_health_checks::v1:: + InsertHttpsHealthCheckRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->InsertHttpsHealthCheck(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::https_health_checks::v1:: + InsertHttpsHealthCheckRequest const& request) { + return stub_->InsertHttpsHealthCheck(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +HttpsHealthChecksRestConnectionImpl::InsertHttpsHealthCheck( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::global_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }); +} + StreamRange HttpsHealthChecksRestConnectionImpl::ListHttpsHealthChecks( google::cloud::cpp::compute::https_health_checks::v1:: @@ -274,6 +417,77 @@ HttpsHealthChecksRestConnectionImpl::PatchHttpsHealthCheck( }); } +StatusOr +HttpsHealthChecksRestConnectionImpl::PatchHttpsHealthCheck( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::https_health_checks::v1:: + PatchHttpsHealthCheckRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->PatchHttpsHealthCheck(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::https_health_checks::v1:: + PatchHttpsHealthCheckRequest const& request) { + return stub_->PatchHttpsHealthCheck(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +HttpsHealthChecksRestConnectionImpl::PatchHttpsHealthCheck( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::global_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }); +} + future> HttpsHealthChecksRestConnectionImpl::UpdateHttpsHealthCheck( google::cloud::cpp::compute::https_health_checks::v1:: @@ -332,6 +546,77 @@ HttpsHealthChecksRestConnectionImpl::UpdateHttpsHealthCheck( }); } +StatusOr +HttpsHealthChecksRestConnectionImpl::UpdateHttpsHealthCheck( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::https_health_checks::v1:: + UpdateHttpsHealthCheckRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UpdateHttpsHealthCheck(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::https_health_checks::v1:: + UpdateHttpsHealthCheckRequest const& request) { + return stub_->UpdateHttpsHealthCheck(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +HttpsHealthChecksRestConnectionImpl::UpdateHttpsHealthCheck( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::global_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace compute_https_health_checks_v1_internal } // namespace cloud diff --git a/google/cloud/compute/https_health_checks/v1/internal/https_health_checks_rest_connection_impl.h b/google/cloud/compute/https_health_checks/v1/internal/https_health_checks_rest_connection_impl.h index 0597cf37d48ec..3288e2c5b3d7a 100644 --- a/google/cloud/compute/https_health_checks/v1/internal/https_health_checks_rest_connection_impl.h +++ b/google/cloud/compute/https_health_checks/v1/internal/https_health_checks_rest_connection_impl.h @@ -57,6 +57,16 @@ class HttpsHealthChecksRestConnectionImpl google::cloud::cpp::compute::https_health_checks::v1:: DeleteHttpsHealthCheckRequest const& request) override; + StatusOr DeleteHttpsHealthCheck( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::https_health_checks::v1:: + DeleteHttpsHealthCheckRequest const& request) override; + + future> + DeleteHttpsHealthCheck( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StatusOr GetHttpsHealthCheck(google::cloud::cpp::compute::https_health_checks::v1:: GetHttpsHealthCheckRequest const& request) override; @@ -66,6 +76,16 @@ class HttpsHealthChecksRestConnectionImpl google::cloud::cpp::compute::https_health_checks::v1:: InsertHttpsHealthCheckRequest const& request) override; + StatusOr InsertHttpsHealthCheck( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::https_health_checks::v1:: + InsertHttpsHealthCheckRequest const& request) override; + + future> + InsertHttpsHealthCheck( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StreamRange ListHttpsHealthChecks(google::cloud::cpp::compute::https_health_checks::v1:: ListHttpsHealthChecksRequest request) override; @@ -75,11 +95,31 @@ class HttpsHealthChecksRestConnectionImpl google::cloud::cpp::compute::https_health_checks::v1:: PatchHttpsHealthCheckRequest const& request) override; + StatusOr PatchHttpsHealthCheck( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::https_health_checks::v1:: + PatchHttpsHealthCheckRequest const& request) override; + + future> + PatchHttpsHealthCheck( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> UpdateHttpsHealthCheck( google::cloud::cpp::compute::https_health_checks::v1:: UpdateHttpsHealthCheckRequest const& request) override; + StatusOr UpdateHttpsHealthCheck( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::https_health_checks::v1:: + UpdateHttpsHealthCheckRequest const& request) override; + + future> + UpdateHttpsHealthCheck( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + private: static std::unique_ptr< compute_https_health_checks_v1::HttpsHealthChecksRetryPolicy> diff --git a/google/cloud/compute/https_health_checks/v1/internal/https_health_checks_tracing_connection.cc b/google/cloud/compute/https_health_checks/v1/internal/https_health_checks_tracing_connection.cc index 5f845f3d96486..c3a38aa717208 100644 --- a/google/cloud/compute/https_health_checks/v1/internal/https_health_checks_tracing_connection.cc +++ b/google/cloud/compute/https_health_checks/v1/internal/https_health_checks_tracing_connection.cc @@ -46,6 +46,32 @@ HttpsHealthChecksTracingConnection::DeleteHttpsHealthCheck( child_->DeleteHttpsHealthCheck(request)); } +StatusOr +HttpsHealthChecksTracingConnection::DeleteHttpsHealthCheck( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::https_health_checks::v1:: + DeleteHttpsHealthCheckRequest const& request) { + auto span = internal::MakeSpan( + "compute_https_health_checks_v1::HttpsHealthChecksConnection::" + "DeleteHttpsHealthCheck"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->DeleteHttpsHealthCheck(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +HttpsHealthChecksTracingConnection::DeleteHttpsHealthCheck( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_https_health_checks_v1::HttpsHealthChecksConnection::" + "DeleteHttpsHealthCheck"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->DeleteHttpsHealthCheck( + ExperimentalTag{}, operation)); +} + StatusOr HttpsHealthChecksTracingConnection::GetHttpsHealthCheck( google::cloud::cpp::compute::https_health_checks::v1:: @@ -69,6 +95,32 @@ HttpsHealthChecksTracingConnection::InsertHttpsHealthCheck( child_->InsertHttpsHealthCheck(request)); } +StatusOr +HttpsHealthChecksTracingConnection::InsertHttpsHealthCheck( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::https_health_checks::v1:: + InsertHttpsHealthCheckRequest const& request) { + auto span = internal::MakeSpan( + "compute_https_health_checks_v1::HttpsHealthChecksConnection::" + "InsertHttpsHealthCheck"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->InsertHttpsHealthCheck(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +HttpsHealthChecksTracingConnection::InsertHttpsHealthCheck( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_https_health_checks_v1::HttpsHealthChecksConnection::" + "InsertHttpsHealthCheck"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->InsertHttpsHealthCheck( + ExperimentalTag{}, operation)); +} + StreamRange HttpsHealthChecksTracingConnection::ListHttpsHealthChecks( google::cloud::cpp::compute::https_health_checks::v1:: @@ -95,6 +147,32 @@ HttpsHealthChecksTracingConnection::PatchHttpsHealthCheck( child_->PatchHttpsHealthCheck(request)); } +StatusOr +HttpsHealthChecksTracingConnection::PatchHttpsHealthCheck( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::https_health_checks::v1:: + PatchHttpsHealthCheckRequest const& request) { + auto span = internal::MakeSpan( + "compute_https_health_checks_v1::HttpsHealthChecksConnection::" + "PatchHttpsHealthCheck"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->PatchHttpsHealthCheck(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +HttpsHealthChecksTracingConnection::PatchHttpsHealthCheck( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_https_health_checks_v1::HttpsHealthChecksConnection::" + "PatchHttpsHealthCheck"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->PatchHttpsHealthCheck( + ExperimentalTag{}, operation)); +} + future> HttpsHealthChecksTracingConnection::UpdateHttpsHealthCheck( google::cloud::cpp::compute::https_health_checks::v1:: @@ -107,6 +185,32 @@ HttpsHealthChecksTracingConnection::UpdateHttpsHealthCheck( child_->UpdateHttpsHealthCheck(request)); } +StatusOr +HttpsHealthChecksTracingConnection::UpdateHttpsHealthCheck( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::https_health_checks::v1:: + UpdateHttpsHealthCheckRequest const& request) { + auto span = internal::MakeSpan( + "compute_https_health_checks_v1::HttpsHealthChecksConnection::" + "UpdateHttpsHealthCheck"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->UpdateHttpsHealthCheck(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +HttpsHealthChecksTracingConnection::UpdateHttpsHealthCheck( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_https_health_checks_v1::HttpsHealthChecksConnection::" + "UpdateHttpsHealthCheck"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->UpdateHttpsHealthCheck( + ExperimentalTag{}, operation)); +} + #endif // GOOGLE_CLOUD_CPP_HAVE_OPENTELEMETRY std::shared_ptr diff --git a/google/cloud/compute/https_health_checks/v1/internal/https_health_checks_tracing_connection.h b/google/cloud/compute/https_health_checks/v1/internal/https_health_checks_tracing_connection.h index 1b070b2fe6960..a7ce43fb22524 100644 --- a/google/cloud/compute/https_health_checks/v1/internal/https_health_checks_tracing_connection.h +++ b/google/cloud/compute/https_health_checks/v1/internal/https_health_checks_tracing_connection.h @@ -47,6 +47,16 @@ class HttpsHealthChecksTracingConnection google::cloud::cpp::compute::https_health_checks::v1:: DeleteHttpsHealthCheckRequest const& request) override; + StatusOr DeleteHttpsHealthCheck( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::https_health_checks::v1:: + DeleteHttpsHealthCheckRequest const& request) override; + + future> + DeleteHttpsHealthCheck( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StatusOr GetHttpsHealthCheck(google::cloud::cpp::compute::https_health_checks::v1:: GetHttpsHealthCheckRequest const& request) override; @@ -56,6 +66,16 @@ class HttpsHealthChecksTracingConnection google::cloud::cpp::compute::https_health_checks::v1:: InsertHttpsHealthCheckRequest const& request) override; + StatusOr InsertHttpsHealthCheck( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::https_health_checks::v1:: + InsertHttpsHealthCheckRequest const& request) override; + + future> + InsertHttpsHealthCheck( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StreamRange ListHttpsHealthChecks(google::cloud::cpp::compute::https_health_checks::v1:: ListHttpsHealthChecksRequest request) override; @@ -65,11 +85,31 @@ class HttpsHealthChecksTracingConnection google::cloud::cpp::compute::https_health_checks::v1:: PatchHttpsHealthCheckRequest const& request) override; + StatusOr PatchHttpsHealthCheck( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::https_health_checks::v1:: + PatchHttpsHealthCheckRequest const& request) override; + + future> + PatchHttpsHealthCheck( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> UpdateHttpsHealthCheck( google::cloud::cpp::compute::https_health_checks::v1:: UpdateHttpsHealthCheckRequest const& request) override; + StatusOr UpdateHttpsHealthCheck( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::https_health_checks::v1:: + UpdateHttpsHealthCheckRequest const& request) override; + + future> + UpdateHttpsHealthCheck( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + private: std::shared_ptr child_; diff --git a/google/cloud/compute/https_health_checks/v1/mocks/mock_https_health_checks_connection.h b/google/cloud/compute/https_health_checks/v1/mocks/mock_https_health_checks_connection.h index 3d1032306be72..5960ab191f428 100644 --- a/google/cloud/compute/https_health_checks/v1/mocks/mock_https_health_checks_connection.h +++ b/google/cloud/compute/https_health_checks/v1/mocks/mock_https_health_checks_connection.h @@ -53,6 +53,19 @@ class MockHttpsHealthChecksConnection DeleteHttpsHealthCheckRequest const& request), (override)); + MOCK_METHOD(StatusOr, + DeleteHttpsHealthCheck, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::https_health_checks::v1:: + DeleteHttpsHealthCheckRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteHttpsHealthCheck, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD(StatusOr, GetHttpsHealthCheck, (google::cloud::cpp::compute::https_health_checks::v1:: @@ -65,6 +78,19 @@ class MockHttpsHealthChecksConnection InsertHttpsHealthCheckRequest const& request), (override)); + MOCK_METHOD(StatusOr, + InsertHttpsHealthCheck, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::https_health_checks::v1:: + InsertHttpsHealthCheckRequest const& request), + (override)); + + MOCK_METHOD(future>, + InsertHttpsHealthCheck, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD((StreamRange), ListHttpsHealthChecks, (google::cloud::cpp::compute::https_health_checks::v1:: @@ -77,11 +103,37 @@ class MockHttpsHealthChecksConnection PatchHttpsHealthCheckRequest const& request), (override)); + MOCK_METHOD(StatusOr, + PatchHttpsHealthCheck, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::https_health_checks::v1:: + PatchHttpsHealthCheckRequest const& request), + (override)); + + MOCK_METHOD(future>, + PatchHttpsHealthCheck, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD(future>, UpdateHttpsHealthCheck, (google::cloud::cpp::compute::https_health_checks::v1:: UpdateHttpsHealthCheckRequest const& request), (override)); + + MOCK_METHOD(StatusOr, + UpdateHttpsHealthCheck, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::https_health_checks::v1:: + UpdateHttpsHealthCheckRequest const& request), + (override)); + + MOCK_METHOD(future>, + UpdateHttpsHealthCheck, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); }; GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END diff --git a/google/cloud/compute/image_family_views/v1/image_family_views_connection.h b/google/cloud/compute/image_family_views/v1/image_family_views_connection.h index 762803e3465b0..aa9bace9b54e5 100644 --- a/google/cloud/compute/image_family_views/v1/image_family_views_connection.h +++ b/google/cloud/compute/image_family_views/v1/image_family_views_connection.h @@ -22,6 +22,7 @@ #include "google/cloud/compute/image_family_views/v1/image_family_views_connection_idempotency_policy.h" #include "google/cloud/compute/image_family_views/v1/internal/image_family_views_retry_traits.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/internal/retry_policy_impl.h" #include "google/cloud/options.h" #include "google/cloud/status_or.h" diff --git a/google/cloud/compute/images/v1/images_connection.cc b/google/cloud/compute/images/v1/images_connection.cc index 97e3852a7a39b..b20f3f9db3839 100644 --- a/google/cloud/compute/images/v1/images_connection.cc +++ b/google/cloud/compute/images/v1/images_connection.cc @@ -44,6 +44,22 @@ ImagesConnection::DeleteImage( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +ImagesConnection::DeleteImage( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::images::v1::DeleteImageRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +ImagesConnection::DeleteImage( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> ImagesConnection::Deprecate( google::cloud::cpp::compute::images::v1::DeprecateRequest const&) { @@ -52,6 +68,22 @@ ImagesConnection::Deprecate( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +ImagesConnection::Deprecate( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::images::v1::DeprecateRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +ImagesConnection::Deprecate(ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr ImagesConnection::GetImage( google::cloud::cpp::compute::images::v1::GetImageRequest const&) { return Status(StatusCode::kUnimplemented, "not implemented"); @@ -77,6 +109,22 @@ ImagesConnection::InsertImage( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +ImagesConnection::InsertImage( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::images::v1::InsertImageRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +ImagesConnection::InsertImage( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StreamRange ImagesConnection::ListImages( google::cloud::cpp::compute::images::v1:: @@ -93,6 +141,22 @@ ImagesConnection::PatchImage( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +ImagesConnection::PatchImage( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::images::v1::PatchImageRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +ImagesConnection::PatchImage( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr ImagesConnection::SetIamPolicy( google::cloud::cpp::compute::images::v1::SetIamPolicyRequest const&) { @@ -107,6 +171,22 @@ ImagesConnection::SetLabels( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +ImagesConnection::SetLabels( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::images::v1::SetLabelsRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +ImagesConnection::SetLabels(ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr ImagesConnection::TestIamPermissions( google::cloud::cpp::compute::images::v1::TestIamPermissionsRequest const&) { diff --git a/google/cloud/compute/images/v1/images_connection.h b/google/cloud/compute/images/v1/images_connection.h index bd1fef7e81dc5..f07c57612c4c4 100644 --- a/google/cloud/compute/images/v1/images_connection.h +++ b/google/cloud/compute/images/v1/images_connection.h @@ -22,8 +22,10 @@ #include "google/cloud/compute/images/v1/images_connection_idempotency_policy.h" #include "google/cloud/compute/images/v1/internal/images_retry_traits.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/internal/retry_policy_impl.h" +#include "google/cloud/no_await_tag.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" #include "google/cloud/status_or.h" @@ -184,10 +186,27 @@ class ImagesConnection { DeleteImage(google::cloud::cpp::compute::images::v1::DeleteImageRequest const& request); + virtual StatusOr DeleteImage( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::images::v1::DeleteImageRequest const& + request); + + virtual future> + DeleteImage(ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual future> Deprecate( google::cloud::cpp::compute::images::v1::DeprecateRequest const& request); + virtual StatusOr Deprecate( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::images::v1::DeprecateRequest const& request); + + virtual future> + Deprecate(ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual StatusOr GetImage( google::cloud::cpp::compute::images::v1::GetImageRequest const& request); @@ -203,6 +222,15 @@ class ImagesConnection { InsertImage(google::cloud::cpp::compute::images::v1::InsertImageRequest const& request); + virtual StatusOr InsertImage( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::images::v1::InsertImageRequest const& + request); + + virtual future> + InsertImage(ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual StreamRange ListImages( google::cloud::cpp::compute::images::v1::ListImagesRequest request); @@ -210,6 +238,15 @@ class ImagesConnection { PatchImage(google::cloud::cpp::compute::images::v1::PatchImageRequest const& request); + virtual StatusOr PatchImage( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::images::v1::PatchImageRequest const& + request); + + virtual future> + PatchImage(ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual StatusOr SetIamPolicy( google::cloud::cpp::compute::images::v1::SetIamPolicyRequest const& request); @@ -218,6 +255,14 @@ class ImagesConnection { SetLabels( google::cloud::cpp::compute::images::v1::SetLabelsRequest const& request); + virtual StatusOr SetLabels( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::images::v1::SetLabelsRequest const& request); + + virtual future> + SetLabels(ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual StatusOr TestIamPermissions( google::cloud::cpp::compute::images::v1::TestIamPermissionsRequest const& diff --git a/google/cloud/compute/images/v1/internal/images_rest_connection_impl.cc b/google/cloud/compute/images/v1/internal/images_rest_connection_impl.cc index 496e418f1ef9e..02bb7199c7f1d 100644 --- a/google/cloud/compute/images/v1/internal/images_rest_connection_impl.cc +++ b/google/cloud/compute/images/v1/internal/images_rest_connection_impl.cc @@ -23,6 +23,7 @@ #include "google/cloud/internal/async_rest_long_running_operation_custom.h" #include "google/cloud/internal/extract_long_running_result.h" #include "google/cloud/internal/pagination_range.h" +#include "google/cloud/internal/rest_lro_helpers.h" #include "google/cloud/internal/rest_retry_loop.h" #include "google/cloud/rest_options.h" #include @@ -101,6 +102,77 @@ ImagesRestConnectionImpl::DeleteImage( }); } +StatusOr +ImagesRestConnectionImpl::DeleteImage( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::images::v1::DeleteImageRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteImage(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::images::v1::DeleteImageRequest const& + request) { + return stub_->DeleteImage(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +ImagesRestConnectionImpl::DeleteImage( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::global_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }); +} + future> ImagesRestConnectionImpl::Deprecate( google::cloud::cpp::compute::images::v1::DeprecateRequest const& request) { @@ -159,6 +231,76 @@ ImagesRestConnectionImpl::Deprecate( }); } +StatusOr +ImagesRestConnectionImpl::Deprecate( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::images::v1::DeprecateRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->Deprecate(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::images::v1::DeprecateRequest const& + request) { + return stub_->Deprecate(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +ImagesRestConnectionImpl::Deprecate( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::global_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }); +} + StatusOr ImagesRestConnectionImpl::GetImage( google::cloud::cpp::compute::images::v1::GetImageRequest const& request) { @@ -266,6 +408,77 @@ ImagesRestConnectionImpl::InsertImage( }); } +StatusOr +ImagesRestConnectionImpl::InsertImage( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::images::v1::InsertImageRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->InsertImage(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::images::v1::InsertImageRequest const& + request) { + return stub_->InsertImage(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +ImagesRestConnectionImpl::InsertImage( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::global_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }); +} + StreamRange ImagesRestConnectionImpl::ListImages( google::cloud::cpp::compute::images::v1::ListImagesRequest request) { @@ -359,6 +572,76 @@ ImagesRestConnectionImpl::PatchImage( }); } +StatusOr +ImagesRestConnectionImpl::PatchImage( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::images::v1::PatchImageRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->PatchImage(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::images::v1::PatchImageRequest const& + request) { + return stub_->PatchImage(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +ImagesRestConnectionImpl::PatchImage( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::global_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }); +} + StatusOr ImagesRestConnectionImpl::SetIamPolicy( google::cloud::cpp::compute::images::v1::SetIamPolicyRequest const& @@ -433,6 +716,76 @@ ImagesRestConnectionImpl::SetLabels( }); } +StatusOr +ImagesRestConnectionImpl::SetLabels( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::images::v1::SetLabelsRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->SetLabels(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::images::v1::SetLabelsRequest const& + request) { + return stub_->SetLabels(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +ImagesRestConnectionImpl::SetLabels( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::global_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }); +} + StatusOr ImagesRestConnectionImpl::TestIamPermissions( google::cloud::cpp::compute::images::v1::TestIamPermissionsRequest const& diff --git a/google/cloud/compute/images/v1/internal/images_rest_connection_impl.h b/google/cloud/compute/images/v1/internal/images_rest_connection_impl.h index d8e3368129be0..5fc0d0e3085fc 100644 --- a/google/cloud/compute/images/v1/internal/images_rest_connection_impl.h +++ b/google/cloud/compute/images/v1/internal/images_rest_connection_impl.h @@ -53,10 +53,28 @@ class ImagesRestConnectionImpl : public compute_images_v1::ImagesConnection { google::cloud::cpp::compute::images::v1::DeleteImageRequest const& request) override; + StatusOr DeleteImage( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::images::v1::DeleteImageRequest const& + request) override; + + future> DeleteImage( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> Deprecate( google::cloud::cpp::compute::images::v1::DeprecateRequest const& request) override; + StatusOr Deprecate( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::images::v1::DeprecateRequest const& request) + override; + + future> Deprecate( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StatusOr GetImage( google::cloud::cpp::compute::images::v1::GetImageRequest const& request) override; @@ -73,6 +91,15 @@ class ImagesRestConnectionImpl : public compute_images_v1::ImagesConnection { google::cloud::cpp::compute::images::v1::InsertImageRequest const& request) override; + StatusOr InsertImage( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::images::v1::InsertImageRequest const& + request) override; + + future> InsertImage( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StreamRange ListImages( google::cloud::cpp::compute::images::v1::ListImagesRequest request) override; @@ -81,6 +108,15 @@ class ImagesRestConnectionImpl : public compute_images_v1::ImagesConnection { google::cloud::cpp::compute::images::v1::PatchImageRequest const& request) override; + StatusOr PatchImage( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::images::v1::PatchImageRequest const& request) + override; + + future> PatchImage( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StatusOr SetIamPolicy( google::cloud::cpp::compute::images::v1::SetIamPolicyRequest const& request) override; @@ -89,6 +125,15 @@ class ImagesRestConnectionImpl : public compute_images_v1::ImagesConnection { google::cloud::cpp::compute::images::v1::SetLabelsRequest const& request) override; + StatusOr SetLabels( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::images::v1::SetLabelsRequest const& request) + override; + + future> SetLabels( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StatusOr TestIamPermissions( google::cloud::cpp::compute::images::v1::TestIamPermissionsRequest const& diff --git a/google/cloud/compute/images/v1/internal/images_tracing_connection.cc b/google/cloud/compute/images/v1/internal/images_tracing_connection.cc index ca96cd75a8de3..52e20ee58dd49 100644 --- a/google/cloud/compute/images/v1/internal/images_tracing_connection.cc +++ b/google/cloud/compute/images/v1/internal/images_tracing_connection.cc @@ -43,6 +43,29 @@ ImagesTracingConnection::DeleteImage( return internal::EndSpan(std::move(span), child_->DeleteImage(request)); } +StatusOr +ImagesTracingConnection::DeleteImage( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::images::v1::DeleteImageRequest const& + request) { + auto span = + internal::MakeSpan("compute_images_v1::ImagesConnection::DeleteImage"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->DeleteImage(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +ImagesTracingConnection::DeleteImage( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = + internal::MakeSpan("compute_images_v1::ImagesConnection::DeleteImage"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->DeleteImage(ExperimentalTag{}, operation)); +} + future> ImagesTracingConnection::Deprecate( google::cloud::cpp::compute::images::v1::DeprecateRequest const& request) { @@ -52,6 +75,28 @@ ImagesTracingConnection::Deprecate( return internal::EndSpan(std::move(span), child_->Deprecate(request)); } +StatusOr +ImagesTracingConnection::Deprecate( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::images::v1::DeprecateRequest const& request) { + auto span = + internal::MakeSpan("compute_images_v1::ImagesConnection::Deprecate"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->Deprecate(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +ImagesTracingConnection::Deprecate( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = + internal::MakeSpan("compute_images_v1::ImagesConnection::Deprecate"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->Deprecate(ExperimentalTag{}, operation)); +} + StatusOr ImagesTracingConnection::GetImage( google::cloud::cpp::compute::images::v1::GetImageRequest const& request) { @@ -91,6 +136,29 @@ ImagesTracingConnection::InsertImage( return internal::EndSpan(std::move(span), child_->InsertImage(request)); } +StatusOr +ImagesTracingConnection::InsertImage( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::images::v1::InsertImageRequest const& + request) { + auto span = + internal::MakeSpan("compute_images_v1::ImagesConnection::InsertImage"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->InsertImage(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +ImagesTracingConnection::InsertImage( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = + internal::MakeSpan("compute_images_v1::ImagesConnection::InsertImage"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->InsertImage(ExperimentalTag{}, operation)); +} + StreamRange ImagesTracingConnection::ListImages( google::cloud::cpp::compute::images::v1::ListImagesRequest request) { @@ -111,6 +179,28 @@ ImagesTracingConnection::PatchImage( return internal::EndSpan(std::move(span), child_->PatchImage(request)); } +StatusOr +ImagesTracingConnection::PatchImage( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::images::v1::PatchImageRequest const& request) { + auto span = + internal::MakeSpan("compute_images_v1::ImagesConnection::PatchImage"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->PatchImage(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +ImagesTracingConnection::PatchImage( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = + internal::MakeSpan("compute_images_v1::ImagesConnection::PatchImage"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->PatchImage(ExperimentalTag{}, operation)); +} + StatusOr ImagesTracingConnection::SetIamPolicy( google::cloud::cpp::compute::images::v1::SetIamPolicyRequest const& @@ -130,6 +220,28 @@ ImagesTracingConnection::SetLabels( return internal::EndSpan(std::move(span), child_->SetLabels(request)); } +StatusOr +ImagesTracingConnection::SetLabels( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::images::v1::SetLabelsRequest const& request) { + auto span = + internal::MakeSpan("compute_images_v1::ImagesConnection::SetLabels"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->SetLabels(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +ImagesTracingConnection::SetLabels( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = + internal::MakeSpan("compute_images_v1::ImagesConnection::SetLabels"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->SetLabels(ExperimentalTag{}, operation)); +} + StatusOr ImagesTracingConnection::TestIamPermissions( google::cloud::cpp::compute::images::v1::TestIamPermissionsRequest const& diff --git a/google/cloud/compute/images/v1/internal/images_tracing_connection.h b/google/cloud/compute/images/v1/internal/images_tracing_connection.h index 7821859716e0d..261256ef318b9 100644 --- a/google/cloud/compute/images/v1/internal/images_tracing_connection.h +++ b/google/cloud/compute/images/v1/internal/images_tracing_connection.h @@ -43,10 +43,28 @@ class ImagesTracingConnection : public compute_images_v1::ImagesConnection { google::cloud::cpp::compute::images::v1::DeleteImageRequest const& request) override; + StatusOr DeleteImage( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::images::v1::DeleteImageRequest const& + request) override; + + future> DeleteImage( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> Deprecate( google::cloud::cpp::compute::images::v1::DeprecateRequest const& request) override; + StatusOr Deprecate( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::images::v1::DeprecateRequest const& request) + override; + + future> Deprecate( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StatusOr GetImage( google::cloud::cpp::compute::images::v1::GetImageRequest const& request) override; @@ -63,6 +81,15 @@ class ImagesTracingConnection : public compute_images_v1::ImagesConnection { google::cloud::cpp::compute::images::v1::InsertImageRequest const& request) override; + StatusOr InsertImage( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::images::v1::InsertImageRequest const& + request) override; + + future> InsertImage( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StreamRange ListImages( google::cloud::cpp::compute::images::v1::ListImagesRequest request) override; @@ -71,6 +98,15 @@ class ImagesTracingConnection : public compute_images_v1::ImagesConnection { google::cloud::cpp::compute::images::v1::PatchImageRequest const& request) override; + StatusOr PatchImage( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::images::v1::PatchImageRequest const& request) + override; + + future> PatchImage( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StatusOr SetIamPolicy( google::cloud::cpp::compute::images::v1::SetIamPolicyRequest const& request) override; @@ -79,6 +115,15 @@ class ImagesTracingConnection : public compute_images_v1::ImagesConnection { google::cloud::cpp::compute::images::v1::SetLabelsRequest const& request) override; + StatusOr SetLabels( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::images::v1::SetLabelsRequest const& request) + override; + + future> SetLabels( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StatusOr TestIamPermissions( google::cloud::cpp::compute::images::v1::TestIamPermissionsRequest const& diff --git a/google/cloud/compute/images/v1/mocks/mock_images_connection.h b/google/cloud/compute/images/v1/mocks/mock_images_connection.h index 0fdaebd084f8e..e483cac0cbdb5 100644 --- a/google/cloud/compute/images/v1/mocks/mock_images_connection.h +++ b/google/cloud/compute/images/v1/mocks/mock_images_connection.h @@ -52,12 +52,37 @@ class MockImagesConnection : public compute_images_v1::ImagesConnection { request), (override)); + MOCK_METHOD( + StatusOr, DeleteImage, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::images::v1::DeleteImageRequest const& + request), + (override)); + + MOCK_METHOD(future>, + DeleteImage, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD(future>, Deprecate, (google::cloud::cpp::compute::images::v1::DeprecateRequest const& request), (override)); + MOCK_METHOD(StatusOr, Deprecate, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::images::v1::DeprecateRequest const& + request), + (override)); + + MOCK_METHOD(future>, + Deprecate, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr, GetImage, (google::cloud::cpp::compute::images::v1::GetImageRequest const& request), @@ -81,6 +106,19 @@ class MockImagesConnection : public compute_images_v1::ImagesConnection { request), (override)); + MOCK_METHOD( + StatusOr, InsertImage, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::images::v1::InsertImageRequest const& + request), + (override)); + + MOCK_METHOD(future>, + InsertImage, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD( (StreamRange), ListImages, (google::cloud::cpp::compute::images::v1::ListImagesRequest request), @@ -92,6 +130,18 @@ class MockImagesConnection : public compute_images_v1::ImagesConnection { request), (override)); + MOCK_METHOD(StatusOr, PatchImage, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::images::v1::PatchImageRequest const& + request), + (override)); + + MOCK_METHOD(future>, + PatchImage, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr, SetIamPolicy, (google::cloud::cpp::compute::images::v1::SetIamPolicyRequest const& @@ -104,6 +154,18 @@ class MockImagesConnection : public compute_images_v1::ImagesConnection { request), (override)); + MOCK_METHOD(StatusOr, SetLabels, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::images::v1::SetLabelsRequest const& + request), + (override)); + + MOCK_METHOD(future>, + SetLabels, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr, TestIamPermissions, diff --git a/google/cloud/compute/instance_group_manager_resize_requests/v1/instance_group_manager_resize_requests_connection.cc b/google/cloud/compute/instance_group_manager_resize_requests/v1/instance_group_manager_resize_requests_connection.cc index 48a7afb99c9b3..1f51834357d40 100644 --- a/google/cloud/compute/instance_group_manager_resize_requests/v1/instance_group_manager_resize_requests_connection.cc +++ b/google/cloud/compute/instance_group_manager_resize_requests/v1/instance_group_manager_resize_requests_connection.cc @@ -47,6 +47,23 @@ InstanceGroupManagerResizeRequestsConnection::Cancel( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +InstanceGroupManagerResizeRequestsConnection::Cancel( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instance_group_manager_resize_requests::v1:: + CancelRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +InstanceGroupManagerResizeRequestsConnection::Cancel( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> InstanceGroupManagerResizeRequestsConnection:: DeleteInstanceGroupManagerResizeRequest( @@ -57,6 +74,25 @@ InstanceGroupManagerResizeRequestsConnection:: Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +InstanceGroupManagerResizeRequestsConnection:: + DeleteInstanceGroupManagerResizeRequest( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instance_group_manager_resize_requests:: + v1::DeleteInstanceGroupManagerResizeRequestRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +InstanceGroupManagerResizeRequestsConnection:: + DeleteInstanceGroupManagerResizeRequest( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr InstanceGroupManagerResizeRequestsConnection:: GetInstanceGroupManagerResizeRequest( @@ -75,6 +111,25 @@ InstanceGroupManagerResizeRequestsConnection:: Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +InstanceGroupManagerResizeRequestsConnection:: + InsertInstanceGroupManagerResizeRequest( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instance_group_manager_resize_requests:: + v1::InsertInstanceGroupManagerResizeRequestRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +InstanceGroupManagerResizeRequestsConnection:: + InsertInstanceGroupManagerResizeRequest( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StreamRange InstanceGroupManagerResizeRequestsConnection:: ListInstanceGroupManagerResizeRequests( diff --git a/google/cloud/compute/instance_group_manager_resize_requests/v1/instance_group_manager_resize_requests_connection.h b/google/cloud/compute/instance_group_manager_resize_requests/v1/instance_group_manager_resize_requests_connection.h index 9e9afa03cadff..9e20254904b52 100644 --- a/google/cloud/compute/instance_group_manager_resize_requests/v1/instance_group_manager_resize_requests_connection.h +++ b/google/cloud/compute/instance_group_manager_resize_requests/v1/instance_group_manager_resize_requests_connection.h @@ -23,8 +23,10 @@ #include "google/cloud/compute/instance_group_manager_resize_requests/v1/instance_group_manager_resize_requests_connection_idempotency_policy.h" #include "google/cloud/compute/instance_group_manager_resize_requests/v1/internal/instance_group_manager_resize_requests_retry_traits.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/internal/retry_policy_impl.h" +#include "google/cloud/no_await_tag.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" #include "google/cloud/status_or.h" @@ -211,11 +213,31 @@ class InstanceGroupManagerResizeRequestsConnection { google::cloud::cpp::compute::instance_group_manager_resize_requests::v1:: CancelRequest const& request); + virtual StatusOr Cancel( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instance_group_manager_resize_requests::v1:: + CancelRequest const& request); + + virtual future> Cancel( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual future> DeleteInstanceGroupManagerResizeRequest( google::cloud::cpp::compute::instance_group_manager_resize_requests::v1:: DeleteInstanceGroupManagerResizeRequestRequest const& request); + virtual StatusOr + DeleteInstanceGroupManagerResizeRequest( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instance_group_manager_resize_requests::v1:: + DeleteInstanceGroupManagerResizeRequestRequest const& request); + + virtual future> + DeleteInstanceGroupManagerResizeRequest( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual StatusOr< google::cloud::cpp::compute::v1::InstanceGroupManagerResizeRequest> GetInstanceGroupManagerResizeRequest( @@ -227,6 +249,17 @@ class InstanceGroupManagerResizeRequestsConnection { google::cloud::cpp::compute::instance_group_manager_resize_requests::v1:: InsertInstanceGroupManagerResizeRequestRequest const& request); + virtual StatusOr + InsertInstanceGroupManagerResizeRequest( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instance_group_manager_resize_requests::v1:: + InsertInstanceGroupManagerResizeRequestRequest const& request); + + virtual future> + InsertInstanceGroupManagerResizeRequest( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual StreamRange< google::cloud::cpp::compute::v1::InstanceGroupManagerResizeRequest> ListInstanceGroupManagerResizeRequests( diff --git a/google/cloud/compute/instance_group_manager_resize_requests/v1/internal/instance_group_manager_resize_requests_rest_connection_impl.cc b/google/cloud/compute/instance_group_manager_resize_requests/v1/internal/instance_group_manager_resize_requests_rest_connection_impl.cc index bb8f0d0b82cf8..63f5c6db0a9da 100644 --- a/google/cloud/compute/instance_group_manager_resize_requests/v1/internal/instance_group_manager_resize_requests_rest_connection_impl.cc +++ b/google/cloud/compute/instance_group_manager_resize_requests/v1/internal/instance_group_manager_resize_requests_rest_connection_impl.cc @@ -24,6 +24,7 @@ #include "google/cloud/internal/async_rest_long_running_operation_custom.h" #include "google/cloud/internal/extract_long_running_result.h" #include "google/cloud/internal/pagination_range.h" +#include "google/cloud/internal/rest_lro_helpers.h" #include "google/cloud/internal/rest_retry_loop.h" #include "google/cloud/rest_options.h" #include @@ -109,6 +110,80 @@ InstanceGroupManagerResizeRequestsRestConnectionImpl::Cancel( }); } +StatusOr +InstanceGroupManagerResizeRequestsRestConnectionImpl::Cancel( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instance_group_manager_resize_requests::v1:: + CancelRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->Cancel(request), + [this]( + rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::instance_group_manager_resize_requests:: + v1::CancelRequest const& request) { + return stub_->Cancel(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +InstanceGroupManagerResizeRequestsRestConnectionImpl::Cancel( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::zone_operations::v1::DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::zone_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::zone_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation]( + std::string const&, + google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest& + r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_zone(info.zone); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::zone_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_zone(info.zone); + r.set_operation(info.operation); + }); +} + future> InstanceGroupManagerResizeRequestsRestConnectionImpl:: DeleteInstanceGroupManagerResizeRequest( @@ -173,6 +248,85 @@ InstanceGroupManagerResizeRequestsRestConnectionImpl:: }); } +StatusOr +InstanceGroupManagerResizeRequestsRestConnectionImpl:: + DeleteInstanceGroupManagerResizeRequest( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instance_group_manager_resize_requests:: + v1::DeleteInstanceGroupManagerResizeRequestRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteInstanceGroupManagerResizeRequest( + request), + [this]( + rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::instance_group_manager_resize_requests:: + v1::DeleteInstanceGroupManagerResizeRequestRequest const& + request) { + return stub_->DeleteInstanceGroupManagerResizeRequest(rest_context, + options, request); + }, + *current, request, __func__); +} + +future> +InstanceGroupManagerResizeRequestsRestConnectionImpl:: + DeleteInstanceGroupManagerResizeRequest( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::zone_operations::v1::DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::zone_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::zone_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation]( + std::string const&, + google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest& + r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_zone(info.zone); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::zone_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_zone(info.zone); + r.set_operation(info.operation); + }); +} + StatusOr InstanceGroupManagerResizeRequestsRestConnectionImpl:: GetInstanceGroupManagerResizeRequest( @@ -257,6 +411,85 @@ InstanceGroupManagerResizeRequestsRestConnectionImpl:: }); } +StatusOr +InstanceGroupManagerResizeRequestsRestConnectionImpl:: + InsertInstanceGroupManagerResizeRequest( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instance_group_manager_resize_requests:: + v1::InsertInstanceGroupManagerResizeRequestRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->InsertInstanceGroupManagerResizeRequest( + request), + [this]( + rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::instance_group_manager_resize_requests:: + v1::InsertInstanceGroupManagerResizeRequestRequest const& + request) { + return stub_->InsertInstanceGroupManagerResizeRequest(rest_context, + options, request); + }, + *current, request, __func__); +} + +future> +InstanceGroupManagerResizeRequestsRestConnectionImpl:: + InsertInstanceGroupManagerResizeRequest( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::zone_operations::v1::DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::zone_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::zone_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation]( + std::string const&, + google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest& + r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_zone(info.zone); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::zone_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_zone(info.zone); + r.set_operation(info.operation); + }); +} + StreamRange InstanceGroupManagerResizeRequestsRestConnectionImpl:: ListInstanceGroupManagerResizeRequests( diff --git a/google/cloud/compute/instance_group_manager_resize_requests/v1/internal/instance_group_manager_resize_requests_rest_connection_impl.h b/google/cloud/compute/instance_group_manager_resize_requests/v1/internal/instance_group_manager_resize_requests_rest_connection_impl.h index 7ea624861bfbc..997d420d7bb57 100644 --- a/google/cloud/compute/instance_group_manager_resize_requests/v1/internal/instance_group_manager_resize_requests_rest_connection_impl.h +++ b/google/cloud/compute/instance_group_manager_resize_requests/v1/internal/instance_group_manager_resize_requests_rest_connection_impl.h @@ -59,12 +59,33 @@ class InstanceGroupManagerResizeRequestsRestConnectionImpl google::cloud::cpp::compute::instance_group_manager_resize_requests::v1:: CancelRequest const& request) override; + StatusOr Cancel( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instance_group_manager_resize_requests::v1:: + CancelRequest const& request) override; + + future> Cancel( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> DeleteInstanceGroupManagerResizeRequest( google::cloud::cpp::compute::instance_group_manager_resize_requests::v1:: DeleteInstanceGroupManagerResizeRequestRequest const& request) override; + StatusOr + DeleteInstanceGroupManagerResizeRequest( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instance_group_manager_resize_requests::v1:: + DeleteInstanceGroupManagerResizeRequestRequest const& request) + override; + + future> + DeleteInstanceGroupManagerResizeRequest( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StatusOr GetInstanceGroupManagerResizeRequest( google::cloud::cpp::compute::instance_group_manager_resize_requests::v1:: @@ -76,6 +97,18 @@ class InstanceGroupManagerResizeRequestsRestConnectionImpl InsertInstanceGroupManagerResizeRequestRequest const& request) override; + StatusOr + InsertInstanceGroupManagerResizeRequest( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instance_group_manager_resize_requests::v1:: + InsertInstanceGroupManagerResizeRequestRequest const& request) + override; + + future> + InsertInstanceGroupManagerResizeRequest( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StreamRange< google::cloud::cpp::compute::v1::InstanceGroupManagerResizeRequest> ListInstanceGroupManagerResizeRequests( diff --git a/google/cloud/compute/instance_group_manager_resize_requests/v1/internal/instance_group_manager_resize_requests_tracing_connection.cc b/google/cloud/compute/instance_group_manager_resize_requests/v1/internal/instance_group_manager_resize_requests_tracing_connection.cc index 5b4923550541e..291605af76fe1 100644 --- a/google/cloud/compute/instance_group_manager_resize_requests/v1/internal/instance_group_manager_resize_requests_tracing_connection.cc +++ b/google/cloud/compute/instance_group_manager_resize_requests/v1/internal/instance_group_manager_resize_requests_tracing_connection.cc @@ -48,6 +48,31 @@ InstanceGroupManagerResizeRequestsTracingConnection::Cancel( return internal::EndSpan(std::move(span), child_->Cancel(request)); } +StatusOr +InstanceGroupManagerResizeRequestsTracingConnection::Cancel( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instance_group_manager_resize_requests::v1:: + CancelRequest const& request) { + auto span = internal::MakeSpan( + "compute_instance_group_manager_resize_requests_v1::" + "InstanceGroupManagerResizeRequestsConnection::Cancel"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->Cancel(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +InstanceGroupManagerResizeRequestsTracingConnection::Cancel( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_instance_group_manager_resize_requests_v1::" + "InstanceGroupManagerResizeRequestsConnection::Cancel"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->Cancel(ExperimentalTag{}, operation)); +} + future> InstanceGroupManagerResizeRequestsTracingConnection:: DeleteInstanceGroupManagerResizeRequest( @@ -63,6 +88,37 @@ InstanceGroupManagerResizeRequestsTracingConnection:: child_->DeleteInstanceGroupManagerResizeRequest(request)); } +StatusOr +InstanceGroupManagerResizeRequestsTracingConnection:: + DeleteInstanceGroupManagerResizeRequest( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instance_group_manager_resize_requests:: + v1::DeleteInstanceGroupManagerResizeRequestRequest const& request) { + auto span = internal::MakeSpan( + "compute_instance_group_manager_resize_requests_v1::" + "InstanceGroupManagerResizeRequestsConnection::" + "DeleteInstanceGroupManagerResizeRequest"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan(*span, + child_->DeleteInstanceGroupManagerResizeRequest( + ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +InstanceGroupManagerResizeRequestsTracingConnection:: + DeleteInstanceGroupManagerResizeRequest( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_instance_group_manager_resize_requests_v1::" + "InstanceGroupManagerResizeRequestsConnection::" + "DeleteInstanceGroupManagerResizeRequest"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->DeleteInstanceGroupManagerResizeRequest( + ExperimentalTag{}, operation)); +} + StatusOr InstanceGroupManagerResizeRequestsTracingConnection:: GetInstanceGroupManagerResizeRequest( @@ -92,6 +148,37 @@ InstanceGroupManagerResizeRequestsTracingConnection:: child_->InsertInstanceGroupManagerResizeRequest(request)); } +StatusOr +InstanceGroupManagerResizeRequestsTracingConnection:: + InsertInstanceGroupManagerResizeRequest( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instance_group_manager_resize_requests:: + v1::InsertInstanceGroupManagerResizeRequestRequest const& request) { + auto span = internal::MakeSpan( + "compute_instance_group_manager_resize_requests_v1::" + "InstanceGroupManagerResizeRequestsConnection::" + "InsertInstanceGroupManagerResizeRequest"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan(*span, + child_->InsertInstanceGroupManagerResizeRequest( + ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +InstanceGroupManagerResizeRequestsTracingConnection:: + InsertInstanceGroupManagerResizeRequest( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_instance_group_manager_resize_requests_v1::" + "InstanceGroupManagerResizeRequestsConnection::" + "InsertInstanceGroupManagerResizeRequest"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->InsertInstanceGroupManagerResizeRequest( + ExperimentalTag{}, operation)); +} + StreamRange InstanceGroupManagerResizeRequestsTracingConnection:: ListInstanceGroupManagerResizeRequests( diff --git a/google/cloud/compute/instance_group_manager_resize_requests/v1/internal/instance_group_manager_resize_requests_tracing_connection.h b/google/cloud/compute/instance_group_manager_resize_requests/v1/internal/instance_group_manager_resize_requests_tracing_connection.h index 2981593f9cf1f..3909de065939f 100644 --- a/google/cloud/compute/instance_group_manager_resize_requests/v1/internal/instance_group_manager_resize_requests_tracing_connection.h +++ b/google/cloud/compute/instance_group_manager_resize_requests/v1/internal/instance_group_manager_resize_requests_tracing_connection.h @@ -48,12 +48,33 @@ class InstanceGroupManagerResizeRequestsTracingConnection google::cloud::cpp::compute::instance_group_manager_resize_requests::v1:: CancelRequest const& request) override; + StatusOr Cancel( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instance_group_manager_resize_requests::v1:: + CancelRequest const& request) override; + + future> Cancel( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> DeleteInstanceGroupManagerResizeRequest( google::cloud::cpp::compute::instance_group_manager_resize_requests::v1:: DeleteInstanceGroupManagerResizeRequestRequest const& request) override; + StatusOr + DeleteInstanceGroupManagerResizeRequest( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instance_group_manager_resize_requests::v1:: + DeleteInstanceGroupManagerResizeRequestRequest const& request) + override; + + future> + DeleteInstanceGroupManagerResizeRequest( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StatusOr GetInstanceGroupManagerResizeRequest( google::cloud::cpp::compute::instance_group_manager_resize_requests::v1:: @@ -65,6 +86,18 @@ class InstanceGroupManagerResizeRequestsTracingConnection InsertInstanceGroupManagerResizeRequestRequest const& request) override; + StatusOr + InsertInstanceGroupManagerResizeRequest( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instance_group_manager_resize_requests::v1:: + InsertInstanceGroupManagerResizeRequestRequest const& request) + override; + + future> + InsertInstanceGroupManagerResizeRequest( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StreamRange< google::cloud::cpp::compute::v1::InstanceGroupManagerResizeRequest> ListInstanceGroupManagerResizeRequests( diff --git a/google/cloud/compute/instance_group_manager_resize_requests/v1/mocks/mock_instance_group_manager_resize_requests_connection.h b/google/cloud/compute/instance_group_manager_resize_requests/v1/mocks/mock_instance_group_manager_resize_requests_connection.h index 9462488fdf77a..246abd0e2f20d 100644 --- a/google/cloud/compute/instance_group_manager_resize_requests/v1/mocks/mock_instance_group_manager_resize_requests_connection.h +++ b/google/cloud/compute/instance_group_manager_resize_requests/v1/mocks/mock_instance_group_manager_resize_requests_connection.h @@ -56,6 +56,19 @@ class MockInstanceGroupManagerResizeRequestsConnection CancelRequest const& request), (override)); + MOCK_METHOD( + StatusOr, Cancel, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instance_group_manager_resize_requests::v1:: + CancelRequest const& request), + (override)); + + MOCK_METHOD(future>, + Cancel, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteInstanceGroupManagerResizeRequest, @@ -63,6 +76,20 @@ class MockInstanceGroupManagerResizeRequestsConnection DeleteInstanceGroupManagerResizeRequestRequest const& request), (override)); + MOCK_METHOD( + StatusOr, + DeleteInstanceGroupManagerResizeRequest, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instance_group_manager_resize_requests::v1:: + DeleteInstanceGroupManagerResizeRequestRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteInstanceGroupManagerResizeRequest, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr< google::cloud::cpp::compute::v1::InstanceGroupManagerResizeRequest>, @@ -78,6 +105,20 @@ class MockInstanceGroupManagerResizeRequestsConnection InsertInstanceGroupManagerResizeRequestRequest const& request), (override)); + MOCK_METHOD( + StatusOr, + InsertInstanceGroupManagerResizeRequest, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instance_group_manager_resize_requests::v1:: + InsertInstanceGroupManagerResizeRequestRequest const& request), + (override)); + + MOCK_METHOD(future>, + InsertInstanceGroupManagerResizeRequest, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD( (StreamRange< google::cloud::cpp::compute::v1::InstanceGroupManagerResizeRequest>), diff --git a/google/cloud/compute/instance_group_managers/v1/instance_group_managers_connection.cc b/google/cloud/compute/instance_group_managers/v1/instance_group_managers_connection.cc index a57514f00d4e4..3c900160b2a82 100644 --- a/google/cloud/compute/instance_group_managers/v1/instance_group_managers_connection.cc +++ b/google/cloud/compute/instance_group_managers/v1/instance_group_managers_connection.cc @@ -46,6 +46,23 @@ InstanceGroupManagersConnection::AbandonInstances( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +InstanceGroupManagersConnection::AbandonInstances( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instance_group_managers::v1:: + AbandonInstancesRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +InstanceGroupManagersConnection::AbandonInstances( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StreamRange< std::pair> @@ -66,6 +83,23 @@ InstanceGroupManagersConnection::ApplyUpdatesToInstances( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +InstanceGroupManagersConnection::ApplyUpdatesToInstances( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instance_group_managers::v1:: + ApplyUpdatesToInstancesRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +InstanceGroupManagersConnection::ApplyUpdatesToInstances( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> InstanceGroupManagersConnection::CreateInstances( google::cloud::cpp::compute::instance_group_managers::v1:: @@ -75,6 +109,23 @@ InstanceGroupManagersConnection::CreateInstances( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +InstanceGroupManagersConnection::CreateInstances( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instance_group_managers::v1:: + CreateInstancesRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +InstanceGroupManagersConnection::CreateInstances( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> InstanceGroupManagersConnection::DeleteInstanceGroupManager( google::cloud::cpp::compute::instance_group_managers::v1:: @@ -84,6 +135,23 @@ InstanceGroupManagersConnection::DeleteInstanceGroupManager( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +InstanceGroupManagersConnection::DeleteInstanceGroupManager( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instance_group_managers::v1:: + DeleteInstanceGroupManagerRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +InstanceGroupManagersConnection::DeleteInstanceGroupManager( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> InstanceGroupManagersConnection::DeleteInstances( google::cloud::cpp::compute::instance_group_managers::v1:: @@ -93,6 +161,23 @@ InstanceGroupManagersConnection::DeleteInstances( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +InstanceGroupManagersConnection::DeleteInstances( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instance_group_managers::v1:: + DeleteInstancesRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +InstanceGroupManagersConnection::DeleteInstances( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> InstanceGroupManagersConnection::DeletePerInstanceConfigs( google::cloud::cpp::compute::instance_group_managers::v1:: @@ -102,6 +187,23 @@ InstanceGroupManagersConnection::DeletePerInstanceConfigs( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +InstanceGroupManagersConnection::DeletePerInstanceConfigs( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instance_group_managers::v1:: + DeletePerInstanceConfigsRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +InstanceGroupManagersConnection::DeletePerInstanceConfigs( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr InstanceGroupManagersConnection::GetInstanceGroupManager( google::cloud::cpp::compute::instance_group_managers::v1:: @@ -118,6 +220,23 @@ InstanceGroupManagersConnection::InsertInstanceGroupManager( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +InstanceGroupManagersConnection::InsertInstanceGroupManager( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instance_group_managers::v1:: + InsertInstanceGroupManagerRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +InstanceGroupManagersConnection::InsertInstanceGroupManager( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StreamRange InstanceGroupManagersConnection::ListInstanceGroupManagers( google::cloud::cpp::compute::instance_group_managers::v1:: @@ -159,6 +278,23 @@ InstanceGroupManagersConnection::PatchInstanceGroupManager( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +InstanceGroupManagersConnection::PatchInstanceGroupManager( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instance_group_managers::v1:: + PatchInstanceGroupManagerRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +InstanceGroupManagersConnection::PatchInstanceGroupManager( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> InstanceGroupManagersConnection::PatchPerInstanceConfigs( google::cloud::cpp::compute::instance_group_managers::v1:: @@ -168,6 +304,23 @@ InstanceGroupManagersConnection::PatchPerInstanceConfigs( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +InstanceGroupManagersConnection::PatchPerInstanceConfigs( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instance_group_managers::v1:: + PatchPerInstanceConfigsRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +InstanceGroupManagersConnection::PatchPerInstanceConfigs( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> InstanceGroupManagersConnection::RecreateInstances( google::cloud::cpp::compute::instance_group_managers::v1:: @@ -177,6 +330,23 @@ InstanceGroupManagersConnection::RecreateInstances( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +InstanceGroupManagersConnection::RecreateInstances( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instance_group_managers::v1:: + RecreateInstancesRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +InstanceGroupManagersConnection::RecreateInstances( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> InstanceGroupManagersConnection::Resize( google::cloud::cpp::compute::instance_group_managers::v1:: @@ -186,6 +356,23 @@ InstanceGroupManagersConnection::Resize( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +InstanceGroupManagersConnection::Resize( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instance_group_managers::v1:: + ResizeRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +InstanceGroupManagersConnection::Resize( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> InstanceGroupManagersConnection::SetInstanceTemplate( google::cloud::cpp::compute::instance_group_managers::v1:: @@ -195,6 +382,23 @@ InstanceGroupManagersConnection::SetInstanceTemplate( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +InstanceGroupManagersConnection::SetInstanceTemplate( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instance_group_managers::v1:: + SetInstanceTemplateRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +InstanceGroupManagersConnection::SetInstanceTemplate( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> InstanceGroupManagersConnection::SetTargetPools( google::cloud::cpp::compute::instance_group_managers::v1:: @@ -204,10 +408,44 @@ InstanceGroupManagersConnection::SetTargetPools( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +InstanceGroupManagersConnection::SetTargetPools( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instance_group_managers::v1:: + SetTargetPoolsRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> +InstanceGroupManagersConnection::SetTargetPools( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +InstanceGroupManagersConnection::UpdatePerInstanceConfigs( + google::cloud::cpp::compute::instance_group_managers::v1:: + UpdatePerInstanceConfigsRequest const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +StatusOr InstanceGroupManagersConnection::UpdatePerInstanceConfigs( + ExperimentalTag, NoAwaitTag, google::cloud::cpp::compute::instance_group_managers::v1:: UpdatePerInstanceConfigsRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +InstanceGroupManagersConnection::UpdatePerInstanceConfigs( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { return google::cloud::make_ready_future< StatusOr>( Status(StatusCode::kUnimplemented, "not implemented")); diff --git a/google/cloud/compute/instance_group_managers/v1/instance_group_managers_connection.h b/google/cloud/compute/instance_group_managers/v1/instance_group_managers_connection.h index 36ef12e4f989e..463717e487f14 100644 --- a/google/cloud/compute/instance_group_managers/v1/instance_group_managers_connection.h +++ b/google/cloud/compute/instance_group_managers/v1/instance_group_managers_connection.h @@ -23,8 +23,10 @@ #include "google/cloud/compute/instance_group_managers/v1/instance_group_managers_connection_idempotency_policy.h" #include "google/cloud/compute/instance_group_managers/v1/internal/instance_group_managers_retry_traits.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/internal/retry_policy_impl.h" +#include "google/cloud/no_await_tag.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" #include "google/cloud/status_or.h" @@ -198,6 +200,15 @@ class InstanceGroupManagersConnection { AbandonInstances(google::cloud::cpp::compute::instance_group_managers::v1:: AbandonInstancesRequest const& request); + virtual StatusOr AbandonInstances( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instance_group_managers::v1:: + AbandonInstancesRequest const& request); + + virtual future> + AbandonInstances(ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual StreamRange> @@ -210,24 +221,75 @@ class InstanceGroupManagersConnection { google::cloud::cpp::compute::instance_group_managers::v1:: ApplyUpdatesToInstancesRequest const& request); + virtual StatusOr + ApplyUpdatesToInstances( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instance_group_managers::v1:: + ApplyUpdatesToInstancesRequest const& request); + + virtual future> + ApplyUpdatesToInstances( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual future> CreateInstances(google::cloud::cpp::compute::instance_group_managers::v1:: CreateInstancesRequest const& request); + virtual StatusOr CreateInstances( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instance_group_managers::v1:: + CreateInstancesRequest const& request); + + virtual future> + CreateInstances(ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual future> DeleteInstanceGroupManager( google::cloud::cpp::compute::instance_group_managers::v1:: DeleteInstanceGroupManagerRequest const& request); + virtual StatusOr + DeleteInstanceGroupManager( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instance_group_managers::v1:: + DeleteInstanceGroupManagerRequest const& request); + + virtual future> + DeleteInstanceGroupManager( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual future> DeleteInstances(google::cloud::cpp::compute::instance_group_managers::v1:: DeleteInstancesRequest const& request); + virtual StatusOr DeleteInstances( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instance_group_managers::v1:: + DeleteInstancesRequest const& request); + + virtual future> + DeleteInstances(ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual future> DeletePerInstanceConfigs( google::cloud::cpp::compute::instance_group_managers::v1:: DeletePerInstanceConfigsRequest const& request); + virtual StatusOr + DeletePerInstanceConfigs( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instance_group_managers::v1:: + DeletePerInstanceConfigsRequest const& request); + + virtual future> + DeletePerInstanceConfigs( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual StatusOr GetInstanceGroupManager( google::cloud::cpp::compute::instance_group_managers::v1:: @@ -238,6 +300,17 @@ class InstanceGroupManagersConnection { google::cloud::cpp::compute::instance_group_managers::v1:: InsertInstanceGroupManagerRequest const& request); + virtual StatusOr + InsertInstanceGroupManager( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instance_group_managers::v1:: + InsertInstanceGroupManagerRequest const& request); + + virtual future> + InsertInstanceGroupManager( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual StreamRange ListInstanceGroupManagers( google::cloud::cpp::compute::instance_group_managers::v1:: @@ -262,31 +335,102 @@ class InstanceGroupManagersConnection { google::cloud::cpp::compute::instance_group_managers::v1:: PatchInstanceGroupManagerRequest const& request); + virtual StatusOr + PatchInstanceGroupManager( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instance_group_managers::v1:: + PatchInstanceGroupManagerRequest const& request); + virtual future> + PatchInstanceGroupManager( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + + virtual future> + PatchPerInstanceConfigs( + google::cloud::cpp::compute::instance_group_managers::v1:: + PatchPerInstanceConfigsRequest const& request); + + virtual StatusOr PatchPerInstanceConfigs( + ExperimentalTag, NoAwaitTag, google::cloud::cpp::compute::instance_group_managers::v1:: PatchPerInstanceConfigsRequest const& request); + virtual future> + PatchPerInstanceConfigs( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual future> RecreateInstances(google::cloud::cpp::compute::instance_group_managers::v1:: RecreateInstancesRequest const& request); + virtual StatusOr + RecreateInstances(ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instance_group_managers::v1:: + RecreateInstancesRequest const& request); + + virtual future> + RecreateInstances( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual future> Resize( google::cloud::cpp::compute::instance_group_managers::v1:: ResizeRequest const& request); + virtual StatusOr Resize( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instance_group_managers::v1:: + ResizeRequest const& request); + + virtual future> Resize( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual future> SetInstanceTemplate(google::cloud::cpp::compute::instance_group_managers::v1:: SetInstanceTemplateRequest const& request); + virtual StatusOr + SetInstanceTemplate(ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instance_group_managers::v1:: + SetInstanceTemplateRequest const& request); + + virtual future> + SetInstanceTemplate( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual future> SetTargetPools(google::cloud::cpp::compute::instance_group_managers::v1:: SetTargetPoolsRequest const& request); + virtual StatusOr SetTargetPools( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instance_group_managers::v1:: + SetTargetPoolsRequest const& request); + + virtual future> + SetTargetPools(ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual future> UpdatePerInstanceConfigs( google::cloud::cpp::compute::instance_group_managers::v1:: UpdatePerInstanceConfigsRequest const& request); + + virtual StatusOr + UpdatePerInstanceConfigs( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instance_group_managers::v1:: + UpdatePerInstanceConfigsRequest const& request); + + virtual future> + UpdatePerInstanceConfigs( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); }; GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END diff --git a/google/cloud/compute/instance_group_managers/v1/internal/instance_group_managers_rest_connection_impl.cc b/google/cloud/compute/instance_group_managers/v1/internal/instance_group_managers_rest_connection_impl.cc index 279a238a99a20..39a33ce0b07bf 100644 --- a/google/cloud/compute/instance_group_managers/v1/internal/instance_group_managers_rest_connection_impl.cc +++ b/google/cloud/compute/instance_group_managers/v1/internal/instance_group_managers_rest_connection_impl.cc @@ -24,6 +24,7 @@ #include "google/cloud/internal/async_rest_long_running_operation_custom.h" #include "google/cloud/internal/extract_long_running_result.h" #include "google/cloud/internal/pagination_range.h" +#include "google/cloud/internal/rest_lro_helpers.h" #include "google/cloud/internal/rest_retry_loop.h" #include "google/cloud/rest_options.h" #include @@ -106,6 +107,79 @@ InstanceGroupManagersRestConnectionImpl::AbandonInstances( }); } +StatusOr +InstanceGroupManagersRestConnectionImpl::AbandonInstances( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instance_group_managers::v1:: + AbandonInstancesRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->AbandonInstances(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::instance_group_managers::v1:: + AbandonInstancesRequest const& request) { + return stub_->AbandonInstances(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +InstanceGroupManagersRestConnectionImpl::AbandonInstances( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::zone_operations::v1::DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::zone_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::zone_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation]( + std::string const&, + google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest& + r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_zone(info.zone); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::zone_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_zone(info.zone); + r.set_operation(info.operation); + }); +} + StreamRange< std::pair> @@ -213,6 +287,79 @@ InstanceGroupManagersRestConnectionImpl::ApplyUpdatesToInstances( }); } +StatusOr +InstanceGroupManagersRestConnectionImpl::ApplyUpdatesToInstances( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instance_group_managers::v1:: + ApplyUpdatesToInstancesRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->ApplyUpdatesToInstances(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::instance_group_managers::v1:: + ApplyUpdatesToInstancesRequest const& request) { + return stub_->ApplyUpdatesToInstances(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +InstanceGroupManagersRestConnectionImpl::ApplyUpdatesToInstances( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::zone_operations::v1::DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::zone_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::zone_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation]( + std::string const&, + google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest& + r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_zone(info.zone); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::zone_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_zone(info.zone); + r.set_operation(info.operation); + }); +} + future> InstanceGroupManagersRestConnectionImpl::CreateInstances( google::cloud::cpp::compute::instance_group_managers::v1:: @@ -273,6 +420,79 @@ InstanceGroupManagersRestConnectionImpl::CreateInstances( }); } +StatusOr +InstanceGroupManagersRestConnectionImpl::CreateInstances( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instance_group_managers::v1:: + CreateInstancesRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateInstances(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::instance_group_managers::v1:: + CreateInstancesRequest const& request) { + return stub_->CreateInstances(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +InstanceGroupManagersRestConnectionImpl::CreateInstances( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::zone_operations::v1::DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::zone_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::zone_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation]( + std::string const&, + google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest& + r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_zone(info.zone); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::zone_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_zone(info.zone); + r.set_operation(info.operation); + }); +} + future> InstanceGroupManagersRestConnectionImpl::DeleteInstanceGroupManager( google::cloud::cpp::compute::instance_group_managers::v1:: @@ -333,25 +553,35 @@ InstanceGroupManagersRestConnectionImpl::DeleteInstanceGroupManager( }); } -future> -InstanceGroupManagersRestConnectionImpl::DeleteInstances( +StatusOr +InstanceGroupManagersRestConnectionImpl::DeleteInstanceGroupManager( + ExperimentalTag, NoAwaitTag, google::cloud::cpp::compute::instance_group_managers::v1:: - DeleteInstancesRequest const& request) { + DeleteInstanceGroupManagerRequest const& request) { auto current = google::cloud::internal::SaveCurrentOptions(); - return rest_internal::AsyncRestLongRunningOperation< + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteInstanceGroupManager(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::instance_group_managers::v1:: + DeleteInstanceGroupManagerRequest const& request) { + return stub_->DeleteInstanceGroupManager(rest_context, options, + request); + }, + *current, request, __func__); +} + +future> +InstanceGroupManagersRestConnectionImpl::DeleteInstanceGroupManager( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< google::cloud::cpp::compute::v1::Operation, google::cloud::cpp::compute::v1::Operation, google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest, google::cloud::cpp::compute::zone_operations::v1::DeleteOperationRequest>( - background_->cq(), current, request, - [stub = stub_](CompletionQueue& cq, - std::unique_ptr context, - google::cloud::internal::ImmutableOptions options, - google::cloud::cpp::compute::instance_group_managers::v1:: - DeleteInstancesRequest const& request) { - return stub->AsyncDeleteInstances(cq, std::move(context), - std::move(options), request); - }, + background_->cq(), current, operation, [stub = stub_](CompletionQueue& cq, std::unique_ptr context, google::cloud::internal::ImmutableOptions options, @@ -370,33 +600,37 @@ InstanceGroupManagersRestConnectionImpl::DeleteInstances( }, [](StatusOr op, std::string const&) { return op; }, - retry_policy(*current), backoff_policy(*current), - idempotency_policy(*current)->DeleteInstances(request), polling_policy(*current), __func__, [](google::cloud::cpp::compute::v1::Operation const& op) { return op.status() == "DONE"; }, - [request]( - std::string const& op, + [operation]( + std::string const&, google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest& r) { - r.set_project(request.project()); - r.set_zone(request.zone()); - r.set_operation(op); - }, - [request](std::string const& op, - google::cloud::cpp::compute::zone_operations::v1:: - DeleteOperationRequest& r) { - r.set_project(request.project()); - r.set_zone(request.zone()); - r.set_operation(op); + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_zone(info.zone); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::zone_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_zone(info.zone); + r.set_operation(info.operation); }); } future> -InstanceGroupManagersRestConnectionImpl::DeletePerInstanceConfigs( +InstanceGroupManagersRestConnectionImpl::DeleteInstances( google::cloud::cpp::compute::instance_group_managers::v1:: - DeletePerInstanceConfigsRequest const& request) { + DeleteInstancesRequest const& request) { auto current = google::cloud::internal::SaveCurrentOptions(); return rest_internal::AsyncRestLongRunningOperation< google::cloud::cpp::compute::v1::Operation, @@ -408,9 +642,9 @@ InstanceGroupManagersRestConnectionImpl::DeletePerInstanceConfigs( std::unique_ptr context, google::cloud::internal::ImmutableOptions options, google::cloud::cpp::compute::instance_group_managers::v1:: - DeletePerInstanceConfigsRequest const& request) { - return stub->AsyncDeletePerInstanceConfigs(cq, std::move(context), - std::move(options), request); + DeleteInstancesRequest const& request) { + return stub->AsyncDeleteInstances(cq, std::move(context), + std::move(options), request); }, [stub = stub_](CompletionQueue& cq, std::unique_ptr context, @@ -431,7 +665,7 @@ InstanceGroupManagersRestConnectionImpl::DeletePerInstanceConfigs( [](StatusOr op, std::string const&) { return op; }, retry_policy(*current), backoff_policy(*current), - idempotency_policy(*current)->DeletePerInstanceConfigs(request), + idempotency_policy(*current)->DeleteInstances(request), polling_policy(*current), __func__, [](google::cloud::cpp::compute::v1::Operation const& op) { return op.status() == "DONE"; @@ -453,41 +687,34 @@ InstanceGroupManagersRestConnectionImpl::DeletePerInstanceConfigs( }); } -StatusOr -InstanceGroupManagersRestConnectionImpl::GetInstanceGroupManager( +StatusOr +InstanceGroupManagersRestConnectionImpl::DeleteInstances( + ExperimentalTag, NoAwaitTag, google::cloud::cpp::compute::instance_group_managers::v1:: - GetInstanceGroupManagerRequest const& request) { + DeleteInstancesRequest const& request) { auto current = google::cloud::internal::SaveCurrentOptions(); return google::cloud::rest_internal::RestRetryLoop( retry_policy(*current), backoff_policy(*current), - idempotency_policy(*current)->GetInstanceGroupManager(request), + idempotency_policy(*current)->DeleteInstances(request), [this](rest_internal::RestContext& rest_context, Options const& options, google::cloud::cpp::compute::instance_group_managers::v1:: - GetInstanceGroupManagerRequest const& request) { - return stub_->GetInstanceGroupManager(rest_context, options, request); + DeleteInstancesRequest const& request) { + return stub_->DeleteInstances(rest_context, options, request); }, *current, request, __func__); } future> -InstanceGroupManagersRestConnectionImpl::InsertInstanceGroupManager( - google::cloud::cpp::compute::instance_group_managers::v1:: - InsertInstanceGroupManagerRequest const& request) { +InstanceGroupManagersRestConnectionImpl::DeleteInstances( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { auto current = google::cloud::internal::SaveCurrentOptions(); - return rest_internal::AsyncRestLongRunningOperation< + return rest_internal::AsyncRestAwaitLongRunningOperation< google::cloud::cpp::compute::v1::Operation, google::cloud::cpp::compute::v1::Operation, google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest, google::cloud::cpp::compute::zone_operations::v1::DeleteOperationRequest>( - background_->cq(), current, request, - [stub = stub_](CompletionQueue& cq, - std::unique_ptr context, - google::cloud::internal::ImmutableOptions options, - google::cloud::cpp::compute::instance_group_managers::v1:: - InsertInstanceGroupManagerRequest const& request) { - return stub->AsyncInsertInstanceGroupManager( - cq, std::move(context), std::move(options), request); - }, + background_->cq(), current, operation, [stub = stub_](CompletionQueue& cq, std::unique_ptr context, google::cloud::internal::ImmutableOptions options, @@ -506,43 +733,330 @@ InstanceGroupManagersRestConnectionImpl::InsertInstanceGroupManager( }, [](StatusOr op, std::string const&) { return op; }, - retry_policy(*current), backoff_policy(*current), - idempotency_policy(*current)->InsertInstanceGroupManager(request), polling_policy(*current), __func__, [](google::cloud::cpp::compute::v1::Operation const& op) { return op.status() == "DONE"; }, - [request]( - std::string const& op, + [operation]( + std::string const&, google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest& r) { - r.set_project(request.project()); - r.set_zone(request.zone()); - r.set_operation(op); - }, - [request](std::string const& op, - google::cloud::cpp::compute::zone_operations::v1:: - DeleteOperationRequest& r) { - r.set_project(request.project()); - r.set_zone(request.zone()); - r.set_operation(op); + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_zone(info.zone); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::zone_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_zone(info.zone); + r.set_operation(info.operation); }); } -StreamRange -InstanceGroupManagersRestConnectionImpl::ListInstanceGroupManagers( +future> +InstanceGroupManagersRestConnectionImpl::DeletePerInstanceConfigs( google::cloud::cpp::compute::instance_group_managers::v1:: - ListInstanceGroupManagersRequest request) { - request.clear_page_token(); + DeletePerInstanceConfigsRequest const& request) { auto current = google::cloud::internal::SaveCurrentOptions(); - auto idempotency = - idempotency_policy(*current)->ListInstanceGroupManagers(request); - char const* function_name = __func__; - return google::cloud::internal::MakePaginationRange< - StreamRange>( - current, std::move(request), - [idempotency, function_name, stub = stub_, - retry = std::shared_ptr( + background_->cq(), current, request, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::instance_group_managers::v1:: + DeletePerInstanceConfigsRequest const& request) { + return stub->AsyncDeletePerInstanceConfigs(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::zone_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::zone_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeletePerInstanceConfigs(request), + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [request]( + std::string const& op, + google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest& + r) { + r.set_project(request.project()); + r.set_zone(request.zone()); + r.set_operation(op); + }, + [request](std::string const& op, + google::cloud::cpp::compute::zone_operations::v1:: + DeleteOperationRequest& r) { + r.set_project(request.project()); + r.set_zone(request.zone()); + r.set_operation(op); + }); +} + +StatusOr +InstanceGroupManagersRestConnectionImpl::DeletePerInstanceConfigs( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instance_group_managers::v1:: + DeletePerInstanceConfigsRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeletePerInstanceConfigs(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::instance_group_managers::v1:: + DeletePerInstanceConfigsRequest const& request) { + return stub_->DeletePerInstanceConfigs(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +InstanceGroupManagersRestConnectionImpl::DeletePerInstanceConfigs( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::zone_operations::v1::DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::zone_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::zone_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation]( + std::string const&, + google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest& + r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_zone(info.zone); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::zone_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_zone(info.zone); + r.set_operation(info.operation); + }); +} + +StatusOr +InstanceGroupManagersRestConnectionImpl::GetInstanceGroupManager( + google::cloud::cpp::compute::instance_group_managers::v1:: + GetInstanceGroupManagerRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->GetInstanceGroupManager(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::instance_group_managers::v1:: + GetInstanceGroupManagerRequest const& request) { + return stub_->GetInstanceGroupManager(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +InstanceGroupManagersRestConnectionImpl::InsertInstanceGroupManager( + google::cloud::cpp::compute::instance_group_managers::v1:: + InsertInstanceGroupManagerRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::zone_operations::v1::DeleteOperationRequest>( + background_->cq(), current, request, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::instance_group_managers::v1:: + InsertInstanceGroupManagerRequest const& request) { + return stub->AsyncInsertInstanceGroupManager( + cq, std::move(context), std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::zone_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::zone_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->InsertInstanceGroupManager(request), + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [request]( + std::string const& op, + google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest& + r) { + r.set_project(request.project()); + r.set_zone(request.zone()); + r.set_operation(op); + }, + [request](std::string const& op, + google::cloud::cpp::compute::zone_operations::v1:: + DeleteOperationRequest& r) { + r.set_project(request.project()); + r.set_zone(request.zone()); + r.set_operation(op); + }); +} + +StatusOr +InstanceGroupManagersRestConnectionImpl::InsertInstanceGroupManager( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instance_group_managers::v1:: + InsertInstanceGroupManagerRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->InsertInstanceGroupManager(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::instance_group_managers::v1:: + InsertInstanceGroupManagerRequest const& request) { + return stub_->InsertInstanceGroupManager(rest_context, options, + request); + }, + *current, request, __func__); +} + +future> +InstanceGroupManagersRestConnectionImpl::InsertInstanceGroupManager( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::zone_operations::v1::DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::zone_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::zone_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation]( + std::string const&, + google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest& + r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_zone(info.zone); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::zone_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_zone(info.zone); + r.set_operation(info.operation); + }); +} + +StreamRange +InstanceGroupManagersRestConnectionImpl::ListInstanceGroupManagers( + google::cloud::cpp::compute::instance_group_managers::v1:: + ListInstanceGroupManagersRequest request) { + request.clear_page_token(); + auto current = google::cloud::internal::SaveCurrentOptions(); + auto idempotency = + idempotency_policy(*current)->ListInstanceGroupManagers(request); + char const* function_name = __func__; + return google::cloud::internal::MakePaginationRange< + StreamRange>( + current, std::move(request), + [idempotency, function_name, stub = stub_, + retry = std::shared_ptr( retry_policy(*current)), backoff = std::shared_ptr(backoff_policy(*current))]( @@ -667,9 +1181,275 @@ InstanceGroupManagersRestConnectionImpl::ListPerInstanceConfigs( } future> -InstanceGroupManagersRestConnectionImpl::PatchInstanceGroupManager( +InstanceGroupManagersRestConnectionImpl::PatchInstanceGroupManager( + google::cloud::cpp::compute::instance_group_managers::v1:: + PatchInstanceGroupManagerRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::zone_operations::v1::DeleteOperationRequest>( + background_->cq(), current, request, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::instance_group_managers::v1:: + PatchInstanceGroupManagerRequest const& request) { + return stub->AsyncPatchInstanceGroupManager( + cq, std::move(context), std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::zone_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::zone_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->PatchInstanceGroupManager(request), + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [request]( + std::string const& op, + google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest& + r) { + r.set_project(request.project()); + r.set_zone(request.zone()); + r.set_operation(op); + }, + [request](std::string const& op, + google::cloud::cpp::compute::zone_operations::v1:: + DeleteOperationRequest& r) { + r.set_project(request.project()); + r.set_zone(request.zone()); + r.set_operation(op); + }); +} + +StatusOr +InstanceGroupManagersRestConnectionImpl::PatchInstanceGroupManager( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instance_group_managers::v1:: + PatchInstanceGroupManagerRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->PatchInstanceGroupManager(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::instance_group_managers::v1:: + PatchInstanceGroupManagerRequest const& request) { + return stub_->PatchInstanceGroupManager(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +InstanceGroupManagersRestConnectionImpl::PatchInstanceGroupManager( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::zone_operations::v1::DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::zone_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::zone_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation]( + std::string const&, + google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest& + r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_zone(info.zone); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::zone_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_zone(info.zone); + r.set_operation(info.operation); + }); +} + +future> +InstanceGroupManagersRestConnectionImpl::PatchPerInstanceConfigs( + google::cloud::cpp::compute::instance_group_managers::v1:: + PatchPerInstanceConfigsRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::zone_operations::v1::DeleteOperationRequest>( + background_->cq(), current, request, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::instance_group_managers::v1:: + PatchPerInstanceConfigsRequest const& request) { + return stub->AsyncPatchPerInstanceConfigs(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::zone_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::zone_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->PatchPerInstanceConfigs(request), + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [request]( + std::string const& op, + google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest& + r) { + r.set_project(request.project()); + r.set_zone(request.zone()); + r.set_operation(op); + }, + [request](std::string const& op, + google::cloud::cpp::compute::zone_operations::v1:: + DeleteOperationRequest& r) { + r.set_project(request.project()); + r.set_zone(request.zone()); + r.set_operation(op); + }); +} + +StatusOr +InstanceGroupManagersRestConnectionImpl::PatchPerInstanceConfigs( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instance_group_managers::v1:: + PatchPerInstanceConfigsRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->PatchPerInstanceConfigs(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::instance_group_managers::v1:: + PatchPerInstanceConfigsRequest const& request) { + return stub_->PatchPerInstanceConfigs(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +InstanceGroupManagersRestConnectionImpl::PatchPerInstanceConfigs( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::zone_operations::v1::DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::zone_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::zone_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation]( + std::string const&, + google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest& + r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_zone(info.zone); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::zone_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_zone(info.zone); + r.set_operation(info.operation); + }); +} + +future> +InstanceGroupManagersRestConnectionImpl::RecreateInstances( google::cloud::cpp::compute::instance_group_managers::v1:: - PatchInstanceGroupManagerRequest const& request) { + RecreateInstancesRequest const& request) { auto current = google::cloud::internal::SaveCurrentOptions(); return rest_internal::AsyncRestLongRunningOperation< google::cloud::cpp::compute::v1::Operation, @@ -681,9 +1461,9 @@ InstanceGroupManagersRestConnectionImpl::PatchInstanceGroupManager( std::unique_ptr context, google::cloud::internal::ImmutableOptions options, google::cloud::cpp::compute::instance_group_managers::v1:: - PatchInstanceGroupManagerRequest const& request) { - return stub->AsyncPatchInstanceGroupManager( - cq, std::move(context), std::move(options), request); + RecreateInstancesRequest const& request) { + return stub->AsyncRecreateInstances(cq, std::move(context), + std::move(options), request); }, [stub = stub_](CompletionQueue& cq, std::unique_ptr context, @@ -704,7 +1484,7 @@ InstanceGroupManagersRestConnectionImpl::PatchInstanceGroupManager( [](StatusOr op, std::string const&) { return op; }, retry_policy(*current), backoff_policy(*current), - idempotency_policy(*current)->PatchInstanceGroupManager(request), + idempotency_policy(*current)->RecreateInstances(request), polling_policy(*current), __func__, [](google::cloud::cpp::compute::v1::Operation const& op) { return op.status() == "DONE"; @@ -726,25 +1506,34 @@ InstanceGroupManagersRestConnectionImpl::PatchInstanceGroupManager( }); } -future> -InstanceGroupManagersRestConnectionImpl::PatchPerInstanceConfigs( +StatusOr +InstanceGroupManagersRestConnectionImpl::RecreateInstances( + ExperimentalTag, NoAwaitTag, google::cloud::cpp::compute::instance_group_managers::v1:: - PatchPerInstanceConfigsRequest const& request) { + RecreateInstancesRequest const& request) { auto current = google::cloud::internal::SaveCurrentOptions(); - return rest_internal::AsyncRestLongRunningOperation< + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->RecreateInstances(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::instance_group_managers::v1:: + RecreateInstancesRequest const& request) { + return stub_->RecreateInstances(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +InstanceGroupManagersRestConnectionImpl::RecreateInstances( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< google::cloud::cpp::compute::v1::Operation, google::cloud::cpp::compute::v1::Operation, google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest, google::cloud::cpp::compute::zone_operations::v1::DeleteOperationRequest>( - background_->cq(), current, request, - [stub = stub_](CompletionQueue& cq, - std::unique_ptr context, - google::cloud::internal::ImmutableOptions options, - google::cloud::cpp::compute::instance_group_managers::v1:: - PatchPerInstanceConfigsRequest const& request) { - return stub->AsyncPatchPerInstanceConfigs(cq, std::move(context), - std::move(options), request); - }, + background_->cq(), current, operation, [stub = stub_](CompletionQueue& cq, std::unique_ptr context, google::cloud::internal::ImmutableOptions options, @@ -763,33 +1552,37 @@ InstanceGroupManagersRestConnectionImpl::PatchPerInstanceConfigs( }, [](StatusOr op, std::string const&) { return op; }, - retry_policy(*current), backoff_policy(*current), - idempotency_policy(*current)->PatchPerInstanceConfigs(request), polling_policy(*current), __func__, [](google::cloud::cpp::compute::v1::Operation const& op) { return op.status() == "DONE"; }, - [request]( - std::string const& op, + [operation]( + std::string const&, google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest& r) { - r.set_project(request.project()); - r.set_zone(request.zone()); - r.set_operation(op); - }, - [request](std::string const& op, - google::cloud::cpp::compute::zone_operations::v1:: - DeleteOperationRequest& r) { - r.set_project(request.project()); - r.set_zone(request.zone()); - r.set_operation(op); + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_zone(info.zone); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::zone_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_zone(info.zone); + r.set_operation(info.operation); }); } future> -InstanceGroupManagersRestConnectionImpl::RecreateInstances( +InstanceGroupManagersRestConnectionImpl::Resize( google::cloud::cpp::compute::instance_group_managers::v1:: - RecreateInstancesRequest const& request) { + ResizeRequest const& request) { auto current = google::cloud::internal::SaveCurrentOptions(); return rest_internal::AsyncRestLongRunningOperation< google::cloud::cpp::compute::v1::Operation, @@ -801,9 +1594,9 @@ InstanceGroupManagersRestConnectionImpl::RecreateInstances( std::unique_ptr context, google::cloud::internal::ImmutableOptions options, google::cloud::cpp::compute::instance_group_managers::v1:: - RecreateInstancesRequest const& request) { - return stub->AsyncRecreateInstances(cq, std::move(context), - std::move(options), request); + ResizeRequest const& request) { + return stub->AsyncResize(cq, std::move(context), std::move(options), + request); }, [stub = stub_](CompletionQueue& cq, std::unique_ptr context, @@ -824,8 +1617,8 @@ InstanceGroupManagersRestConnectionImpl::RecreateInstances( [](StatusOr op, std::string const&) { return op; }, retry_policy(*current), backoff_policy(*current), - idempotency_policy(*current)->RecreateInstances(request), - polling_policy(*current), __func__, + idempotency_policy(*current)->Resize(request), polling_policy(*current), + __func__, [](google::cloud::cpp::compute::v1::Operation const& op) { return op.status() == "DONE"; }, @@ -846,25 +1639,34 @@ InstanceGroupManagersRestConnectionImpl::RecreateInstances( }); } -future> +StatusOr InstanceGroupManagersRestConnectionImpl::Resize( + ExperimentalTag, NoAwaitTag, google::cloud::cpp::compute::instance_group_managers::v1:: ResizeRequest const& request) { auto current = google::cloud::internal::SaveCurrentOptions(); - return rest_internal::AsyncRestLongRunningOperation< + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->Resize(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::instance_group_managers::v1:: + ResizeRequest const& request) { + return stub_->Resize(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +InstanceGroupManagersRestConnectionImpl::Resize( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< google::cloud::cpp::compute::v1::Operation, google::cloud::cpp::compute::v1::Operation, google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest, google::cloud::cpp::compute::zone_operations::v1::DeleteOperationRequest>( - background_->cq(), current, request, - [stub = stub_](CompletionQueue& cq, - std::unique_ptr context, - google::cloud::internal::ImmutableOptions options, - google::cloud::cpp::compute::instance_group_managers::v1:: - ResizeRequest const& request) { - return stub->AsyncResize(cq, std::move(context), std::move(options), - request); - }, + background_->cq(), current, operation, [stub = stub_](CompletionQueue& cq, std::unique_ptr context, google::cloud::internal::ImmutableOptions options, @@ -883,26 +1685,30 @@ InstanceGroupManagersRestConnectionImpl::Resize( }, [](StatusOr op, std::string const&) { return op; }, - retry_policy(*current), backoff_policy(*current), - idempotency_policy(*current)->Resize(request), polling_policy(*current), - __func__, + polling_policy(*current), __func__, [](google::cloud::cpp::compute::v1::Operation const& op) { return op.status() == "DONE"; }, - [request]( - std::string const& op, + [operation]( + std::string const&, google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest& r) { - r.set_project(request.project()); - r.set_zone(request.zone()); - r.set_operation(op); - }, - [request](std::string const& op, - google::cloud::cpp::compute::zone_operations::v1:: - DeleteOperationRequest& r) { - r.set_project(request.project()); - r.set_zone(request.zone()); - r.set_operation(op); + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_zone(info.zone); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::zone_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_zone(info.zone); + r.set_operation(info.operation); }); } @@ -966,6 +1772,79 @@ InstanceGroupManagersRestConnectionImpl::SetInstanceTemplate( }); } +StatusOr +InstanceGroupManagersRestConnectionImpl::SetInstanceTemplate( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instance_group_managers::v1:: + SetInstanceTemplateRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->SetInstanceTemplate(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::instance_group_managers::v1:: + SetInstanceTemplateRequest const& request) { + return stub_->SetInstanceTemplate(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +InstanceGroupManagersRestConnectionImpl::SetInstanceTemplate( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::zone_operations::v1::DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::zone_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::zone_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation]( + std::string const&, + google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest& + r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_zone(info.zone); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::zone_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_zone(info.zone); + r.set_operation(info.operation); + }); +} + future> InstanceGroupManagersRestConnectionImpl::SetTargetPools( google::cloud::cpp::compute::instance_group_managers::v1:: @@ -1026,6 +1905,79 @@ InstanceGroupManagersRestConnectionImpl::SetTargetPools( }); } +StatusOr +InstanceGroupManagersRestConnectionImpl::SetTargetPools( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instance_group_managers::v1:: + SetTargetPoolsRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->SetTargetPools(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::instance_group_managers::v1:: + SetTargetPoolsRequest const& request) { + return stub_->SetTargetPools(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +InstanceGroupManagersRestConnectionImpl::SetTargetPools( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::zone_operations::v1::DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::zone_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::zone_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation]( + std::string const&, + google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest& + r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_zone(info.zone); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::zone_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_zone(info.zone); + r.set_operation(info.operation); + }); +} + future> InstanceGroupManagersRestConnectionImpl::UpdatePerInstanceConfigs( google::cloud::cpp::compute::instance_group_managers::v1:: @@ -1086,6 +2038,79 @@ InstanceGroupManagersRestConnectionImpl::UpdatePerInstanceConfigs( }); } +StatusOr +InstanceGroupManagersRestConnectionImpl::UpdatePerInstanceConfigs( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instance_group_managers::v1:: + UpdatePerInstanceConfigsRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UpdatePerInstanceConfigs(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::instance_group_managers::v1:: + UpdatePerInstanceConfigsRequest const& request) { + return stub_->UpdatePerInstanceConfigs(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +InstanceGroupManagersRestConnectionImpl::UpdatePerInstanceConfigs( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::zone_operations::v1::DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::zone_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::zone_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation]( + std::string const&, + google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest& + r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_zone(info.zone); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::zone_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_zone(info.zone); + r.set_operation(info.operation); + }); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace compute_instance_group_managers_v1_internal } // namespace cloud diff --git a/google/cloud/compute/instance_group_managers/v1/internal/instance_group_managers_rest_connection_impl.h b/google/cloud/compute/instance_group_managers/v1/internal/instance_group_managers_rest_connection_impl.h index 45c4eeda18865..2c3a16ba4b265 100644 --- a/google/cloud/compute/instance_group_managers/v1/internal/instance_group_managers_rest_connection_impl.h +++ b/google/cloud/compute/instance_group_managers/v1/internal/instance_group_managers_rest_connection_impl.h @@ -58,6 +58,15 @@ class InstanceGroupManagersRestConnectionImpl google::cloud::cpp::compute::instance_group_managers::v1:: AbandonInstancesRequest const& request) override; + StatusOr AbandonInstances( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instance_group_managers::v1:: + AbandonInstancesRequest const& request) override; + + future> AbandonInstances( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StreamRange> AggregatedListInstanceGroupManagers( @@ -69,24 +78,73 @@ class InstanceGroupManagersRestConnectionImpl google::cloud::cpp::compute::instance_group_managers::v1:: ApplyUpdatesToInstancesRequest const& request) override; + StatusOr ApplyUpdatesToInstances( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instance_group_managers::v1:: + ApplyUpdatesToInstancesRequest const& request) override; + + future> + ApplyUpdatesToInstances( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> CreateInstances( google::cloud::cpp::compute::instance_group_managers::v1:: CreateInstancesRequest const& request) override; + StatusOr CreateInstances( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instance_group_managers::v1:: + CreateInstancesRequest const& request) override; + + future> CreateInstances( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> DeleteInstanceGroupManager( google::cloud::cpp::compute::instance_group_managers::v1:: DeleteInstanceGroupManagerRequest const& request) override; + StatusOr + DeleteInstanceGroupManager( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instance_group_managers::v1:: + DeleteInstanceGroupManagerRequest const& request) override; + + future> + DeleteInstanceGroupManager( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> DeleteInstances( google::cloud::cpp::compute::instance_group_managers::v1:: DeleteInstancesRequest const& request) override; + StatusOr DeleteInstances( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instance_group_managers::v1:: + DeleteInstancesRequest const& request) override; + + future> DeleteInstances( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> DeletePerInstanceConfigs( google::cloud::cpp::compute::instance_group_managers::v1:: DeletePerInstanceConfigsRequest const& request) override; + StatusOr DeletePerInstanceConfigs( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instance_group_managers::v1:: + DeletePerInstanceConfigsRequest const& request) override; + + future> + DeletePerInstanceConfigs( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StatusOr GetInstanceGroupManager( google::cloud::cpp::compute::instance_group_managers::v1:: @@ -97,6 +155,17 @@ class InstanceGroupManagersRestConnectionImpl google::cloud::cpp::compute::instance_group_managers::v1:: InsertInstanceGroupManagerRequest const& request) override; + StatusOr + InsertInstanceGroupManager( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instance_group_managers::v1:: + InsertInstanceGroupManagerRequest const& request) override; + + future> + InsertInstanceGroupManager( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StreamRange ListInstanceGroupManagers( google::cloud::cpp::compute::instance_group_managers::v1:: @@ -122,32 +191,101 @@ class InstanceGroupManagersRestConnectionImpl google::cloud::cpp::compute::instance_group_managers::v1:: PatchInstanceGroupManagerRequest const& request) override; + StatusOr + PatchInstanceGroupManager( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instance_group_managers::v1:: + PatchInstanceGroupManagerRequest const& request) override; + + future> + PatchInstanceGroupManager( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> PatchPerInstanceConfigs( google::cloud::cpp::compute::instance_group_managers::v1:: PatchPerInstanceConfigsRequest const& request) override; + StatusOr PatchPerInstanceConfigs( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instance_group_managers::v1:: + PatchPerInstanceConfigsRequest const& request) override; + + future> + PatchPerInstanceConfigs( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> RecreateInstances(google::cloud::cpp::compute::instance_group_managers::v1:: RecreateInstancesRequest const& request) override; + StatusOr RecreateInstances( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instance_group_managers::v1:: + RecreateInstancesRequest const& request) override; + + future> + RecreateInstances( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> Resize( google::cloud::cpp::compute::instance_group_managers::v1:: ResizeRequest const& request) override; + StatusOr Resize( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instance_group_managers::v1:: + ResizeRequest const& request) override; + + future> Resize( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> SetInstanceTemplate(google::cloud::cpp::compute::instance_group_managers::v1:: SetInstanceTemplateRequest const& request) override; + StatusOr SetInstanceTemplate( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instance_group_managers::v1:: + SetInstanceTemplateRequest const& request) override; + + future> + SetInstanceTemplate( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> SetTargetPools( google::cloud::cpp::compute::instance_group_managers::v1:: SetTargetPoolsRequest const& request) override; + StatusOr SetTargetPools( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instance_group_managers::v1:: + SetTargetPoolsRequest const& request) override; + + future> SetTargetPools( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> UpdatePerInstanceConfigs( google::cloud::cpp::compute::instance_group_managers::v1:: UpdatePerInstanceConfigsRequest const& request) override; + StatusOr UpdatePerInstanceConfigs( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instance_group_managers::v1:: + UpdatePerInstanceConfigsRequest const& request) override; + + future> + UpdatePerInstanceConfigs( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + private: static std::unique_ptr< compute_instance_group_managers_v1::InstanceGroupManagersRetryPolicy> diff --git a/google/cloud/compute/instance_group_managers/v1/internal/instance_group_managers_tracing_connection.cc b/google/cloud/compute/instance_group_managers/v1/internal/instance_group_managers_tracing_connection.cc index 8f4bf08088143..55d151f835a15 100644 --- a/google/cloud/compute/instance_group_managers/v1/internal/instance_group_managers_tracing_connection.cc +++ b/google/cloud/compute/instance_group_managers/v1/internal/instance_group_managers_tracing_connection.cc @@ -47,6 +47,32 @@ InstanceGroupManagersTracingConnection::AbandonInstances( return internal::EndSpan(std::move(span), child_->AbandonInstances(request)); } +StatusOr +InstanceGroupManagersTracingConnection::AbandonInstances( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instance_group_managers::v1:: + AbandonInstancesRequest const& request) { + auto span = internal::MakeSpan( + "compute_instance_group_managers_v1::InstanceGroupManagersConnection::" + "AbandonInstances"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->AbandonInstances(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +InstanceGroupManagersTracingConnection::AbandonInstances( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_instance_group_managers_v1::InstanceGroupManagersConnection::" + "AbandonInstances"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->AbandonInstances(ExperimentalTag{}, operation)); +} + StreamRange< std::pair> @@ -76,6 +102,32 @@ InstanceGroupManagersTracingConnection::ApplyUpdatesToInstances( child_->ApplyUpdatesToInstances(request)); } +StatusOr +InstanceGroupManagersTracingConnection::ApplyUpdatesToInstances( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instance_group_managers::v1:: + ApplyUpdatesToInstancesRequest const& request) { + auto span = internal::MakeSpan( + "compute_instance_group_managers_v1::InstanceGroupManagersConnection::" + "ApplyUpdatesToInstances"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->ApplyUpdatesToInstances(ExperimentalTag{}, NoAwaitTag{}, + request)); +} + +future> +InstanceGroupManagersTracingConnection::ApplyUpdatesToInstances( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_instance_group_managers_v1::InstanceGroupManagersConnection::" + "ApplyUpdatesToInstances"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->ApplyUpdatesToInstances( + ExperimentalTag{}, operation)); +} + future> InstanceGroupManagersTracingConnection::CreateInstances( google::cloud::cpp::compute::instance_group_managers::v1:: @@ -87,6 +139,31 @@ InstanceGroupManagersTracingConnection::CreateInstances( return internal::EndSpan(std::move(span), child_->CreateInstances(request)); } +StatusOr +InstanceGroupManagersTracingConnection::CreateInstances( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instance_group_managers::v1:: + CreateInstancesRequest const& request) { + auto span = internal::MakeSpan( + "compute_instance_group_managers_v1::InstanceGroupManagersConnection::" + "CreateInstances"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->CreateInstances(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +InstanceGroupManagersTracingConnection::CreateInstances( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_instance_group_managers_v1::InstanceGroupManagersConnection::" + "CreateInstances"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->CreateInstances(ExperimentalTag{}, operation)); +} + future> InstanceGroupManagersTracingConnection::DeleteInstanceGroupManager( google::cloud::cpp::compute::instance_group_managers::v1:: @@ -99,6 +176,32 @@ InstanceGroupManagersTracingConnection::DeleteInstanceGroupManager( child_->DeleteInstanceGroupManager(request)); } +StatusOr +InstanceGroupManagersTracingConnection::DeleteInstanceGroupManager( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instance_group_managers::v1:: + DeleteInstanceGroupManagerRequest const& request) { + auto span = internal::MakeSpan( + "compute_instance_group_managers_v1::InstanceGroupManagersConnection::" + "DeleteInstanceGroupManager"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->DeleteInstanceGroupManager(ExperimentalTag{}, NoAwaitTag{}, + request)); +} + +future> +InstanceGroupManagersTracingConnection::DeleteInstanceGroupManager( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_instance_group_managers_v1::InstanceGroupManagersConnection::" + "DeleteInstanceGroupManager"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->DeleteInstanceGroupManager( + ExperimentalTag{}, operation)); +} + future> InstanceGroupManagersTracingConnection::DeleteInstances( google::cloud::cpp::compute::instance_group_managers::v1:: @@ -110,6 +213,31 @@ InstanceGroupManagersTracingConnection::DeleteInstances( return internal::EndSpan(std::move(span), child_->DeleteInstances(request)); } +StatusOr +InstanceGroupManagersTracingConnection::DeleteInstances( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instance_group_managers::v1:: + DeleteInstancesRequest const& request) { + auto span = internal::MakeSpan( + "compute_instance_group_managers_v1::InstanceGroupManagersConnection::" + "DeleteInstances"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->DeleteInstances(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +InstanceGroupManagersTracingConnection::DeleteInstances( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_instance_group_managers_v1::InstanceGroupManagersConnection::" + "DeleteInstances"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->DeleteInstances(ExperimentalTag{}, operation)); +} + future> InstanceGroupManagersTracingConnection::DeletePerInstanceConfigs( google::cloud::cpp::compute::instance_group_managers::v1:: @@ -122,6 +250,32 @@ InstanceGroupManagersTracingConnection::DeletePerInstanceConfigs( child_->DeletePerInstanceConfigs(request)); } +StatusOr +InstanceGroupManagersTracingConnection::DeletePerInstanceConfigs( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instance_group_managers::v1:: + DeletePerInstanceConfigsRequest const& request) { + auto span = internal::MakeSpan( + "compute_instance_group_managers_v1::InstanceGroupManagersConnection::" + "DeletePerInstanceConfigs"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->DeletePerInstanceConfigs(ExperimentalTag{}, NoAwaitTag{}, + request)); +} + +future> +InstanceGroupManagersTracingConnection::DeletePerInstanceConfigs( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_instance_group_managers_v1::InstanceGroupManagersConnection::" + "DeletePerInstanceConfigs"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->DeletePerInstanceConfigs( + ExperimentalTag{}, operation)); +} + StatusOr InstanceGroupManagersTracingConnection::GetInstanceGroupManager( google::cloud::cpp::compute::instance_group_managers::v1:: @@ -145,6 +299,32 @@ InstanceGroupManagersTracingConnection::InsertInstanceGroupManager( child_->InsertInstanceGroupManager(request)); } +StatusOr +InstanceGroupManagersTracingConnection::InsertInstanceGroupManager( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instance_group_managers::v1:: + InsertInstanceGroupManagerRequest const& request) { + auto span = internal::MakeSpan( + "compute_instance_group_managers_v1::InstanceGroupManagersConnection::" + "InsertInstanceGroupManager"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->InsertInstanceGroupManager(ExperimentalTag{}, NoAwaitTag{}, + request)); +} + +future> +InstanceGroupManagersTracingConnection::InsertInstanceGroupManager( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_instance_group_managers_v1::InstanceGroupManagersConnection::" + "InsertInstanceGroupManager"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->InsertInstanceGroupManager( + ExperimentalTag{}, operation)); +} + StreamRange InstanceGroupManagersTracingConnection::ListInstanceGroupManagers( google::cloud::cpp::compute::instance_group_managers::v1:: @@ -211,6 +391,32 @@ InstanceGroupManagersTracingConnection::PatchInstanceGroupManager( child_->PatchInstanceGroupManager(request)); } +StatusOr +InstanceGroupManagersTracingConnection::PatchInstanceGroupManager( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instance_group_managers::v1:: + PatchInstanceGroupManagerRequest const& request) { + auto span = internal::MakeSpan( + "compute_instance_group_managers_v1::InstanceGroupManagersConnection::" + "PatchInstanceGroupManager"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->PatchInstanceGroupManager(ExperimentalTag{}, NoAwaitTag{}, + request)); +} + +future> +InstanceGroupManagersTracingConnection::PatchInstanceGroupManager( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_instance_group_managers_v1::InstanceGroupManagersConnection::" + "PatchInstanceGroupManager"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->PatchInstanceGroupManager( + ExperimentalTag{}, operation)); +} + future> InstanceGroupManagersTracingConnection::PatchPerInstanceConfigs( google::cloud::cpp::compute::instance_group_managers::v1:: @@ -223,6 +429,32 @@ InstanceGroupManagersTracingConnection::PatchPerInstanceConfigs( child_->PatchPerInstanceConfigs(request)); } +StatusOr +InstanceGroupManagersTracingConnection::PatchPerInstanceConfigs( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instance_group_managers::v1:: + PatchPerInstanceConfigsRequest const& request) { + auto span = internal::MakeSpan( + "compute_instance_group_managers_v1::InstanceGroupManagersConnection::" + "PatchPerInstanceConfigs"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->PatchPerInstanceConfigs(ExperimentalTag{}, NoAwaitTag{}, + request)); +} + +future> +InstanceGroupManagersTracingConnection::PatchPerInstanceConfigs( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_instance_group_managers_v1::InstanceGroupManagersConnection::" + "PatchPerInstanceConfigs"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->PatchPerInstanceConfigs( + ExperimentalTag{}, operation)); +} + future> InstanceGroupManagersTracingConnection::RecreateInstances( google::cloud::cpp::compute::instance_group_managers::v1:: @@ -234,6 +466,32 @@ InstanceGroupManagersTracingConnection::RecreateInstances( return internal::EndSpan(std::move(span), child_->RecreateInstances(request)); } +StatusOr +InstanceGroupManagersTracingConnection::RecreateInstances( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instance_group_managers::v1:: + RecreateInstancesRequest const& request) { + auto span = internal::MakeSpan( + "compute_instance_group_managers_v1::InstanceGroupManagersConnection::" + "RecreateInstances"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->RecreateInstances(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +InstanceGroupManagersTracingConnection::RecreateInstances( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_instance_group_managers_v1::InstanceGroupManagersConnection::" + "RecreateInstances"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->RecreateInstances(ExperimentalTag{}, operation)); +} + future> InstanceGroupManagersTracingConnection::Resize( google::cloud::cpp::compute::instance_group_managers::v1:: @@ -245,6 +503,31 @@ InstanceGroupManagersTracingConnection::Resize( return internal::EndSpan(std::move(span), child_->Resize(request)); } +StatusOr +InstanceGroupManagersTracingConnection::Resize( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instance_group_managers::v1:: + ResizeRequest const& request) { + auto span = internal::MakeSpan( + "compute_instance_group_managers_v1::InstanceGroupManagersConnection::" + "Resize"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->Resize(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +InstanceGroupManagersTracingConnection::Resize( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_instance_group_managers_v1::InstanceGroupManagersConnection::" + "Resize"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->Resize(ExperimentalTag{}, operation)); +} + future> InstanceGroupManagersTracingConnection::SetInstanceTemplate( google::cloud::cpp::compute::instance_group_managers::v1:: @@ -257,6 +540,32 @@ InstanceGroupManagersTracingConnection::SetInstanceTemplate( child_->SetInstanceTemplate(request)); } +StatusOr +InstanceGroupManagersTracingConnection::SetInstanceTemplate( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instance_group_managers::v1:: + SetInstanceTemplateRequest const& request) { + auto span = internal::MakeSpan( + "compute_instance_group_managers_v1::InstanceGroupManagersConnection::" + "SetInstanceTemplate"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->SetInstanceTemplate(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +InstanceGroupManagersTracingConnection::SetInstanceTemplate( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_instance_group_managers_v1::InstanceGroupManagersConnection::" + "SetInstanceTemplate"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->SetInstanceTemplate( + ExperimentalTag{}, operation)); +} + future> InstanceGroupManagersTracingConnection::SetTargetPools( google::cloud::cpp::compute::instance_group_managers::v1:: @@ -268,6 +577,31 @@ InstanceGroupManagersTracingConnection::SetTargetPools( return internal::EndSpan(std::move(span), child_->SetTargetPools(request)); } +StatusOr +InstanceGroupManagersTracingConnection::SetTargetPools( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instance_group_managers::v1:: + SetTargetPoolsRequest const& request) { + auto span = internal::MakeSpan( + "compute_instance_group_managers_v1::InstanceGroupManagersConnection::" + "SetTargetPools"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->SetTargetPools(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +InstanceGroupManagersTracingConnection::SetTargetPools( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_instance_group_managers_v1::InstanceGroupManagersConnection::" + "SetTargetPools"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->SetTargetPools(ExperimentalTag{}, operation)); +} + future> InstanceGroupManagersTracingConnection::UpdatePerInstanceConfigs( google::cloud::cpp::compute::instance_group_managers::v1:: @@ -280,6 +614,32 @@ InstanceGroupManagersTracingConnection::UpdatePerInstanceConfigs( child_->UpdatePerInstanceConfigs(request)); } +StatusOr +InstanceGroupManagersTracingConnection::UpdatePerInstanceConfigs( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instance_group_managers::v1:: + UpdatePerInstanceConfigsRequest const& request) { + auto span = internal::MakeSpan( + "compute_instance_group_managers_v1::InstanceGroupManagersConnection::" + "UpdatePerInstanceConfigs"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->UpdatePerInstanceConfigs(ExperimentalTag{}, NoAwaitTag{}, + request)); +} + +future> +InstanceGroupManagersTracingConnection::UpdatePerInstanceConfigs( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_instance_group_managers_v1::InstanceGroupManagersConnection::" + "UpdatePerInstanceConfigs"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->UpdatePerInstanceConfigs( + ExperimentalTag{}, operation)); +} + #endif // GOOGLE_CLOUD_CPP_HAVE_OPENTELEMETRY std::shared_ptr< diff --git a/google/cloud/compute/instance_group_managers/v1/internal/instance_group_managers_tracing_connection.h b/google/cloud/compute/instance_group_managers/v1/internal/instance_group_managers_tracing_connection.h index 61826d110a1cc..4892da9a39cb6 100644 --- a/google/cloud/compute/instance_group_managers/v1/internal/instance_group_managers_tracing_connection.h +++ b/google/cloud/compute/instance_group_managers/v1/internal/instance_group_managers_tracing_connection.h @@ -48,6 +48,15 @@ class InstanceGroupManagersTracingConnection google::cloud::cpp::compute::instance_group_managers::v1:: AbandonInstancesRequest const& request) override; + StatusOr AbandonInstances( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instance_group_managers::v1:: + AbandonInstancesRequest const& request) override; + + future> AbandonInstances( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StreamRange> AggregatedListInstanceGroupManagers( @@ -59,24 +68,73 @@ class InstanceGroupManagersTracingConnection google::cloud::cpp::compute::instance_group_managers::v1:: ApplyUpdatesToInstancesRequest const& request) override; + StatusOr ApplyUpdatesToInstances( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instance_group_managers::v1:: + ApplyUpdatesToInstancesRequest const& request) override; + + future> + ApplyUpdatesToInstances( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> CreateInstances( google::cloud::cpp::compute::instance_group_managers::v1:: CreateInstancesRequest const& request) override; + StatusOr CreateInstances( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instance_group_managers::v1:: + CreateInstancesRequest const& request) override; + + future> CreateInstances( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> DeleteInstanceGroupManager( google::cloud::cpp::compute::instance_group_managers::v1:: DeleteInstanceGroupManagerRequest const& request) override; + StatusOr + DeleteInstanceGroupManager( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instance_group_managers::v1:: + DeleteInstanceGroupManagerRequest const& request) override; + + future> + DeleteInstanceGroupManager( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> DeleteInstances( google::cloud::cpp::compute::instance_group_managers::v1:: DeleteInstancesRequest const& request) override; + StatusOr DeleteInstances( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instance_group_managers::v1:: + DeleteInstancesRequest const& request) override; + + future> DeleteInstances( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> DeletePerInstanceConfigs( google::cloud::cpp::compute::instance_group_managers::v1:: DeletePerInstanceConfigsRequest const& request) override; + StatusOr DeletePerInstanceConfigs( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instance_group_managers::v1:: + DeletePerInstanceConfigsRequest const& request) override; + + future> + DeletePerInstanceConfigs( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StatusOr GetInstanceGroupManager( google::cloud::cpp::compute::instance_group_managers::v1:: @@ -87,6 +145,17 @@ class InstanceGroupManagersTracingConnection google::cloud::cpp::compute::instance_group_managers::v1:: InsertInstanceGroupManagerRequest const& request) override; + StatusOr + InsertInstanceGroupManager( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instance_group_managers::v1:: + InsertInstanceGroupManagerRequest const& request) override; + + future> + InsertInstanceGroupManager( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StreamRange ListInstanceGroupManagers( google::cloud::cpp::compute::instance_group_managers::v1:: @@ -112,32 +181,101 @@ class InstanceGroupManagersTracingConnection google::cloud::cpp::compute::instance_group_managers::v1:: PatchInstanceGroupManagerRequest const& request) override; + StatusOr + PatchInstanceGroupManager( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instance_group_managers::v1:: + PatchInstanceGroupManagerRequest const& request) override; + + future> + PatchInstanceGroupManager( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> PatchPerInstanceConfigs( google::cloud::cpp::compute::instance_group_managers::v1:: PatchPerInstanceConfigsRequest const& request) override; + StatusOr PatchPerInstanceConfigs( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instance_group_managers::v1:: + PatchPerInstanceConfigsRequest const& request) override; + + future> + PatchPerInstanceConfigs( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> RecreateInstances(google::cloud::cpp::compute::instance_group_managers::v1:: RecreateInstancesRequest const& request) override; + StatusOr RecreateInstances( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instance_group_managers::v1:: + RecreateInstancesRequest const& request) override; + + future> + RecreateInstances( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> Resize( google::cloud::cpp::compute::instance_group_managers::v1:: ResizeRequest const& request) override; + StatusOr Resize( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instance_group_managers::v1:: + ResizeRequest const& request) override; + + future> Resize( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> SetInstanceTemplate(google::cloud::cpp::compute::instance_group_managers::v1:: SetInstanceTemplateRequest const& request) override; + StatusOr SetInstanceTemplate( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instance_group_managers::v1:: + SetInstanceTemplateRequest const& request) override; + + future> + SetInstanceTemplate( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> SetTargetPools( google::cloud::cpp::compute::instance_group_managers::v1:: SetTargetPoolsRequest const& request) override; + StatusOr SetTargetPools( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instance_group_managers::v1:: + SetTargetPoolsRequest const& request) override; + + future> SetTargetPools( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> UpdatePerInstanceConfigs( google::cloud::cpp::compute::instance_group_managers::v1:: UpdatePerInstanceConfigsRequest const& request) override; + StatusOr UpdatePerInstanceConfigs( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instance_group_managers::v1:: + UpdatePerInstanceConfigsRequest const& request) override; + + future> + UpdatePerInstanceConfigs( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + private: std::shared_ptr< compute_instance_group_managers_v1::InstanceGroupManagersConnection> diff --git a/google/cloud/compute/instance_group_managers/v1/mocks/mock_instance_group_managers_connection.h b/google/cloud/compute/instance_group_managers/v1/mocks/mock_instance_group_managers_connection.h index a0e597889ddd0..d2c572f88dad6 100644 --- a/google/cloud/compute/instance_group_managers/v1/mocks/mock_instance_group_managers_connection.h +++ b/google/cloud/compute/instance_group_managers/v1/mocks/mock_instance_group_managers_connection.h @@ -55,6 +55,19 @@ class MockInstanceGroupManagersConnection AbandonInstancesRequest const& request), (override)); + MOCK_METHOD(StatusOr, + AbandonInstances, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instance_group_managers::v1:: + AbandonInstancesRequest const& request), + (override)); + + MOCK_METHOD(future>, + AbandonInstances, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD( (StreamRange, + ApplyUpdatesToInstances, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instance_group_managers::v1:: + ApplyUpdatesToInstancesRequest const& request), + (override)); + + MOCK_METHOD(future>, + ApplyUpdatesToInstances, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD(future>, CreateInstances, (google::cloud::cpp::compute::instance_group_managers::v1:: CreateInstancesRequest const& request), (override)); + MOCK_METHOD(StatusOr, + CreateInstances, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instance_group_managers::v1:: + CreateInstancesRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateInstances, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD(future>, DeleteInstanceGroupManager, (google::cloud::cpp::compute::instance_group_managers::v1:: DeleteInstanceGroupManagerRequest const& request), (override)); + MOCK_METHOD(StatusOr, + DeleteInstanceGroupManager, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instance_group_managers::v1:: + DeleteInstanceGroupManagerRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteInstanceGroupManager, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD(future>, DeleteInstances, (google::cloud::cpp::compute::instance_group_managers::v1:: DeleteInstancesRequest const& request), (override)); + MOCK_METHOD(StatusOr, + DeleteInstances, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instance_group_managers::v1:: + DeleteInstancesRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteInstances, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD(future>, DeletePerInstanceConfigs, (google::cloud::cpp::compute::instance_group_managers::v1:: DeletePerInstanceConfigsRequest const& request), (override)); + MOCK_METHOD(StatusOr, + DeletePerInstanceConfigs, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instance_group_managers::v1:: + DeletePerInstanceConfigsRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeletePerInstanceConfigs, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD(StatusOr, GetInstanceGroupManager, (google::cloud::cpp::compute::instance_group_managers::v1:: @@ -106,6 +184,19 @@ class MockInstanceGroupManagersConnection InsertInstanceGroupManagerRequest const& request), (override)); + MOCK_METHOD(StatusOr, + InsertInstanceGroupManager, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instance_group_managers::v1:: + InsertInstanceGroupManagerRequest const& request), + (override)); + + MOCK_METHOD(future>, + InsertInstanceGroupManager, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD( (StreamRange), ListInstanceGroupManagers, @@ -139,41 +230,131 @@ class MockInstanceGroupManagersConnection PatchInstanceGroupManagerRequest const& request), (override)); + MOCK_METHOD(StatusOr, + PatchInstanceGroupManager, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instance_group_managers::v1:: + PatchInstanceGroupManagerRequest const& request), + (override)); + + MOCK_METHOD(future>, + PatchInstanceGroupManager, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD(future>, PatchPerInstanceConfigs, (google::cloud::cpp::compute::instance_group_managers::v1:: PatchPerInstanceConfigsRequest const& request), (override)); + MOCK_METHOD(StatusOr, + PatchPerInstanceConfigs, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instance_group_managers::v1:: + PatchPerInstanceConfigsRequest const& request), + (override)); + + MOCK_METHOD(future>, + PatchPerInstanceConfigs, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD(future>, RecreateInstances, (google::cloud::cpp::compute::instance_group_managers::v1:: RecreateInstancesRequest const& request), (override)); + MOCK_METHOD(StatusOr, + RecreateInstances, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instance_group_managers::v1:: + RecreateInstancesRequest const& request), + (override)); + + MOCK_METHOD(future>, + RecreateInstances, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD(future>, Resize, (google::cloud::cpp::compute::instance_group_managers::v1:: ResizeRequest const& request), (override)); + MOCK_METHOD(StatusOr, Resize, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instance_group_managers::v1:: + ResizeRequest const& request), + (override)); + + MOCK_METHOD(future>, + Resize, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD(future>, SetInstanceTemplate, (google::cloud::cpp::compute::instance_group_managers::v1:: SetInstanceTemplateRequest const& request), (override)); + MOCK_METHOD(StatusOr, + SetInstanceTemplate, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instance_group_managers::v1:: + SetInstanceTemplateRequest const& request), + (override)); + + MOCK_METHOD(future>, + SetInstanceTemplate, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD(future>, SetTargetPools, (google::cloud::cpp::compute::instance_group_managers::v1:: SetTargetPoolsRequest const& request), (override)); + MOCK_METHOD(StatusOr, + SetTargetPools, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instance_group_managers::v1:: + SetTargetPoolsRequest const& request), + (override)); + + MOCK_METHOD(future>, + SetTargetPools, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD(future>, UpdatePerInstanceConfigs, (google::cloud::cpp::compute::instance_group_managers::v1:: UpdatePerInstanceConfigsRequest const& request), (override)); + + MOCK_METHOD(StatusOr, + UpdatePerInstanceConfigs, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instance_group_managers::v1:: + UpdatePerInstanceConfigsRequest const& request), + (override)); + + MOCK_METHOD(future>, + UpdatePerInstanceConfigs, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); }; GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END diff --git a/google/cloud/compute/instance_groups/v1/instance_groups_connection.cc b/google/cloud/compute/instance_groups/v1/instance_groups_connection.cc index c7dc98eb7e943..d0133bb2230b6 100644 --- a/google/cloud/compute/instance_groups/v1/instance_groups_connection.cc +++ b/google/cloud/compute/instance_groups/v1/instance_groups_connection.cc @@ -45,6 +45,23 @@ InstanceGroupsConnection::AddInstances( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +InstanceGroupsConnection::AddInstances( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instance_groups::v1:: + AddInstancesRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +InstanceGroupsConnection::AddInstances( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StreamRange> InstanceGroupsConnection::AggregatedListInstanceGroups( @@ -64,6 +81,23 @@ InstanceGroupsConnection::DeleteInstanceGroup( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +InstanceGroupsConnection::DeleteInstanceGroup( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instance_groups::v1:: + DeleteInstanceGroupRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +InstanceGroupsConnection::DeleteInstanceGroup( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr InstanceGroupsConnection::GetInstanceGroup( google::cloud::cpp::compute::instance_groups::v1:: @@ -80,6 +114,23 @@ InstanceGroupsConnection::InsertInstanceGroup( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +InstanceGroupsConnection::InsertInstanceGroup( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instance_groups::v1:: + InsertInstanceGroupRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +InstanceGroupsConnection::InsertInstanceGroup( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StreamRange InstanceGroupsConnection::ListInstanceGroups( google::cloud::cpp::compute::instance_groups::v1:: @@ -105,6 +156,23 @@ InstanceGroupsConnection::RemoveInstances( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +InstanceGroupsConnection::RemoveInstances( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instance_groups::v1:: + RemoveInstancesRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +InstanceGroupsConnection::RemoveInstances( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> InstanceGroupsConnection::SetNamedPorts( google::cloud::cpp::compute::instance_groups::v1:: @@ -114,6 +182,23 @@ InstanceGroupsConnection::SetNamedPorts( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +InstanceGroupsConnection::SetNamedPorts( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instance_groups::v1:: + SetNamedPortsRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +InstanceGroupsConnection::SetNamedPorts( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace compute_instance_groups_v1 } // namespace cloud diff --git a/google/cloud/compute/instance_groups/v1/instance_groups_connection.h b/google/cloud/compute/instance_groups/v1/instance_groups_connection.h index 1ab2c09fb1ebf..c30c985f3e0aa 100644 --- a/google/cloud/compute/instance_groups/v1/instance_groups_connection.h +++ b/google/cloud/compute/instance_groups/v1/instance_groups_connection.h @@ -22,8 +22,10 @@ #include "google/cloud/compute/instance_groups/v1/instance_groups_connection_idempotency_policy.h" #include "google/cloud/compute/instance_groups/v1/internal/instance_groups_retry_traits.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/internal/retry_policy_impl.h" +#include "google/cloud/no_await_tag.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" #include "google/cloud/status_or.h" @@ -189,6 +191,15 @@ class InstanceGroupsConnection { AddInstances(google::cloud::cpp::compute::instance_groups::v1:: AddInstancesRequest const& request); + virtual StatusOr AddInstances( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instance_groups::v1:: + AddInstancesRequest const& request); + + virtual future> + AddInstances(ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual StreamRange> AggregatedListInstanceGroups( @@ -199,6 +210,16 @@ class InstanceGroupsConnection { DeleteInstanceGroup(google::cloud::cpp::compute::instance_groups::v1:: DeleteInstanceGroupRequest const& request); + virtual StatusOr + DeleteInstanceGroup(ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instance_groups::v1:: + DeleteInstanceGroupRequest const& request); + + virtual future> + DeleteInstanceGroup( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual StatusOr GetInstanceGroup(google::cloud::cpp::compute::instance_groups::v1:: GetInstanceGroupRequest const& request); @@ -207,6 +228,16 @@ class InstanceGroupsConnection { InsertInstanceGroup(google::cloud::cpp::compute::instance_groups::v1:: InsertInstanceGroupRequest const& request); + virtual StatusOr + InsertInstanceGroup(ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instance_groups::v1:: + InsertInstanceGroupRequest const& request); + + virtual future> + InsertInstanceGroup( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual StreamRange ListInstanceGroups(google::cloud::cpp::compute::instance_groups::v1:: ListInstanceGroupsRequest request); @@ -220,9 +251,27 @@ class InstanceGroupsConnection { RemoveInstances(google::cloud::cpp::compute::instance_groups::v1:: RemoveInstancesRequest const& request); + virtual StatusOr RemoveInstances( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instance_groups::v1:: + RemoveInstancesRequest const& request); + + virtual future> + RemoveInstances(ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual future> SetNamedPorts(google::cloud::cpp::compute::instance_groups::v1:: SetNamedPortsRequest const& request); + + virtual StatusOr SetNamedPorts( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instance_groups::v1:: + SetNamedPortsRequest const& request); + + virtual future> + SetNamedPorts(ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); }; GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END diff --git a/google/cloud/compute/instance_groups/v1/internal/instance_groups_rest_connection_impl.cc b/google/cloud/compute/instance_groups/v1/internal/instance_groups_rest_connection_impl.cc index 751edc2626fce..fbfcae62fc208 100644 --- a/google/cloud/compute/instance_groups/v1/internal/instance_groups_rest_connection_impl.cc +++ b/google/cloud/compute/instance_groups/v1/internal/instance_groups_rest_connection_impl.cc @@ -23,6 +23,7 @@ #include "google/cloud/internal/async_rest_long_running_operation_custom.h" #include "google/cloud/internal/extract_long_running_result.h" #include "google/cloud/internal/pagination_range.h" +#include "google/cloud/internal/rest_lro_helpers.h" #include "google/cloud/internal/rest_retry_loop.h" #include "google/cloud/rest_options.h" #include @@ -103,6 +104,79 @@ InstanceGroupsRestConnectionImpl::AddInstances( }); } +StatusOr +InstanceGroupsRestConnectionImpl::AddInstances( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instance_groups::v1::AddInstancesRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->AddInstances(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::instance_groups::v1:: + AddInstancesRequest const& request) { + return stub_->AddInstances(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +InstanceGroupsRestConnectionImpl::AddInstances( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::zone_operations::v1::DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::zone_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::zone_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation]( + std::string const&, + google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest& + r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_zone(info.zone); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::zone_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_zone(info.zone); + r.set_operation(info.operation); + }); +} + StreamRange> InstanceGroupsRestConnectionImpl::AggregatedListInstanceGroups( @@ -205,6 +279,79 @@ InstanceGroupsRestConnectionImpl::DeleteInstanceGroup( }); } +StatusOr +InstanceGroupsRestConnectionImpl::DeleteInstanceGroup( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instance_groups::v1:: + DeleteInstanceGroupRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteInstanceGroup(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::instance_groups::v1:: + DeleteInstanceGroupRequest const& request) { + return stub_->DeleteInstanceGroup(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +InstanceGroupsRestConnectionImpl::DeleteInstanceGroup( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::zone_operations::v1::DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::zone_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::zone_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation]( + std::string const&, + google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest& + r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_zone(info.zone); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::zone_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_zone(info.zone); + r.set_operation(info.operation); + }); +} + StatusOr InstanceGroupsRestConnectionImpl::GetInstanceGroup( google::cloud::cpp::compute::instance_groups::v1:: @@ -281,6 +428,79 @@ InstanceGroupsRestConnectionImpl::InsertInstanceGroup( }); } +StatusOr +InstanceGroupsRestConnectionImpl::InsertInstanceGroup( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instance_groups::v1:: + InsertInstanceGroupRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->InsertInstanceGroup(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::instance_groups::v1:: + InsertInstanceGroupRequest const& request) { + return stub_->InsertInstanceGroup(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +InstanceGroupsRestConnectionImpl::InsertInstanceGroup( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::zone_operations::v1::DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::zone_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::zone_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation]( + std::string const&, + google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest& + r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_zone(info.zone); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::zone_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_zone(info.zone); + r.set_operation(info.operation); + }); +} + StreamRange InstanceGroupsRestConnectionImpl::ListInstanceGroups( google::cloud::cpp::compute::instance_groups::v1::ListInstanceGroupsRequest @@ -415,6 +635,79 @@ InstanceGroupsRestConnectionImpl::RemoveInstances( }); } +StatusOr +InstanceGroupsRestConnectionImpl::RemoveInstances( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instance_groups::v1:: + RemoveInstancesRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->RemoveInstances(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::instance_groups::v1:: + RemoveInstancesRequest const& request) { + return stub_->RemoveInstances(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +InstanceGroupsRestConnectionImpl::RemoveInstances( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::zone_operations::v1::DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::zone_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::zone_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation]( + std::string const&, + google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest& + r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_zone(info.zone); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::zone_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_zone(info.zone); + r.set_operation(info.operation); + }); +} + future> InstanceGroupsRestConnectionImpl::SetNamedPorts( google::cloud::cpp::compute::instance_groups::v1:: @@ -475,6 +768,79 @@ InstanceGroupsRestConnectionImpl::SetNamedPorts( }); } +StatusOr +InstanceGroupsRestConnectionImpl::SetNamedPorts( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instance_groups::v1:: + SetNamedPortsRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->SetNamedPorts(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::instance_groups::v1:: + SetNamedPortsRequest const& request) { + return stub_->SetNamedPorts(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +InstanceGroupsRestConnectionImpl::SetNamedPorts( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::zone_operations::v1::DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::zone_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::zone_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation]( + std::string const&, + google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest& + r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_zone(info.zone); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::zone_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_zone(info.zone); + r.set_operation(info.operation); + }); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace compute_instance_groups_v1_internal } // namespace cloud diff --git a/google/cloud/compute/instance_groups/v1/internal/instance_groups_rest_connection_impl.h b/google/cloud/compute/instance_groups/v1/internal/instance_groups_rest_connection_impl.h index bef512c6c839f..ed4e6b5184f6c 100644 --- a/google/cloud/compute/instance_groups/v1/internal/instance_groups_rest_connection_impl.h +++ b/google/cloud/compute/instance_groups/v1/internal/instance_groups_rest_connection_impl.h @@ -56,6 +56,15 @@ class InstanceGroupsRestConnectionImpl google::cloud::cpp::compute::instance_groups::v1:: AddInstancesRequest const& request) override; + StatusOr AddInstances( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instance_groups::v1:: + AddInstancesRequest const& request) override; + + future> AddInstances( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StreamRange> AggregatedListInstanceGroups( @@ -66,6 +75,16 @@ class InstanceGroupsRestConnectionImpl DeleteInstanceGroup(google::cloud::cpp::compute::instance_groups::v1:: DeleteInstanceGroupRequest const& request) override; + StatusOr DeleteInstanceGroup( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instance_groups::v1:: + DeleteInstanceGroupRequest const& request) override; + + future> + DeleteInstanceGroup( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StatusOr GetInstanceGroup( google::cloud::cpp::compute::instance_groups::v1:: GetInstanceGroupRequest const& request) override; @@ -74,6 +93,16 @@ class InstanceGroupsRestConnectionImpl InsertInstanceGroup(google::cloud::cpp::compute::instance_groups::v1:: InsertInstanceGroupRequest const& request) override; + StatusOr InsertInstanceGroup( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instance_groups::v1:: + InsertInstanceGroupRequest const& request) override; + + future> + InsertInstanceGroup( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StreamRange ListInstanceGroups(google::cloud::cpp::compute::instance_groups::v1:: ListInstanceGroupsRequest request) override; @@ -87,10 +116,28 @@ class InstanceGroupsRestConnectionImpl google::cloud::cpp::compute::instance_groups::v1:: RemoveInstancesRequest const& request) override; + StatusOr RemoveInstances( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instance_groups::v1:: + RemoveInstancesRequest const& request) override; + + future> RemoveInstances( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> SetNamedPorts( google::cloud::cpp::compute::instance_groups::v1:: SetNamedPortsRequest const& request) override; + StatusOr SetNamedPorts( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instance_groups::v1:: + SetNamedPortsRequest const& request) override; + + future> SetNamedPorts( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + private: static std::unique_ptr retry_policy(Options const& options) { diff --git a/google/cloud/compute/instance_groups/v1/internal/instance_groups_tracing_connection.cc b/google/cloud/compute/instance_groups/v1/internal/instance_groups_tracing_connection.cc index 263cf42fd89a9..383285a09f3ef 100644 --- a/google/cloud/compute/instance_groups/v1/internal/instance_groups_tracing_connection.cc +++ b/google/cloud/compute/instance_groups/v1/internal/instance_groups_tracing_connection.cc @@ -43,6 +43,29 @@ InstanceGroupsTracingConnection::AddInstances( return internal::EndSpan(std::move(span), child_->AddInstances(request)); } +StatusOr +InstanceGroupsTracingConnection::AddInstances( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instance_groups::v1::AddInstancesRequest const& + request) { + auto span = internal::MakeSpan( + "compute_instance_groups_v1::InstanceGroupsConnection::AddInstances"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->AddInstances(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +InstanceGroupsTracingConnection::AddInstances( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_instance_groups_v1::InstanceGroupsConnection::AddInstances"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->AddInstances(ExperimentalTag{}, operation)); +} + StreamRange> InstanceGroupsTracingConnection::AggregatedListInstanceGroups( @@ -70,6 +93,32 @@ InstanceGroupsTracingConnection::DeleteInstanceGroup( child_->DeleteInstanceGroup(request)); } +StatusOr +InstanceGroupsTracingConnection::DeleteInstanceGroup( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instance_groups::v1:: + DeleteInstanceGroupRequest const& request) { + auto span = internal::MakeSpan( + "compute_instance_groups_v1::InstanceGroupsConnection::" + "DeleteInstanceGroup"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->DeleteInstanceGroup(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +InstanceGroupsTracingConnection::DeleteInstanceGroup( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_instance_groups_v1::InstanceGroupsConnection::" + "DeleteInstanceGroup"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->DeleteInstanceGroup( + ExperimentalTag{}, operation)); +} + StatusOr InstanceGroupsTracingConnection::GetInstanceGroup( google::cloud::cpp::compute::instance_groups::v1:: @@ -92,6 +141,32 @@ InstanceGroupsTracingConnection::InsertInstanceGroup( child_->InsertInstanceGroup(request)); } +StatusOr +InstanceGroupsTracingConnection::InsertInstanceGroup( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instance_groups::v1:: + InsertInstanceGroupRequest const& request) { + auto span = internal::MakeSpan( + "compute_instance_groups_v1::InstanceGroupsConnection::" + "InsertInstanceGroup"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->InsertInstanceGroup(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +InstanceGroupsTracingConnection::InsertInstanceGroup( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_instance_groups_v1::InstanceGroupsConnection::" + "InsertInstanceGroup"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->InsertInstanceGroup( + ExperimentalTag{}, operation)); +} + StreamRange InstanceGroupsTracingConnection::ListInstanceGroups( google::cloud::cpp::compute::instance_groups::v1::ListInstanceGroupsRequest @@ -129,6 +204,29 @@ InstanceGroupsTracingConnection::RemoveInstances( return internal::EndSpan(std::move(span), child_->RemoveInstances(request)); } +StatusOr +InstanceGroupsTracingConnection::RemoveInstances( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instance_groups::v1:: + RemoveInstancesRequest const& request) { + auto span = internal::MakeSpan( + "compute_instance_groups_v1::InstanceGroupsConnection::RemoveInstances"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->RemoveInstances(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +InstanceGroupsTracingConnection::RemoveInstances( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_instance_groups_v1::InstanceGroupsConnection::RemoveInstances"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->RemoveInstances(ExperimentalTag{}, operation)); +} + future> InstanceGroupsTracingConnection::SetNamedPorts( google::cloud::cpp::compute::instance_groups::v1:: @@ -139,6 +237,29 @@ InstanceGroupsTracingConnection::SetNamedPorts( return internal::EndSpan(std::move(span), child_->SetNamedPorts(request)); } +StatusOr +InstanceGroupsTracingConnection::SetNamedPorts( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instance_groups::v1:: + SetNamedPortsRequest const& request) { + auto span = internal::MakeSpan( + "compute_instance_groups_v1::InstanceGroupsConnection::SetNamedPorts"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->SetNamedPorts(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +InstanceGroupsTracingConnection::SetNamedPorts( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_instance_groups_v1::InstanceGroupsConnection::SetNamedPorts"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->SetNamedPorts(ExperimentalTag{}, operation)); +} + #endif // GOOGLE_CLOUD_CPP_HAVE_OPENTELEMETRY std::shared_ptr diff --git a/google/cloud/compute/instance_groups/v1/internal/instance_groups_tracing_connection.h b/google/cloud/compute/instance_groups/v1/internal/instance_groups_tracing_connection.h index 3ca8b91f95bce..6ce75b73668b9 100644 --- a/google/cloud/compute/instance_groups/v1/internal/instance_groups_tracing_connection.h +++ b/google/cloud/compute/instance_groups/v1/internal/instance_groups_tracing_connection.h @@ -45,6 +45,15 @@ class InstanceGroupsTracingConnection google::cloud::cpp::compute::instance_groups::v1:: AddInstancesRequest const& request) override; + StatusOr AddInstances( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instance_groups::v1:: + AddInstancesRequest const& request) override; + + future> AddInstances( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StreamRange> AggregatedListInstanceGroups( @@ -55,6 +64,16 @@ class InstanceGroupsTracingConnection DeleteInstanceGroup(google::cloud::cpp::compute::instance_groups::v1:: DeleteInstanceGroupRequest const& request) override; + StatusOr DeleteInstanceGroup( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instance_groups::v1:: + DeleteInstanceGroupRequest const& request) override; + + future> + DeleteInstanceGroup( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StatusOr GetInstanceGroup( google::cloud::cpp::compute::instance_groups::v1:: GetInstanceGroupRequest const& request) override; @@ -63,6 +82,16 @@ class InstanceGroupsTracingConnection InsertInstanceGroup(google::cloud::cpp::compute::instance_groups::v1:: InsertInstanceGroupRequest const& request) override; + StatusOr InsertInstanceGroup( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instance_groups::v1:: + InsertInstanceGroupRequest const& request) override; + + future> + InsertInstanceGroup( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StreamRange ListInstanceGroups(google::cloud::cpp::compute::instance_groups::v1:: ListInstanceGroupsRequest request) override; @@ -76,10 +105,28 @@ class InstanceGroupsTracingConnection google::cloud::cpp::compute::instance_groups::v1:: RemoveInstancesRequest const& request) override; + StatusOr RemoveInstances( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instance_groups::v1:: + RemoveInstancesRequest const& request) override; + + future> RemoveInstances( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> SetNamedPorts( google::cloud::cpp::compute::instance_groups::v1:: SetNamedPortsRequest const& request) override; + StatusOr SetNamedPorts( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instance_groups::v1:: + SetNamedPortsRequest const& request) override; + + future> SetNamedPorts( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + private: std::shared_ptr child_; }; diff --git a/google/cloud/compute/instance_groups/v1/mocks/mock_instance_groups_connection.h b/google/cloud/compute/instance_groups/v1/mocks/mock_instance_groups_connection.h index d3319af070609..b3194b789ee4d 100644 --- a/google/cloud/compute/instance_groups/v1/mocks/mock_instance_groups_connection.h +++ b/google/cloud/compute/instance_groups/v1/mocks/mock_instance_groups_connection.h @@ -53,6 +53,19 @@ class MockInstanceGroupsConnection AddInstancesRequest const& request), (override)); + MOCK_METHOD(StatusOr, + AddInstances, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instance_groups::v1:: + AddInstancesRequest const& request), + (override)); + + MOCK_METHOD(future>, + AddInstances, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD( (StreamRange>), @@ -67,6 +80,19 @@ class MockInstanceGroupsConnection DeleteInstanceGroupRequest const& request), (override)); + MOCK_METHOD(StatusOr, + DeleteInstanceGroup, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instance_groups::v1:: + DeleteInstanceGroupRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteInstanceGroup, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD(StatusOr, GetInstanceGroup, (google::cloud::cpp::compute::instance_groups::v1:: @@ -79,6 +105,19 @@ class MockInstanceGroupsConnection InsertInstanceGroupRequest const& request), (override)); + MOCK_METHOD(StatusOr, + InsertInstanceGroup, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instance_groups::v1:: + InsertInstanceGroupRequest const& request), + (override)); + + MOCK_METHOD(future>, + InsertInstanceGroup, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD((StreamRange), ListInstanceGroups, (google::cloud::cpp::compute::instance_groups::v1:: @@ -98,11 +137,37 @@ class MockInstanceGroupsConnection RemoveInstancesRequest const& request), (override)); + MOCK_METHOD(StatusOr, + RemoveInstances, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instance_groups::v1:: + RemoveInstancesRequest const& request), + (override)); + + MOCK_METHOD(future>, + RemoveInstances, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD(future>, SetNamedPorts, (google::cloud::cpp::compute::instance_groups::v1:: SetNamedPortsRequest const& request), (override)); + + MOCK_METHOD(StatusOr, + SetNamedPorts, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instance_groups::v1:: + SetNamedPortsRequest const& request), + (override)); + + MOCK_METHOD(future>, + SetNamedPorts, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); }; GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END diff --git a/google/cloud/compute/instance_settings/v1/instance_settings_connection.cc b/google/cloud/compute/instance_settings/v1/instance_settings_connection.cc index 4b90b3e15bc9f..9fccc41310a84 100644 --- a/google/cloud/compute/instance_settings/v1/instance_settings_connection.cc +++ b/google/cloud/compute/instance_settings/v1/instance_settings_connection.cc @@ -51,6 +51,23 @@ InstanceSettingsConnection::PatchInstanceSettings( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +InstanceSettingsConnection::PatchInstanceSettings( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instance_settings::v1:: + PatchInstanceSettingsRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +InstanceSettingsConnection::PatchInstanceSettings( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace compute_instance_settings_v1 } // namespace cloud diff --git a/google/cloud/compute/instance_settings/v1/instance_settings_connection.h b/google/cloud/compute/instance_settings/v1/instance_settings_connection.h index ccef1b211e707..5e395d74f7a5e 100644 --- a/google/cloud/compute/instance_settings/v1/instance_settings_connection.h +++ b/google/cloud/compute/instance_settings/v1/instance_settings_connection.h @@ -22,8 +22,10 @@ #include "google/cloud/compute/instance_settings/v1/instance_settings_connection_idempotency_policy.h" #include "google/cloud/compute/instance_settings/v1/internal/instance_settings_retry_traits.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/internal/retry_policy_impl.h" +#include "google/cloud/no_await_tag.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" #include "google/cloud/status_or.h" @@ -192,6 +194,16 @@ class InstanceSettingsConnection { virtual future> PatchInstanceSettings(google::cloud::cpp::compute::instance_settings::v1:: PatchInstanceSettingsRequest const& request); + + virtual StatusOr + PatchInstanceSettings(ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instance_settings::v1:: + PatchInstanceSettingsRequest const& request); + + virtual future> + PatchInstanceSettings( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); }; GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END diff --git a/google/cloud/compute/instance_settings/v1/internal/instance_settings_rest_connection_impl.cc b/google/cloud/compute/instance_settings/v1/internal/instance_settings_rest_connection_impl.cc index 99a33ed40bba7..23149a367439d 100644 --- a/google/cloud/compute/instance_settings/v1/internal/instance_settings_rest_connection_impl.cc +++ b/google/cloud/compute/instance_settings/v1/internal/instance_settings_rest_connection_impl.cc @@ -22,6 +22,7 @@ #include "google/cloud/credentials.h" #include "google/cloud/internal/async_rest_long_running_operation_custom.h" #include "google/cloud/internal/extract_long_running_result.h" +#include "google/cloud/internal/rest_lro_helpers.h" #include "google/cloud/internal/rest_retry_loop.h" #include "google/cloud/rest_options.h" #include @@ -119,6 +120,79 @@ InstanceSettingsRestConnectionImpl::PatchInstanceSettings( }); } +StatusOr +InstanceSettingsRestConnectionImpl::PatchInstanceSettings( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instance_settings::v1:: + PatchInstanceSettingsRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->PatchInstanceSettings(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::instance_settings::v1:: + PatchInstanceSettingsRequest const& request) { + return stub_->PatchInstanceSettings(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +InstanceSettingsRestConnectionImpl::PatchInstanceSettings( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::zone_operations::v1::DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::zone_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::zone_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation]( + std::string const&, + google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest& + r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_zone(info.zone); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::zone_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_zone(info.zone); + r.set_operation(info.operation); + }); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace compute_instance_settings_v1_internal } // namespace cloud diff --git a/google/cloud/compute/instance_settings/v1/internal/instance_settings_rest_connection_impl.h b/google/cloud/compute/instance_settings/v1/internal/instance_settings_rest_connection_impl.h index 06a9da759a5db..5420e87defdee 100644 --- a/google/cloud/compute/instance_settings/v1/internal/instance_settings_rest_connection_impl.h +++ b/google/cloud/compute/instance_settings/v1/internal/instance_settings_rest_connection_impl.h @@ -60,6 +60,16 @@ class InstanceSettingsRestConnectionImpl google::cloud::cpp::compute::instance_settings::v1:: PatchInstanceSettingsRequest const& request) override; + StatusOr PatchInstanceSettings( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instance_settings::v1:: + PatchInstanceSettingsRequest const& request) override; + + future> + PatchInstanceSettings( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + private: static std::unique_ptr< compute_instance_settings_v1::InstanceSettingsRetryPolicy> diff --git a/google/cloud/compute/instance_settings/v1/internal/instance_settings_tracing_connection.cc b/google/cloud/compute/instance_settings/v1/internal/instance_settings_tracing_connection.cc index 642f9fe96418e..8eb245cf39b4e 100644 --- a/google/cloud/compute/instance_settings/v1/internal/instance_settings_tracing_connection.cc +++ b/google/cloud/compute/instance_settings/v1/internal/instance_settings_tracing_connection.cc @@ -56,6 +56,32 @@ InstanceSettingsTracingConnection::PatchInstanceSettings( child_->PatchInstanceSettings(request)); } +StatusOr +InstanceSettingsTracingConnection::PatchInstanceSettings( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instance_settings::v1:: + PatchInstanceSettingsRequest const& request) { + auto span = internal::MakeSpan( + "compute_instance_settings_v1::InstanceSettingsConnection::" + "PatchInstanceSettings"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->PatchInstanceSettings(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +InstanceSettingsTracingConnection::PatchInstanceSettings( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_instance_settings_v1::InstanceSettingsConnection::" + "PatchInstanceSettings"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->PatchInstanceSettings( + ExperimentalTag{}, operation)); +} + #endif // GOOGLE_CLOUD_CPP_HAVE_OPENTELEMETRY std::shared_ptr diff --git a/google/cloud/compute/instance_settings/v1/internal/instance_settings_tracing_connection.h b/google/cloud/compute/instance_settings/v1/internal/instance_settings_tracing_connection.h index 248a4d19f6a4d..e063f1af3b22e 100644 --- a/google/cloud/compute/instance_settings/v1/internal/instance_settings_tracing_connection.h +++ b/google/cloud/compute/instance_settings/v1/internal/instance_settings_tracing_connection.h @@ -50,6 +50,16 @@ class InstanceSettingsTracingConnection google::cloud::cpp::compute::instance_settings::v1:: PatchInstanceSettingsRequest const& request) override; + StatusOr PatchInstanceSettings( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instance_settings::v1:: + PatchInstanceSettingsRequest const& request) override; + + future> + PatchInstanceSettings( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + private: std::shared_ptr child_; diff --git a/google/cloud/compute/instance_settings/v1/mocks/mock_instance_settings_connection.h b/google/cloud/compute/instance_settings/v1/mocks/mock_instance_settings_connection.h index 317d31f36aea2..8e0612872dbea 100644 --- a/google/cloud/compute/instance_settings/v1/mocks/mock_instance_settings_connection.h +++ b/google/cloud/compute/instance_settings/v1/mocks/mock_instance_settings_connection.h @@ -58,6 +58,19 @@ class MockInstanceSettingsConnection (google::cloud::cpp::compute::instance_settings::v1:: PatchInstanceSettingsRequest const& request), (override)); + + MOCK_METHOD(StatusOr, + PatchInstanceSettings, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instance_settings::v1:: + PatchInstanceSettingsRequest const& request), + (override)); + + MOCK_METHOD(future>, + PatchInstanceSettings, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); }; GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END diff --git a/google/cloud/compute/instance_templates/v1/instance_templates_connection.cc b/google/cloud/compute/instance_templates/v1/instance_templates_connection.cc index d97481c980cb5..d3022dd12bb4b 100644 --- a/google/cloud/compute/instance_templates/v1/instance_templates_connection.cc +++ b/google/cloud/compute/instance_templates/v1/instance_templates_connection.cc @@ -55,6 +55,23 @@ InstanceTemplatesConnection::DeleteInstanceTemplate( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +InstanceTemplatesConnection::DeleteInstanceTemplate( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instance_templates::v1:: + DeleteInstanceTemplateRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +InstanceTemplatesConnection::DeleteInstanceTemplate( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr InstanceTemplatesConnection::GetInstanceTemplate( google::cloud::cpp::compute::instance_templates::v1:: @@ -78,6 +95,23 @@ InstanceTemplatesConnection::InsertInstanceTemplate( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +InstanceTemplatesConnection::InsertInstanceTemplate( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instance_templates::v1:: + InsertInstanceTemplateRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +InstanceTemplatesConnection::InsertInstanceTemplate( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StreamRange InstanceTemplatesConnection::ListInstanceTemplates( google::cloud::cpp::compute::instance_templates::v1:: diff --git a/google/cloud/compute/instance_templates/v1/instance_templates_connection.h b/google/cloud/compute/instance_templates/v1/instance_templates_connection.h index 47eb064b4c1e9..8e1b0d6beea26 100644 --- a/google/cloud/compute/instance_templates/v1/instance_templates_connection.h +++ b/google/cloud/compute/instance_templates/v1/instance_templates_connection.h @@ -22,8 +22,10 @@ #include "google/cloud/compute/instance_templates/v1/instance_templates_connection_idempotency_policy.h" #include "google/cloud/compute/instance_templates/v1/internal/instance_templates_retry_traits.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/internal/retry_policy_impl.h" +#include "google/cloud/no_await_tag.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" #include "google/cloud/status_or.h" @@ -197,6 +199,16 @@ class InstanceTemplatesConnection { DeleteInstanceTemplate(google::cloud::cpp::compute::instance_templates::v1:: DeleteInstanceTemplateRequest const& request); + virtual StatusOr + DeleteInstanceTemplate(ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instance_templates::v1:: + DeleteInstanceTemplateRequest const& request); + + virtual future> + DeleteInstanceTemplate( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual StatusOr GetInstanceTemplate(google::cloud::cpp::compute::instance_templates::v1:: GetInstanceTemplateRequest const& request); @@ -209,6 +221,16 @@ class InstanceTemplatesConnection { InsertInstanceTemplate(google::cloud::cpp::compute::instance_templates::v1:: InsertInstanceTemplateRequest const& request); + virtual StatusOr + InsertInstanceTemplate(ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instance_templates::v1:: + InsertInstanceTemplateRequest const& request); + + virtual future> + InsertInstanceTemplate( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual StreamRange ListInstanceTemplates(google::cloud::cpp::compute::instance_templates::v1:: ListInstanceTemplatesRequest request); diff --git a/google/cloud/compute/instance_templates/v1/internal/instance_templates_rest_connection_impl.cc b/google/cloud/compute/instance_templates/v1/internal/instance_templates_rest_connection_impl.cc index 35b539687fb80..c995e0375bb75 100644 --- a/google/cloud/compute/instance_templates/v1/internal/instance_templates_rest_connection_impl.cc +++ b/google/cloud/compute/instance_templates/v1/internal/instance_templates_rest_connection_impl.cc @@ -23,6 +23,7 @@ #include "google/cloud/internal/async_rest_long_running_operation_custom.h" #include "google/cloud/internal/extract_long_running_result.h" #include "google/cloud/internal/pagination_range.h" +#include "google/cloud/internal/rest_lro_helpers.h" #include "google/cloud/internal/rest_retry_loop.h" #include "google/cloud/rest_options.h" #include @@ -145,6 +146,77 @@ InstanceTemplatesRestConnectionImpl::DeleteInstanceTemplate( }); } +StatusOr +InstanceTemplatesRestConnectionImpl::DeleteInstanceTemplate( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instance_templates::v1:: + DeleteInstanceTemplateRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteInstanceTemplate(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::instance_templates::v1:: + DeleteInstanceTemplateRequest const& request) { + return stub_->DeleteInstanceTemplate(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +InstanceTemplatesRestConnectionImpl::DeleteInstanceTemplate( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::global_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }); +} + StatusOr InstanceTemplatesRestConnectionImpl::GetInstanceTemplate( google::cloud::cpp::compute::instance_templates::v1:: @@ -235,6 +307,77 @@ InstanceTemplatesRestConnectionImpl::InsertInstanceTemplate( }); } +StatusOr +InstanceTemplatesRestConnectionImpl::InsertInstanceTemplate( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instance_templates::v1:: + InsertInstanceTemplateRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->InsertInstanceTemplate(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::instance_templates::v1:: + InsertInstanceTemplateRequest const& request) { + return stub_->InsertInstanceTemplate(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +InstanceTemplatesRestConnectionImpl::InsertInstanceTemplate( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::global_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }); +} + StreamRange InstanceTemplatesRestConnectionImpl::ListInstanceTemplates( google::cloud::cpp::compute::instance_templates::v1:: diff --git a/google/cloud/compute/instance_templates/v1/internal/instance_templates_rest_connection_impl.h b/google/cloud/compute/instance_templates/v1/internal/instance_templates_rest_connection_impl.h index 35089af396a6f..d11d64afac791 100644 --- a/google/cloud/compute/instance_templates/v1/internal/instance_templates_rest_connection_impl.h +++ b/google/cloud/compute/instance_templates/v1/internal/instance_templates_rest_connection_impl.h @@ -64,6 +64,16 @@ class InstanceTemplatesRestConnectionImpl google::cloud::cpp::compute::instance_templates::v1:: DeleteInstanceTemplateRequest const& request) override; + StatusOr DeleteInstanceTemplate( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instance_templates::v1:: + DeleteInstanceTemplateRequest const& request) override; + + future> + DeleteInstanceTemplate( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StatusOr GetInstanceTemplate(google::cloud::cpp::compute::instance_templates::v1:: GetInstanceTemplateRequest const& request) override; @@ -77,6 +87,16 @@ class InstanceTemplatesRestConnectionImpl google::cloud::cpp::compute::instance_templates::v1:: InsertInstanceTemplateRequest const& request) override; + StatusOr InsertInstanceTemplate( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instance_templates::v1:: + InsertInstanceTemplateRequest const& request) override; + + future> + InsertInstanceTemplate( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StreamRange ListInstanceTemplates(google::cloud::cpp::compute::instance_templates::v1:: ListInstanceTemplatesRequest request) override; diff --git a/google/cloud/compute/instance_templates/v1/internal/instance_templates_tracing_connection.cc b/google/cloud/compute/instance_templates/v1/internal/instance_templates_tracing_connection.cc index d150e1b5efbf4..b08a31f27a6cb 100644 --- a/google/cloud/compute/instance_templates/v1/internal/instance_templates_tracing_connection.cc +++ b/google/cloud/compute/instance_templates/v1/internal/instance_templates_tracing_connection.cc @@ -62,6 +62,32 @@ InstanceTemplatesTracingConnection::DeleteInstanceTemplate( child_->DeleteInstanceTemplate(request)); } +StatusOr +InstanceTemplatesTracingConnection::DeleteInstanceTemplate( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instance_templates::v1:: + DeleteInstanceTemplateRequest const& request) { + auto span = internal::MakeSpan( + "compute_instance_templates_v1::InstanceTemplatesConnection::" + "DeleteInstanceTemplate"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->DeleteInstanceTemplate(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +InstanceTemplatesTracingConnection::DeleteInstanceTemplate( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_instance_templates_v1::InstanceTemplatesConnection::" + "DeleteInstanceTemplate"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->DeleteInstanceTemplate( + ExperimentalTag{}, operation)); +} + StatusOr InstanceTemplatesTracingConnection::GetInstanceTemplate( google::cloud::cpp::compute::instance_templates::v1:: @@ -96,6 +122,32 @@ InstanceTemplatesTracingConnection::InsertInstanceTemplate( child_->InsertInstanceTemplate(request)); } +StatusOr +InstanceTemplatesTracingConnection::InsertInstanceTemplate( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instance_templates::v1:: + InsertInstanceTemplateRequest const& request) { + auto span = internal::MakeSpan( + "compute_instance_templates_v1::InstanceTemplatesConnection::" + "InsertInstanceTemplate"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->InsertInstanceTemplate(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +InstanceTemplatesTracingConnection::InsertInstanceTemplate( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_instance_templates_v1::InstanceTemplatesConnection::" + "InsertInstanceTemplate"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->InsertInstanceTemplate( + ExperimentalTag{}, operation)); +} + StreamRange InstanceTemplatesTracingConnection::ListInstanceTemplates( google::cloud::cpp::compute::instance_templates::v1:: diff --git a/google/cloud/compute/instance_templates/v1/internal/instance_templates_tracing_connection.h b/google/cloud/compute/instance_templates/v1/internal/instance_templates_tracing_connection.h index 36a5308c75e95..7f09087c707a1 100644 --- a/google/cloud/compute/instance_templates/v1/internal/instance_templates_tracing_connection.h +++ b/google/cloud/compute/instance_templates/v1/internal/instance_templates_tracing_connection.h @@ -54,6 +54,16 @@ class InstanceTemplatesTracingConnection google::cloud::cpp::compute::instance_templates::v1:: DeleteInstanceTemplateRequest const& request) override; + StatusOr DeleteInstanceTemplate( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instance_templates::v1:: + DeleteInstanceTemplateRequest const& request) override; + + future> + DeleteInstanceTemplate( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StatusOr GetInstanceTemplate(google::cloud::cpp::compute::instance_templates::v1:: GetInstanceTemplateRequest const& request) override; @@ -67,6 +77,16 @@ class InstanceTemplatesTracingConnection google::cloud::cpp::compute::instance_templates::v1:: InsertInstanceTemplateRequest const& request) override; + StatusOr InsertInstanceTemplate( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instance_templates::v1:: + InsertInstanceTemplateRequest const& request) override; + + future> + InsertInstanceTemplate( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StreamRange ListInstanceTemplates(google::cloud::cpp::compute::instance_templates::v1:: ListInstanceTemplatesRequest request) override; diff --git a/google/cloud/compute/instance_templates/v1/mocks/mock_instance_templates_connection.h b/google/cloud/compute/instance_templates/v1/mocks/mock_instance_templates_connection.h index 986a887837729..81754decafa74 100644 --- a/google/cloud/compute/instance_templates/v1/mocks/mock_instance_templates_connection.h +++ b/google/cloud/compute/instance_templates/v1/mocks/mock_instance_templates_connection.h @@ -61,6 +61,19 @@ class MockInstanceTemplatesConnection DeleteInstanceTemplateRequest const& request), (override)); + MOCK_METHOD(StatusOr, + DeleteInstanceTemplate, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instance_templates::v1:: + DeleteInstanceTemplateRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteInstanceTemplate, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD(StatusOr, GetInstanceTemplate, (google::cloud::cpp::compute::instance_templates::v1:: @@ -78,6 +91,19 @@ class MockInstanceTemplatesConnection InsertInstanceTemplateRequest const& request), (override)); + MOCK_METHOD(StatusOr, + InsertInstanceTemplate, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instance_templates::v1:: + InsertInstanceTemplateRequest const& request), + (override)); + + MOCK_METHOD(future>, + InsertInstanceTemplate, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD((StreamRange), ListInstanceTemplates, (google::cloud::cpp::compute::instance_templates::v1:: diff --git a/google/cloud/compute/instances/v1/instances_connection.cc b/google/cloud/compute/instances/v1/instances_connection.cc index 27dae16321b02..91657cffcd050 100644 --- a/google/cloud/compute/instances/v1/instances_connection.cc +++ b/google/cloud/compute/instances/v1/instances_connection.cc @@ -44,6 +44,22 @@ InstancesConnection::AddAccessConfig( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +InstancesConnection::AddAccessConfig( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instances::v1::AddAccessConfigRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +InstancesConnection::AddAccessConfig( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> InstancesConnection::AddResourcePolicies( google::cloud::cpp::compute::instances::v1:: @@ -53,6 +69,23 @@ InstancesConnection::AddResourcePolicies( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +InstancesConnection::AddResourcePolicies( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instances::v1:: + AddResourcePoliciesRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +InstancesConnection::AddResourcePolicies( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StreamRange> InstancesConnection::AggregatedListInstances( @@ -71,6 +104,22 @@ InstancesConnection::AttachDisk( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +InstancesConnection::AttachDisk( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instances::v1::AttachDiskRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +InstancesConnection::AttachDisk( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> InstancesConnection::BulkInsert( google::cloud::cpp::compute::instances::v1::BulkInsertRequest const&) { @@ -79,9 +128,41 @@ InstancesConnection::BulkInsert( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +InstancesConnection::BulkInsert( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instances::v1::BulkInsertRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> +InstancesConnection::BulkInsert( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +InstancesConnection::DeleteInstance( + google::cloud::cpp::compute::instances::v1::DeleteInstanceRequest const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +StatusOr InstancesConnection::DeleteInstance( + ExperimentalTag, NoAwaitTag, google::cloud::cpp::compute::instances::v1::DeleteInstanceRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +InstancesConnection::DeleteInstance( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { return google::cloud::make_ready_future< StatusOr>( Status(StatusCode::kUnimplemented, "not implemented")); @@ -96,9 +177,42 @@ InstancesConnection::DeleteAccessConfig( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +InstancesConnection::DeleteAccessConfig( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instances::v1:: + DeleteAccessConfigRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> +InstancesConnection::DeleteAccessConfig( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +InstancesConnection::DetachDisk( + google::cloud::cpp::compute::instances::v1::DetachDiskRequest const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +StatusOr InstancesConnection::DetachDisk( + ExperimentalTag, NoAwaitTag, google::cloud::cpp::compute::instances::v1::DetachDiskRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +InstancesConnection::DetachDisk( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { return google::cloud::make_ready_future< StatusOr>( Status(StatusCode::kUnimplemented, "not implemented")); @@ -159,6 +273,22 @@ InstancesConnection::InsertInstance( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +InstancesConnection::InsertInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instances::v1::InsertInstanceRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +InstancesConnection::InsertInstance( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StreamRange InstancesConnection::ListInstances( google::cloud::cpp::compute::instances::v1:: @@ -184,6 +314,23 @@ InstancesConnection::PerformMaintenance( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +InstancesConnection::PerformMaintenance( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instances::v1:: + PerformMaintenanceRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +InstancesConnection::PerformMaintenance( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> InstancesConnection::RemoveResourcePolicies( google::cloud::cpp::compute::instances::v1:: @@ -193,6 +340,23 @@ InstancesConnection::RemoveResourcePolicies( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +InstancesConnection::RemoveResourcePolicies( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instances::v1:: + RemoveResourcePoliciesRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +InstancesConnection::RemoveResourcePolicies( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> InstancesConnection::Reset( google::cloud::cpp::compute::instances::v1::ResetRequest const&) { @@ -201,9 +365,40 @@ InstancesConnection::Reset( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr InstancesConnection::Reset( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instances::v1::ResetRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> +InstancesConnection::Reset(ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +InstancesConnection::Resume( + google::cloud::cpp::compute::instances::v1::ResumeRequest const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +StatusOr InstancesConnection::Resume( + ExperimentalTag, NoAwaitTag, google::cloud::cpp::compute::instances::v1::ResumeRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +InstancesConnection::Resume(ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const&) { return google::cloud::make_ready_future< StatusOr>( Status(StatusCode::kUnimplemented, "not implemented")); @@ -224,6 +419,23 @@ InstancesConnection::SetDeletionProtection( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +InstancesConnection::SetDeletionProtection( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instances::v1:: + SetDeletionProtectionRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +InstancesConnection::SetDeletionProtection( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> InstancesConnection::SetDiskAutoDelete( google::cloud::cpp::compute::instances::v1:: @@ -233,6 +445,23 @@ InstancesConnection::SetDiskAutoDelete( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +InstancesConnection::SetDiskAutoDelete( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instances::v1:: + SetDiskAutoDeleteRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +InstancesConnection::SetDiskAutoDelete( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr InstancesConnection::SetIamPolicy( google::cloud::cpp::compute::instances::v1::SetIamPolicyRequest const&) { @@ -247,6 +476,22 @@ InstancesConnection::SetLabels( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +InstancesConnection::SetLabels( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instances::v1::SetLabelsRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +InstancesConnection::SetLabels( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> InstancesConnection::SetMachineResources( google::cloud::cpp::compute::instances::v1:: @@ -256,9 +501,42 @@ InstancesConnection::SetMachineResources( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +InstancesConnection::SetMachineResources( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instances::v1:: + SetMachineResourcesRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> +InstancesConnection::SetMachineResources( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +InstancesConnection::SetMachineType( + google::cloud::cpp::compute::instances::v1::SetMachineTypeRequest const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +StatusOr InstancesConnection::SetMachineType( + ExperimentalTag, NoAwaitTag, google::cloud::cpp::compute::instances::v1::SetMachineTypeRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +InstancesConnection::SetMachineType( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { return google::cloud::make_ready_future< StatusOr>( Status(StatusCode::kUnimplemented, "not implemented")); @@ -272,6 +550,22 @@ InstancesConnection::SetMetadata( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +InstancesConnection::SetMetadata( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instances::v1::SetMetadataRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +InstancesConnection::SetMetadata( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> InstancesConnection::SetMinCpuPlatform( google::cloud::cpp::compute::instances::v1:: @@ -281,6 +575,23 @@ InstancesConnection::SetMinCpuPlatform( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +InstancesConnection::SetMinCpuPlatform( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instances::v1:: + SetMinCpuPlatformRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +InstancesConnection::SetMinCpuPlatform( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> InstancesConnection::SetName( google::cloud::cpp::compute::instances::v1::SetNameRequest const&) { @@ -289,6 +600,22 @@ InstancesConnection::SetName( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +InstancesConnection::SetName( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instances::v1::SetNameRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +InstancesConnection::SetName( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> InstancesConnection::SetScheduling( google::cloud::cpp::compute::instances::v1::SetSchedulingRequest const&) { @@ -297,6 +624,22 @@ InstancesConnection::SetScheduling( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +InstancesConnection::SetScheduling( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instances::v1::SetSchedulingRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +InstancesConnection::SetScheduling( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> InstancesConnection::SetSecurityPolicy( google::cloud::cpp::compute::instances::v1:: @@ -306,6 +649,23 @@ InstancesConnection::SetSecurityPolicy( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +InstancesConnection::SetSecurityPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instances::v1:: + SetSecurityPolicyRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +InstancesConnection::SetSecurityPolicy( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> InstancesConnection::SetServiceAccount( google::cloud::cpp::compute::instances::v1:: @@ -315,6 +675,23 @@ InstancesConnection::SetServiceAccount( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +InstancesConnection::SetServiceAccount( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instances::v1:: + SetServiceAccountRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +InstancesConnection::SetServiceAccount( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> InstancesConnection::SetShieldedInstanceIntegrityPolicy( google::cloud::cpp::compute::instances::v1:: @@ -324,6 +701,23 @@ InstancesConnection::SetShieldedInstanceIntegrityPolicy( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +InstancesConnection::SetShieldedInstanceIntegrityPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instances::v1:: + SetShieldedInstanceIntegrityPolicyRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +InstancesConnection::SetShieldedInstanceIntegrityPolicy( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> InstancesConnection::SetTags( google::cloud::cpp::compute::instances::v1::SetTagsRequest const&) { @@ -332,6 +726,22 @@ InstancesConnection::SetTags( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +InstancesConnection::SetTags( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instances::v1::SetTagsRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +InstancesConnection::SetTags( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> InstancesConnection::SimulateMaintenanceEvent( google::cloud::cpp::compute::instances::v1:: @@ -341,6 +751,23 @@ InstancesConnection::SimulateMaintenanceEvent( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +InstancesConnection::SimulateMaintenanceEvent( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instances::v1:: + SimulateMaintenanceEventRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +InstancesConnection::SimulateMaintenanceEvent( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> InstancesConnection::Start( google::cloud::cpp::compute::instances::v1::StartRequest const&) { @@ -349,6 +776,21 @@ InstancesConnection::Start( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr InstancesConnection::Start( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instances::v1::StartRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +InstancesConnection::Start(ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> InstancesConnection::StartWithEncryptionKey( google::cloud::cpp::compute::instances::v1:: @@ -358,6 +800,23 @@ InstancesConnection::StartWithEncryptionKey( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +InstancesConnection::StartWithEncryptionKey( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instances::v1:: + StartWithEncryptionKeyRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +InstancesConnection::StartWithEncryptionKey( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> InstancesConnection::Stop( google::cloud::cpp::compute::instances::v1::StopRequest const&) { @@ -366,6 +825,21 @@ InstancesConnection::Stop( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr InstancesConnection::Stop( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instances::v1::StopRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +InstancesConnection::Stop(ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> InstancesConnection::Suspend( google::cloud::cpp::compute::instances::v1::SuspendRequest const&) { @@ -374,6 +848,22 @@ InstancesConnection::Suspend( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +InstancesConnection::Suspend( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instances::v1::SuspendRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +InstancesConnection::Suspend( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr InstancesConnection::TestIamPermissions( google::cloud::cpp::compute::instances::v1:: @@ -389,10 +879,43 @@ InstancesConnection::UpdateInstance( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +InstancesConnection::UpdateInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instances::v1::UpdateInstanceRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> +InstancesConnection::UpdateInstance( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +InstancesConnection::UpdateAccessConfig( + google::cloud::cpp::compute::instances::v1:: + UpdateAccessConfigRequest const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +StatusOr InstancesConnection::UpdateAccessConfig( + ExperimentalTag, NoAwaitTag, google::cloud::cpp::compute::instances::v1:: UpdateAccessConfigRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +InstancesConnection::UpdateAccessConfig( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { return google::cloud::make_ready_future< StatusOr>( Status(StatusCode::kUnimplemented, "not implemented")); @@ -407,6 +930,23 @@ InstancesConnection::UpdateDisplayDevice( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +InstancesConnection::UpdateDisplayDevice( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instances::v1:: + UpdateDisplayDeviceRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +InstancesConnection::UpdateDisplayDevice( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> InstancesConnection::UpdateNetworkInterface( google::cloud::cpp::compute::instances::v1:: @@ -416,6 +956,23 @@ InstancesConnection::UpdateNetworkInterface( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +InstancesConnection::UpdateNetworkInterface( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instances::v1:: + UpdateNetworkInterfaceRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +InstancesConnection::UpdateNetworkInterface( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> InstancesConnection::UpdateShieldedInstanceConfig( google::cloud::cpp::compute::instances::v1:: @@ -425,6 +982,23 @@ InstancesConnection::UpdateShieldedInstanceConfig( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +InstancesConnection::UpdateShieldedInstanceConfig( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instances::v1:: + UpdateShieldedInstanceConfigRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +InstancesConnection::UpdateShieldedInstanceConfig( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace compute_instances_v1 } // namespace cloud diff --git a/google/cloud/compute/instances/v1/instances_connection.h b/google/cloud/compute/instances/v1/instances_connection.h index 2e571b3bbce4f..ced99a5be0f3d 100644 --- a/google/cloud/compute/instances/v1/instances_connection.h +++ b/google/cloud/compute/instances/v1/instances_connection.h @@ -22,8 +22,10 @@ #include "google/cloud/compute/instances/v1/instances_connection_idempotency_policy.h" #include "google/cloud/compute/instances/v1/internal/instances_retry_traits.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/internal/retry_policy_impl.h" +#include "google/cloud/no_await_tag.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" #include "google/cloud/status_or.h" @@ -188,10 +190,29 @@ class InstancesConnection { google::cloud::cpp::compute::instances::v1::AddAccessConfigRequest const& request); + virtual StatusOr AddAccessConfig( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instances::v1::AddAccessConfigRequest const& + request); + + virtual future> + AddAccessConfig(ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual future> AddResourcePolicies(google::cloud::cpp::compute::instances::v1:: AddResourcePoliciesRequest const& request); + virtual StatusOr + AddResourcePolicies(ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instances::v1:: + AddResourcePoliciesRequest const& request); + + virtual future> + AddResourcePolicies( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual StreamRange> AggregatedListInstances( @@ -203,25 +224,71 @@ class InstancesConnection { google::cloud::cpp::compute::instances::v1::AttachDiskRequest const& request); + virtual StatusOr AttachDisk( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instances::v1::AttachDiskRequest const& + request); + + virtual future> + AttachDisk(ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual future> BulkInsert( google::cloud::cpp::compute::instances::v1::BulkInsertRequest const& request); + virtual StatusOr BulkInsert( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instances::v1::BulkInsertRequest const& + request); + + virtual future> + BulkInsert(ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual future> DeleteInstance( google::cloud::cpp::compute::instances::v1::DeleteInstanceRequest const& request); + virtual StatusOr DeleteInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instances::v1::DeleteInstanceRequest const& + request); + + virtual future> + DeleteInstance(ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual future> DeleteAccessConfig(google::cloud::cpp::compute::instances::v1:: DeleteAccessConfigRequest const& request); + virtual StatusOr + DeleteAccessConfig(ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instances::v1:: + DeleteAccessConfigRequest const& request); + + virtual future> + DeleteAccessConfig( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual future> DetachDisk( google::cloud::cpp::compute::instances::v1::DetachDiskRequest const& request); + virtual StatusOr DetachDisk( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instances::v1::DetachDiskRequest const& + request); + + virtual future> + DetachDisk(ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual StatusOr GetInstance( google::cloud::cpp::compute::instances::v1::GetInstanceRequest const& request); @@ -257,6 +324,15 @@ class InstancesConnection { google::cloud::cpp::compute::instances::v1::InsertInstanceRequest const& request); + virtual StatusOr InsertInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instances::v1::InsertInstanceRequest const& + request); + + virtual future> + InsertInstance(ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual StreamRange ListInstances( google::cloud::cpp::compute::instances::v1::ListInstancesRequest request); @@ -267,16 +343,52 @@ class InstancesConnection { PerformMaintenance(google::cloud::cpp::compute::instances::v1:: PerformMaintenanceRequest const& request); + virtual StatusOr + PerformMaintenance(ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instances::v1:: + PerformMaintenanceRequest const& request); + + virtual future> + PerformMaintenance( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual future> RemoveResourcePolicies(google::cloud::cpp::compute::instances::v1:: RemoveResourcePoliciesRequest const& request); + virtual StatusOr + RemoveResourcePolicies(ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instances::v1:: + RemoveResourcePoliciesRequest const& request); + + virtual future> + RemoveResourcePolicies( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual future> Reset( google::cloud::cpp::compute::instances::v1::ResetRequest const& request); + virtual StatusOr Reset( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instances::v1::ResetRequest const& request); + + virtual future> Reset( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual future> Resume( google::cloud::cpp::compute::instances::v1::ResumeRequest const& request); + virtual StatusOr Resume( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instances::v1::ResumeRequest const& request); + + virtual future> Resume( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual Status SendDiagnosticInterrupt( google::cloud::cpp::compute::instances::v1:: SendDiagnosticInterruptRequest const& request); @@ -285,10 +397,30 @@ class InstancesConnection { SetDeletionProtection(google::cloud::cpp::compute::instances::v1:: SetDeletionProtectionRequest const& request); + virtual StatusOr + SetDeletionProtection(ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instances::v1:: + SetDeletionProtectionRequest const& request); + + virtual future> + SetDeletionProtection( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual future> SetDiskAutoDelete(google::cloud::cpp::compute::instances::v1:: SetDiskAutoDeleteRequest const& request); + virtual StatusOr + SetDiskAutoDelete(ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instances::v1:: + SetDiskAutoDeleteRequest const& request); + + virtual future> + SetDiskAutoDelete( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual StatusOr SetIamPolicy( google::cloud::cpp::compute::instances::v1::SetIamPolicyRequest const& request); @@ -297,68 +429,218 @@ class InstancesConnection { SetLabels(google::cloud::cpp::compute::instances::v1::SetLabelsRequest const& request); + virtual StatusOr SetLabels( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instances::v1::SetLabelsRequest const& + request); + + virtual future> + SetLabels(ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual future> SetMachineResources(google::cloud::cpp::compute::instances::v1:: SetMachineResourcesRequest const& request); + virtual StatusOr + SetMachineResources(ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instances::v1:: + SetMachineResourcesRequest const& request); + + virtual future> + SetMachineResources( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual future> SetMachineType( google::cloud::cpp::compute::instances::v1::SetMachineTypeRequest const& request); + virtual StatusOr SetMachineType( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instances::v1::SetMachineTypeRequest const& + request); + + virtual future> + SetMachineType(ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual future> SetMetadata( google::cloud::cpp::compute::instances::v1::SetMetadataRequest const& request); + virtual StatusOr SetMetadata( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instances::v1::SetMetadataRequest const& + request); + + virtual future> + SetMetadata(ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual future> SetMinCpuPlatform(google::cloud::cpp::compute::instances::v1:: SetMinCpuPlatformRequest const& request); + virtual StatusOr + SetMinCpuPlatform(ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instances::v1:: + SetMinCpuPlatformRequest const& request); + + virtual future> + SetMinCpuPlatform( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual future> SetName( google::cloud::cpp::compute::instances::v1::SetNameRequest const& request); + virtual StatusOr SetName( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instances::v1::SetNameRequest const& + request); + + virtual future> SetName( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual future> SetScheduling( google::cloud::cpp::compute::instances::v1::SetSchedulingRequest const& request); + virtual StatusOr SetScheduling( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instances::v1::SetSchedulingRequest const& + request); + + virtual future> + SetScheduling(ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual future> SetSecurityPolicy(google::cloud::cpp::compute::instances::v1:: SetSecurityPolicyRequest const& request); + virtual StatusOr + SetSecurityPolicy(ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instances::v1:: + SetSecurityPolicyRequest const& request); + + virtual future> + SetSecurityPolicy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual future> SetServiceAccount(google::cloud::cpp::compute::instances::v1:: SetServiceAccountRequest const& request); + virtual StatusOr + SetServiceAccount(ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instances::v1:: + SetServiceAccountRequest const& request); + virtual future> + SetServiceAccount( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + + virtual future> + SetShieldedInstanceIntegrityPolicy( + google::cloud::cpp::compute::instances::v1:: + SetShieldedInstanceIntegrityPolicyRequest const& request); + + virtual StatusOr SetShieldedInstanceIntegrityPolicy( + ExperimentalTag, NoAwaitTag, google::cloud::cpp::compute::instances::v1:: SetShieldedInstanceIntegrityPolicyRequest const& request); + virtual future> + SetShieldedInstanceIntegrityPolicy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual future> SetTags( google::cloud::cpp::compute::instances::v1::SetTagsRequest const& request); + virtual StatusOr SetTags( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instances::v1::SetTagsRequest const& + request); + + virtual future> SetTags( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual future> SimulateMaintenanceEvent(google::cloud::cpp::compute::instances::v1:: SimulateMaintenanceEventRequest const& request); + virtual StatusOr + SimulateMaintenanceEvent(ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instances::v1:: + SimulateMaintenanceEventRequest const& request); + + virtual future> + SimulateMaintenanceEvent( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual future> Start( google::cloud::cpp::compute::instances::v1::StartRequest const& request); + virtual StatusOr Start( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instances::v1::StartRequest const& request); + + virtual future> Start( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual future> StartWithEncryptionKey(google::cloud::cpp::compute::instances::v1:: StartWithEncryptionKeyRequest const& request); + virtual StatusOr + StartWithEncryptionKey(ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instances::v1:: + StartWithEncryptionKeyRequest const& request); + + virtual future> + StartWithEncryptionKey( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual future> Stop( google::cloud::cpp::compute::instances::v1::StopRequest const& request); + virtual StatusOr Stop( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instances::v1::StopRequest const& request); + + virtual future> Stop( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual future> Suspend( google::cloud::cpp::compute::instances::v1::SuspendRequest const& request); + virtual StatusOr Suspend( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instances::v1::SuspendRequest const& + request); + + virtual future> Suspend( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual StatusOr TestIamPermissions(google::cloud::cpp::compute::instances::v1:: TestIamPermissionsRequest const& request); @@ -368,22 +650,72 @@ class InstancesConnection { google::cloud::cpp::compute::instances::v1::UpdateInstanceRequest const& request); + virtual StatusOr UpdateInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instances::v1::UpdateInstanceRequest const& + request); + + virtual future> + UpdateInstance(ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual future> UpdateAccessConfig(google::cloud::cpp::compute::instances::v1:: UpdateAccessConfigRequest const& request); + virtual StatusOr + UpdateAccessConfig(ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instances::v1:: + UpdateAccessConfigRequest const& request); + + virtual future> + UpdateAccessConfig( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual future> UpdateDisplayDevice(google::cloud::cpp::compute::instances::v1:: UpdateDisplayDeviceRequest const& request); + virtual StatusOr + UpdateDisplayDevice(ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instances::v1:: + UpdateDisplayDeviceRequest const& request); + + virtual future> + UpdateDisplayDevice( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual future> UpdateNetworkInterface(google::cloud::cpp::compute::instances::v1:: UpdateNetworkInterfaceRequest const& request); + virtual StatusOr + UpdateNetworkInterface(ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instances::v1:: + UpdateNetworkInterfaceRequest const& request); + + virtual future> + UpdateNetworkInterface( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual future> UpdateShieldedInstanceConfig( google::cloud::cpp::compute::instances::v1:: UpdateShieldedInstanceConfigRequest const& request); + + virtual StatusOr + UpdateShieldedInstanceConfig( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instances::v1:: + UpdateShieldedInstanceConfigRequest const& request); + + virtual future> + UpdateShieldedInstanceConfig( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); }; GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END diff --git a/google/cloud/compute/instances/v1/internal/instances_rest_connection_impl.cc b/google/cloud/compute/instances/v1/internal/instances_rest_connection_impl.cc index 38ac218150611..3d1df71263e51 100644 --- a/google/cloud/compute/instances/v1/internal/instances_rest_connection_impl.cc +++ b/google/cloud/compute/instances/v1/internal/instances_rest_connection_impl.cc @@ -23,6 +23,7 @@ #include "google/cloud/internal/async_rest_long_running_operation_custom.h" #include "google/cloud/internal/extract_long_running_result.h" #include "google/cloud/internal/pagination_range.h" +#include "google/cloud/internal/rest_lro_helpers.h" #include "google/cloud/internal/rest_retry_loop.h" #include "google/cloud/rest_options.h" #include @@ -102,6 +103,79 @@ InstancesRestConnectionImpl::AddAccessConfig( }); } +StatusOr +InstancesRestConnectionImpl::AddAccessConfig( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instances::v1::AddAccessConfigRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->AddAccessConfig(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::instances::v1:: + AddAccessConfigRequest const& request) { + return stub_->AddAccessConfig(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +InstancesRestConnectionImpl::AddAccessConfig( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::zone_operations::v1::DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::zone_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::zone_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation]( + std::string const&, + google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest& + r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_zone(info.zone); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::zone_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_zone(info.zone); + r.set_operation(info.operation); + }); +} + future> InstancesRestConnectionImpl::AddResourcePolicies( google::cloud::cpp::compute::instances::v1:: @@ -162,6 +236,79 @@ InstancesRestConnectionImpl::AddResourcePolicies( }); } +StatusOr +InstancesRestConnectionImpl::AddResourcePolicies( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instances::v1:: + AddResourcePoliciesRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->AddResourcePolicies(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::instances::v1:: + AddResourcePoliciesRequest const& request) { + return stub_->AddResourcePolicies(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +InstancesRestConnectionImpl::AddResourcePolicies( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::zone_operations::v1::DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::zone_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::zone_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation]( + std::string const&, + google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest& + r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_zone(info.zone); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::zone_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_zone(info.zone); + r.set_operation(info.operation); + }); +} + StreamRange> InstancesRestConnectionImpl::AggregatedListInstances( @@ -263,6 +410,80 @@ InstancesRestConnectionImpl::AttachDisk( }); } +StatusOr +InstancesRestConnectionImpl::AttachDisk( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instances::v1::AttachDiskRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->AttachDisk(request), + [this]( + rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::instances::v1::AttachDiskRequest const& + request) { + return stub_->AttachDisk(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +InstancesRestConnectionImpl::AttachDisk( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::zone_operations::v1::DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::zone_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::zone_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation]( + std::string const&, + google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest& + r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_zone(info.zone); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::zone_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_zone(info.zone); + r.set_operation(info.operation); + }); +} + future> InstancesRestConnectionImpl::BulkInsert( google::cloud::cpp::compute::instances::v1::BulkInsertRequest const& @@ -324,25 +545,35 @@ InstancesRestConnectionImpl::BulkInsert( }); } -future> -InstancesRestConnectionImpl::DeleteInstance( - google::cloud::cpp::compute::instances::v1::DeleteInstanceRequest const& +StatusOr +InstancesRestConnectionImpl::BulkInsert( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instances::v1::BulkInsertRequest const& request) { auto current = google::cloud::internal::SaveCurrentOptions(); - return rest_internal::AsyncRestLongRunningOperation< + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->BulkInsert(request), + [this]( + rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::instances::v1::BulkInsertRequest const& + request) { + return stub_->BulkInsert(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +InstancesRestConnectionImpl::BulkInsert( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< google::cloud::cpp::compute::v1::Operation, google::cloud::cpp::compute::v1::Operation, google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest, google::cloud::cpp::compute::zone_operations::v1::DeleteOperationRequest>( - background_->cq(), current, request, - [stub = stub_](CompletionQueue& cq, - std::unique_ptr context, - google::cloud::internal::ImmutableOptions options, - google::cloud::cpp::compute::instances::v1:: - DeleteInstanceRequest const& request) { - return stub->AsyncDeleteInstance(cq, std::move(context), - std::move(options), request); - }, + background_->cq(), current, operation, [stub = stub_](CompletionQueue& cq, std::unique_ptr context, google::cloud::internal::ImmutableOptions options, @@ -361,32 +592,36 @@ InstancesRestConnectionImpl::DeleteInstance( }, [](StatusOr op, std::string const&) { return op; }, - retry_policy(*current), backoff_policy(*current), - idempotency_policy(*current)->DeleteInstance(request), polling_policy(*current), __func__, [](google::cloud::cpp::compute::v1::Operation const& op) { return op.status() == "DONE"; }, - [request]( - std::string const& op, + [operation]( + std::string const&, google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest& r) { - r.set_project(request.project()); - r.set_zone(request.zone()); - r.set_operation(op); - }, - [request](std::string const& op, - google::cloud::cpp::compute::zone_operations::v1:: - DeleteOperationRequest& r) { - r.set_project(request.project()); - r.set_zone(request.zone()); - r.set_operation(op); + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_zone(info.zone); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::zone_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_zone(info.zone); + r.set_operation(info.operation); }); } future> -InstancesRestConnectionImpl::DeleteAccessConfig( - google::cloud::cpp::compute::instances::v1::DeleteAccessConfigRequest const& +InstancesRestConnectionImpl::DeleteInstance( + google::cloud::cpp::compute::instances::v1::DeleteInstanceRequest const& request) { auto current = google::cloud::internal::SaveCurrentOptions(); return rest_internal::AsyncRestLongRunningOperation< @@ -399,9 +634,9 @@ InstancesRestConnectionImpl::DeleteAccessConfig( std::unique_ptr context, google::cloud::internal::ImmutableOptions options, google::cloud::cpp::compute::instances::v1:: - DeleteAccessConfigRequest const& request) { - return stub->AsyncDeleteAccessConfig(cq, std::move(context), - std::move(options), request); + DeleteInstanceRequest const& request) { + return stub->AsyncDeleteInstance(cq, std::move(context), + std::move(options), request); }, [stub = stub_](CompletionQueue& cq, std::unique_ptr context, @@ -422,7 +657,7 @@ InstancesRestConnectionImpl::DeleteAccessConfig( [](StatusOr op, std::string const&) { return op; }, retry_policy(*current), backoff_policy(*current), - idempotency_policy(*current)->DeleteAccessConfig(request), + idempotency_policy(*current)->DeleteInstance(request), polling_policy(*current), __func__, [](google::cloud::cpp::compute::v1::Operation const& op) { return op.status() == "DONE"; @@ -444,26 +679,34 @@ InstancesRestConnectionImpl::DeleteAccessConfig( }); } -future> -InstancesRestConnectionImpl::DetachDisk( - google::cloud::cpp::compute::instances::v1::DetachDiskRequest const& +StatusOr +InstancesRestConnectionImpl::DeleteInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instances::v1::DeleteInstanceRequest const& request) { auto current = google::cloud::internal::SaveCurrentOptions(); - return rest_internal::AsyncRestLongRunningOperation< + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteInstance(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::instances::v1:: + DeleteInstanceRequest const& request) { + return stub_->DeleteInstance(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +InstancesRestConnectionImpl::DeleteInstance( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< google::cloud::cpp::compute::v1::Operation, google::cloud::cpp::compute::v1::Operation, google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest, google::cloud::cpp::compute::zone_operations::v1::DeleteOperationRequest>( - background_->cq(), current, request, - [stub = stub_]( - CompletionQueue& cq, - std::unique_ptr context, - google::cloud::internal::ImmutableOptions options, - google::cloud::cpp::compute::instances::v1::DetachDiskRequest const& - request) { - return stub->AsyncDetachDisk(cq, std::move(context), std::move(options), - request); - }, + background_->cq(), current, operation, [stub = stub_](CompletionQueue& cq, std::unique_ptr context, google::cloud::internal::ImmutableOptions options, @@ -482,32 +725,304 @@ InstancesRestConnectionImpl::DetachDisk( }, [](StatusOr op, std::string const&) { return op; }, - retry_policy(*current), backoff_policy(*current), - idempotency_policy(*current)->DetachDisk(request), polling_policy(*current), __func__, [](google::cloud::cpp::compute::v1::Operation const& op) { return op.status() == "DONE"; }, - [request]( - std::string const& op, + [operation]( + std::string const&, google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest& r) { - r.set_project(request.project()); - r.set_zone(request.zone()); - r.set_operation(op); - }, - [request](std::string const& op, - google::cloud::cpp::compute::zone_operations::v1:: - DeleteOperationRequest& r) { - r.set_project(request.project()); - r.set_zone(request.zone()); - r.set_operation(op); + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_zone(info.zone); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::zone_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_zone(info.zone); + r.set_operation(info.operation); }); } -StatusOr -InstancesRestConnectionImpl::GetInstance( - google::cloud::cpp::compute::instances::v1::GetInstanceRequest const& +future> +InstancesRestConnectionImpl::DeleteAccessConfig( + google::cloud::cpp::compute::instances::v1::DeleteAccessConfigRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::zone_operations::v1::DeleteOperationRequest>( + background_->cq(), current, request, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::instances::v1:: + DeleteAccessConfigRequest const& request) { + return stub->AsyncDeleteAccessConfig(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::zone_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::zone_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteAccessConfig(request), + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [request]( + std::string const& op, + google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest& + r) { + r.set_project(request.project()); + r.set_zone(request.zone()); + r.set_operation(op); + }, + [request](std::string const& op, + google::cloud::cpp::compute::zone_operations::v1:: + DeleteOperationRequest& r) { + r.set_project(request.project()); + r.set_zone(request.zone()); + r.set_operation(op); + }); +} + +StatusOr +InstancesRestConnectionImpl::DeleteAccessConfig( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instances::v1::DeleteAccessConfigRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteAccessConfig(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::instances::v1:: + DeleteAccessConfigRequest const& request) { + return stub_->DeleteAccessConfig(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +InstancesRestConnectionImpl::DeleteAccessConfig( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::zone_operations::v1::DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::zone_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::zone_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation]( + std::string const&, + google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest& + r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_zone(info.zone); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::zone_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_zone(info.zone); + r.set_operation(info.operation); + }); +} + +future> +InstancesRestConnectionImpl::DetachDisk( + google::cloud::cpp::compute::instances::v1::DetachDiskRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::zone_operations::v1::DeleteOperationRequest>( + background_->cq(), current, request, + [stub = stub_]( + CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::instances::v1::DetachDiskRequest const& + request) { + return stub->AsyncDetachDisk(cq, std::move(context), std::move(options), + request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::zone_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::zone_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DetachDisk(request), + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [request]( + std::string const& op, + google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest& + r) { + r.set_project(request.project()); + r.set_zone(request.zone()); + r.set_operation(op); + }, + [request](std::string const& op, + google::cloud::cpp::compute::zone_operations::v1:: + DeleteOperationRequest& r) { + r.set_project(request.project()); + r.set_zone(request.zone()); + r.set_operation(op); + }); +} + +StatusOr +InstancesRestConnectionImpl::DetachDisk( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instances::v1::DetachDiskRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DetachDisk(request), + [this]( + rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::instances::v1::DetachDiskRequest const& + request) { + return stub_->DetachDisk(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +InstancesRestConnectionImpl::DetachDisk( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::zone_operations::v1::DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::zone_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::zone_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation]( + std::string const&, + google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest& + r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_zone(info.zone); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::zone_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_zone(info.zone); + r.set_operation(info.operation); + }); +} + +StatusOr +InstancesRestConnectionImpl::GetInstance( + google::cloud::cpp::compute::instances::v1::GetInstanceRequest const& request) { auto current = google::cloud::internal::SaveCurrentOptions(); return google::cloud::rest_internal::RestRetryLoop( @@ -585,45 +1100,1876 @@ InstancesRestConnectionImpl::GetScreenshot( GetScreenshotRequest const& request) { return stub_->GetScreenshot(rest_context, options, request); }, - *current, request, __func__); -} + *current, request, __func__); +} + +StatusOr +InstancesRestConnectionImpl::GetSerialPortOutput( + google::cloud::cpp::compute::instances::v1:: + GetSerialPortOutputRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->GetSerialPortOutput(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::instances::v1:: + GetSerialPortOutputRequest const& request) { + return stub_->GetSerialPortOutput(rest_context, options, request); + }, + *current, request, __func__); +} + +StatusOr +InstancesRestConnectionImpl::GetShieldedInstanceIdentity( + google::cloud::cpp::compute::instances::v1:: + GetShieldedInstanceIdentityRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->GetShieldedInstanceIdentity(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::instances::v1:: + GetShieldedInstanceIdentityRequest const& request) { + return stub_->GetShieldedInstanceIdentity(rest_context, options, + request); + }, + *current, request, __func__); +} + +future> +InstancesRestConnectionImpl::InsertInstance( + google::cloud::cpp::compute::instances::v1::InsertInstanceRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::zone_operations::v1::DeleteOperationRequest>( + background_->cq(), current, request, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::instances::v1:: + InsertInstanceRequest const& request) { + return stub->AsyncInsertInstance(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::zone_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::zone_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->InsertInstance(request), + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [request]( + std::string const& op, + google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest& + r) { + r.set_project(request.project()); + r.set_zone(request.zone()); + r.set_operation(op); + }, + [request](std::string const& op, + google::cloud::cpp::compute::zone_operations::v1:: + DeleteOperationRequest& r) { + r.set_project(request.project()); + r.set_zone(request.zone()); + r.set_operation(op); + }); +} + +StatusOr +InstancesRestConnectionImpl::InsertInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instances::v1::InsertInstanceRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->InsertInstance(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::instances::v1:: + InsertInstanceRequest const& request) { + return stub_->InsertInstance(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +InstancesRestConnectionImpl::InsertInstance( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::zone_operations::v1::DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::zone_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::zone_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation]( + std::string const&, + google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest& + r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_zone(info.zone); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::zone_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_zone(info.zone); + r.set_operation(info.operation); + }); +} + +StreamRange +InstancesRestConnectionImpl::ListInstances( + google::cloud::cpp::compute::instances::v1::ListInstancesRequest request) { + request.clear_page_token(); + auto current = google::cloud::internal::SaveCurrentOptions(); + auto idempotency = idempotency_policy(*current)->ListInstances(request); + char const* function_name = __func__; + return google::cloud::internal::MakePaginationRange< + StreamRange>( + current, std::move(request), + [idempotency, function_name, stub = stub_, + retry = std::shared_ptr( + retry_policy(*current)), + backoff = std::shared_ptr(backoff_policy(*current))]( + Options const& options, google::cloud::cpp::compute::instances::v1:: + ListInstancesRequest const& r) { + return google::cloud::rest_internal::RestRetryLoop( + retry->clone(), backoff->clone(), idempotency, + [stub](rest_internal::RestContext& rest_context, + Options const& options, + google::cloud::cpp::compute::instances::v1:: + ListInstancesRequest const& request) { + return stub->ListInstances(rest_context, options, request); + }, + options, r, function_name); + }, + [](google::cloud::cpp::compute::v1::InstanceList r) { + std::vector result( + r.items().size()); + auto& messages = *r.mutable_items(); + std::move(messages.begin(), messages.end(), result.begin()); + return result; + }); +} + +StreamRange +InstancesRestConnectionImpl::ListReferrers( + google::cloud::cpp::compute::instances::v1::ListReferrersRequest request) { + request.clear_page_token(); + auto current = google::cloud::internal::SaveCurrentOptions(); + auto idempotency = idempotency_policy(*current)->ListReferrers(request); + char const* function_name = __func__; + return google::cloud::internal::MakePaginationRange< + StreamRange>( + current, std::move(request), + [idempotency, function_name, stub = stub_, + retry = std::shared_ptr( + retry_policy(*current)), + backoff = std::shared_ptr(backoff_policy(*current))]( + Options const& options, google::cloud::cpp::compute::instances::v1:: + ListReferrersRequest const& r) { + return google::cloud::rest_internal::RestRetryLoop( + retry->clone(), backoff->clone(), idempotency, + [stub](rest_internal::RestContext& rest_context, + Options const& options, + google::cloud::cpp::compute::instances::v1:: + ListReferrersRequest const& request) { + return stub->ListReferrers(rest_context, options, request); + }, + options, r, function_name); + }, + [](google::cloud::cpp::compute::v1::InstanceListReferrers r) { + std::vector result( + r.items().size()); + auto& messages = *r.mutable_items(); + std::move(messages.begin(), messages.end(), result.begin()); + return result; + }); +} + +future> +InstancesRestConnectionImpl::PerformMaintenance( + google::cloud::cpp::compute::instances::v1::PerformMaintenanceRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::zone_operations::v1::DeleteOperationRequest>( + background_->cq(), current, request, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::instances::v1:: + PerformMaintenanceRequest const& request) { + return stub->AsyncPerformMaintenance(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::zone_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::zone_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->PerformMaintenance(request), + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [request]( + std::string const& op, + google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest& + r) { + r.set_project(request.project()); + r.set_zone(request.zone()); + r.set_operation(op); + }, + [request](std::string const& op, + google::cloud::cpp::compute::zone_operations::v1:: + DeleteOperationRequest& r) { + r.set_project(request.project()); + r.set_zone(request.zone()); + r.set_operation(op); + }); +} + +StatusOr +InstancesRestConnectionImpl::PerformMaintenance( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instances::v1::PerformMaintenanceRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->PerformMaintenance(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::instances::v1:: + PerformMaintenanceRequest const& request) { + return stub_->PerformMaintenance(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +InstancesRestConnectionImpl::PerformMaintenance( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::zone_operations::v1::DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::zone_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::zone_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation]( + std::string const&, + google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest& + r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_zone(info.zone); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::zone_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_zone(info.zone); + r.set_operation(info.operation); + }); +} + +future> +InstancesRestConnectionImpl::RemoveResourcePolicies( + google::cloud::cpp::compute::instances::v1:: + RemoveResourcePoliciesRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::zone_operations::v1::DeleteOperationRequest>( + background_->cq(), current, request, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::instances::v1:: + RemoveResourcePoliciesRequest const& request) { + return stub->AsyncRemoveResourcePolicies(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::zone_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::zone_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->RemoveResourcePolicies(request), + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [request]( + std::string const& op, + google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest& + r) { + r.set_project(request.project()); + r.set_zone(request.zone()); + r.set_operation(op); + }, + [request](std::string const& op, + google::cloud::cpp::compute::zone_operations::v1:: + DeleteOperationRequest& r) { + r.set_project(request.project()); + r.set_zone(request.zone()); + r.set_operation(op); + }); +} + +StatusOr +InstancesRestConnectionImpl::RemoveResourcePolicies( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instances::v1:: + RemoveResourcePoliciesRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->RemoveResourcePolicies(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::instances::v1:: + RemoveResourcePoliciesRequest const& request) { + return stub_->RemoveResourcePolicies(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +InstancesRestConnectionImpl::RemoveResourcePolicies( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::zone_operations::v1::DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::zone_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::zone_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation]( + std::string const&, + google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest& + r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_zone(info.zone); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::zone_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_zone(info.zone); + r.set_operation(info.operation); + }); +} + +future> +InstancesRestConnectionImpl::Reset( + google::cloud::cpp::compute::instances::v1::ResetRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::zone_operations::v1::DeleteOperationRequest>( + background_->cq(), current, request, + [stub = stub_]( + CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::instances::v1::ResetRequest const& + request) { + return stub->AsyncReset(cq, std::move(context), std::move(options), + request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::zone_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::zone_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->Reset(request), polling_policy(*current), + __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [request]( + std::string const& op, + google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest& + r) { + r.set_project(request.project()); + r.set_zone(request.zone()); + r.set_operation(op); + }, + [request](std::string const& op, + google::cloud::cpp::compute::zone_operations::v1:: + DeleteOperationRequest& r) { + r.set_project(request.project()); + r.set_zone(request.zone()); + r.set_operation(op); + }); +} + +StatusOr +InstancesRestConnectionImpl::Reset( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instances::v1::ResetRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->Reset(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::instances::v1::ResetRequest const& + request) { + return stub_->Reset(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +InstancesRestConnectionImpl::Reset( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::zone_operations::v1::DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::zone_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::zone_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation]( + std::string const&, + google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest& + r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_zone(info.zone); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::zone_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_zone(info.zone); + r.set_operation(info.operation); + }); +} + +future> +InstancesRestConnectionImpl::Resume( + google::cloud::cpp::compute::instances::v1::ResumeRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::zone_operations::v1::DeleteOperationRequest>( + background_->cq(), current, request, + [stub = stub_]( + CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::instances::v1::ResumeRequest const& + request) { + return stub->AsyncResume(cq, std::move(context), std::move(options), + request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::zone_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::zone_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->Resume(request), polling_policy(*current), + __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [request]( + std::string const& op, + google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest& + r) { + r.set_project(request.project()); + r.set_zone(request.zone()); + r.set_operation(op); + }, + [request](std::string const& op, + google::cloud::cpp::compute::zone_operations::v1:: + DeleteOperationRequest& r) { + r.set_project(request.project()); + r.set_zone(request.zone()); + r.set_operation(op); + }); +} + +StatusOr +InstancesRestConnectionImpl::Resume( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instances::v1::ResumeRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->Resume(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::instances::v1::ResumeRequest const& + request) { + return stub_->Resume(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +InstancesRestConnectionImpl::Resume( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::zone_operations::v1::DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::zone_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::zone_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation]( + std::string const&, + google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest& + r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_zone(info.zone); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::zone_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_zone(info.zone); + r.set_operation(info.operation); + }); +} + +Status InstancesRestConnectionImpl::SendDiagnosticInterrupt( + google::cloud::cpp::compute::instances::v1:: + SendDiagnosticInterruptRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->SendDiagnosticInterrupt(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::instances::v1:: + SendDiagnosticInterruptRequest const& request) { + return stub_->SendDiagnosticInterrupt(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +InstancesRestConnectionImpl::SetDeletionProtection( + google::cloud::cpp::compute::instances::v1:: + SetDeletionProtectionRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::zone_operations::v1::DeleteOperationRequest>( + background_->cq(), current, request, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::instances::v1:: + SetDeletionProtectionRequest const& request) { + return stub->AsyncSetDeletionProtection(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::zone_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::zone_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->SetDeletionProtection(request), + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [request]( + std::string const& op, + google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest& + r) { + r.set_project(request.project()); + r.set_zone(request.zone()); + r.set_operation(op); + }, + [request](std::string const& op, + google::cloud::cpp::compute::zone_operations::v1:: + DeleteOperationRequest& r) { + r.set_project(request.project()); + r.set_zone(request.zone()); + r.set_operation(op); + }); +} + +StatusOr +InstancesRestConnectionImpl::SetDeletionProtection( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instances::v1:: + SetDeletionProtectionRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->SetDeletionProtection(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::instances::v1:: + SetDeletionProtectionRequest const& request) { + return stub_->SetDeletionProtection(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +InstancesRestConnectionImpl::SetDeletionProtection( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::zone_operations::v1::DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::zone_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::zone_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation]( + std::string const&, + google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest& + r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_zone(info.zone); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::zone_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_zone(info.zone); + r.set_operation(info.operation); + }); +} + +future> +InstancesRestConnectionImpl::SetDiskAutoDelete( + google::cloud::cpp::compute::instances::v1::SetDiskAutoDeleteRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::zone_operations::v1::DeleteOperationRequest>( + background_->cq(), current, request, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::instances::v1:: + SetDiskAutoDeleteRequest const& request) { + return stub->AsyncSetDiskAutoDelete(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::zone_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::zone_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->SetDiskAutoDelete(request), + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [request]( + std::string const& op, + google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest& + r) { + r.set_project(request.project()); + r.set_zone(request.zone()); + r.set_operation(op); + }, + [request](std::string const& op, + google::cloud::cpp::compute::zone_operations::v1:: + DeleteOperationRequest& r) { + r.set_project(request.project()); + r.set_zone(request.zone()); + r.set_operation(op); + }); +} + +StatusOr +InstancesRestConnectionImpl::SetDiskAutoDelete( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instances::v1::SetDiskAutoDeleteRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->SetDiskAutoDelete(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::instances::v1:: + SetDiskAutoDeleteRequest const& request) { + return stub_->SetDiskAutoDelete(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +InstancesRestConnectionImpl::SetDiskAutoDelete( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::zone_operations::v1::DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::zone_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::zone_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation]( + std::string const&, + google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest& + r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_zone(info.zone); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::zone_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_zone(info.zone); + r.set_operation(info.operation); + }); +} + +StatusOr +InstancesRestConnectionImpl::SetIamPolicy( + google::cloud::cpp::compute::instances::v1::SetIamPolicyRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->SetIamPolicy(request), + [this]( + rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::instances::v1::SetIamPolicyRequest const& + request) { + return stub_->SetIamPolicy(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +InstancesRestConnectionImpl::SetLabels( + google::cloud::cpp::compute::instances::v1::SetLabelsRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::zone_operations::v1::DeleteOperationRequest>( + background_->cq(), current, request, + [stub = stub_]( + CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::instances::v1::SetLabelsRequest const& + request) { + return stub->AsyncSetLabels(cq, std::move(context), std::move(options), + request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::zone_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::zone_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->SetLabels(request), + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [request]( + std::string const& op, + google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest& + r) { + r.set_project(request.project()); + r.set_zone(request.zone()); + r.set_operation(op); + }, + [request](std::string const& op, + google::cloud::cpp::compute::zone_operations::v1:: + DeleteOperationRequest& r) { + r.set_project(request.project()); + r.set_zone(request.zone()); + r.set_operation(op); + }); +} + +StatusOr +InstancesRestConnectionImpl::SetLabels( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instances::v1::SetLabelsRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->SetLabels(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::instances::v1::SetLabelsRequest const& + request) { + return stub_->SetLabels(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +InstancesRestConnectionImpl::SetLabels( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::zone_operations::v1::DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::zone_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::zone_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation]( + std::string const&, + google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest& + r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_zone(info.zone); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::zone_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_zone(info.zone); + r.set_operation(info.operation); + }); +} + +future> +InstancesRestConnectionImpl::SetMachineResources( + google::cloud::cpp::compute::instances::v1:: + SetMachineResourcesRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::zone_operations::v1::DeleteOperationRequest>( + background_->cq(), current, request, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::instances::v1:: + SetMachineResourcesRequest const& request) { + return stub->AsyncSetMachineResources(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::zone_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::zone_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->SetMachineResources(request), + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [request]( + std::string const& op, + google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest& + r) { + r.set_project(request.project()); + r.set_zone(request.zone()); + r.set_operation(op); + }, + [request](std::string const& op, + google::cloud::cpp::compute::zone_operations::v1:: + DeleteOperationRequest& r) { + r.set_project(request.project()); + r.set_zone(request.zone()); + r.set_operation(op); + }); +} + +StatusOr +InstancesRestConnectionImpl::SetMachineResources( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instances::v1:: + SetMachineResourcesRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->SetMachineResources(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::instances::v1:: + SetMachineResourcesRequest const& request) { + return stub_->SetMachineResources(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +InstancesRestConnectionImpl::SetMachineResources( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::zone_operations::v1::DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::zone_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::zone_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation]( + std::string const&, + google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest& + r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_zone(info.zone); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::zone_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_zone(info.zone); + r.set_operation(info.operation); + }); +} + +future> +InstancesRestConnectionImpl::SetMachineType( + google::cloud::cpp::compute::instances::v1::SetMachineTypeRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::zone_operations::v1::DeleteOperationRequest>( + background_->cq(), current, request, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::instances::v1:: + SetMachineTypeRequest const& request) { + return stub->AsyncSetMachineType(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::zone_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::zone_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->SetMachineType(request), + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [request]( + std::string const& op, + google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest& + r) { + r.set_project(request.project()); + r.set_zone(request.zone()); + r.set_operation(op); + }, + [request](std::string const& op, + google::cloud::cpp::compute::zone_operations::v1:: + DeleteOperationRequest& r) { + r.set_project(request.project()); + r.set_zone(request.zone()); + r.set_operation(op); + }); +} + +StatusOr +InstancesRestConnectionImpl::SetMachineType( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instances::v1::SetMachineTypeRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->SetMachineType(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::instances::v1:: + SetMachineTypeRequest const& request) { + return stub_->SetMachineType(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +InstancesRestConnectionImpl::SetMachineType( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::zone_operations::v1::DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::zone_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::zone_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation]( + std::string const&, + google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest& + r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_zone(info.zone); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::zone_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_zone(info.zone); + r.set_operation(info.operation); + }); +} + +future> +InstancesRestConnectionImpl::SetMetadata( + google::cloud::cpp::compute::instances::v1::SetMetadataRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::zone_operations::v1::DeleteOperationRequest>( + background_->cq(), current, request, + [stub = stub_]( + CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::instances::v1::SetMetadataRequest const& + request) { + return stub->AsyncSetMetadata(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::zone_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::zone_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->SetMetadata(request), + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [request]( + std::string const& op, + google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest& + r) { + r.set_project(request.project()); + r.set_zone(request.zone()); + r.set_operation(op); + }, + [request](std::string const& op, + google::cloud::cpp::compute::zone_operations::v1:: + DeleteOperationRequest& r) { + r.set_project(request.project()); + r.set_zone(request.zone()); + r.set_operation(op); + }); +} + +StatusOr +InstancesRestConnectionImpl::SetMetadata( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instances::v1::SetMetadataRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->SetMetadata(request), + [this]( + rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::instances::v1::SetMetadataRequest const& + request) { + return stub_->SetMetadata(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +InstancesRestConnectionImpl::SetMetadata( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::zone_operations::v1::DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::zone_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::zone_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation]( + std::string const&, + google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest& + r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_zone(info.zone); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::zone_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_zone(info.zone); + r.set_operation(info.operation); + }); +} + +future> +InstancesRestConnectionImpl::SetMinCpuPlatform( + google::cloud::cpp::compute::instances::v1::SetMinCpuPlatformRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::zone_operations::v1::DeleteOperationRequest>( + background_->cq(), current, request, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::instances::v1:: + SetMinCpuPlatformRequest const& request) { + return stub->AsyncSetMinCpuPlatform(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::zone_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::zone_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->SetMinCpuPlatform(request), + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [request]( + std::string const& op, + google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest& + r) { + r.set_project(request.project()); + r.set_zone(request.zone()); + r.set_operation(op); + }, + [request](std::string const& op, + google::cloud::cpp::compute::zone_operations::v1:: + DeleteOperationRequest& r) { + r.set_project(request.project()); + r.set_zone(request.zone()); + r.set_operation(op); + }); +} + +StatusOr +InstancesRestConnectionImpl::SetMinCpuPlatform( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instances::v1::SetMinCpuPlatformRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->SetMinCpuPlatform(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::instances::v1:: + SetMinCpuPlatformRequest const& request) { + return stub_->SetMinCpuPlatform(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +InstancesRestConnectionImpl::SetMinCpuPlatform( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::zone_operations::v1::DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::zone_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::zone_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation]( + std::string const&, + google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest& + r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_zone(info.zone); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::zone_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_zone(info.zone); + r.set_operation(info.operation); + }); +} + +future> +InstancesRestConnectionImpl::SetName( + google::cloud::cpp::compute::instances::v1::SetNameRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::zone_operations::v1::DeleteOperationRequest>( + background_->cq(), current, request, + [stub = stub_]( + CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::instances::v1::SetNameRequest const& + request) { + return stub->AsyncSetName(cq, std::move(context), std::move(options), + request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::zone_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::zone_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->SetName(request), polling_policy(*current), + __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [request]( + std::string const& op, + google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest& + r) { + r.set_project(request.project()); + r.set_zone(request.zone()); + r.set_operation(op); + }, + [request](std::string const& op, + google::cloud::cpp::compute::zone_operations::v1:: + DeleteOperationRequest& r) { + r.set_project(request.project()); + r.set_zone(request.zone()); + r.set_operation(op); + }); +} + +StatusOr +InstancesRestConnectionImpl::SetName( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instances::v1::SetNameRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->SetName(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::instances::v1::SetNameRequest const& + request) { + return stub_->SetName(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +InstancesRestConnectionImpl::SetName( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::zone_operations::v1::DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::zone_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::zone_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation]( + std::string const&, + google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest& + r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); -StatusOr -InstancesRestConnectionImpl::GetSerialPortOutput( - google::cloud::cpp::compute::instances::v1:: - GetSerialPortOutputRequest const& request) { - auto current = google::cloud::internal::SaveCurrentOptions(); - return google::cloud::rest_internal::RestRetryLoop( - retry_policy(*current), backoff_policy(*current), - idempotency_policy(*current)->GetSerialPortOutput(request), - [this](rest_internal::RestContext& rest_context, Options const& options, - google::cloud::cpp::compute::instances::v1:: - GetSerialPortOutputRequest const& request) { - return stub_->GetSerialPortOutput(rest_context, options, request); - }, - *current, request, __func__); -} + r.set_project(info.project); + r.set_zone(info.zone); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::zone_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); -StatusOr -InstancesRestConnectionImpl::GetShieldedInstanceIdentity( - google::cloud::cpp::compute::instances::v1:: - GetShieldedInstanceIdentityRequest const& request) { - auto current = google::cloud::internal::SaveCurrentOptions(); - return google::cloud::rest_internal::RestRetryLoop( - retry_policy(*current), backoff_policy(*current), - idempotency_policy(*current)->GetShieldedInstanceIdentity(request), - [this](rest_internal::RestContext& rest_context, Options const& options, - google::cloud::cpp::compute::instances::v1:: - GetShieldedInstanceIdentityRequest const& request) { - return stub_->GetShieldedInstanceIdentity(rest_context, options, - request); - }, - *current, request, __func__); + r.set_project(info.project); + r.set_zone(info.zone); + r.set_operation(info.operation); + }); } future> -InstancesRestConnectionImpl::InsertInstance( - google::cloud::cpp::compute::instances::v1::InsertInstanceRequest const& +InstancesRestConnectionImpl::SetScheduling( + google::cloud::cpp::compute::instances::v1::SetSchedulingRequest const& request) { auto current = google::cloud::internal::SaveCurrentOptions(); return rest_internal::AsyncRestLongRunningOperation< @@ -636,9 +2982,9 @@ InstancesRestConnectionImpl::InsertInstance( std::unique_ptr context, google::cloud::internal::ImmutableOptions options, google::cloud::cpp::compute::instances::v1:: - InsertInstanceRequest const& request) { - return stub->AsyncInsertInstance(cq, std::move(context), - std::move(options), request); + SetSchedulingRequest const& request) { + return stub->AsyncSetScheduling(cq, std::move(context), + std::move(options), request); }, [stub = stub_](CompletionQueue& cq, std::unique_ptr context, @@ -659,7 +3005,7 @@ InstancesRestConnectionImpl::InsertInstance( [](StatusOr op, std::string const&) { return op; }, retry_policy(*current), backoff_policy(*current), - idempotency_policy(*current)->InsertInstance(request), + idempotency_policy(*current)->SetScheduling(request), polling_policy(*current), __func__, [](google::cloud::cpp::compute::v1::Operation const& op) { return op.status() == "DONE"; @@ -681,79 +3027,82 @@ InstancesRestConnectionImpl::InsertInstance( }); } -StreamRange -InstancesRestConnectionImpl::ListInstances( - google::cloud::cpp::compute::instances::v1::ListInstancesRequest request) { - request.clear_page_token(); +StatusOr +InstancesRestConnectionImpl::SetScheduling( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instances::v1::SetSchedulingRequest const& + request) { auto current = google::cloud::internal::SaveCurrentOptions(); - auto idempotency = idempotency_policy(*current)->ListInstances(request); - char const* function_name = __func__; - return google::cloud::internal::MakePaginationRange< - StreamRange>( - current, std::move(request), - [idempotency, function_name, stub = stub_, - retry = std::shared_ptr( - retry_policy(*current)), - backoff = std::shared_ptr(backoff_policy(*current))]( - Options const& options, google::cloud::cpp::compute::instances::v1:: - ListInstancesRequest const& r) { - return google::cloud::rest_internal::RestRetryLoop( - retry->clone(), backoff->clone(), idempotency, - [stub](rest_internal::RestContext& rest_context, - Options const& options, - google::cloud::cpp::compute::instances::v1:: - ListInstancesRequest const& request) { - return stub->ListInstances(rest_context, options, request); - }, - options, r, function_name); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->SetScheduling(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::instances::v1:: + SetSchedulingRequest const& request) { + return stub_->SetScheduling(rest_context, options, request); }, - [](google::cloud::cpp::compute::v1::InstanceList r) { - std::vector result( - r.items().size()); - auto& messages = *r.mutable_items(); - std::move(messages.begin(), messages.end(), result.begin()); - return result; - }); + *current, request, __func__); } -StreamRange -InstancesRestConnectionImpl::ListReferrers( - google::cloud::cpp::compute::instances::v1::ListReferrersRequest request) { - request.clear_page_token(); +future> +InstancesRestConnectionImpl::SetScheduling( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { auto current = google::cloud::internal::SaveCurrentOptions(); - auto idempotency = idempotency_policy(*current)->ListReferrers(request); - char const* function_name = __func__; - return google::cloud::internal::MakePaginationRange< - StreamRange>( - current, std::move(request), - [idempotency, function_name, stub = stub_, - retry = std::shared_ptr( - retry_policy(*current)), - backoff = std::shared_ptr(backoff_policy(*current))]( - Options const& options, google::cloud::cpp::compute::instances::v1:: - ListReferrersRequest const& r) { - return google::cloud::rest_internal::RestRetryLoop( - retry->clone(), backoff->clone(), idempotency, - [stub](rest_internal::RestContext& rest_context, - Options const& options, - google::cloud::cpp::compute::instances::v1:: - ListReferrersRequest const& request) { - return stub->ListReferrers(rest_context, options, request); - }, - options, r, function_name); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::zone_operations::v1::DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::zone_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); }, - [](google::cloud::cpp::compute::v1::InstanceListReferrers r) { - std::vector result( - r.items().size()); - auto& messages = *r.mutable_items(); - std::move(messages.begin(), messages.end(), result.begin()); - return result; + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::zone_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation]( + std::string const&, + google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest& + r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_zone(info.zone); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::zone_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_zone(info.zone); + r.set_operation(info.operation); }); } future> -InstancesRestConnectionImpl::PerformMaintenance( - google::cloud::cpp::compute::instances::v1::PerformMaintenanceRequest const& +InstancesRestConnectionImpl::SetSecurityPolicy( + google::cloud::cpp::compute::instances::v1::SetSecurityPolicyRequest const& request) { auto current = google::cloud::internal::SaveCurrentOptions(); return rest_internal::AsyncRestLongRunningOperation< @@ -766,9 +3115,9 @@ InstancesRestConnectionImpl::PerformMaintenance( std::unique_ptr context, google::cloud::internal::ImmutableOptions options, google::cloud::cpp::compute::instances::v1:: - PerformMaintenanceRequest const& request) { - return stub->AsyncPerformMaintenance(cq, std::move(context), - std::move(options), request); + SetSecurityPolicyRequest const& request) { + return stub->AsyncSetSecurityPolicy(cq, std::move(context), + std::move(options), request); }, [stub = stub_](CompletionQueue& cq, std::unique_ptr context, @@ -789,7 +3138,7 @@ InstancesRestConnectionImpl::PerformMaintenance( [](StatusOr op, std::string const&) { return op; }, retry_policy(*current), backoff_policy(*current), - idempotency_policy(*current)->PerformMaintenance(request), + idempotency_policy(*current)->SetSecurityPolicy(request), polling_policy(*current), __func__, [](google::cloud::cpp::compute::v1::Operation const& op) { return op.status() == "DONE"; @@ -811,10 +3160,83 @@ InstancesRestConnectionImpl::PerformMaintenance( }); } +StatusOr +InstancesRestConnectionImpl::SetSecurityPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instances::v1::SetSecurityPolicyRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->SetSecurityPolicy(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::instances::v1:: + SetSecurityPolicyRequest const& request) { + return stub_->SetSecurityPolicy(rest_context, options, request); + }, + *current, request, __func__); +} + future> -InstancesRestConnectionImpl::RemoveResourcePolicies( - google::cloud::cpp::compute::instances::v1:: - RemoveResourcePoliciesRequest const& request) { +InstancesRestConnectionImpl::SetSecurityPolicy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::zone_operations::v1::DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::zone_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::zone_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation]( + std::string const&, + google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest& + r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_zone(info.zone); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::zone_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_zone(info.zone); + r.set_operation(info.operation); + }); +} + +future> +InstancesRestConnectionImpl::SetServiceAccount( + google::cloud::cpp::compute::instances::v1::SetServiceAccountRequest const& + request) { auto current = google::cloud::internal::SaveCurrentOptions(); return rest_internal::AsyncRestLongRunningOperation< google::cloud::cpp::compute::v1::Operation, @@ -826,9 +3248,9 @@ InstancesRestConnectionImpl::RemoveResourcePolicies( std::unique_ptr context, google::cloud::internal::ImmutableOptions options, google::cloud::cpp::compute::instances::v1:: - RemoveResourcePoliciesRequest const& request) { - return stub->AsyncRemoveResourcePolicies(cq, std::move(context), - std::move(options), request); + SetServiceAccountRequest const& request) { + return stub->AsyncSetServiceAccount(cq, std::move(context), + std::move(options), request); }, [stub = stub_](CompletionQueue& cq, std::unique_ptr context, @@ -849,7 +3271,7 @@ InstancesRestConnectionImpl::RemoveResourcePolicies( [](StatusOr op, std::string const&) { return op; }, retry_policy(*current), backoff_policy(*current), - idempotency_policy(*current)->RemoveResourcePolicies(request), + idempotency_policy(*current)->SetServiceAccount(request), polling_policy(*current), __func__, [](google::cloud::cpp::compute::v1::Operation const& op) { return op.status() == "DONE"; @@ -871,25 +3293,34 @@ InstancesRestConnectionImpl::RemoveResourcePolicies( }); } +StatusOr +InstancesRestConnectionImpl::SetServiceAccount( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instances::v1::SetServiceAccountRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->SetServiceAccount(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::instances::v1:: + SetServiceAccountRequest const& request) { + return stub_->SetServiceAccount(rest_context, options, request); + }, + *current, request, __func__); +} + future> -InstancesRestConnectionImpl::Reset( - google::cloud::cpp::compute::instances::v1::ResetRequest const& request) { +InstancesRestConnectionImpl::SetServiceAccount( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { auto current = google::cloud::internal::SaveCurrentOptions(); - return rest_internal::AsyncRestLongRunningOperation< - google::cloud::cpp::compute::v1::Operation, + return rest_internal::AsyncRestAwaitLongRunningOperation< google::cloud::cpp::compute::v1::Operation, - google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest, - google::cloud::cpp::compute::zone_operations::v1::DeleteOperationRequest>( - background_->cq(), current, request, - [stub = stub_]( - CompletionQueue& cq, - std::unique_ptr context, - google::cloud::internal::ImmutableOptions options, - google::cloud::cpp::compute::instances::v1::ResetRequest const& - request) { - return stub->AsyncReset(cq, std::move(context), std::move(options), - request); - }, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::zone_operations::v1::DeleteOperationRequest>( + background_->cq(), current, operation, [stub = stub_](CompletionQueue& cq, std::unique_ptr context, google::cloud::internal::ImmutableOptions options, @@ -908,32 +3339,37 @@ InstancesRestConnectionImpl::Reset( }, [](StatusOr op, std::string const&) { return op; }, - retry_policy(*current), backoff_policy(*current), - idempotency_policy(*current)->Reset(request), polling_policy(*current), - __func__, + polling_policy(*current), __func__, [](google::cloud::cpp::compute::v1::Operation const& op) { return op.status() == "DONE"; }, - [request]( - std::string const& op, + [operation]( + std::string const&, google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest& r) { - r.set_project(request.project()); - r.set_zone(request.zone()); - r.set_operation(op); - }, - [request](std::string const& op, - google::cloud::cpp::compute::zone_operations::v1:: - DeleteOperationRequest& r) { - r.set_project(request.project()); - r.set_zone(request.zone()); - r.set_operation(op); + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_zone(info.zone); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::zone_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_zone(info.zone); + r.set_operation(info.operation); }); } future> -InstancesRestConnectionImpl::Resume( - google::cloud::cpp::compute::instances::v1::ResumeRequest const& request) { +InstancesRestConnectionImpl::SetShieldedInstanceIntegrityPolicy( + google::cloud::cpp::compute::instances::v1:: + SetShieldedInstanceIntegrityPolicyRequest const& request) { auto current = google::cloud::internal::SaveCurrentOptions(); return rest_internal::AsyncRestLongRunningOperation< google::cloud::cpp::compute::v1::Operation, @@ -945,10 +3381,10 @@ InstancesRestConnectionImpl::Resume( CompletionQueue& cq, std::unique_ptr context, google::cloud::internal::ImmutableOptions options, - google::cloud::cpp::compute::instances::v1::ResumeRequest const& - request) { - return stub->AsyncResume(cq, std::move(context), std::move(options), - request); + google::cloud::cpp::compute::instances::v1:: + SetShieldedInstanceIntegrityPolicyRequest const& request) { + return stub->AsyncSetShieldedInstanceIntegrityPolicy( + cq, std::move(context), std::move(options), request); }, [stub = stub_](CompletionQueue& cq, std::unique_ptr context, @@ -969,8 +3405,8 @@ InstancesRestConnectionImpl::Resume( [](StatusOr op, std::string const&) { return op; }, retry_policy(*current), backoff_policy(*current), - idempotency_policy(*current)->Resume(request), polling_policy(*current), - __func__, + idempotency_policy(*current)->SetShieldedInstanceIntegrityPolicy(request), + polling_policy(*current), __func__, [](google::cloud::cpp::compute::v1::Operation const& op) { return op.status() == "DONE"; }, @@ -991,40 +3427,35 @@ InstancesRestConnectionImpl::Resume( }); } -Status InstancesRestConnectionImpl::SendDiagnosticInterrupt( +StatusOr +InstancesRestConnectionImpl::SetShieldedInstanceIntegrityPolicy( + ExperimentalTag, NoAwaitTag, google::cloud::cpp::compute::instances::v1:: - SendDiagnosticInterruptRequest const& request) { + SetShieldedInstanceIntegrityPolicyRequest const& request) { auto current = google::cloud::internal::SaveCurrentOptions(); return google::cloud::rest_internal::RestRetryLoop( retry_policy(*current), backoff_policy(*current), - idempotency_policy(*current)->SendDiagnosticInterrupt(request), + idempotency_policy(*current)->SetShieldedInstanceIntegrityPolicy(request), [this](rest_internal::RestContext& rest_context, Options const& options, google::cloud::cpp::compute::instances::v1:: - SendDiagnosticInterruptRequest const& request) { - return stub_->SendDiagnosticInterrupt(rest_context, options, request); + SetShieldedInstanceIntegrityPolicyRequest const& request) { + return stub_->SetShieldedInstanceIntegrityPolicy(rest_context, options, + request); }, *current, request, __func__); } future> -InstancesRestConnectionImpl::SetDeletionProtection( - google::cloud::cpp::compute::instances::v1:: - SetDeletionProtectionRequest const& request) { +InstancesRestConnectionImpl::SetShieldedInstanceIntegrityPolicy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { auto current = google::cloud::internal::SaveCurrentOptions(); - return rest_internal::AsyncRestLongRunningOperation< + return rest_internal::AsyncRestAwaitLongRunningOperation< google::cloud::cpp::compute::v1::Operation, google::cloud::cpp::compute::v1::Operation, google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest, google::cloud::cpp::compute::zone_operations::v1::DeleteOperationRequest>( - background_->cq(), current, request, - [stub = stub_](CompletionQueue& cq, - std::unique_ptr context, - google::cloud::internal::ImmutableOptions options, - google::cloud::cpp::compute::instances::v1:: - SetDeletionProtectionRequest const& request) { - return stub->AsyncSetDeletionProtection(cq, std::move(context), - std::move(options), request); - }, + background_->cq(), current, operation, [stub = stub_](CompletionQueue& cq, std::unique_ptr context, google::cloud::internal::ImmutableOptions options, @@ -1043,33 +3474,36 @@ InstancesRestConnectionImpl::SetDeletionProtection( }, [](StatusOr op, std::string const&) { return op; }, - retry_policy(*current), backoff_policy(*current), - idempotency_policy(*current)->SetDeletionProtection(request), polling_policy(*current), __func__, [](google::cloud::cpp::compute::v1::Operation const& op) { return op.status() == "DONE"; }, - [request]( - std::string const& op, + [operation]( + std::string const&, google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest& r) { - r.set_project(request.project()); - r.set_zone(request.zone()); - r.set_operation(op); - }, - [request](std::string const& op, - google::cloud::cpp::compute::zone_operations::v1:: - DeleteOperationRequest& r) { - r.set_project(request.project()); - r.set_zone(request.zone()); - r.set_operation(op); + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_zone(info.zone); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::zone_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_zone(info.zone); + r.set_operation(info.operation); }); } future> -InstancesRestConnectionImpl::SetDiskAutoDelete( - google::cloud::cpp::compute::instances::v1::SetDiskAutoDeleteRequest const& - request) { +InstancesRestConnectionImpl::SetTags( + google::cloud::cpp::compute::instances::v1::SetTagsRequest const& request) { auto current = google::cloud::internal::SaveCurrentOptions(); return rest_internal::AsyncRestLongRunningOperation< google::cloud::cpp::compute::v1::Operation, @@ -1077,13 +3511,14 @@ InstancesRestConnectionImpl::SetDiskAutoDelete( google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest, google::cloud::cpp::compute::zone_operations::v1::DeleteOperationRequest>( background_->cq(), current, request, - [stub = stub_](CompletionQueue& cq, - std::unique_ptr context, - google::cloud::internal::ImmutableOptions options, - google::cloud::cpp::compute::instances::v1:: - SetDiskAutoDeleteRequest const& request) { - return stub->AsyncSetDiskAutoDelete(cq, std::move(context), - std::move(options), request); + [stub = stub_]( + CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::instances::v1::SetTagsRequest const& + request) { + return stub->AsyncSetTags(cq, std::move(context), std::move(options), + request); }, [stub = stub_](CompletionQueue& cq, std::unique_ptr context, @@ -1104,8 +3539,8 @@ InstancesRestConnectionImpl::SetDiskAutoDelete( [](StatusOr op, std::string const&) { return op; }, retry_policy(*current), backoff_policy(*current), - idempotency_policy(*current)->SetDiskAutoDelete(request), - polling_policy(*current), __func__, + idempotency_policy(*current)->SetTags(request), polling_policy(*current), + __func__, [](google::cloud::cpp::compute::v1::Operation const& op) { return op.status() == "DONE"; }, @@ -1126,43 +3561,33 @@ InstancesRestConnectionImpl::SetDiskAutoDelete( }); } -StatusOr -InstancesRestConnectionImpl::SetIamPolicy( - google::cloud::cpp::compute::instances::v1::SetIamPolicyRequest const& - request) { +StatusOr +InstancesRestConnectionImpl::SetTags( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instances::v1::SetTagsRequest const& request) { auto current = google::cloud::internal::SaveCurrentOptions(); return google::cloud::rest_internal::RestRetryLoop( retry_policy(*current), backoff_policy(*current), - idempotency_policy(*current)->SetIamPolicy(request), - [this]( - rest_internal::RestContext& rest_context, Options const& options, - google::cloud::cpp::compute::instances::v1::SetIamPolicyRequest const& - request) { - return stub_->SetIamPolicy(rest_context, options, request); + idempotency_policy(*current)->SetTags(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::instances::v1::SetTagsRequest const& + request) { + return stub_->SetTags(rest_context, options, request); }, *current, request, __func__); } future> -InstancesRestConnectionImpl::SetLabels( - google::cloud::cpp::compute::instances::v1::SetLabelsRequest const& - request) { +InstancesRestConnectionImpl::SetTags( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { auto current = google::cloud::internal::SaveCurrentOptions(); - return rest_internal::AsyncRestLongRunningOperation< + return rest_internal::AsyncRestAwaitLongRunningOperation< google::cloud::cpp::compute::v1::Operation, google::cloud::cpp::compute::v1::Operation, google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest, google::cloud::cpp::compute::zone_operations::v1::DeleteOperationRequest>( - background_->cq(), current, request, - [stub = stub_]( - CompletionQueue& cq, - std::unique_ptr context, - google::cloud::internal::ImmutableOptions options, - google::cloud::cpp::compute::instances::v1::SetLabelsRequest const& - request) { - return stub->AsyncSetLabels(cq, std::move(context), std::move(options), - request); - }, + background_->cq(), current, operation, [stub = stub_](CompletionQueue& cq, std::unique_ptr context, google::cloud::internal::ImmutableOptions options, @@ -1181,33 +3606,37 @@ InstancesRestConnectionImpl::SetLabels( }, [](StatusOr op, std::string const&) { return op; }, - retry_policy(*current), backoff_policy(*current), - idempotency_policy(*current)->SetLabels(request), polling_policy(*current), __func__, [](google::cloud::cpp::compute::v1::Operation const& op) { return op.status() == "DONE"; }, - [request]( - std::string const& op, + [operation]( + std::string const&, google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest& r) { - r.set_project(request.project()); - r.set_zone(request.zone()); - r.set_operation(op); - }, - [request](std::string const& op, - google::cloud::cpp::compute::zone_operations::v1:: - DeleteOperationRequest& r) { - r.set_project(request.project()); - r.set_zone(request.zone()); - r.set_operation(op); + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_zone(info.zone); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::zone_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_zone(info.zone); + r.set_operation(info.operation); }); } future> -InstancesRestConnectionImpl::SetMachineResources( +InstancesRestConnectionImpl::SimulateMaintenanceEvent( google::cloud::cpp::compute::instances::v1:: - SetMachineResourcesRequest const& request) { + SimulateMaintenanceEventRequest const& request) { auto current = google::cloud::internal::SaveCurrentOptions(); return rest_internal::AsyncRestLongRunningOperation< google::cloud::cpp::compute::v1::Operation, @@ -1219,9 +3648,9 @@ InstancesRestConnectionImpl::SetMachineResources( std::unique_ptr context, google::cloud::internal::ImmutableOptions options, google::cloud::cpp::compute::instances::v1:: - SetMachineResourcesRequest const& request) { - return stub->AsyncSetMachineResources(cq, std::move(context), - std::move(options), request); + SimulateMaintenanceEventRequest const& request) { + return stub->AsyncSimulateMaintenanceEvent(cq, std::move(context), + std::move(options), request); }, [stub = stub_](CompletionQueue& cq, std::unique_ptr context, @@ -1242,7 +3671,7 @@ InstancesRestConnectionImpl::SetMachineResources( [](StatusOr op, std::string const&) { return op; }, retry_policy(*current), backoff_policy(*current), - idempotency_policy(*current)->SetMachineResources(request), + idempotency_policy(*current)->SimulateMaintenanceEvent(request), polling_policy(*current), __func__, [](google::cloud::cpp::compute::v1::Operation const& op) { return op.status() == "DONE"; @@ -1264,25 +3693,34 @@ InstancesRestConnectionImpl::SetMachineResources( }); } +StatusOr +InstancesRestConnectionImpl::SimulateMaintenanceEvent( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instances::v1:: + SimulateMaintenanceEventRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->SimulateMaintenanceEvent(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::instances::v1:: + SimulateMaintenanceEventRequest const& request) { + return stub_->SimulateMaintenanceEvent(rest_context, options, request); + }, + *current, request, __func__); +} + future> -InstancesRestConnectionImpl::SetMachineType( - google::cloud::cpp::compute::instances::v1::SetMachineTypeRequest const& - request) { +InstancesRestConnectionImpl::SimulateMaintenanceEvent( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { auto current = google::cloud::internal::SaveCurrentOptions(); - return rest_internal::AsyncRestLongRunningOperation< + return rest_internal::AsyncRestAwaitLongRunningOperation< google::cloud::cpp::compute::v1::Operation, google::cloud::cpp::compute::v1::Operation, google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest, google::cloud::cpp::compute::zone_operations::v1::DeleteOperationRequest>( - background_->cq(), current, request, - [stub = stub_](CompletionQueue& cq, - std::unique_ptr context, - google::cloud::internal::ImmutableOptions options, - google::cloud::cpp::compute::instances::v1:: - SetMachineTypeRequest const& request) { - return stub->AsyncSetMachineType(cq, std::move(context), - std::move(options), request); - }, + background_->cq(), current, operation, [stub = stub_](CompletionQueue& cq, std::unique_ptr context, google::cloud::internal::ImmutableOptions options, @@ -1301,33 +3739,36 @@ InstancesRestConnectionImpl::SetMachineType( }, [](StatusOr op, std::string const&) { return op; }, - retry_policy(*current), backoff_policy(*current), - idempotency_policy(*current)->SetMachineType(request), polling_policy(*current), __func__, [](google::cloud::cpp::compute::v1::Operation const& op) { return op.status() == "DONE"; }, - [request]( - std::string const& op, + [operation]( + std::string const&, google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest& r) { - r.set_project(request.project()); - r.set_zone(request.zone()); - r.set_operation(op); - }, - [request](std::string const& op, - google::cloud::cpp::compute::zone_operations::v1:: - DeleteOperationRequest& r) { - r.set_project(request.project()); - r.set_zone(request.zone()); - r.set_operation(op); + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_zone(info.zone); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::zone_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_zone(info.zone); + r.set_operation(info.operation); }); } future> -InstancesRestConnectionImpl::SetMetadata( - google::cloud::cpp::compute::instances::v1::SetMetadataRequest const& - request) { +InstancesRestConnectionImpl::Start( + google::cloud::cpp::compute::instances::v1::StartRequest const& request) { auto current = google::cloud::internal::SaveCurrentOptions(); return rest_internal::AsyncRestLongRunningOperation< google::cloud::cpp::compute::v1::Operation, @@ -1339,10 +3780,10 @@ InstancesRestConnectionImpl::SetMetadata( CompletionQueue& cq, std::unique_ptr context, google::cloud::internal::ImmutableOptions options, - google::cloud::cpp::compute::instances::v1::SetMetadataRequest const& + google::cloud::cpp::compute::instances::v1::StartRequest const& request) { - return stub->AsyncSetMetadata(cq, std::move(context), - std::move(options), request); + return stub->AsyncStart(cq, std::move(context), std::move(options), + request); }, [stub = stub_](CompletionQueue& cq, std::unique_ptr context, @@ -1363,8 +3804,8 @@ InstancesRestConnectionImpl::SetMetadata( [](StatusOr op, std::string const&) { return op; }, retry_policy(*current), backoff_policy(*current), - idempotency_policy(*current)->SetMetadata(request), - polling_policy(*current), __func__, + idempotency_policy(*current)->Start(request), polling_policy(*current), + __func__, [](google::cloud::cpp::compute::v1::Operation const& op) { return op.status() == "DONE"; }, @@ -1385,25 +3826,33 @@ InstancesRestConnectionImpl::SetMetadata( }); } +StatusOr +InstancesRestConnectionImpl::Start( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instances::v1::StartRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->Start(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::instances::v1::StartRequest const& + request) { + return stub_->Start(rest_context, options, request); + }, + *current, request, __func__); +} + future> -InstancesRestConnectionImpl::SetMinCpuPlatform( - google::cloud::cpp::compute::instances::v1::SetMinCpuPlatformRequest const& - request) { +InstancesRestConnectionImpl::Start( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { auto current = google::cloud::internal::SaveCurrentOptions(); - return rest_internal::AsyncRestLongRunningOperation< + return rest_internal::AsyncRestAwaitLongRunningOperation< google::cloud::cpp::compute::v1::Operation, google::cloud::cpp::compute::v1::Operation, google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest, google::cloud::cpp::compute::zone_operations::v1::DeleteOperationRequest>( - background_->cq(), current, request, - [stub = stub_](CompletionQueue& cq, - std::unique_ptr context, - google::cloud::internal::ImmutableOptions options, - google::cloud::cpp::compute::instances::v1:: - SetMinCpuPlatformRequest const& request) { - return stub->AsyncSetMinCpuPlatform(cq, std::move(context), - std::move(options), request); - }, + background_->cq(), current, operation, [stub = stub_](CompletionQueue& cq, std::unique_ptr context, google::cloud::internal::ImmutableOptions options, @@ -1422,32 +3871,37 @@ InstancesRestConnectionImpl::SetMinCpuPlatform( }, [](StatusOr op, std::string const&) { return op; }, - retry_policy(*current), backoff_policy(*current), - idempotency_policy(*current)->SetMinCpuPlatform(request), polling_policy(*current), __func__, [](google::cloud::cpp::compute::v1::Operation const& op) { - return op.status() == "DONE"; - }, - [request]( - std::string const& op, - google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest& - r) { - r.set_project(request.project()); - r.set_zone(request.zone()); - r.set_operation(op); - }, - [request](std::string const& op, - google::cloud::cpp::compute::zone_operations::v1:: - DeleteOperationRequest& r) { - r.set_project(request.project()); - r.set_zone(request.zone()); - r.set_operation(op); + return op.status() == "DONE"; + }, + [operation]( + std::string const&, + google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest& + r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_zone(info.zone); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::zone_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_zone(info.zone); + r.set_operation(info.operation); }); } future> -InstancesRestConnectionImpl::SetName( - google::cloud::cpp::compute::instances::v1::SetNameRequest const& request) { +InstancesRestConnectionImpl::StartWithEncryptionKey( + google::cloud::cpp::compute::instances::v1:: + StartWithEncryptionKeyRequest const& request) { auto current = google::cloud::internal::SaveCurrentOptions(); return rest_internal::AsyncRestLongRunningOperation< google::cloud::cpp::compute::v1::Operation, @@ -1455,14 +3909,13 @@ InstancesRestConnectionImpl::SetName( google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest, google::cloud::cpp::compute::zone_operations::v1::DeleteOperationRequest>( background_->cq(), current, request, - [stub = stub_]( - CompletionQueue& cq, - std::unique_ptr context, - google::cloud::internal::ImmutableOptions options, - google::cloud::cpp::compute::instances::v1::SetNameRequest const& - request) { - return stub->AsyncSetName(cq, std::move(context), std::move(options), - request); + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::instances::v1:: + StartWithEncryptionKeyRequest const& request) { + return stub->AsyncStartWithEncryptionKey(cq, std::move(context), + std::move(options), request); }, [stub = stub_](CompletionQueue& cq, std::unique_ptr context, @@ -1483,8 +3936,8 @@ InstancesRestConnectionImpl::SetName( [](StatusOr op, std::string const&) { return op; }, retry_policy(*current), backoff_policy(*current), - idempotency_policy(*current)->SetName(request), polling_policy(*current), - __func__, + idempotency_policy(*current)->StartWithEncryptionKey(request), + polling_policy(*current), __func__, [](google::cloud::cpp::compute::v1::Operation const& op) { return op.status() == "DONE"; }, @@ -1505,25 +3958,34 @@ InstancesRestConnectionImpl::SetName( }); } +StatusOr +InstancesRestConnectionImpl::StartWithEncryptionKey( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instances::v1:: + StartWithEncryptionKeyRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->StartWithEncryptionKey(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::instances::v1:: + StartWithEncryptionKeyRequest const& request) { + return stub_->StartWithEncryptionKey(rest_context, options, request); + }, + *current, request, __func__); +} + future> -InstancesRestConnectionImpl::SetScheduling( - google::cloud::cpp::compute::instances::v1::SetSchedulingRequest const& - request) { +InstancesRestConnectionImpl::StartWithEncryptionKey( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { auto current = google::cloud::internal::SaveCurrentOptions(); - return rest_internal::AsyncRestLongRunningOperation< + return rest_internal::AsyncRestAwaitLongRunningOperation< google::cloud::cpp::compute::v1::Operation, google::cloud::cpp::compute::v1::Operation, google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest, google::cloud::cpp::compute::zone_operations::v1::DeleteOperationRequest>( - background_->cq(), current, request, - [stub = stub_](CompletionQueue& cq, - std::unique_ptr context, - google::cloud::internal::ImmutableOptions options, - google::cloud::cpp::compute::instances::v1:: - SetSchedulingRequest const& request) { - return stub->AsyncSetScheduling(cq, std::move(context), - std::move(options), request); - }, + background_->cq(), current, operation, [stub = stub_](CompletionQueue& cq, std::unique_ptr context, google::cloud::internal::ImmutableOptions options, @@ -1542,33 +4004,36 @@ InstancesRestConnectionImpl::SetScheduling( }, [](StatusOr op, std::string const&) { return op; }, - retry_policy(*current), backoff_policy(*current), - idempotency_policy(*current)->SetScheduling(request), polling_policy(*current), __func__, [](google::cloud::cpp::compute::v1::Operation const& op) { return op.status() == "DONE"; }, - [request]( - std::string const& op, + [operation]( + std::string const&, google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest& r) { - r.set_project(request.project()); - r.set_zone(request.zone()); - r.set_operation(op); - }, - [request](std::string const& op, - google::cloud::cpp::compute::zone_operations::v1:: - DeleteOperationRequest& r) { - r.set_project(request.project()); - r.set_zone(request.zone()); - r.set_operation(op); + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_zone(info.zone); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::zone_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_zone(info.zone); + r.set_operation(info.operation); }); } future> -InstancesRestConnectionImpl::SetSecurityPolicy( - google::cloud::cpp::compute::instances::v1::SetSecurityPolicyRequest const& - request) { +InstancesRestConnectionImpl::Stop( + google::cloud::cpp::compute::instances::v1::StopRequest const& request) { auto current = google::cloud::internal::SaveCurrentOptions(); return rest_internal::AsyncRestLongRunningOperation< google::cloud::cpp::compute::v1::Operation, @@ -1576,13 +4041,14 @@ InstancesRestConnectionImpl::SetSecurityPolicy( google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest, google::cloud::cpp::compute::zone_operations::v1::DeleteOperationRequest>( background_->cq(), current, request, - [stub = stub_](CompletionQueue& cq, - std::unique_ptr context, - google::cloud::internal::ImmutableOptions options, - google::cloud::cpp::compute::instances::v1:: - SetSecurityPolicyRequest const& request) { - return stub->AsyncSetSecurityPolicy(cq, std::move(context), - std::move(options), request); + [stub = stub_]( + CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::instances::v1::StopRequest const& + request) { + return stub->AsyncStop(cq, std::move(context), std::move(options), + request); }, [stub = stub_](CompletionQueue& cq, std::unique_ptr context, @@ -1603,8 +4069,8 @@ InstancesRestConnectionImpl::SetSecurityPolicy( [](StatusOr op, std::string const&) { return op; }, retry_policy(*current), backoff_policy(*current), - idempotency_policy(*current)->SetSecurityPolicy(request), - polling_policy(*current), __func__, + idempotency_policy(*current)->Stop(request), polling_policy(*current), + __func__, [](google::cloud::cpp::compute::v1::Operation const& op) { return op.status() == "DONE"; }, @@ -1625,25 +4091,33 @@ InstancesRestConnectionImpl::SetSecurityPolicy( }); } +StatusOr +InstancesRestConnectionImpl::Stop( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instances::v1::StopRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->Stop(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::instances::v1::StopRequest const& + request) { + return stub_->Stop(rest_context, options, request); + }, + *current, request, __func__); +} + future> -InstancesRestConnectionImpl::SetServiceAccount( - google::cloud::cpp::compute::instances::v1::SetServiceAccountRequest const& - request) { +InstancesRestConnectionImpl::Stop( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { auto current = google::cloud::internal::SaveCurrentOptions(); - return rest_internal::AsyncRestLongRunningOperation< + return rest_internal::AsyncRestAwaitLongRunningOperation< google::cloud::cpp::compute::v1::Operation, google::cloud::cpp::compute::v1::Operation, google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest, google::cloud::cpp::compute::zone_operations::v1::DeleteOperationRequest>( - background_->cq(), current, request, - [stub = stub_](CompletionQueue& cq, - std::unique_ptr context, - google::cloud::internal::ImmutableOptions options, - google::cloud::cpp::compute::instances::v1:: - SetServiceAccountRequest const& request) { - return stub->AsyncSetServiceAccount(cq, std::move(context), - std::move(options), request); - }, + background_->cq(), current, operation, [stub = stub_](CompletionQueue& cq, std::unique_ptr context, google::cloud::internal::ImmutableOptions options, @@ -1662,33 +4136,36 @@ InstancesRestConnectionImpl::SetServiceAccount( }, [](StatusOr op, std::string const&) { return op; }, - retry_policy(*current), backoff_policy(*current), - idempotency_policy(*current)->SetServiceAccount(request), polling_policy(*current), __func__, [](google::cloud::cpp::compute::v1::Operation const& op) { return op.status() == "DONE"; }, - [request]( - std::string const& op, + [operation]( + std::string const&, google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest& r) { - r.set_project(request.project()); - r.set_zone(request.zone()); - r.set_operation(op); - }, - [request](std::string const& op, - google::cloud::cpp::compute::zone_operations::v1:: - DeleteOperationRequest& r) { - r.set_project(request.project()); - r.set_zone(request.zone()); - r.set_operation(op); + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_zone(info.zone); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::zone_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_zone(info.zone); + r.set_operation(info.operation); }); } future> -InstancesRestConnectionImpl::SetShieldedInstanceIntegrityPolicy( - google::cloud::cpp::compute::instances::v1:: - SetShieldedInstanceIntegrityPolicyRequest const& request) { +InstancesRestConnectionImpl::Suspend( + google::cloud::cpp::compute::instances::v1::SuspendRequest const& request) { auto current = google::cloud::internal::SaveCurrentOptions(); return rest_internal::AsyncRestLongRunningOperation< google::cloud::cpp::compute::v1::Operation, @@ -1700,10 +4177,10 @@ InstancesRestConnectionImpl::SetShieldedInstanceIntegrityPolicy( CompletionQueue& cq, std::unique_ptr context, google::cloud::internal::ImmutableOptions options, - google::cloud::cpp::compute::instances::v1:: - SetShieldedInstanceIntegrityPolicyRequest const& request) { - return stub->AsyncSetShieldedInstanceIntegrityPolicy( - cq, std::move(context), std::move(options), request); + google::cloud::cpp::compute::instances::v1::SuspendRequest const& + request) { + return stub->AsyncSuspend(cq, std::move(context), std::move(options), + request); }, [stub = stub_](CompletionQueue& cq, std::unique_ptr context, @@ -1724,8 +4201,8 @@ InstancesRestConnectionImpl::SetShieldedInstanceIntegrityPolicy( [](StatusOr op, std::string const&) { return op; }, retry_policy(*current), backoff_policy(*current), - idempotency_policy(*current)->SetShieldedInstanceIntegrityPolicy(request), - polling_policy(*current), __func__, + idempotency_policy(*current)->Suspend(request), polling_policy(*current), + __func__, [](google::cloud::cpp::compute::v1::Operation const& op) { return op.status() == "DONE"; }, @@ -1746,25 +4223,33 @@ InstancesRestConnectionImpl::SetShieldedInstanceIntegrityPolicy( }); } +StatusOr +InstancesRestConnectionImpl::Suspend( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instances::v1::SuspendRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->Suspend(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::instances::v1::SuspendRequest const& + request) { + return stub_->Suspend(rest_context, options, request); + }, + *current, request, __func__); +} + future> -InstancesRestConnectionImpl::SetTags( - google::cloud::cpp::compute::instances::v1::SetTagsRequest const& request) { +InstancesRestConnectionImpl::Suspend( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { auto current = google::cloud::internal::SaveCurrentOptions(); - return rest_internal::AsyncRestLongRunningOperation< + return rest_internal::AsyncRestAwaitLongRunningOperation< google::cloud::cpp::compute::v1::Operation, google::cloud::cpp::compute::v1::Operation, google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest, google::cloud::cpp::compute::zone_operations::v1::DeleteOperationRequest>( - background_->cq(), current, request, - [stub = stub_]( - CompletionQueue& cq, - std::unique_ptr context, - google::cloud::internal::ImmutableOptions options, - google::cloud::cpp::compute::instances::v1::SetTagsRequest const& - request) { - return stub->AsyncSetTags(cq, std::move(context), std::move(options), - request); - }, + background_->cq(), current, operation, [stub = stub_](CompletionQueue& cq, std::unique_ptr context, google::cloud::internal::ImmutableOptions options, @@ -1783,33 +4268,53 @@ InstancesRestConnectionImpl::SetTags( }, [](StatusOr op, std::string const&) { return op; }, - retry_policy(*current), backoff_policy(*current), - idempotency_policy(*current)->SetTags(request), polling_policy(*current), - __func__, + polling_policy(*current), __func__, [](google::cloud::cpp::compute::v1::Operation const& op) { return op.status() == "DONE"; }, - [request]( - std::string const& op, + [operation]( + std::string const&, google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest& r) { - r.set_project(request.project()); - r.set_zone(request.zone()); - r.set_operation(op); - }, - [request](std::string const& op, - google::cloud::cpp::compute::zone_operations::v1:: - DeleteOperationRequest& r) { - r.set_project(request.project()); - r.set_zone(request.zone()); - r.set_operation(op); + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_zone(info.zone); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::zone_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_zone(info.zone); + r.set_operation(info.operation); }); } +StatusOr +InstancesRestConnectionImpl::TestIamPermissions( + google::cloud::cpp::compute::instances::v1::TestIamPermissionsRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->TestIamPermissions(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::instances::v1:: + TestIamPermissionsRequest const& request) { + return stub_->TestIamPermissions(rest_context, options, request); + }, + *current, request, __func__); +} + future> -InstancesRestConnectionImpl::SimulateMaintenanceEvent( - google::cloud::cpp::compute::instances::v1:: - SimulateMaintenanceEventRequest const& request) { +InstancesRestConnectionImpl::UpdateInstance( + google::cloud::cpp::compute::instances::v1::UpdateInstanceRequest const& + request) { auto current = google::cloud::internal::SaveCurrentOptions(); return rest_internal::AsyncRestLongRunningOperation< google::cloud::cpp::compute::v1::Operation, @@ -1821,9 +4326,9 @@ InstancesRestConnectionImpl::SimulateMaintenanceEvent( std::unique_ptr context, google::cloud::internal::ImmutableOptions options, google::cloud::cpp::compute::instances::v1:: - SimulateMaintenanceEventRequest const& request) { - return stub->AsyncSimulateMaintenanceEvent(cq, std::move(context), - std::move(options), request); + UpdateInstanceRequest const& request) { + return stub->AsyncUpdateInstance(cq, std::move(context), + std::move(options), request); }, [stub = stub_](CompletionQueue& cq, std::unique_ptr context, @@ -1844,7 +4349,7 @@ InstancesRestConnectionImpl::SimulateMaintenanceEvent( [](StatusOr op, std::string const&) { return op; }, retry_policy(*current), backoff_policy(*current), - idempotency_policy(*current)->SimulateMaintenanceEvent(request), + idempotency_policy(*current)->UpdateInstance(request), polling_policy(*current), __func__, [](google::cloud::cpp::compute::v1::Operation const& op) { return op.status() == "DONE"; @@ -1866,25 +4371,34 @@ InstancesRestConnectionImpl::SimulateMaintenanceEvent( }); } -future> -InstancesRestConnectionImpl::Start( - google::cloud::cpp::compute::instances::v1::StartRequest const& request) { +StatusOr +InstancesRestConnectionImpl::UpdateInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instances::v1::UpdateInstanceRequest const& + request) { auto current = google::cloud::internal::SaveCurrentOptions(); - return rest_internal::AsyncRestLongRunningOperation< - google::cloud::cpp::compute::v1::Operation, - google::cloud::cpp::compute::v1::Operation, - google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest, - google::cloud::cpp::compute::zone_operations::v1::DeleteOperationRequest>( - background_->cq(), current, request, - [stub = stub_]( - CompletionQueue& cq, - std::unique_ptr context, - google::cloud::internal::ImmutableOptions options, - google::cloud::cpp::compute::instances::v1::StartRequest const& - request) { - return stub->AsyncStart(cq, std::move(context), std::move(options), - request); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UpdateInstance(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::instances::v1:: + UpdateInstanceRequest const& request) { + return stub_->UpdateInstance(rest_context, options, request); }, + *current, request, __func__); +} + +future> +InstancesRestConnectionImpl::UpdateInstance( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::zone_operations::v1::DeleteOperationRequest>( + background_->cq(), current, operation, [stub = stub_](CompletionQueue& cq, std::unique_ptr context, google::cloud::internal::ImmutableOptions options, @@ -1903,33 +4417,37 @@ InstancesRestConnectionImpl::Start( }, [](StatusOr op, std::string const&) { return op; }, - retry_policy(*current), backoff_policy(*current), - idempotency_policy(*current)->Start(request), polling_policy(*current), - __func__, + polling_policy(*current), __func__, [](google::cloud::cpp::compute::v1::Operation const& op) { return op.status() == "DONE"; }, - [request]( - std::string const& op, + [operation]( + std::string const&, google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest& r) { - r.set_project(request.project()); - r.set_zone(request.zone()); - r.set_operation(op); - }, - [request](std::string const& op, - google::cloud::cpp::compute::zone_operations::v1:: - DeleteOperationRequest& r) { - r.set_project(request.project()); - r.set_zone(request.zone()); - r.set_operation(op); + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_zone(info.zone); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::zone_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_zone(info.zone); + r.set_operation(info.operation); }); } future> -InstancesRestConnectionImpl::StartWithEncryptionKey( - google::cloud::cpp::compute::instances::v1:: - StartWithEncryptionKeyRequest const& request) { +InstancesRestConnectionImpl::UpdateAccessConfig( + google::cloud::cpp::compute::instances::v1::UpdateAccessConfigRequest const& + request) { auto current = google::cloud::internal::SaveCurrentOptions(); return rest_internal::AsyncRestLongRunningOperation< google::cloud::cpp::compute::v1::Operation, @@ -1941,9 +4459,9 @@ InstancesRestConnectionImpl::StartWithEncryptionKey( std::unique_ptr context, google::cloud::internal::ImmutableOptions options, google::cloud::cpp::compute::instances::v1:: - StartWithEncryptionKeyRequest const& request) { - return stub->AsyncStartWithEncryptionKey(cq, std::move(context), - std::move(options), request); + UpdateAccessConfigRequest const& request) { + return stub->AsyncUpdateAccessConfig(cq, std::move(context), + std::move(options), request); }, [stub = stub_](CompletionQueue& cq, std::unique_ptr context, @@ -1964,7 +4482,7 @@ InstancesRestConnectionImpl::StartWithEncryptionKey( [](StatusOr op, std::string const&) { return op; }, retry_policy(*current), backoff_policy(*current), - idempotency_policy(*current)->StartWithEncryptionKey(request), + idempotency_policy(*current)->UpdateAccessConfig(request), polling_policy(*current), __func__, [](google::cloud::cpp::compute::v1::Operation const& op) { return op.status() == "DONE"; @@ -1986,25 +4504,34 @@ InstancesRestConnectionImpl::StartWithEncryptionKey( }); } +StatusOr +InstancesRestConnectionImpl::UpdateAccessConfig( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instances::v1::UpdateAccessConfigRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UpdateAccessConfig(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::instances::v1:: + UpdateAccessConfigRequest const& request) { + return stub_->UpdateAccessConfig(rest_context, options, request); + }, + *current, request, __func__); +} + future> -InstancesRestConnectionImpl::Stop( - google::cloud::cpp::compute::instances::v1::StopRequest const& request) { +InstancesRestConnectionImpl::UpdateAccessConfig( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { auto current = google::cloud::internal::SaveCurrentOptions(); - return rest_internal::AsyncRestLongRunningOperation< + return rest_internal::AsyncRestAwaitLongRunningOperation< google::cloud::cpp::compute::v1::Operation, google::cloud::cpp::compute::v1::Operation, google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest, google::cloud::cpp::compute::zone_operations::v1::DeleteOperationRequest>( - background_->cq(), current, request, - [stub = stub_]( - CompletionQueue& cq, - std::unique_ptr context, - google::cloud::internal::ImmutableOptions options, - google::cloud::cpp::compute::instances::v1::StopRequest const& - request) { - return stub->AsyncStop(cq, std::move(context), std::move(options), - request); - }, + background_->cq(), current, operation, [stub = stub_](CompletionQueue& cq, std::unique_ptr context, google::cloud::internal::ImmutableOptions options, @@ -2023,32 +4550,37 @@ InstancesRestConnectionImpl::Stop( }, [](StatusOr op, std::string const&) { return op; }, - retry_policy(*current), backoff_policy(*current), - idempotency_policy(*current)->Stop(request), polling_policy(*current), - __func__, + polling_policy(*current), __func__, [](google::cloud::cpp::compute::v1::Operation const& op) { return op.status() == "DONE"; }, - [request]( - std::string const& op, + [operation]( + std::string const&, google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest& r) { - r.set_project(request.project()); - r.set_zone(request.zone()); - r.set_operation(op); - }, - [request](std::string const& op, - google::cloud::cpp::compute::zone_operations::v1:: - DeleteOperationRequest& r) { - r.set_project(request.project()); - r.set_zone(request.zone()); - r.set_operation(op); + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_zone(info.zone); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::zone_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_zone(info.zone); + r.set_operation(info.operation); }); } future> -InstancesRestConnectionImpl::Suspend( - google::cloud::cpp::compute::instances::v1::SuspendRequest const& request) { +InstancesRestConnectionImpl::UpdateDisplayDevice( + google::cloud::cpp::compute::instances::v1:: + UpdateDisplayDeviceRequest const& request) { auto current = google::cloud::internal::SaveCurrentOptions(); return rest_internal::AsyncRestLongRunningOperation< google::cloud::cpp::compute::v1::Operation, @@ -2056,14 +4588,13 @@ InstancesRestConnectionImpl::Suspend( google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest, google::cloud::cpp::compute::zone_operations::v1::DeleteOperationRequest>( background_->cq(), current, request, - [stub = stub_]( - CompletionQueue& cq, - std::unique_ptr context, - google::cloud::internal::ImmutableOptions options, - google::cloud::cpp::compute::instances::v1::SuspendRequest const& - request) { - return stub->AsyncSuspend(cq, std::move(context), std::move(options), - request); + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::instances::v1:: + UpdateDisplayDeviceRequest const& request) { + return stub->AsyncUpdateDisplayDevice(cq, std::move(context), + std::move(options), request); }, [stub = stub_](CompletionQueue& cq, std::unique_ptr context, @@ -2084,8 +4615,8 @@ InstancesRestConnectionImpl::Suspend( [](StatusOr op, std::string const&) { return op; }, retry_policy(*current), backoff_policy(*current), - idempotency_policy(*current)->Suspend(request), polling_policy(*current), - __func__, + idempotency_policy(*current)->UpdateDisplayDevice(request), + polling_policy(*current), __func__, [](google::cloud::cpp::compute::v1::Operation const& op) { return op.status() == "DONE"; }, @@ -2106,41 +4637,34 @@ InstancesRestConnectionImpl::Suspend( }); } -StatusOr -InstancesRestConnectionImpl::TestIamPermissions( - google::cloud::cpp::compute::instances::v1::TestIamPermissionsRequest const& - request) { +StatusOr +InstancesRestConnectionImpl::UpdateDisplayDevice( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instances::v1:: + UpdateDisplayDeviceRequest const& request) { auto current = google::cloud::internal::SaveCurrentOptions(); return google::cloud::rest_internal::RestRetryLoop( retry_policy(*current), backoff_policy(*current), - idempotency_policy(*current)->TestIamPermissions(request), + idempotency_policy(*current)->UpdateDisplayDevice(request), [this](rest_internal::RestContext& rest_context, Options const& options, google::cloud::cpp::compute::instances::v1:: - TestIamPermissionsRequest const& request) { - return stub_->TestIamPermissions(rest_context, options, request); + UpdateDisplayDeviceRequest const& request) { + return stub_->UpdateDisplayDevice(rest_context, options, request); }, *current, request, __func__); } future> -InstancesRestConnectionImpl::UpdateInstance( - google::cloud::cpp::compute::instances::v1::UpdateInstanceRequest const& - request) { +InstancesRestConnectionImpl::UpdateDisplayDevice( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { auto current = google::cloud::internal::SaveCurrentOptions(); - return rest_internal::AsyncRestLongRunningOperation< + return rest_internal::AsyncRestAwaitLongRunningOperation< google::cloud::cpp::compute::v1::Operation, google::cloud::cpp::compute::v1::Operation, google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest, google::cloud::cpp::compute::zone_operations::v1::DeleteOperationRequest>( - background_->cq(), current, request, - [stub = stub_](CompletionQueue& cq, - std::unique_ptr context, - google::cloud::internal::ImmutableOptions options, - google::cloud::cpp::compute::instances::v1:: - UpdateInstanceRequest const& request) { - return stub->AsyncUpdateInstance(cq, std::move(context), - std::move(options), request); - }, + background_->cq(), current, operation, [stub = stub_](CompletionQueue& cq, std::unique_ptr context, google::cloud::internal::ImmutableOptions options, @@ -2159,33 +4683,37 @@ InstancesRestConnectionImpl::UpdateInstance( }, [](StatusOr op, std::string const&) { return op; }, - retry_policy(*current), backoff_policy(*current), - idempotency_policy(*current)->UpdateInstance(request), polling_policy(*current), __func__, [](google::cloud::cpp::compute::v1::Operation const& op) { return op.status() == "DONE"; }, - [request]( - std::string const& op, + [operation]( + std::string const&, google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest& r) { - r.set_project(request.project()); - r.set_zone(request.zone()); - r.set_operation(op); - }, - [request](std::string const& op, - google::cloud::cpp::compute::zone_operations::v1:: - DeleteOperationRequest& r) { - r.set_project(request.project()); - r.set_zone(request.zone()); - r.set_operation(op); + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_zone(info.zone); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::zone_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_zone(info.zone); + r.set_operation(info.operation); }); } future> -InstancesRestConnectionImpl::UpdateAccessConfig( - google::cloud::cpp::compute::instances::v1::UpdateAccessConfigRequest const& - request) { +InstancesRestConnectionImpl::UpdateNetworkInterface( + google::cloud::cpp::compute::instances::v1:: + UpdateNetworkInterfaceRequest const& request) { auto current = google::cloud::internal::SaveCurrentOptions(); return rest_internal::AsyncRestLongRunningOperation< google::cloud::cpp::compute::v1::Operation, @@ -2197,9 +4725,9 @@ InstancesRestConnectionImpl::UpdateAccessConfig( std::unique_ptr context, google::cloud::internal::ImmutableOptions options, google::cloud::cpp::compute::instances::v1:: - UpdateAccessConfigRequest const& request) { - return stub->AsyncUpdateAccessConfig(cq, std::move(context), - std::move(options), request); + UpdateNetworkInterfaceRequest const& request) { + return stub->AsyncUpdateNetworkInterface(cq, std::move(context), + std::move(options), request); }, [stub = stub_](CompletionQueue& cq, std::unique_ptr context, @@ -2220,7 +4748,7 @@ InstancesRestConnectionImpl::UpdateAccessConfig( [](StatusOr op, std::string const&) { return op; }, retry_policy(*current), backoff_policy(*current), - idempotency_policy(*current)->UpdateAccessConfig(request), + idempotency_policy(*current)->UpdateNetworkInterface(request), polling_policy(*current), __func__, [](google::cloud::cpp::compute::v1::Operation const& op) { return op.status() == "DONE"; @@ -2242,25 +4770,34 @@ InstancesRestConnectionImpl::UpdateAccessConfig( }); } -future> -InstancesRestConnectionImpl::UpdateDisplayDevice( +StatusOr +InstancesRestConnectionImpl::UpdateNetworkInterface( + ExperimentalTag, NoAwaitTag, google::cloud::cpp::compute::instances::v1:: - UpdateDisplayDeviceRequest const& request) { + UpdateNetworkInterfaceRequest const& request) { auto current = google::cloud::internal::SaveCurrentOptions(); - return rest_internal::AsyncRestLongRunningOperation< + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UpdateNetworkInterface(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::instances::v1:: + UpdateNetworkInterfaceRequest const& request) { + return stub_->UpdateNetworkInterface(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +InstancesRestConnectionImpl::UpdateNetworkInterface( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< google::cloud::cpp::compute::v1::Operation, google::cloud::cpp::compute::v1::Operation, google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest, google::cloud::cpp::compute::zone_operations::v1::DeleteOperationRequest>( - background_->cq(), current, request, - [stub = stub_](CompletionQueue& cq, - std::unique_ptr context, - google::cloud::internal::ImmutableOptions options, - google::cloud::cpp::compute::instances::v1:: - UpdateDisplayDeviceRequest const& request) { - return stub->AsyncUpdateDisplayDevice(cq, std::move(context), - std::move(options), request); - }, + background_->cq(), current, operation, [stub = stub_](CompletionQueue& cq, std::unique_ptr context, google::cloud::internal::ImmutableOptions options, @@ -2279,33 +4816,37 @@ InstancesRestConnectionImpl::UpdateDisplayDevice( }, [](StatusOr op, std::string const&) { return op; }, - retry_policy(*current), backoff_policy(*current), - idempotency_policy(*current)->UpdateDisplayDevice(request), polling_policy(*current), __func__, [](google::cloud::cpp::compute::v1::Operation const& op) { return op.status() == "DONE"; }, - [request]( - std::string const& op, + [operation]( + std::string const&, google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest& r) { - r.set_project(request.project()); - r.set_zone(request.zone()); - r.set_operation(op); - }, - [request](std::string const& op, - google::cloud::cpp::compute::zone_operations::v1:: - DeleteOperationRequest& r) { - r.set_project(request.project()); - r.set_zone(request.zone()); - r.set_operation(op); + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_zone(info.zone); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::zone_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_zone(info.zone); + r.set_operation(info.operation); }); } future> -InstancesRestConnectionImpl::UpdateNetworkInterface( +InstancesRestConnectionImpl::UpdateShieldedInstanceConfig( google::cloud::cpp::compute::instances::v1:: - UpdateNetworkInterfaceRequest const& request) { + UpdateShieldedInstanceConfigRequest const& request) { auto current = google::cloud::internal::SaveCurrentOptions(); return rest_internal::AsyncRestLongRunningOperation< google::cloud::cpp::compute::v1::Operation, @@ -2317,9 +4858,9 @@ InstancesRestConnectionImpl::UpdateNetworkInterface( std::unique_ptr context, google::cloud::internal::ImmutableOptions options, google::cloud::cpp::compute::instances::v1:: - UpdateNetworkInterfaceRequest const& request) { - return stub->AsyncUpdateNetworkInterface(cq, std::move(context), - std::move(options), request); + UpdateShieldedInstanceConfigRequest const& request) { + return stub->AsyncUpdateShieldedInstanceConfig( + cq, std::move(context), std::move(options), request); }, [stub = stub_](CompletionQueue& cq, std::unique_ptr context, @@ -2340,7 +4881,7 @@ InstancesRestConnectionImpl::UpdateNetworkInterface( [](StatusOr op, std::string const&) { return op; }, retry_policy(*current), backoff_policy(*current), - idempotency_policy(*current)->UpdateNetworkInterface(request), + idempotency_policy(*current)->UpdateShieldedInstanceConfig(request), polling_policy(*current), __func__, [](google::cloud::cpp::compute::v1::Operation const& op) { return op.status() == "DONE"; @@ -2362,25 +4903,35 @@ InstancesRestConnectionImpl::UpdateNetworkInterface( }); } -future> +StatusOr InstancesRestConnectionImpl::UpdateShieldedInstanceConfig( + ExperimentalTag, NoAwaitTag, google::cloud::cpp::compute::instances::v1:: UpdateShieldedInstanceConfigRequest const& request) { auto current = google::cloud::internal::SaveCurrentOptions(); - return rest_internal::AsyncRestLongRunningOperation< + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UpdateShieldedInstanceConfig(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::instances::v1:: + UpdateShieldedInstanceConfigRequest const& request) { + return stub_->UpdateShieldedInstanceConfig(rest_context, options, + request); + }, + *current, request, __func__); +} + +future> +InstancesRestConnectionImpl::UpdateShieldedInstanceConfig( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< google::cloud::cpp::compute::v1::Operation, google::cloud::cpp::compute::v1::Operation, google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest, google::cloud::cpp::compute::zone_operations::v1::DeleteOperationRequest>( - background_->cq(), current, request, - [stub = stub_](CompletionQueue& cq, - std::unique_ptr context, - google::cloud::internal::ImmutableOptions options, - google::cloud::cpp::compute::instances::v1:: - UpdateShieldedInstanceConfigRequest const& request) { - return stub->AsyncUpdateShieldedInstanceConfig( - cq, std::move(context), std::move(options), request); - }, + background_->cq(), current, operation, [stub = stub_](CompletionQueue& cq, std::unique_ptr context, google::cloud::internal::ImmutableOptions options, @@ -2399,26 +4950,30 @@ InstancesRestConnectionImpl::UpdateShieldedInstanceConfig( }, [](StatusOr op, std::string const&) { return op; }, - retry_policy(*current), backoff_policy(*current), - idempotency_policy(*current)->UpdateShieldedInstanceConfig(request), polling_policy(*current), __func__, [](google::cloud::cpp::compute::v1::Operation const& op) { return op.status() == "DONE"; }, - [request]( - std::string const& op, + [operation]( + std::string const&, google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest& r) { - r.set_project(request.project()); - r.set_zone(request.zone()); - r.set_operation(op); - }, - [request](std::string const& op, - google::cloud::cpp::compute::zone_operations::v1:: - DeleteOperationRequest& r) { - r.set_project(request.project()); - r.set_zone(request.zone()); - r.set_operation(op); + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_zone(info.zone); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::zone_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_zone(info.zone); + r.set_operation(info.operation); }); } diff --git a/google/cloud/compute/instances/v1/internal/instances_rest_connection_impl.h b/google/cloud/compute/instances/v1/internal/instances_rest_connection_impl.h index 8dc3013466d4f..35472ab726a65 100644 --- a/google/cloud/compute/instances/v1/internal/instances_rest_connection_impl.h +++ b/google/cloud/compute/instances/v1/internal/instances_rest_connection_impl.h @@ -54,10 +54,29 @@ class InstancesRestConnectionImpl google::cloud::cpp::compute::instances::v1::AddAccessConfigRequest const& request) override; + StatusOr AddAccessConfig( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instances::v1::AddAccessConfigRequest const& + request) override; + + future> AddAccessConfig( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> AddResourcePolicies(google::cloud::cpp::compute::instances::v1:: AddResourcePoliciesRequest const& request) override; + StatusOr AddResourcePolicies( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instances::v1:: + AddResourcePoliciesRequest const& request) override; + + future> + AddResourcePolicies( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StreamRange> AggregatedListInstances( @@ -68,22 +87,68 @@ class InstancesRestConnectionImpl google::cloud::cpp::compute::instances::v1::AttachDiskRequest const& request) override; + StatusOr AttachDisk( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instances::v1::AttachDiskRequest const& + request) override; + + future> AttachDisk( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> BulkInsert( google::cloud::cpp::compute::instances::v1::BulkInsertRequest const& request) override; + StatusOr BulkInsert( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instances::v1::BulkInsertRequest const& + request) override; + + future> BulkInsert( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> DeleteInstance( google::cloud::cpp::compute::instances::v1::DeleteInstanceRequest const& request) override; + StatusOr DeleteInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instances::v1::DeleteInstanceRequest const& + request) override; + + future> DeleteInstance( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> DeleteAccessConfig(google::cloud::cpp::compute::instances::v1:: DeleteAccessConfigRequest const& request) override; + StatusOr DeleteAccessConfig( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instances::v1:: + DeleteAccessConfigRequest const& request) override; + + future> + DeleteAccessConfig( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> DetachDisk( google::cloud::cpp::compute::instances::v1::DetachDiskRequest const& request) override; + StatusOr DetachDisk( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instances::v1::DetachDiskRequest const& + request) override; + + future> DetachDisk( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StatusOr GetInstance( google::cloud::cpp::compute::instances::v1::GetInstanceRequest const& request) override; @@ -119,6 +184,15 @@ class InstancesRestConnectionImpl google::cloud::cpp::compute::instances::v1::InsertInstanceRequest const& request) override; + StatusOr InsertInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instances::v1::InsertInstanceRequest const& + request) override; + + future> InsertInstance( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StreamRange ListInstances( google::cloud::cpp::compute::instances::v1::ListInstancesRequest request) override; @@ -131,19 +205,57 @@ class InstancesRestConnectionImpl PerformMaintenance(google::cloud::cpp::compute::instances::v1:: PerformMaintenanceRequest const& request) override; + StatusOr PerformMaintenance( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instances::v1:: + PerformMaintenanceRequest const& request) override; + + future> + PerformMaintenance( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> RemoveResourcePolicies( google::cloud::cpp::compute::instances::v1:: RemoveResourcePoliciesRequest const& request) override; + StatusOr RemoveResourcePolicies( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instances::v1:: + RemoveResourcePoliciesRequest const& request) override; + + future> + RemoveResourcePolicies( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> Reset( google::cloud::cpp::compute::instances::v1::ResetRequest const& request) override; + StatusOr Reset( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instances::v1::ResetRequest const& request) + override; + + future> Reset( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> Resume( google::cloud::cpp::compute::instances::v1::ResumeRequest const& request) override; + StatusOr Resume( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instances::v1::ResumeRequest const& request) + override; + + future> Resume( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + Status SendDiagnosticInterrupt( google::cloud::cpp::compute::instances::v1:: SendDiagnosticInterruptRequest const& request) override; @@ -153,10 +265,30 @@ class InstancesRestConnectionImpl google::cloud::cpp::compute::instances::v1:: SetDeletionProtectionRequest const& request) override; + StatusOr SetDeletionProtection( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instances::v1:: + SetDeletionProtectionRequest const& request) override; + + future> + SetDeletionProtection( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> SetDiskAutoDelete(google::cloud::cpp::compute::instances::v1:: SetDiskAutoDeleteRequest const& request) override; + StatusOr SetDiskAutoDelete( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instances::v1:: + SetDiskAutoDeleteRequest const& request) override; + + future> + SetDiskAutoDelete( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StatusOr SetIamPolicy( google::cloud::cpp::compute::instances::v1::SetIamPolicyRequest const& request) override; @@ -165,69 +297,221 @@ class InstancesRestConnectionImpl google::cloud::cpp::compute::instances::v1::SetLabelsRequest const& request) override; + StatusOr SetLabels( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instances::v1::SetLabelsRequest const& + request) override; + + future> SetLabels( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> SetMachineResources(google::cloud::cpp::compute::instances::v1:: SetMachineResourcesRequest const& request) override; + StatusOr SetMachineResources( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instances::v1:: + SetMachineResourcesRequest const& request) override; + + future> + SetMachineResources( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> SetMachineType( google::cloud::cpp::compute::instances::v1::SetMachineTypeRequest const& request) override; + StatusOr SetMachineType( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instances::v1::SetMachineTypeRequest const& + request) override; + + future> SetMachineType( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> SetMetadata( google::cloud::cpp::compute::instances::v1::SetMetadataRequest const& request) override; + StatusOr SetMetadata( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instances::v1::SetMetadataRequest const& + request) override; + + future> SetMetadata( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> SetMinCpuPlatform(google::cloud::cpp::compute::instances::v1:: SetMinCpuPlatformRequest const& request) override; + StatusOr SetMinCpuPlatform( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instances::v1:: + SetMinCpuPlatformRequest const& request) override; + + future> + SetMinCpuPlatform( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> SetName( google::cloud::cpp::compute::instances::v1::SetNameRequest const& request) override; + StatusOr SetName( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instances::v1::SetNameRequest const& request) + override; + + future> SetName( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> SetScheduling( google::cloud::cpp::compute::instances::v1::SetSchedulingRequest const& request) override; + StatusOr SetScheduling( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instances::v1::SetSchedulingRequest const& + request) override; + + future> SetScheduling( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> SetSecurityPolicy(google::cloud::cpp::compute::instances::v1:: SetSecurityPolicyRequest const& request) override; + StatusOr SetSecurityPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instances::v1:: + SetSecurityPolicyRequest const& request) override; + + future> + SetSecurityPolicy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> SetServiceAccount(google::cloud::cpp::compute::instances::v1:: SetServiceAccountRequest const& request) override; + StatusOr SetServiceAccount( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instances::v1:: + SetServiceAccountRequest const& request) override; + + future> + SetServiceAccount( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> SetShieldedInstanceIntegrityPolicy( google::cloud::cpp::compute::instances::v1:: SetShieldedInstanceIntegrityPolicyRequest const& request) override; + StatusOr + SetShieldedInstanceIntegrityPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instances::v1:: + SetShieldedInstanceIntegrityPolicyRequest const& request) override; + + future> + SetShieldedInstanceIntegrityPolicy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> SetTags( google::cloud::cpp::compute::instances::v1::SetTagsRequest const& request) override; + StatusOr SetTags( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instances::v1::SetTagsRequest const& request) + override; + + future> SetTags( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> SimulateMaintenanceEvent( google::cloud::cpp::compute::instances::v1:: SimulateMaintenanceEventRequest const& request) override; + StatusOr SimulateMaintenanceEvent( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instances::v1:: + SimulateMaintenanceEventRequest const& request) override; + + future> + SimulateMaintenanceEvent( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> Start( google::cloud::cpp::compute::instances::v1::StartRequest const& request) override; + StatusOr Start( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instances::v1::StartRequest const& request) + override; + + future> Start( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> StartWithEncryptionKey( google::cloud::cpp::compute::instances::v1:: StartWithEncryptionKeyRequest const& request) override; + StatusOr StartWithEncryptionKey( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instances::v1:: + StartWithEncryptionKeyRequest const& request) override; + + future> + StartWithEncryptionKey( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> Stop( google::cloud::cpp::compute::instances::v1::StopRequest const& request) override; + StatusOr Stop( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instances::v1::StopRequest const& request) + override; + + future> Stop( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> Suspend( google::cloud::cpp::compute::instances::v1::SuspendRequest const& request) override; + StatusOr Suspend( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instances::v1::SuspendRequest const& request) + override; + + future> Suspend( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StatusOr TestIamPermissions(google::cloud::cpp::compute::instances::v1:: TestIamPermissionsRequest const& request) override; @@ -236,24 +520,74 @@ class InstancesRestConnectionImpl google::cloud::cpp::compute::instances::v1::UpdateInstanceRequest const& request) override; + StatusOr UpdateInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instances::v1::UpdateInstanceRequest const& + request) override; + + future> UpdateInstance( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> UpdateAccessConfig(google::cloud::cpp::compute::instances::v1:: UpdateAccessConfigRequest const& request) override; + StatusOr UpdateAccessConfig( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instances::v1:: + UpdateAccessConfigRequest const& request) override; + + future> + UpdateAccessConfig( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> UpdateDisplayDevice(google::cloud::cpp::compute::instances::v1:: UpdateDisplayDeviceRequest const& request) override; + StatusOr UpdateDisplayDevice( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instances::v1:: + UpdateDisplayDeviceRequest const& request) override; + + future> + UpdateDisplayDevice( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> UpdateNetworkInterface( google::cloud::cpp::compute::instances::v1:: UpdateNetworkInterfaceRequest const& request) override; + StatusOr UpdateNetworkInterface( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instances::v1:: + UpdateNetworkInterfaceRequest const& request) override; + future> + UpdateNetworkInterface( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + + future> + UpdateShieldedInstanceConfig( + google::cloud::cpp::compute::instances::v1:: + UpdateShieldedInstanceConfigRequest const& request) override; + + StatusOr UpdateShieldedInstanceConfig( + ExperimentalTag, NoAwaitTag, google::cloud::cpp::compute::instances::v1:: UpdateShieldedInstanceConfigRequest const& request) override; + future> + UpdateShieldedInstanceConfig( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + private: static std::unique_ptr retry_policy(Options const& options) { diff --git a/google/cloud/compute/instances/v1/internal/instances_tracing_connection.cc b/google/cloud/compute/instances/v1/internal/instances_tracing_connection.cc index fb11912e5c123..ceb93c3a69510 100644 --- a/google/cloud/compute/instances/v1/internal/instances_tracing_connection.cc +++ b/google/cloud/compute/instances/v1/internal/instances_tracing_connection.cc @@ -43,6 +43,29 @@ InstancesTracingConnection::AddAccessConfig( return internal::EndSpan(std::move(span), child_->AddAccessConfig(request)); } +StatusOr +InstancesTracingConnection::AddAccessConfig( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instances::v1::AddAccessConfigRequest const& + request) { + auto span = internal::MakeSpan( + "compute_instances_v1::InstancesConnection::AddAccessConfig"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->AddAccessConfig(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +InstancesTracingConnection::AddAccessConfig( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_instances_v1::InstancesConnection::AddAccessConfig"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->AddAccessConfig(ExperimentalTag{}, operation)); +} + future> InstancesTracingConnection::AddResourcePolicies( google::cloud::cpp::compute::instances::v1:: @@ -54,6 +77,30 @@ InstancesTracingConnection::AddResourcePolicies( child_->AddResourcePolicies(request)); } +StatusOr +InstancesTracingConnection::AddResourcePolicies( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instances::v1:: + AddResourcePoliciesRequest const& request) { + auto span = internal::MakeSpan( + "compute_instances_v1::InstancesConnection::AddResourcePolicies"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->AddResourcePolicies(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +InstancesTracingConnection::AddResourcePolicies( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_instances_v1::InstancesConnection::AddResourcePolicies"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->AddResourcePolicies( + ExperimentalTag{}, operation)); +} + StreamRange> InstancesTracingConnection::AggregatedListInstances( @@ -78,6 +125,29 @@ InstancesTracingConnection::AttachDisk( return internal::EndSpan(std::move(span), child_->AttachDisk(request)); } +StatusOr +InstancesTracingConnection::AttachDisk( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instances::v1::AttachDiskRequest const& + request) { + auto span = internal::MakeSpan( + "compute_instances_v1::InstancesConnection::AttachDisk"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->AttachDisk(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +InstancesTracingConnection::AttachDisk( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_instances_v1::InstancesConnection::AttachDisk"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->AttachDisk(ExperimentalTag{}, operation)); +} + future> InstancesTracingConnection::BulkInsert( google::cloud::cpp::compute::instances::v1::BulkInsertRequest const& @@ -88,6 +158,29 @@ InstancesTracingConnection::BulkInsert( return internal::EndSpan(std::move(span), child_->BulkInsert(request)); } +StatusOr +InstancesTracingConnection::BulkInsert( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instances::v1::BulkInsertRequest const& + request) { + auto span = internal::MakeSpan( + "compute_instances_v1::InstancesConnection::BulkInsert"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->BulkInsert(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +InstancesTracingConnection::BulkInsert( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_instances_v1::InstancesConnection::BulkInsert"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->BulkInsert(ExperimentalTag{}, operation)); +} + future> InstancesTracingConnection::DeleteInstance( google::cloud::cpp::compute::instances::v1::DeleteInstanceRequest const& @@ -98,6 +191,29 @@ InstancesTracingConnection::DeleteInstance( return internal::EndSpan(std::move(span), child_->DeleteInstance(request)); } +StatusOr +InstancesTracingConnection::DeleteInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instances::v1::DeleteInstanceRequest const& + request) { + auto span = internal::MakeSpan( + "compute_instances_v1::InstancesConnection::DeleteInstance"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->DeleteInstance(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +InstancesTracingConnection::DeleteInstance( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_instances_v1::InstancesConnection::DeleteInstance"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->DeleteInstance(ExperimentalTag{}, operation)); +} + future> InstancesTracingConnection::DeleteAccessConfig( google::cloud::cpp::compute::instances::v1::DeleteAccessConfigRequest const& @@ -109,6 +225,30 @@ InstancesTracingConnection::DeleteAccessConfig( child_->DeleteAccessConfig(request)); } +StatusOr +InstancesTracingConnection::DeleteAccessConfig( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instances::v1::DeleteAccessConfigRequest const& + request) { + auto span = internal::MakeSpan( + "compute_instances_v1::InstancesConnection::DeleteAccessConfig"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->DeleteAccessConfig(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +InstancesTracingConnection::DeleteAccessConfig( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_instances_v1::InstancesConnection::DeleteAccessConfig"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->DeleteAccessConfig( + ExperimentalTag{}, operation)); +} + future> InstancesTracingConnection::DetachDisk( google::cloud::cpp::compute::instances::v1::DetachDiskRequest const& @@ -119,6 +259,29 @@ InstancesTracingConnection::DetachDisk( return internal::EndSpan(std::move(span), child_->DetachDisk(request)); } +StatusOr +InstancesTracingConnection::DetachDisk( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instances::v1::DetachDiskRequest const& + request) { + auto span = internal::MakeSpan( + "compute_instances_v1::InstancesConnection::DetachDisk"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->DetachDisk(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +InstancesTracingConnection::DetachDisk( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_instances_v1::InstancesConnection::DetachDisk"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->DetachDisk(ExperimentalTag{}, operation)); +} + StatusOr InstancesTracingConnection::GetInstance( google::cloud::cpp::compute::instances::v1::GetInstanceRequest const& @@ -200,6 +363,29 @@ InstancesTracingConnection::InsertInstance( return internal::EndSpan(std::move(span), child_->InsertInstance(request)); } +StatusOr +InstancesTracingConnection::InsertInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instances::v1::InsertInstanceRequest const& + request) { + auto span = internal::MakeSpan( + "compute_instances_v1::InstancesConnection::InsertInstance"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->InsertInstance(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +InstancesTracingConnection::InsertInstance( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_instances_v1::InstancesConnection::InsertInstance"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->InsertInstance(ExperimentalTag{}, operation)); +} + StreamRange InstancesTracingConnection::ListInstances( google::cloud::cpp::compute::instances::v1::ListInstancesRequest request) { @@ -235,6 +421,30 @@ InstancesTracingConnection::PerformMaintenance( child_->PerformMaintenance(request)); } +StatusOr +InstancesTracingConnection::PerformMaintenance( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instances::v1::PerformMaintenanceRequest const& + request) { + auto span = internal::MakeSpan( + "compute_instances_v1::InstancesConnection::PerformMaintenance"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->PerformMaintenance(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +InstancesTracingConnection::PerformMaintenance( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_instances_v1::InstancesConnection::PerformMaintenance"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->PerformMaintenance( + ExperimentalTag{}, operation)); +} + future> InstancesTracingConnection::RemoveResourcePolicies( google::cloud::cpp::compute::instances::v1:: @@ -246,6 +456,30 @@ InstancesTracingConnection::RemoveResourcePolicies( child_->RemoveResourcePolicies(request)); } +StatusOr +InstancesTracingConnection::RemoveResourcePolicies( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instances::v1:: + RemoveResourcePoliciesRequest const& request) { + auto span = internal::MakeSpan( + "compute_instances_v1::InstancesConnection::RemoveResourcePolicies"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->RemoveResourcePolicies(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +InstancesTracingConnection::RemoveResourcePolicies( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_instances_v1::InstancesConnection::RemoveResourcePolicies"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->RemoveResourcePolicies( + ExperimentalTag{}, operation)); +} + future> InstancesTracingConnection::Reset( google::cloud::cpp::compute::instances::v1::ResetRequest const& request) { @@ -255,6 +489,28 @@ InstancesTracingConnection::Reset( return internal::EndSpan(std::move(span), child_->Reset(request)); } +StatusOr +InstancesTracingConnection::Reset( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instances::v1::ResetRequest const& request) { + auto span = + internal::MakeSpan("compute_instances_v1::InstancesConnection::Reset"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->Reset(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +InstancesTracingConnection::Reset( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = + internal::MakeSpan("compute_instances_v1::InstancesConnection::Reset"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->Reset(ExperimentalTag{}, operation)); +} + future> InstancesTracingConnection::Resume( google::cloud::cpp::compute::instances::v1::ResumeRequest const& request) { @@ -264,6 +520,28 @@ InstancesTracingConnection::Resume( return internal::EndSpan(std::move(span), child_->Resume(request)); } +StatusOr +InstancesTracingConnection::Resume( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instances::v1::ResumeRequest const& request) { + auto span = + internal::MakeSpan("compute_instances_v1::InstancesConnection::Resume"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->Resume(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +InstancesTracingConnection::Resume( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = + internal::MakeSpan("compute_instances_v1::InstancesConnection::Resume"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->Resume(ExperimentalTag{}, operation)); +} + Status InstancesTracingConnection::SendDiagnosticInterrupt( google::cloud::cpp::compute::instances::v1:: SendDiagnosticInterruptRequest const& request) { @@ -284,6 +562,30 @@ InstancesTracingConnection::SetDeletionProtection( child_->SetDeletionProtection(request)); } +StatusOr +InstancesTracingConnection::SetDeletionProtection( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instances::v1:: + SetDeletionProtectionRequest const& request) { + auto span = internal::MakeSpan( + "compute_instances_v1::InstancesConnection::SetDeletionProtection"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->SetDeletionProtection(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +InstancesTracingConnection::SetDeletionProtection( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_instances_v1::InstancesConnection::SetDeletionProtection"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->SetDeletionProtection( + ExperimentalTag{}, operation)); +} + future> InstancesTracingConnection::SetDiskAutoDelete( google::cloud::cpp::compute::instances::v1::SetDiskAutoDeleteRequest const& @@ -294,6 +596,30 @@ InstancesTracingConnection::SetDiskAutoDelete( return internal::EndSpan(std::move(span), child_->SetDiskAutoDelete(request)); } +StatusOr +InstancesTracingConnection::SetDiskAutoDelete( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instances::v1::SetDiskAutoDeleteRequest const& + request) { + auto span = internal::MakeSpan( + "compute_instances_v1::InstancesConnection::SetDiskAutoDelete"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->SetDiskAutoDelete(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +InstancesTracingConnection::SetDiskAutoDelete( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_instances_v1::InstancesConnection::SetDiskAutoDelete"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->SetDiskAutoDelete(ExperimentalTag{}, operation)); +} + StatusOr InstancesTracingConnection::SetIamPolicy( google::cloud::cpp::compute::instances::v1::SetIamPolicyRequest const& @@ -314,6 +640,29 @@ InstancesTracingConnection::SetLabels( return internal::EndSpan(std::move(span), child_->SetLabels(request)); } +StatusOr +InstancesTracingConnection::SetLabels( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instances::v1::SetLabelsRequest const& + request) { + auto span = internal::MakeSpan( + "compute_instances_v1::InstancesConnection::SetLabels"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->SetLabels(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +InstancesTracingConnection::SetLabels( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_instances_v1::InstancesConnection::SetLabels"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->SetLabels(ExperimentalTag{}, operation)); +} + future> InstancesTracingConnection::SetMachineResources( google::cloud::cpp::compute::instances::v1:: @@ -325,6 +674,30 @@ InstancesTracingConnection::SetMachineResources( child_->SetMachineResources(request)); } +StatusOr +InstancesTracingConnection::SetMachineResources( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instances::v1:: + SetMachineResourcesRequest const& request) { + auto span = internal::MakeSpan( + "compute_instances_v1::InstancesConnection::SetMachineResources"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->SetMachineResources(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +InstancesTracingConnection::SetMachineResources( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_instances_v1::InstancesConnection::SetMachineResources"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->SetMachineResources( + ExperimentalTag{}, operation)); +} + future> InstancesTracingConnection::SetMachineType( google::cloud::cpp::compute::instances::v1::SetMachineTypeRequest const& @@ -335,6 +708,29 @@ InstancesTracingConnection::SetMachineType( return internal::EndSpan(std::move(span), child_->SetMachineType(request)); } +StatusOr +InstancesTracingConnection::SetMachineType( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instances::v1::SetMachineTypeRequest const& + request) { + auto span = internal::MakeSpan( + "compute_instances_v1::InstancesConnection::SetMachineType"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->SetMachineType(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +InstancesTracingConnection::SetMachineType( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_instances_v1::InstancesConnection::SetMachineType"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->SetMachineType(ExperimentalTag{}, operation)); +} + future> InstancesTracingConnection::SetMetadata( google::cloud::cpp::compute::instances::v1::SetMetadataRequest const& @@ -345,6 +741,29 @@ InstancesTracingConnection::SetMetadata( return internal::EndSpan(std::move(span), child_->SetMetadata(request)); } +StatusOr +InstancesTracingConnection::SetMetadata( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instances::v1::SetMetadataRequest const& + request) { + auto span = internal::MakeSpan( + "compute_instances_v1::InstancesConnection::SetMetadata"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->SetMetadata(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +InstancesTracingConnection::SetMetadata( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_instances_v1::InstancesConnection::SetMetadata"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->SetMetadata(ExperimentalTag{}, operation)); +} + future> InstancesTracingConnection::SetMinCpuPlatform( google::cloud::cpp::compute::instances::v1::SetMinCpuPlatformRequest const& @@ -355,6 +774,30 @@ InstancesTracingConnection::SetMinCpuPlatform( return internal::EndSpan(std::move(span), child_->SetMinCpuPlatform(request)); } +StatusOr +InstancesTracingConnection::SetMinCpuPlatform( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instances::v1::SetMinCpuPlatformRequest const& + request) { + auto span = internal::MakeSpan( + "compute_instances_v1::InstancesConnection::SetMinCpuPlatform"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->SetMinCpuPlatform(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +InstancesTracingConnection::SetMinCpuPlatform( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_instances_v1::InstancesConnection::SetMinCpuPlatform"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->SetMinCpuPlatform(ExperimentalTag{}, operation)); +} + future> InstancesTracingConnection::SetName( google::cloud::cpp::compute::instances::v1::SetNameRequest const& request) { @@ -364,6 +807,28 @@ InstancesTracingConnection::SetName( return internal::EndSpan(std::move(span), child_->SetName(request)); } +StatusOr +InstancesTracingConnection::SetName( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instances::v1::SetNameRequest const& request) { + auto span = + internal::MakeSpan("compute_instances_v1::InstancesConnection::SetName"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->SetName(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +InstancesTracingConnection::SetName( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = + internal::MakeSpan("compute_instances_v1::InstancesConnection::SetName"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->SetName(ExperimentalTag{}, operation)); +} + future> InstancesTracingConnection::SetScheduling( google::cloud::cpp::compute::instances::v1::SetSchedulingRequest const& @@ -374,6 +839,29 @@ InstancesTracingConnection::SetScheduling( return internal::EndSpan(std::move(span), child_->SetScheduling(request)); } +StatusOr +InstancesTracingConnection::SetScheduling( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instances::v1::SetSchedulingRequest const& + request) { + auto span = internal::MakeSpan( + "compute_instances_v1::InstancesConnection::SetScheduling"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->SetScheduling(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +InstancesTracingConnection::SetScheduling( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_instances_v1::InstancesConnection::SetScheduling"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->SetScheduling(ExperimentalTag{}, operation)); +} + future> InstancesTracingConnection::SetSecurityPolicy( google::cloud::cpp::compute::instances::v1::SetSecurityPolicyRequest const& @@ -384,6 +872,30 @@ InstancesTracingConnection::SetSecurityPolicy( return internal::EndSpan(std::move(span), child_->SetSecurityPolicy(request)); } +StatusOr +InstancesTracingConnection::SetSecurityPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instances::v1::SetSecurityPolicyRequest const& + request) { + auto span = internal::MakeSpan( + "compute_instances_v1::InstancesConnection::SetSecurityPolicy"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->SetSecurityPolicy(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +InstancesTracingConnection::SetSecurityPolicy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_instances_v1::InstancesConnection::SetSecurityPolicy"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->SetSecurityPolicy(ExperimentalTag{}, operation)); +} + future> InstancesTracingConnection::SetServiceAccount( google::cloud::cpp::compute::instances::v1::SetServiceAccountRequest const& @@ -394,6 +906,30 @@ InstancesTracingConnection::SetServiceAccount( return internal::EndSpan(std::move(span), child_->SetServiceAccount(request)); } +StatusOr +InstancesTracingConnection::SetServiceAccount( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instances::v1::SetServiceAccountRequest const& + request) { + auto span = internal::MakeSpan( + "compute_instances_v1::InstancesConnection::SetServiceAccount"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->SetServiceAccount(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +InstancesTracingConnection::SetServiceAccount( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_instances_v1::InstancesConnection::SetServiceAccount"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->SetServiceAccount(ExperimentalTag{}, operation)); +} + future> InstancesTracingConnection::SetShieldedInstanceIntegrityPolicy( google::cloud::cpp::compute::instances::v1:: @@ -406,6 +942,33 @@ InstancesTracingConnection::SetShieldedInstanceIntegrityPolicy( child_->SetShieldedInstanceIntegrityPolicy(request)); } +StatusOr +InstancesTracingConnection::SetShieldedInstanceIntegrityPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instances::v1:: + SetShieldedInstanceIntegrityPolicyRequest const& request) { + auto span = internal::MakeSpan( + "compute_instances_v1::InstancesConnection::" + "SetShieldedInstanceIntegrityPolicy"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->SetShieldedInstanceIntegrityPolicy(ExperimentalTag{}, + NoAwaitTag{}, request)); +} + +future> +InstancesTracingConnection::SetShieldedInstanceIntegrityPolicy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_instances_v1::InstancesConnection::" + "SetShieldedInstanceIntegrityPolicy"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), + child_->SetShieldedInstanceIntegrityPolicy(ExperimentalTag{}, operation)); +} + future> InstancesTracingConnection::SetTags( google::cloud::cpp::compute::instances::v1::SetTagsRequest const& request) { @@ -415,6 +978,28 @@ InstancesTracingConnection::SetTags( return internal::EndSpan(std::move(span), child_->SetTags(request)); } +StatusOr +InstancesTracingConnection::SetTags( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instances::v1::SetTagsRequest const& request) { + auto span = + internal::MakeSpan("compute_instances_v1::InstancesConnection::SetTags"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->SetTags(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +InstancesTracingConnection::SetTags( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = + internal::MakeSpan("compute_instances_v1::InstancesConnection::SetTags"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->SetTags(ExperimentalTag{}, operation)); +} + future> InstancesTracingConnection::SimulateMaintenanceEvent( google::cloud::cpp::compute::instances::v1:: @@ -426,6 +1011,30 @@ InstancesTracingConnection::SimulateMaintenanceEvent( child_->SimulateMaintenanceEvent(request)); } +StatusOr +InstancesTracingConnection::SimulateMaintenanceEvent( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instances::v1:: + SimulateMaintenanceEventRequest const& request) { + auto span = internal::MakeSpan( + "compute_instances_v1::InstancesConnection::SimulateMaintenanceEvent"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->SimulateMaintenanceEvent(ExperimentalTag{}, NoAwaitTag{}, + request)); +} + +future> +InstancesTracingConnection::SimulateMaintenanceEvent( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_instances_v1::InstancesConnection::SimulateMaintenanceEvent"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->SimulateMaintenanceEvent( + ExperimentalTag{}, operation)); +} + future> InstancesTracingConnection::Start( google::cloud::cpp::compute::instances::v1::StartRequest const& request) { @@ -435,6 +1044,28 @@ InstancesTracingConnection::Start( return internal::EndSpan(std::move(span), child_->Start(request)); } +StatusOr +InstancesTracingConnection::Start( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instances::v1::StartRequest const& request) { + auto span = + internal::MakeSpan("compute_instances_v1::InstancesConnection::Start"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->Start(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +InstancesTracingConnection::Start( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = + internal::MakeSpan("compute_instances_v1::InstancesConnection::Start"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->Start(ExperimentalTag{}, operation)); +} + future> InstancesTracingConnection::StartWithEncryptionKey( google::cloud::cpp::compute::instances::v1:: @@ -446,6 +1077,30 @@ InstancesTracingConnection::StartWithEncryptionKey( child_->StartWithEncryptionKey(request)); } +StatusOr +InstancesTracingConnection::StartWithEncryptionKey( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instances::v1:: + StartWithEncryptionKeyRequest const& request) { + auto span = internal::MakeSpan( + "compute_instances_v1::InstancesConnection::StartWithEncryptionKey"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->StartWithEncryptionKey(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +InstancesTracingConnection::StartWithEncryptionKey( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_instances_v1::InstancesConnection::StartWithEncryptionKey"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->StartWithEncryptionKey( + ExperimentalTag{}, operation)); +} + future> InstancesTracingConnection::Stop( google::cloud::cpp::compute::instances::v1::StopRequest const& request) { @@ -455,6 +1110,28 @@ InstancesTracingConnection::Stop( return internal::EndSpan(std::move(span), child_->Stop(request)); } +StatusOr +InstancesTracingConnection::Stop( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instances::v1::StopRequest const& request) { + auto span = + internal::MakeSpan("compute_instances_v1::InstancesConnection::Stop"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->Stop(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +InstancesTracingConnection::Stop( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = + internal::MakeSpan("compute_instances_v1::InstancesConnection::Stop"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->Stop(ExperimentalTag{}, operation)); +} + future> InstancesTracingConnection::Suspend( google::cloud::cpp::compute::instances::v1::SuspendRequest const& request) { @@ -464,6 +1141,28 @@ InstancesTracingConnection::Suspend( return internal::EndSpan(std::move(span), child_->Suspend(request)); } +StatusOr +InstancesTracingConnection::Suspend( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instances::v1::SuspendRequest const& request) { + auto span = + internal::MakeSpan("compute_instances_v1::InstancesConnection::Suspend"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->Suspend(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +InstancesTracingConnection::Suspend( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = + internal::MakeSpan("compute_instances_v1::InstancesConnection::Suspend"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->Suspend(ExperimentalTag{}, operation)); +} + StatusOr InstancesTracingConnection::TestIamPermissions( google::cloud::cpp::compute::instances::v1::TestIamPermissionsRequest const& @@ -484,6 +1183,29 @@ InstancesTracingConnection::UpdateInstance( return internal::EndSpan(std::move(span), child_->UpdateInstance(request)); } +StatusOr +InstancesTracingConnection::UpdateInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instances::v1::UpdateInstanceRequest const& + request) { + auto span = internal::MakeSpan( + "compute_instances_v1::InstancesConnection::UpdateInstance"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->UpdateInstance(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +InstancesTracingConnection::UpdateInstance( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_instances_v1::InstancesConnection::UpdateInstance"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->UpdateInstance(ExperimentalTag{}, operation)); +} + future> InstancesTracingConnection::UpdateAccessConfig( google::cloud::cpp::compute::instances::v1::UpdateAccessConfigRequest const& @@ -495,6 +1217,30 @@ InstancesTracingConnection::UpdateAccessConfig( child_->UpdateAccessConfig(request)); } +StatusOr +InstancesTracingConnection::UpdateAccessConfig( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instances::v1::UpdateAccessConfigRequest const& + request) { + auto span = internal::MakeSpan( + "compute_instances_v1::InstancesConnection::UpdateAccessConfig"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->UpdateAccessConfig(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +InstancesTracingConnection::UpdateAccessConfig( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_instances_v1::InstancesConnection::UpdateAccessConfig"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->UpdateAccessConfig( + ExperimentalTag{}, operation)); +} + future> InstancesTracingConnection::UpdateDisplayDevice( google::cloud::cpp::compute::instances::v1:: @@ -506,6 +1252,30 @@ InstancesTracingConnection::UpdateDisplayDevice( child_->UpdateDisplayDevice(request)); } +StatusOr +InstancesTracingConnection::UpdateDisplayDevice( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instances::v1:: + UpdateDisplayDeviceRequest const& request) { + auto span = internal::MakeSpan( + "compute_instances_v1::InstancesConnection::UpdateDisplayDevice"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->UpdateDisplayDevice(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +InstancesTracingConnection::UpdateDisplayDevice( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_instances_v1::InstancesConnection::UpdateDisplayDevice"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->UpdateDisplayDevice( + ExperimentalTag{}, operation)); +} + future> InstancesTracingConnection::UpdateNetworkInterface( google::cloud::cpp::compute::instances::v1:: @@ -517,6 +1287,30 @@ InstancesTracingConnection::UpdateNetworkInterface( child_->UpdateNetworkInterface(request)); } +StatusOr +InstancesTracingConnection::UpdateNetworkInterface( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instances::v1:: + UpdateNetworkInterfaceRequest const& request) { + auto span = internal::MakeSpan( + "compute_instances_v1::InstancesConnection::UpdateNetworkInterface"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->UpdateNetworkInterface(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +InstancesTracingConnection::UpdateNetworkInterface( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_instances_v1::InstancesConnection::UpdateNetworkInterface"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->UpdateNetworkInterface( + ExperimentalTag{}, operation)); +} + future> InstancesTracingConnection::UpdateShieldedInstanceConfig( google::cloud::cpp::compute::instances::v1:: @@ -529,6 +1323,33 @@ InstancesTracingConnection::UpdateShieldedInstanceConfig( child_->UpdateShieldedInstanceConfig(request)); } +StatusOr +InstancesTracingConnection::UpdateShieldedInstanceConfig( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instances::v1:: + UpdateShieldedInstanceConfigRequest const& request) { + auto span = internal::MakeSpan( + "compute_instances_v1::InstancesConnection::" + "UpdateShieldedInstanceConfig"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->UpdateShieldedInstanceConfig(ExperimentalTag{}, + NoAwaitTag{}, request)); +} + +future> +InstancesTracingConnection::UpdateShieldedInstanceConfig( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_instances_v1::InstancesConnection::" + "UpdateShieldedInstanceConfig"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), + child_->UpdateShieldedInstanceConfig(ExperimentalTag{}, operation)); +} + #endif // GOOGLE_CLOUD_CPP_HAVE_OPENTELEMETRY std::shared_ptr diff --git a/google/cloud/compute/instances/v1/internal/instances_tracing_connection.h b/google/cloud/compute/instances/v1/internal/instances_tracing_connection.h index ef1eeb1bd0b7a..87827a8451dff 100644 --- a/google/cloud/compute/instances/v1/internal/instances_tracing_connection.h +++ b/google/cloud/compute/instances/v1/internal/instances_tracing_connection.h @@ -44,10 +44,29 @@ class InstancesTracingConnection google::cloud::cpp::compute::instances::v1::AddAccessConfigRequest const& request) override; + StatusOr AddAccessConfig( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instances::v1::AddAccessConfigRequest const& + request) override; + + future> AddAccessConfig( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> AddResourcePolicies(google::cloud::cpp::compute::instances::v1:: AddResourcePoliciesRequest const& request) override; + StatusOr AddResourcePolicies( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instances::v1:: + AddResourcePoliciesRequest const& request) override; + + future> + AddResourcePolicies( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StreamRange> AggregatedListInstances( @@ -58,22 +77,68 @@ class InstancesTracingConnection google::cloud::cpp::compute::instances::v1::AttachDiskRequest const& request) override; + StatusOr AttachDisk( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instances::v1::AttachDiskRequest const& + request) override; + + future> AttachDisk( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> BulkInsert( google::cloud::cpp::compute::instances::v1::BulkInsertRequest const& request) override; + StatusOr BulkInsert( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instances::v1::BulkInsertRequest const& + request) override; + + future> BulkInsert( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> DeleteInstance( google::cloud::cpp::compute::instances::v1::DeleteInstanceRequest const& request) override; + StatusOr DeleteInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instances::v1::DeleteInstanceRequest const& + request) override; + + future> DeleteInstance( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> DeleteAccessConfig(google::cloud::cpp::compute::instances::v1:: DeleteAccessConfigRequest const& request) override; + StatusOr DeleteAccessConfig( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instances::v1:: + DeleteAccessConfigRequest const& request) override; + + future> + DeleteAccessConfig( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> DetachDisk( google::cloud::cpp::compute::instances::v1::DetachDiskRequest const& request) override; + StatusOr DetachDisk( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instances::v1::DetachDiskRequest const& + request) override; + + future> DetachDisk( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StatusOr GetInstance( google::cloud::cpp::compute::instances::v1::GetInstanceRequest const& request) override; @@ -109,6 +174,15 @@ class InstancesTracingConnection google::cloud::cpp::compute::instances::v1::InsertInstanceRequest const& request) override; + StatusOr InsertInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instances::v1::InsertInstanceRequest const& + request) override; + + future> InsertInstance( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StreamRange ListInstances( google::cloud::cpp::compute::instances::v1::ListInstancesRequest request) override; @@ -121,19 +195,57 @@ class InstancesTracingConnection PerformMaintenance(google::cloud::cpp::compute::instances::v1:: PerformMaintenanceRequest const& request) override; + StatusOr PerformMaintenance( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instances::v1:: + PerformMaintenanceRequest const& request) override; + + future> + PerformMaintenance( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> RemoveResourcePolicies( google::cloud::cpp::compute::instances::v1:: RemoveResourcePoliciesRequest const& request) override; + StatusOr RemoveResourcePolicies( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instances::v1:: + RemoveResourcePoliciesRequest const& request) override; + + future> + RemoveResourcePolicies( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> Reset( google::cloud::cpp::compute::instances::v1::ResetRequest const& request) override; + StatusOr Reset( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instances::v1::ResetRequest const& request) + override; + + future> Reset( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> Resume( google::cloud::cpp::compute::instances::v1::ResumeRequest const& request) override; + StatusOr Resume( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instances::v1::ResumeRequest const& request) + override; + + future> Resume( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + Status SendDiagnosticInterrupt( google::cloud::cpp::compute::instances::v1:: SendDiagnosticInterruptRequest const& request) override; @@ -143,10 +255,30 @@ class InstancesTracingConnection google::cloud::cpp::compute::instances::v1:: SetDeletionProtectionRequest const& request) override; + StatusOr SetDeletionProtection( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instances::v1:: + SetDeletionProtectionRequest const& request) override; + + future> + SetDeletionProtection( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> SetDiskAutoDelete(google::cloud::cpp::compute::instances::v1:: SetDiskAutoDeleteRequest const& request) override; + StatusOr SetDiskAutoDelete( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instances::v1:: + SetDiskAutoDeleteRequest const& request) override; + + future> + SetDiskAutoDelete( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StatusOr SetIamPolicy( google::cloud::cpp::compute::instances::v1::SetIamPolicyRequest const& request) override; @@ -155,69 +287,221 @@ class InstancesTracingConnection google::cloud::cpp::compute::instances::v1::SetLabelsRequest const& request) override; + StatusOr SetLabels( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instances::v1::SetLabelsRequest const& + request) override; + + future> SetLabels( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> SetMachineResources(google::cloud::cpp::compute::instances::v1:: SetMachineResourcesRequest const& request) override; + StatusOr SetMachineResources( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instances::v1:: + SetMachineResourcesRequest const& request) override; + + future> + SetMachineResources( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> SetMachineType( google::cloud::cpp::compute::instances::v1::SetMachineTypeRequest const& request) override; + StatusOr SetMachineType( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instances::v1::SetMachineTypeRequest const& + request) override; + + future> SetMachineType( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> SetMetadata( google::cloud::cpp::compute::instances::v1::SetMetadataRequest const& request) override; + StatusOr SetMetadata( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instances::v1::SetMetadataRequest const& + request) override; + + future> SetMetadata( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> SetMinCpuPlatform(google::cloud::cpp::compute::instances::v1:: SetMinCpuPlatformRequest const& request) override; + StatusOr SetMinCpuPlatform( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instances::v1:: + SetMinCpuPlatformRequest const& request) override; + + future> + SetMinCpuPlatform( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> SetName( google::cloud::cpp::compute::instances::v1::SetNameRequest const& request) override; + StatusOr SetName( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instances::v1::SetNameRequest const& request) + override; + + future> SetName( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> SetScheduling( google::cloud::cpp::compute::instances::v1::SetSchedulingRequest const& request) override; + StatusOr SetScheduling( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instances::v1::SetSchedulingRequest const& + request) override; + + future> SetScheduling( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> SetSecurityPolicy(google::cloud::cpp::compute::instances::v1:: SetSecurityPolicyRequest const& request) override; + StatusOr SetSecurityPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instances::v1:: + SetSecurityPolicyRequest const& request) override; + + future> + SetSecurityPolicy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> SetServiceAccount(google::cloud::cpp::compute::instances::v1:: SetServiceAccountRequest const& request) override; + StatusOr SetServiceAccount( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instances::v1:: + SetServiceAccountRequest const& request) override; + + future> + SetServiceAccount( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> SetShieldedInstanceIntegrityPolicy( google::cloud::cpp::compute::instances::v1:: SetShieldedInstanceIntegrityPolicyRequest const& request) override; + StatusOr + SetShieldedInstanceIntegrityPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instances::v1:: + SetShieldedInstanceIntegrityPolicyRequest const& request) override; + + future> + SetShieldedInstanceIntegrityPolicy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> SetTags( google::cloud::cpp::compute::instances::v1::SetTagsRequest const& request) override; + StatusOr SetTags( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instances::v1::SetTagsRequest const& request) + override; + + future> SetTags( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> SimulateMaintenanceEvent( google::cloud::cpp::compute::instances::v1:: SimulateMaintenanceEventRequest const& request) override; + StatusOr SimulateMaintenanceEvent( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instances::v1:: + SimulateMaintenanceEventRequest const& request) override; + + future> + SimulateMaintenanceEvent( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> Start( google::cloud::cpp::compute::instances::v1::StartRequest const& request) override; + StatusOr Start( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instances::v1::StartRequest const& request) + override; + + future> Start( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> StartWithEncryptionKey( google::cloud::cpp::compute::instances::v1:: StartWithEncryptionKeyRequest const& request) override; + StatusOr StartWithEncryptionKey( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instances::v1:: + StartWithEncryptionKeyRequest const& request) override; + + future> + StartWithEncryptionKey( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> Stop( google::cloud::cpp::compute::instances::v1::StopRequest const& request) override; + StatusOr Stop( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instances::v1::StopRequest const& request) + override; + + future> Stop( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> Suspend( google::cloud::cpp::compute::instances::v1::SuspendRequest const& request) override; + StatusOr Suspend( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instances::v1::SuspendRequest const& request) + override; + + future> Suspend( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StatusOr TestIamPermissions(google::cloud::cpp::compute::instances::v1:: TestIamPermissionsRequest const& request) override; @@ -226,24 +510,74 @@ class InstancesTracingConnection google::cloud::cpp::compute::instances::v1::UpdateInstanceRequest const& request) override; + StatusOr UpdateInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instances::v1::UpdateInstanceRequest const& + request) override; + + future> UpdateInstance( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> UpdateAccessConfig(google::cloud::cpp::compute::instances::v1:: UpdateAccessConfigRequest const& request) override; + StatusOr UpdateAccessConfig( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instances::v1:: + UpdateAccessConfigRequest const& request) override; + + future> + UpdateAccessConfig( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> UpdateDisplayDevice(google::cloud::cpp::compute::instances::v1:: UpdateDisplayDeviceRequest const& request) override; + StatusOr UpdateDisplayDevice( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instances::v1:: + UpdateDisplayDeviceRequest const& request) override; + + future> + UpdateDisplayDevice( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> UpdateNetworkInterface( google::cloud::cpp::compute::instances::v1:: UpdateNetworkInterfaceRequest const& request) override; + StatusOr UpdateNetworkInterface( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instances::v1:: + UpdateNetworkInterfaceRequest const& request) override; + future> + UpdateNetworkInterface( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + + future> + UpdateShieldedInstanceConfig( + google::cloud::cpp::compute::instances::v1:: + UpdateShieldedInstanceConfigRequest const& request) override; + + StatusOr UpdateShieldedInstanceConfig( + ExperimentalTag, NoAwaitTag, google::cloud::cpp::compute::instances::v1:: UpdateShieldedInstanceConfigRequest const& request) override; + future> + UpdateShieldedInstanceConfig( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + private: std::shared_ptr child_; }; diff --git a/google/cloud/compute/instances/v1/mocks/mock_instances_connection.h b/google/cloud/compute/instances/v1/mocks/mock_instances_connection.h index 1aabe0ed985ee..40876775f251a 100644 --- a/google/cloud/compute/instances/v1/mocks/mock_instances_connection.h +++ b/google/cloud/compute/instances/v1/mocks/mock_instances_connection.h @@ -54,12 +54,38 @@ class MockInstancesConnection request), (override)); + MOCK_METHOD( + StatusOr, AddAccessConfig, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instances::v1::AddAccessConfigRequest const& + request), + (override)); + + MOCK_METHOD(future>, + AddAccessConfig, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD(future>, AddResourcePolicies, (google::cloud::cpp::compute::instances::v1:: AddResourcePoliciesRequest const& request), (override)); + MOCK_METHOD(StatusOr, + AddResourcePolicies, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instances::v1:: + AddResourcePoliciesRequest const& request), + (override)); + + MOCK_METHOD(future>, + AddResourcePolicies, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD( (StreamRange>), @@ -74,12 +100,38 @@ class MockInstancesConnection request), (override)); + MOCK_METHOD( + StatusOr, AttachDisk, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instances::v1::AttachDiskRequest const& + request), + (override)); + + MOCK_METHOD(future>, + AttachDisk, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD( future>, BulkInsert, (google::cloud::cpp::compute::instances::v1::BulkInsertRequest const& request), (override)); + MOCK_METHOD( + StatusOr, BulkInsert, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instances::v1::BulkInsertRequest const& + request), + (override)); + + MOCK_METHOD(future>, + BulkInsert, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteInstance, @@ -87,18 +139,57 @@ class MockInstancesConnection request), (override)); + MOCK_METHOD( + StatusOr, DeleteInstance, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instances::v1::DeleteInstanceRequest const& + request), + (override)); + + MOCK_METHOD(future>, + DeleteInstance, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD(future>, DeleteAccessConfig, (google::cloud::cpp::compute::instances::v1:: DeleteAccessConfigRequest const& request), (override)); + MOCK_METHOD(StatusOr, + DeleteAccessConfig, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instances::v1:: + DeleteAccessConfigRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteAccessConfig, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD( future>, DetachDisk, (google::cloud::cpp::compute::instances::v1::DetachDiskRequest const& request), (override)); + MOCK_METHOD( + StatusOr, DetachDisk, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instances::v1::DetachDiskRequest const& + request), + (override)); + + MOCK_METHOD(future>, + DetachDisk, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr, GetInstance, (google::cloud::cpp::compute::instances::v1::GetInstanceRequest const& @@ -150,6 +241,19 @@ class MockInstancesConnection request), (override)); + MOCK_METHOD( + StatusOr, InsertInstance, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instances::v1::InsertInstanceRequest const& + request), + (override)); + + MOCK_METHOD(future>, + InsertInstance, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD((StreamRange), ListInstances, (google::cloud::cpp::compute::instances::v1::ListInstancesRequest @@ -168,23 +272,73 @@ class MockInstancesConnection PerformMaintenanceRequest const& request), (override)); + MOCK_METHOD(StatusOr, + PerformMaintenance, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instances::v1:: + PerformMaintenanceRequest const& request), + (override)); + + MOCK_METHOD(future>, + PerformMaintenance, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD(future>, RemoveResourcePolicies, (google::cloud::cpp::compute::instances::v1:: RemoveResourcePoliciesRequest const& request), (override)); + MOCK_METHOD(StatusOr, + RemoveResourcePolicies, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instances::v1:: + RemoveResourcePoliciesRequest const& request), + (override)); + + MOCK_METHOD(future>, + RemoveResourcePolicies, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD( future>, Reset, (google::cloud::cpp::compute::instances::v1::ResetRequest const& request), (override)); + MOCK_METHOD( + StatusOr, Reset, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instances::v1::ResetRequest const& request), + (override)); + + MOCK_METHOD(future>, + Reset, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD(future>, Resume, (google::cloud::cpp::compute::instances::v1::ResumeRequest const& request), (override)); + MOCK_METHOD(StatusOr, Resume, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instances::v1::ResumeRequest const& + request), + (override)); + + MOCK_METHOD(future>, + Resume, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD(Status, SendDiagnosticInterrupt, (google::cloud::cpp::compute::instances::v1:: SendDiagnosticInterruptRequest const& request), @@ -196,12 +350,38 @@ class MockInstancesConnection SetDeletionProtectionRequest const& request), (override)); + MOCK_METHOD(StatusOr, + SetDeletionProtection, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instances::v1:: + SetDeletionProtectionRequest const& request), + (override)); + + MOCK_METHOD(future>, + SetDeletionProtection, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD(future>, SetDiskAutoDelete, (google::cloud::cpp::compute::instances::v1:: SetDiskAutoDeleteRequest const& request), (override)); + MOCK_METHOD(StatusOr, + SetDiskAutoDelete, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instances::v1:: + SetDiskAutoDeleteRequest const& request), + (override)); + + MOCK_METHOD(future>, + SetDiskAutoDelete, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr, SetIamPolicy, (google::cloud::cpp::compute::instances::v1::SetIamPolicyRequest const& @@ -214,12 +394,38 @@ class MockInstancesConnection request), (override)); + MOCK_METHOD( + StatusOr, SetLabels, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instances::v1::SetLabelsRequest const& + request), + (override)); + + MOCK_METHOD(future>, + SetLabels, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD(future>, SetMachineResources, (google::cloud::cpp::compute::instances::v1:: SetMachineResourcesRequest const& request), (override)); + MOCK_METHOD(StatusOr, + SetMachineResources, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instances::v1:: + SetMachineResourcesRequest const& request), + (override)); + + MOCK_METHOD(future>, + SetMachineResources, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD( future>, SetMachineType, @@ -227,24 +433,75 @@ class MockInstancesConnection request), (override)); + MOCK_METHOD( + StatusOr, SetMachineType, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instances::v1::SetMachineTypeRequest const& + request), + (override)); + + MOCK_METHOD(future>, + SetMachineType, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD( future>, SetMetadata, (google::cloud::cpp::compute::instances::v1::SetMetadataRequest const& request), (override)); + MOCK_METHOD( + StatusOr, SetMetadata, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instances::v1::SetMetadataRequest const& + request), + (override)); + + MOCK_METHOD(future>, + SetMetadata, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD(future>, SetMinCpuPlatform, (google::cloud::cpp::compute::instances::v1:: SetMinCpuPlatformRequest const& request), (override)); + MOCK_METHOD(StatusOr, + SetMinCpuPlatform, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instances::v1:: + SetMinCpuPlatformRequest const& request), + (override)); + + MOCK_METHOD(future>, + SetMinCpuPlatform, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD(future>, SetName, (google::cloud::cpp::compute::instances::v1::SetNameRequest const& request), (override)); + MOCK_METHOD(StatusOr, SetName, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instances::v1::SetNameRequest const& + request), + (override)); + + MOCK_METHOD(future>, + SetName, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD( future>, SetScheduling, @@ -252,58 +509,184 @@ class MockInstancesConnection request), (override)); + MOCK_METHOD( + StatusOr, SetScheduling, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instances::v1::SetSchedulingRequest const& + request), + (override)); + + MOCK_METHOD(future>, + SetScheduling, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD(future>, SetSecurityPolicy, (google::cloud::cpp::compute::instances::v1:: SetSecurityPolicyRequest const& request), (override)); + MOCK_METHOD(StatusOr, + SetSecurityPolicy, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instances::v1:: + SetSecurityPolicyRequest const& request), + (override)); + + MOCK_METHOD(future>, + SetSecurityPolicy, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD(future>, SetServiceAccount, (google::cloud::cpp::compute::instances::v1:: SetServiceAccountRequest const& request), (override)); + MOCK_METHOD(StatusOr, + SetServiceAccount, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instances::v1:: + SetServiceAccountRequest const& request), + (override)); + + MOCK_METHOD(future>, + SetServiceAccount, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD(future>, SetShieldedInstanceIntegrityPolicy, (google::cloud::cpp::compute::instances::v1:: SetShieldedInstanceIntegrityPolicyRequest const& request), (override)); + MOCK_METHOD(StatusOr, + SetShieldedInstanceIntegrityPolicy, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instances::v1:: + SetShieldedInstanceIntegrityPolicyRequest const& request), + (override)); + + MOCK_METHOD(future>, + SetShieldedInstanceIntegrityPolicy, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD(future>, SetTags, (google::cloud::cpp::compute::instances::v1::SetTagsRequest const& request), (override)); + MOCK_METHOD(StatusOr, SetTags, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instances::v1::SetTagsRequest const& + request), + (override)); + + MOCK_METHOD(future>, + SetTags, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD(future>, SimulateMaintenanceEvent, (google::cloud::cpp::compute::instances::v1:: SimulateMaintenanceEventRequest const& request), (override)); + MOCK_METHOD(StatusOr, + SimulateMaintenanceEvent, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instances::v1:: + SimulateMaintenanceEventRequest const& request), + (override)); + + MOCK_METHOD(future>, + SimulateMaintenanceEvent, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD( future>, Start, (google::cloud::cpp::compute::instances::v1::StartRequest const& request), (override)); + MOCK_METHOD( + StatusOr, Start, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instances::v1::StartRequest const& request), + (override)); + + MOCK_METHOD(future>, + Start, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD(future>, StartWithEncryptionKey, (google::cloud::cpp::compute::instances::v1:: StartWithEncryptionKeyRequest const& request), (override)); + MOCK_METHOD(StatusOr, + StartWithEncryptionKey, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instances::v1:: + StartWithEncryptionKeyRequest const& request), + (override)); + + MOCK_METHOD(future>, + StartWithEncryptionKey, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD( future>, Stop, (google::cloud::cpp::compute::instances::v1::StopRequest const& request), (override)); + MOCK_METHOD( + StatusOr, Stop, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instances::v1::StopRequest const& request), + (override)); + + MOCK_METHOD(future>, + Stop, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD(future>, Suspend, (google::cloud::cpp::compute::instances::v1::SuspendRequest const& request), (override)); + MOCK_METHOD(StatusOr, Suspend, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instances::v1::SuspendRequest const& + request), + (override)); + + MOCK_METHOD(future>, + Suspend, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr, TestIamPermissions, @@ -318,29 +701,94 @@ class MockInstancesConnection request), (override)); + MOCK_METHOD( + StatusOr, UpdateInstance, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instances::v1::UpdateInstanceRequest const& + request), + (override)); + + MOCK_METHOD(future>, + UpdateInstance, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD(future>, UpdateAccessConfig, (google::cloud::cpp::compute::instances::v1:: UpdateAccessConfigRequest const& request), (override)); + MOCK_METHOD(StatusOr, + UpdateAccessConfig, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instances::v1:: + UpdateAccessConfigRequest const& request), + (override)); + + MOCK_METHOD(future>, + UpdateAccessConfig, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD(future>, UpdateDisplayDevice, (google::cloud::cpp::compute::instances::v1:: UpdateDisplayDeviceRequest const& request), (override)); + MOCK_METHOD(StatusOr, + UpdateDisplayDevice, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instances::v1:: + UpdateDisplayDeviceRequest const& request), + (override)); + + MOCK_METHOD(future>, + UpdateDisplayDevice, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD(future>, UpdateNetworkInterface, (google::cloud::cpp::compute::instances::v1:: UpdateNetworkInterfaceRequest const& request), (override)); + MOCK_METHOD(StatusOr, + UpdateNetworkInterface, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instances::v1:: + UpdateNetworkInterfaceRequest const& request), + (override)); + + MOCK_METHOD(future>, + UpdateNetworkInterface, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD(future>, UpdateShieldedInstanceConfig, (google::cloud::cpp::compute::instances::v1:: UpdateShieldedInstanceConfigRequest const& request), (override)); + + MOCK_METHOD(StatusOr, + UpdateShieldedInstanceConfig, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::instances::v1:: + UpdateShieldedInstanceConfigRequest const& request), + (override)); + + MOCK_METHOD(future>, + UpdateShieldedInstanceConfig, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); }; GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END diff --git a/google/cloud/compute/interconnect_attachments/v1/interconnect_attachments_connection.cc b/google/cloud/compute/interconnect_attachments/v1/interconnect_attachments_connection.cc index 4ad388c70f1ac..15e3b8bbb7258 100644 --- a/google/cloud/compute/interconnect_attachments/v1/interconnect_attachments_connection.cc +++ b/google/cloud/compute/interconnect_attachments/v1/interconnect_attachments_connection.cc @@ -57,6 +57,23 @@ InterconnectAttachmentsConnection::DeleteInterconnectAttachment( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +InterconnectAttachmentsConnection::DeleteInterconnectAttachment( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::interconnect_attachments::v1:: + DeleteInterconnectAttachmentRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +InterconnectAttachmentsConnection::DeleteInterconnectAttachment( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr InterconnectAttachmentsConnection::GetInterconnectAttachment( google::cloud::cpp::compute::interconnect_attachments::v1:: @@ -73,6 +90,23 @@ InterconnectAttachmentsConnection::InsertInterconnectAttachment( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +InterconnectAttachmentsConnection::InsertInterconnectAttachment( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::interconnect_attachments::v1:: + InsertInterconnectAttachmentRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +InterconnectAttachmentsConnection::InsertInterconnectAttachment( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StreamRange InterconnectAttachmentsConnection::ListInterconnectAttachments( google::cloud::cpp::compute::interconnect_attachments::v1:: @@ -90,6 +124,23 @@ InterconnectAttachmentsConnection::PatchInterconnectAttachment( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +InterconnectAttachmentsConnection::PatchInterconnectAttachment( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::interconnect_attachments::v1:: + PatchInterconnectAttachmentRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +InterconnectAttachmentsConnection::PatchInterconnectAttachment( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> InterconnectAttachmentsConnection::SetLabels( google::cloud::cpp::compute::interconnect_attachments::v1:: @@ -99,6 +150,23 @@ InterconnectAttachmentsConnection::SetLabels( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +InterconnectAttachmentsConnection::SetLabels( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::interconnect_attachments::v1:: + SetLabelsRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +InterconnectAttachmentsConnection::SetLabels( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace compute_interconnect_attachments_v1 } // namespace cloud diff --git a/google/cloud/compute/interconnect_attachments/v1/interconnect_attachments_connection.h b/google/cloud/compute/interconnect_attachments/v1/interconnect_attachments_connection.h index 605a69dbb475b..a0b597470b2af 100644 --- a/google/cloud/compute/interconnect_attachments/v1/interconnect_attachments_connection.h +++ b/google/cloud/compute/interconnect_attachments/v1/interconnect_attachments_connection.h @@ -23,8 +23,10 @@ #include "google/cloud/compute/interconnect_attachments/v1/interconnect_attachments_connection_idempotency_policy.h" #include "google/cloud/compute/interconnect_attachments/v1/internal/interconnect_attachments_retry_traits.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/internal/retry_policy_impl.h" +#include "google/cloud/no_await_tag.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" #include "google/cloud/status_or.h" @@ -207,6 +209,17 @@ class InterconnectAttachmentsConnection { google::cloud::cpp::compute::interconnect_attachments::v1:: DeleteInterconnectAttachmentRequest const& request); + virtual StatusOr + DeleteInterconnectAttachment( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::interconnect_attachments::v1:: + DeleteInterconnectAttachmentRequest const& request); + + virtual future> + DeleteInterconnectAttachment( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual StatusOr GetInterconnectAttachment( google::cloud::cpp::compute::interconnect_attachments::v1:: @@ -217,6 +230,17 @@ class InterconnectAttachmentsConnection { google::cloud::cpp::compute::interconnect_attachments::v1:: InsertInterconnectAttachmentRequest const& request); + virtual StatusOr + InsertInterconnectAttachment( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::interconnect_attachments::v1:: + InsertInterconnectAttachmentRequest const& request); + + virtual future> + InsertInterconnectAttachment( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual StreamRange ListInterconnectAttachments( google::cloud::cpp::compute::interconnect_attachments::v1:: @@ -227,9 +251,29 @@ class InterconnectAttachmentsConnection { google::cloud::cpp::compute::interconnect_attachments::v1:: PatchInterconnectAttachmentRequest const& request); + virtual StatusOr + PatchInterconnectAttachment( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::interconnect_attachments::v1:: + PatchInterconnectAttachmentRequest const& request); + + virtual future> + PatchInterconnectAttachment( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual future> SetLabels(google::cloud::cpp::compute::interconnect_attachments::v1:: SetLabelsRequest const& request); + + virtual StatusOr SetLabels( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::interconnect_attachments::v1:: + SetLabelsRequest const& request); + + virtual future> + SetLabels(ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); }; GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END diff --git a/google/cloud/compute/interconnect_attachments/v1/internal/interconnect_attachments_rest_connection_impl.cc b/google/cloud/compute/interconnect_attachments/v1/internal/interconnect_attachments_rest_connection_impl.cc index 4ef1d9a57a226..75d19f36b0c57 100644 --- a/google/cloud/compute/interconnect_attachments/v1/internal/interconnect_attachments_rest_connection_impl.cc +++ b/google/cloud/compute/interconnect_attachments/v1/internal/interconnect_attachments_rest_connection_impl.cc @@ -24,6 +24,7 @@ #include "google/cloud/internal/async_rest_long_running_operation_custom.h" #include "google/cloud/internal/extract_long_running_result.h" #include "google/cloud/internal/pagination_range.h" +#include "google/cloud/internal/rest_lro_helpers.h" #include "google/cloud/internal/rest_retry_loop.h" #include "google/cloud/rest_options.h" #include @@ -154,6 +155,80 @@ InterconnectAttachmentsRestConnectionImpl::DeleteInterconnectAttachment( }); } +StatusOr +InterconnectAttachmentsRestConnectionImpl::DeleteInterconnectAttachment( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::interconnect_attachments::v1:: + DeleteInterconnectAttachmentRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteInterconnectAttachment(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::interconnect_attachments::v1:: + DeleteInterconnectAttachmentRequest const& request) { + return stub_->DeleteInterconnectAttachment(rest_context, options, + request); + }, + *current, request, __func__); +} + +future> +InterconnectAttachmentsRestConnectionImpl::DeleteInterconnectAttachment( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::region_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }); +} + StatusOr InterconnectAttachmentsRestConnectionImpl::GetInterconnectAttachment( google::cloud::cpp::compute::interconnect_attachments::v1:: @@ -230,6 +305,80 @@ InterconnectAttachmentsRestConnectionImpl::InsertInterconnectAttachment( }); } +StatusOr +InterconnectAttachmentsRestConnectionImpl::InsertInterconnectAttachment( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::interconnect_attachments::v1:: + InsertInterconnectAttachmentRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->InsertInterconnectAttachment(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::interconnect_attachments::v1:: + InsertInterconnectAttachmentRequest const& request) { + return stub_->InsertInterconnectAttachment(rest_context, options, + request); + }, + *current, request, __func__); +} + +future> +InterconnectAttachmentsRestConnectionImpl::InsertInterconnectAttachment( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::region_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }); +} + StreamRange InterconnectAttachmentsRestConnectionImpl::ListInterconnectAttachments( google::cloud::cpp::compute::interconnect_attachments::v1:: @@ -330,6 +479,80 @@ InterconnectAttachmentsRestConnectionImpl::PatchInterconnectAttachment( }); } +StatusOr +InterconnectAttachmentsRestConnectionImpl::PatchInterconnectAttachment( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::interconnect_attachments::v1:: + PatchInterconnectAttachmentRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->PatchInterconnectAttachment(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::interconnect_attachments::v1:: + PatchInterconnectAttachmentRequest const& request) { + return stub_->PatchInterconnectAttachment(rest_context, options, + request); + }, + *current, request, __func__); +} + +future> +InterconnectAttachmentsRestConnectionImpl::PatchInterconnectAttachment( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::region_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }); +} + future> InterconnectAttachmentsRestConnectionImpl::SetLabels( google::cloud::cpp::compute::interconnect_attachments::v1:: @@ -390,6 +613,79 @@ InterconnectAttachmentsRestConnectionImpl::SetLabels( }); } +StatusOr +InterconnectAttachmentsRestConnectionImpl::SetLabels( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::interconnect_attachments::v1:: + SetLabelsRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->SetLabels(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::interconnect_attachments::v1:: + SetLabelsRequest const& request) { + return stub_->SetLabels(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +InterconnectAttachmentsRestConnectionImpl::SetLabels( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::region_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace compute_interconnect_attachments_v1_internal } // namespace cloud diff --git a/google/cloud/compute/interconnect_attachments/v1/internal/interconnect_attachments_rest_connection_impl.h b/google/cloud/compute/interconnect_attachments/v1/internal/interconnect_attachments_rest_connection_impl.h index 6b2b47a090352..1773797c0df21 100644 --- a/google/cloud/compute/interconnect_attachments/v1/internal/interconnect_attachments_rest_connection_impl.h +++ b/google/cloud/compute/interconnect_attachments/v1/internal/interconnect_attachments_rest_connection_impl.h @@ -65,6 +65,17 @@ class InterconnectAttachmentsRestConnectionImpl google::cloud::cpp::compute::interconnect_attachments::v1:: DeleteInterconnectAttachmentRequest const& request) override; + StatusOr + DeleteInterconnectAttachment( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::interconnect_attachments::v1:: + DeleteInterconnectAttachmentRequest const& request) override; + + future> + DeleteInterconnectAttachment( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StatusOr GetInterconnectAttachment( google::cloud::cpp::compute::interconnect_attachments::v1:: @@ -75,6 +86,17 @@ class InterconnectAttachmentsRestConnectionImpl google::cloud::cpp::compute::interconnect_attachments::v1:: InsertInterconnectAttachmentRequest const& request) override; + StatusOr + InsertInterconnectAttachment( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::interconnect_attachments::v1:: + InsertInterconnectAttachmentRequest const& request) override; + + future> + InsertInterconnectAttachment( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StreamRange ListInterconnectAttachments( google::cloud::cpp::compute::interconnect_attachments::v1:: @@ -85,10 +107,30 @@ class InterconnectAttachmentsRestConnectionImpl google::cloud::cpp::compute::interconnect_attachments::v1:: PatchInterconnectAttachmentRequest const& request) override; + StatusOr + PatchInterconnectAttachment( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::interconnect_attachments::v1:: + PatchInterconnectAttachmentRequest const& request) override; + + future> + PatchInterconnectAttachment( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> SetLabels( google::cloud::cpp::compute::interconnect_attachments::v1:: SetLabelsRequest const& request) override; + StatusOr SetLabels( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::interconnect_attachments::v1:: + SetLabelsRequest const& request) override; + + future> SetLabels( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + private: static std::unique_ptr< compute_interconnect_attachments_v1::InterconnectAttachmentsRetryPolicy> diff --git a/google/cloud/compute/interconnect_attachments/v1/internal/interconnect_attachments_tracing_connection.cc b/google/cloud/compute/interconnect_attachments/v1/internal/interconnect_attachments_tracing_connection.cc index 7b37e89248c29..f7d7844a334ef 100644 --- a/google/cloud/compute/interconnect_attachments/v1/internal/interconnect_attachments_tracing_connection.cc +++ b/google/cloud/compute/interconnect_attachments/v1/internal/interconnect_attachments_tracing_connection.cc @@ -65,6 +65,33 @@ InterconnectAttachmentsTracingConnection::DeleteInterconnectAttachment( child_->DeleteInterconnectAttachment(request)); } +StatusOr +InterconnectAttachmentsTracingConnection::DeleteInterconnectAttachment( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::interconnect_attachments::v1:: + DeleteInterconnectAttachmentRequest const& request) { + auto span = internal::MakeSpan( + "compute_interconnect_attachments_v1::InterconnectAttachmentsConnection::" + "DeleteInterconnectAttachment"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->DeleteInterconnectAttachment(ExperimentalTag{}, + NoAwaitTag{}, request)); +} + +future> +InterconnectAttachmentsTracingConnection::DeleteInterconnectAttachment( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_interconnect_attachments_v1::InterconnectAttachmentsConnection::" + "DeleteInterconnectAttachment"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), + child_->DeleteInterconnectAttachment(ExperimentalTag{}, operation)); +} + StatusOr InterconnectAttachmentsTracingConnection::GetInterconnectAttachment( google::cloud::cpp::compute::interconnect_attachments::v1:: @@ -88,6 +115,33 @@ InterconnectAttachmentsTracingConnection::InsertInterconnectAttachment( child_->InsertInterconnectAttachment(request)); } +StatusOr +InterconnectAttachmentsTracingConnection::InsertInterconnectAttachment( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::interconnect_attachments::v1:: + InsertInterconnectAttachmentRequest const& request) { + auto span = internal::MakeSpan( + "compute_interconnect_attachments_v1::InterconnectAttachmentsConnection::" + "InsertInterconnectAttachment"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->InsertInterconnectAttachment(ExperimentalTag{}, + NoAwaitTag{}, request)); +} + +future> +InterconnectAttachmentsTracingConnection::InsertInterconnectAttachment( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_interconnect_attachments_v1::InterconnectAttachmentsConnection::" + "InsertInterconnectAttachment"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), + child_->InsertInterconnectAttachment(ExperimentalTag{}, operation)); +} + StreamRange InterconnectAttachmentsTracingConnection::ListInterconnectAttachments( google::cloud::cpp::compute::interconnect_attachments::v1:: @@ -114,6 +168,32 @@ InterconnectAttachmentsTracingConnection::PatchInterconnectAttachment( child_->PatchInterconnectAttachment(request)); } +StatusOr +InterconnectAttachmentsTracingConnection::PatchInterconnectAttachment( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::interconnect_attachments::v1:: + PatchInterconnectAttachmentRequest const& request) { + auto span = internal::MakeSpan( + "compute_interconnect_attachments_v1::InterconnectAttachmentsConnection::" + "PatchInterconnectAttachment"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->PatchInterconnectAttachment(ExperimentalTag{}, + NoAwaitTag{}, request)); +} + +future> +InterconnectAttachmentsTracingConnection::PatchInterconnectAttachment( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_interconnect_attachments_v1::InterconnectAttachmentsConnection::" + "PatchInterconnectAttachment"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->PatchInterconnectAttachment( + ExperimentalTag{}, operation)); +} + future> InterconnectAttachmentsTracingConnection::SetLabels( google::cloud::cpp::compute::interconnect_attachments::v1:: @@ -125,6 +205,31 @@ InterconnectAttachmentsTracingConnection::SetLabels( return internal::EndSpan(std::move(span), child_->SetLabels(request)); } +StatusOr +InterconnectAttachmentsTracingConnection::SetLabels( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::interconnect_attachments::v1:: + SetLabelsRequest const& request) { + auto span = internal::MakeSpan( + "compute_interconnect_attachments_v1::InterconnectAttachmentsConnection::" + "SetLabels"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->SetLabels(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +InterconnectAttachmentsTracingConnection::SetLabels( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_interconnect_attachments_v1::InterconnectAttachmentsConnection::" + "SetLabels"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->SetLabels(ExperimentalTag{}, operation)); +} + #endif // GOOGLE_CLOUD_CPP_HAVE_OPENTELEMETRY std::shared_ptr< diff --git a/google/cloud/compute/interconnect_attachments/v1/internal/interconnect_attachments_tracing_connection.h b/google/cloud/compute/interconnect_attachments/v1/internal/interconnect_attachments_tracing_connection.h index 322a5baf12702..e1b028a6af9a0 100644 --- a/google/cloud/compute/interconnect_attachments/v1/internal/interconnect_attachments_tracing_connection.h +++ b/google/cloud/compute/interconnect_attachments/v1/internal/interconnect_attachments_tracing_connection.h @@ -55,6 +55,17 @@ class InterconnectAttachmentsTracingConnection google::cloud::cpp::compute::interconnect_attachments::v1:: DeleteInterconnectAttachmentRequest const& request) override; + StatusOr + DeleteInterconnectAttachment( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::interconnect_attachments::v1:: + DeleteInterconnectAttachmentRequest const& request) override; + + future> + DeleteInterconnectAttachment( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StatusOr GetInterconnectAttachment( google::cloud::cpp::compute::interconnect_attachments::v1:: @@ -65,6 +76,17 @@ class InterconnectAttachmentsTracingConnection google::cloud::cpp::compute::interconnect_attachments::v1:: InsertInterconnectAttachmentRequest const& request) override; + StatusOr + InsertInterconnectAttachment( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::interconnect_attachments::v1:: + InsertInterconnectAttachmentRequest const& request) override; + + future> + InsertInterconnectAttachment( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StreamRange ListInterconnectAttachments( google::cloud::cpp::compute::interconnect_attachments::v1:: @@ -75,10 +97,30 @@ class InterconnectAttachmentsTracingConnection google::cloud::cpp::compute::interconnect_attachments::v1:: PatchInterconnectAttachmentRequest const& request) override; + StatusOr + PatchInterconnectAttachment( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::interconnect_attachments::v1:: + PatchInterconnectAttachmentRequest const& request) override; + + future> + PatchInterconnectAttachment( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> SetLabels( google::cloud::cpp::compute::interconnect_attachments::v1:: SetLabelsRequest const& request) override; + StatusOr SetLabels( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::interconnect_attachments::v1:: + SetLabelsRequest const& request) override; + + future> SetLabels( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + private: std::shared_ptr< compute_interconnect_attachments_v1::InterconnectAttachmentsConnection> diff --git a/google/cloud/compute/interconnect_attachments/v1/mocks/mock_interconnect_attachments_connection.h b/google/cloud/compute/interconnect_attachments/v1/mocks/mock_interconnect_attachments_connection.h index a7821609af8fa..e834a9ce5ac65 100644 --- a/google/cloud/compute/interconnect_attachments/v1/mocks/mock_interconnect_attachments_connection.h +++ b/google/cloud/compute/interconnect_attachments/v1/mocks/mock_interconnect_attachments_connection.h @@ -63,6 +63,19 @@ class MockInterconnectAttachmentsConnection DeleteInterconnectAttachmentRequest const& request), (override)); + MOCK_METHOD(StatusOr, + DeleteInterconnectAttachment, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::interconnect_attachments::v1:: + DeleteInterconnectAttachmentRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteInterconnectAttachment, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD(StatusOr, GetInterconnectAttachment, (google::cloud::cpp::compute::interconnect_attachments::v1:: @@ -75,6 +88,19 @@ class MockInterconnectAttachmentsConnection InsertInterconnectAttachmentRequest const& request), (override)); + MOCK_METHOD(StatusOr, + InsertInterconnectAttachment, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::interconnect_attachments::v1:: + InsertInterconnectAttachmentRequest const& request), + (override)); + + MOCK_METHOD(future>, + InsertInterconnectAttachment, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD( (StreamRange), ListInterconnectAttachments, @@ -88,11 +114,36 @@ class MockInterconnectAttachmentsConnection PatchInterconnectAttachmentRequest const& request), (override)); + MOCK_METHOD(StatusOr, + PatchInterconnectAttachment, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::interconnect_attachments::v1:: + PatchInterconnectAttachmentRequest const& request), + (override)); + + MOCK_METHOD(future>, + PatchInterconnectAttachment, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD(future>, SetLabels, (google::cloud::cpp::compute::interconnect_attachments::v1:: SetLabelsRequest const& request), (override)); + + MOCK_METHOD(StatusOr, SetLabels, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::interconnect_attachments::v1:: + SetLabelsRequest const& request), + (override)); + + MOCK_METHOD(future>, + SetLabels, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); }; GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END diff --git a/google/cloud/compute/interconnect_locations/v1/interconnect_locations_connection.h b/google/cloud/compute/interconnect_locations/v1/interconnect_locations_connection.h index 97a07d7349fbd..d2b3226fdb8e9 100644 --- a/google/cloud/compute/interconnect_locations/v1/interconnect_locations_connection.h +++ b/google/cloud/compute/interconnect_locations/v1/interconnect_locations_connection.h @@ -23,6 +23,7 @@ #include "google/cloud/compute/interconnect_locations/v1/interconnect_locations_connection_idempotency_policy.h" #include "google/cloud/compute/interconnect_locations/v1/internal/interconnect_locations_retry_traits.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/internal/retry_policy_impl.h" #include "google/cloud/options.h" #include "google/cloud/status_or.h" diff --git a/google/cloud/compute/interconnect_remote_locations/v1/interconnect_remote_locations_connection.h b/google/cloud/compute/interconnect_remote_locations/v1/interconnect_remote_locations_connection.h index 8429dc64f890d..d468418c357a5 100644 --- a/google/cloud/compute/interconnect_remote_locations/v1/interconnect_remote_locations_connection.h +++ b/google/cloud/compute/interconnect_remote_locations/v1/interconnect_remote_locations_connection.h @@ -23,6 +23,7 @@ #include "google/cloud/compute/interconnect_remote_locations/v1/interconnect_remote_locations_connection_idempotency_policy.h" #include "google/cloud/compute/interconnect_remote_locations/v1/internal/interconnect_remote_locations_retry_traits.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/internal/retry_policy_impl.h" #include "google/cloud/options.h" #include "google/cloud/status_or.h" diff --git a/google/cloud/compute/interconnects/v1/interconnects_connection.cc b/google/cloud/compute/interconnects/v1/interconnects_connection.cc index 10ac8ec6e52fb..9fd61708df043 100644 --- a/google/cloud/compute/interconnects/v1/interconnects_connection.cc +++ b/google/cloud/compute/interconnects/v1/interconnects_connection.cc @@ -45,6 +45,23 @@ InterconnectsConnection::DeleteInterconnect( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +InterconnectsConnection::DeleteInterconnect( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::interconnects::v1:: + DeleteInterconnectRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +InterconnectsConnection::DeleteInterconnect( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr InterconnectsConnection::GetInterconnect( google::cloud::cpp::compute::interconnects::v1:: @@ -75,6 +92,23 @@ InterconnectsConnection::InsertInterconnect( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +InterconnectsConnection::InsertInterconnect( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::interconnects::v1:: + InsertInterconnectRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +InterconnectsConnection::InsertInterconnect( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StreamRange InterconnectsConnection::ListInterconnects( google::cloud::cpp::compute::interconnects::v1:: @@ -92,6 +126,23 @@ InterconnectsConnection::PatchInterconnect( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +InterconnectsConnection::PatchInterconnect( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::interconnects::v1:: + PatchInterconnectRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +InterconnectsConnection::PatchInterconnect( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> InterconnectsConnection::SetLabels( google::cloud::cpp::compute::interconnects::v1::SetLabelsRequest const&) { @@ -100,6 +151,22 @@ InterconnectsConnection::SetLabels( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +InterconnectsConnection::SetLabels( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::interconnects::v1::SetLabelsRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +InterconnectsConnection::SetLabels( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace compute_interconnects_v1 } // namespace cloud diff --git a/google/cloud/compute/interconnects/v1/interconnects_connection.h b/google/cloud/compute/interconnects/v1/interconnects_connection.h index 6be2b086897ea..88a97ec474781 100644 --- a/google/cloud/compute/interconnects/v1/interconnects_connection.h +++ b/google/cloud/compute/interconnects/v1/interconnects_connection.h @@ -22,8 +22,10 @@ #include "google/cloud/compute/interconnects/v1/interconnects_connection_idempotency_policy.h" #include "google/cloud/compute/interconnects/v1/internal/interconnects_retry_traits.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/internal/retry_policy_impl.h" +#include "google/cloud/no_await_tag.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" #include "google/cloud/status_or.h" @@ -189,6 +191,16 @@ class InterconnectsConnection { DeleteInterconnect(google::cloud::cpp::compute::interconnects::v1:: DeleteInterconnectRequest const& request); + virtual StatusOr + DeleteInterconnect(ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::interconnects::v1:: + DeleteInterconnectRequest const& request); + + virtual future> + DeleteInterconnect( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual StatusOr GetInterconnect(google::cloud::cpp::compute::interconnects::v1:: GetInterconnectRequest const& request); @@ -207,6 +219,16 @@ class InterconnectsConnection { InsertInterconnect(google::cloud::cpp::compute::interconnects::v1:: InsertInterconnectRequest const& request); + virtual StatusOr + InsertInterconnect(ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::interconnects::v1:: + InsertInterconnectRequest const& request); + + virtual future> + InsertInterconnect( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual StreamRange ListInterconnects( google::cloud::cpp::compute::interconnects::v1::ListInterconnectsRequest @@ -216,10 +238,29 @@ class InterconnectsConnection { PatchInterconnect(google::cloud::cpp::compute::interconnects::v1:: PatchInterconnectRequest const& request); + virtual StatusOr + PatchInterconnect(ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::interconnects::v1:: + PatchInterconnectRequest const& request); + + virtual future> + PatchInterconnect( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual future> SetLabels( google::cloud::cpp::compute::interconnects::v1::SetLabelsRequest const& request); + + virtual StatusOr SetLabels( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::interconnects::v1::SetLabelsRequest const& + request); + + virtual future> + SetLabels(ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); }; GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END diff --git a/google/cloud/compute/interconnects/v1/internal/interconnects_rest_connection_impl.cc b/google/cloud/compute/interconnects/v1/internal/interconnects_rest_connection_impl.cc index daf8fe70dd4d1..179f3e23434b8 100644 --- a/google/cloud/compute/interconnects/v1/internal/interconnects_rest_connection_impl.cc +++ b/google/cloud/compute/interconnects/v1/internal/interconnects_rest_connection_impl.cc @@ -23,6 +23,7 @@ #include "google/cloud/internal/async_rest_long_running_operation_custom.h" #include "google/cloud/internal/extract_long_running_result.h" #include "google/cloud/internal/pagination_range.h" +#include "google/cloud/internal/rest_lro_helpers.h" #include "google/cloud/internal/rest_retry_loop.h" #include "google/cloud/rest_options.h" #include @@ -101,6 +102,77 @@ InterconnectsRestConnectionImpl::DeleteInterconnect( }); } +StatusOr +InterconnectsRestConnectionImpl::DeleteInterconnect( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::interconnects::v1:: + DeleteInterconnectRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteInterconnect(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::interconnects::v1:: + DeleteInterconnectRequest const& request) { + return stub_->DeleteInterconnect(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +InterconnectsRestConnectionImpl::DeleteInterconnect( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::global_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }); +} + StatusOr InterconnectsRestConnectionImpl::GetInterconnect( google::cloud::cpp::compute::interconnects::v1:: @@ -207,6 +279,77 @@ InterconnectsRestConnectionImpl::InsertInterconnect( }); } +StatusOr +InterconnectsRestConnectionImpl::InsertInterconnect( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::interconnects::v1:: + InsertInterconnectRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->InsertInterconnect(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::interconnects::v1:: + InsertInterconnectRequest const& request) { + return stub_->InsertInterconnect(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +InterconnectsRestConnectionImpl::InsertInterconnect( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::global_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }); +} + StreamRange InterconnectsRestConnectionImpl::ListInterconnects( google::cloud::cpp::compute::interconnects::v1::ListInterconnectsRequest @@ -302,6 +445,77 @@ InterconnectsRestConnectionImpl::PatchInterconnect( }); } +StatusOr +InterconnectsRestConnectionImpl::PatchInterconnect( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::interconnects::v1:: + PatchInterconnectRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->PatchInterconnect(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::interconnects::v1:: + PatchInterconnectRequest const& request) { + return stub_->PatchInterconnect(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +InterconnectsRestConnectionImpl::PatchInterconnect( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::global_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }); +} + future> InterconnectsRestConnectionImpl::SetLabels( google::cloud::cpp::compute::interconnects::v1::SetLabelsRequest const& @@ -360,6 +574,77 @@ InterconnectsRestConnectionImpl::SetLabels( }); } +StatusOr +InterconnectsRestConnectionImpl::SetLabels( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::interconnects::v1::SetLabelsRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->SetLabels(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::interconnects::v1:: + SetLabelsRequest const& request) { + return stub_->SetLabels(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +InterconnectsRestConnectionImpl::SetLabels( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::global_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace compute_interconnects_v1_internal } // namespace cloud diff --git a/google/cloud/compute/interconnects/v1/internal/interconnects_rest_connection_impl.h b/google/cloud/compute/interconnects/v1/internal/interconnects_rest_connection_impl.h index bb6a038356959..74b16fcb5ef3f 100644 --- a/google/cloud/compute/interconnects/v1/internal/interconnects_rest_connection_impl.h +++ b/google/cloud/compute/interconnects/v1/internal/interconnects_rest_connection_impl.h @@ -55,6 +55,16 @@ class InterconnectsRestConnectionImpl DeleteInterconnect(google::cloud::cpp::compute::interconnects::v1:: DeleteInterconnectRequest const& request) override; + StatusOr DeleteInterconnect( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::interconnects::v1:: + DeleteInterconnectRequest const& request) override; + + future> + DeleteInterconnect( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StatusOr GetInterconnect( google::cloud::cpp::compute::interconnects::v1:: GetInterconnectRequest const& request) override; @@ -72,6 +82,16 @@ class InterconnectsRestConnectionImpl InsertInterconnect(google::cloud::cpp::compute::interconnects::v1:: InsertInterconnectRequest const& request) override; + StatusOr InsertInterconnect( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::interconnects::v1:: + InsertInterconnectRequest const& request) override; + + future> + InsertInterconnect( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StreamRange ListInterconnects( google::cloud::cpp::compute::interconnects::v1::ListInterconnectsRequest request) override; @@ -80,10 +100,29 @@ class InterconnectsRestConnectionImpl PatchInterconnect(google::cloud::cpp::compute::interconnects::v1:: PatchInterconnectRequest const& request) override; + StatusOr PatchInterconnect( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::interconnects::v1:: + PatchInterconnectRequest const& request) override; + + future> + PatchInterconnect( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> SetLabels( google::cloud::cpp::compute::interconnects::v1::SetLabelsRequest const& request) override; + StatusOr SetLabels( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::interconnects::v1::SetLabelsRequest const& + request) override; + + future> SetLabels( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + private: static std::unique_ptr retry_policy(Options const& options) { diff --git a/google/cloud/compute/interconnects/v1/internal/interconnects_tracing_connection.cc b/google/cloud/compute/interconnects/v1/internal/interconnects_tracing_connection.cc index d8f729f8d4d04..7ad6f06a186ae 100644 --- a/google/cloud/compute/interconnects/v1/internal/interconnects_tracing_connection.cc +++ b/google/cloud/compute/interconnects/v1/internal/interconnects_tracing_connection.cc @@ -44,6 +44,30 @@ InterconnectsTracingConnection::DeleteInterconnect( child_->DeleteInterconnect(request)); } +StatusOr +InterconnectsTracingConnection::DeleteInterconnect( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::interconnects::v1:: + DeleteInterconnectRequest const& request) { + auto span = internal::MakeSpan( + "compute_interconnects_v1::InterconnectsConnection::DeleteInterconnect"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->DeleteInterconnect(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +InterconnectsTracingConnection::DeleteInterconnect( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_interconnects_v1::InterconnectsConnection::DeleteInterconnect"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->DeleteInterconnect( + ExperimentalTag{}, operation)); +} + StatusOr InterconnectsTracingConnection::GetInterconnect( google::cloud::cpp::compute::interconnects::v1:: @@ -85,6 +109,30 @@ InterconnectsTracingConnection::InsertInterconnect( child_->InsertInterconnect(request)); } +StatusOr +InterconnectsTracingConnection::InsertInterconnect( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::interconnects::v1:: + InsertInterconnectRequest const& request) { + auto span = internal::MakeSpan( + "compute_interconnects_v1::InterconnectsConnection::InsertInterconnect"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->InsertInterconnect(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +InterconnectsTracingConnection::InsertInterconnect( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_interconnects_v1::InterconnectsConnection::InsertInterconnect"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->InsertInterconnect( + ExperimentalTag{}, operation)); +} + StreamRange InterconnectsTracingConnection::ListInterconnects( google::cloud::cpp::compute::interconnects::v1::ListInterconnectsRequest @@ -108,6 +156,30 @@ InterconnectsTracingConnection::PatchInterconnect( return internal::EndSpan(std::move(span), child_->PatchInterconnect(request)); } +StatusOr +InterconnectsTracingConnection::PatchInterconnect( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::interconnects::v1:: + PatchInterconnectRequest const& request) { + auto span = internal::MakeSpan( + "compute_interconnects_v1::InterconnectsConnection::PatchInterconnect"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->PatchInterconnect(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +InterconnectsTracingConnection::PatchInterconnect( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_interconnects_v1::InterconnectsConnection::PatchInterconnect"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->PatchInterconnect(ExperimentalTag{}, operation)); +} + future> InterconnectsTracingConnection::SetLabels( google::cloud::cpp::compute::interconnects::v1::SetLabelsRequest const& @@ -118,6 +190,29 @@ InterconnectsTracingConnection::SetLabels( return internal::EndSpan(std::move(span), child_->SetLabels(request)); } +StatusOr +InterconnectsTracingConnection::SetLabels( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::interconnects::v1::SetLabelsRequest const& + request) { + auto span = internal::MakeSpan( + "compute_interconnects_v1::InterconnectsConnection::SetLabels"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->SetLabels(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +InterconnectsTracingConnection::SetLabels( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_interconnects_v1::InterconnectsConnection::SetLabels"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->SetLabels(ExperimentalTag{}, operation)); +} + #endif // GOOGLE_CLOUD_CPP_HAVE_OPENTELEMETRY std::shared_ptr diff --git a/google/cloud/compute/interconnects/v1/internal/interconnects_tracing_connection.h b/google/cloud/compute/interconnects/v1/internal/interconnects_tracing_connection.h index 58b9ac4415376..bacddcc4593ac 100644 --- a/google/cloud/compute/interconnects/v1/internal/interconnects_tracing_connection.h +++ b/google/cloud/compute/interconnects/v1/internal/interconnects_tracing_connection.h @@ -44,6 +44,16 @@ class InterconnectsTracingConnection DeleteInterconnect(google::cloud::cpp::compute::interconnects::v1:: DeleteInterconnectRequest const& request) override; + StatusOr DeleteInterconnect( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::interconnects::v1:: + DeleteInterconnectRequest const& request) override; + + future> + DeleteInterconnect( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StatusOr GetInterconnect( google::cloud::cpp::compute::interconnects::v1:: GetInterconnectRequest const& request) override; @@ -61,6 +71,16 @@ class InterconnectsTracingConnection InsertInterconnect(google::cloud::cpp::compute::interconnects::v1:: InsertInterconnectRequest const& request) override; + StatusOr InsertInterconnect( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::interconnects::v1:: + InsertInterconnectRequest const& request) override; + + future> + InsertInterconnect( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StreamRange ListInterconnects( google::cloud::cpp::compute::interconnects::v1::ListInterconnectsRequest request) override; @@ -69,10 +89,29 @@ class InterconnectsTracingConnection PatchInterconnect(google::cloud::cpp::compute::interconnects::v1:: PatchInterconnectRequest const& request) override; + StatusOr PatchInterconnect( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::interconnects::v1:: + PatchInterconnectRequest const& request) override; + + future> + PatchInterconnect( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> SetLabels( google::cloud::cpp::compute::interconnects::v1::SetLabelsRequest const& request) override; + StatusOr SetLabels( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::interconnects::v1::SetLabelsRequest const& + request) override; + + future> SetLabels( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + private: std::shared_ptr child_; }; diff --git a/google/cloud/compute/interconnects/v1/mocks/mock_interconnects_connection.h b/google/cloud/compute/interconnects/v1/mocks/mock_interconnects_connection.h index 0c927ff6d0cd4..b702399b993d9 100644 --- a/google/cloud/compute/interconnects/v1/mocks/mock_interconnects_connection.h +++ b/google/cloud/compute/interconnects/v1/mocks/mock_interconnects_connection.h @@ -53,6 +53,19 @@ class MockInterconnectsConnection DeleteInterconnectRequest const& request), (override)); + MOCK_METHOD(StatusOr, + DeleteInterconnect, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::interconnects::v1:: + DeleteInterconnectRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteInterconnect, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD(StatusOr, GetInterconnect, (google::cloud::cpp::compute::interconnects::v1:: @@ -80,6 +93,19 @@ class MockInterconnectsConnection InsertInterconnectRequest const& request), (override)); + MOCK_METHOD(StatusOr, + InsertInterconnect, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::interconnects::v1:: + InsertInterconnectRequest const& request), + (override)); + + MOCK_METHOD(future>, + InsertInterconnect, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD( (StreamRange), ListInterconnects, @@ -93,11 +119,37 @@ class MockInterconnectsConnection PatchInterconnectRequest const& request), (override)); + MOCK_METHOD(StatusOr, + PatchInterconnect, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::interconnects::v1:: + PatchInterconnectRequest const& request), + (override)); + + MOCK_METHOD(future>, + PatchInterconnect, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD( future>, SetLabels, (google::cloud::cpp::compute::interconnects::v1::SetLabelsRequest const& request), (override)); + + MOCK_METHOD( + StatusOr, SetLabels, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::interconnects::v1::SetLabelsRequest const& + request), + (override)); + + MOCK_METHOD(future>, + SetLabels, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); }; GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END diff --git a/google/cloud/compute/license_codes/v1/license_codes_connection.h b/google/cloud/compute/license_codes/v1/license_codes_connection.h index 3f3abfc397baf..f8a31b5fe1ad4 100644 --- a/google/cloud/compute/license_codes/v1/license_codes_connection.h +++ b/google/cloud/compute/license_codes/v1/license_codes_connection.h @@ -22,6 +22,7 @@ #include "google/cloud/compute/license_codes/v1/internal/license_codes_retry_traits.h" #include "google/cloud/compute/license_codes/v1/license_codes_connection_idempotency_policy.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/internal/retry_policy_impl.h" #include "google/cloud/options.h" #include "google/cloud/status_or.h" diff --git a/google/cloud/compute/licenses/v1/internal/licenses_rest_connection_impl.cc b/google/cloud/compute/licenses/v1/internal/licenses_rest_connection_impl.cc index c4dfb8dd247f1..4a52819c5316a 100644 --- a/google/cloud/compute/licenses/v1/internal/licenses_rest_connection_impl.cc +++ b/google/cloud/compute/licenses/v1/internal/licenses_rest_connection_impl.cc @@ -23,6 +23,7 @@ #include "google/cloud/internal/async_rest_long_running_operation_custom.h" #include "google/cloud/internal/extract_long_running_result.h" #include "google/cloud/internal/pagination_range.h" +#include "google/cloud/internal/rest_lro_helpers.h" #include "google/cloud/internal/rest_retry_loop.h" #include "google/cloud/rest_options.h" #include @@ -101,6 +102,78 @@ LicensesRestConnectionImpl::DeleteLicense( }); } +StatusOr +LicensesRestConnectionImpl::DeleteLicense( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::licenses::v1::DeleteLicenseRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteLicense(request), + [this]( + rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::licenses::v1::DeleteLicenseRequest const& + request) { + return stub_->DeleteLicense(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +LicensesRestConnectionImpl::DeleteLicense( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::global_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }); +} + StatusOr LicensesRestConnectionImpl::GetLicense( google::cloud::cpp::compute::licenses::v1::GetLicenseRequest const& @@ -193,6 +266,78 @@ LicensesRestConnectionImpl::InsertLicense( }); } +StatusOr +LicensesRestConnectionImpl::InsertLicense( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::licenses::v1::InsertLicenseRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->InsertLicense(request), + [this]( + rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::licenses::v1::InsertLicenseRequest const& + request) { + return stub_->InsertLicense(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +LicensesRestConnectionImpl::InsertLicense( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::global_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }); +} + StreamRange LicensesRestConnectionImpl::ListLicenses( google::cloud::cpp::compute::licenses::v1::ListLicensesRequest request) { diff --git a/google/cloud/compute/licenses/v1/internal/licenses_rest_connection_impl.h b/google/cloud/compute/licenses/v1/internal/licenses_rest_connection_impl.h index 4797022eb6f55..9245cc4329154 100644 --- a/google/cloud/compute/licenses/v1/internal/licenses_rest_connection_impl.h +++ b/google/cloud/compute/licenses/v1/internal/licenses_rest_connection_impl.h @@ -54,6 +54,15 @@ class LicensesRestConnectionImpl google::cloud::cpp::compute::licenses::v1::DeleteLicenseRequest const& request) override; + StatusOr DeleteLicense( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::licenses::v1::DeleteLicenseRequest const& + request) override; + + future> DeleteLicense( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StatusOr GetLicense( google::cloud::cpp::compute::licenses::v1::GetLicenseRequest const& request) override; @@ -66,6 +75,15 @@ class LicensesRestConnectionImpl google::cloud::cpp::compute::licenses::v1::InsertLicenseRequest const& request) override; + StatusOr InsertLicense( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::licenses::v1::InsertLicenseRequest const& + request) override; + + future> InsertLicense( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StreamRange ListLicenses( google::cloud::cpp::compute::licenses::v1::ListLicensesRequest request) override; diff --git a/google/cloud/compute/licenses/v1/internal/licenses_tracing_connection.cc b/google/cloud/compute/licenses/v1/internal/licenses_tracing_connection.cc index 3830c448661be..3a9ea809eefd0 100644 --- a/google/cloud/compute/licenses/v1/internal/licenses_tracing_connection.cc +++ b/google/cloud/compute/licenses/v1/internal/licenses_tracing_connection.cc @@ -43,6 +43,29 @@ LicensesTracingConnection::DeleteLicense( return internal::EndSpan(std::move(span), child_->DeleteLicense(request)); } +StatusOr +LicensesTracingConnection::DeleteLicense( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::licenses::v1::DeleteLicenseRequest const& + request) { + auto span = internal::MakeSpan( + "compute_licenses_v1::LicensesConnection::DeleteLicense"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->DeleteLicense(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +LicensesTracingConnection::DeleteLicense( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_licenses_v1::LicensesConnection::DeleteLicense"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->DeleteLicense(ExperimentalTag{}, operation)); +} + StatusOr LicensesTracingConnection::GetLicense( google::cloud::cpp::compute::licenses::v1::GetLicenseRequest const& @@ -73,6 +96,29 @@ LicensesTracingConnection::InsertLicense( return internal::EndSpan(std::move(span), child_->InsertLicense(request)); } +StatusOr +LicensesTracingConnection::InsertLicense( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::licenses::v1::InsertLicenseRequest const& + request) { + auto span = internal::MakeSpan( + "compute_licenses_v1::LicensesConnection::InsertLicense"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->InsertLicense(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +LicensesTracingConnection::InsertLicense( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_licenses_v1::LicensesConnection::InsertLicense"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->InsertLicense(ExperimentalTag{}, operation)); +} + StreamRange LicensesTracingConnection::ListLicenses( google::cloud::cpp::compute::licenses::v1::ListLicensesRequest request) { diff --git a/google/cloud/compute/licenses/v1/internal/licenses_tracing_connection.h b/google/cloud/compute/licenses/v1/internal/licenses_tracing_connection.h index 6eb18b9d2cf31..297c867faa3c3 100644 --- a/google/cloud/compute/licenses/v1/internal/licenses_tracing_connection.h +++ b/google/cloud/compute/licenses/v1/internal/licenses_tracing_connection.h @@ -44,6 +44,15 @@ class LicensesTracingConnection google::cloud::cpp::compute::licenses::v1::DeleteLicenseRequest const& request) override; + StatusOr DeleteLicense( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::licenses::v1::DeleteLicenseRequest const& + request) override; + + future> DeleteLicense( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StatusOr GetLicense( google::cloud::cpp::compute::licenses::v1::GetLicenseRequest const& request) override; @@ -56,6 +65,15 @@ class LicensesTracingConnection google::cloud::cpp::compute::licenses::v1::InsertLicenseRequest const& request) override; + StatusOr InsertLicense( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::licenses::v1::InsertLicenseRequest const& + request) override; + + future> InsertLicense( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StreamRange ListLicenses( google::cloud::cpp::compute::licenses::v1::ListLicensesRequest request) override; diff --git a/google/cloud/compute/licenses/v1/licenses_connection.cc b/google/cloud/compute/licenses/v1/licenses_connection.cc index bc1f4e3749aa0..92732f379a7e3 100644 --- a/google/cloud/compute/licenses/v1/licenses_connection.cc +++ b/google/cloud/compute/licenses/v1/licenses_connection.cc @@ -44,6 +44,22 @@ LicensesConnection::DeleteLicense( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +LicensesConnection::DeleteLicense( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::licenses::v1::DeleteLicenseRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +LicensesConnection::DeleteLicense( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr LicensesConnection::GetLicense( google::cloud::cpp::compute::licenses::v1::GetLicenseRequest const&) { @@ -64,6 +80,22 @@ LicensesConnection::InsertLicense( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +LicensesConnection::InsertLicense( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::licenses::v1::InsertLicenseRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +LicensesConnection::InsertLicense( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StreamRange LicensesConnection::ListLicenses( google::cloud::cpp::compute::licenses::v1:: diff --git a/google/cloud/compute/licenses/v1/licenses_connection.h b/google/cloud/compute/licenses/v1/licenses_connection.h index 734885df96d74..e51b0b28a04ad 100644 --- a/google/cloud/compute/licenses/v1/licenses_connection.h +++ b/google/cloud/compute/licenses/v1/licenses_connection.h @@ -22,8 +22,10 @@ #include "google/cloud/compute/licenses/v1/internal/licenses_retry_traits.h" #include "google/cloud/compute/licenses/v1/licenses_connection_idempotency_policy.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/internal/retry_policy_impl.h" +#include "google/cloud/no_await_tag.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" #include "google/cloud/status_or.h" @@ -186,6 +188,15 @@ class LicensesConnection { google::cloud::cpp::compute::licenses::v1::DeleteLicenseRequest const& request); + virtual StatusOr DeleteLicense( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::licenses::v1::DeleteLicenseRequest const& + request); + + virtual future> + DeleteLicense(ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual StatusOr GetLicense( google::cloud::cpp::compute::licenses::v1::GetLicenseRequest const& request); @@ -199,6 +210,15 @@ class LicensesConnection { google::cloud::cpp::compute::licenses::v1::InsertLicenseRequest const& request); + virtual StatusOr InsertLicense( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::licenses::v1::InsertLicenseRequest const& + request); + + virtual future> + InsertLicense(ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual StreamRange ListLicenses( google::cloud::cpp::compute::licenses::v1::ListLicensesRequest request); diff --git a/google/cloud/compute/licenses/v1/mocks/mock_licenses_connection.h b/google/cloud/compute/licenses/v1/mocks/mock_licenses_connection.h index f8509a5862408..b262c8a0b588f 100644 --- a/google/cloud/compute/licenses/v1/mocks/mock_licenses_connection.h +++ b/google/cloud/compute/licenses/v1/mocks/mock_licenses_connection.h @@ -53,6 +53,19 @@ class MockLicensesConnection : public compute_licenses_v1::LicensesConnection { request), (override)); + MOCK_METHOD( + StatusOr, DeleteLicense, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::licenses::v1::DeleteLicenseRequest const& + request), + (override)); + + MOCK_METHOD(future>, + DeleteLicense, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr, GetLicense, (google::cloud::cpp::compute::licenses::v1::GetLicenseRequest const& @@ -72,6 +85,19 @@ class MockLicensesConnection : public compute_licenses_v1::LicensesConnection { request), (override)); + MOCK_METHOD( + StatusOr, InsertLicense, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::licenses::v1::InsertLicenseRequest const& + request), + (override)); + + MOCK_METHOD(future>, + InsertLicense, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD( (StreamRange), ListLicenses, (google::cloud::cpp::compute::licenses::v1::ListLicensesRequest request), diff --git a/google/cloud/compute/machine_images/v1/internal/machine_images_rest_connection_impl.cc b/google/cloud/compute/machine_images/v1/internal/machine_images_rest_connection_impl.cc index a2f0b47518d99..4950570435e9f 100644 --- a/google/cloud/compute/machine_images/v1/internal/machine_images_rest_connection_impl.cc +++ b/google/cloud/compute/machine_images/v1/internal/machine_images_rest_connection_impl.cc @@ -23,6 +23,7 @@ #include "google/cloud/internal/async_rest_long_running_operation_custom.h" #include "google/cloud/internal/extract_long_running_result.h" #include "google/cloud/internal/pagination_range.h" +#include "google/cloud/internal/rest_lro_helpers.h" #include "google/cloud/internal/rest_retry_loop.h" #include "google/cloud/rest_options.h" #include @@ -101,6 +102,77 @@ MachineImagesRestConnectionImpl::DeleteMachineImage( }); } +StatusOr +MachineImagesRestConnectionImpl::DeleteMachineImage( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::machine_images::v1:: + DeleteMachineImageRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteMachineImage(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::machine_images::v1:: + DeleteMachineImageRequest const& request) { + return stub_->DeleteMachineImage(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +MachineImagesRestConnectionImpl::DeleteMachineImage( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::global_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }); +} + StatusOr MachineImagesRestConnectionImpl::GetMachineImage( google::cloud::cpp::compute::machine_images::v1:: @@ -191,6 +263,77 @@ MachineImagesRestConnectionImpl::InsertMachineImage( }); } +StatusOr +MachineImagesRestConnectionImpl::InsertMachineImage( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::machine_images::v1:: + InsertMachineImageRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->InsertMachineImage(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::machine_images::v1:: + InsertMachineImageRequest const& request) { + return stub_->InsertMachineImage(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +MachineImagesRestConnectionImpl::InsertMachineImage( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::global_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }); +} + StreamRange MachineImagesRestConnectionImpl::ListMachineImages( google::cloud::cpp::compute::machine_images::v1::ListMachineImagesRequest diff --git a/google/cloud/compute/machine_images/v1/internal/machine_images_rest_connection_impl.h b/google/cloud/compute/machine_images/v1/internal/machine_images_rest_connection_impl.h index a1405639eaba3..11bcd45d7e3a0 100644 --- a/google/cloud/compute/machine_images/v1/internal/machine_images_rest_connection_impl.h +++ b/google/cloud/compute/machine_images/v1/internal/machine_images_rest_connection_impl.h @@ -55,6 +55,16 @@ class MachineImagesRestConnectionImpl DeleteMachineImage(google::cloud::cpp::compute::machine_images::v1:: DeleteMachineImageRequest const& request) override; + StatusOr DeleteMachineImage( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::machine_images::v1:: + DeleteMachineImageRequest const& request) override; + + future> + DeleteMachineImage( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StatusOr GetMachineImage( google::cloud::cpp::compute::machine_images::v1:: GetMachineImageRequest const& request) override; @@ -67,6 +77,16 @@ class MachineImagesRestConnectionImpl InsertMachineImage(google::cloud::cpp::compute::machine_images::v1:: InsertMachineImageRequest const& request) override; + StatusOr InsertMachineImage( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::machine_images::v1:: + InsertMachineImageRequest const& request) override; + + future> + InsertMachineImage( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StreamRange ListMachineImages( google::cloud::cpp::compute::machine_images::v1::ListMachineImagesRequest request) override; diff --git a/google/cloud/compute/machine_images/v1/internal/machine_images_tracing_connection.cc b/google/cloud/compute/machine_images/v1/internal/machine_images_tracing_connection.cc index 4d6ee3459e409..56366e3fc7e9b 100644 --- a/google/cloud/compute/machine_images/v1/internal/machine_images_tracing_connection.cc +++ b/google/cloud/compute/machine_images/v1/internal/machine_images_tracing_connection.cc @@ -44,6 +44,30 @@ MachineImagesTracingConnection::DeleteMachineImage( child_->DeleteMachineImage(request)); } +StatusOr +MachineImagesTracingConnection::DeleteMachineImage( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::machine_images::v1:: + DeleteMachineImageRequest const& request) { + auto span = internal::MakeSpan( + "compute_machine_images_v1::MachineImagesConnection::DeleteMachineImage"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->DeleteMachineImage(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +MachineImagesTracingConnection::DeleteMachineImage( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_machine_images_v1::MachineImagesConnection::DeleteMachineImage"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->DeleteMachineImage( + ExperimentalTag{}, operation)); +} + StatusOr MachineImagesTracingConnection::GetMachineImage( google::cloud::cpp::compute::machine_images::v1:: @@ -75,6 +99,30 @@ MachineImagesTracingConnection::InsertMachineImage( child_->InsertMachineImage(request)); } +StatusOr +MachineImagesTracingConnection::InsertMachineImage( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::machine_images::v1:: + InsertMachineImageRequest const& request) { + auto span = internal::MakeSpan( + "compute_machine_images_v1::MachineImagesConnection::InsertMachineImage"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->InsertMachineImage(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +MachineImagesTracingConnection::InsertMachineImage( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_machine_images_v1::MachineImagesConnection::InsertMachineImage"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->InsertMachineImage( + ExperimentalTag{}, operation)); +} + StreamRange MachineImagesTracingConnection::ListMachineImages( google::cloud::cpp::compute::machine_images::v1::ListMachineImagesRequest diff --git a/google/cloud/compute/machine_images/v1/internal/machine_images_tracing_connection.h b/google/cloud/compute/machine_images/v1/internal/machine_images_tracing_connection.h index a900498a1e682..2fbdbb77184a6 100644 --- a/google/cloud/compute/machine_images/v1/internal/machine_images_tracing_connection.h +++ b/google/cloud/compute/machine_images/v1/internal/machine_images_tracing_connection.h @@ -45,6 +45,16 @@ class MachineImagesTracingConnection DeleteMachineImage(google::cloud::cpp::compute::machine_images::v1:: DeleteMachineImageRequest const& request) override; + StatusOr DeleteMachineImage( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::machine_images::v1:: + DeleteMachineImageRequest const& request) override; + + future> + DeleteMachineImage( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StatusOr GetMachineImage( google::cloud::cpp::compute::machine_images::v1:: GetMachineImageRequest const& request) override; @@ -57,6 +67,16 @@ class MachineImagesTracingConnection InsertMachineImage(google::cloud::cpp::compute::machine_images::v1:: InsertMachineImageRequest const& request) override; + StatusOr InsertMachineImage( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::machine_images::v1:: + InsertMachineImageRequest const& request) override; + + future> + InsertMachineImage( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StreamRange ListMachineImages( google::cloud::cpp::compute::machine_images::v1::ListMachineImagesRequest request) override; diff --git a/google/cloud/compute/machine_images/v1/machine_images_connection.cc b/google/cloud/compute/machine_images/v1/machine_images_connection.cc index a5e4cddfc9bb0..fffdb51c45d2b 100644 --- a/google/cloud/compute/machine_images/v1/machine_images_connection.cc +++ b/google/cloud/compute/machine_images/v1/machine_images_connection.cc @@ -45,6 +45,23 @@ MachineImagesConnection::DeleteMachineImage( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +MachineImagesConnection::DeleteMachineImage( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::machine_images::v1:: + DeleteMachineImageRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +MachineImagesConnection::DeleteMachineImage( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr MachineImagesConnection::GetMachineImage( google::cloud::cpp::compute::machine_images::v1:: @@ -68,6 +85,23 @@ MachineImagesConnection::InsertMachineImage( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +MachineImagesConnection::InsertMachineImage( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::machine_images::v1:: + InsertMachineImageRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +MachineImagesConnection::InsertMachineImage( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StreamRange MachineImagesConnection::ListMachineImages( google::cloud::cpp::compute::machine_images::v1:: diff --git a/google/cloud/compute/machine_images/v1/machine_images_connection.h b/google/cloud/compute/machine_images/v1/machine_images_connection.h index 726775da85857..d10af1c95ea94 100644 --- a/google/cloud/compute/machine_images/v1/machine_images_connection.h +++ b/google/cloud/compute/machine_images/v1/machine_images_connection.h @@ -22,8 +22,10 @@ #include "google/cloud/compute/machine_images/v1/internal/machine_images_retry_traits.h" #include "google/cloud/compute/machine_images/v1/machine_images_connection_idempotency_policy.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/internal/retry_policy_impl.h" +#include "google/cloud/no_await_tag.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" #include "google/cloud/status_or.h" @@ -189,6 +191,16 @@ class MachineImagesConnection { DeleteMachineImage(google::cloud::cpp::compute::machine_images::v1:: DeleteMachineImageRequest const& request); + virtual StatusOr + DeleteMachineImage(ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::machine_images::v1:: + DeleteMachineImageRequest const& request); + + virtual future> + DeleteMachineImage( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual StatusOr GetMachineImage(google::cloud::cpp::compute::machine_images::v1:: GetMachineImageRequest const& request); @@ -201,6 +213,16 @@ class MachineImagesConnection { InsertMachineImage(google::cloud::cpp::compute::machine_images::v1:: InsertMachineImageRequest const& request); + virtual StatusOr + InsertMachineImage(ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::machine_images::v1:: + InsertMachineImageRequest const& request); + + virtual future> + InsertMachineImage( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual StreamRange ListMachineImages( google::cloud::cpp::compute::machine_images::v1::ListMachineImagesRequest diff --git a/google/cloud/compute/machine_images/v1/mocks/mock_machine_images_connection.h b/google/cloud/compute/machine_images/v1/mocks/mock_machine_images_connection.h index ff46614d2b3fa..2deea9f9ece54 100644 --- a/google/cloud/compute/machine_images/v1/mocks/mock_machine_images_connection.h +++ b/google/cloud/compute/machine_images/v1/mocks/mock_machine_images_connection.h @@ -53,6 +53,19 @@ class MockMachineImagesConnection DeleteMachineImageRequest const& request), (override)); + MOCK_METHOD(StatusOr, + DeleteMachineImage, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::machine_images::v1:: + DeleteMachineImageRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteMachineImage, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD(StatusOr, GetMachineImage, (google::cloud::cpp::compute::machine_images::v1:: @@ -70,6 +83,19 @@ class MockMachineImagesConnection InsertMachineImageRequest const& request), (override)); + MOCK_METHOD(StatusOr, + InsertMachineImage, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::machine_images::v1:: + InsertMachineImageRequest const& request), + (override)); + + MOCK_METHOD(future>, + InsertMachineImage, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD( (StreamRange), ListMachineImages, diff --git a/google/cloud/compute/machine_types/v1/machine_types_connection.h b/google/cloud/compute/machine_types/v1/machine_types_connection.h index f5f084a6c91b5..263992614e69e 100644 --- a/google/cloud/compute/machine_types/v1/machine_types_connection.h +++ b/google/cloud/compute/machine_types/v1/machine_types_connection.h @@ -22,6 +22,7 @@ #include "google/cloud/compute/machine_types/v1/internal/machine_types_retry_traits.h" #include "google/cloud/compute/machine_types/v1/machine_types_connection_idempotency_policy.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/internal/retry_policy_impl.h" #include "google/cloud/options.h" #include "google/cloud/status_or.h" diff --git a/google/cloud/compute/network_attachments/v1/internal/network_attachments_rest_connection_impl.cc b/google/cloud/compute/network_attachments/v1/internal/network_attachments_rest_connection_impl.cc index 8c7f489da41b3..c7e54b67a246a 100644 --- a/google/cloud/compute/network_attachments/v1/internal/network_attachments_rest_connection_impl.cc +++ b/google/cloud/compute/network_attachments/v1/internal/network_attachments_rest_connection_impl.cc @@ -23,6 +23,7 @@ #include "google/cloud/internal/async_rest_long_running_operation_custom.h" #include "google/cloud/internal/extract_long_running_result.h" #include "google/cloud/internal/pagination_range.h" +#include "google/cloud/internal/rest_lro_helpers.h" #include "google/cloud/internal/rest_retry_loop.h" #include "google/cloud/rest_options.h" #include @@ -147,6 +148,79 @@ NetworkAttachmentsRestConnectionImpl::DeleteNetworkAttachment( }); } +StatusOr +NetworkAttachmentsRestConnectionImpl::DeleteNetworkAttachment( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::network_attachments::v1:: + DeleteNetworkAttachmentRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteNetworkAttachment(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::network_attachments::v1:: + DeleteNetworkAttachmentRequest const& request) { + return stub_->DeleteNetworkAttachment(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +NetworkAttachmentsRestConnectionImpl::DeleteNetworkAttachment( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::region_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }); +} + StatusOr NetworkAttachmentsRestConnectionImpl::GetNetworkAttachment( google::cloud::cpp::compute::network_attachments::v1:: @@ -239,6 +313,79 @@ NetworkAttachmentsRestConnectionImpl::InsertNetworkAttachment( }); } +StatusOr +NetworkAttachmentsRestConnectionImpl::InsertNetworkAttachment( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::network_attachments::v1:: + InsertNetworkAttachmentRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->InsertNetworkAttachment(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::network_attachments::v1:: + InsertNetworkAttachmentRequest const& request) { + return stub_->InsertNetworkAttachment(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +NetworkAttachmentsRestConnectionImpl::InsertNetworkAttachment( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::region_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }); +} + StreamRange NetworkAttachmentsRestConnectionImpl::ListNetworkAttachments( google::cloud::cpp::compute::network_attachments::v1:: @@ -339,6 +486,79 @@ NetworkAttachmentsRestConnectionImpl::PatchNetworkAttachment( }); } +StatusOr +NetworkAttachmentsRestConnectionImpl::PatchNetworkAttachment( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::network_attachments::v1:: + PatchNetworkAttachmentRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->PatchNetworkAttachment(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::network_attachments::v1:: + PatchNetworkAttachmentRequest const& request) { + return stub_->PatchNetworkAttachment(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +NetworkAttachmentsRestConnectionImpl::PatchNetworkAttachment( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::region_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }); +} + StatusOr NetworkAttachmentsRestConnectionImpl::SetIamPolicy( google::cloud::cpp::compute::network_attachments::v1:: diff --git a/google/cloud/compute/network_attachments/v1/internal/network_attachments_rest_connection_impl.h b/google/cloud/compute/network_attachments/v1/internal/network_attachments_rest_connection_impl.h index d0b1a8e7e7ba3..d29252c439a5f 100644 --- a/google/cloud/compute/network_attachments/v1/internal/network_attachments_rest_connection_impl.h +++ b/google/cloud/compute/network_attachments/v1/internal/network_attachments_rest_connection_impl.h @@ -64,6 +64,16 @@ class NetworkAttachmentsRestConnectionImpl google::cloud::cpp::compute::network_attachments::v1:: DeleteNetworkAttachmentRequest const& request) override; + StatusOr DeleteNetworkAttachment( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::network_attachments::v1:: + DeleteNetworkAttachmentRequest const& request) override; + + future> + DeleteNetworkAttachment( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StatusOr GetNetworkAttachment(google::cloud::cpp::compute::network_attachments::v1:: GetNetworkAttachmentRequest const& request) override; @@ -77,6 +87,16 @@ class NetworkAttachmentsRestConnectionImpl google::cloud::cpp::compute::network_attachments::v1:: InsertNetworkAttachmentRequest const& request) override; + StatusOr InsertNetworkAttachment( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::network_attachments::v1:: + InsertNetworkAttachmentRequest const& request) override; + + future> + InsertNetworkAttachment( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StreamRange ListNetworkAttachments(google::cloud::cpp::compute::network_attachments::v1:: ListNetworkAttachmentsRequest request) override; @@ -86,6 +106,16 @@ class NetworkAttachmentsRestConnectionImpl google::cloud::cpp::compute::network_attachments::v1:: PatchNetworkAttachmentRequest const& request) override; + StatusOr PatchNetworkAttachment( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::network_attachments::v1:: + PatchNetworkAttachmentRequest const& request) override; + + future> + PatchNetworkAttachment( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StatusOr SetIamPolicy( google::cloud::cpp::compute::network_attachments::v1:: SetIamPolicyRequest const& request) override; diff --git a/google/cloud/compute/network_attachments/v1/internal/network_attachments_tracing_connection.cc b/google/cloud/compute/network_attachments/v1/internal/network_attachments_tracing_connection.cc index 3404ce9e17aa6..f330dff008d64 100644 --- a/google/cloud/compute/network_attachments/v1/internal/network_attachments_tracing_connection.cc +++ b/google/cloud/compute/network_attachments/v1/internal/network_attachments_tracing_connection.cc @@ -63,6 +63,32 @@ NetworkAttachmentsTracingConnection::DeleteNetworkAttachment( child_->DeleteNetworkAttachment(request)); } +StatusOr +NetworkAttachmentsTracingConnection::DeleteNetworkAttachment( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::network_attachments::v1:: + DeleteNetworkAttachmentRequest const& request) { + auto span = internal::MakeSpan( + "compute_network_attachments_v1::NetworkAttachmentsConnection::" + "DeleteNetworkAttachment"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->DeleteNetworkAttachment(ExperimentalTag{}, NoAwaitTag{}, + request)); +} + +future> +NetworkAttachmentsTracingConnection::DeleteNetworkAttachment( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_network_attachments_v1::NetworkAttachmentsConnection::" + "DeleteNetworkAttachment"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->DeleteNetworkAttachment( + ExperimentalTag{}, operation)); +} + StatusOr NetworkAttachmentsTracingConnection::GetNetworkAttachment( google::cloud::cpp::compute::network_attachments::v1:: @@ -97,6 +123,32 @@ NetworkAttachmentsTracingConnection::InsertNetworkAttachment( child_->InsertNetworkAttachment(request)); } +StatusOr +NetworkAttachmentsTracingConnection::InsertNetworkAttachment( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::network_attachments::v1:: + InsertNetworkAttachmentRequest const& request) { + auto span = internal::MakeSpan( + "compute_network_attachments_v1::NetworkAttachmentsConnection::" + "InsertNetworkAttachment"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->InsertNetworkAttachment(ExperimentalTag{}, NoAwaitTag{}, + request)); +} + +future> +NetworkAttachmentsTracingConnection::InsertNetworkAttachment( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_network_attachments_v1::NetworkAttachmentsConnection::" + "InsertNetworkAttachment"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->InsertNetworkAttachment( + ExperimentalTag{}, operation)); +} + StreamRange NetworkAttachmentsTracingConnection::ListNetworkAttachments( google::cloud::cpp::compute::network_attachments::v1:: @@ -123,6 +175,32 @@ NetworkAttachmentsTracingConnection::PatchNetworkAttachment( child_->PatchNetworkAttachment(request)); } +StatusOr +NetworkAttachmentsTracingConnection::PatchNetworkAttachment( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::network_attachments::v1:: + PatchNetworkAttachmentRequest const& request) { + auto span = internal::MakeSpan( + "compute_network_attachments_v1::NetworkAttachmentsConnection::" + "PatchNetworkAttachment"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->PatchNetworkAttachment(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +NetworkAttachmentsTracingConnection::PatchNetworkAttachment( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_network_attachments_v1::NetworkAttachmentsConnection::" + "PatchNetworkAttachment"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->PatchNetworkAttachment( + ExperimentalTag{}, operation)); +} + StatusOr NetworkAttachmentsTracingConnection::SetIamPolicy( google::cloud::cpp::compute::network_attachments::v1:: diff --git a/google/cloud/compute/network_attachments/v1/internal/network_attachments_tracing_connection.h b/google/cloud/compute/network_attachments/v1/internal/network_attachments_tracing_connection.h index 889adbc58c51b..be79a5ea2282c 100644 --- a/google/cloud/compute/network_attachments/v1/internal/network_attachments_tracing_connection.h +++ b/google/cloud/compute/network_attachments/v1/internal/network_attachments_tracing_connection.h @@ -54,6 +54,16 @@ class NetworkAttachmentsTracingConnection google::cloud::cpp::compute::network_attachments::v1:: DeleteNetworkAttachmentRequest const& request) override; + StatusOr DeleteNetworkAttachment( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::network_attachments::v1:: + DeleteNetworkAttachmentRequest const& request) override; + + future> + DeleteNetworkAttachment( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StatusOr GetNetworkAttachment(google::cloud::cpp::compute::network_attachments::v1:: GetNetworkAttachmentRequest const& request) override; @@ -67,6 +77,16 @@ class NetworkAttachmentsTracingConnection google::cloud::cpp::compute::network_attachments::v1:: InsertNetworkAttachmentRequest const& request) override; + StatusOr InsertNetworkAttachment( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::network_attachments::v1:: + InsertNetworkAttachmentRequest const& request) override; + + future> + InsertNetworkAttachment( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StreamRange ListNetworkAttachments(google::cloud::cpp::compute::network_attachments::v1:: ListNetworkAttachmentsRequest request) override; @@ -76,6 +96,16 @@ class NetworkAttachmentsTracingConnection google::cloud::cpp::compute::network_attachments::v1:: PatchNetworkAttachmentRequest const& request) override; + StatusOr PatchNetworkAttachment( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::network_attachments::v1:: + PatchNetworkAttachmentRequest const& request) override; + + future> + PatchNetworkAttachment( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StatusOr SetIamPolicy( google::cloud::cpp::compute::network_attachments::v1:: SetIamPolicyRequest const& request) override; diff --git a/google/cloud/compute/network_attachments/v1/mocks/mock_network_attachments_connection.h b/google/cloud/compute/network_attachments/v1/mocks/mock_network_attachments_connection.h index 5e7607902f7ba..de300759287e1 100644 --- a/google/cloud/compute/network_attachments/v1/mocks/mock_network_attachments_connection.h +++ b/google/cloud/compute/network_attachments/v1/mocks/mock_network_attachments_connection.h @@ -61,6 +61,19 @@ class MockNetworkAttachmentsConnection DeleteNetworkAttachmentRequest const& request), (override)); + MOCK_METHOD(StatusOr, + DeleteNetworkAttachment, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::network_attachments::v1:: + DeleteNetworkAttachmentRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteNetworkAttachment, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD(StatusOr, GetNetworkAttachment, (google::cloud::cpp::compute::network_attachments::v1:: @@ -78,6 +91,19 @@ class MockNetworkAttachmentsConnection InsertNetworkAttachmentRequest const& request), (override)); + MOCK_METHOD(StatusOr, + InsertNetworkAttachment, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::network_attachments::v1:: + InsertNetworkAttachmentRequest const& request), + (override)); + + MOCK_METHOD(future>, + InsertNetworkAttachment, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD((StreamRange), ListNetworkAttachments, (google::cloud::cpp::compute::network_attachments::v1:: @@ -90,6 +116,19 @@ class MockNetworkAttachmentsConnection PatchNetworkAttachmentRequest const& request), (override)); + MOCK_METHOD(StatusOr, + PatchNetworkAttachment, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::network_attachments::v1:: + PatchNetworkAttachmentRequest const& request), + (override)); + + MOCK_METHOD(future>, + PatchNetworkAttachment, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD(StatusOr, SetIamPolicy, (google::cloud::cpp::compute::network_attachments::v1:: SetIamPolicyRequest const& request), diff --git a/google/cloud/compute/network_attachments/v1/network_attachments_connection.cc b/google/cloud/compute/network_attachments/v1/network_attachments_connection.cc index f874331c6b2ea..e7e207e820b29 100644 --- a/google/cloud/compute/network_attachments/v1/network_attachments_connection.cc +++ b/google/cloud/compute/network_attachments/v1/network_attachments_connection.cc @@ -55,6 +55,23 @@ NetworkAttachmentsConnection::DeleteNetworkAttachment( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +NetworkAttachmentsConnection::DeleteNetworkAttachment( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::network_attachments::v1:: + DeleteNetworkAttachmentRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +NetworkAttachmentsConnection::DeleteNetworkAttachment( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr NetworkAttachmentsConnection::GetNetworkAttachment( google::cloud::cpp::compute::network_attachments::v1:: @@ -78,6 +95,23 @@ NetworkAttachmentsConnection::InsertNetworkAttachment( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +NetworkAttachmentsConnection::InsertNetworkAttachment( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::network_attachments::v1:: + InsertNetworkAttachmentRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +NetworkAttachmentsConnection::InsertNetworkAttachment( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StreamRange NetworkAttachmentsConnection::ListNetworkAttachments( google::cloud::cpp::compute::network_attachments::v1:: @@ -95,6 +129,23 @@ NetworkAttachmentsConnection::PatchNetworkAttachment( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +NetworkAttachmentsConnection::PatchNetworkAttachment( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::network_attachments::v1:: + PatchNetworkAttachmentRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +NetworkAttachmentsConnection::PatchNetworkAttachment( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr NetworkAttachmentsConnection::SetIamPolicy( google::cloud::cpp::compute::network_attachments::v1:: diff --git a/google/cloud/compute/network_attachments/v1/network_attachments_connection.h b/google/cloud/compute/network_attachments/v1/network_attachments_connection.h index da3fe4c561ae6..5edc03df3b962 100644 --- a/google/cloud/compute/network_attachments/v1/network_attachments_connection.h +++ b/google/cloud/compute/network_attachments/v1/network_attachments_connection.h @@ -22,8 +22,10 @@ #include "google/cloud/compute/network_attachments/v1/internal/network_attachments_retry_traits.h" #include "google/cloud/compute/network_attachments/v1/network_attachments_connection_idempotency_policy.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/internal/retry_policy_impl.h" +#include "google/cloud/no_await_tag.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" #include "google/cloud/status_or.h" @@ -199,6 +201,16 @@ class NetworkAttachmentsConnection { DeleteNetworkAttachment(google::cloud::cpp::compute::network_attachments::v1:: DeleteNetworkAttachmentRequest const& request); + virtual StatusOr + DeleteNetworkAttachment(ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::network_attachments::v1:: + DeleteNetworkAttachmentRequest const& request); + + virtual future> + DeleteNetworkAttachment( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual StatusOr GetNetworkAttachment(google::cloud::cpp::compute::network_attachments::v1:: GetNetworkAttachmentRequest const& request); @@ -211,6 +223,16 @@ class NetworkAttachmentsConnection { InsertNetworkAttachment(google::cloud::cpp::compute::network_attachments::v1:: InsertNetworkAttachmentRequest const& request); + virtual StatusOr + InsertNetworkAttachment(ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::network_attachments::v1:: + InsertNetworkAttachmentRequest const& request); + + virtual future> + InsertNetworkAttachment( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual StreamRange ListNetworkAttachments(google::cloud::cpp::compute::network_attachments::v1:: ListNetworkAttachmentsRequest request); @@ -219,6 +241,16 @@ class NetworkAttachmentsConnection { PatchNetworkAttachment(google::cloud::cpp::compute::network_attachments::v1:: PatchNetworkAttachmentRequest const& request); + virtual StatusOr + PatchNetworkAttachment(ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::network_attachments::v1:: + PatchNetworkAttachmentRequest const& request); + + virtual future> + PatchNetworkAttachment( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual StatusOr SetIamPolicy( google::cloud::cpp::compute::network_attachments::v1:: SetIamPolicyRequest const& request); diff --git a/google/cloud/compute/network_edge_security_services/v1/internal/network_edge_security_services_rest_connection_impl.cc b/google/cloud/compute/network_edge_security_services/v1/internal/network_edge_security_services_rest_connection_impl.cc index f56ca976fb7b1..21bd07939712f 100644 --- a/google/cloud/compute/network_edge_security_services/v1/internal/network_edge_security_services_rest_connection_impl.cc +++ b/google/cloud/compute/network_edge_security_services/v1/internal/network_edge_security_services_rest_connection_impl.cc @@ -24,6 +24,7 @@ #include "google/cloud/internal/async_rest_long_running_operation_custom.h" #include "google/cloud/internal/extract_long_running_result.h" #include "google/cloud/internal/pagination_range.h" +#include "google/cloud/internal/rest_lro_helpers.h" #include "google/cloud/internal/rest_retry_loop.h" #include "google/cloud/rest_options.h" #include @@ -157,6 +158,80 @@ NetworkEdgeSecurityServicesRestConnectionImpl::DeleteNetworkEdgeSecurityService( }); } +StatusOr +NetworkEdgeSecurityServicesRestConnectionImpl::DeleteNetworkEdgeSecurityService( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::network_edge_security_services::v1:: + DeleteNetworkEdgeSecurityServiceRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteNetworkEdgeSecurityService(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::network_edge_security_services::v1:: + DeleteNetworkEdgeSecurityServiceRequest const& request) { + return stub_->DeleteNetworkEdgeSecurityService(rest_context, options, + request); + }, + *current, request, __func__); +} + +future> +NetworkEdgeSecurityServicesRestConnectionImpl::DeleteNetworkEdgeSecurityService( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::region_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }); +} + StatusOr NetworkEdgeSecurityServicesRestConnectionImpl::GetNetworkEdgeSecurityService( google::cloud::cpp::compute::network_edge_security_services::v1:: @@ -235,6 +310,80 @@ NetworkEdgeSecurityServicesRestConnectionImpl::InsertNetworkEdgeSecurityService( }); } +StatusOr +NetworkEdgeSecurityServicesRestConnectionImpl::InsertNetworkEdgeSecurityService( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::network_edge_security_services::v1:: + InsertNetworkEdgeSecurityServiceRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->InsertNetworkEdgeSecurityService(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::network_edge_security_services::v1:: + InsertNetworkEdgeSecurityServiceRequest const& request) { + return stub_->InsertNetworkEdgeSecurityService(rest_context, options, + request); + }, + *current, request, __func__); +} + +future> +NetworkEdgeSecurityServicesRestConnectionImpl::InsertNetworkEdgeSecurityService( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::region_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }); +} + future> NetworkEdgeSecurityServicesRestConnectionImpl::PatchNetworkEdgeSecurityService( google::cloud::cpp::compute::network_edge_security_services::v1:: @@ -296,6 +445,80 @@ NetworkEdgeSecurityServicesRestConnectionImpl::PatchNetworkEdgeSecurityService( }); } +StatusOr +NetworkEdgeSecurityServicesRestConnectionImpl::PatchNetworkEdgeSecurityService( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::network_edge_security_services::v1:: + PatchNetworkEdgeSecurityServiceRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->PatchNetworkEdgeSecurityService(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::network_edge_security_services::v1:: + PatchNetworkEdgeSecurityServiceRequest const& request) { + return stub_->PatchNetworkEdgeSecurityService(rest_context, options, + request); + }, + *current, request, __func__); +} + +future> +NetworkEdgeSecurityServicesRestConnectionImpl::PatchNetworkEdgeSecurityService( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::region_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace compute_network_edge_security_services_v1_internal } // namespace cloud diff --git a/google/cloud/compute/network_edge_security_services/v1/internal/network_edge_security_services_rest_connection_impl.h b/google/cloud/compute/network_edge_security_services/v1/internal/network_edge_security_services_rest_connection_impl.h index c05c4e6396c10..9144ad3c9ffdb 100644 --- a/google/cloud/compute/network_edge_security_services/v1/internal/network_edge_security_services_rest_connection_impl.h +++ b/google/cloud/compute/network_edge_security_services/v1/internal/network_edge_security_services_rest_connection_impl.h @@ -65,6 +65,17 @@ class NetworkEdgeSecurityServicesRestConnectionImpl google::cloud::cpp::compute::network_edge_security_services::v1:: DeleteNetworkEdgeSecurityServiceRequest const& request) override; + StatusOr + DeleteNetworkEdgeSecurityService( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::network_edge_security_services::v1:: + DeleteNetworkEdgeSecurityServiceRequest const& request) override; + + future> + DeleteNetworkEdgeSecurityService( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StatusOr GetNetworkEdgeSecurityService( google::cloud::cpp::compute::network_edge_security_services::v1:: @@ -75,11 +86,33 @@ class NetworkEdgeSecurityServicesRestConnectionImpl google::cloud::cpp::compute::network_edge_security_services::v1:: InsertNetworkEdgeSecurityServiceRequest const& request) override; + StatusOr + InsertNetworkEdgeSecurityService( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::network_edge_security_services::v1:: + InsertNetworkEdgeSecurityServiceRequest const& request) override; + future> + InsertNetworkEdgeSecurityService( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + + future> + PatchNetworkEdgeSecurityService( + google::cloud::cpp::compute::network_edge_security_services::v1:: + PatchNetworkEdgeSecurityServiceRequest const& request) override; + + StatusOr PatchNetworkEdgeSecurityService( + ExperimentalTag, NoAwaitTag, google::cloud::cpp::compute::network_edge_security_services::v1:: PatchNetworkEdgeSecurityServiceRequest const& request) override; + future> + PatchNetworkEdgeSecurityService( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + private: static std::unique_ptr diff --git a/google/cloud/compute/network_edge_security_services/v1/internal/network_edge_security_services_tracing_connection.cc b/google/cloud/compute/network_edge_security_services/v1/internal/network_edge_security_services_tracing_connection.cc index 148d4ad7fe474..158ffbd250c37 100644 --- a/google/cloud/compute/network_edge_security_services/v1/internal/network_edge_security_services_tracing_connection.cc +++ b/google/cloud/compute/network_edge_security_services/v1/internal/network_edge_security_services_tracing_connection.cc @@ -69,6 +69,35 @@ NetworkEdgeSecurityServicesTracingConnection::DeleteNetworkEdgeSecurityService( child_->DeleteNetworkEdgeSecurityService(request)); } +StatusOr +NetworkEdgeSecurityServicesTracingConnection::DeleteNetworkEdgeSecurityService( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::network_edge_security_services::v1:: + DeleteNetworkEdgeSecurityServiceRequest const& request) { + auto span = internal::MakeSpan( + "compute_network_edge_security_services_v1::" + "NetworkEdgeSecurityServicesConnection::" + "DeleteNetworkEdgeSecurityService"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->DeleteNetworkEdgeSecurityService(ExperimentalTag{}, + NoAwaitTag{}, request)); +} + +future> +NetworkEdgeSecurityServicesTracingConnection::DeleteNetworkEdgeSecurityService( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_network_edge_security_services_v1::" + "NetworkEdgeSecurityServicesConnection::" + "DeleteNetworkEdgeSecurityService"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), + child_->DeleteNetworkEdgeSecurityService(ExperimentalTag{}, operation)); +} + StatusOr NetworkEdgeSecurityServicesTracingConnection::GetNetworkEdgeSecurityService( google::cloud::cpp::compute::network_edge_security_services::v1:: @@ -94,6 +123,35 @@ NetworkEdgeSecurityServicesTracingConnection::InsertNetworkEdgeSecurityService( child_->InsertNetworkEdgeSecurityService(request)); } +StatusOr +NetworkEdgeSecurityServicesTracingConnection::InsertNetworkEdgeSecurityService( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::network_edge_security_services::v1:: + InsertNetworkEdgeSecurityServiceRequest const& request) { + auto span = internal::MakeSpan( + "compute_network_edge_security_services_v1::" + "NetworkEdgeSecurityServicesConnection::" + "InsertNetworkEdgeSecurityService"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->InsertNetworkEdgeSecurityService(ExperimentalTag{}, + NoAwaitTag{}, request)); +} + +future> +NetworkEdgeSecurityServicesTracingConnection::InsertNetworkEdgeSecurityService( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_network_edge_security_services_v1::" + "NetworkEdgeSecurityServicesConnection::" + "InsertNetworkEdgeSecurityService"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), + child_->InsertNetworkEdgeSecurityService(ExperimentalTag{}, operation)); +} + future> NetworkEdgeSecurityServicesTracingConnection::PatchNetworkEdgeSecurityService( google::cloud::cpp::compute::network_edge_security_services::v1:: @@ -106,6 +164,33 @@ NetworkEdgeSecurityServicesTracingConnection::PatchNetworkEdgeSecurityService( child_->PatchNetworkEdgeSecurityService(request)); } +StatusOr +NetworkEdgeSecurityServicesTracingConnection::PatchNetworkEdgeSecurityService( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::network_edge_security_services::v1:: + PatchNetworkEdgeSecurityServiceRequest const& request) { + auto span = internal::MakeSpan( + "compute_network_edge_security_services_v1::" + "NetworkEdgeSecurityServicesConnection::PatchNetworkEdgeSecurityService"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->PatchNetworkEdgeSecurityService(ExperimentalTag{}, + NoAwaitTag{}, request)); +} + +future> +NetworkEdgeSecurityServicesTracingConnection::PatchNetworkEdgeSecurityService( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_network_edge_security_services_v1::" + "NetworkEdgeSecurityServicesConnection::PatchNetworkEdgeSecurityService"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), + child_->PatchNetworkEdgeSecurityService(ExperimentalTag{}, operation)); +} + #endif // GOOGLE_CLOUD_CPP_HAVE_OPENTELEMETRY std::shared_ptr + DeleteNetworkEdgeSecurityService( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::network_edge_security_services::v1:: + DeleteNetworkEdgeSecurityServiceRequest const& request) override; + + future> + DeleteNetworkEdgeSecurityService( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StatusOr GetNetworkEdgeSecurityService( google::cloud::cpp::compute::network_edge_security_services::v1:: @@ -65,11 +76,33 @@ class NetworkEdgeSecurityServicesTracingConnection google::cloud::cpp::compute::network_edge_security_services::v1:: InsertNetworkEdgeSecurityServiceRequest const& request) override; + StatusOr + InsertNetworkEdgeSecurityService( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::network_edge_security_services::v1:: + InsertNetworkEdgeSecurityServiceRequest const& request) override; + future> + InsertNetworkEdgeSecurityService( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + + future> + PatchNetworkEdgeSecurityService( + google::cloud::cpp::compute::network_edge_security_services::v1:: + PatchNetworkEdgeSecurityServiceRequest const& request) override; + + StatusOr PatchNetworkEdgeSecurityService( + ExperimentalTag, NoAwaitTag, google::cloud::cpp::compute::network_edge_security_services::v1:: PatchNetworkEdgeSecurityServiceRequest const& request) override; + future> + PatchNetworkEdgeSecurityService( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + private: std::shared_ptr diff --git a/google/cloud/compute/network_edge_security_services/v1/mocks/mock_network_edge_security_services_connection.h b/google/cloud/compute/network_edge_security_services/v1/mocks/mock_network_edge_security_services_connection.h index c1be91f528274..a43f606f8c334 100644 --- a/google/cloud/compute/network_edge_security_services/v1/mocks/mock_network_edge_security_services_connection.h +++ b/google/cloud/compute/network_edge_security_services/v1/mocks/mock_network_edge_security_services_connection.h @@ -64,6 +64,19 @@ class MockNetworkEdgeSecurityServicesConnection DeleteNetworkEdgeSecurityServiceRequest const& request), (override)); + MOCK_METHOD(StatusOr, + DeleteNetworkEdgeSecurityService, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::network_edge_security_services::v1:: + DeleteNetworkEdgeSecurityServiceRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteNetworkEdgeSecurityService, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr, GetNetworkEdgeSecurityService, @@ -77,11 +90,37 @@ class MockNetworkEdgeSecurityServicesConnection InsertNetworkEdgeSecurityServiceRequest const& request), (override)); + MOCK_METHOD(StatusOr, + InsertNetworkEdgeSecurityService, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::network_edge_security_services::v1:: + InsertNetworkEdgeSecurityServiceRequest const& request), + (override)); + + MOCK_METHOD(future>, + InsertNetworkEdgeSecurityService, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD(future>, PatchNetworkEdgeSecurityService, (google::cloud::cpp::compute::network_edge_security_services::v1:: PatchNetworkEdgeSecurityServiceRequest const& request), (override)); + + MOCK_METHOD(StatusOr, + PatchNetworkEdgeSecurityService, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::network_edge_security_services::v1:: + PatchNetworkEdgeSecurityServiceRequest const& request), + (override)); + + MOCK_METHOD(future>, + PatchNetworkEdgeSecurityService, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); }; GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END diff --git a/google/cloud/compute/network_edge_security_services/v1/network_edge_security_services_connection.cc b/google/cloud/compute/network_edge_security_services/v1/network_edge_security_services_connection.cc index 8851380f9578d..34215c8fe32ce 100644 --- a/google/cloud/compute/network_edge_security_services/v1/network_edge_security_services_connection.cc +++ b/google/cloud/compute/network_edge_security_services/v1/network_edge_security_services_connection.cc @@ -57,6 +57,23 @@ NetworkEdgeSecurityServicesConnection::DeleteNetworkEdgeSecurityService( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +NetworkEdgeSecurityServicesConnection::DeleteNetworkEdgeSecurityService( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::network_edge_security_services::v1:: + DeleteNetworkEdgeSecurityServiceRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +NetworkEdgeSecurityServicesConnection::DeleteNetworkEdgeSecurityService( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr NetworkEdgeSecurityServicesConnection::GetNetworkEdgeSecurityService( google::cloud::cpp::compute::network_edge_security_services::v1:: @@ -73,6 +90,23 @@ NetworkEdgeSecurityServicesConnection::InsertNetworkEdgeSecurityService( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +NetworkEdgeSecurityServicesConnection::InsertNetworkEdgeSecurityService( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::network_edge_security_services::v1:: + InsertNetworkEdgeSecurityServiceRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +NetworkEdgeSecurityServicesConnection::InsertNetworkEdgeSecurityService( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> NetworkEdgeSecurityServicesConnection::PatchNetworkEdgeSecurityService( google::cloud::cpp::compute::network_edge_security_services::v1:: @@ -82,6 +116,23 @@ NetworkEdgeSecurityServicesConnection::PatchNetworkEdgeSecurityService( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +NetworkEdgeSecurityServicesConnection::PatchNetworkEdgeSecurityService( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::network_edge_security_services::v1:: + PatchNetworkEdgeSecurityServiceRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +NetworkEdgeSecurityServicesConnection::PatchNetworkEdgeSecurityService( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace compute_network_edge_security_services_v1 } // namespace cloud diff --git a/google/cloud/compute/network_edge_security_services/v1/network_edge_security_services_connection.h b/google/cloud/compute/network_edge_security_services/v1/network_edge_security_services_connection.h index c6a686d439220..6ec152bbf7aca 100644 --- a/google/cloud/compute/network_edge_security_services/v1/network_edge_security_services_connection.h +++ b/google/cloud/compute/network_edge_security_services/v1/network_edge_security_services_connection.h @@ -23,8 +23,10 @@ #include "google/cloud/compute/network_edge_security_services/v1/internal/network_edge_security_services_retry_traits.h" #include "google/cloud/compute/network_edge_security_services/v1/network_edge_security_services_connection_idempotency_policy.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/internal/retry_policy_impl.h" +#include "google/cloud/no_await_tag.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" #include "google/cloud/status_or.h" @@ -216,6 +218,17 @@ class NetworkEdgeSecurityServicesConnection { google::cloud::cpp::compute::network_edge_security_services::v1:: DeleteNetworkEdgeSecurityServiceRequest const& request); + virtual StatusOr + DeleteNetworkEdgeSecurityService( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::network_edge_security_services::v1:: + DeleteNetworkEdgeSecurityServiceRequest const& request); + + virtual future> + DeleteNetworkEdgeSecurityService( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual StatusOr GetNetworkEdgeSecurityService( google::cloud::cpp::compute::network_edge_security_services::v1:: @@ -226,10 +239,32 @@ class NetworkEdgeSecurityServicesConnection { google::cloud::cpp::compute::network_edge_security_services::v1:: InsertNetworkEdgeSecurityServiceRequest const& request); + virtual StatusOr + InsertNetworkEdgeSecurityService( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::network_edge_security_services::v1:: + InsertNetworkEdgeSecurityServiceRequest const& request); + virtual future> + InsertNetworkEdgeSecurityService( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + + virtual future> + PatchNetworkEdgeSecurityService( + google::cloud::cpp::compute::network_edge_security_services::v1:: + PatchNetworkEdgeSecurityServiceRequest const& request); + + virtual StatusOr PatchNetworkEdgeSecurityService( + ExperimentalTag, NoAwaitTag, google::cloud::cpp::compute::network_edge_security_services::v1:: PatchNetworkEdgeSecurityServiceRequest const& request); + + virtual future> + PatchNetworkEdgeSecurityService( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); }; GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END diff --git a/google/cloud/compute/network_endpoint_groups/v1/internal/network_endpoint_groups_rest_connection_impl.cc b/google/cloud/compute/network_endpoint_groups/v1/internal/network_endpoint_groups_rest_connection_impl.cc index 5b79e5f7eed16..40dead8cc27a3 100644 --- a/google/cloud/compute/network_endpoint_groups/v1/internal/network_endpoint_groups_rest_connection_impl.cc +++ b/google/cloud/compute/network_endpoint_groups/v1/internal/network_endpoint_groups_rest_connection_impl.cc @@ -24,6 +24,7 @@ #include "google/cloud/internal/async_rest_long_running_operation_custom.h" #include "google/cloud/internal/extract_long_running_result.h" #include "google/cloud/internal/pagination_range.h" +#include "google/cloud/internal/rest_lro_helpers.h" #include "google/cloud/internal/rest_retry_loop.h" #include "google/cloud/rest_options.h" #include @@ -153,6 +154,79 @@ NetworkEndpointGroupsRestConnectionImpl::AttachNetworkEndpoints( }); } +StatusOr +NetworkEndpointGroupsRestConnectionImpl::AttachNetworkEndpoints( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::network_endpoint_groups::v1:: + AttachNetworkEndpointsRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->AttachNetworkEndpoints(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::network_endpoint_groups::v1:: + AttachNetworkEndpointsRequest const& request) { + return stub_->AttachNetworkEndpoints(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +NetworkEndpointGroupsRestConnectionImpl::AttachNetworkEndpoints( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::zone_operations::v1::DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::zone_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::zone_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation]( + std::string const&, + google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest& + r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_zone(info.zone); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::zone_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_zone(info.zone); + r.set_operation(info.operation); + }); +} + future> NetworkEndpointGroupsRestConnectionImpl::DeleteNetworkEndpointGroup( google::cloud::cpp::compute::network_endpoint_groups::v1:: @@ -213,6 +287,80 @@ NetworkEndpointGroupsRestConnectionImpl::DeleteNetworkEndpointGroup( }); } +StatusOr +NetworkEndpointGroupsRestConnectionImpl::DeleteNetworkEndpointGroup( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::network_endpoint_groups::v1:: + DeleteNetworkEndpointGroupRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteNetworkEndpointGroup(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::network_endpoint_groups::v1:: + DeleteNetworkEndpointGroupRequest const& request) { + return stub_->DeleteNetworkEndpointGroup(rest_context, options, + request); + }, + *current, request, __func__); +} + +future> +NetworkEndpointGroupsRestConnectionImpl::DeleteNetworkEndpointGroup( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::zone_operations::v1::DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::zone_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::zone_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation]( + std::string const&, + google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest& + r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_zone(info.zone); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::zone_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_zone(info.zone); + r.set_operation(info.operation); + }); +} + future> NetworkEndpointGroupsRestConnectionImpl::DetachNetworkEndpoints( google::cloud::cpp::compute::network_endpoint_groups::v1:: @@ -273,6 +421,79 @@ NetworkEndpointGroupsRestConnectionImpl::DetachNetworkEndpoints( }); } +StatusOr +NetworkEndpointGroupsRestConnectionImpl::DetachNetworkEndpoints( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::network_endpoint_groups::v1:: + DetachNetworkEndpointsRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DetachNetworkEndpoints(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::network_endpoint_groups::v1:: + DetachNetworkEndpointsRequest const& request) { + return stub_->DetachNetworkEndpoints(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +NetworkEndpointGroupsRestConnectionImpl::DetachNetworkEndpoints( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::zone_operations::v1::DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::zone_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::zone_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation]( + std::string const&, + google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest& + r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_zone(info.zone); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::zone_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_zone(info.zone); + r.set_operation(info.operation); + }); +} + StatusOr NetworkEndpointGroupsRestConnectionImpl::GetNetworkEndpointGroup( google::cloud::cpp::compute::network_endpoint_groups::v1:: @@ -349,6 +570,80 @@ NetworkEndpointGroupsRestConnectionImpl::InsertNetworkEndpointGroup( }); } +StatusOr +NetworkEndpointGroupsRestConnectionImpl::InsertNetworkEndpointGroup( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::network_endpoint_groups::v1:: + InsertNetworkEndpointGroupRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->InsertNetworkEndpointGroup(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::network_endpoint_groups::v1:: + InsertNetworkEndpointGroupRequest const& request) { + return stub_->InsertNetworkEndpointGroup(rest_context, options, + request); + }, + *current, request, __func__); +} + +future> +NetworkEndpointGroupsRestConnectionImpl::InsertNetworkEndpointGroup( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::zone_operations::v1::DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::zone_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::zone_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation]( + std::string const&, + google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest& + r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_zone(info.zone); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::zone_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_zone(info.zone); + r.set_operation(info.operation); + }); +} + StreamRange NetworkEndpointGroupsRestConnectionImpl::ListNetworkEndpointGroups( google::cloud::cpp::compute::network_endpoint_groups::v1:: diff --git a/google/cloud/compute/network_endpoint_groups/v1/internal/network_endpoint_groups_rest_connection_impl.h b/google/cloud/compute/network_endpoint_groups/v1/internal/network_endpoint_groups_rest_connection_impl.h index 983fd1a940c81..4cdeb07be540f 100644 --- a/google/cloud/compute/network_endpoint_groups/v1/internal/network_endpoint_groups_rest_connection_impl.h +++ b/google/cloud/compute/network_endpoint_groups/v1/internal/network_endpoint_groups_rest_connection_impl.h @@ -65,16 +65,47 @@ class NetworkEndpointGroupsRestConnectionImpl google::cloud::cpp::compute::network_endpoint_groups::v1:: AttachNetworkEndpointsRequest const& request) override; + StatusOr AttachNetworkEndpoints( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::network_endpoint_groups::v1:: + AttachNetworkEndpointsRequest const& request) override; + + future> + AttachNetworkEndpoints( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> DeleteNetworkEndpointGroup( google::cloud::cpp::compute::network_endpoint_groups::v1:: DeleteNetworkEndpointGroupRequest const& request) override; + StatusOr + DeleteNetworkEndpointGroup( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::network_endpoint_groups::v1:: + DeleteNetworkEndpointGroupRequest const& request) override; + + future> + DeleteNetworkEndpointGroup( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> DetachNetworkEndpoints( google::cloud::cpp::compute::network_endpoint_groups::v1:: DetachNetworkEndpointsRequest const& request) override; + StatusOr DetachNetworkEndpoints( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::network_endpoint_groups::v1:: + DetachNetworkEndpointsRequest const& request) override; + + future> + DetachNetworkEndpoints( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StatusOr GetNetworkEndpointGroup( google::cloud::cpp::compute::network_endpoint_groups::v1:: @@ -85,6 +116,17 @@ class NetworkEndpointGroupsRestConnectionImpl google::cloud::cpp::compute::network_endpoint_groups::v1:: InsertNetworkEndpointGroupRequest const& request) override; + StatusOr + InsertNetworkEndpointGroup( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::network_endpoint_groups::v1:: + InsertNetworkEndpointGroupRequest const& request) override; + + future> + InsertNetworkEndpointGroup( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StreamRange ListNetworkEndpointGroups( google::cloud::cpp::compute::network_endpoint_groups::v1:: diff --git a/google/cloud/compute/network_endpoint_groups/v1/internal/network_endpoint_groups_tracing_connection.cc b/google/cloud/compute/network_endpoint_groups/v1/internal/network_endpoint_groups_tracing_connection.cc index b4d3bb165447a..c8fda1e17bdf8 100644 --- a/google/cloud/compute/network_endpoint_groups/v1/internal/network_endpoint_groups_tracing_connection.cc +++ b/google/cloud/compute/network_endpoint_groups/v1/internal/network_endpoint_groups_tracing_connection.cc @@ -65,6 +65,32 @@ NetworkEndpointGroupsTracingConnection::AttachNetworkEndpoints( child_->AttachNetworkEndpoints(request)); } +StatusOr +NetworkEndpointGroupsTracingConnection::AttachNetworkEndpoints( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::network_endpoint_groups::v1:: + AttachNetworkEndpointsRequest const& request) { + auto span = internal::MakeSpan( + "compute_network_endpoint_groups_v1::NetworkEndpointGroupsConnection::" + "AttachNetworkEndpoints"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->AttachNetworkEndpoints(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +NetworkEndpointGroupsTracingConnection::AttachNetworkEndpoints( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_network_endpoint_groups_v1::NetworkEndpointGroupsConnection::" + "AttachNetworkEndpoints"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->AttachNetworkEndpoints( + ExperimentalTag{}, operation)); +} + future> NetworkEndpointGroupsTracingConnection::DeleteNetworkEndpointGroup( google::cloud::cpp::compute::network_endpoint_groups::v1:: @@ -77,6 +103,32 @@ NetworkEndpointGroupsTracingConnection::DeleteNetworkEndpointGroup( child_->DeleteNetworkEndpointGroup(request)); } +StatusOr +NetworkEndpointGroupsTracingConnection::DeleteNetworkEndpointGroup( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::network_endpoint_groups::v1:: + DeleteNetworkEndpointGroupRequest const& request) { + auto span = internal::MakeSpan( + "compute_network_endpoint_groups_v1::NetworkEndpointGroupsConnection::" + "DeleteNetworkEndpointGroup"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->DeleteNetworkEndpointGroup(ExperimentalTag{}, NoAwaitTag{}, + request)); +} + +future> +NetworkEndpointGroupsTracingConnection::DeleteNetworkEndpointGroup( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_network_endpoint_groups_v1::NetworkEndpointGroupsConnection::" + "DeleteNetworkEndpointGroup"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->DeleteNetworkEndpointGroup( + ExperimentalTag{}, operation)); +} + future> NetworkEndpointGroupsTracingConnection::DetachNetworkEndpoints( google::cloud::cpp::compute::network_endpoint_groups::v1:: @@ -89,6 +141,32 @@ NetworkEndpointGroupsTracingConnection::DetachNetworkEndpoints( child_->DetachNetworkEndpoints(request)); } +StatusOr +NetworkEndpointGroupsTracingConnection::DetachNetworkEndpoints( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::network_endpoint_groups::v1:: + DetachNetworkEndpointsRequest const& request) { + auto span = internal::MakeSpan( + "compute_network_endpoint_groups_v1::NetworkEndpointGroupsConnection::" + "DetachNetworkEndpoints"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->DetachNetworkEndpoints(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +NetworkEndpointGroupsTracingConnection::DetachNetworkEndpoints( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_network_endpoint_groups_v1::NetworkEndpointGroupsConnection::" + "DetachNetworkEndpoints"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->DetachNetworkEndpoints( + ExperimentalTag{}, operation)); +} + StatusOr NetworkEndpointGroupsTracingConnection::GetNetworkEndpointGroup( google::cloud::cpp::compute::network_endpoint_groups::v1:: @@ -112,6 +190,32 @@ NetworkEndpointGroupsTracingConnection::InsertNetworkEndpointGroup( child_->InsertNetworkEndpointGroup(request)); } +StatusOr +NetworkEndpointGroupsTracingConnection::InsertNetworkEndpointGroup( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::network_endpoint_groups::v1:: + InsertNetworkEndpointGroupRequest const& request) { + auto span = internal::MakeSpan( + "compute_network_endpoint_groups_v1::NetworkEndpointGroupsConnection::" + "InsertNetworkEndpointGroup"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->InsertNetworkEndpointGroup(ExperimentalTag{}, NoAwaitTag{}, + request)); +} + +future> +NetworkEndpointGroupsTracingConnection::InsertNetworkEndpointGroup( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_network_endpoint_groups_v1::NetworkEndpointGroupsConnection::" + "InsertNetworkEndpointGroup"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->InsertNetworkEndpointGroup( + ExperimentalTag{}, operation)); +} + StreamRange NetworkEndpointGroupsTracingConnection::ListNetworkEndpointGroups( google::cloud::cpp::compute::network_endpoint_groups::v1:: diff --git a/google/cloud/compute/network_endpoint_groups/v1/internal/network_endpoint_groups_tracing_connection.h b/google/cloud/compute/network_endpoint_groups/v1/internal/network_endpoint_groups_tracing_connection.h index 1f300f342eece..9c7a984f72e95 100644 --- a/google/cloud/compute/network_endpoint_groups/v1/internal/network_endpoint_groups_tracing_connection.h +++ b/google/cloud/compute/network_endpoint_groups/v1/internal/network_endpoint_groups_tracing_connection.h @@ -55,16 +55,47 @@ class NetworkEndpointGroupsTracingConnection google::cloud::cpp::compute::network_endpoint_groups::v1:: AttachNetworkEndpointsRequest const& request) override; + StatusOr AttachNetworkEndpoints( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::network_endpoint_groups::v1:: + AttachNetworkEndpointsRequest const& request) override; + + future> + AttachNetworkEndpoints( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> DeleteNetworkEndpointGroup( google::cloud::cpp::compute::network_endpoint_groups::v1:: DeleteNetworkEndpointGroupRequest const& request) override; + StatusOr + DeleteNetworkEndpointGroup( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::network_endpoint_groups::v1:: + DeleteNetworkEndpointGroupRequest const& request) override; + + future> + DeleteNetworkEndpointGroup( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> DetachNetworkEndpoints( google::cloud::cpp::compute::network_endpoint_groups::v1:: DetachNetworkEndpointsRequest const& request) override; + StatusOr DetachNetworkEndpoints( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::network_endpoint_groups::v1:: + DetachNetworkEndpointsRequest const& request) override; + + future> + DetachNetworkEndpoints( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StatusOr GetNetworkEndpointGroup( google::cloud::cpp::compute::network_endpoint_groups::v1:: @@ -75,6 +106,17 @@ class NetworkEndpointGroupsTracingConnection google::cloud::cpp::compute::network_endpoint_groups::v1:: InsertNetworkEndpointGroupRequest const& request) override; + StatusOr + InsertNetworkEndpointGroup( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::network_endpoint_groups::v1:: + InsertNetworkEndpointGroupRequest const& request) override; + + future> + InsertNetworkEndpointGroup( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StreamRange ListNetworkEndpointGroups( google::cloud::cpp::compute::network_endpoint_groups::v1:: diff --git a/google/cloud/compute/network_endpoint_groups/v1/mocks/mock_network_endpoint_groups_connection.h b/google/cloud/compute/network_endpoint_groups/v1/mocks/mock_network_endpoint_groups_connection.h index 89581b59ab034..bd6dbe8d277cb 100644 --- a/google/cloud/compute/network_endpoint_groups/v1/mocks/mock_network_endpoint_groups_connection.h +++ b/google/cloud/compute/network_endpoint_groups/v1/mocks/mock_network_endpoint_groups_connection.h @@ -64,18 +64,57 @@ class MockNetworkEndpointGroupsConnection AttachNetworkEndpointsRequest const& request), (override)); + MOCK_METHOD(StatusOr, + AttachNetworkEndpoints, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::network_endpoint_groups::v1:: + AttachNetworkEndpointsRequest const& request), + (override)); + + MOCK_METHOD(future>, + AttachNetworkEndpoints, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD(future>, DeleteNetworkEndpointGroup, (google::cloud::cpp::compute::network_endpoint_groups::v1:: DeleteNetworkEndpointGroupRequest const& request), (override)); + MOCK_METHOD(StatusOr, + DeleteNetworkEndpointGroup, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::network_endpoint_groups::v1:: + DeleteNetworkEndpointGroupRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteNetworkEndpointGroup, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD(future>, DetachNetworkEndpoints, (google::cloud::cpp::compute::network_endpoint_groups::v1:: DetachNetworkEndpointsRequest const& request), (override)); + MOCK_METHOD(StatusOr, + DetachNetworkEndpoints, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::network_endpoint_groups::v1:: + DetachNetworkEndpointsRequest const& request), + (override)); + + MOCK_METHOD(future>, + DetachNetworkEndpoints, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD(StatusOr, GetNetworkEndpointGroup, (google::cloud::cpp::compute::network_endpoint_groups::v1:: @@ -88,6 +127,19 @@ class MockNetworkEndpointGroupsConnection InsertNetworkEndpointGroupRequest const& request), (override)); + MOCK_METHOD(StatusOr, + InsertNetworkEndpointGroup, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::network_endpoint_groups::v1:: + InsertNetworkEndpointGroupRequest const& request), + (override)); + + MOCK_METHOD(future>, + InsertNetworkEndpointGroup, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD( (StreamRange), ListNetworkEndpointGroups, diff --git a/google/cloud/compute/network_endpoint_groups/v1/network_endpoint_groups_connection.cc b/google/cloud/compute/network_endpoint_groups/v1/network_endpoint_groups_connection.cc index ca2b3bea27552..fdb36b50f845c 100644 --- a/google/cloud/compute/network_endpoint_groups/v1/network_endpoint_groups_connection.cc +++ b/google/cloud/compute/network_endpoint_groups/v1/network_endpoint_groups_connection.cc @@ -57,6 +57,23 @@ NetworkEndpointGroupsConnection::AttachNetworkEndpoints( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +NetworkEndpointGroupsConnection::AttachNetworkEndpoints( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::network_endpoint_groups::v1:: + AttachNetworkEndpointsRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +NetworkEndpointGroupsConnection::AttachNetworkEndpoints( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> NetworkEndpointGroupsConnection::DeleteNetworkEndpointGroup( google::cloud::cpp::compute::network_endpoint_groups::v1:: @@ -66,6 +83,23 @@ NetworkEndpointGroupsConnection::DeleteNetworkEndpointGroup( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +NetworkEndpointGroupsConnection::DeleteNetworkEndpointGroup( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::network_endpoint_groups::v1:: + DeleteNetworkEndpointGroupRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +NetworkEndpointGroupsConnection::DeleteNetworkEndpointGroup( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> NetworkEndpointGroupsConnection::DetachNetworkEndpoints( google::cloud::cpp::compute::network_endpoint_groups::v1:: @@ -75,6 +109,23 @@ NetworkEndpointGroupsConnection::DetachNetworkEndpoints( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +NetworkEndpointGroupsConnection::DetachNetworkEndpoints( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::network_endpoint_groups::v1:: + DetachNetworkEndpointsRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +NetworkEndpointGroupsConnection::DetachNetworkEndpoints( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr NetworkEndpointGroupsConnection::GetNetworkEndpointGroup( google::cloud::cpp::compute::network_endpoint_groups::v1:: @@ -91,6 +142,23 @@ NetworkEndpointGroupsConnection::InsertNetworkEndpointGroup( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +NetworkEndpointGroupsConnection::InsertNetworkEndpointGroup( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::network_endpoint_groups::v1:: + InsertNetworkEndpointGroupRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +NetworkEndpointGroupsConnection::InsertNetworkEndpointGroup( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StreamRange NetworkEndpointGroupsConnection::ListNetworkEndpointGroups( google::cloud::cpp::compute::network_endpoint_groups::v1:: diff --git a/google/cloud/compute/network_endpoint_groups/v1/network_endpoint_groups_connection.h b/google/cloud/compute/network_endpoint_groups/v1/network_endpoint_groups_connection.h index 1ee29ddcff767..612e3e739672a 100644 --- a/google/cloud/compute/network_endpoint_groups/v1/network_endpoint_groups_connection.h +++ b/google/cloud/compute/network_endpoint_groups/v1/network_endpoint_groups_connection.h @@ -23,8 +23,10 @@ #include "google/cloud/compute/network_endpoint_groups/v1/internal/network_endpoint_groups_retry_traits.h" #include "google/cloud/compute/network_endpoint_groups/v1/network_endpoint_groups_connection_idempotency_policy.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/internal/retry_policy_impl.h" +#include "google/cloud/no_await_tag.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" #include "google/cloud/status_or.h" @@ -205,15 +207,46 @@ class NetworkEndpointGroupsConnection { AttachNetworkEndpoints(google::cloud::cpp::compute::network_endpoint_groups:: v1::AttachNetworkEndpointsRequest const& request); + virtual StatusOr + AttachNetworkEndpoints(ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::network_endpoint_groups:: + v1::AttachNetworkEndpointsRequest const& request); + + virtual future> + AttachNetworkEndpoints( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual future> DeleteNetworkEndpointGroup( google::cloud::cpp::compute::network_endpoint_groups::v1:: DeleteNetworkEndpointGroupRequest const& request); + virtual StatusOr + DeleteNetworkEndpointGroup( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::network_endpoint_groups::v1:: + DeleteNetworkEndpointGroupRequest const& request); + + virtual future> + DeleteNetworkEndpointGroup( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual future> DetachNetworkEndpoints(google::cloud::cpp::compute::network_endpoint_groups:: v1::DetachNetworkEndpointsRequest const& request); + virtual StatusOr + DetachNetworkEndpoints(ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::network_endpoint_groups:: + v1::DetachNetworkEndpointsRequest const& request); + + virtual future> + DetachNetworkEndpoints( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual StatusOr GetNetworkEndpointGroup( google::cloud::cpp::compute::network_endpoint_groups::v1:: @@ -224,6 +257,17 @@ class NetworkEndpointGroupsConnection { google::cloud::cpp::compute::network_endpoint_groups::v1:: InsertNetworkEndpointGroupRequest const& request); + virtual StatusOr + InsertNetworkEndpointGroup( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::network_endpoint_groups::v1:: + InsertNetworkEndpointGroupRequest const& request); + + virtual future> + InsertNetworkEndpointGroup( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual StreamRange ListNetworkEndpointGroups( google::cloud::cpp::compute::network_endpoint_groups::v1:: diff --git a/google/cloud/compute/network_firewall_policies/v1/internal/network_firewall_policies_rest_connection_impl.cc b/google/cloud/compute/network_firewall_policies/v1/internal/network_firewall_policies_rest_connection_impl.cc index 08f182e2b26fc..c67ef1820c8b7 100644 --- a/google/cloud/compute/network_firewall_policies/v1/internal/network_firewall_policies_rest_connection_impl.cc +++ b/google/cloud/compute/network_firewall_policies/v1/internal/network_firewall_policies_rest_connection_impl.cc @@ -24,6 +24,7 @@ #include "google/cloud/internal/async_rest_long_running_operation_custom.h" #include "google/cloud/internal/extract_long_running_result.h" #include "google/cloud/internal/pagination_range.h" +#include "google/cloud/internal/rest_lro_helpers.h" #include "google/cloud/internal/rest_retry_loop.h" #include "google/cloud/rest_options.h" #include @@ -104,6 +105,77 @@ NetworkFirewallPoliciesRestConnectionImpl::AddAssociation( }); } +StatusOr +NetworkFirewallPoliciesRestConnectionImpl::AddAssociation( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::network_firewall_policies::v1:: + AddAssociationRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->AddAssociation(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::network_firewall_policies::v1:: + AddAssociationRequest const& request) { + return stub_->AddAssociation(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +NetworkFirewallPoliciesRestConnectionImpl::AddAssociation( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::global_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }); +} + future> NetworkFirewallPoliciesRestConnectionImpl::AddRule( google::cloud::cpp::compute::network_firewall_policies::v1:: @@ -162,6 +234,77 @@ NetworkFirewallPoliciesRestConnectionImpl::AddRule( }); } +StatusOr +NetworkFirewallPoliciesRestConnectionImpl::AddRule( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::network_firewall_policies::v1:: + AddRuleRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->AddRule(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::network_firewall_policies::v1:: + AddRuleRequest const& request) { + return stub_->AddRule(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +NetworkFirewallPoliciesRestConnectionImpl::AddRule( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::global_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }); +} + future> NetworkFirewallPoliciesRestConnectionImpl::CloneRules( google::cloud::cpp::compute::network_firewall_policies::v1:: @@ -220,6 +363,77 @@ NetworkFirewallPoliciesRestConnectionImpl::CloneRules( }); } +StatusOr +NetworkFirewallPoliciesRestConnectionImpl::CloneRules( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::network_firewall_policies::v1:: + CloneRulesRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CloneRules(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::network_firewall_policies::v1:: + CloneRulesRequest const& request) { + return stub_->CloneRules(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +NetworkFirewallPoliciesRestConnectionImpl::CloneRules( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::global_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }); +} + future> NetworkFirewallPoliciesRestConnectionImpl::DeleteFirewallPolicy( google::cloud::cpp::compute::network_firewall_policies::v1:: @@ -278,6 +492,77 @@ NetworkFirewallPoliciesRestConnectionImpl::DeleteFirewallPolicy( }); } +StatusOr +NetworkFirewallPoliciesRestConnectionImpl::DeleteFirewallPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::network_firewall_policies::v1:: + DeleteFirewallPolicyRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteFirewallPolicy(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::network_firewall_policies::v1:: + DeleteFirewallPolicyRequest const& request) { + return stub_->DeleteFirewallPolicy(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +NetworkFirewallPoliciesRestConnectionImpl::DeleteFirewallPolicy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::global_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }); +} + StatusOr NetworkFirewallPoliciesRestConnectionImpl::GetFirewallPolicy( google::cloud::cpp::compute::network_firewall_policies::v1:: @@ -400,6 +685,77 @@ NetworkFirewallPoliciesRestConnectionImpl::InsertFirewallPolicy( }); } +StatusOr +NetworkFirewallPoliciesRestConnectionImpl::InsertFirewallPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::network_firewall_policies::v1:: + InsertFirewallPolicyRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->InsertFirewallPolicy(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::network_firewall_policies::v1:: + InsertFirewallPolicyRequest const& request) { + return stub_->InsertFirewallPolicy(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +NetworkFirewallPoliciesRestConnectionImpl::InsertFirewallPolicy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::global_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }); +} + StreamRange NetworkFirewallPoliciesRestConnectionImpl::ListNetworkFirewallPolicies( google::cloud::cpp::compute::network_firewall_policies::v1:: @@ -498,6 +854,77 @@ NetworkFirewallPoliciesRestConnectionImpl::PatchFirewallPolicy( }); } +StatusOr +NetworkFirewallPoliciesRestConnectionImpl::PatchFirewallPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::network_firewall_policies::v1:: + PatchFirewallPolicyRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->PatchFirewallPolicy(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::network_firewall_policies::v1:: + PatchFirewallPolicyRequest const& request) { + return stub_->PatchFirewallPolicy(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +NetworkFirewallPoliciesRestConnectionImpl::PatchFirewallPolicy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::global_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }); +} + future> NetworkFirewallPoliciesRestConnectionImpl::PatchRule( google::cloud::cpp::compute::network_firewall_policies::v1:: @@ -556,6 +983,77 @@ NetworkFirewallPoliciesRestConnectionImpl::PatchRule( }); } +StatusOr +NetworkFirewallPoliciesRestConnectionImpl::PatchRule( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::network_firewall_policies::v1:: + PatchRuleRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->PatchRule(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::network_firewall_policies::v1:: + PatchRuleRequest const& request) { + return stub_->PatchRule(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +NetworkFirewallPoliciesRestConnectionImpl::PatchRule( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::global_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }); +} + future> NetworkFirewallPoliciesRestConnectionImpl::RemoveAssociation( google::cloud::cpp::compute::network_firewall_policies::v1:: @@ -614,6 +1112,77 @@ NetworkFirewallPoliciesRestConnectionImpl::RemoveAssociation( }); } +StatusOr +NetworkFirewallPoliciesRestConnectionImpl::RemoveAssociation( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::network_firewall_policies::v1:: + RemoveAssociationRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->RemoveAssociation(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::network_firewall_policies::v1:: + RemoveAssociationRequest const& request) { + return stub_->RemoveAssociation(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +NetworkFirewallPoliciesRestConnectionImpl::RemoveAssociation( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::global_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }); +} + future> NetworkFirewallPoliciesRestConnectionImpl::RemoveRule( google::cloud::cpp::compute::network_firewall_policies::v1:: @@ -672,6 +1241,77 @@ NetworkFirewallPoliciesRestConnectionImpl::RemoveRule( }); } +StatusOr +NetworkFirewallPoliciesRestConnectionImpl::RemoveRule( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::network_firewall_policies::v1:: + RemoveRuleRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->RemoveRule(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::network_firewall_policies::v1:: + RemoveRuleRequest const& request) { + return stub_->RemoveRule(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +NetworkFirewallPoliciesRestConnectionImpl::RemoveRule( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::global_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }); +} + StatusOr NetworkFirewallPoliciesRestConnectionImpl::SetIamPolicy( google::cloud::cpp::compute::network_firewall_policies::v1:: diff --git a/google/cloud/compute/network_firewall_policies/v1/internal/network_firewall_policies_rest_connection_impl.h b/google/cloud/compute/network_firewall_policies/v1/internal/network_firewall_policies_rest_connection_impl.h index aacf80601250d..295c1543ea980 100644 --- a/google/cloud/compute/network_firewall_policies/v1/internal/network_firewall_policies_rest_connection_impl.h +++ b/google/cloud/compute/network_firewall_policies/v1/internal/network_firewall_policies_rest_connection_impl.h @@ -58,19 +58,56 @@ class NetworkFirewallPoliciesRestConnectionImpl google::cloud::cpp::compute::network_firewall_policies::v1:: AddAssociationRequest const& request) override; + StatusOr AddAssociation( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::network_firewall_policies::v1:: + AddAssociationRequest const& request) override; + + future> AddAssociation( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> AddRule( google::cloud::cpp::compute::network_firewall_policies::v1:: AddRuleRequest const& request) override; + StatusOr AddRule( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::network_firewall_policies::v1:: + AddRuleRequest const& request) override; + + future> AddRule( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> CloneRules( google::cloud::cpp::compute::network_firewall_policies::v1:: CloneRulesRequest const& request) override; + StatusOr CloneRules( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::network_firewall_policies::v1:: + CloneRulesRequest const& request) override; + + future> CloneRules( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> DeleteFirewallPolicy( google::cloud::cpp::compute::network_firewall_policies::v1:: DeleteFirewallPolicyRequest const& request) override; + StatusOr DeleteFirewallPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::network_firewall_policies::v1:: + DeleteFirewallPolicyRequest const& request) override; + + future> + DeleteFirewallPolicy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StatusOr GetFirewallPolicy( google::cloud::cpp::compute::network_firewall_policies::v1:: GetFirewallPolicyRequest const& request) override; @@ -92,6 +129,16 @@ class NetworkFirewallPoliciesRestConnectionImpl google::cloud::cpp::compute::network_firewall_policies::v1:: InsertFirewallPolicyRequest const& request) override; + StatusOr InsertFirewallPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::network_firewall_policies::v1:: + InsertFirewallPolicyRequest const& request) override; + + future> + InsertFirewallPolicy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StreamRange ListNetworkFirewallPolicies( google::cloud::cpp::compute::network_firewall_policies::v1:: @@ -102,18 +149,56 @@ class NetworkFirewallPoliciesRestConnectionImpl google::cloud::cpp::compute::network_firewall_policies::v1:: PatchFirewallPolicyRequest const& request) override; + StatusOr PatchFirewallPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::network_firewall_policies::v1:: + PatchFirewallPolicyRequest const& request) override; + + future> + PatchFirewallPolicy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> PatchRule( google::cloud::cpp::compute::network_firewall_policies::v1:: PatchRuleRequest const& request) override; + StatusOr PatchRule( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::network_firewall_policies::v1:: + PatchRuleRequest const& request) override; + + future> PatchRule( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> RemoveAssociation(google::cloud::cpp::compute::network_firewall_policies::v1:: RemoveAssociationRequest const& request) override; + StatusOr RemoveAssociation( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::network_firewall_policies::v1:: + RemoveAssociationRequest const& request) override; + + future> + RemoveAssociation( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> RemoveRule( google::cloud::cpp::compute::network_firewall_policies::v1:: RemoveRuleRequest const& request) override; + StatusOr RemoveRule( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::network_firewall_policies::v1:: + RemoveRuleRequest const& request) override; + + future> RemoveRule( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StatusOr SetIamPolicy( google::cloud::cpp::compute::network_firewall_policies::v1:: SetIamPolicyRequest const& request) override; diff --git a/google/cloud/compute/network_firewall_policies/v1/internal/network_firewall_policies_tracing_connection.cc b/google/cloud/compute/network_firewall_policies/v1/internal/network_firewall_policies_tracing_connection.cc index 28089b386d348..417761fddbb41 100644 --- a/google/cloud/compute/network_firewall_policies/v1/internal/network_firewall_policies_tracing_connection.cc +++ b/google/cloud/compute/network_firewall_policies/v1/internal/network_firewall_policies_tracing_connection.cc @@ -48,6 +48,31 @@ NetworkFirewallPoliciesTracingConnection::AddAssociation( return internal::EndSpan(std::move(span), child_->AddAssociation(request)); } +StatusOr +NetworkFirewallPoliciesTracingConnection::AddAssociation( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::network_firewall_policies::v1:: + AddAssociationRequest const& request) { + auto span = internal::MakeSpan( + "compute_network_firewall_policies_v1::NetworkFirewallPoliciesConnection:" + ":AddAssociation"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->AddAssociation(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +NetworkFirewallPoliciesTracingConnection::AddAssociation( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_network_firewall_policies_v1::NetworkFirewallPoliciesConnection:" + ":AddAssociation"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->AddAssociation(ExperimentalTag{}, operation)); +} + future> NetworkFirewallPoliciesTracingConnection::AddRule( google::cloud::cpp::compute::network_firewall_policies::v1:: @@ -59,6 +84,31 @@ NetworkFirewallPoliciesTracingConnection::AddRule( return internal::EndSpan(std::move(span), child_->AddRule(request)); } +StatusOr +NetworkFirewallPoliciesTracingConnection::AddRule( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::network_firewall_policies::v1:: + AddRuleRequest const& request) { + auto span = internal::MakeSpan( + "compute_network_firewall_policies_v1::NetworkFirewallPoliciesConnection:" + ":AddRule"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->AddRule(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +NetworkFirewallPoliciesTracingConnection::AddRule( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_network_firewall_policies_v1::NetworkFirewallPoliciesConnection:" + ":AddRule"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->AddRule(ExperimentalTag{}, operation)); +} + future> NetworkFirewallPoliciesTracingConnection::CloneRules( google::cloud::cpp::compute::network_firewall_policies::v1:: @@ -70,6 +120,31 @@ NetworkFirewallPoliciesTracingConnection::CloneRules( return internal::EndSpan(std::move(span), child_->CloneRules(request)); } +StatusOr +NetworkFirewallPoliciesTracingConnection::CloneRules( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::network_firewall_policies::v1:: + CloneRulesRequest const& request) { + auto span = internal::MakeSpan( + "compute_network_firewall_policies_v1::NetworkFirewallPoliciesConnection:" + ":CloneRules"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->CloneRules(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +NetworkFirewallPoliciesTracingConnection::CloneRules( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_network_firewall_policies_v1::NetworkFirewallPoliciesConnection:" + ":CloneRules"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->CloneRules(ExperimentalTag{}, operation)); +} + future> NetworkFirewallPoliciesTracingConnection::DeleteFirewallPolicy( google::cloud::cpp::compute::network_firewall_policies::v1:: @@ -82,6 +157,32 @@ NetworkFirewallPoliciesTracingConnection::DeleteFirewallPolicy( child_->DeleteFirewallPolicy(request)); } +StatusOr +NetworkFirewallPoliciesTracingConnection::DeleteFirewallPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::network_firewall_policies::v1:: + DeleteFirewallPolicyRequest const& request) { + auto span = internal::MakeSpan( + "compute_network_firewall_policies_v1::NetworkFirewallPoliciesConnection:" + ":DeleteFirewallPolicy"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->DeleteFirewallPolicy(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +NetworkFirewallPoliciesTracingConnection::DeleteFirewallPolicy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_network_firewall_policies_v1::NetworkFirewallPoliciesConnection:" + ":DeleteFirewallPolicy"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->DeleteFirewallPolicy( + ExperimentalTag{}, operation)); +} + StatusOr NetworkFirewallPoliciesTracingConnection::GetFirewallPolicy( google::cloud::cpp::compute::network_firewall_policies::v1:: @@ -138,6 +239,32 @@ NetworkFirewallPoliciesTracingConnection::InsertFirewallPolicy( child_->InsertFirewallPolicy(request)); } +StatusOr +NetworkFirewallPoliciesTracingConnection::InsertFirewallPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::network_firewall_policies::v1:: + InsertFirewallPolicyRequest const& request) { + auto span = internal::MakeSpan( + "compute_network_firewall_policies_v1::NetworkFirewallPoliciesConnection:" + ":InsertFirewallPolicy"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->InsertFirewallPolicy(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +NetworkFirewallPoliciesTracingConnection::InsertFirewallPolicy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_network_firewall_policies_v1::NetworkFirewallPoliciesConnection:" + ":InsertFirewallPolicy"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->InsertFirewallPolicy( + ExperimentalTag{}, operation)); +} + StreamRange NetworkFirewallPoliciesTracingConnection::ListNetworkFirewallPolicies( google::cloud::cpp::compute::network_firewall_policies::v1:: @@ -164,6 +291,32 @@ NetworkFirewallPoliciesTracingConnection::PatchFirewallPolicy( child_->PatchFirewallPolicy(request)); } +StatusOr +NetworkFirewallPoliciesTracingConnection::PatchFirewallPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::network_firewall_policies::v1:: + PatchFirewallPolicyRequest const& request) { + auto span = internal::MakeSpan( + "compute_network_firewall_policies_v1::NetworkFirewallPoliciesConnection:" + ":PatchFirewallPolicy"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->PatchFirewallPolicy(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +NetworkFirewallPoliciesTracingConnection::PatchFirewallPolicy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_network_firewall_policies_v1::NetworkFirewallPoliciesConnection:" + ":PatchFirewallPolicy"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->PatchFirewallPolicy( + ExperimentalTag{}, operation)); +} + future> NetworkFirewallPoliciesTracingConnection::PatchRule( google::cloud::cpp::compute::network_firewall_policies::v1:: @@ -175,6 +328,31 @@ NetworkFirewallPoliciesTracingConnection::PatchRule( return internal::EndSpan(std::move(span), child_->PatchRule(request)); } +StatusOr +NetworkFirewallPoliciesTracingConnection::PatchRule( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::network_firewall_policies::v1:: + PatchRuleRequest const& request) { + auto span = internal::MakeSpan( + "compute_network_firewall_policies_v1::NetworkFirewallPoliciesConnection:" + ":PatchRule"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->PatchRule(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +NetworkFirewallPoliciesTracingConnection::PatchRule( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_network_firewall_policies_v1::NetworkFirewallPoliciesConnection:" + ":PatchRule"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->PatchRule(ExperimentalTag{}, operation)); +} + future> NetworkFirewallPoliciesTracingConnection::RemoveAssociation( google::cloud::cpp::compute::network_firewall_policies::v1:: @@ -186,6 +364,32 @@ NetworkFirewallPoliciesTracingConnection::RemoveAssociation( return internal::EndSpan(std::move(span), child_->RemoveAssociation(request)); } +StatusOr +NetworkFirewallPoliciesTracingConnection::RemoveAssociation( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::network_firewall_policies::v1:: + RemoveAssociationRequest const& request) { + auto span = internal::MakeSpan( + "compute_network_firewall_policies_v1::NetworkFirewallPoliciesConnection:" + ":RemoveAssociation"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->RemoveAssociation(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +NetworkFirewallPoliciesTracingConnection::RemoveAssociation( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_network_firewall_policies_v1::NetworkFirewallPoliciesConnection:" + ":RemoveAssociation"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->RemoveAssociation(ExperimentalTag{}, operation)); +} + future> NetworkFirewallPoliciesTracingConnection::RemoveRule( google::cloud::cpp::compute::network_firewall_policies::v1:: @@ -197,6 +401,31 @@ NetworkFirewallPoliciesTracingConnection::RemoveRule( return internal::EndSpan(std::move(span), child_->RemoveRule(request)); } +StatusOr +NetworkFirewallPoliciesTracingConnection::RemoveRule( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::network_firewall_policies::v1:: + RemoveRuleRequest const& request) { + auto span = internal::MakeSpan( + "compute_network_firewall_policies_v1::NetworkFirewallPoliciesConnection:" + ":RemoveRule"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->RemoveRule(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +NetworkFirewallPoliciesTracingConnection::RemoveRule( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_network_firewall_policies_v1::NetworkFirewallPoliciesConnection:" + ":RemoveRule"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->RemoveRule(ExperimentalTag{}, operation)); +} + StatusOr NetworkFirewallPoliciesTracingConnection::SetIamPolicy( google::cloud::cpp::compute::network_firewall_policies::v1:: diff --git a/google/cloud/compute/network_firewall_policies/v1/internal/network_firewall_policies_tracing_connection.h b/google/cloud/compute/network_firewall_policies/v1/internal/network_firewall_policies_tracing_connection.h index 0f0ac2294c5dc..d09f0831f516f 100644 --- a/google/cloud/compute/network_firewall_policies/v1/internal/network_firewall_policies_tracing_connection.h +++ b/google/cloud/compute/network_firewall_policies/v1/internal/network_firewall_policies_tracing_connection.h @@ -48,19 +48,56 @@ class NetworkFirewallPoliciesTracingConnection google::cloud::cpp::compute::network_firewall_policies::v1:: AddAssociationRequest const& request) override; + StatusOr AddAssociation( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::network_firewall_policies::v1:: + AddAssociationRequest const& request) override; + + future> AddAssociation( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> AddRule( google::cloud::cpp::compute::network_firewall_policies::v1:: AddRuleRequest const& request) override; + StatusOr AddRule( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::network_firewall_policies::v1:: + AddRuleRequest const& request) override; + + future> AddRule( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> CloneRules( google::cloud::cpp::compute::network_firewall_policies::v1:: CloneRulesRequest const& request) override; + StatusOr CloneRules( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::network_firewall_policies::v1:: + CloneRulesRequest const& request) override; + + future> CloneRules( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> DeleteFirewallPolicy( google::cloud::cpp::compute::network_firewall_policies::v1:: DeleteFirewallPolicyRequest const& request) override; + StatusOr DeleteFirewallPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::network_firewall_policies::v1:: + DeleteFirewallPolicyRequest const& request) override; + + future> + DeleteFirewallPolicy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StatusOr GetFirewallPolicy( google::cloud::cpp::compute::network_firewall_policies::v1:: GetFirewallPolicyRequest const& request) override; @@ -82,6 +119,16 @@ class NetworkFirewallPoliciesTracingConnection google::cloud::cpp::compute::network_firewall_policies::v1:: InsertFirewallPolicyRequest const& request) override; + StatusOr InsertFirewallPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::network_firewall_policies::v1:: + InsertFirewallPolicyRequest const& request) override; + + future> + InsertFirewallPolicy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StreamRange ListNetworkFirewallPolicies( google::cloud::cpp::compute::network_firewall_policies::v1:: @@ -92,18 +139,56 @@ class NetworkFirewallPoliciesTracingConnection google::cloud::cpp::compute::network_firewall_policies::v1:: PatchFirewallPolicyRequest const& request) override; + StatusOr PatchFirewallPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::network_firewall_policies::v1:: + PatchFirewallPolicyRequest const& request) override; + + future> + PatchFirewallPolicy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> PatchRule( google::cloud::cpp::compute::network_firewall_policies::v1:: PatchRuleRequest const& request) override; + StatusOr PatchRule( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::network_firewall_policies::v1:: + PatchRuleRequest const& request) override; + + future> PatchRule( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> RemoveAssociation(google::cloud::cpp::compute::network_firewall_policies::v1:: RemoveAssociationRequest const& request) override; + StatusOr RemoveAssociation( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::network_firewall_policies::v1:: + RemoveAssociationRequest const& request) override; + + future> + RemoveAssociation( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> RemoveRule( google::cloud::cpp::compute::network_firewall_policies::v1:: RemoveRuleRequest const& request) override; + StatusOr RemoveRule( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::network_firewall_policies::v1:: + RemoveRuleRequest const& request) override; + + future> RemoveRule( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StatusOr SetIamPolicy( google::cloud::cpp::compute::network_firewall_policies::v1:: SetIamPolicyRequest const& request) override; diff --git a/google/cloud/compute/network_firewall_policies/v1/mocks/mock_network_firewall_policies_connection.h b/google/cloud/compute/network_firewall_policies/v1/mocks/mock_network_firewall_policies_connection.h index 6b9373ee4a48c..e05adba527bec 100644 --- a/google/cloud/compute/network_firewall_policies/v1/mocks/mock_network_firewall_policies_connection.h +++ b/google/cloud/compute/network_firewall_policies/v1/mocks/mock_network_firewall_policies_connection.h @@ -55,24 +55,74 @@ class MockNetworkFirewallPoliciesConnection AddAssociationRequest const& request), (override)); + MOCK_METHOD(StatusOr, + AddAssociation, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::network_firewall_policies::v1:: + AddAssociationRequest const& request), + (override)); + + MOCK_METHOD(future>, + AddAssociation, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD(future>, AddRule, (google::cloud::cpp::compute::network_firewall_policies::v1:: AddRuleRequest const& request), (override)); + MOCK_METHOD(StatusOr, AddRule, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::network_firewall_policies::v1:: + AddRuleRequest const& request), + (override)); + + MOCK_METHOD(future>, + AddRule, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD(future>, CloneRules, (google::cloud::cpp::compute::network_firewall_policies::v1:: CloneRulesRequest const& request), (override)); + MOCK_METHOD(StatusOr, CloneRules, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::network_firewall_policies::v1:: + CloneRulesRequest const& request), + (override)); + + MOCK_METHOD(future>, + CloneRules, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD(future>, DeleteFirewallPolicy, (google::cloud::cpp::compute::network_firewall_policies::v1:: DeleteFirewallPolicyRequest const& request), (override)); + MOCK_METHOD(StatusOr, + DeleteFirewallPolicy, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::network_firewall_policies::v1:: + DeleteFirewallPolicyRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteFirewallPolicy, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD(StatusOr, GetFirewallPolicy, (google::cloud::cpp::compute::network_firewall_policies::v1:: @@ -103,6 +153,19 @@ class MockNetworkFirewallPoliciesConnection InsertFirewallPolicyRequest const& request), (override)); + MOCK_METHOD(StatusOr, + InsertFirewallPolicy, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::network_firewall_policies::v1:: + InsertFirewallPolicyRequest const& request), + (override)); + + MOCK_METHOD(future>, + InsertFirewallPolicy, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD((StreamRange), ListNetworkFirewallPolicies, (google::cloud::cpp::compute::network_firewall_policies::v1:: @@ -115,24 +178,74 @@ class MockNetworkFirewallPoliciesConnection PatchFirewallPolicyRequest const& request), (override)); + MOCK_METHOD(StatusOr, + PatchFirewallPolicy, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::network_firewall_policies::v1:: + PatchFirewallPolicyRequest const& request), + (override)); + + MOCK_METHOD(future>, + PatchFirewallPolicy, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD(future>, PatchRule, (google::cloud::cpp::compute::network_firewall_policies::v1:: PatchRuleRequest const& request), (override)); + MOCK_METHOD(StatusOr, PatchRule, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::network_firewall_policies::v1:: + PatchRuleRequest const& request), + (override)); + + MOCK_METHOD(future>, + PatchRule, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD(future>, RemoveAssociation, (google::cloud::cpp::compute::network_firewall_policies::v1:: RemoveAssociationRequest const& request), (override)); + MOCK_METHOD(StatusOr, + RemoveAssociation, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::network_firewall_policies::v1:: + RemoveAssociationRequest const& request), + (override)); + + MOCK_METHOD(future>, + RemoveAssociation, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD(future>, RemoveRule, (google::cloud::cpp::compute::network_firewall_policies::v1:: RemoveRuleRequest const& request), (override)); + MOCK_METHOD(StatusOr, RemoveRule, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::network_firewall_policies::v1:: + RemoveRuleRequest const& request), + (override)); + + MOCK_METHOD(future>, + RemoveRule, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD(StatusOr, SetIamPolicy, (google::cloud::cpp::compute::network_firewall_policies::v1:: SetIamPolicyRequest const& request), diff --git a/google/cloud/compute/network_firewall_policies/v1/network_firewall_policies_connection.cc b/google/cloud/compute/network_firewall_policies/v1/network_firewall_policies_connection.cc index 7bc4da899967b..074b4140f8e04 100644 --- a/google/cloud/compute/network_firewall_policies/v1/network_firewall_policies_connection.cc +++ b/google/cloud/compute/network_firewall_policies/v1/network_firewall_policies_connection.cc @@ -47,10 +47,44 @@ NetworkFirewallPoliciesConnection::AddAssociation( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +NetworkFirewallPoliciesConnection::AddAssociation( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::network_firewall_policies::v1:: + AddAssociationRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> +NetworkFirewallPoliciesConnection::AddAssociation( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +NetworkFirewallPoliciesConnection::AddRule( + google::cloud::cpp::compute::network_firewall_policies::v1:: + AddRuleRequest const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +StatusOr NetworkFirewallPoliciesConnection::AddRule( + ExperimentalTag, NoAwaitTag, google::cloud::cpp::compute::network_firewall_policies::v1:: AddRuleRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +NetworkFirewallPoliciesConnection::AddRule( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { return google::cloud::make_ready_future< StatusOr>( Status(StatusCode::kUnimplemented, "not implemented")); @@ -65,6 +99,23 @@ NetworkFirewallPoliciesConnection::CloneRules( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +NetworkFirewallPoliciesConnection::CloneRules( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::network_firewall_policies::v1:: + CloneRulesRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +NetworkFirewallPoliciesConnection::CloneRules( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> NetworkFirewallPoliciesConnection::DeleteFirewallPolicy( google::cloud::cpp::compute::network_firewall_policies::v1:: @@ -74,6 +125,23 @@ NetworkFirewallPoliciesConnection::DeleteFirewallPolicy( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +NetworkFirewallPoliciesConnection::DeleteFirewallPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::network_firewall_policies::v1:: + DeleteFirewallPolicyRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +NetworkFirewallPoliciesConnection::DeleteFirewallPolicy( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr NetworkFirewallPoliciesConnection::GetFirewallPolicy( google::cloud::cpp::compute::network_firewall_policies::v1:: @@ -111,6 +179,23 @@ NetworkFirewallPoliciesConnection::InsertFirewallPolicy( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +NetworkFirewallPoliciesConnection::InsertFirewallPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::network_firewall_policies::v1:: + InsertFirewallPolicyRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +NetworkFirewallPoliciesConnection::InsertFirewallPolicy( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StreamRange NetworkFirewallPoliciesConnection::ListNetworkFirewallPolicies( google::cloud::cpp::compute::network_firewall_policies::v1:: @@ -128,10 +213,44 @@ NetworkFirewallPoliciesConnection::PatchFirewallPolicy( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +NetworkFirewallPoliciesConnection::PatchFirewallPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::network_firewall_policies::v1:: + PatchFirewallPolicyRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> +NetworkFirewallPoliciesConnection::PatchFirewallPolicy( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +NetworkFirewallPoliciesConnection::PatchRule( + google::cloud::cpp::compute::network_firewall_policies::v1:: + PatchRuleRequest const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +StatusOr NetworkFirewallPoliciesConnection::PatchRule( + ExperimentalTag, NoAwaitTag, google::cloud::cpp::compute::network_firewall_policies::v1:: PatchRuleRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +NetworkFirewallPoliciesConnection::PatchRule( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { return google::cloud::make_ready_future< StatusOr>( Status(StatusCode::kUnimplemented, "not implemented")); @@ -146,10 +265,44 @@ NetworkFirewallPoliciesConnection::RemoveAssociation( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +NetworkFirewallPoliciesConnection::RemoveAssociation( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::network_firewall_policies::v1:: + RemoveAssociationRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> +NetworkFirewallPoliciesConnection::RemoveAssociation( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +NetworkFirewallPoliciesConnection::RemoveRule( + google::cloud::cpp::compute::network_firewall_policies::v1:: + RemoveRuleRequest const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +StatusOr NetworkFirewallPoliciesConnection::RemoveRule( + ExperimentalTag, NoAwaitTag, google::cloud::cpp::compute::network_firewall_policies::v1:: RemoveRuleRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +NetworkFirewallPoliciesConnection::RemoveRule( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { return google::cloud::make_ready_future< StatusOr>( Status(StatusCode::kUnimplemented, "not implemented")); diff --git a/google/cloud/compute/network_firewall_policies/v1/network_firewall_policies_connection.h b/google/cloud/compute/network_firewall_policies/v1/network_firewall_policies_connection.h index 99e08a5ca5748..9def12347878e 100644 --- a/google/cloud/compute/network_firewall_policies/v1/network_firewall_policies_connection.h +++ b/google/cloud/compute/network_firewall_policies/v1/network_firewall_policies_connection.h @@ -23,8 +23,10 @@ #include "google/cloud/compute/network_firewall_policies/v1/internal/network_firewall_policies_retry_traits.h" #include "google/cloud/compute/network_firewall_policies/v1/network_firewall_policies_connection_idempotency_policy.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/internal/retry_policy_impl.h" +#include "google/cloud/no_await_tag.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" #include "google/cloud/status_or.h" @@ -199,18 +201,55 @@ class NetworkFirewallPoliciesConnection { AddAssociation(google::cloud::cpp::compute::network_firewall_policies::v1:: AddAssociationRequest const& request); + virtual StatusOr AddAssociation( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::network_firewall_policies::v1:: + AddAssociationRequest const& request); + + virtual future> + AddAssociation(ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual future> AddRule( google::cloud::cpp::compute::network_firewall_policies::v1:: AddRuleRequest const& request); + virtual StatusOr AddRule( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::network_firewall_policies::v1:: + AddRuleRequest const& request); + + virtual future> AddRule( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual future> CloneRules(google::cloud::cpp::compute::network_firewall_policies::v1:: CloneRulesRequest const& request); + virtual StatusOr CloneRules( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::network_firewall_policies::v1:: + CloneRulesRequest const& request); + + virtual future> + CloneRules(ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual future> DeleteFirewallPolicy(google::cloud::cpp::compute::network_firewall_policies:: v1::DeleteFirewallPolicyRequest const& request); + virtual StatusOr + DeleteFirewallPolicy(ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::network_firewall_policies:: + v1::DeleteFirewallPolicyRequest const& request); + + virtual future> + DeleteFirewallPolicy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual StatusOr GetFirewallPolicy(google::cloud::cpp::compute::network_firewall_policies::v1:: GetFirewallPolicyRequest const& request); @@ -231,6 +270,16 @@ class NetworkFirewallPoliciesConnection { InsertFirewallPolicy(google::cloud::cpp::compute::network_firewall_policies:: v1::InsertFirewallPolicyRequest const& request); + virtual StatusOr + InsertFirewallPolicy(ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::network_firewall_policies:: + v1::InsertFirewallPolicyRequest const& request); + + virtual future> + InsertFirewallPolicy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual StreamRange ListNetworkFirewallPolicies( google::cloud::cpp::compute::network_firewall_policies::v1:: @@ -240,18 +289,56 @@ class NetworkFirewallPoliciesConnection { PatchFirewallPolicy(google::cloud::cpp::compute::network_firewall_policies:: v1::PatchFirewallPolicyRequest const& request); + virtual StatusOr + PatchFirewallPolicy(ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::network_firewall_policies:: + v1::PatchFirewallPolicyRequest const& request); + + virtual future> + PatchFirewallPolicy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual future> PatchRule(google::cloud::cpp::compute::network_firewall_policies::v1:: PatchRuleRequest const& request); + virtual StatusOr PatchRule( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::network_firewall_policies::v1:: + PatchRuleRequest const& request); + + virtual future> + PatchRule(ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual future> RemoveAssociation(google::cloud::cpp::compute::network_firewall_policies::v1:: RemoveAssociationRequest const& request); + virtual StatusOr + RemoveAssociation(ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::network_firewall_policies::v1:: + RemoveAssociationRequest const& request); + + virtual future> + RemoveAssociation( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual future> RemoveRule(google::cloud::cpp::compute::network_firewall_policies::v1:: RemoveRuleRequest const& request); + virtual StatusOr RemoveRule( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::network_firewall_policies::v1:: + RemoveRuleRequest const& request); + + virtual future> + RemoveRule(ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual StatusOr SetIamPolicy( google::cloud::cpp::compute::network_firewall_policies::v1:: SetIamPolicyRequest const& request); diff --git a/google/cloud/compute/networks/v1/internal/networks_rest_connection_impl.cc b/google/cloud/compute/networks/v1/internal/networks_rest_connection_impl.cc index ad52003e8d096..dac3dda60a2a5 100644 --- a/google/cloud/compute/networks/v1/internal/networks_rest_connection_impl.cc +++ b/google/cloud/compute/networks/v1/internal/networks_rest_connection_impl.cc @@ -23,6 +23,7 @@ #include "google/cloud/internal/async_rest_long_running_operation_custom.h" #include "google/cloud/internal/extract_long_running_result.h" #include "google/cloud/internal/pagination_range.h" +#include "google/cloud/internal/rest_lro_helpers.h" #include "google/cloud/internal/rest_retry_loop.h" #include "google/cloud/rest_options.h" #include @@ -101,6 +102,77 @@ NetworksRestConnectionImpl::AddPeering( }); } +StatusOr +NetworksRestConnectionImpl::AddPeering( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::networks::v1::AddPeeringRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->AddPeering(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::networks::v1::AddPeeringRequest const& + request) { + return stub_->AddPeering(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +NetworksRestConnectionImpl::AddPeering( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::global_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }); +} + future> NetworksRestConnectionImpl::DeleteNetwork( google::cloud::cpp::compute::networks::v1::DeleteNetworkRequest const& @@ -160,6 +232,78 @@ NetworksRestConnectionImpl::DeleteNetwork( }); } +StatusOr +NetworksRestConnectionImpl::DeleteNetwork( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::networks::v1::DeleteNetworkRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteNetwork(request), + [this]( + rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::networks::v1::DeleteNetworkRequest const& + request) { + return stub_->DeleteNetwork(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +NetworksRestConnectionImpl::DeleteNetwork( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::global_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }); +} + StatusOr NetworksRestConnectionImpl::GetNetwork( google::cloud::cpp::compute::networks::v1::GetNetworkRequest const& @@ -251,6 +395,78 @@ NetworksRestConnectionImpl::InsertNetwork( }); } +StatusOr +NetworksRestConnectionImpl::InsertNetwork( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::networks::v1::InsertNetworkRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->InsertNetwork(request), + [this]( + rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::networks::v1::InsertNetworkRequest const& + request) { + return stub_->InsertNetwork(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +NetworksRestConnectionImpl::InsertNetwork( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::global_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }); +} + StreamRange NetworksRestConnectionImpl::ListNetworks( google::cloud::cpp::compute::networks::v1::ListNetworksRequest request) { @@ -382,6 +598,78 @@ NetworksRestConnectionImpl::PatchNetwork( }); } +StatusOr +NetworksRestConnectionImpl::PatchNetwork( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::networks::v1::PatchNetworkRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->PatchNetwork(request), + [this]( + rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::networks::v1::PatchNetworkRequest const& + request) { + return stub_->PatchNetwork(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +NetworksRestConnectionImpl::PatchNetwork( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::global_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }); +} + future> NetworksRestConnectionImpl::RemovePeering( google::cloud::cpp::compute::networks::v1::RemovePeeringRequest const& @@ -441,6 +729,78 @@ NetworksRestConnectionImpl::RemovePeering( }); } +StatusOr +NetworksRestConnectionImpl::RemovePeering( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::networks::v1::RemovePeeringRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->RemovePeering(request), + [this]( + rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::networks::v1::RemovePeeringRequest const& + request) { + return stub_->RemovePeering(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +NetworksRestConnectionImpl::RemovePeering( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::global_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }); +} + future> NetworksRestConnectionImpl::SwitchToCustomMode( google::cloud::cpp::compute::networks::v1::SwitchToCustomModeRequest const& @@ -499,6 +859,77 @@ NetworksRestConnectionImpl::SwitchToCustomMode( }); } +StatusOr +NetworksRestConnectionImpl::SwitchToCustomMode( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::networks::v1::SwitchToCustomModeRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->SwitchToCustomMode(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::networks::v1:: + SwitchToCustomModeRequest const& request) { + return stub_->SwitchToCustomMode(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +NetworksRestConnectionImpl::SwitchToCustomMode( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::global_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }); +} + future> NetworksRestConnectionImpl::UpdatePeering( google::cloud::cpp::compute::networks::v1::UpdatePeeringRequest const& @@ -558,6 +989,78 @@ NetworksRestConnectionImpl::UpdatePeering( }); } +StatusOr +NetworksRestConnectionImpl::UpdatePeering( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::networks::v1::UpdatePeeringRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UpdatePeering(request), + [this]( + rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::networks::v1::UpdatePeeringRequest const& + request) { + return stub_->UpdatePeering(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +NetworksRestConnectionImpl::UpdatePeering( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::global_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace compute_networks_v1_internal } // namespace cloud diff --git a/google/cloud/compute/networks/v1/internal/networks_rest_connection_impl.h b/google/cloud/compute/networks/v1/internal/networks_rest_connection_impl.h index fd32ef6c0dddc..d64bfbe79e78f 100644 --- a/google/cloud/compute/networks/v1/internal/networks_rest_connection_impl.h +++ b/google/cloud/compute/networks/v1/internal/networks_rest_connection_impl.h @@ -54,10 +54,28 @@ class NetworksRestConnectionImpl google::cloud::cpp::compute::networks::v1::AddPeeringRequest const& request) override; + StatusOr AddPeering( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::networks::v1::AddPeeringRequest const& + request) override; + + future> AddPeering( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> DeleteNetwork( google::cloud::cpp::compute::networks::v1::DeleteNetworkRequest const& request) override; + StatusOr DeleteNetwork( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::networks::v1::DeleteNetworkRequest const& + request) override; + + future> DeleteNetwork( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StatusOr GetNetwork( google::cloud::cpp::compute::networks::v1::GetNetworkRequest const& request) override; @@ -72,6 +90,15 @@ class NetworksRestConnectionImpl google::cloud::cpp::compute::networks::v1::InsertNetworkRequest const& request) override; + StatusOr InsertNetwork( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::networks::v1::InsertNetworkRequest const& + request) override; + + future> InsertNetwork( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StreamRange ListNetworks( google::cloud::cpp::compute::networks::v1::ListNetworksRequest request) override; @@ -85,18 +112,55 @@ class NetworksRestConnectionImpl google::cloud::cpp::compute::networks::v1::PatchNetworkRequest const& request) override; + StatusOr PatchNetwork( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::networks::v1::PatchNetworkRequest const& + request) override; + + future> PatchNetwork( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> RemovePeering( google::cloud::cpp::compute::networks::v1::RemovePeeringRequest const& request) override; + StatusOr RemovePeering( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::networks::v1::RemovePeeringRequest const& + request) override; + + future> RemovePeering( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> SwitchToCustomMode(google::cloud::cpp::compute::networks::v1:: SwitchToCustomModeRequest const& request) override; + StatusOr SwitchToCustomMode( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::networks::v1:: + SwitchToCustomModeRequest const& request) override; + + future> + SwitchToCustomMode( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> UpdatePeering( google::cloud::cpp::compute::networks::v1::UpdatePeeringRequest const& request) override; + StatusOr UpdatePeering( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::networks::v1::UpdatePeeringRequest const& + request) override; + + future> UpdatePeering( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + private: static std::unique_ptr retry_policy( Options const& options) { diff --git a/google/cloud/compute/networks/v1/internal/networks_tracing_connection.cc b/google/cloud/compute/networks/v1/internal/networks_tracing_connection.cc index 0fe9cbeda10ef..3a6536169801c 100644 --- a/google/cloud/compute/networks/v1/internal/networks_tracing_connection.cc +++ b/google/cloud/compute/networks/v1/internal/networks_tracing_connection.cc @@ -43,6 +43,29 @@ NetworksTracingConnection::AddPeering( return internal::EndSpan(std::move(span), child_->AddPeering(request)); } +StatusOr +NetworksTracingConnection::AddPeering( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::networks::v1::AddPeeringRequest const& + request) { + auto span = + internal::MakeSpan("compute_networks_v1::NetworksConnection::AddPeering"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->AddPeering(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +NetworksTracingConnection::AddPeering( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = + internal::MakeSpan("compute_networks_v1::NetworksConnection::AddPeering"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->AddPeering(ExperimentalTag{}, operation)); +} + future> NetworksTracingConnection::DeleteNetwork( google::cloud::cpp::compute::networks::v1::DeleteNetworkRequest const& @@ -53,6 +76,29 @@ NetworksTracingConnection::DeleteNetwork( return internal::EndSpan(std::move(span), child_->DeleteNetwork(request)); } +StatusOr +NetworksTracingConnection::DeleteNetwork( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::networks::v1::DeleteNetworkRequest const& + request) { + auto span = internal::MakeSpan( + "compute_networks_v1::NetworksConnection::DeleteNetwork"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->DeleteNetwork(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +NetworksTracingConnection::DeleteNetwork( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_networks_v1::NetworksConnection::DeleteNetwork"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->DeleteNetwork(ExperimentalTag{}, operation)); +} + StatusOr NetworksTracingConnection::GetNetwork( google::cloud::cpp::compute::networks::v1::GetNetworkRequest const& @@ -83,6 +129,29 @@ NetworksTracingConnection::InsertNetwork( return internal::EndSpan(std::move(span), child_->InsertNetwork(request)); } +StatusOr +NetworksTracingConnection::InsertNetwork( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::networks::v1::InsertNetworkRequest const& + request) { + auto span = internal::MakeSpan( + "compute_networks_v1::NetworksConnection::InsertNetwork"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->InsertNetwork(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +NetworksTracingConnection::InsertNetwork( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_networks_v1::NetworksConnection::InsertNetwork"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->InsertNetwork(ExperimentalTag{}, operation)); +} + StreamRange NetworksTracingConnection::ListNetworks( google::cloud::cpp::compute::networks::v1::ListNetworksRequest request) { @@ -117,6 +186,29 @@ NetworksTracingConnection::PatchNetwork( return internal::EndSpan(std::move(span), child_->PatchNetwork(request)); } +StatusOr +NetworksTracingConnection::PatchNetwork( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::networks::v1::PatchNetworkRequest const& + request) { + auto span = internal::MakeSpan( + "compute_networks_v1::NetworksConnection::PatchNetwork"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->PatchNetwork(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +NetworksTracingConnection::PatchNetwork( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_networks_v1::NetworksConnection::PatchNetwork"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->PatchNetwork(ExperimentalTag{}, operation)); +} + future> NetworksTracingConnection::RemovePeering( google::cloud::cpp::compute::networks::v1::RemovePeeringRequest const& @@ -127,6 +219,29 @@ NetworksTracingConnection::RemovePeering( return internal::EndSpan(std::move(span), child_->RemovePeering(request)); } +StatusOr +NetworksTracingConnection::RemovePeering( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::networks::v1::RemovePeeringRequest const& + request) { + auto span = internal::MakeSpan( + "compute_networks_v1::NetworksConnection::RemovePeering"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->RemovePeering(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +NetworksTracingConnection::RemovePeering( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_networks_v1::NetworksConnection::RemovePeering"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->RemovePeering(ExperimentalTag{}, operation)); +} + future> NetworksTracingConnection::SwitchToCustomMode( google::cloud::cpp::compute::networks::v1::SwitchToCustomModeRequest const& @@ -138,6 +253,30 @@ NetworksTracingConnection::SwitchToCustomMode( child_->SwitchToCustomMode(request)); } +StatusOr +NetworksTracingConnection::SwitchToCustomMode( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::networks::v1::SwitchToCustomModeRequest const& + request) { + auto span = internal::MakeSpan( + "compute_networks_v1::NetworksConnection::SwitchToCustomMode"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->SwitchToCustomMode(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +NetworksTracingConnection::SwitchToCustomMode( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_networks_v1::NetworksConnection::SwitchToCustomMode"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->SwitchToCustomMode( + ExperimentalTag{}, operation)); +} + future> NetworksTracingConnection::UpdatePeering( google::cloud::cpp::compute::networks::v1::UpdatePeeringRequest const& @@ -148,6 +287,29 @@ NetworksTracingConnection::UpdatePeering( return internal::EndSpan(std::move(span), child_->UpdatePeering(request)); } +StatusOr +NetworksTracingConnection::UpdatePeering( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::networks::v1::UpdatePeeringRequest const& + request) { + auto span = internal::MakeSpan( + "compute_networks_v1::NetworksConnection::UpdatePeering"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->UpdatePeering(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +NetworksTracingConnection::UpdatePeering( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_networks_v1::NetworksConnection::UpdatePeering"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->UpdatePeering(ExperimentalTag{}, operation)); +} + #endif // GOOGLE_CLOUD_CPP_HAVE_OPENTELEMETRY std::shared_ptr diff --git a/google/cloud/compute/networks/v1/internal/networks_tracing_connection.h b/google/cloud/compute/networks/v1/internal/networks_tracing_connection.h index 9869434dd6b7c..a26b24207b7ed 100644 --- a/google/cloud/compute/networks/v1/internal/networks_tracing_connection.h +++ b/google/cloud/compute/networks/v1/internal/networks_tracing_connection.h @@ -44,10 +44,28 @@ class NetworksTracingConnection google::cloud::cpp::compute::networks::v1::AddPeeringRequest const& request) override; + StatusOr AddPeering( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::networks::v1::AddPeeringRequest const& + request) override; + + future> AddPeering( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> DeleteNetwork( google::cloud::cpp::compute::networks::v1::DeleteNetworkRequest const& request) override; + StatusOr DeleteNetwork( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::networks::v1::DeleteNetworkRequest const& + request) override; + + future> DeleteNetwork( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StatusOr GetNetwork( google::cloud::cpp::compute::networks::v1::GetNetworkRequest const& request) override; @@ -62,6 +80,15 @@ class NetworksTracingConnection google::cloud::cpp::compute::networks::v1::InsertNetworkRequest const& request) override; + StatusOr InsertNetwork( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::networks::v1::InsertNetworkRequest const& + request) override; + + future> InsertNetwork( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StreamRange ListNetworks( google::cloud::cpp::compute::networks::v1::ListNetworksRequest request) override; @@ -75,18 +102,55 @@ class NetworksTracingConnection google::cloud::cpp::compute::networks::v1::PatchNetworkRequest const& request) override; + StatusOr PatchNetwork( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::networks::v1::PatchNetworkRequest const& + request) override; + + future> PatchNetwork( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> RemovePeering( google::cloud::cpp::compute::networks::v1::RemovePeeringRequest const& request) override; + StatusOr RemovePeering( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::networks::v1::RemovePeeringRequest const& + request) override; + + future> RemovePeering( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> SwitchToCustomMode(google::cloud::cpp::compute::networks::v1:: SwitchToCustomModeRequest const& request) override; + StatusOr SwitchToCustomMode( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::networks::v1:: + SwitchToCustomModeRequest const& request) override; + + future> + SwitchToCustomMode( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> UpdatePeering( google::cloud::cpp::compute::networks::v1::UpdatePeeringRequest const& request) override; + StatusOr UpdatePeering( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::networks::v1::UpdatePeeringRequest const& + request) override; + + future> UpdatePeering( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + private: std::shared_ptr child_; }; diff --git a/google/cloud/compute/networks/v1/mocks/mock_networks_connection.h b/google/cloud/compute/networks/v1/mocks/mock_networks_connection.h index 4cc2578cfcf2c..f2af63b139bd7 100644 --- a/google/cloud/compute/networks/v1/mocks/mock_networks_connection.h +++ b/google/cloud/compute/networks/v1/mocks/mock_networks_connection.h @@ -52,6 +52,19 @@ class MockNetworksConnection : public compute_networks_v1::NetworksConnection { request), (override)); + MOCK_METHOD( + StatusOr, AddPeering, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::networks::v1::AddPeeringRequest const& + request), + (override)); + + MOCK_METHOD(future>, + AddPeering, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteNetwork, @@ -59,6 +72,19 @@ class MockNetworksConnection : public compute_networks_v1::NetworksConnection { request), (override)); + MOCK_METHOD( + StatusOr, DeleteNetwork, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::networks::v1::DeleteNetworkRequest const& + request), + (override)); + + MOCK_METHOD(future>, + DeleteNetwork, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr, GetNetwork, (google::cloud::cpp::compute::networks::v1::GetNetworkRequest const& @@ -79,6 +105,19 @@ class MockNetworksConnection : public compute_networks_v1::NetworksConnection { request), (override)); + MOCK_METHOD( + StatusOr, InsertNetwork, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::networks::v1::InsertNetworkRequest const& + request), + (override)); + + MOCK_METHOD(future>, + InsertNetwork, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD( (StreamRange), ListNetworks, (google::cloud::cpp::compute::networks::v1::ListNetworksRequest request), @@ -98,6 +137,19 @@ class MockNetworksConnection : public compute_networks_v1::NetworksConnection { request), (override)); + MOCK_METHOD( + StatusOr, PatchNetwork, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::networks::v1::PatchNetworkRequest const& + request), + (override)); + + MOCK_METHOD(future>, + PatchNetwork, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD( future>, RemovePeering, @@ -105,18 +157,57 @@ class MockNetworksConnection : public compute_networks_v1::NetworksConnection { request), (override)); + MOCK_METHOD( + StatusOr, RemovePeering, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::networks::v1::RemovePeeringRequest const& + request), + (override)); + + MOCK_METHOD(future>, + RemovePeering, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD(future>, SwitchToCustomMode, (google::cloud::cpp::compute::networks::v1:: SwitchToCustomModeRequest const& request), (override)); + MOCK_METHOD(StatusOr, + SwitchToCustomMode, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::networks::v1:: + SwitchToCustomModeRequest const& request), + (override)); + + MOCK_METHOD(future>, + SwitchToCustomMode, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD( future>, UpdatePeering, (google::cloud::cpp::compute::networks::v1::UpdatePeeringRequest const& request), (override)); + + MOCK_METHOD( + StatusOr, UpdatePeering, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::networks::v1::UpdatePeeringRequest const& + request), + (override)); + + MOCK_METHOD(future>, + UpdatePeering, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); }; GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END diff --git a/google/cloud/compute/networks/v1/networks_connection.cc b/google/cloud/compute/networks/v1/networks_connection.cc index 55b54e763cee5..483ef180fd96c 100644 --- a/google/cloud/compute/networks/v1/networks_connection.cc +++ b/google/cloud/compute/networks/v1/networks_connection.cc @@ -44,6 +44,22 @@ NetworksConnection::AddPeering( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +NetworksConnection::AddPeering( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::networks::v1::AddPeeringRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +NetworksConnection::AddPeering( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> NetworksConnection::DeleteNetwork( google::cloud::cpp::compute::networks::v1::DeleteNetworkRequest const&) { @@ -52,6 +68,22 @@ NetworksConnection::DeleteNetwork( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +NetworksConnection::DeleteNetwork( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::networks::v1::DeleteNetworkRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +NetworksConnection::DeleteNetwork( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr NetworksConnection::GetNetwork( google::cloud::cpp::compute::networks::v1::GetNetworkRequest const&) { @@ -73,6 +105,22 @@ NetworksConnection::InsertNetwork( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +NetworksConnection::InsertNetwork( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::networks::v1::InsertNetworkRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +NetworksConnection::InsertNetwork( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StreamRange NetworksConnection::ListNetworks( google::cloud::cpp::compute::networks::v1:: @@ -97,6 +145,22 @@ NetworksConnection::PatchNetwork( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +NetworksConnection::PatchNetwork( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::networks::v1::PatchNetworkRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +NetworksConnection::PatchNetwork( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> NetworksConnection::RemovePeering( google::cloud::cpp::compute::networks::v1::RemovePeeringRequest const&) { @@ -105,10 +169,43 @@ NetworksConnection::RemovePeering( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +NetworksConnection::RemovePeering( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::networks::v1::RemovePeeringRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> +NetworksConnection::RemovePeering( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +NetworksConnection::SwitchToCustomMode( + google::cloud::cpp::compute::networks::v1:: + SwitchToCustomModeRequest const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +StatusOr NetworksConnection::SwitchToCustomMode( + ExperimentalTag, NoAwaitTag, google::cloud::cpp::compute::networks::v1:: SwitchToCustomModeRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +NetworksConnection::SwitchToCustomMode( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { return google::cloud::make_ready_future< StatusOr>( Status(StatusCode::kUnimplemented, "not implemented")); @@ -122,6 +219,22 @@ NetworksConnection::UpdatePeering( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +NetworksConnection::UpdatePeering( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::networks::v1::UpdatePeeringRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +NetworksConnection::UpdatePeering( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace compute_networks_v1 } // namespace cloud diff --git a/google/cloud/compute/networks/v1/networks_connection.h b/google/cloud/compute/networks/v1/networks_connection.h index be2ed4d91d472..69e86056c3394 100644 --- a/google/cloud/compute/networks/v1/networks_connection.h +++ b/google/cloud/compute/networks/v1/networks_connection.h @@ -22,8 +22,10 @@ #include "google/cloud/compute/networks/v1/internal/networks_retry_traits.h" #include "google/cloud/compute/networks/v1/networks_connection_idempotency_policy.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/internal/retry_policy_impl.h" +#include "google/cloud/no_await_tag.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" #include "google/cloud/status_or.h" @@ -185,11 +187,29 @@ class NetworksConnection { AddPeering(google::cloud::cpp::compute::networks::v1::AddPeeringRequest const& request); + virtual StatusOr AddPeering( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::networks::v1::AddPeeringRequest const& + request); + + virtual future> + AddPeering(ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual future> DeleteNetwork( google::cloud::cpp::compute::networks::v1::DeleteNetworkRequest const& request); + virtual StatusOr DeleteNetwork( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::networks::v1::DeleteNetworkRequest const& + request); + + virtual future> + DeleteNetwork(ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual StatusOr GetNetwork( google::cloud::cpp::compute::networks::v1::GetNetworkRequest const& request); @@ -204,6 +224,15 @@ class NetworksConnection { google::cloud::cpp::compute::networks::v1::InsertNetworkRequest const& request); + virtual StatusOr InsertNetwork( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::networks::v1::InsertNetworkRequest const& + request); + + virtual future> + InsertNetwork(ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual StreamRange ListNetworks( google::cloud::cpp::compute::networks::v1::ListNetworksRequest request); @@ -217,19 +246,56 @@ class NetworksConnection { google::cloud::cpp::compute::networks::v1::PatchNetworkRequest const& request); + virtual StatusOr PatchNetwork( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::networks::v1::PatchNetworkRequest const& + request); + + virtual future> + PatchNetwork(ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual future> RemovePeering( google::cloud::cpp::compute::networks::v1::RemovePeeringRequest const& request); + virtual StatusOr RemovePeering( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::networks::v1::RemovePeeringRequest const& + request); + + virtual future> + RemovePeering(ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual future> SwitchToCustomMode(google::cloud::cpp::compute::networks::v1:: SwitchToCustomModeRequest const& request); + virtual StatusOr + SwitchToCustomMode(ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::networks::v1:: + SwitchToCustomModeRequest const& request); + + virtual future> + SwitchToCustomMode( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual future> UpdatePeering( google::cloud::cpp::compute::networks::v1::UpdatePeeringRequest const& request); + + virtual StatusOr UpdatePeering( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::networks::v1::UpdatePeeringRequest const& + request); + + virtual future> + UpdatePeering(ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); }; GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END diff --git a/google/cloud/compute/node_groups/v1/internal/node_groups_rest_connection_impl.cc b/google/cloud/compute/node_groups/v1/internal/node_groups_rest_connection_impl.cc index 99fef2f15e679..ce26eac0f412a 100644 --- a/google/cloud/compute/node_groups/v1/internal/node_groups_rest_connection_impl.cc +++ b/google/cloud/compute/node_groups/v1/internal/node_groups_rest_connection_impl.cc @@ -23,6 +23,7 @@ #include "google/cloud/internal/async_rest_long_running_operation_custom.h" #include "google/cloud/internal/extract_long_running_result.h" #include "google/cloud/internal/pagination_range.h" +#include "google/cloud/internal/rest_lro_helpers.h" #include "google/cloud/internal/rest_retry_loop.h" #include "google/cloud/rest_options.h" #include @@ -103,6 +104,80 @@ NodeGroupsRestConnectionImpl::AddNodes( }); } +StatusOr +NodeGroupsRestConnectionImpl::AddNodes( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::node_groups::v1::AddNodesRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->AddNodes(request), + [this]( + rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::node_groups::v1::AddNodesRequest const& + request) { + return stub_->AddNodes(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +NodeGroupsRestConnectionImpl::AddNodes( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::zone_operations::v1::DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::zone_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::zone_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation]( + std::string const&, + google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest& + r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_zone(info.zone); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::zone_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_zone(info.zone); + r.set_operation(info.operation); + }); +} + StreamRange> NodeGroupsRestConnectionImpl::AggregatedListNodeGroups( @@ -204,6 +279,79 @@ NodeGroupsRestConnectionImpl::DeleteNodeGroup( }); } +StatusOr +NodeGroupsRestConnectionImpl::DeleteNodeGroup( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::node_groups::v1::DeleteNodeGroupRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteNodeGroup(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::node_groups::v1:: + DeleteNodeGroupRequest const& request) { + return stub_->DeleteNodeGroup(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +NodeGroupsRestConnectionImpl::DeleteNodeGroup( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::zone_operations::v1::DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::zone_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::zone_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation]( + std::string const&, + google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest& + r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_zone(info.zone); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::zone_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_zone(info.zone); + r.set_operation(info.operation); + }); +} + future> NodeGroupsRestConnectionImpl::DeleteNodes( google::cloud::cpp::compute::node_groups::v1::DeleteNodesRequest const& @@ -264,6 +412,79 @@ NodeGroupsRestConnectionImpl::DeleteNodes( }); } +StatusOr +NodeGroupsRestConnectionImpl::DeleteNodes( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::node_groups::v1::DeleteNodesRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteNodes(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::node_groups::v1:: + DeleteNodesRequest const& request) { + return stub_->DeleteNodes(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +NodeGroupsRestConnectionImpl::DeleteNodes( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::zone_operations::v1::DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::zone_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::zone_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation]( + std::string const&, + google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest& + r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_zone(info.zone); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::zone_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_zone(info.zone); + r.set_operation(info.operation); + }); +} + StatusOr NodeGroupsRestConnectionImpl::GetNodeGroup( google::cloud::cpp::compute::node_groups::v1::GetNodeGroupRequest const& @@ -356,6 +577,79 @@ NodeGroupsRestConnectionImpl::InsertNodeGroup( }); } +StatusOr +NodeGroupsRestConnectionImpl::InsertNodeGroup( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::node_groups::v1::InsertNodeGroupRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->InsertNodeGroup(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::node_groups::v1:: + InsertNodeGroupRequest const& request) { + return stub_->InsertNodeGroup(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +NodeGroupsRestConnectionImpl::InsertNodeGroup( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::zone_operations::v1::DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::zone_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::zone_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation]( + std::string const&, + google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest& + r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_zone(info.zone); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::zone_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_zone(info.zone); + r.set_operation(info.operation); + }); +} + StreamRange NodeGroupsRestConnectionImpl::ListNodeGroups( google::cloud::cpp::compute::node_groups::v1::ListNodeGroupsRequest @@ -488,6 +782,79 @@ NodeGroupsRestConnectionImpl::PatchNodeGroup( }); } +StatusOr +NodeGroupsRestConnectionImpl::PatchNodeGroup( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::node_groups::v1::PatchNodeGroupRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->PatchNodeGroup(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::node_groups::v1:: + PatchNodeGroupRequest const& request) { + return stub_->PatchNodeGroup(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +NodeGroupsRestConnectionImpl::PatchNodeGroup( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::zone_operations::v1::DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::zone_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::zone_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation]( + std::string const&, + google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest& + r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_zone(info.zone); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::zone_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_zone(info.zone); + r.set_operation(info.operation); + }); +} + future> NodeGroupsRestConnectionImpl::PerformMaintenance( google::cloud::cpp::compute::node_groups::v1:: @@ -548,6 +915,79 @@ NodeGroupsRestConnectionImpl::PerformMaintenance( }); } +StatusOr +NodeGroupsRestConnectionImpl::PerformMaintenance( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::node_groups::v1:: + PerformMaintenanceRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->PerformMaintenance(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::node_groups::v1:: + PerformMaintenanceRequest const& request) { + return stub_->PerformMaintenance(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +NodeGroupsRestConnectionImpl::PerformMaintenance( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::zone_operations::v1::DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::zone_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::zone_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation]( + std::string const&, + google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest& + r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_zone(info.zone); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::zone_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_zone(info.zone); + r.set_operation(info.operation); + }); +} + StatusOr NodeGroupsRestConnectionImpl::SetIamPolicy( google::cloud::cpp::compute::node_groups::v1::SetIamPolicyRequest const& @@ -624,6 +1064,79 @@ NodeGroupsRestConnectionImpl::SetNodeTemplate( }); } +StatusOr +NodeGroupsRestConnectionImpl::SetNodeTemplate( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::node_groups::v1::SetNodeTemplateRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->SetNodeTemplate(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::node_groups::v1:: + SetNodeTemplateRequest const& request) { + return stub_->SetNodeTemplate(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +NodeGroupsRestConnectionImpl::SetNodeTemplate( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::zone_operations::v1::DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::zone_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::zone_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation]( + std::string const&, + google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest& + r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_zone(info.zone); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::zone_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_zone(info.zone); + r.set_operation(info.operation); + }); +} + future> NodeGroupsRestConnectionImpl::SimulateMaintenanceEvent( google::cloud::cpp::compute::node_groups::v1:: @@ -684,6 +1197,79 @@ NodeGroupsRestConnectionImpl::SimulateMaintenanceEvent( }); } +StatusOr +NodeGroupsRestConnectionImpl::SimulateMaintenanceEvent( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::node_groups::v1:: + SimulateMaintenanceEventRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->SimulateMaintenanceEvent(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::node_groups::v1:: + SimulateMaintenanceEventRequest const& request) { + return stub_->SimulateMaintenanceEvent(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +NodeGroupsRestConnectionImpl::SimulateMaintenanceEvent( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::zone_operations::v1::DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::zone_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::zone_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation]( + std::string const&, + google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest& + r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_zone(info.zone); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::zone_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_zone(info.zone); + r.set_operation(info.operation); + }); +} + StatusOr NodeGroupsRestConnectionImpl::TestIamPermissions( google::cloud::cpp::compute::node_groups::v1:: diff --git a/google/cloud/compute/node_groups/v1/internal/node_groups_rest_connection_impl.h b/google/cloud/compute/node_groups/v1/internal/node_groups_rest_connection_impl.h index 5c68df55f9fc2..4e6fc18d2dd2c 100644 --- a/google/cloud/compute/node_groups/v1/internal/node_groups_rest_connection_impl.h +++ b/google/cloud/compute/node_groups/v1/internal/node_groups_rest_connection_impl.h @@ -54,6 +54,15 @@ class NodeGroupsRestConnectionImpl google::cloud::cpp::compute::node_groups::v1::AddNodesRequest const& request) override; + StatusOr AddNodes( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::node_groups::v1::AddNodesRequest const& + request) override; + + future> AddNodes( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StreamRange> AggregatedListNodeGroups( @@ -64,10 +73,28 @@ class NodeGroupsRestConnectionImpl google::cloud::cpp::compute::node_groups::v1:: DeleteNodeGroupRequest const& request) override; + StatusOr DeleteNodeGroup( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::node_groups::v1:: + DeleteNodeGroupRequest const& request) override; + + future> DeleteNodeGroup( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> DeleteNodes( google::cloud::cpp::compute::node_groups::v1::DeleteNodesRequest const& request) override; + StatusOr DeleteNodes( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::node_groups::v1::DeleteNodesRequest const& + request) override; + + future> DeleteNodes( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StatusOr GetNodeGroup( google::cloud::cpp::compute::node_groups::v1::GetNodeGroupRequest const& request) override; @@ -80,6 +107,15 @@ class NodeGroupsRestConnectionImpl google::cloud::cpp::compute::node_groups::v1:: InsertNodeGroupRequest const& request) override; + StatusOr InsertNodeGroup( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::node_groups::v1:: + InsertNodeGroupRequest const& request) override; + + future> InsertNodeGroup( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StreamRange ListNodeGroups( google::cloud::cpp::compute::node_groups::v1::ListNodeGroupsRequest request) override; @@ -92,10 +128,29 @@ class NodeGroupsRestConnectionImpl google::cloud::cpp::compute::node_groups::v1::PatchNodeGroupRequest const& request) override; + StatusOr PatchNodeGroup( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::node_groups::v1::PatchNodeGroupRequest const& + request) override; + + future> PatchNodeGroup( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> PerformMaintenance(google::cloud::cpp::compute::node_groups::v1:: PerformMaintenanceRequest const& request) override; + StatusOr PerformMaintenance( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::node_groups::v1:: + PerformMaintenanceRequest const& request) override; + + future> + PerformMaintenance( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StatusOr SetIamPolicy( google::cloud::cpp::compute::node_groups::v1::SetIamPolicyRequest const& request) override; @@ -104,11 +159,30 @@ class NodeGroupsRestConnectionImpl google::cloud::cpp::compute::node_groups::v1:: SetNodeTemplateRequest const& request) override; + StatusOr SetNodeTemplate( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::node_groups::v1:: + SetNodeTemplateRequest const& request) override; + + future> SetNodeTemplate( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> SimulateMaintenanceEvent( google::cloud::cpp::compute::node_groups::v1:: SimulateMaintenanceEventRequest const& request) override; + StatusOr SimulateMaintenanceEvent( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::node_groups::v1:: + SimulateMaintenanceEventRequest const& request) override; + + future> + SimulateMaintenanceEvent( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StatusOr TestIamPermissions(google::cloud::cpp::compute::node_groups::v1:: TestIamPermissionsRequest const& request) override; diff --git a/google/cloud/compute/node_groups/v1/internal/node_groups_tracing_connection.cc b/google/cloud/compute/node_groups/v1/internal/node_groups_tracing_connection.cc index 327a6dd525b3f..d5510bbf44f07 100644 --- a/google/cloud/compute/node_groups/v1/internal/node_groups_tracing_connection.cc +++ b/google/cloud/compute/node_groups/v1/internal/node_groups_tracing_connection.cc @@ -43,6 +43,29 @@ NodeGroupsTracingConnection::AddNodes( return internal::EndSpan(std::move(span), child_->AddNodes(request)); } +StatusOr +NodeGroupsTracingConnection::AddNodes( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::node_groups::v1::AddNodesRequest const& + request) { + auto span = internal::MakeSpan( + "compute_node_groups_v1::NodeGroupsConnection::AddNodes"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->AddNodes(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +NodeGroupsTracingConnection::AddNodes( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_node_groups_v1::NodeGroupsConnection::AddNodes"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->AddNodes(ExperimentalTag{}, operation)); +} + StreamRange> NodeGroupsTracingConnection::AggregatedListNodeGroups( @@ -67,6 +90,29 @@ NodeGroupsTracingConnection::DeleteNodeGroup( return internal::EndSpan(std::move(span), child_->DeleteNodeGroup(request)); } +StatusOr +NodeGroupsTracingConnection::DeleteNodeGroup( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::node_groups::v1::DeleteNodeGroupRequest const& + request) { + auto span = internal::MakeSpan( + "compute_node_groups_v1::NodeGroupsConnection::DeleteNodeGroup"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->DeleteNodeGroup(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +NodeGroupsTracingConnection::DeleteNodeGroup( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_node_groups_v1::NodeGroupsConnection::DeleteNodeGroup"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->DeleteNodeGroup(ExperimentalTag{}, operation)); +} + future> NodeGroupsTracingConnection::DeleteNodes( google::cloud::cpp::compute::node_groups::v1::DeleteNodesRequest const& @@ -77,6 +123,29 @@ NodeGroupsTracingConnection::DeleteNodes( return internal::EndSpan(std::move(span), child_->DeleteNodes(request)); } +StatusOr +NodeGroupsTracingConnection::DeleteNodes( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::node_groups::v1::DeleteNodesRequest const& + request) { + auto span = internal::MakeSpan( + "compute_node_groups_v1::NodeGroupsConnection::DeleteNodes"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->DeleteNodes(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +NodeGroupsTracingConnection::DeleteNodes( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_node_groups_v1::NodeGroupsConnection::DeleteNodes"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->DeleteNodes(ExperimentalTag{}, operation)); +} + StatusOr NodeGroupsTracingConnection::GetNodeGroup( google::cloud::cpp::compute::node_groups::v1::GetNodeGroupRequest const& @@ -107,6 +176,29 @@ NodeGroupsTracingConnection::InsertNodeGroup( return internal::EndSpan(std::move(span), child_->InsertNodeGroup(request)); } +StatusOr +NodeGroupsTracingConnection::InsertNodeGroup( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::node_groups::v1::InsertNodeGroupRequest const& + request) { + auto span = internal::MakeSpan( + "compute_node_groups_v1::NodeGroupsConnection::InsertNodeGroup"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->InsertNodeGroup(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +NodeGroupsTracingConnection::InsertNodeGroup( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_node_groups_v1::NodeGroupsConnection::InsertNodeGroup"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->InsertNodeGroup(ExperimentalTag{}, operation)); +} + StreamRange NodeGroupsTracingConnection::ListNodeGroups( google::cloud::cpp::compute::node_groups::v1::ListNodeGroupsRequest @@ -142,6 +234,29 @@ NodeGroupsTracingConnection::PatchNodeGroup( return internal::EndSpan(std::move(span), child_->PatchNodeGroup(request)); } +StatusOr +NodeGroupsTracingConnection::PatchNodeGroup( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::node_groups::v1::PatchNodeGroupRequest const& + request) { + auto span = internal::MakeSpan( + "compute_node_groups_v1::NodeGroupsConnection::PatchNodeGroup"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->PatchNodeGroup(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +NodeGroupsTracingConnection::PatchNodeGroup( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_node_groups_v1::NodeGroupsConnection::PatchNodeGroup"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->PatchNodeGroup(ExperimentalTag{}, operation)); +} + future> NodeGroupsTracingConnection::PerformMaintenance( google::cloud::cpp::compute::node_groups::v1:: @@ -153,6 +268,30 @@ NodeGroupsTracingConnection::PerformMaintenance( child_->PerformMaintenance(request)); } +StatusOr +NodeGroupsTracingConnection::PerformMaintenance( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::node_groups::v1:: + PerformMaintenanceRequest const& request) { + auto span = internal::MakeSpan( + "compute_node_groups_v1::NodeGroupsConnection::PerformMaintenance"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->PerformMaintenance(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +NodeGroupsTracingConnection::PerformMaintenance( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_node_groups_v1::NodeGroupsConnection::PerformMaintenance"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->PerformMaintenance( + ExperimentalTag{}, operation)); +} + StatusOr NodeGroupsTracingConnection::SetIamPolicy( google::cloud::cpp::compute::node_groups::v1::SetIamPolicyRequest const& @@ -173,6 +312,29 @@ NodeGroupsTracingConnection::SetNodeTemplate( return internal::EndSpan(std::move(span), child_->SetNodeTemplate(request)); } +StatusOr +NodeGroupsTracingConnection::SetNodeTemplate( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::node_groups::v1::SetNodeTemplateRequest const& + request) { + auto span = internal::MakeSpan( + "compute_node_groups_v1::NodeGroupsConnection::SetNodeTemplate"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->SetNodeTemplate(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +NodeGroupsTracingConnection::SetNodeTemplate( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_node_groups_v1::NodeGroupsConnection::SetNodeTemplate"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->SetNodeTemplate(ExperimentalTag{}, operation)); +} + future> NodeGroupsTracingConnection::SimulateMaintenanceEvent( google::cloud::cpp::compute::node_groups::v1:: @@ -184,6 +346,30 @@ NodeGroupsTracingConnection::SimulateMaintenanceEvent( child_->SimulateMaintenanceEvent(request)); } +StatusOr +NodeGroupsTracingConnection::SimulateMaintenanceEvent( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::node_groups::v1:: + SimulateMaintenanceEventRequest const& request) { + auto span = internal::MakeSpan( + "compute_node_groups_v1::NodeGroupsConnection::SimulateMaintenanceEvent"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->SimulateMaintenanceEvent(ExperimentalTag{}, NoAwaitTag{}, + request)); +} + +future> +NodeGroupsTracingConnection::SimulateMaintenanceEvent( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_node_groups_v1::NodeGroupsConnection::SimulateMaintenanceEvent"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->SimulateMaintenanceEvent( + ExperimentalTag{}, operation)); +} + StatusOr NodeGroupsTracingConnection::TestIamPermissions( google::cloud::cpp::compute::node_groups::v1:: diff --git a/google/cloud/compute/node_groups/v1/internal/node_groups_tracing_connection.h b/google/cloud/compute/node_groups/v1/internal/node_groups_tracing_connection.h index 86d19b23abcf1..a4fd5c05a7d67 100644 --- a/google/cloud/compute/node_groups/v1/internal/node_groups_tracing_connection.h +++ b/google/cloud/compute/node_groups/v1/internal/node_groups_tracing_connection.h @@ -44,6 +44,15 @@ class NodeGroupsTracingConnection google::cloud::cpp::compute::node_groups::v1::AddNodesRequest const& request) override; + StatusOr AddNodes( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::node_groups::v1::AddNodesRequest const& + request) override; + + future> AddNodes( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StreamRange> AggregatedListNodeGroups( @@ -54,10 +63,28 @@ class NodeGroupsTracingConnection google::cloud::cpp::compute::node_groups::v1:: DeleteNodeGroupRequest const& request) override; + StatusOr DeleteNodeGroup( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::node_groups::v1:: + DeleteNodeGroupRequest const& request) override; + + future> DeleteNodeGroup( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> DeleteNodes( google::cloud::cpp::compute::node_groups::v1::DeleteNodesRequest const& request) override; + StatusOr DeleteNodes( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::node_groups::v1::DeleteNodesRequest const& + request) override; + + future> DeleteNodes( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StatusOr GetNodeGroup( google::cloud::cpp::compute::node_groups::v1::GetNodeGroupRequest const& request) override; @@ -70,6 +97,15 @@ class NodeGroupsTracingConnection google::cloud::cpp::compute::node_groups::v1:: InsertNodeGroupRequest const& request) override; + StatusOr InsertNodeGroup( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::node_groups::v1:: + InsertNodeGroupRequest const& request) override; + + future> InsertNodeGroup( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StreamRange ListNodeGroups( google::cloud::cpp::compute::node_groups::v1::ListNodeGroupsRequest request) override; @@ -82,10 +118,29 @@ class NodeGroupsTracingConnection google::cloud::cpp::compute::node_groups::v1::PatchNodeGroupRequest const& request) override; + StatusOr PatchNodeGroup( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::node_groups::v1::PatchNodeGroupRequest const& + request) override; + + future> PatchNodeGroup( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> PerformMaintenance(google::cloud::cpp::compute::node_groups::v1:: PerformMaintenanceRequest const& request) override; + StatusOr PerformMaintenance( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::node_groups::v1:: + PerformMaintenanceRequest const& request) override; + + future> + PerformMaintenance( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StatusOr SetIamPolicy( google::cloud::cpp::compute::node_groups::v1::SetIamPolicyRequest const& request) override; @@ -94,11 +149,30 @@ class NodeGroupsTracingConnection google::cloud::cpp::compute::node_groups::v1:: SetNodeTemplateRequest const& request) override; + StatusOr SetNodeTemplate( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::node_groups::v1:: + SetNodeTemplateRequest const& request) override; + + future> SetNodeTemplate( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> SimulateMaintenanceEvent( google::cloud::cpp::compute::node_groups::v1:: SimulateMaintenanceEventRequest const& request) override; + StatusOr SimulateMaintenanceEvent( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::node_groups::v1:: + SimulateMaintenanceEventRequest const& request) override; + + future> + SimulateMaintenanceEvent( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StatusOr TestIamPermissions(google::cloud::cpp::compute::node_groups::v1:: TestIamPermissionsRequest const& request) override; diff --git a/google/cloud/compute/node_groups/v1/mocks/mock_node_groups_connection.h b/google/cloud/compute/node_groups/v1/mocks/mock_node_groups_connection.h index 1737f8e300812..014f9fdeaa2cf 100644 --- a/google/cloud/compute/node_groups/v1/mocks/mock_node_groups_connection.h +++ b/google/cloud/compute/node_groups/v1/mocks/mock_node_groups_connection.h @@ -53,6 +53,19 @@ class MockNodeGroupsConnection request), (override)); + MOCK_METHOD( + StatusOr, AddNodes, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::node_groups::v1::AddNodesRequest const& + request), + (override)); + + MOCK_METHOD(future>, + AddNodes, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD( (StreamRange< std::pair, + DeleteNodeGroup, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::node_groups::v1:: + DeleteNodeGroupRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteNodeGroup, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteNodes, (google::cloud::cpp::compute::node_groups::v1::DeleteNodesRequest const& request), (override)); + MOCK_METHOD( + StatusOr, DeleteNodes, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::node_groups::v1::DeleteNodesRequest const& + request), + (override)); + + MOCK_METHOD(future>, + DeleteNodes, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr, GetNodeGroup, (google::cloud::cpp::compute::node_groups::v1::GetNodeGroupRequest const& @@ -92,6 +131,19 @@ class MockNodeGroupsConnection InsertNodeGroupRequest const& request), (override)); + MOCK_METHOD(StatusOr, + InsertNodeGroup, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::node_groups::v1:: + InsertNodeGroupRequest const& request), + (override)); + + MOCK_METHOD(future>, + InsertNodeGroup, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD( (StreamRange), ListNodeGroups, (google::cloud::cpp::compute::node_groups::v1::ListNodeGroupsRequest @@ -109,12 +161,38 @@ class MockNodeGroupsConnection PatchNodeGroupRequest const& request), (override)); + MOCK_METHOD(StatusOr, + PatchNodeGroup, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::node_groups::v1:: + PatchNodeGroupRequest const& request), + (override)); + + MOCK_METHOD(future>, + PatchNodeGroup, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD(future>, PerformMaintenance, (google::cloud::cpp::compute::node_groups::v1:: PerformMaintenanceRequest const& request), (override)); + MOCK_METHOD(StatusOr, + PerformMaintenance, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::node_groups::v1:: + PerformMaintenanceRequest const& request), + (override)); + + MOCK_METHOD(future>, + PerformMaintenance, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr, SetIamPolicy, (google::cloud::cpp::compute::node_groups::v1::SetIamPolicyRequest const& @@ -127,12 +205,38 @@ class MockNodeGroupsConnection SetNodeTemplateRequest const& request), (override)); + MOCK_METHOD(StatusOr, + SetNodeTemplate, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::node_groups::v1:: + SetNodeTemplateRequest const& request), + (override)); + + MOCK_METHOD(future>, + SetNodeTemplate, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD(future>, SimulateMaintenanceEvent, (google::cloud::cpp::compute::node_groups::v1:: SimulateMaintenanceEventRequest const& request), (override)); + MOCK_METHOD(StatusOr, + SimulateMaintenanceEvent, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::node_groups::v1:: + SimulateMaintenanceEventRequest const& request), + (override)); + + MOCK_METHOD(future>, + SimulateMaintenanceEvent, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr, TestIamPermissions, diff --git a/google/cloud/compute/node_groups/v1/node_groups_connection.cc b/google/cloud/compute/node_groups/v1/node_groups_connection.cc index 0f804a5a3e7e5..30f8e92123165 100644 --- a/google/cloud/compute/node_groups/v1/node_groups_connection.cc +++ b/google/cloud/compute/node_groups/v1/node_groups_connection.cc @@ -44,6 +44,22 @@ NodeGroupsConnection::AddNodes( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +NodeGroupsConnection::AddNodes( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::node_groups::v1::AddNodesRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +NodeGroupsConnection::AddNodes( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StreamRange> NodeGroupsConnection::AggregatedListNodeGroups( @@ -62,6 +78,22 @@ NodeGroupsConnection::DeleteNodeGroup(google::cloud::cpp::compute::node_groups:: Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +NodeGroupsConnection::DeleteNodeGroup(ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::node_groups:: + v1::DeleteNodeGroupRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +NodeGroupsConnection::DeleteNodeGroup( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> NodeGroupsConnection::DeleteNodes( google::cloud::cpp::compute::node_groups::v1::DeleteNodesRequest const&) { @@ -70,6 +102,22 @@ NodeGroupsConnection::DeleteNodes( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +NodeGroupsConnection::DeleteNodes( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::node_groups::v1::DeleteNodesRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +NodeGroupsConnection::DeleteNodes( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr NodeGroupsConnection::GetNodeGroup( google::cloud::cpp::compute::node_groups::v1::GetNodeGroupRequest const&) { @@ -90,6 +138,22 @@ NodeGroupsConnection::InsertNodeGroup(google::cloud::cpp::compute::node_groups:: Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +NodeGroupsConnection::InsertNodeGroup(ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::node_groups:: + v1::InsertNodeGroupRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +NodeGroupsConnection::InsertNodeGroup( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StreamRange NodeGroupsConnection::ListNodeGroups( google::cloud::cpp::compute::node_groups::v1:: @@ -114,6 +178,22 @@ NodeGroupsConnection::PatchNodeGroup(google::cloud::cpp::compute::node_groups:: Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +NodeGroupsConnection::PatchNodeGroup(ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::node_groups:: + v1::PatchNodeGroupRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +NodeGroupsConnection::PatchNodeGroup( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> NodeGroupsConnection::PerformMaintenance( google::cloud::cpp::compute::node_groups::v1:: @@ -123,6 +203,23 @@ NodeGroupsConnection::PerformMaintenance( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +NodeGroupsConnection::PerformMaintenance( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::node_groups::v1:: + PerformMaintenanceRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +NodeGroupsConnection::PerformMaintenance( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr NodeGroupsConnection::SetIamPolicy( google::cloud::cpp::compute::node_groups::v1::SetIamPolicyRequest const&) { @@ -137,10 +234,43 @@ NodeGroupsConnection::SetNodeTemplate(google::cloud::cpp::compute::node_groups:: Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +NodeGroupsConnection::SetNodeTemplate(ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::node_groups:: + v1::SetNodeTemplateRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> +NodeGroupsConnection::SetNodeTemplate( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +NodeGroupsConnection::SimulateMaintenanceEvent( + google::cloud::cpp::compute::node_groups::v1:: + SimulateMaintenanceEventRequest const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +StatusOr NodeGroupsConnection::SimulateMaintenanceEvent( + ExperimentalTag, NoAwaitTag, google::cloud::cpp::compute::node_groups::v1:: SimulateMaintenanceEventRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +NodeGroupsConnection::SimulateMaintenanceEvent( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { return google::cloud::make_ready_future< StatusOr>( Status(StatusCode::kUnimplemented, "not implemented")); diff --git a/google/cloud/compute/node_groups/v1/node_groups_connection.h b/google/cloud/compute/node_groups/v1/node_groups_connection.h index e5fc45469c6d2..7d03f0efe81b7 100644 --- a/google/cloud/compute/node_groups/v1/node_groups_connection.h +++ b/google/cloud/compute/node_groups/v1/node_groups_connection.h @@ -22,8 +22,10 @@ #include "google/cloud/compute/node_groups/v1/internal/node_groups_retry_traits.h" #include "google/cloud/compute/node_groups/v1/node_groups_connection_idempotency_policy.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/internal/retry_policy_impl.h" +#include "google/cloud/no_await_tag.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" #include "google/cloud/status_or.h" @@ -187,6 +189,15 @@ class NodeGroupsConnection { google::cloud::cpp::compute::node_groups::v1::AddNodesRequest const& request); + virtual StatusOr AddNodes( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::node_groups::v1::AddNodesRequest const& + request); + + virtual future> AddNodes( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual StreamRange> AggregatedListNodeGroups(google::cloud::cpp::compute::node_groups::v1:: @@ -196,11 +207,29 @@ class NodeGroupsConnection { DeleteNodeGroup(google::cloud::cpp::compute::node_groups::v1:: DeleteNodeGroupRequest const& request); + virtual StatusOr DeleteNodeGroup( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::node_groups::v1:: + DeleteNodeGroupRequest const& request); + + virtual future> + DeleteNodeGroup(ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual future> DeleteNodes( google::cloud::cpp::compute::node_groups::v1::DeleteNodesRequest const& request); + virtual StatusOr DeleteNodes( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::node_groups::v1::DeleteNodesRequest const& + request); + + virtual future> + DeleteNodes(ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual StatusOr GetNodeGroup( google::cloud::cpp::compute::node_groups::v1::GetNodeGroupRequest const& request); @@ -213,6 +242,15 @@ class NodeGroupsConnection { InsertNodeGroup(google::cloud::cpp::compute::node_groups::v1:: InsertNodeGroupRequest const& request); + virtual StatusOr InsertNodeGroup( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::node_groups::v1:: + InsertNodeGroupRequest const& request); + + virtual future> + InsertNodeGroup(ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual StreamRange ListNodeGroups( google::cloud::cpp::compute::node_groups::v1::ListNodeGroupsRequest @@ -226,10 +264,29 @@ class NodeGroupsConnection { google::cloud::cpp::compute::node_groups::v1::PatchNodeGroupRequest const& request); + virtual StatusOr PatchNodeGroup( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::node_groups::v1::PatchNodeGroupRequest const& + request); + + virtual future> + PatchNodeGroup(ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual future> PerformMaintenance(google::cloud::cpp::compute::node_groups::v1:: PerformMaintenanceRequest const& request); + virtual StatusOr + PerformMaintenance(ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::node_groups::v1:: + PerformMaintenanceRequest const& request); + + virtual future> + PerformMaintenance( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual StatusOr SetIamPolicy( google::cloud::cpp::compute::node_groups::v1::SetIamPolicyRequest const& request); @@ -238,10 +295,29 @@ class NodeGroupsConnection { SetNodeTemplate(google::cloud::cpp::compute::node_groups::v1:: SetNodeTemplateRequest const& request); + virtual StatusOr SetNodeTemplate( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::node_groups::v1:: + SetNodeTemplateRequest const& request); + + virtual future> + SetNodeTemplate(ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual future> SimulateMaintenanceEvent(google::cloud::cpp::compute::node_groups::v1:: SimulateMaintenanceEventRequest const& request); + virtual StatusOr + SimulateMaintenanceEvent(ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::node_groups::v1:: + SimulateMaintenanceEventRequest const& request); + + virtual future> + SimulateMaintenanceEvent( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual StatusOr TestIamPermissions(google::cloud::cpp::compute::node_groups::v1:: TestIamPermissionsRequest const& request); diff --git a/google/cloud/compute/node_templates/v1/internal/node_templates_rest_connection_impl.cc b/google/cloud/compute/node_templates/v1/internal/node_templates_rest_connection_impl.cc index d33593f16291d..f5eea3e2cb3e5 100644 --- a/google/cloud/compute/node_templates/v1/internal/node_templates_rest_connection_impl.cc +++ b/google/cloud/compute/node_templates/v1/internal/node_templates_rest_connection_impl.cc @@ -23,6 +23,7 @@ #include "google/cloud/internal/async_rest_long_running_operation_custom.h" #include "google/cloud/internal/extract_long_running_result.h" #include "google/cloud/internal/pagination_range.h" +#include "google/cloud/internal/rest_lro_helpers.h" #include "google/cloud/internal/rest_retry_loop.h" #include "google/cloud/rest_options.h" #include @@ -146,6 +147,79 @@ NodeTemplatesRestConnectionImpl::DeleteNodeTemplate( }); } +StatusOr +NodeTemplatesRestConnectionImpl::DeleteNodeTemplate( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::node_templates::v1:: + DeleteNodeTemplateRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteNodeTemplate(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::node_templates::v1:: + DeleteNodeTemplateRequest const& request) { + return stub_->DeleteNodeTemplate(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +NodeTemplatesRestConnectionImpl::DeleteNodeTemplate( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::region_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }); +} + StatusOr NodeTemplatesRestConnectionImpl::GetNodeTemplate( google::cloud::cpp::compute::node_templates::v1:: @@ -238,6 +312,79 @@ NodeTemplatesRestConnectionImpl::InsertNodeTemplate( }); } +StatusOr +NodeTemplatesRestConnectionImpl::InsertNodeTemplate( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::node_templates::v1:: + InsertNodeTemplateRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->InsertNodeTemplate(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::node_templates::v1:: + InsertNodeTemplateRequest const& request) { + return stub_->InsertNodeTemplate(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +NodeTemplatesRestConnectionImpl::InsertNodeTemplate( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::region_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }); +} + StreamRange NodeTemplatesRestConnectionImpl::ListNodeTemplates( google::cloud::cpp::compute::node_templates::v1::ListNodeTemplatesRequest diff --git a/google/cloud/compute/node_templates/v1/internal/node_templates_rest_connection_impl.h b/google/cloud/compute/node_templates/v1/internal/node_templates_rest_connection_impl.h index 0c0efa4e6d31c..ce216f6f2db1c 100644 --- a/google/cloud/compute/node_templates/v1/internal/node_templates_rest_connection_impl.h +++ b/google/cloud/compute/node_templates/v1/internal/node_templates_rest_connection_impl.h @@ -61,6 +61,16 @@ class NodeTemplatesRestConnectionImpl DeleteNodeTemplate(google::cloud::cpp::compute::node_templates::v1:: DeleteNodeTemplateRequest const& request) override; + StatusOr DeleteNodeTemplate( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::node_templates::v1:: + DeleteNodeTemplateRequest const& request) override; + + future> + DeleteNodeTemplate( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StatusOr GetNodeTemplate( google::cloud::cpp::compute::node_templates::v1:: GetNodeTemplateRequest const& request) override; @@ -73,6 +83,16 @@ class NodeTemplatesRestConnectionImpl InsertNodeTemplate(google::cloud::cpp::compute::node_templates::v1:: InsertNodeTemplateRequest const& request) override; + StatusOr InsertNodeTemplate( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::node_templates::v1:: + InsertNodeTemplateRequest const& request) override; + + future> + InsertNodeTemplate( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StreamRange ListNodeTemplates( google::cloud::cpp::compute::node_templates::v1::ListNodeTemplatesRequest request) override; diff --git a/google/cloud/compute/node_templates/v1/internal/node_templates_tracing_connection.cc b/google/cloud/compute/node_templates/v1/internal/node_templates_tracing_connection.cc index 7fad4009a3b8e..f54ee349c3332 100644 --- a/google/cloud/compute/node_templates/v1/internal/node_templates_tracing_connection.cc +++ b/google/cloud/compute/node_templates/v1/internal/node_templates_tracing_connection.cc @@ -59,6 +59,30 @@ NodeTemplatesTracingConnection::DeleteNodeTemplate( child_->DeleteNodeTemplate(request)); } +StatusOr +NodeTemplatesTracingConnection::DeleteNodeTemplate( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::node_templates::v1:: + DeleteNodeTemplateRequest const& request) { + auto span = internal::MakeSpan( + "compute_node_templates_v1::NodeTemplatesConnection::DeleteNodeTemplate"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->DeleteNodeTemplate(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +NodeTemplatesTracingConnection::DeleteNodeTemplate( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_node_templates_v1::NodeTemplatesConnection::DeleteNodeTemplate"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->DeleteNodeTemplate( + ExperimentalTag{}, operation)); +} + StatusOr NodeTemplatesTracingConnection::GetNodeTemplate( google::cloud::cpp::compute::node_templates::v1:: @@ -90,6 +114,30 @@ NodeTemplatesTracingConnection::InsertNodeTemplate( child_->InsertNodeTemplate(request)); } +StatusOr +NodeTemplatesTracingConnection::InsertNodeTemplate( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::node_templates::v1:: + InsertNodeTemplateRequest const& request) { + auto span = internal::MakeSpan( + "compute_node_templates_v1::NodeTemplatesConnection::InsertNodeTemplate"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->InsertNodeTemplate(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +NodeTemplatesTracingConnection::InsertNodeTemplate( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_node_templates_v1::NodeTemplatesConnection::InsertNodeTemplate"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->InsertNodeTemplate( + ExperimentalTag{}, operation)); +} + StreamRange NodeTemplatesTracingConnection::ListNodeTemplates( google::cloud::cpp::compute::node_templates::v1::ListNodeTemplatesRequest diff --git a/google/cloud/compute/node_templates/v1/internal/node_templates_tracing_connection.h b/google/cloud/compute/node_templates/v1/internal/node_templates_tracing_connection.h index b92093691271a..8d26f1a3e1cd6 100644 --- a/google/cloud/compute/node_templates/v1/internal/node_templates_tracing_connection.h +++ b/google/cloud/compute/node_templates/v1/internal/node_templates_tracing_connection.h @@ -51,6 +51,16 @@ class NodeTemplatesTracingConnection DeleteNodeTemplate(google::cloud::cpp::compute::node_templates::v1:: DeleteNodeTemplateRequest const& request) override; + StatusOr DeleteNodeTemplate( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::node_templates::v1:: + DeleteNodeTemplateRequest const& request) override; + + future> + DeleteNodeTemplate( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StatusOr GetNodeTemplate( google::cloud::cpp::compute::node_templates::v1:: GetNodeTemplateRequest const& request) override; @@ -63,6 +73,16 @@ class NodeTemplatesTracingConnection InsertNodeTemplate(google::cloud::cpp::compute::node_templates::v1:: InsertNodeTemplateRequest const& request) override; + StatusOr InsertNodeTemplate( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::node_templates::v1:: + InsertNodeTemplateRequest const& request) override; + + future> + InsertNodeTemplate( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StreamRange ListNodeTemplates( google::cloud::cpp::compute::node_templates::v1::ListNodeTemplatesRequest request) override; diff --git a/google/cloud/compute/node_templates/v1/mocks/mock_node_templates_connection.h b/google/cloud/compute/node_templates/v1/mocks/mock_node_templates_connection.h index 7c78beb0fdd25..6f061286ba3e1 100644 --- a/google/cloud/compute/node_templates/v1/mocks/mock_node_templates_connection.h +++ b/google/cloud/compute/node_templates/v1/mocks/mock_node_templates_connection.h @@ -62,6 +62,19 @@ class MockNodeTemplatesConnection DeleteNodeTemplateRequest const& request), (override)); + MOCK_METHOD(StatusOr, + DeleteNodeTemplate, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::node_templates::v1:: + DeleteNodeTemplateRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteNodeTemplate, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD(StatusOr, GetNodeTemplate, (google::cloud::cpp::compute::node_templates::v1:: @@ -79,6 +92,19 @@ class MockNodeTemplatesConnection InsertNodeTemplateRequest const& request), (override)); + MOCK_METHOD(StatusOr, + InsertNodeTemplate, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::node_templates::v1:: + InsertNodeTemplateRequest const& request), + (override)); + + MOCK_METHOD(future>, + InsertNodeTemplate, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD( (StreamRange), ListNodeTemplates, diff --git a/google/cloud/compute/node_templates/v1/node_templates_connection.cc b/google/cloud/compute/node_templates/v1/node_templates_connection.cc index 3f77968fa7833..25f826ee20516 100644 --- a/google/cloud/compute/node_templates/v1/node_templates_connection.cc +++ b/google/cloud/compute/node_templates/v1/node_templates_connection.cc @@ -55,6 +55,23 @@ NodeTemplatesConnection::DeleteNodeTemplate( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +NodeTemplatesConnection::DeleteNodeTemplate( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::node_templates::v1:: + DeleteNodeTemplateRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +NodeTemplatesConnection::DeleteNodeTemplate( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr NodeTemplatesConnection::GetNodeTemplate( google::cloud::cpp::compute::node_templates::v1:: @@ -78,6 +95,23 @@ NodeTemplatesConnection::InsertNodeTemplate( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +NodeTemplatesConnection::InsertNodeTemplate( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::node_templates::v1:: + InsertNodeTemplateRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +NodeTemplatesConnection::InsertNodeTemplate( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StreamRange NodeTemplatesConnection::ListNodeTemplates( google::cloud::cpp::compute::node_templates::v1:: diff --git a/google/cloud/compute/node_templates/v1/node_templates_connection.h b/google/cloud/compute/node_templates/v1/node_templates_connection.h index bb4fdf49f6e3b..95005aa00b851 100644 --- a/google/cloud/compute/node_templates/v1/node_templates_connection.h +++ b/google/cloud/compute/node_templates/v1/node_templates_connection.h @@ -22,8 +22,10 @@ #include "google/cloud/compute/node_templates/v1/internal/node_templates_retry_traits.h" #include "google/cloud/compute/node_templates/v1/node_templates_connection_idempotency_policy.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/internal/retry_policy_impl.h" +#include "google/cloud/no_await_tag.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" #include "google/cloud/status_or.h" @@ -194,6 +196,16 @@ class NodeTemplatesConnection { DeleteNodeTemplate(google::cloud::cpp::compute::node_templates::v1:: DeleteNodeTemplateRequest const& request); + virtual StatusOr + DeleteNodeTemplate(ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::node_templates::v1:: + DeleteNodeTemplateRequest const& request); + + virtual future> + DeleteNodeTemplate( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual StatusOr GetNodeTemplate(google::cloud::cpp::compute::node_templates::v1:: GetNodeTemplateRequest const& request); @@ -206,6 +218,16 @@ class NodeTemplatesConnection { InsertNodeTemplate(google::cloud::cpp::compute::node_templates::v1:: InsertNodeTemplateRequest const& request); + virtual StatusOr + InsertNodeTemplate(ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::node_templates::v1:: + InsertNodeTemplateRequest const& request); + + virtual future> + InsertNodeTemplate( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual StreamRange ListNodeTemplates( google::cloud::cpp::compute::node_templates::v1::ListNodeTemplatesRequest diff --git a/google/cloud/compute/node_types/v1/node_types_connection.h b/google/cloud/compute/node_types/v1/node_types_connection.h index 14ab64ea4a5e6..965a17380c707 100644 --- a/google/cloud/compute/node_types/v1/node_types_connection.h +++ b/google/cloud/compute/node_types/v1/node_types_connection.h @@ -22,6 +22,7 @@ #include "google/cloud/compute/node_types/v1/internal/node_types_retry_traits.h" #include "google/cloud/compute/node_types/v1/node_types_connection_idempotency_policy.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/internal/retry_policy_impl.h" #include "google/cloud/options.h" #include "google/cloud/status_or.h" diff --git a/google/cloud/compute/packet_mirrorings/v1/internal/packet_mirrorings_rest_connection_impl.cc b/google/cloud/compute/packet_mirrorings/v1/internal/packet_mirrorings_rest_connection_impl.cc index fff6b888cb95b..ba2d4420605a3 100644 --- a/google/cloud/compute/packet_mirrorings/v1/internal/packet_mirrorings_rest_connection_impl.cc +++ b/google/cloud/compute/packet_mirrorings/v1/internal/packet_mirrorings_rest_connection_impl.cc @@ -23,6 +23,7 @@ #include "google/cloud/internal/async_rest_long_running_operation_custom.h" #include "google/cloud/internal/extract_long_running_result.h" #include "google/cloud/internal/pagination_range.h" +#include "google/cloud/internal/rest_lro_helpers.h" #include "google/cloud/internal/rest_retry_loop.h" #include "google/cloud/rest_options.h" #include @@ -147,6 +148,79 @@ PacketMirroringsRestConnectionImpl::DeletePacketMirroring( }); } +StatusOr +PacketMirroringsRestConnectionImpl::DeletePacketMirroring( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::packet_mirrorings::v1:: + DeletePacketMirroringRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeletePacketMirroring(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::packet_mirrorings::v1:: + DeletePacketMirroringRequest const& request) { + return stub_->DeletePacketMirroring(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +PacketMirroringsRestConnectionImpl::DeletePacketMirroring( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::region_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }); +} + StatusOr PacketMirroringsRestConnectionImpl::GetPacketMirroring( google::cloud::cpp::compute::packet_mirrorings::v1:: @@ -223,6 +297,79 @@ PacketMirroringsRestConnectionImpl::InsertPacketMirroring( }); } +StatusOr +PacketMirroringsRestConnectionImpl::InsertPacketMirroring( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::packet_mirrorings::v1:: + InsertPacketMirroringRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->InsertPacketMirroring(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::packet_mirrorings::v1:: + InsertPacketMirroringRequest const& request) { + return stub_->InsertPacketMirroring(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +PacketMirroringsRestConnectionImpl::InsertPacketMirroring( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::region_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }); +} + StreamRange PacketMirroringsRestConnectionImpl::ListPacketMirrorings( google::cloud::cpp::compute::packet_mirrorings::v1:: @@ -322,6 +469,79 @@ PacketMirroringsRestConnectionImpl::PatchPacketMirroring( }); } +StatusOr +PacketMirroringsRestConnectionImpl::PatchPacketMirroring( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::packet_mirrorings::v1:: + PatchPacketMirroringRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->PatchPacketMirroring(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::packet_mirrorings::v1:: + PatchPacketMirroringRequest const& request) { + return stub_->PatchPacketMirroring(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +PacketMirroringsRestConnectionImpl::PatchPacketMirroring( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::region_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }); +} + StatusOr PacketMirroringsRestConnectionImpl::TestIamPermissions( google::cloud::cpp::compute::packet_mirrorings::v1:: diff --git a/google/cloud/compute/packet_mirrorings/v1/internal/packet_mirrorings_rest_connection_impl.h b/google/cloud/compute/packet_mirrorings/v1/internal/packet_mirrorings_rest_connection_impl.h index 54bca8e000352..15ab662033f87 100644 --- a/google/cloud/compute/packet_mirrorings/v1/internal/packet_mirrorings_rest_connection_impl.h +++ b/google/cloud/compute/packet_mirrorings/v1/internal/packet_mirrorings_rest_connection_impl.h @@ -63,6 +63,16 @@ class PacketMirroringsRestConnectionImpl google::cloud::cpp::compute::packet_mirrorings::v1:: DeletePacketMirroringRequest const& request) override; + StatusOr DeletePacketMirroring( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::packet_mirrorings::v1:: + DeletePacketMirroringRequest const& request) override; + + future> + DeletePacketMirroring( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StatusOr GetPacketMirroring( google::cloud::cpp::compute::packet_mirrorings::v1:: GetPacketMirroringRequest const& request) override; @@ -72,6 +82,16 @@ class PacketMirroringsRestConnectionImpl google::cloud::cpp::compute::packet_mirrorings::v1:: InsertPacketMirroringRequest const& request) override; + StatusOr InsertPacketMirroring( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::packet_mirrorings::v1:: + InsertPacketMirroringRequest const& request) override; + + future> + InsertPacketMirroring( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StreamRange ListPacketMirrorings(google::cloud::cpp::compute::packet_mirrorings::v1:: ListPacketMirroringsRequest request) override; @@ -80,6 +100,16 @@ class PacketMirroringsRestConnectionImpl PatchPacketMirroring(google::cloud::cpp::compute::packet_mirrorings::v1:: PatchPacketMirroringRequest const& request) override; + StatusOr PatchPacketMirroring( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::packet_mirrorings::v1:: + PatchPacketMirroringRequest const& request) override; + + future> + PatchPacketMirroring( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StatusOr TestIamPermissions(google::cloud::cpp::compute::packet_mirrorings::v1:: TestIamPermissionsRequest const& request) override; diff --git a/google/cloud/compute/packet_mirrorings/v1/internal/packet_mirrorings_tracing_connection.cc b/google/cloud/compute/packet_mirrorings/v1/internal/packet_mirrorings_tracing_connection.cc index 40cf66d03e67f..5e43de7cc38c1 100644 --- a/google/cloud/compute/packet_mirrorings/v1/internal/packet_mirrorings_tracing_connection.cc +++ b/google/cloud/compute/packet_mirrorings/v1/internal/packet_mirrorings_tracing_connection.cc @@ -62,6 +62,32 @@ PacketMirroringsTracingConnection::DeletePacketMirroring( child_->DeletePacketMirroring(request)); } +StatusOr +PacketMirroringsTracingConnection::DeletePacketMirroring( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::packet_mirrorings::v1:: + DeletePacketMirroringRequest const& request) { + auto span = internal::MakeSpan( + "compute_packet_mirrorings_v1::PacketMirroringsConnection::" + "DeletePacketMirroring"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->DeletePacketMirroring(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +PacketMirroringsTracingConnection::DeletePacketMirroring( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_packet_mirrorings_v1::PacketMirroringsConnection::" + "DeletePacketMirroring"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->DeletePacketMirroring( + ExperimentalTag{}, operation)); +} + StatusOr PacketMirroringsTracingConnection::GetPacketMirroring( google::cloud::cpp::compute::packet_mirrorings::v1:: @@ -85,6 +111,32 @@ PacketMirroringsTracingConnection::InsertPacketMirroring( child_->InsertPacketMirroring(request)); } +StatusOr +PacketMirroringsTracingConnection::InsertPacketMirroring( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::packet_mirrorings::v1:: + InsertPacketMirroringRequest const& request) { + auto span = internal::MakeSpan( + "compute_packet_mirrorings_v1::PacketMirroringsConnection::" + "InsertPacketMirroring"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->InsertPacketMirroring(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +PacketMirroringsTracingConnection::InsertPacketMirroring( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_packet_mirrorings_v1::PacketMirroringsConnection::" + "InsertPacketMirroring"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->InsertPacketMirroring( + ExperimentalTag{}, operation)); +} + StreamRange PacketMirroringsTracingConnection::ListPacketMirrorings( google::cloud::cpp::compute::packet_mirrorings::v1:: @@ -111,6 +163,32 @@ PacketMirroringsTracingConnection::PatchPacketMirroring( child_->PatchPacketMirroring(request)); } +StatusOr +PacketMirroringsTracingConnection::PatchPacketMirroring( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::packet_mirrorings::v1:: + PatchPacketMirroringRequest const& request) { + auto span = internal::MakeSpan( + "compute_packet_mirrorings_v1::PacketMirroringsConnection::" + "PatchPacketMirroring"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->PatchPacketMirroring(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +PacketMirroringsTracingConnection::PatchPacketMirroring( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_packet_mirrorings_v1::PacketMirroringsConnection::" + "PatchPacketMirroring"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->PatchPacketMirroring( + ExperimentalTag{}, operation)); +} + StatusOr PacketMirroringsTracingConnection::TestIamPermissions( google::cloud::cpp::compute::packet_mirrorings::v1:: diff --git a/google/cloud/compute/packet_mirrorings/v1/internal/packet_mirrorings_tracing_connection.h b/google/cloud/compute/packet_mirrorings/v1/internal/packet_mirrorings_tracing_connection.h index 77b4ca75baab5..7517a03684a05 100644 --- a/google/cloud/compute/packet_mirrorings/v1/internal/packet_mirrorings_tracing_connection.h +++ b/google/cloud/compute/packet_mirrorings/v1/internal/packet_mirrorings_tracing_connection.h @@ -52,6 +52,16 @@ class PacketMirroringsTracingConnection google::cloud::cpp::compute::packet_mirrorings::v1:: DeletePacketMirroringRequest const& request) override; + StatusOr DeletePacketMirroring( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::packet_mirrorings::v1:: + DeletePacketMirroringRequest const& request) override; + + future> + DeletePacketMirroring( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StatusOr GetPacketMirroring( google::cloud::cpp::compute::packet_mirrorings::v1:: GetPacketMirroringRequest const& request) override; @@ -61,6 +71,16 @@ class PacketMirroringsTracingConnection google::cloud::cpp::compute::packet_mirrorings::v1:: InsertPacketMirroringRequest const& request) override; + StatusOr InsertPacketMirroring( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::packet_mirrorings::v1:: + InsertPacketMirroringRequest const& request) override; + + future> + InsertPacketMirroring( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StreamRange ListPacketMirrorings(google::cloud::cpp::compute::packet_mirrorings::v1:: ListPacketMirroringsRequest request) override; @@ -69,6 +89,16 @@ class PacketMirroringsTracingConnection PatchPacketMirroring(google::cloud::cpp::compute::packet_mirrorings::v1:: PatchPacketMirroringRequest const& request) override; + StatusOr PatchPacketMirroring( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::packet_mirrorings::v1:: + PatchPacketMirroringRequest const& request) override; + + future> + PatchPacketMirroring( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StatusOr TestIamPermissions(google::cloud::cpp::compute::packet_mirrorings::v1:: TestIamPermissionsRequest const& request) override; diff --git a/google/cloud/compute/packet_mirrorings/v1/mocks/mock_packet_mirrorings_connection.h b/google/cloud/compute/packet_mirrorings/v1/mocks/mock_packet_mirrorings_connection.h index bcadcaa8efe19..6f354b093be29 100644 --- a/google/cloud/compute/packet_mirrorings/v1/mocks/mock_packet_mirrorings_connection.h +++ b/google/cloud/compute/packet_mirrorings/v1/mocks/mock_packet_mirrorings_connection.h @@ -61,6 +61,19 @@ class MockPacketMirroringsConnection DeletePacketMirroringRequest const& request), (override)); + MOCK_METHOD(StatusOr, + DeletePacketMirroring, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::packet_mirrorings::v1:: + DeletePacketMirroringRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeletePacketMirroring, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD(StatusOr, GetPacketMirroring, (google::cloud::cpp::compute::packet_mirrorings::v1:: @@ -73,6 +86,19 @@ class MockPacketMirroringsConnection InsertPacketMirroringRequest const& request), (override)); + MOCK_METHOD(StatusOr, + InsertPacketMirroring, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::packet_mirrorings::v1:: + InsertPacketMirroringRequest const& request), + (override)); + + MOCK_METHOD(future>, + InsertPacketMirroring, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD((StreamRange), ListPacketMirrorings, (google::cloud::cpp::compute::packet_mirrorings::v1:: @@ -85,6 +111,19 @@ class MockPacketMirroringsConnection PatchPacketMirroringRequest const& request), (override)); + MOCK_METHOD(StatusOr, + PatchPacketMirroring, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::packet_mirrorings::v1:: + PatchPacketMirroringRequest const& request), + (override)); + + MOCK_METHOD(future>, + PatchPacketMirroring, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr, TestIamPermissions, diff --git a/google/cloud/compute/packet_mirrorings/v1/packet_mirrorings_connection.cc b/google/cloud/compute/packet_mirrorings/v1/packet_mirrorings_connection.cc index 6726630384793..6e47cdfa1656c 100644 --- a/google/cloud/compute/packet_mirrorings/v1/packet_mirrorings_connection.cc +++ b/google/cloud/compute/packet_mirrorings/v1/packet_mirrorings_connection.cc @@ -55,6 +55,23 @@ PacketMirroringsConnection::DeletePacketMirroring( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +PacketMirroringsConnection::DeletePacketMirroring( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::packet_mirrorings::v1:: + DeletePacketMirroringRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +PacketMirroringsConnection::DeletePacketMirroring( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr PacketMirroringsConnection::GetPacketMirroring( google::cloud::cpp::compute::packet_mirrorings::v1:: @@ -71,6 +88,23 @@ PacketMirroringsConnection::InsertPacketMirroring( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +PacketMirroringsConnection::InsertPacketMirroring( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::packet_mirrorings::v1:: + InsertPacketMirroringRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +PacketMirroringsConnection::InsertPacketMirroring( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StreamRange PacketMirroringsConnection::ListPacketMirrorings( google::cloud::cpp::compute::packet_mirrorings::v1:: @@ -88,6 +122,23 @@ PacketMirroringsConnection::PatchPacketMirroring( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +PacketMirroringsConnection::PatchPacketMirroring( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::packet_mirrorings::v1:: + PatchPacketMirroringRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +PacketMirroringsConnection::PatchPacketMirroring( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr PacketMirroringsConnection::TestIamPermissions( google::cloud::cpp::compute::packet_mirrorings::v1:: diff --git a/google/cloud/compute/packet_mirrorings/v1/packet_mirrorings_connection.h b/google/cloud/compute/packet_mirrorings/v1/packet_mirrorings_connection.h index d2647fe592e0f..acfcdcc682fcb 100644 --- a/google/cloud/compute/packet_mirrorings/v1/packet_mirrorings_connection.h +++ b/google/cloud/compute/packet_mirrorings/v1/packet_mirrorings_connection.h @@ -22,8 +22,10 @@ #include "google/cloud/compute/packet_mirrorings/v1/internal/packet_mirrorings_retry_traits.h" #include "google/cloud/compute/packet_mirrorings/v1/packet_mirrorings_connection_idempotency_policy.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/internal/retry_policy_impl.h" +#include "google/cloud/no_await_tag.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" #include "google/cloud/status_or.h" @@ -196,6 +198,16 @@ class PacketMirroringsConnection { DeletePacketMirroring(google::cloud::cpp::compute::packet_mirrorings::v1:: DeletePacketMirroringRequest const& request); + virtual StatusOr + DeletePacketMirroring(ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::packet_mirrorings::v1:: + DeletePacketMirroringRequest const& request); + + virtual future> + DeletePacketMirroring( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual StatusOr GetPacketMirroring(google::cloud::cpp::compute::packet_mirrorings::v1:: GetPacketMirroringRequest const& request); @@ -204,6 +216,16 @@ class PacketMirroringsConnection { InsertPacketMirroring(google::cloud::cpp::compute::packet_mirrorings::v1:: InsertPacketMirroringRequest const& request); + virtual StatusOr + InsertPacketMirroring(ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::packet_mirrorings::v1:: + InsertPacketMirroringRequest const& request); + + virtual future> + InsertPacketMirroring( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual StreamRange ListPacketMirrorings(google::cloud::cpp::compute::packet_mirrorings::v1:: ListPacketMirroringsRequest request); @@ -212,6 +234,16 @@ class PacketMirroringsConnection { PatchPacketMirroring(google::cloud::cpp::compute::packet_mirrorings::v1:: PatchPacketMirroringRequest const& request); + virtual StatusOr + PatchPacketMirroring(ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::packet_mirrorings::v1:: + PatchPacketMirroringRequest const& request); + + virtual future> + PatchPacketMirroring( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual StatusOr TestIamPermissions(google::cloud::cpp::compute::packet_mirrorings::v1:: TestIamPermissionsRequest const& request); diff --git a/google/cloud/compute/projects/v1/internal/projects_rest_connection_impl.cc b/google/cloud/compute/projects/v1/internal/projects_rest_connection_impl.cc index f5237b7b1f46f..01ccbc671a4e8 100644 --- a/google/cloud/compute/projects/v1/internal/projects_rest_connection_impl.cc +++ b/google/cloud/compute/projects/v1/internal/projects_rest_connection_impl.cc @@ -23,6 +23,7 @@ #include "google/cloud/internal/async_rest_long_running_operation_custom.h" #include "google/cloud/internal/extract_long_running_result.h" #include "google/cloud/internal/pagination_range.h" +#include "google/cloud/internal/rest_lro_helpers.h" #include "google/cloud/internal/rest_retry_loop.h" #include "google/cloud/rest_options.h" #include @@ -100,6 +101,77 @@ ProjectsRestConnectionImpl::DisableXpnHost( }); } +StatusOr +ProjectsRestConnectionImpl::DisableXpnHost( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::projects::v1::DisableXpnHostRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DisableXpnHost(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::projects::v1:: + DisableXpnHostRequest const& request) { + return stub_->DisableXpnHost(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +ProjectsRestConnectionImpl::DisableXpnHost( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::global_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }); +} + future> ProjectsRestConnectionImpl::DisableXpnResource( google::cloud::cpp::compute::projects::v1::DisableXpnResourceRequest const& @@ -158,6 +230,77 @@ ProjectsRestConnectionImpl::DisableXpnResource( }); } +StatusOr +ProjectsRestConnectionImpl::DisableXpnResource( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::projects::v1::DisableXpnResourceRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DisableXpnResource(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::projects::v1:: + DisableXpnResourceRequest const& request) { + return stub_->DisableXpnResource(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +ProjectsRestConnectionImpl::DisableXpnResource( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::global_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }); +} + future> ProjectsRestConnectionImpl::EnableXpnHost( google::cloud::cpp::compute::projects::v1::EnableXpnHostRequest const& @@ -217,6 +360,78 @@ ProjectsRestConnectionImpl::EnableXpnHost( }); } +StatusOr +ProjectsRestConnectionImpl::EnableXpnHost( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::projects::v1::EnableXpnHostRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->EnableXpnHost(request), + [this]( + rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::projects::v1::EnableXpnHostRequest const& + request) { + return stub_->EnableXpnHost(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +ProjectsRestConnectionImpl::EnableXpnHost( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::global_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }); +} + future> ProjectsRestConnectionImpl::EnableXpnResource( google::cloud::cpp::compute::projects::v1::EnableXpnResourceRequest const& @@ -275,6 +490,77 @@ ProjectsRestConnectionImpl::EnableXpnResource( }); } +StatusOr +ProjectsRestConnectionImpl::EnableXpnResource( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::projects::v1::EnableXpnResourceRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->EnableXpnResource(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::projects::v1:: + EnableXpnResourceRequest const& request) { + return stub_->EnableXpnResource(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +ProjectsRestConnectionImpl::EnableXpnResource( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::global_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }); +} + StatusOr ProjectsRestConnectionImpl::GetProject( google::cloud::cpp::compute::projects::v1::GetProjectRequest const& @@ -417,6 +703,76 @@ ProjectsRestConnectionImpl::MoveDisk( }); } +StatusOr +ProjectsRestConnectionImpl::MoveDisk( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::projects::v1::MoveDiskRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->MoveDisk(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::projects::v1::MoveDiskRequest const& + request) { + return stub_->MoveDisk(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +ProjectsRestConnectionImpl::MoveDisk( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::global_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }); +} + future> ProjectsRestConnectionImpl::MoveInstance( google::cloud::cpp::compute::projects::v1::MoveInstanceRequest const& @@ -476,6 +832,78 @@ ProjectsRestConnectionImpl::MoveInstance( }); } +StatusOr +ProjectsRestConnectionImpl::MoveInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::projects::v1::MoveInstanceRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->MoveInstance(request), + [this]( + rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::projects::v1::MoveInstanceRequest const& + request) { + return stub_->MoveInstance(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +ProjectsRestConnectionImpl::MoveInstance( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::global_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }); +} + future> ProjectsRestConnectionImpl::SetCloudArmorTier( google::cloud::cpp::compute::projects::v1::SetCloudArmorTierRequest const& @@ -534,6 +962,77 @@ ProjectsRestConnectionImpl::SetCloudArmorTier( }); } +StatusOr +ProjectsRestConnectionImpl::SetCloudArmorTier( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::projects::v1::SetCloudArmorTierRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->SetCloudArmorTier(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::projects::v1:: + SetCloudArmorTierRequest const& request) { + return stub_->SetCloudArmorTier(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +ProjectsRestConnectionImpl::SetCloudArmorTier( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::global_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }); +} + future> ProjectsRestConnectionImpl::SetCommonInstanceMetadata( google::cloud::cpp::compute::projects::v1:: @@ -592,6 +1091,77 @@ ProjectsRestConnectionImpl::SetCommonInstanceMetadata( }); } +StatusOr +ProjectsRestConnectionImpl::SetCommonInstanceMetadata( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::projects::v1:: + SetCommonInstanceMetadataRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->SetCommonInstanceMetadata(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::projects::v1:: + SetCommonInstanceMetadataRequest const& request) { + return stub_->SetCommonInstanceMetadata(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +ProjectsRestConnectionImpl::SetCommonInstanceMetadata( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::global_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }); +} + future> ProjectsRestConnectionImpl::SetDefaultNetworkTier( google::cloud::cpp::compute::projects::v1:: @@ -650,6 +1220,77 @@ ProjectsRestConnectionImpl::SetDefaultNetworkTier( }); } +StatusOr +ProjectsRestConnectionImpl::SetDefaultNetworkTier( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::projects::v1:: + SetDefaultNetworkTierRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->SetDefaultNetworkTier(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::projects::v1:: + SetDefaultNetworkTierRequest const& request) { + return stub_->SetDefaultNetworkTier(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +ProjectsRestConnectionImpl::SetDefaultNetworkTier( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::global_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }); +} + future> ProjectsRestConnectionImpl::SetUsageExportBucket( google::cloud::cpp::compute::projects::v1:: @@ -708,6 +1349,77 @@ ProjectsRestConnectionImpl::SetUsageExportBucket( }); } +StatusOr +ProjectsRestConnectionImpl::SetUsageExportBucket( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::projects::v1:: + SetUsageExportBucketRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->SetUsageExportBucket(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::projects::v1:: + SetUsageExportBucketRequest const& request) { + return stub_->SetUsageExportBucket(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +ProjectsRestConnectionImpl::SetUsageExportBucket( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::global_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace compute_projects_v1_internal } // namespace cloud diff --git a/google/cloud/compute/projects/v1/internal/projects_rest_connection_impl.h b/google/cloud/compute/projects/v1/internal/projects_rest_connection_impl.h index 77511a9c83411..e1ee603ee36df 100644 --- a/google/cloud/compute/projects/v1/internal/projects_rest_connection_impl.h +++ b/google/cloud/compute/projects/v1/internal/projects_rest_connection_impl.h @@ -54,19 +54,57 @@ class ProjectsRestConnectionImpl google::cloud::cpp::compute::projects::v1::DisableXpnHostRequest const& request) override; + StatusOr DisableXpnHost( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::projects::v1::DisableXpnHostRequest const& + request) override; + + future> DisableXpnHost( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> DisableXpnResource(google::cloud::cpp::compute::projects::v1:: DisableXpnResourceRequest const& request) override; + StatusOr DisableXpnResource( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::projects::v1:: + DisableXpnResourceRequest const& request) override; + + future> + DisableXpnResource( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> EnableXpnHost( google::cloud::cpp::compute::projects::v1::EnableXpnHostRequest const& request) override; + StatusOr EnableXpnHost( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::projects::v1::EnableXpnHostRequest const& + request) override; + + future> EnableXpnHost( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> EnableXpnResource( google::cloud::cpp::compute::projects::v1::EnableXpnResourceRequest const& request) override; + StatusOr EnableXpnResource( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::projects::v1::EnableXpnResourceRequest const& + request) override; + + future> + EnableXpnResource( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StatusOr GetProject( google::cloud::cpp::compute::projects::v1::GetProjectRequest const& request) override; @@ -88,29 +126,88 @@ class ProjectsRestConnectionImpl google::cloud::cpp::compute::projects::v1::MoveDiskRequest const& request) override; + StatusOr MoveDisk( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::projects::v1::MoveDiskRequest const& request) + override; + + future> MoveDisk( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> MoveInstance( google::cloud::cpp::compute::projects::v1::MoveInstanceRequest const& request) override; + StatusOr MoveInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::projects::v1::MoveInstanceRequest const& + request) override; + + future> MoveInstance( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> SetCloudArmorTier( google::cloud::cpp::compute::projects::v1::SetCloudArmorTierRequest const& request) override; + StatusOr SetCloudArmorTier( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::projects::v1::SetCloudArmorTierRequest const& + request) override; + future> + SetCloudArmorTier( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + + future> + SetCommonInstanceMetadata( + google::cloud::cpp::compute::projects::v1:: + SetCommonInstanceMetadataRequest const& request) override; + + StatusOr SetCommonInstanceMetadata( + ExperimentalTag, NoAwaitTag, google::cloud::cpp::compute::projects::v1:: SetCommonInstanceMetadataRequest const& request) override; + future> + SetCommonInstanceMetadata( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> SetDefaultNetworkTier( google::cloud::cpp::compute::projects::v1:: SetDefaultNetworkTierRequest const& request) override; + StatusOr SetDefaultNetworkTier( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::projects::v1:: + SetDefaultNetworkTierRequest const& request) override; + + future> + SetDefaultNetworkTier( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> SetUsageExportBucket(google::cloud::cpp::compute::projects::v1:: SetUsageExportBucketRequest const& request) override; + StatusOr SetUsageExportBucket( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::projects::v1:: + SetUsageExportBucketRequest const& request) override; + + future> + SetUsageExportBucket( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + private: static std::unique_ptr retry_policy( Options const& options) { diff --git a/google/cloud/compute/projects/v1/internal/projects_tracing_connection.cc b/google/cloud/compute/projects/v1/internal/projects_tracing_connection.cc index a235f4ef70efb..44daa6263ac82 100644 --- a/google/cloud/compute/projects/v1/internal/projects_tracing_connection.cc +++ b/google/cloud/compute/projects/v1/internal/projects_tracing_connection.cc @@ -43,6 +43,29 @@ ProjectsTracingConnection::DisableXpnHost( return internal::EndSpan(std::move(span), child_->DisableXpnHost(request)); } +StatusOr +ProjectsTracingConnection::DisableXpnHost( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::projects::v1::DisableXpnHostRequest const& + request) { + auto span = internal::MakeSpan( + "compute_projects_v1::ProjectsConnection::DisableXpnHost"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->DisableXpnHost(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +ProjectsTracingConnection::DisableXpnHost( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_projects_v1::ProjectsConnection::DisableXpnHost"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->DisableXpnHost(ExperimentalTag{}, operation)); +} + future> ProjectsTracingConnection::DisableXpnResource( google::cloud::cpp::compute::projects::v1::DisableXpnResourceRequest const& @@ -54,6 +77,30 @@ ProjectsTracingConnection::DisableXpnResource( child_->DisableXpnResource(request)); } +StatusOr +ProjectsTracingConnection::DisableXpnResource( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::projects::v1::DisableXpnResourceRequest const& + request) { + auto span = internal::MakeSpan( + "compute_projects_v1::ProjectsConnection::DisableXpnResource"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->DisableXpnResource(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +ProjectsTracingConnection::DisableXpnResource( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_projects_v1::ProjectsConnection::DisableXpnResource"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->DisableXpnResource( + ExperimentalTag{}, operation)); +} + future> ProjectsTracingConnection::EnableXpnHost( google::cloud::cpp::compute::projects::v1::EnableXpnHostRequest const& @@ -64,6 +111,29 @@ ProjectsTracingConnection::EnableXpnHost( return internal::EndSpan(std::move(span), child_->EnableXpnHost(request)); } +StatusOr +ProjectsTracingConnection::EnableXpnHost( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::projects::v1::EnableXpnHostRequest const& + request) { + auto span = internal::MakeSpan( + "compute_projects_v1::ProjectsConnection::EnableXpnHost"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->EnableXpnHost(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +ProjectsTracingConnection::EnableXpnHost( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_projects_v1::ProjectsConnection::EnableXpnHost"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->EnableXpnHost(ExperimentalTag{}, operation)); +} + future> ProjectsTracingConnection::EnableXpnResource( google::cloud::cpp::compute::projects::v1::EnableXpnResourceRequest const& @@ -74,6 +144,30 @@ ProjectsTracingConnection::EnableXpnResource( return internal::EndSpan(std::move(span), child_->EnableXpnResource(request)); } +StatusOr +ProjectsTracingConnection::EnableXpnResource( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::projects::v1::EnableXpnResourceRequest const& + request) { + auto span = internal::MakeSpan( + "compute_projects_v1::ProjectsConnection::EnableXpnResource"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->EnableXpnResource(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +ProjectsTracingConnection::EnableXpnResource( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_projects_v1::ProjectsConnection::EnableXpnResource"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->EnableXpnResource(ExperimentalTag{}, operation)); +} + StatusOr ProjectsTracingConnection::GetProject( google::cloud::cpp::compute::projects::v1::GetProjectRequest const& @@ -124,6 +218,28 @@ ProjectsTracingConnection::MoveDisk( return internal::EndSpan(std::move(span), child_->MoveDisk(request)); } +StatusOr +ProjectsTracingConnection::MoveDisk( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::projects::v1::MoveDiskRequest const& request) { + auto span = + internal::MakeSpan("compute_projects_v1::ProjectsConnection::MoveDisk"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->MoveDisk(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +ProjectsTracingConnection::MoveDisk( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = + internal::MakeSpan("compute_projects_v1::ProjectsConnection::MoveDisk"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->MoveDisk(ExperimentalTag{}, operation)); +} + future> ProjectsTracingConnection::MoveInstance( google::cloud::cpp::compute::projects::v1::MoveInstanceRequest const& @@ -134,6 +250,29 @@ ProjectsTracingConnection::MoveInstance( return internal::EndSpan(std::move(span), child_->MoveInstance(request)); } +StatusOr +ProjectsTracingConnection::MoveInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::projects::v1::MoveInstanceRequest const& + request) { + auto span = internal::MakeSpan( + "compute_projects_v1::ProjectsConnection::MoveInstance"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->MoveInstance(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +ProjectsTracingConnection::MoveInstance( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_projects_v1::ProjectsConnection::MoveInstance"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->MoveInstance(ExperimentalTag{}, operation)); +} + future> ProjectsTracingConnection::SetCloudArmorTier( google::cloud::cpp::compute::projects::v1::SetCloudArmorTierRequest const& @@ -144,6 +283,30 @@ ProjectsTracingConnection::SetCloudArmorTier( return internal::EndSpan(std::move(span), child_->SetCloudArmorTier(request)); } +StatusOr +ProjectsTracingConnection::SetCloudArmorTier( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::projects::v1::SetCloudArmorTierRequest const& + request) { + auto span = internal::MakeSpan( + "compute_projects_v1::ProjectsConnection::SetCloudArmorTier"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->SetCloudArmorTier(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +ProjectsTracingConnection::SetCloudArmorTier( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_projects_v1::ProjectsConnection::SetCloudArmorTier"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->SetCloudArmorTier(ExperimentalTag{}, operation)); +} + future> ProjectsTracingConnection::SetCommonInstanceMetadata( google::cloud::cpp::compute::projects::v1:: @@ -155,6 +318,30 @@ ProjectsTracingConnection::SetCommonInstanceMetadata( child_->SetCommonInstanceMetadata(request)); } +StatusOr +ProjectsTracingConnection::SetCommonInstanceMetadata( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::projects::v1:: + SetCommonInstanceMetadataRequest const& request) { + auto span = internal::MakeSpan( + "compute_projects_v1::ProjectsConnection::SetCommonInstanceMetadata"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->SetCommonInstanceMetadata(ExperimentalTag{}, NoAwaitTag{}, + request)); +} + +future> +ProjectsTracingConnection::SetCommonInstanceMetadata( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_projects_v1::ProjectsConnection::SetCommonInstanceMetadata"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->SetCommonInstanceMetadata( + ExperimentalTag{}, operation)); +} + future> ProjectsTracingConnection::SetDefaultNetworkTier( google::cloud::cpp::compute::projects::v1:: @@ -166,6 +353,30 @@ ProjectsTracingConnection::SetDefaultNetworkTier( child_->SetDefaultNetworkTier(request)); } +StatusOr +ProjectsTracingConnection::SetDefaultNetworkTier( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::projects::v1:: + SetDefaultNetworkTierRequest const& request) { + auto span = internal::MakeSpan( + "compute_projects_v1::ProjectsConnection::SetDefaultNetworkTier"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->SetDefaultNetworkTier(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +ProjectsTracingConnection::SetDefaultNetworkTier( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_projects_v1::ProjectsConnection::SetDefaultNetworkTier"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->SetDefaultNetworkTier( + ExperimentalTag{}, operation)); +} + future> ProjectsTracingConnection::SetUsageExportBucket( google::cloud::cpp::compute::projects::v1:: @@ -177,6 +388,30 @@ ProjectsTracingConnection::SetUsageExportBucket( child_->SetUsageExportBucket(request)); } +StatusOr +ProjectsTracingConnection::SetUsageExportBucket( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::projects::v1:: + SetUsageExportBucketRequest const& request) { + auto span = internal::MakeSpan( + "compute_projects_v1::ProjectsConnection::SetUsageExportBucket"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->SetUsageExportBucket(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +ProjectsTracingConnection::SetUsageExportBucket( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_projects_v1::ProjectsConnection::SetUsageExportBucket"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->SetUsageExportBucket( + ExperimentalTag{}, operation)); +} + #endif // GOOGLE_CLOUD_CPP_HAVE_OPENTELEMETRY std::shared_ptr diff --git a/google/cloud/compute/projects/v1/internal/projects_tracing_connection.h b/google/cloud/compute/projects/v1/internal/projects_tracing_connection.h index 5d4d3d747ed31..ebad2c775638c 100644 --- a/google/cloud/compute/projects/v1/internal/projects_tracing_connection.h +++ b/google/cloud/compute/projects/v1/internal/projects_tracing_connection.h @@ -44,19 +44,57 @@ class ProjectsTracingConnection google::cloud::cpp::compute::projects::v1::DisableXpnHostRequest const& request) override; + StatusOr DisableXpnHost( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::projects::v1::DisableXpnHostRequest const& + request) override; + + future> DisableXpnHost( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> DisableXpnResource(google::cloud::cpp::compute::projects::v1:: DisableXpnResourceRequest const& request) override; + StatusOr DisableXpnResource( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::projects::v1:: + DisableXpnResourceRequest const& request) override; + + future> + DisableXpnResource( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> EnableXpnHost( google::cloud::cpp::compute::projects::v1::EnableXpnHostRequest const& request) override; + StatusOr EnableXpnHost( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::projects::v1::EnableXpnHostRequest const& + request) override; + + future> EnableXpnHost( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> EnableXpnResource( google::cloud::cpp::compute::projects::v1::EnableXpnResourceRequest const& request) override; + StatusOr EnableXpnResource( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::projects::v1::EnableXpnResourceRequest const& + request) override; + + future> + EnableXpnResource( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StatusOr GetProject( google::cloud::cpp::compute::projects::v1::GetProjectRequest const& request) override; @@ -78,29 +116,88 @@ class ProjectsTracingConnection google::cloud::cpp::compute::projects::v1::MoveDiskRequest const& request) override; + StatusOr MoveDisk( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::projects::v1::MoveDiskRequest const& request) + override; + + future> MoveDisk( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> MoveInstance( google::cloud::cpp::compute::projects::v1::MoveInstanceRequest const& request) override; + StatusOr MoveInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::projects::v1::MoveInstanceRequest const& + request) override; + + future> MoveInstance( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> SetCloudArmorTier( google::cloud::cpp::compute::projects::v1::SetCloudArmorTierRequest const& request) override; + StatusOr SetCloudArmorTier( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::projects::v1::SetCloudArmorTierRequest const& + request) override; + future> + SetCloudArmorTier( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + + future> + SetCommonInstanceMetadata( + google::cloud::cpp::compute::projects::v1:: + SetCommonInstanceMetadataRequest const& request) override; + + StatusOr SetCommonInstanceMetadata( + ExperimentalTag, NoAwaitTag, google::cloud::cpp::compute::projects::v1:: SetCommonInstanceMetadataRequest const& request) override; + future> + SetCommonInstanceMetadata( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> SetDefaultNetworkTier( google::cloud::cpp::compute::projects::v1:: SetDefaultNetworkTierRequest const& request) override; + StatusOr SetDefaultNetworkTier( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::projects::v1:: + SetDefaultNetworkTierRequest const& request) override; + + future> + SetDefaultNetworkTier( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> SetUsageExportBucket(google::cloud::cpp::compute::projects::v1:: SetUsageExportBucketRequest const& request) override; + StatusOr SetUsageExportBucket( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::projects::v1:: + SetUsageExportBucketRequest const& request) override; + + future> + SetUsageExportBucket( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + private: std::shared_ptr child_; }; diff --git a/google/cloud/compute/projects/v1/mocks/mock_projects_connection.h b/google/cloud/compute/projects/v1/mocks/mock_projects_connection.h index 567cab00413d8..05a4537d05085 100644 --- a/google/cloud/compute/projects/v1/mocks/mock_projects_connection.h +++ b/google/cloud/compute/projects/v1/mocks/mock_projects_connection.h @@ -53,12 +53,38 @@ class MockProjectsConnection : public compute_projects_v1::ProjectsConnection { request), (override)); + MOCK_METHOD( + StatusOr, DisableXpnHost, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::projects::v1::DisableXpnHostRequest const& + request), + (override)); + + MOCK_METHOD(future>, + DisableXpnHost, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD(future>, DisableXpnResource, (google::cloud::cpp::compute::projects::v1:: DisableXpnResourceRequest const& request), (override)); + MOCK_METHOD(StatusOr, + DisableXpnResource, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::projects::v1:: + DisableXpnResourceRequest const& request), + (override)); + + MOCK_METHOD(future>, + DisableXpnResource, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD( future>, EnableXpnHost, @@ -66,12 +92,38 @@ class MockProjectsConnection : public compute_projects_v1::ProjectsConnection { request), (override)); + MOCK_METHOD( + StatusOr, EnableXpnHost, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::projects::v1::EnableXpnHostRequest const& + request), + (override)); + + MOCK_METHOD(future>, + EnableXpnHost, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD(future>, EnableXpnResource, (google::cloud::cpp::compute::projects::v1:: EnableXpnResourceRequest const& request), (override)); + MOCK_METHOD(StatusOr, + EnableXpnResource, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::projects::v1:: + EnableXpnResourceRequest const& request), + (override)); + + MOCK_METHOD(future>, + EnableXpnResource, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr, GetProject, (google::cloud::cpp::compute::projects::v1::GetProjectRequest const& @@ -102,6 +154,18 @@ class MockProjectsConnection : public compute_projects_v1::ProjectsConnection { request), (override)); + MOCK_METHOD(StatusOr, MoveDisk, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::projects::v1::MoveDiskRequest const& + request), + (override)); + + MOCK_METHOD(future>, + MoveDisk, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD( future>, MoveInstance, @@ -109,29 +173,94 @@ class MockProjectsConnection : public compute_projects_v1::ProjectsConnection { request), (override)); + MOCK_METHOD( + StatusOr, MoveInstance, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::projects::v1::MoveInstanceRequest const& + request), + (override)); + + MOCK_METHOD(future>, + MoveInstance, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD(future>, SetCloudArmorTier, (google::cloud::cpp::compute::projects::v1:: SetCloudArmorTierRequest const& request), (override)); + MOCK_METHOD(StatusOr, + SetCloudArmorTier, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::projects::v1:: + SetCloudArmorTierRequest const& request), + (override)); + + MOCK_METHOD(future>, + SetCloudArmorTier, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD(future>, SetCommonInstanceMetadata, (google::cloud::cpp::compute::projects::v1:: SetCommonInstanceMetadataRequest const& request), (override)); + MOCK_METHOD(StatusOr, + SetCommonInstanceMetadata, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::projects::v1:: + SetCommonInstanceMetadataRequest const& request), + (override)); + + MOCK_METHOD(future>, + SetCommonInstanceMetadata, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD(future>, SetDefaultNetworkTier, (google::cloud::cpp::compute::projects::v1:: SetDefaultNetworkTierRequest const& request), (override)); + MOCK_METHOD(StatusOr, + SetDefaultNetworkTier, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::projects::v1:: + SetDefaultNetworkTierRequest const& request), + (override)); + + MOCK_METHOD(future>, + SetDefaultNetworkTier, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD(future>, SetUsageExportBucket, (google::cloud::cpp::compute::projects::v1:: SetUsageExportBucketRequest const& request), (override)); + + MOCK_METHOD(StatusOr, + SetUsageExportBucket, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::projects::v1:: + SetUsageExportBucketRequest const& request), + (override)); + + MOCK_METHOD(future>, + SetUsageExportBucket, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); }; GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END diff --git a/google/cloud/compute/projects/v1/projects_connection.cc b/google/cloud/compute/projects/v1/projects_connection.cc index 54e9d69778388..2433d6e2c6dc1 100644 --- a/google/cloud/compute/projects/v1/projects_connection.cc +++ b/google/cloud/compute/projects/v1/projects_connection.cc @@ -44,10 +44,43 @@ ProjectsConnection::DisableXpnHost( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +ProjectsConnection::DisableXpnHost( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::projects::v1::DisableXpnHostRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> +ProjectsConnection::DisableXpnHost( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +ProjectsConnection::DisableXpnResource( + google::cloud::cpp::compute::projects::v1:: + DisableXpnResourceRequest const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +StatusOr ProjectsConnection::DisableXpnResource( + ExperimentalTag, NoAwaitTag, google::cloud::cpp::compute::projects::v1:: DisableXpnResourceRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +ProjectsConnection::DisableXpnResource( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { return google::cloud::make_ready_future< StatusOr>( Status(StatusCode::kUnimplemented, "not implemented")); @@ -61,6 +94,22 @@ ProjectsConnection::EnableXpnHost( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +ProjectsConnection::EnableXpnHost( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::projects::v1::EnableXpnHostRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +ProjectsConnection::EnableXpnHost( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> ProjectsConnection::EnableXpnResource(google::cloud::cpp::compute::projects:: v1::EnableXpnResourceRequest const&) { @@ -69,6 +118,22 @@ ProjectsConnection::EnableXpnResource(google::cloud::cpp::compute::projects:: Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +ProjectsConnection::EnableXpnResource(ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::projects:: + v1::EnableXpnResourceRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +ProjectsConnection::EnableXpnResource( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr ProjectsConnection::GetProject( google::cloud::cpp::compute::projects::v1::GetProjectRequest const&) { @@ -103,9 +168,41 @@ ProjectsConnection::MoveDisk( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +ProjectsConnection::MoveDisk( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::projects::v1::MoveDiskRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> +ProjectsConnection::MoveDisk( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +ProjectsConnection::MoveInstance( + google::cloud::cpp::compute::projects::v1::MoveInstanceRequest const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +StatusOr ProjectsConnection::MoveInstance( + ExperimentalTag, NoAwaitTag, google::cloud::cpp::compute::projects::v1::MoveInstanceRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +ProjectsConnection::MoveInstance( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { return google::cloud::make_ready_future< StatusOr>( Status(StatusCode::kUnimplemented, "not implemented")); @@ -119,6 +216,22 @@ ProjectsConnection::SetCloudArmorTier(google::cloud::cpp::compute::projects:: Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +ProjectsConnection::SetCloudArmorTier(ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::projects:: + v1::SetCloudArmorTierRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +ProjectsConnection::SetCloudArmorTier( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> ProjectsConnection::SetCommonInstanceMetadata( google::cloud::cpp::compute::projects::v1:: @@ -128,6 +241,23 @@ ProjectsConnection::SetCommonInstanceMetadata( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +ProjectsConnection::SetCommonInstanceMetadata( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::projects::v1:: + SetCommonInstanceMetadataRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +ProjectsConnection::SetCommonInstanceMetadata( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> ProjectsConnection::SetDefaultNetworkTier( google::cloud::cpp::compute::projects::v1:: @@ -137,6 +267,23 @@ ProjectsConnection::SetDefaultNetworkTier( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +ProjectsConnection::SetDefaultNetworkTier( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::projects::v1:: + SetDefaultNetworkTierRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +ProjectsConnection::SetDefaultNetworkTier( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> ProjectsConnection::SetUsageExportBucket( google::cloud::cpp::compute::projects::v1:: @@ -146,6 +293,23 @@ ProjectsConnection::SetUsageExportBucket( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +ProjectsConnection::SetUsageExportBucket( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::projects::v1:: + SetUsageExportBucketRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +ProjectsConnection::SetUsageExportBucket( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace compute_projects_v1 } // namespace cloud diff --git a/google/cloud/compute/projects/v1/projects_connection.h b/google/cloud/compute/projects/v1/projects_connection.h index cd4cffc0f973a..33a408b45fad5 100644 --- a/google/cloud/compute/projects/v1/projects_connection.h +++ b/google/cloud/compute/projects/v1/projects_connection.h @@ -22,8 +22,10 @@ #include "google/cloud/compute/projects/v1/internal/projects_retry_traits.h" #include "google/cloud/compute/projects/v1/projects_connection_idempotency_policy.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/internal/retry_policy_impl.h" +#include "google/cloud/no_await_tag.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" #include "google/cloud/status_or.h" @@ -186,20 +188,59 @@ class ProjectsConnection { google::cloud::cpp::compute::projects::v1::DisableXpnHostRequest const& request); + virtual StatusOr DisableXpnHost( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::projects::v1::DisableXpnHostRequest const& + request); + + virtual future> + DisableXpnHost(ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual future> DisableXpnResource(google::cloud::cpp::compute::projects::v1:: DisableXpnResourceRequest const& request); + virtual StatusOr + DisableXpnResource(ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::projects::v1:: + DisableXpnResourceRequest const& request); + + virtual future> + DisableXpnResource( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual future> EnableXpnHost( google::cloud::cpp::compute::projects::v1::EnableXpnHostRequest const& request); + virtual StatusOr EnableXpnHost( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::projects::v1::EnableXpnHostRequest const& + request); + + virtual future> + EnableXpnHost(ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual future> EnableXpnResource( google::cloud::cpp::compute::projects::v1::EnableXpnResourceRequest const& request); + virtual StatusOr + EnableXpnResource( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::projects::v1::EnableXpnResourceRequest const& + request); + + virtual future> + EnableXpnResource( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual StatusOr GetProject( google::cloud::cpp::compute::projects::v1::GetProjectRequest const& request); @@ -220,28 +261,88 @@ class ProjectsConnection { google::cloud::cpp::compute::projects::v1::MoveDiskRequest const& request); + virtual StatusOr MoveDisk( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::projects::v1::MoveDiskRequest const& + request); + + virtual future> MoveDisk( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual future> MoveInstance( google::cloud::cpp::compute::projects::v1::MoveInstanceRequest const& request); + virtual StatusOr MoveInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::projects::v1::MoveInstanceRequest const& + request); + + virtual future> + MoveInstance(ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual future> SetCloudArmorTier( google::cloud::cpp::compute::projects::v1::SetCloudArmorTierRequest const& request); + virtual StatusOr + SetCloudArmorTier( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::projects::v1::SetCloudArmorTierRequest const& + request); + + virtual future> + SetCloudArmorTier( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual future> SetCommonInstanceMetadata( google::cloud::cpp::compute::projects::v1:: SetCommonInstanceMetadataRequest const& request); + virtual StatusOr + SetCommonInstanceMetadata( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::projects::v1:: + SetCommonInstanceMetadataRequest const& request); + + virtual future> + SetCommonInstanceMetadata( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual future> SetDefaultNetworkTier(google::cloud::cpp::compute::projects::v1:: SetDefaultNetworkTierRequest const& request); + virtual StatusOr + SetDefaultNetworkTier(ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::projects::v1:: + SetDefaultNetworkTierRequest const& request); + + virtual future> + SetDefaultNetworkTier( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual future> SetUsageExportBucket(google::cloud::cpp::compute::projects::v1:: SetUsageExportBucketRequest const& request); + + virtual StatusOr + SetUsageExportBucket(ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::projects::v1:: + SetUsageExportBucketRequest const& request); + + virtual future> + SetUsageExportBucket( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); }; GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END diff --git a/google/cloud/compute/public_advertised_prefixes/v1/internal/public_advertised_prefixes_rest_connection_impl.cc b/google/cloud/compute/public_advertised_prefixes/v1/internal/public_advertised_prefixes_rest_connection_impl.cc index 063050ec5ca5d..0467eb660397b 100644 --- a/google/cloud/compute/public_advertised_prefixes/v1/internal/public_advertised_prefixes_rest_connection_impl.cc +++ b/google/cloud/compute/public_advertised_prefixes/v1/internal/public_advertised_prefixes_rest_connection_impl.cc @@ -24,6 +24,7 @@ #include "google/cloud/internal/async_rest_long_running_operation_custom.h" #include "google/cloud/internal/extract_long_running_result.h" #include "google/cloud/internal/pagination_range.h" +#include "google/cloud/internal/rest_lro_helpers.h" #include "google/cloud/internal/rest_retry_loop.h" #include "google/cloud/rest_options.h" #include @@ -104,6 +105,77 @@ PublicAdvertisedPrefixesRestConnectionImpl::Announce( }); } +StatusOr +PublicAdvertisedPrefixesRestConnectionImpl::Announce( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::public_advertised_prefixes::v1:: + AnnounceRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->Announce(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::public_advertised_prefixes::v1:: + AnnounceRequest const& request) { + return stub_->Announce(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +PublicAdvertisedPrefixesRestConnectionImpl::Announce( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::global_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }); +} + future> PublicAdvertisedPrefixesRestConnectionImpl::DeletePublicAdvertisedPrefix( google::cloud::cpp::compute::public_advertised_prefixes::v1:: @@ -163,6 +235,78 @@ PublicAdvertisedPrefixesRestConnectionImpl::DeletePublicAdvertisedPrefix( }); } +StatusOr +PublicAdvertisedPrefixesRestConnectionImpl::DeletePublicAdvertisedPrefix( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::public_advertised_prefixes::v1:: + DeletePublicAdvertisedPrefixRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeletePublicAdvertisedPrefix(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::public_advertised_prefixes::v1:: + DeletePublicAdvertisedPrefixRequest const& request) { + return stub_->DeletePublicAdvertisedPrefix(rest_context, options, + request); + }, + *current, request, __func__); +} + +future> +PublicAdvertisedPrefixesRestConnectionImpl::DeletePublicAdvertisedPrefix( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::global_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }); +} + StatusOr PublicAdvertisedPrefixesRestConnectionImpl::GetPublicAdvertisedPrefix( google::cloud::cpp::compute::public_advertised_prefixes::v1:: @@ -238,6 +382,78 @@ PublicAdvertisedPrefixesRestConnectionImpl::InsertPublicAdvertisedPrefix( }); } +StatusOr +PublicAdvertisedPrefixesRestConnectionImpl::InsertPublicAdvertisedPrefix( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::public_advertised_prefixes::v1:: + InsertPublicAdvertisedPrefixRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->InsertPublicAdvertisedPrefix(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::public_advertised_prefixes::v1:: + InsertPublicAdvertisedPrefixRequest const& request) { + return stub_->InsertPublicAdvertisedPrefix(rest_context, options, + request); + }, + *current, request, __func__); +} + +future> +PublicAdvertisedPrefixesRestConnectionImpl::InsertPublicAdvertisedPrefix( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::global_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }); +} + StreamRange PublicAdvertisedPrefixesRestConnectionImpl::ListPublicAdvertisedPrefixes( google::cloud::cpp::compute::public_advertised_prefixes::v1:: @@ -337,6 +553,78 @@ PublicAdvertisedPrefixesRestConnectionImpl::PatchPublicAdvertisedPrefix( }); } +StatusOr +PublicAdvertisedPrefixesRestConnectionImpl::PatchPublicAdvertisedPrefix( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::public_advertised_prefixes::v1:: + PatchPublicAdvertisedPrefixRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->PatchPublicAdvertisedPrefix(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::public_advertised_prefixes::v1:: + PatchPublicAdvertisedPrefixRequest const& request) { + return stub_->PatchPublicAdvertisedPrefix(rest_context, options, + request); + }, + *current, request, __func__); +} + +future> +PublicAdvertisedPrefixesRestConnectionImpl::PatchPublicAdvertisedPrefix( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::global_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }); +} + future> PublicAdvertisedPrefixesRestConnectionImpl::Withdraw( google::cloud::cpp::compute::public_advertised_prefixes::v1:: @@ -395,6 +683,77 @@ PublicAdvertisedPrefixesRestConnectionImpl::Withdraw( }); } +StatusOr +PublicAdvertisedPrefixesRestConnectionImpl::Withdraw( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::public_advertised_prefixes::v1:: + WithdrawRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->Withdraw(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::public_advertised_prefixes::v1:: + WithdrawRequest const& request) { + return stub_->Withdraw(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +PublicAdvertisedPrefixesRestConnectionImpl::Withdraw( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::global_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace compute_public_advertised_prefixes_v1_internal } // namespace cloud diff --git a/google/cloud/compute/public_advertised_prefixes/v1/internal/public_advertised_prefixes_rest_connection_impl.h b/google/cloud/compute/public_advertised_prefixes/v1/internal/public_advertised_prefixes_rest_connection_impl.h index 1bab1f9a31e99..ca0d859f695cc 100644 --- a/google/cloud/compute/public_advertised_prefixes/v1/internal/public_advertised_prefixes_rest_connection_impl.h +++ b/google/cloud/compute/public_advertised_prefixes/v1/internal/public_advertised_prefixes_rest_connection_impl.h @@ -58,11 +58,31 @@ class PublicAdvertisedPrefixesRestConnectionImpl google::cloud::cpp::compute::public_advertised_prefixes::v1:: AnnounceRequest const& request) override; + StatusOr Announce( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::public_advertised_prefixes::v1:: + AnnounceRequest const& request) override; + + future> Announce( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> DeletePublicAdvertisedPrefix( google::cloud::cpp::compute::public_advertised_prefixes::v1:: DeletePublicAdvertisedPrefixRequest const& request) override; + StatusOr + DeletePublicAdvertisedPrefix( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::public_advertised_prefixes::v1:: + DeletePublicAdvertisedPrefixRequest const& request) override; + + future> + DeletePublicAdvertisedPrefix( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StatusOr GetPublicAdvertisedPrefix( google::cloud::cpp::compute::public_advertised_prefixes::v1:: @@ -73,6 +93,17 @@ class PublicAdvertisedPrefixesRestConnectionImpl google::cloud::cpp::compute::public_advertised_prefixes::v1:: InsertPublicAdvertisedPrefixRequest const& request) override; + StatusOr + InsertPublicAdvertisedPrefix( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::public_advertised_prefixes::v1:: + InsertPublicAdvertisedPrefixRequest const& request) override; + + future> + InsertPublicAdvertisedPrefix( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StreamRange ListPublicAdvertisedPrefixes( google::cloud::cpp::compute::public_advertised_prefixes::v1:: @@ -83,10 +114,30 @@ class PublicAdvertisedPrefixesRestConnectionImpl google::cloud::cpp::compute::public_advertised_prefixes::v1:: PatchPublicAdvertisedPrefixRequest const& request) override; + StatusOr + PatchPublicAdvertisedPrefix( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::public_advertised_prefixes::v1:: + PatchPublicAdvertisedPrefixRequest const& request) override; + + future> + PatchPublicAdvertisedPrefix( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> Withdraw( google::cloud::cpp::compute::public_advertised_prefixes::v1:: WithdrawRequest const& request) override; + StatusOr Withdraw( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::public_advertised_prefixes::v1:: + WithdrawRequest const& request) override; + + future> Withdraw( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + private: static std::unique_ptr diff --git a/google/cloud/compute/public_advertised_prefixes/v1/internal/public_advertised_prefixes_tracing_connection.cc b/google/cloud/compute/public_advertised_prefixes/v1/internal/public_advertised_prefixes_tracing_connection.cc index a48916264678c..0999ce53c31b3 100644 --- a/google/cloud/compute/public_advertised_prefixes/v1/internal/public_advertised_prefixes_tracing_connection.cc +++ b/google/cloud/compute/public_advertised_prefixes/v1/internal/public_advertised_prefixes_tracing_connection.cc @@ -48,6 +48,31 @@ PublicAdvertisedPrefixesTracingConnection::Announce( return internal::EndSpan(std::move(span), child_->Announce(request)); } +StatusOr +PublicAdvertisedPrefixesTracingConnection::Announce( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::public_advertised_prefixes::v1:: + AnnounceRequest const& request) { + auto span = internal::MakeSpan( + "compute_public_advertised_prefixes_v1::" + "PublicAdvertisedPrefixesConnection::Announce"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->Announce(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +PublicAdvertisedPrefixesTracingConnection::Announce( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_public_advertised_prefixes_v1::" + "PublicAdvertisedPrefixesConnection::Announce"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->Announce(ExperimentalTag{}, operation)); +} + future> PublicAdvertisedPrefixesTracingConnection::DeletePublicAdvertisedPrefix( google::cloud::cpp::compute::public_advertised_prefixes::v1:: @@ -60,6 +85,33 @@ PublicAdvertisedPrefixesTracingConnection::DeletePublicAdvertisedPrefix( child_->DeletePublicAdvertisedPrefix(request)); } +StatusOr +PublicAdvertisedPrefixesTracingConnection::DeletePublicAdvertisedPrefix( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::public_advertised_prefixes::v1:: + DeletePublicAdvertisedPrefixRequest const& request) { + auto span = internal::MakeSpan( + "compute_public_advertised_prefixes_v1::" + "PublicAdvertisedPrefixesConnection::DeletePublicAdvertisedPrefix"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->DeletePublicAdvertisedPrefix(ExperimentalTag{}, + NoAwaitTag{}, request)); +} + +future> +PublicAdvertisedPrefixesTracingConnection::DeletePublicAdvertisedPrefix( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_public_advertised_prefixes_v1::" + "PublicAdvertisedPrefixesConnection::DeletePublicAdvertisedPrefix"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), + child_->DeletePublicAdvertisedPrefix(ExperimentalTag{}, operation)); +} + StatusOr PublicAdvertisedPrefixesTracingConnection::GetPublicAdvertisedPrefix( google::cloud::cpp::compute::public_advertised_prefixes::v1:: @@ -83,6 +135,33 @@ PublicAdvertisedPrefixesTracingConnection::InsertPublicAdvertisedPrefix( child_->InsertPublicAdvertisedPrefix(request)); } +StatusOr +PublicAdvertisedPrefixesTracingConnection::InsertPublicAdvertisedPrefix( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::public_advertised_prefixes::v1:: + InsertPublicAdvertisedPrefixRequest const& request) { + auto span = internal::MakeSpan( + "compute_public_advertised_prefixes_v1::" + "PublicAdvertisedPrefixesConnection::InsertPublicAdvertisedPrefix"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->InsertPublicAdvertisedPrefix(ExperimentalTag{}, + NoAwaitTag{}, request)); +} + +future> +PublicAdvertisedPrefixesTracingConnection::InsertPublicAdvertisedPrefix( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_public_advertised_prefixes_v1::" + "PublicAdvertisedPrefixesConnection::InsertPublicAdvertisedPrefix"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), + child_->InsertPublicAdvertisedPrefix(ExperimentalTag{}, operation)); +} + StreamRange PublicAdvertisedPrefixesTracingConnection::ListPublicAdvertisedPrefixes( google::cloud::cpp::compute::public_advertised_prefixes::v1:: @@ -109,6 +188,32 @@ PublicAdvertisedPrefixesTracingConnection::PatchPublicAdvertisedPrefix( child_->PatchPublicAdvertisedPrefix(request)); } +StatusOr +PublicAdvertisedPrefixesTracingConnection::PatchPublicAdvertisedPrefix( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::public_advertised_prefixes::v1:: + PatchPublicAdvertisedPrefixRequest const& request) { + auto span = internal::MakeSpan( + "compute_public_advertised_prefixes_v1::" + "PublicAdvertisedPrefixesConnection::PatchPublicAdvertisedPrefix"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->PatchPublicAdvertisedPrefix(ExperimentalTag{}, + NoAwaitTag{}, request)); +} + +future> +PublicAdvertisedPrefixesTracingConnection::PatchPublicAdvertisedPrefix( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_public_advertised_prefixes_v1::" + "PublicAdvertisedPrefixesConnection::PatchPublicAdvertisedPrefix"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->PatchPublicAdvertisedPrefix( + ExperimentalTag{}, operation)); +} + future> PublicAdvertisedPrefixesTracingConnection::Withdraw( google::cloud::cpp::compute::public_advertised_prefixes::v1:: @@ -120,6 +225,31 @@ PublicAdvertisedPrefixesTracingConnection::Withdraw( return internal::EndSpan(std::move(span), child_->Withdraw(request)); } +StatusOr +PublicAdvertisedPrefixesTracingConnection::Withdraw( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::public_advertised_prefixes::v1:: + WithdrawRequest const& request) { + auto span = internal::MakeSpan( + "compute_public_advertised_prefixes_v1::" + "PublicAdvertisedPrefixesConnection::Withdraw"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->Withdraw(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +PublicAdvertisedPrefixesTracingConnection::Withdraw( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_public_advertised_prefixes_v1::" + "PublicAdvertisedPrefixesConnection::Withdraw"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->Withdraw(ExperimentalTag{}, operation)); +} + #endif // GOOGLE_CLOUD_CPP_HAVE_OPENTELEMETRY std::shared_ptr< diff --git a/google/cloud/compute/public_advertised_prefixes/v1/internal/public_advertised_prefixes_tracing_connection.h b/google/cloud/compute/public_advertised_prefixes/v1/internal/public_advertised_prefixes_tracing_connection.h index 5dfdc331a0103..775e7f84b852f 100644 --- a/google/cloud/compute/public_advertised_prefixes/v1/internal/public_advertised_prefixes_tracing_connection.h +++ b/google/cloud/compute/public_advertised_prefixes/v1/internal/public_advertised_prefixes_tracing_connection.h @@ -48,11 +48,31 @@ class PublicAdvertisedPrefixesTracingConnection google::cloud::cpp::compute::public_advertised_prefixes::v1:: AnnounceRequest const& request) override; + StatusOr Announce( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::public_advertised_prefixes::v1:: + AnnounceRequest const& request) override; + + future> Announce( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> DeletePublicAdvertisedPrefix( google::cloud::cpp::compute::public_advertised_prefixes::v1:: DeletePublicAdvertisedPrefixRequest const& request) override; + StatusOr + DeletePublicAdvertisedPrefix( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::public_advertised_prefixes::v1:: + DeletePublicAdvertisedPrefixRequest const& request) override; + + future> + DeletePublicAdvertisedPrefix( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StatusOr GetPublicAdvertisedPrefix( google::cloud::cpp::compute::public_advertised_prefixes::v1:: @@ -63,6 +83,17 @@ class PublicAdvertisedPrefixesTracingConnection google::cloud::cpp::compute::public_advertised_prefixes::v1:: InsertPublicAdvertisedPrefixRequest const& request) override; + StatusOr + InsertPublicAdvertisedPrefix( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::public_advertised_prefixes::v1:: + InsertPublicAdvertisedPrefixRequest const& request) override; + + future> + InsertPublicAdvertisedPrefix( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StreamRange ListPublicAdvertisedPrefixes( google::cloud::cpp::compute::public_advertised_prefixes::v1:: @@ -73,10 +104,30 @@ class PublicAdvertisedPrefixesTracingConnection google::cloud::cpp::compute::public_advertised_prefixes::v1:: PatchPublicAdvertisedPrefixRequest const& request) override; + StatusOr + PatchPublicAdvertisedPrefix( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::public_advertised_prefixes::v1:: + PatchPublicAdvertisedPrefixRequest const& request) override; + + future> + PatchPublicAdvertisedPrefix( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> Withdraw( google::cloud::cpp::compute::public_advertised_prefixes::v1:: WithdrawRequest const& request) override; + StatusOr Withdraw( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::public_advertised_prefixes::v1:: + WithdrawRequest const& request) override; + + future> Withdraw( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + private: std::shared_ptr< compute_public_advertised_prefixes_v1::PublicAdvertisedPrefixesConnection> diff --git a/google/cloud/compute/public_advertised_prefixes/v1/mocks/mock_public_advertised_prefixes_connection.h b/google/cloud/compute/public_advertised_prefixes/v1/mocks/mock_public_advertised_prefixes_connection.h index 69538265c3bf7..c730d083ec5b5 100644 --- a/google/cloud/compute/public_advertised_prefixes/v1/mocks/mock_public_advertised_prefixes_connection.h +++ b/google/cloud/compute/public_advertised_prefixes/v1/mocks/mock_public_advertised_prefixes_connection.h @@ -55,12 +55,37 @@ class MockPublicAdvertisedPrefixesConnection AnnounceRequest const& request), (override)); + MOCK_METHOD(StatusOr, Announce, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::public_advertised_prefixes::v1:: + AnnounceRequest const& request), + (override)); + + MOCK_METHOD(future>, + Announce, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD(future>, DeletePublicAdvertisedPrefix, (google::cloud::cpp::compute::public_advertised_prefixes::v1:: DeletePublicAdvertisedPrefixRequest const& request), (override)); + MOCK_METHOD(StatusOr, + DeletePublicAdvertisedPrefix, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::public_advertised_prefixes::v1:: + DeletePublicAdvertisedPrefixRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeletePublicAdvertisedPrefix, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD(StatusOr, GetPublicAdvertisedPrefix, (google::cloud::cpp::compute::public_advertised_prefixes::v1:: @@ -73,6 +98,19 @@ class MockPublicAdvertisedPrefixesConnection InsertPublicAdvertisedPrefixRequest const& request), (override)); + MOCK_METHOD(StatusOr, + InsertPublicAdvertisedPrefix, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::public_advertised_prefixes::v1:: + InsertPublicAdvertisedPrefixRequest const& request), + (override)); + + MOCK_METHOD(future>, + InsertPublicAdvertisedPrefix, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD( (StreamRange), ListPublicAdvertisedPrefixes, @@ -86,11 +124,36 @@ class MockPublicAdvertisedPrefixesConnection PatchPublicAdvertisedPrefixRequest const& request), (override)); + MOCK_METHOD(StatusOr, + PatchPublicAdvertisedPrefix, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::public_advertised_prefixes::v1:: + PatchPublicAdvertisedPrefixRequest const& request), + (override)); + + MOCK_METHOD(future>, + PatchPublicAdvertisedPrefix, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD(future>, Withdraw, (google::cloud::cpp::compute::public_advertised_prefixes::v1:: WithdrawRequest const& request), (override)); + + MOCK_METHOD(StatusOr, Withdraw, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::public_advertised_prefixes::v1:: + WithdrawRequest const& request), + (override)); + + MOCK_METHOD(future>, + Withdraw, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); }; GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END diff --git a/google/cloud/compute/public_advertised_prefixes/v1/public_advertised_prefixes_connection.cc b/google/cloud/compute/public_advertised_prefixes/v1/public_advertised_prefixes_connection.cc index a959e23820341..67296cbc23055 100644 --- a/google/cloud/compute/public_advertised_prefixes/v1/public_advertised_prefixes_connection.cc +++ b/google/cloud/compute/public_advertised_prefixes/v1/public_advertised_prefixes_connection.cc @@ -47,6 +47,23 @@ PublicAdvertisedPrefixesConnection::Announce( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +PublicAdvertisedPrefixesConnection::Announce( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::public_advertised_prefixes::v1:: + AnnounceRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +PublicAdvertisedPrefixesConnection::Announce( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> PublicAdvertisedPrefixesConnection::DeletePublicAdvertisedPrefix( google::cloud::cpp::compute::public_advertised_prefixes::v1:: @@ -56,6 +73,23 @@ PublicAdvertisedPrefixesConnection::DeletePublicAdvertisedPrefix( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +PublicAdvertisedPrefixesConnection::DeletePublicAdvertisedPrefix( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::public_advertised_prefixes::v1:: + DeletePublicAdvertisedPrefixRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +PublicAdvertisedPrefixesConnection::DeletePublicAdvertisedPrefix( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr PublicAdvertisedPrefixesConnection::GetPublicAdvertisedPrefix( google::cloud::cpp::compute::public_advertised_prefixes::v1:: @@ -72,6 +106,23 @@ PublicAdvertisedPrefixesConnection::InsertPublicAdvertisedPrefix( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +PublicAdvertisedPrefixesConnection::InsertPublicAdvertisedPrefix( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::public_advertised_prefixes::v1:: + InsertPublicAdvertisedPrefixRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +PublicAdvertisedPrefixesConnection::InsertPublicAdvertisedPrefix( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StreamRange PublicAdvertisedPrefixesConnection::ListPublicAdvertisedPrefixes( google::cloud::cpp::compute::public_advertised_prefixes::v1:: @@ -89,6 +140,23 @@ PublicAdvertisedPrefixesConnection::PatchPublicAdvertisedPrefix( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +PublicAdvertisedPrefixesConnection::PatchPublicAdvertisedPrefix( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::public_advertised_prefixes::v1:: + PatchPublicAdvertisedPrefixRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +PublicAdvertisedPrefixesConnection::PatchPublicAdvertisedPrefix( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> PublicAdvertisedPrefixesConnection::Withdraw( google::cloud::cpp::compute::public_advertised_prefixes::v1:: @@ -98,6 +166,23 @@ PublicAdvertisedPrefixesConnection::Withdraw( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +PublicAdvertisedPrefixesConnection::Withdraw( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::public_advertised_prefixes::v1:: + WithdrawRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +PublicAdvertisedPrefixesConnection::Withdraw( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace compute_public_advertised_prefixes_v1 } // namespace cloud diff --git a/google/cloud/compute/public_advertised_prefixes/v1/public_advertised_prefixes_connection.h b/google/cloud/compute/public_advertised_prefixes/v1/public_advertised_prefixes_connection.h index 263388945e6c6..f15a0c44bdd11 100644 --- a/google/cloud/compute/public_advertised_prefixes/v1/public_advertised_prefixes_connection.h +++ b/google/cloud/compute/public_advertised_prefixes/v1/public_advertised_prefixes_connection.h @@ -23,8 +23,10 @@ #include "google/cloud/compute/public_advertised_prefixes/v1/internal/public_advertised_prefixes_retry_traits.h" #include "google/cloud/compute/public_advertised_prefixes/v1/public_advertised_prefixes_connection_idempotency_policy.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/internal/retry_policy_impl.h" +#include "google/cloud/no_await_tag.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" #include "google/cloud/status_or.h" @@ -205,11 +207,31 @@ class PublicAdvertisedPrefixesConnection { google::cloud::cpp::compute::public_advertised_prefixes::v1:: AnnounceRequest const& request); + virtual StatusOr Announce( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::public_advertised_prefixes::v1:: + AnnounceRequest const& request); + + virtual future> Announce( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual future> DeletePublicAdvertisedPrefix( google::cloud::cpp::compute::public_advertised_prefixes::v1:: DeletePublicAdvertisedPrefixRequest const& request); + virtual StatusOr + DeletePublicAdvertisedPrefix( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::public_advertised_prefixes::v1:: + DeletePublicAdvertisedPrefixRequest const& request); + + virtual future> + DeletePublicAdvertisedPrefix( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual StatusOr GetPublicAdvertisedPrefix( google::cloud::cpp::compute::public_advertised_prefixes::v1:: @@ -220,6 +242,17 @@ class PublicAdvertisedPrefixesConnection { google::cloud::cpp::compute::public_advertised_prefixes::v1:: InsertPublicAdvertisedPrefixRequest const& request); + virtual StatusOr + InsertPublicAdvertisedPrefix( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::public_advertised_prefixes::v1:: + InsertPublicAdvertisedPrefixRequest const& request); + + virtual future> + InsertPublicAdvertisedPrefix( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual StreamRange ListPublicAdvertisedPrefixes( google::cloud::cpp::compute::public_advertised_prefixes::v1:: @@ -230,9 +263,29 @@ class PublicAdvertisedPrefixesConnection { google::cloud::cpp::compute::public_advertised_prefixes::v1:: PatchPublicAdvertisedPrefixRequest const& request); + virtual StatusOr + PatchPublicAdvertisedPrefix( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::public_advertised_prefixes::v1:: + PatchPublicAdvertisedPrefixRequest const& request); + + virtual future> + PatchPublicAdvertisedPrefix( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual future> Withdraw( google::cloud::cpp::compute::public_advertised_prefixes::v1:: WithdrawRequest const& request); + + virtual StatusOr Withdraw( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::public_advertised_prefixes::v1:: + WithdrawRequest const& request); + + virtual future> Withdraw( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); }; GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END diff --git a/google/cloud/compute/public_delegated_prefixes/v1/internal/public_delegated_prefixes_rest_connection_impl.cc b/google/cloud/compute/public_delegated_prefixes/v1/internal/public_delegated_prefixes_rest_connection_impl.cc index 539979c4bd6d1..c361595fb3997 100644 --- a/google/cloud/compute/public_delegated_prefixes/v1/internal/public_delegated_prefixes_rest_connection_impl.cc +++ b/google/cloud/compute/public_delegated_prefixes/v1/internal/public_delegated_prefixes_rest_connection_impl.cc @@ -24,6 +24,7 @@ #include "google/cloud/internal/async_rest_long_running_operation_custom.h" #include "google/cloud/internal/extract_long_running_result.h" #include "google/cloud/internal/pagination_range.h" +#include "google/cloud/internal/rest_lro_helpers.h" #include "google/cloud/internal/rest_retry_loop.h" #include "google/cloud/rest_options.h" #include @@ -154,6 +155,79 @@ PublicDelegatedPrefixesRestConnectionImpl::Announce( }); } +StatusOr +PublicDelegatedPrefixesRestConnectionImpl::Announce( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::public_delegated_prefixes::v1:: + AnnounceRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->Announce(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::public_delegated_prefixes::v1:: + AnnounceRequest const& request) { + return stub_->Announce(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +PublicDelegatedPrefixesRestConnectionImpl::Announce( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::region_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }); +} + future> PublicDelegatedPrefixesRestConnectionImpl::DeletePublicDelegatedPrefix( google::cloud::cpp::compute::public_delegated_prefixes::v1:: @@ -215,6 +289,80 @@ PublicDelegatedPrefixesRestConnectionImpl::DeletePublicDelegatedPrefix( }); } +StatusOr +PublicDelegatedPrefixesRestConnectionImpl::DeletePublicDelegatedPrefix( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::public_delegated_prefixes::v1:: + DeletePublicDelegatedPrefixRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeletePublicDelegatedPrefix(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::public_delegated_prefixes::v1:: + DeletePublicDelegatedPrefixRequest const& request) { + return stub_->DeletePublicDelegatedPrefix(rest_context, options, + request); + }, + *current, request, __func__); +} + +future> +PublicDelegatedPrefixesRestConnectionImpl::DeletePublicDelegatedPrefix( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::region_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }); +} + StatusOr PublicDelegatedPrefixesRestConnectionImpl::GetPublicDelegatedPrefix( google::cloud::cpp::compute::public_delegated_prefixes::v1:: @@ -292,6 +440,80 @@ PublicDelegatedPrefixesRestConnectionImpl::InsertPublicDelegatedPrefix( }); } +StatusOr +PublicDelegatedPrefixesRestConnectionImpl::InsertPublicDelegatedPrefix( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::public_delegated_prefixes::v1:: + InsertPublicDelegatedPrefixRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->InsertPublicDelegatedPrefix(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::public_delegated_prefixes::v1:: + InsertPublicDelegatedPrefixRequest const& request) { + return stub_->InsertPublicDelegatedPrefix(rest_context, options, + request); + }, + *current, request, __func__); +} + +future> +PublicDelegatedPrefixesRestConnectionImpl::InsertPublicDelegatedPrefix( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::region_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }); +} + StreamRange PublicDelegatedPrefixesRestConnectionImpl::ListPublicDelegatedPrefixes( google::cloud::cpp::compute::public_delegated_prefixes::v1:: @@ -392,6 +614,80 @@ PublicDelegatedPrefixesRestConnectionImpl::PatchPublicDelegatedPrefix( }); } +StatusOr +PublicDelegatedPrefixesRestConnectionImpl::PatchPublicDelegatedPrefix( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::public_delegated_prefixes::v1:: + PatchPublicDelegatedPrefixRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->PatchPublicDelegatedPrefix(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::public_delegated_prefixes::v1:: + PatchPublicDelegatedPrefixRequest const& request) { + return stub_->PatchPublicDelegatedPrefix(rest_context, options, + request); + }, + *current, request, __func__); +} + +future> +PublicDelegatedPrefixesRestConnectionImpl::PatchPublicDelegatedPrefix( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::region_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }); +} + future> PublicDelegatedPrefixesRestConnectionImpl::Withdraw( google::cloud::cpp::compute::public_delegated_prefixes::v1:: @@ -452,6 +748,79 @@ PublicDelegatedPrefixesRestConnectionImpl::Withdraw( }); } +StatusOr +PublicDelegatedPrefixesRestConnectionImpl::Withdraw( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::public_delegated_prefixes::v1:: + WithdrawRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->Withdraw(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::public_delegated_prefixes::v1:: + WithdrawRequest const& request) { + return stub_->Withdraw(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +PublicDelegatedPrefixesRestConnectionImpl::Withdraw( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::region_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace compute_public_delegated_prefixes_v1_internal } // namespace cloud diff --git a/google/cloud/compute/public_delegated_prefixes/v1/internal/public_delegated_prefixes_rest_connection_impl.h b/google/cloud/compute/public_delegated_prefixes/v1/internal/public_delegated_prefixes_rest_connection_impl.h index 2d1f43e5d9aa5..6ea8a1883c901 100644 --- a/google/cloud/compute/public_delegated_prefixes/v1/internal/public_delegated_prefixes_rest_connection_impl.h +++ b/google/cloud/compute/public_delegated_prefixes/v1/internal/public_delegated_prefixes_rest_connection_impl.h @@ -64,11 +64,31 @@ class PublicDelegatedPrefixesRestConnectionImpl google::cloud::cpp::compute::public_delegated_prefixes::v1:: AnnounceRequest const& request) override; + StatusOr Announce( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::public_delegated_prefixes::v1:: + AnnounceRequest const& request) override; + + future> Announce( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> DeletePublicDelegatedPrefix( google::cloud::cpp::compute::public_delegated_prefixes::v1:: DeletePublicDelegatedPrefixRequest const& request) override; + StatusOr + DeletePublicDelegatedPrefix( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::public_delegated_prefixes::v1:: + DeletePublicDelegatedPrefixRequest const& request) override; + + future> + DeletePublicDelegatedPrefix( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StatusOr GetPublicDelegatedPrefix( google::cloud::cpp::compute::public_delegated_prefixes::v1:: @@ -79,6 +99,17 @@ class PublicDelegatedPrefixesRestConnectionImpl google::cloud::cpp::compute::public_delegated_prefixes::v1:: InsertPublicDelegatedPrefixRequest const& request) override; + StatusOr + InsertPublicDelegatedPrefix( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::public_delegated_prefixes::v1:: + InsertPublicDelegatedPrefixRequest const& request) override; + + future> + InsertPublicDelegatedPrefix( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StreamRange ListPublicDelegatedPrefixes( google::cloud::cpp::compute::public_delegated_prefixes::v1:: @@ -89,10 +120,30 @@ class PublicDelegatedPrefixesRestConnectionImpl google::cloud::cpp::compute::public_delegated_prefixes::v1:: PatchPublicDelegatedPrefixRequest const& request) override; + StatusOr + PatchPublicDelegatedPrefix( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::public_delegated_prefixes::v1:: + PatchPublicDelegatedPrefixRequest const& request) override; + + future> + PatchPublicDelegatedPrefix( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> Withdraw( google::cloud::cpp::compute::public_delegated_prefixes::v1:: WithdrawRequest const& request) override; + StatusOr Withdraw( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::public_delegated_prefixes::v1:: + WithdrawRequest const& request) override; + + future> Withdraw( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + private: static std::unique_ptr< compute_public_delegated_prefixes_v1::PublicDelegatedPrefixesRetryPolicy> diff --git a/google/cloud/compute/public_delegated_prefixes/v1/internal/public_delegated_prefixes_tracing_connection.cc b/google/cloud/compute/public_delegated_prefixes/v1/internal/public_delegated_prefixes_tracing_connection.cc index 6cfacdd76da83..ab73497ad5193 100644 --- a/google/cloud/compute/public_delegated_prefixes/v1/internal/public_delegated_prefixes_tracing_connection.cc +++ b/google/cloud/compute/public_delegated_prefixes/v1/internal/public_delegated_prefixes_tracing_connection.cc @@ -64,6 +64,31 @@ PublicDelegatedPrefixesTracingConnection::Announce( return internal::EndSpan(std::move(span), child_->Announce(request)); } +StatusOr +PublicDelegatedPrefixesTracingConnection::Announce( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::public_delegated_prefixes::v1:: + AnnounceRequest const& request) { + auto span = internal::MakeSpan( + "compute_public_delegated_prefixes_v1::PublicDelegatedPrefixesConnection:" + ":Announce"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->Announce(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +PublicDelegatedPrefixesTracingConnection::Announce( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_public_delegated_prefixes_v1::PublicDelegatedPrefixesConnection:" + ":Announce"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->Announce(ExperimentalTag{}, operation)); +} + future> PublicDelegatedPrefixesTracingConnection::DeletePublicDelegatedPrefix( google::cloud::cpp::compute::public_delegated_prefixes::v1:: @@ -76,6 +101,32 @@ PublicDelegatedPrefixesTracingConnection::DeletePublicDelegatedPrefix( child_->DeletePublicDelegatedPrefix(request)); } +StatusOr +PublicDelegatedPrefixesTracingConnection::DeletePublicDelegatedPrefix( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::public_delegated_prefixes::v1:: + DeletePublicDelegatedPrefixRequest const& request) { + auto span = internal::MakeSpan( + "compute_public_delegated_prefixes_v1::PublicDelegatedPrefixesConnection:" + ":DeletePublicDelegatedPrefix"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->DeletePublicDelegatedPrefix(ExperimentalTag{}, + NoAwaitTag{}, request)); +} + +future> +PublicDelegatedPrefixesTracingConnection::DeletePublicDelegatedPrefix( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_public_delegated_prefixes_v1::PublicDelegatedPrefixesConnection:" + ":DeletePublicDelegatedPrefix"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->DeletePublicDelegatedPrefix( + ExperimentalTag{}, operation)); +} + StatusOr PublicDelegatedPrefixesTracingConnection::GetPublicDelegatedPrefix( google::cloud::cpp::compute::public_delegated_prefixes::v1:: @@ -99,6 +150,32 @@ PublicDelegatedPrefixesTracingConnection::InsertPublicDelegatedPrefix( child_->InsertPublicDelegatedPrefix(request)); } +StatusOr +PublicDelegatedPrefixesTracingConnection::InsertPublicDelegatedPrefix( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::public_delegated_prefixes::v1:: + InsertPublicDelegatedPrefixRequest const& request) { + auto span = internal::MakeSpan( + "compute_public_delegated_prefixes_v1::PublicDelegatedPrefixesConnection:" + ":InsertPublicDelegatedPrefix"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->InsertPublicDelegatedPrefix(ExperimentalTag{}, + NoAwaitTag{}, request)); +} + +future> +PublicDelegatedPrefixesTracingConnection::InsertPublicDelegatedPrefix( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_public_delegated_prefixes_v1::PublicDelegatedPrefixesConnection:" + ":InsertPublicDelegatedPrefix"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->InsertPublicDelegatedPrefix( + ExperimentalTag{}, operation)); +} + StreamRange PublicDelegatedPrefixesTracingConnection::ListPublicDelegatedPrefixes( google::cloud::cpp::compute::public_delegated_prefixes::v1:: @@ -125,6 +202,32 @@ PublicDelegatedPrefixesTracingConnection::PatchPublicDelegatedPrefix( child_->PatchPublicDelegatedPrefix(request)); } +StatusOr +PublicDelegatedPrefixesTracingConnection::PatchPublicDelegatedPrefix( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::public_delegated_prefixes::v1:: + PatchPublicDelegatedPrefixRequest const& request) { + auto span = internal::MakeSpan( + "compute_public_delegated_prefixes_v1::PublicDelegatedPrefixesConnection:" + ":PatchPublicDelegatedPrefix"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->PatchPublicDelegatedPrefix(ExperimentalTag{}, NoAwaitTag{}, + request)); +} + +future> +PublicDelegatedPrefixesTracingConnection::PatchPublicDelegatedPrefix( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_public_delegated_prefixes_v1::PublicDelegatedPrefixesConnection:" + ":PatchPublicDelegatedPrefix"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->PatchPublicDelegatedPrefix( + ExperimentalTag{}, operation)); +} + future> PublicDelegatedPrefixesTracingConnection::Withdraw( google::cloud::cpp::compute::public_delegated_prefixes::v1:: @@ -136,6 +239,31 @@ PublicDelegatedPrefixesTracingConnection::Withdraw( return internal::EndSpan(std::move(span), child_->Withdraw(request)); } +StatusOr +PublicDelegatedPrefixesTracingConnection::Withdraw( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::public_delegated_prefixes::v1:: + WithdrawRequest const& request) { + auto span = internal::MakeSpan( + "compute_public_delegated_prefixes_v1::PublicDelegatedPrefixesConnection:" + ":Withdraw"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->Withdraw(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +PublicDelegatedPrefixesTracingConnection::Withdraw( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_public_delegated_prefixes_v1::PublicDelegatedPrefixesConnection:" + ":Withdraw"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->Withdraw(ExperimentalTag{}, operation)); +} + #endif // GOOGLE_CLOUD_CPP_HAVE_OPENTELEMETRY std::shared_ptr< diff --git a/google/cloud/compute/public_delegated_prefixes/v1/internal/public_delegated_prefixes_tracing_connection.h b/google/cloud/compute/public_delegated_prefixes/v1/internal/public_delegated_prefixes_tracing_connection.h index 0f7af14168be9..18add7f098a2a 100644 --- a/google/cloud/compute/public_delegated_prefixes/v1/internal/public_delegated_prefixes_tracing_connection.h +++ b/google/cloud/compute/public_delegated_prefixes/v1/internal/public_delegated_prefixes_tracing_connection.h @@ -54,11 +54,31 @@ class PublicDelegatedPrefixesTracingConnection google::cloud::cpp::compute::public_delegated_prefixes::v1:: AnnounceRequest const& request) override; + StatusOr Announce( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::public_delegated_prefixes::v1:: + AnnounceRequest const& request) override; + + future> Announce( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> DeletePublicDelegatedPrefix( google::cloud::cpp::compute::public_delegated_prefixes::v1:: DeletePublicDelegatedPrefixRequest const& request) override; + StatusOr + DeletePublicDelegatedPrefix( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::public_delegated_prefixes::v1:: + DeletePublicDelegatedPrefixRequest const& request) override; + + future> + DeletePublicDelegatedPrefix( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StatusOr GetPublicDelegatedPrefix( google::cloud::cpp::compute::public_delegated_prefixes::v1:: @@ -69,6 +89,17 @@ class PublicDelegatedPrefixesTracingConnection google::cloud::cpp::compute::public_delegated_prefixes::v1:: InsertPublicDelegatedPrefixRequest const& request) override; + StatusOr + InsertPublicDelegatedPrefix( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::public_delegated_prefixes::v1:: + InsertPublicDelegatedPrefixRequest const& request) override; + + future> + InsertPublicDelegatedPrefix( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StreamRange ListPublicDelegatedPrefixes( google::cloud::cpp::compute::public_delegated_prefixes::v1:: @@ -79,10 +110,30 @@ class PublicDelegatedPrefixesTracingConnection google::cloud::cpp::compute::public_delegated_prefixes::v1:: PatchPublicDelegatedPrefixRequest const& request) override; + StatusOr + PatchPublicDelegatedPrefix( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::public_delegated_prefixes::v1:: + PatchPublicDelegatedPrefixRequest const& request) override; + + future> + PatchPublicDelegatedPrefix( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> Withdraw( google::cloud::cpp::compute::public_delegated_prefixes::v1:: WithdrawRequest const& request) override; + StatusOr Withdraw( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::public_delegated_prefixes::v1:: + WithdrawRequest const& request) override; + + future> Withdraw( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + private: std::shared_ptr< compute_public_delegated_prefixes_v1::PublicDelegatedPrefixesConnection> diff --git a/google/cloud/compute/public_delegated_prefixes/v1/mocks/mock_public_delegated_prefixes_connection.h b/google/cloud/compute/public_delegated_prefixes/v1/mocks/mock_public_delegated_prefixes_connection.h index 743151a591ba5..52d038beb2646 100644 --- a/google/cloud/compute/public_delegated_prefixes/v1/mocks/mock_public_delegated_prefixes_connection.h +++ b/google/cloud/compute/public_delegated_prefixes/v1/mocks/mock_public_delegated_prefixes_connection.h @@ -63,12 +63,37 @@ class MockPublicDelegatedPrefixesConnection AnnounceRequest const& request), (override)); + MOCK_METHOD(StatusOr, Announce, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::public_delegated_prefixes::v1:: + AnnounceRequest const& request), + (override)); + + MOCK_METHOD(future>, + Announce, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD(future>, DeletePublicDelegatedPrefix, (google::cloud::cpp::compute::public_delegated_prefixes::v1:: DeletePublicDelegatedPrefixRequest const& request), (override)); + MOCK_METHOD(StatusOr, + DeletePublicDelegatedPrefix, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::public_delegated_prefixes::v1:: + DeletePublicDelegatedPrefixRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeletePublicDelegatedPrefix, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD(StatusOr, GetPublicDelegatedPrefix, (google::cloud::cpp::compute::public_delegated_prefixes::v1:: @@ -81,6 +106,19 @@ class MockPublicDelegatedPrefixesConnection InsertPublicDelegatedPrefixRequest const& request), (override)); + MOCK_METHOD(StatusOr, + InsertPublicDelegatedPrefix, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::public_delegated_prefixes::v1:: + InsertPublicDelegatedPrefixRequest const& request), + (override)); + + MOCK_METHOD(future>, + InsertPublicDelegatedPrefix, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD( (StreamRange), ListPublicDelegatedPrefixes, @@ -94,11 +132,36 @@ class MockPublicDelegatedPrefixesConnection PatchPublicDelegatedPrefixRequest const& request), (override)); + MOCK_METHOD(StatusOr, + PatchPublicDelegatedPrefix, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::public_delegated_prefixes::v1:: + PatchPublicDelegatedPrefixRequest const& request), + (override)); + + MOCK_METHOD(future>, + PatchPublicDelegatedPrefix, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD(future>, Withdraw, (google::cloud::cpp::compute::public_delegated_prefixes::v1:: WithdrawRequest const& request), (override)); + + MOCK_METHOD(StatusOr, Withdraw, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::public_delegated_prefixes::v1:: + WithdrawRequest const& request), + (override)); + + MOCK_METHOD(future>, + Withdraw, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); }; GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END diff --git a/google/cloud/compute/public_delegated_prefixes/v1/public_delegated_prefixes_connection.cc b/google/cloud/compute/public_delegated_prefixes/v1/public_delegated_prefixes_connection.cc index b78f475846c10..f53ab9db93392 100644 --- a/google/cloud/compute/public_delegated_prefixes/v1/public_delegated_prefixes_connection.cc +++ b/google/cloud/compute/public_delegated_prefixes/v1/public_delegated_prefixes_connection.cc @@ -57,6 +57,23 @@ PublicDelegatedPrefixesConnection::Announce( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +PublicDelegatedPrefixesConnection::Announce( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::public_delegated_prefixes::v1:: + AnnounceRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +PublicDelegatedPrefixesConnection::Announce( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> PublicDelegatedPrefixesConnection::DeletePublicDelegatedPrefix( google::cloud::cpp::compute::public_delegated_prefixes::v1:: @@ -66,6 +83,23 @@ PublicDelegatedPrefixesConnection::DeletePublicDelegatedPrefix( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +PublicDelegatedPrefixesConnection::DeletePublicDelegatedPrefix( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::public_delegated_prefixes::v1:: + DeletePublicDelegatedPrefixRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +PublicDelegatedPrefixesConnection::DeletePublicDelegatedPrefix( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr PublicDelegatedPrefixesConnection::GetPublicDelegatedPrefix( google::cloud::cpp::compute::public_delegated_prefixes::v1:: @@ -82,6 +116,23 @@ PublicDelegatedPrefixesConnection::InsertPublicDelegatedPrefix( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +PublicDelegatedPrefixesConnection::InsertPublicDelegatedPrefix( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::public_delegated_prefixes::v1:: + InsertPublicDelegatedPrefixRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +PublicDelegatedPrefixesConnection::InsertPublicDelegatedPrefix( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StreamRange PublicDelegatedPrefixesConnection::ListPublicDelegatedPrefixes( google::cloud::cpp::compute::public_delegated_prefixes::v1:: @@ -99,6 +150,23 @@ PublicDelegatedPrefixesConnection::PatchPublicDelegatedPrefix( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +PublicDelegatedPrefixesConnection::PatchPublicDelegatedPrefix( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::public_delegated_prefixes::v1:: + PatchPublicDelegatedPrefixRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +PublicDelegatedPrefixesConnection::PatchPublicDelegatedPrefix( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> PublicDelegatedPrefixesConnection::Withdraw( google::cloud::cpp::compute::public_delegated_prefixes::v1:: @@ -108,6 +176,23 @@ PublicDelegatedPrefixesConnection::Withdraw( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +PublicDelegatedPrefixesConnection::Withdraw( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::public_delegated_prefixes::v1:: + WithdrawRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +PublicDelegatedPrefixesConnection::Withdraw( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace compute_public_delegated_prefixes_v1 } // namespace cloud diff --git a/google/cloud/compute/public_delegated_prefixes/v1/public_delegated_prefixes_connection.h b/google/cloud/compute/public_delegated_prefixes/v1/public_delegated_prefixes_connection.h index ff397b4ffd527..a0a254515c038 100644 --- a/google/cloud/compute/public_delegated_prefixes/v1/public_delegated_prefixes_connection.h +++ b/google/cloud/compute/public_delegated_prefixes/v1/public_delegated_prefixes_connection.h @@ -23,8 +23,10 @@ #include "google/cloud/compute/public_delegated_prefixes/v1/internal/public_delegated_prefixes_retry_traits.h" #include "google/cloud/compute/public_delegated_prefixes/v1/public_delegated_prefixes_connection_idempotency_policy.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/internal/retry_policy_impl.h" +#include "google/cloud/no_await_tag.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" #include "google/cloud/status_or.h" @@ -206,11 +208,31 @@ class PublicDelegatedPrefixesConnection { google::cloud::cpp::compute::public_delegated_prefixes::v1:: AnnounceRequest const& request); + virtual StatusOr Announce( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::public_delegated_prefixes::v1:: + AnnounceRequest const& request); + + virtual future> Announce( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual future> DeletePublicDelegatedPrefix( google::cloud::cpp::compute::public_delegated_prefixes::v1:: DeletePublicDelegatedPrefixRequest const& request); + virtual StatusOr + DeletePublicDelegatedPrefix( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::public_delegated_prefixes::v1:: + DeletePublicDelegatedPrefixRequest const& request); + + virtual future> + DeletePublicDelegatedPrefix( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual StatusOr GetPublicDelegatedPrefix( google::cloud::cpp::compute::public_delegated_prefixes::v1:: @@ -221,6 +243,17 @@ class PublicDelegatedPrefixesConnection { google::cloud::cpp::compute::public_delegated_prefixes::v1:: InsertPublicDelegatedPrefixRequest const& request); + virtual StatusOr + InsertPublicDelegatedPrefix( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::public_delegated_prefixes::v1:: + InsertPublicDelegatedPrefixRequest const& request); + + virtual future> + InsertPublicDelegatedPrefix( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual StreamRange ListPublicDelegatedPrefixes( google::cloud::cpp::compute::public_delegated_prefixes::v1:: @@ -231,9 +264,29 @@ class PublicDelegatedPrefixesConnection { google::cloud::cpp::compute::public_delegated_prefixes::v1:: PatchPublicDelegatedPrefixRequest const& request); + virtual StatusOr + PatchPublicDelegatedPrefix( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::public_delegated_prefixes::v1:: + PatchPublicDelegatedPrefixRequest const& request); + + virtual future> + PatchPublicDelegatedPrefix( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual future> Withdraw( google::cloud::cpp::compute::public_delegated_prefixes::v1:: WithdrawRequest const& request); + + virtual StatusOr Withdraw( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::public_delegated_prefixes::v1:: + WithdrawRequest const& request); + + virtual future> Withdraw( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); }; GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END diff --git a/google/cloud/compute/region_autoscalers/v1/internal/region_autoscalers_rest_connection_impl.cc b/google/cloud/compute/region_autoscalers/v1/internal/region_autoscalers_rest_connection_impl.cc index e85199d5c2504..899271394a172 100644 --- a/google/cloud/compute/region_autoscalers/v1/internal/region_autoscalers_rest_connection_impl.cc +++ b/google/cloud/compute/region_autoscalers/v1/internal/region_autoscalers_rest_connection_impl.cc @@ -23,6 +23,7 @@ #include "google/cloud/internal/async_rest_long_running_operation_custom.h" #include "google/cloud/internal/extract_long_running_result.h" #include "google/cloud/internal/pagination_range.h" +#include "google/cloud/internal/rest_lro_helpers.h" #include "google/cloud/internal/rest_retry_loop.h" #include "google/cloud/rest_options.h" #include @@ -104,6 +105,79 @@ RegionAutoscalersRestConnectionImpl::DeleteAutoscaler( }); } +StatusOr +RegionAutoscalersRestConnectionImpl::DeleteAutoscaler( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_autoscalers::v1:: + DeleteAutoscalerRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteAutoscaler(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::region_autoscalers::v1:: + DeleteAutoscalerRequest const& request) { + return stub_->DeleteAutoscaler(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +RegionAutoscalersRestConnectionImpl::DeleteAutoscaler( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::region_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }); +} + StatusOr RegionAutoscalersRestConnectionImpl::GetAutoscaler( google::cloud::cpp::compute::region_autoscalers::v1:: @@ -180,6 +254,79 @@ RegionAutoscalersRestConnectionImpl::InsertAutoscaler( }); } +StatusOr +RegionAutoscalersRestConnectionImpl::InsertAutoscaler( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_autoscalers::v1:: + InsertAutoscalerRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->InsertAutoscaler(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::region_autoscalers::v1:: + InsertAutoscalerRequest const& request) { + return stub_->InsertAutoscaler(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +RegionAutoscalersRestConnectionImpl::InsertAutoscaler( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::region_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }); +} + StreamRange RegionAutoscalersRestConnectionImpl::ListRegionAutoscalers( google::cloud::cpp::compute::region_autoscalers::v1:: @@ -280,6 +427,79 @@ RegionAutoscalersRestConnectionImpl::PatchAutoscaler( }); } +StatusOr +RegionAutoscalersRestConnectionImpl::PatchAutoscaler( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_autoscalers::v1:: + PatchAutoscalerRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->PatchAutoscaler(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::region_autoscalers::v1:: + PatchAutoscalerRequest const& request) { + return stub_->PatchAutoscaler(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +RegionAutoscalersRestConnectionImpl::PatchAutoscaler( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::region_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }); +} + future> RegionAutoscalersRestConnectionImpl::UpdateAutoscaler( google::cloud::cpp::compute::region_autoscalers::v1:: @@ -340,6 +560,79 @@ RegionAutoscalersRestConnectionImpl::UpdateAutoscaler( }); } +StatusOr +RegionAutoscalersRestConnectionImpl::UpdateAutoscaler( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_autoscalers::v1:: + UpdateAutoscalerRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UpdateAutoscaler(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::region_autoscalers::v1:: + UpdateAutoscalerRequest const& request) { + return stub_->UpdateAutoscaler(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +RegionAutoscalersRestConnectionImpl::UpdateAutoscaler( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::region_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace compute_region_autoscalers_v1_internal } // namespace cloud diff --git a/google/cloud/compute/region_autoscalers/v1/internal/region_autoscalers_rest_connection_impl.h b/google/cloud/compute/region_autoscalers/v1/internal/region_autoscalers_rest_connection_impl.h index 749ab360589d7..440eb5f66cc93 100644 --- a/google/cloud/compute/region_autoscalers/v1/internal/region_autoscalers_rest_connection_impl.h +++ b/google/cloud/compute/region_autoscalers/v1/internal/region_autoscalers_rest_connection_impl.h @@ -56,6 +56,15 @@ class RegionAutoscalersRestConnectionImpl google::cloud::cpp::compute::region_autoscalers::v1:: DeleteAutoscalerRequest const& request) override; + StatusOr DeleteAutoscaler( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_autoscalers::v1:: + DeleteAutoscalerRequest const& request) override; + + future> DeleteAutoscaler( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StatusOr GetAutoscaler( google::cloud::cpp::compute::region_autoscalers::v1:: GetAutoscalerRequest const& request) override; @@ -64,6 +73,15 @@ class RegionAutoscalersRestConnectionImpl google::cloud::cpp::compute::region_autoscalers::v1:: InsertAutoscalerRequest const& request) override; + StatusOr InsertAutoscaler( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_autoscalers::v1:: + InsertAutoscalerRequest const& request) override; + + future> InsertAutoscaler( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StreamRange ListRegionAutoscalers(google::cloud::cpp::compute::region_autoscalers::v1:: ListRegionAutoscalersRequest request) override; @@ -72,10 +90,28 @@ class RegionAutoscalersRestConnectionImpl google::cloud::cpp::compute::region_autoscalers::v1:: PatchAutoscalerRequest const& request) override; + StatusOr PatchAutoscaler( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_autoscalers::v1:: + PatchAutoscalerRequest const& request) override; + + future> PatchAutoscaler( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> UpdateAutoscaler( google::cloud::cpp::compute::region_autoscalers::v1:: UpdateAutoscalerRequest const& request) override; + StatusOr UpdateAutoscaler( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_autoscalers::v1:: + UpdateAutoscalerRequest const& request) override; + + future> UpdateAutoscaler( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + private: static std::unique_ptr< compute_region_autoscalers_v1::RegionAutoscalersRetryPolicy> diff --git a/google/cloud/compute/region_autoscalers/v1/internal/region_autoscalers_tracing_connection.cc b/google/cloud/compute/region_autoscalers/v1/internal/region_autoscalers_tracing_connection.cc index 077dc4781b407..3fd14b1192527 100644 --- a/google/cloud/compute/region_autoscalers/v1/internal/region_autoscalers_tracing_connection.cc +++ b/google/cloud/compute/region_autoscalers/v1/internal/region_autoscalers_tracing_connection.cc @@ -45,6 +45,32 @@ RegionAutoscalersTracingConnection::DeleteAutoscaler( return internal::EndSpan(std::move(span), child_->DeleteAutoscaler(request)); } +StatusOr +RegionAutoscalersTracingConnection::DeleteAutoscaler( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_autoscalers::v1:: + DeleteAutoscalerRequest const& request) { + auto span = internal::MakeSpan( + "compute_region_autoscalers_v1::RegionAutoscalersConnection::" + "DeleteAutoscaler"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->DeleteAutoscaler(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +RegionAutoscalersTracingConnection::DeleteAutoscaler( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_region_autoscalers_v1::RegionAutoscalersConnection::" + "DeleteAutoscaler"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->DeleteAutoscaler(ExperimentalTag{}, operation)); +} + StatusOr RegionAutoscalersTracingConnection::GetAutoscaler( google::cloud::cpp::compute::region_autoscalers::v1:: @@ -67,6 +93,32 @@ RegionAutoscalersTracingConnection::InsertAutoscaler( return internal::EndSpan(std::move(span), child_->InsertAutoscaler(request)); } +StatusOr +RegionAutoscalersTracingConnection::InsertAutoscaler( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_autoscalers::v1:: + InsertAutoscalerRequest const& request) { + auto span = internal::MakeSpan( + "compute_region_autoscalers_v1::RegionAutoscalersConnection::" + "InsertAutoscaler"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->InsertAutoscaler(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +RegionAutoscalersTracingConnection::InsertAutoscaler( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_region_autoscalers_v1::RegionAutoscalersConnection::" + "InsertAutoscaler"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->InsertAutoscaler(ExperimentalTag{}, operation)); +} + StreamRange RegionAutoscalersTracingConnection::ListRegionAutoscalers( google::cloud::cpp::compute::region_autoscalers::v1:: @@ -92,6 +144,31 @@ RegionAutoscalersTracingConnection::PatchAutoscaler( return internal::EndSpan(std::move(span), child_->PatchAutoscaler(request)); } +StatusOr +RegionAutoscalersTracingConnection::PatchAutoscaler( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_autoscalers::v1:: + PatchAutoscalerRequest const& request) { + auto span = internal::MakeSpan( + "compute_region_autoscalers_v1::RegionAutoscalersConnection::" + "PatchAutoscaler"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->PatchAutoscaler(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +RegionAutoscalersTracingConnection::PatchAutoscaler( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_region_autoscalers_v1::RegionAutoscalersConnection::" + "PatchAutoscaler"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->PatchAutoscaler(ExperimentalTag{}, operation)); +} + future> RegionAutoscalersTracingConnection::UpdateAutoscaler( google::cloud::cpp::compute::region_autoscalers::v1:: @@ -103,6 +180,32 @@ RegionAutoscalersTracingConnection::UpdateAutoscaler( return internal::EndSpan(std::move(span), child_->UpdateAutoscaler(request)); } +StatusOr +RegionAutoscalersTracingConnection::UpdateAutoscaler( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_autoscalers::v1:: + UpdateAutoscalerRequest const& request) { + auto span = internal::MakeSpan( + "compute_region_autoscalers_v1::RegionAutoscalersConnection::" + "UpdateAutoscaler"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->UpdateAutoscaler(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +RegionAutoscalersTracingConnection::UpdateAutoscaler( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_region_autoscalers_v1::RegionAutoscalersConnection::" + "UpdateAutoscaler"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->UpdateAutoscaler(ExperimentalTag{}, operation)); +} + #endif // GOOGLE_CLOUD_CPP_HAVE_OPENTELEMETRY std::shared_ptr diff --git a/google/cloud/compute/region_autoscalers/v1/internal/region_autoscalers_tracing_connection.h b/google/cloud/compute/region_autoscalers/v1/internal/region_autoscalers_tracing_connection.h index b9438fcf75052..7c8321f136d00 100644 --- a/google/cloud/compute/region_autoscalers/v1/internal/region_autoscalers_tracing_connection.h +++ b/google/cloud/compute/region_autoscalers/v1/internal/region_autoscalers_tracing_connection.h @@ -46,6 +46,15 @@ class RegionAutoscalersTracingConnection google::cloud::cpp::compute::region_autoscalers::v1:: DeleteAutoscalerRequest const& request) override; + StatusOr DeleteAutoscaler( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_autoscalers::v1:: + DeleteAutoscalerRequest const& request) override; + + future> DeleteAutoscaler( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StatusOr GetAutoscaler( google::cloud::cpp::compute::region_autoscalers::v1:: GetAutoscalerRequest const& request) override; @@ -54,6 +63,15 @@ class RegionAutoscalersTracingConnection google::cloud::cpp::compute::region_autoscalers::v1:: InsertAutoscalerRequest const& request) override; + StatusOr InsertAutoscaler( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_autoscalers::v1:: + InsertAutoscalerRequest const& request) override; + + future> InsertAutoscaler( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StreamRange ListRegionAutoscalers(google::cloud::cpp::compute::region_autoscalers::v1:: ListRegionAutoscalersRequest request) override; @@ -62,10 +80,28 @@ class RegionAutoscalersTracingConnection google::cloud::cpp::compute::region_autoscalers::v1:: PatchAutoscalerRequest const& request) override; + StatusOr PatchAutoscaler( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_autoscalers::v1:: + PatchAutoscalerRequest const& request) override; + + future> PatchAutoscaler( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> UpdateAutoscaler( google::cloud::cpp::compute::region_autoscalers::v1:: UpdateAutoscalerRequest const& request) override; + StatusOr UpdateAutoscaler( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_autoscalers::v1:: + UpdateAutoscalerRequest const& request) override; + + future> UpdateAutoscaler( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + private: std::shared_ptr child_; diff --git a/google/cloud/compute/region_autoscalers/v1/mocks/mock_region_autoscalers_connection.h b/google/cloud/compute/region_autoscalers/v1/mocks/mock_region_autoscalers_connection.h index f8276b2ce1336..83c5a2544929d 100644 --- a/google/cloud/compute/region_autoscalers/v1/mocks/mock_region_autoscalers_connection.h +++ b/google/cloud/compute/region_autoscalers/v1/mocks/mock_region_autoscalers_connection.h @@ -53,6 +53,19 @@ class MockRegionAutoscalersConnection DeleteAutoscalerRequest const& request), (override)); + MOCK_METHOD(StatusOr, + DeleteAutoscaler, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_autoscalers::v1:: + DeleteAutoscalerRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteAutoscaler, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD(StatusOr, GetAutoscaler, (google::cloud::cpp::compute::region_autoscalers::v1:: @@ -65,6 +78,19 @@ class MockRegionAutoscalersConnection InsertAutoscalerRequest const& request), (override)); + MOCK_METHOD(StatusOr, + InsertAutoscaler, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_autoscalers::v1:: + InsertAutoscalerRequest const& request), + (override)); + + MOCK_METHOD(future>, + InsertAutoscaler, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD((StreamRange), ListRegionAutoscalers, (google::cloud::cpp::compute::region_autoscalers::v1:: @@ -77,11 +103,37 @@ class MockRegionAutoscalersConnection PatchAutoscalerRequest const& request), (override)); + MOCK_METHOD(StatusOr, + PatchAutoscaler, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_autoscalers::v1:: + PatchAutoscalerRequest const& request), + (override)); + + MOCK_METHOD(future>, + PatchAutoscaler, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD(future>, UpdateAutoscaler, (google::cloud::cpp::compute::region_autoscalers::v1:: UpdateAutoscalerRequest const& request), (override)); + + MOCK_METHOD(StatusOr, + UpdateAutoscaler, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_autoscalers::v1:: + UpdateAutoscalerRequest const& request), + (override)); + + MOCK_METHOD(future>, + UpdateAutoscaler, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); }; GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END diff --git a/google/cloud/compute/region_autoscalers/v1/region_autoscalers_connection.cc b/google/cloud/compute/region_autoscalers/v1/region_autoscalers_connection.cc index 9a63c8064232f..011d79199da58 100644 --- a/google/cloud/compute/region_autoscalers/v1/region_autoscalers_connection.cc +++ b/google/cloud/compute/region_autoscalers/v1/region_autoscalers_connection.cc @@ -45,6 +45,23 @@ RegionAutoscalersConnection::DeleteAutoscaler( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +RegionAutoscalersConnection::DeleteAutoscaler( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_autoscalers::v1:: + DeleteAutoscalerRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +RegionAutoscalersConnection::DeleteAutoscaler( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr RegionAutoscalersConnection::GetAutoscaler( google::cloud::cpp::compute::region_autoscalers::v1:: @@ -61,6 +78,23 @@ RegionAutoscalersConnection::InsertAutoscaler( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +RegionAutoscalersConnection::InsertAutoscaler( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_autoscalers::v1:: + InsertAutoscalerRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +RegionAutoscalersConnection::InsertAutoscaler( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StreamRange RegionAutoscalersConnection::ListRegionAutoscalers( google::cloud::cpp::compute::region_autoscalers::v1:: @@ -78,6 +112,23 @@ RegionAutoscalersConnection::PatchAutoscaler( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +RegionAutoscalersConnection::PatchAutoscaler( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_autoscalers::v1:: + PatchAutoscalerRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +RegionAutoscalersConnection::PatchAutoscaler( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> RegionAutoscalersConnection::UpdateAutoscaler( google::cloud::cpp::compute::region_autoscalers::v1:: @@ -87,6 +138,23 @@ RegionAutoscalersConnection::UpdateAutoscaler( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +RegionAutoscalersConnection::UpdateAutoscaler( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_autoscalers::v1:: + UpdateAutoscalerRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +RegionAutoscalersConnection::UpdateAutoscaler( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace compute_region_autoscalers_v1 } // namespace cloud diff --git a/google/cloud/compute/region_autoscalers/v1/region_autoscalers_connection.h b/google/cloud/compute/region_autoscalers/v1/region_autoscalers_connection.h index 97d02efa0b180..c48481247832a 100644 --- a/google/cloud/compute/region_autoscalers/v1/region_autoscalers_connection.h +++ b/google/cloud/compute/region_autoscalers/v1/region_autoscalers_connection.h @@ -22,8 +22,10 @@ #include "google/cloud/compute/region_autoscalers/v1/internal/region_autoscalers_retry_traits.h" #include "google/cloud/compute/region_autoscalers/v1/region_autoscalers_connection_idempotency_policy.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/internal/retry_policy_impl.h" +#include "google/cloud/no_await_tag.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" #include "google/cloud/status_or.h" @@ -190,6 +192,15 @@ class RegionAutoscalersConnection { DeleteAutoscaler(google::cloud::cpp::compute::region_autoscalers::v1:: DeleteAutoscalerRequest const& request); + virtual StatusOr DeleteAutoscaler( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_autoscalers::v1:: + DeleteAutoscalerRequest const& request); + + virtual future> + DeleteAutoscaler(ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual StatusOr GetAutoscaler( google::cloud::cpp::compute::region_autoscalers::v1:: GetAutoscalerRequest const& request); @@ -198,6 +209,15 @@ class RegionAutoscalersConnection { InsertAutoscaler(google::cloud::cpp::compute::region_autoscalers::v1:: InsertAutoscalerRequest const& request); + virtual StatusOr InsertAutoscaler( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_autoscalers::v1:: + InsertAutoscalerRequest const& request); + + virtual future> + InsertAutoscaler(ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual StreamRange ListRegionAutoscalers(google::cloud::cpp::compute::region_autoscalers::v1:: ListRegionAutoscalersRequest request); @@ -206,9 +226,27 @@ class RegionAutoscalersConnection { PatchAutoscaler(google::cloud::cpp::compute::region_autoscalers::v1:: PatchAutoscalerRequest const& request); + virtual StatusOr PatchAutoscaler( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_autoscalers::v1:: + PatchAutoscalerRequest const& request); + + virtual future> + PatchAutoscaler(ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual future> UpdateAutoscaler(google::cloud::cpp::compute::region_autoscalers::v1:: UpdateAutoscalerRequest const& request); + + virtual StatusOr UpdateAutoscaler( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_autoscalers::v1:: + UpdateAutoscalerRequest const& request); + + virtual future> + UpdateAutoscaler(ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); }; GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END diff --git a/google/cloud/compute/region_backend_services/v1/internal/region_backend_services_rest_connection_impl.cc b/google/cloud/compute/region_backend_services/v1/internal/region_backend_services_rest_connection_impl.cc index 63bade12df521..82c61bc1ffcd0 100644 --- a/google/cloud/compute/region_backend_services/v1/internal/region_backend_services_rest_connection_impl.cc +++ b/google/cloud/compute/region_backend_services/v1/internal/region_backend_services_rest_connection_impl.cc @@ -24,6 +24,7 @@ #include "google/cloud/internal/async_rest_long_running_operation_custom.h" #include "google/cloud/internal/extract_long_running_result.h" #include "google/cloud/internal/pagination_range.h" +#include "google/cloud/internal/rest_lro_helpers.h" #include "google/cloud/internal/rest_retry_loop.h" #include "google/cloud/rest_options.h" #include @@ -106,6 +107,79 @@ RegionBackendServicesRestConnectionImpl::DeleteBackendService( }); } +StatusOr +RegionBackendServicesRestConnectionImpl::DeleteBackendService( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_backend_services::v1:: + DeleteBackendServiceRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteBackendService(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::region_backend_services::v1:: + DeleteBackendServiceRequest const& request) { + return stub_->DeleteBackendService(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +RegionBackendServicesRestConnectionImpl::DeleteBackendService( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::region_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }); +} + StatusOr RegionBackendServicesRestConnectionImpl::GetBackendService( google::cloud::cpp::compute::region_backend_services::v1:: @@ -214,6 +288,79 @@ RegionBackendServicesRestConnectionImpl::InsertBackendService( }); } +StatusOr +RegionBackendServicesRestConnectionImpl::InsertBackendService( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_backend_services::v1:: + InsertBackendServiceRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->InsertBackendService(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::region_backend_services::v1:: + InsertBackendServiceRequest const& request) { + return stub_->InsertBackendService(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +RegionBackendServicesRestConnectionImpl::InsertBackendService( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::region_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }); +} + StreamRange RegionBackendServicesRestConnectionImpl::ListRegionBackendServices( google::cloud::cpp::compute::region_backend_services::v1:: @@ -352,6 +499,79 @@ RegionBackendServicesRestConnectionImpl::PatchBackendService( }); } +StatusOr +RegionBackendServicesRestConnectionImpl::PatchBackendService( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_backend_services::v1:: + PatchBackendServiceRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->PatchBackendService(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::region_backend_services::v1:: + PatchBackendServiceRequest const& request) { + return stub_->PatchBackendService(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +RegionBackendServicesRestConnectionImpl::PatchBackendService( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::region_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }); +} + StatusOr RegionBackendServicesRestConnectionImpl::SetIamPolicy( google::cloud::cpp::compute::region_backend_services::v1:: @@ -428,6 +648,79 @@ RegionBackendServicesRestConnectionImpl::SetSecurityPolicy( }); } +StatusOr +RegionBackendServicesRestConnectionImpl::SetSecurityPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_backend_services::v1:: + SetSecurityPolicyRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->SetSecurityPolicy(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::region_backend_services::v1:: + SetSecurityPolicyRequest const& request) { + return stub_->SetSecurityPolicy(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +RegionBackendServicesRestConnectionImpl::SetSecurityPolicy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::region_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }); +} + StatusOr RegionBackendServicesRestConnectionImpl::TestIamPermissions( google::cloud::cpp::compute::region_backend_services::v1:: @@ -504,6 +797,79 @@ RegionBackendServicesRestConnectionImpl::UpdateBackendService( }); } +StatusOr +RegionBackendServicesRestConnectionImpl::UpdateBackendService( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_backend_services::v1:: + UpdateBackendServiceRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UpdateBackendService(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::region_backend_services::v1:: + UpdateBackendServiceRequest const& request) { + return stub_->UpdateBackendService(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +RegionBackendServicesRestConnectionImpl::UpdateBackendService( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::region_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace compute_region_backend_services_v1_internal } // namespace cloud diff --git a/google/cloud/compute/region_backend_services/v1/internal/region_backend_services_rest_connection_impl.h b/google/cloud/compute/region_backend_services/v1/internal/region_backend_services_rest_connection_impl.h index 2d6b2e618a34e..ac18c57b59ece 100644 --- a/google/cloud/compute/region_backend_services/v1/internal/region_backend_services_rest_connection_impl.h +++ b/google/cloud/compute/region_backend_services/v1/internal/region_backend_services_rest_connection_impl.h @@ -59,6 +59,16 @@ class RegionBackendServicesRestConnectionImpl google::cloud::cpp::compute::region_backend_services::v1:: DeleteBackendServiceRequest const& request) override; + StatusOr DeleteBackendService( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_backend_services::v1:: + DeleteBackendServiceRequest const& request) override; + + future> + DeleteBackendService( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StatusOr GetBackendService( google::cloud::cpp::compute::region_backend_services::v1:: GetBackendServiceRequest const& request) override; @@ -76,6 +86,16 @@ class RegionBackendServicesRestConnectionImpl google::cloud::cpp::compute::region_backend_services::v1:: InsertBackendServiceRequest const& request) override; + StatusOr InsertBackendService( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_backend_services::v1:: + InsertBackendServiceRequest const& request) override; + + future> + InsertBackendService( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StreamRange ListRegionBackendServices( google::cloud::cpp::compute::region_backend_services::v1:: @@ -89,6 +109,16 @@ class RegionBackendServicesRestConnectionImpl PatchBackendService(google::cloud::cpp::compute::region_backend_services::v1:: PatchBackendServiceRequest const& request) override; + StatusOr PatchBackendService( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_backend_services::v1:: + PatchBackendServiceRequest const& request) override; + + future> + PatchBackendService( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StatusOr SetIamPolicy( google::cloud::cpp::compute::region_backend_services::v1:: SetIamPolicyRequest const& request) override; @@ -97,6 +127,16 @@ class RegionBackendServicesRestConnectionImpl SetSecurityPolicy(google::cloud::cpp::compute::region_backend_services::v1:: SetSecurityPolicyRequest const& request) override; + StatusOr SetSecurityPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_backend_services::v1:: + SetSecurityPolicyRequest const& request) override; + + future> + SetSecurityPolicy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StatusOr TestIamPermissions(google::cloud::cpp::compute::region_backend_services::v1:: TestIamPermissionsRequest const& request) override; @@ -106,6 +146,16 @@ class RegionBackendServicesRestConnectionImpl google::cloud::cpp::compute::region_backend_services::v1:: UpdateBackendServiceRequest const& request) override; + StatusOr UpdateBackendService( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_backend_services::v1:: + UpdateBackendServiceRequest const& request) override; + + future> + UpdateBackendService( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + private: static std::unique_ptr< compute_region_backend_services_v1::RegionBackendServicesRetryPolicy> diff --git a/google/cloud/compute/region_backend_services/v1/internal/region_backend_services_tracing_connection.cc b/google/cloud/compute/region_backend_services/v1/internal/region_backend_services_tracing_connection.cc index 7d2d401b88cd5..d01f733632415 100644 --- a/google/cloud/compute/region_backend_services/v1/internal/region_backend_services_tracing_connection.cc +++ b/google/cloud/compute/region_backend_services/v1/internal/region_backend_services_tracing_connection.cc @@ -48,6 +48,32 @@ RegionBackendServicesTracingConnection::DeleteBackendService( child_->DeleteBackendService(request)); } +StatusOr +RegionBackendServicesTracingConnection::DeleteBackendService( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_backend_services::v1:: + DeleteBackendServiceRequest const& request) { + auto span = internal::MakeSpan( + "compute_region_backend_services_v1::RegionBackendServicesConnection::" + "DeleteBackendService"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->DeleteBackendService(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +RegionBackendServicesTracingConnection::DeleteBackendService( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_region_backend_services_v1::RegionBackendServicesConnection::" + "DeleteBackendService"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->DeleteBackendService( + ExperimentalTag{}, operation)); +} + StatusOr RegionBackendServicesTracingConnection::GetBackendService( google::cloud::cpp::compute::region_backend_services::v1:: @@ -93,6 +119,32 @@ RegionBackendServicesTracingConnection::InsertBackendService( child_->InsertBackendService(request)); } +StatusOr +RegionBackendServicesTracingConnection::InsertBackendService( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_backend_services::v1:: + InsertBackendServiceRequest const& request) { + auto span = internal::MakeSpan( + "compute_region_backend_services_v1::RegionBackendServicesConnection::" + "InsertBackendService"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->InsertBackendService(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +RegionBackendServicesTracingConnection::InsertBackendService( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_region_backend_services_v1::RegionBackendServicesConnection::" + "InsertBackendService"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->InsertBackendService( + ExperimentalTag{}, operation)); +} + StreamRange RegionBackendServicesTracingConnection::ListRegionBackendServices( google::cloud::cpp::compute::region_backend_services::v1:: @@ -133,6 +185,32 @@ RegionBackendServicesTracingConnection::PatchBackendService( child_->PatchBackendService(request)); } +StatusOr +RegionBackendServicesTracingConnection::PatchBackendService( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_backend_services::v1:: + PatchBackendServiceRequest const& request) { + auto span = internal::MakeSpan( + "compute_region_backend_services_v1::RegionBackendServicesConnection::" + "PatchBackendService"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->PatchBackendService(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +RegionBackendServicesTracingConnection::PatchBackendService( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_region_backend_services_v1::RegionBackendServicesConnection::" + "PatchBackendService"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->PatchBackendService( + ExperimentalTag{}, operation)); +} + StatusOr RegionBackendServicesTracingConnection::SetIamPolicy( google::cloud::cpp::compute::region_backend_services::v1:: @@ -155,6 +233,32 @@ RegionBackendServicesTracingConnection::SetSecurityPolicy( return internal::EndSpan(std::move(span), child_->SetSecurityPolicy(request)); } +StatusOr +RegionBackendServicesTracingConnection::SetSecurityPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_backend_services::v1:: + SetSecurityPolicyRequest const& request) { + auto span = internal::MakeSpan( + "compute_region_backend_services_v1::RegionBackendServicesConnection::" + "SetSecurityPolicy"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->SetSecurityPolicy(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +RegionBackendServicesTracingConnection::SetSecurityPolicy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_region_backend_services_v1::RegionBackendServicesConnection::" + "SetSecurityPolicy"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->SetSecurityPolicy(ExperimentalTag{}, operation)); +} + StatusOr RegionBackendServicesTracingConnection::TestIamPermissions( google::cloud::cpp::compute::region_backend_services::v1:: @@ -178,6 +282,32 @@ RegionBackendServicesTracingConnection::UpdateBackendService( child_->UpdateBackendService(request)); } +StatusOr +RegionBackendServicesTracingConnection::UpdateBackendService( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_backend_services::v1:: + UpdateBackendServiceRequest const& request) { + auto span = internal::MakeSpan( + "compute_region_backend_services_v1::RegionBackendServicesConnection::" + "UpdateBackendService"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->UpdateBackendService(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +RegionBackendServicesTracingConnection::UpdateBackendService( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_region_backend_services_v1::RegionBackendServicesConnection::" + "UpdateBackendService"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->UpdateBackendService( + ExperimentalTag{}, operation)); +} + #endif // GOOGLE_CLOUD_CPP_HAVE_OPENTELEMETRY std::shared_ptr< diff --git a/google/cloud/compute/region_backend_services/v1/internal/region_backend_services_tracing_connection.h b/google/cloud/compute/region_backend_services/v1/internal/region_backend_services_tracing_connection.h index 95fdd43e907ec..4798f78392859 100644 --- a/google/cloud/compute/region_backend_services/v1/internal/region_backend_services_tracing_connection.h +++ b/google/cloud/compute/region_backend_services/v1/internal/region_backend_services_tracing_connection.h @@ -49,6 +49,16 @@ class RegionBackendServicesTracingConnection google::cloud::cpp::compute::region_backend_services::v1:: DeleteBackendServiceRequest const& request) override; + StatusOr DeleteBackendService( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_backend_services::v1:: + DeleteBackendServiceRequest const& request) override; + + future> + DeleteBackendService( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StatusOr GetBackendService( google::cloud::cpp::compute::region_backend_services::v1:: GetBackendServiceRequest const& request) override; @@ -66,6 +76,16 @@ class RegionBackendServicesTracingConnection google::cloud::cpp::compute::region_backend_services::v1:: InsertBackendServiceRequest const& request) override; + StatusOr InsertBackendService( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_backend_services::v1:: + InsertBackendServiceRequest const& request) override; + + future> + InsertBackendService( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StreamRange ListRegionBackendServices( google::cloud::cpp::compute::region_backend_services::v1:: @@ -79,6 +99,16 @@ class RegionBackendServicesTracingConnection PatchBackendService(google::cloud::cpp::compute::region_backend_services::v1:: PatchBackendServiceRequest const& request) override; + StatusOr PatchBackendService( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_backend_services::v1:: + PatchBackendServiceRequest const& request) override; + + future> + PatchBackendService( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StatusOr SetIamPolicy( google::cloud::cpp::compute::region_backend_services::v1:: SetIamPolicyRequest const& request) override; @@ -87,6 +117,16 @@ class RegionBackendServicesTracingConnection SetSecurityPolicy(google::cloud::cpp::compute::region_backend_services::v1:: SetSecurityPolicyRequest const& request) override; + StatusOr SetSecurityPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_backend_services::v1:: + SetSecurityPolicyRequest const& request) override; + + future> + SetSecurityPolicy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StatusOr TestIamPermissions(google::cloud::cpp::compute::region_backend_services::v1:: TestIamPermissionsRequest const& request) override; @@ -96,6 +136,16 @@ class RegionBackendServicesTracingConnection google::cloud::cpp::compute::region_backend_services::v1:: UpdateBackendServiceRequest const& request) override; + StatusOr UpdateBackendService( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_backend_services::v1:: + UpdateBackendServiceRequest const& request) override; + + future> + UpdateBackendService( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + private: std::shared_ptr< compute_region_backend_services_v1::RegionBackendServicesConnection> diff --git a/google/cloud/compute/region_backend_services/v1/mocks/mock_region_backend_services_connection.h b/google/cloud/compute/region_backend_services/v1/mocks/mock_region_backend_services_connection.h index 2a1ee982cc4aa..ae9b042e91205 100644 --- a/google/cloud/compute/region_backend_services/v1/mocks/mock_region_backend_services_connection.h +++ b/google/cloud/compute/region_backend_services/v1/mocks/mock_region_backend_services_connection.h @@ -55,6 +55,19 @@ class MockRegionBackendServicesConnection DeleteBackendServiceRequest const& request), (override)); + MOCK_METHOD(StatusOr, + DeleteBackendService, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_backend_services::v1:: + DeleteBackendServiceRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteBackendService, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD(StatusOr, GetBackendService, (google::cloud::cpp::compute::region_backend_services::v1:: @@ -79,6 +92,19 @@ class MockRegionBackendServicesConnection InsertBackendServiceRequest const& request), (override)); + MOCK_METHOD(StatusOr, + InsertBackendService, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_backend_services::v1:: + InsertBackendServiceRequest const& request), + (override)); + + MOCK_METHOD(future>, + InsertBackendService, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD((StreamRange), ListRegionBackendServices, (google::cloud::cpp::compute::region_backend_services::v1:: @@ -97,6 +123,19 @@ class MockRegionBackendServicesConnection PatchBackendServiceRequest const& request), (override)); + MOCK_METHOD(StatusOr, + PatchBackendService, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_backend_services::v1:: + PatchBackendServiceRequest const& request), + (override)); + + MOCK_METHOD(future>, + PatchBackendService, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD(StatusOr, SetIamPolicy, (google::cloud::cpp::compute::region_backend_services::v1:: SetIamPolicyRequest const& request), @@ -108,6 +147,19 @@ class MockRegionBackendServicesConnection SetSecurityPolicyRequest const& request), (override)); + MOCK_METHOD(StatusOr, + SetSecurityPolicy, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_backend_services::v1:: + SetSecurityPolicyRequest const& request), + (override)); + + MOCK_METHOD(future>, + SetSecurityPolicy, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr, TestIamPermissions, @@ -120,6 +172,19 @@ class MockRegionBackendServicesConnection (google::cloud::cpp::compute::region_backend_services::v1:: UpdateBackendServiceRequest const& request), (override)); + + MOCK_METHOD(StatusOr, + UpdateBackendService, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_backend_services::v1:: + UpdateBackendServiceRequest const& request), + (override)); + + MOCK_METHOD(future>, + UpdateBackendService, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); }; GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END diff --git a/google/cloud/compute/region_backend_services/v1/region_backend_services_connection.cc b/google/cloud/compute/region_backend_services/v1/region_backend_services_connection.cc index 31a94fb2473de..122ea2707f04c 100644 --- a/google/cloud/compute/region_backend_services/v1/region_backend_services_connection.cc +++ b/google/cloud/compute/region_backend_services/v1/region_backend_services_connection.cc @@ -46,6 +46,23 @@ RegionBackendServicesConnection::DeleteBackendService( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +RegionBackendServicesConnection::DeleteBackendService( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_backend_services::v1:: + DeleteBackendServiceRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +RegionBackendServicesConnection::DeleteBackendService( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr RegionBackendServicesConnection::GetBackendService( google::cloud::cpp::compute::region_backend_services::v1:: @@ -76,6 +93,23 @@ RegionBackendServicesConnection::InsertBackendService( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +RegionBackendServicesConnection::InsertBackendService( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_backend_services::v1:: + InsertBackendServiceRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +RegionBackendServicesConnection::InsertBackendService( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StreamRange RegionBackendServicesConnection::ListRegionBackendServices( google::cloud::cpp::compute::region_backend_services::v1:: @@ -101,6 +135,23 @@ RegionBackendServicesConnection::PatchBackendService( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +RegionBackendServicesConnection::PatchBackendService( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_backend_services::v1:: + PatchBackendServiceRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +RegionBackendServicesConnection::PatchBackendService( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr RegionBackendServicesConnection::SetIamPolicy( google::cloud::cpp::compute::region_backend_services::v1:: @@ -117,6 +168,23 @@ RegionBackendServicesConnection::SetSecurityPolicy( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +RegionBackendServicesConnection::SetSecurityPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_backend_services::v1:: + SetSecurityPolicyRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +RegionBackendServicesConnection::SetSecurityPolicy( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr RegionBackendServicesConnection::TestIamPermissions( google::cloud::cpp::compute::region_backend_services::v1:: @@ -133,6 +201,23 @@ RegionBackendServicesConnection::UpdateBackendService( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +RegionBackendServicesConnection::UpdateBackendService( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_backend_services::v1:: + UpdateBackendServiceRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +RegionBackendServicesConnection::UpdateBackendService( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace compute_region_backend_services_v1 } // namespace cloud diff --git a/google/cloud/compute/region_backend_services/v1/region_backend_services_connection.h b/google/cloud/compute/region_backend_services/v1/region_backend_services_connection.h index caefe1660ac07..5e39ae01d136c 100644 --- a/google/cloud/compute/region_backend_services/v1/region_backend_services_connection.h +++ b/google/cloud/compute/region_backend_services/v1/region_backend_services_connection.h @@ -23,8 +23,10 @@ #include "google/cloud/compute/region_backend_services/v1/internal/region_backend_services_retry_traits.h" #include "google/cloud/compute/region_backend_services/v1/region_backend_services_connection_idempotency_policy.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/internal/retry_policy_impl.h" +#include "google/cloud/no_await_tag.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" #include "google/cloud/status_or.h" @@ -198,6 +200,16 @@ class RegionBackendServicesConnection { DeleteBackendService(google::cloud::cpp::compute::region_backend_services:: v1::DeleteBackendServiceRequest const& request); + virtual StatusOr + DeleteBackendService(ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_backend_services:: + v1::DeleteBackendServiceRequest const& request); + + virtual future> + DeleteBackendService( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual StatusOr GetBackendService(google::cloud::cpp::compute::region_backend_services::v1:: GetBackendServiceRequest const& request); @@ -214,6 +226,16 @@ class RegionBackendServicesConnection { InsertBackendService(google::cloud::cpp::compute::region_backend_services:: v1::InsertBackendServiceRequest const& request); + virtual StatusOr + InsertBackendService(ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_backend_services:: + v1::InsertBackendServiceRequest const& request); + + virtual future> + InsertBackendService( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual StreamRange ListRegionBackendServices( google::cloud::cpp::compute::region_backend_services::v1:: @@ -227,6 +249,16 @@ class RegionBackendServicesConnection { PatchBackendService(google::cloud::cpp::compute::region_backend_services::v1:: PatchBackendServiceRequest const& request); + virtual StatusOr + PatchBackendService(ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_backend_services::v1:: + PatchBackendServiceRequest const& request); + + virtual future> + PatchBackendService( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual StatusOr SetIamPolicy( google::cloud::cpp::compute::region_backend_services::v1:: SetIamPolicyRequest const& request); @@ -235,6 +267,16 @@ class RegionBackendServicesConnection { SetSecurityPolicy(google::cloud::cpp::compute::region_backend_services::v1:: SetSecurityPolicyRequest const& request); + virtual StatusOr + SetSecurityPolicy(ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_backend_services::v1:: + SetSecurityPolicyRequest const& request); + + virtual future> + SetSecurityPolicy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual StatusOr TestIamPermissions(google::cloud::cpp::compute::region_backend_services::v1:: TestIamPermissionsRequest const& request); @@ -242,6 +284,16 @@ class RegionBackendServicesConnection { virtual future> UpdateBackendService(google::cloud::cpp::compute::region_backend_services:: v1::UpdateBackendServiceRequest const& request); + + virtual StatusOr + UpdateBackendService(ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_backend_services:: + v1::UpdateBackendServiceRequest const& request); + + virtual future> + UpdateBackendService( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); }; GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END diff --git a/google/cloud/compute/region_commitments/v1/internal/region_commitments_rest_connection_impl.cc b/google/cloud/compute/region_commitments/v1/internal/region_commitments_rest_connection_impl.cc index 5a18bd1321b05..164d41105eeac 100644 --- a/google/cloud/compute/region_commitments/v1/internal/region_commitments_rest_connection_impl.cc +++ b/google/cloud/compute/region_commitments/v1/internal/region_commitments_rest_connection_impl.cc @@ -23,6 +23,7 @@ #include "google/cloud/internal/async_rest_long_running_operation_custom.h" #include "google/cloud/internal/extract_long_running_result.h" #include "google/cloud/internal/pagination_range.h" +#include "google/cloud/internal/rest_lro_helpers.h" #include "google/cloud/internal/rest_retry_loop.h" #include "google/cloud/rest_options.h" #include @@ -163,6 +164,79 @@ RegionCommitmentsRestConnectionImpl::InsertCommitment( }); } +StatusOr +RegionCommitmentsRestConnectionImpl::InsertCommitment( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_commitments::v1:: + InsertCommitmentRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->InsertCommitment(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::region_commitments::v1:: + InsertCommitmentRequest const& request) { + return stub_->InsertCommitment(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +RegionCommitmentsRestConnectionImpl::InsertCommitment( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::region_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }); +} + StreamRange RegionCommitmentsRestConnectionImpl::ListRegionCommitments( google::cloud::cpp::compute::region_commitments::v1:: @@ -263,6 +337,79 @@ RegionCommitmentsRestConnectionImpl::UpdateCommitment( }); } +StatusOr +RegionCommitmentsRestConnectionImpl::UpdateCommitment( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_commitments::v1:: + UpdateCommitmentRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UpdateCommitment(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::region_commitments::v1:: + UpdateCommitmentRequest const& request) { + return stub_->UpdateCommitment(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +RegionCommitmentsRestConnectionImpl::UpdateCommitment( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::region_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace compute_region_commitments_v1_internal } // namespace cloud diff --git a/google/cloud/compute/region_commitments/v1/internal/region_commitments_rest_connection_impl.h b/google/cloud/compute/region_commitments/v1/internal/region_commitments_rest_connection_impl.h index 574073d77b182..02598a07392c3 100644 --- a/google/cloud/compute/region_commitments/v1/internal/region_commitments_rest_connection_impl.h +++ b/google/cloud/compute/region_commitments/v1/internal/region_commitments_rest_connection_impl.h @@ -66,6 +66,15 @@ class RegionCommitmentsRestConnectionImpl google::cloud::cpp::compute::region_commitments::v1:: InsertCommitmentRequest const& request) override; + StatusOr InsertCommitment( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_commitments::v1:: + InsertCommitmentRequest const& request) override; + + future> InsertCommitment( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StreamRange ListRegionCommitments(google::cloud::cpp::compute::region_commitments::v1:: ListRegionCommitmentsRequest request) override; @@ -74,6 +83,15 @@ class RegionCommitmentsRestConnectionImpl google::cloud::cpp::compute::region_commitments::v1:: UpdateCommitmentRequest const& request) override; + StatusOr UpdateCommitment( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_commitments::v1:: + UpdateCommitmentRequest const& request) override; + + future> UpdateCommitment( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + private: static std::unique_ptr< compute_region_commitments_v1::RegionCommitmentsRetryPolicy> diff --git a/google/cloud/compute/region_commitments/v1/internal/region_commitments_tracing_connection.cc b/google/cloud/compute/region_commitments/v1/internal/region_commitments_tracing_connection.cc index 1a145e9ee700b..7120106bb17e0 100644 --- a/google/cloud/compute/region_commitments/v1/internal/region_commitments_tracing_connection.cc +++ b/google/cloud/compute/region_commitments/v1/internal/region_commitments_tracing_connection.cc @@ -71,6 +71,32 @@ RegionCommitmentsTracingConnection::InsertCommitment( return internal::EndSpan(std::move(span), child_->InsertCommitment(request)); } +StatusOr +RegionCommitmentsTracingConnection::InsertCommitment( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_commitments::v1:: + InsertCommitmentRequest const& request) { + auto span = internal::MakeSpan( + "compute_region_commitments_v1::RegionCommitmentsConnection::" + "InsertCommitment"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->InsertCommitment(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +RegionCommitmentsTracingConnection::InsertCommitment( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_region_commitments_v1::RegionCommitmentsConnection::" + "InsertCommitment"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->InsertCommitment(ExperimentalTag{}, operation)); +} + StreamRange RegionCommitmentsTracingConnection::ListRegionCommitments( google::cloud::cpp::compute::region_commitments::v1:: @@ -96,6 +122,32 @@ RegionCommitmentsTracingConnection::UpdateCommitment( return internal::EndSpan(std::move(span), child_->UpdateCommitment(request)); } +StatusOr +RegionCommitmentsTracingConnection::UpdateCommitment( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_commitments::v1:: + UpdateCommitmentRequest const& request) { + auto span = internal::MakeSpan( + "compute_region_commitments_v1::RegionCommitmentsConnection::" + "UpdateCommitment"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->UpdateCommitment(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +RegionCommitmentsTracingConnection::UpdateCommitment( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_region_commitments_v1::RegionCommitmentsConnection::" + "UpdateCommitment"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->UpdateCommitment(ExperimentalTag{}, operation)); +} + #endif // GOOGLE_CLOUD_CPP_HAVE_OPENTELEMETRY std::shared_ptr diff --git a/google/cloud/compute/region_commitments/v1/internal/region_commitments_tracing_connection.h b/google/cloud/compute/region_commitments/v1/internal/region_commitments_tracing_connection.h index c062e9274d7de..322e2cfa7a808 100644 --- a/google/cloud/compute/region_commitments/v1/internal/region_commitments_tracing_connection.h +++ b/google/cloud/compute/region_commitments/v1/internal/region_commitments_tracing_connection.h @@ -56,6 +56,15 @@ class RegionCommitmentsTracingConnection google::cloud::cpp::compute::region_commitments::v1:: InsertCommitmentRequest const& request) override; + StatusOr InsertCommitment( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_commitments::v1:: + InsertCommitmentRequest const& request) override; + + future> InsertCommitment( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StreamRange ListRegionCommitments(google::cloud::cpp::compute::region_commitments::v1:: ListRegionCommitmentsRequest request) override; @@ -64,6 +73,15 @@ class RegionCommitmentsTracingConnection google::cloud::cpp::compute::region_commitments::v1:: UpdateCommitmentRequest const& request) override; + StatusOr UpdateCommitment( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_commitments::v1:: + UpdateCommitmentRequest const& request) override; + + future> UpdateCommitment( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + private: std::shared_ptr child_; diff --git a/google/cloud/compute/region_commitments/v1/mocks/mock_region_commitments_connection.h b/google/cloud/compute/region_commitments/v1/mocks/mock_region_commitments_connection.h index 3dd28a36699ac..f64af78e7ef6d 100644 --- a/google/cloud/compute/region_commitments/v1/mocks/mock_region_commitments_connection.h +++ b/google/cloud/compute/region_commitments/v1/mocks/mock_region_commitments_connection.h @@ -68,6 +68,19 @@ class MockRegionCommitmentsConnection InsertCommitmentRequest const& request), (override)); + MOCK_METHOD(StatusOr, + InsertCommitment, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_commitments::v1:: + InsertCommitmentRequest const& request), + (override)); + + MOCK_METHOD(future>, + InsertCommitment, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD((StreamRange), ListRegionCommitments, (google::cloud::cpp::compute::region_commitments::v1:: @@ -79,6 +92,19 @@ class MockRegionCommitmentsConnection (google::cloud::cpp::compute::region_commitments::v1:: UpdateCommitmentRequest const& request), (override)); + + MOCK_METHOD(StatusOr, + UpdateCommitment, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_commitments::v1:: + UpdateCommitmentRequest const& request), + (override)); + + MOCK_METHOD(future>, + UpdateCommitment, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); }; GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END diff --git a/google/cloud/compute/region_commitments/v1/region_commitments_connection.cc b/google/cloud/compute/region_commitments/v1/region_commitments_connection.cc index 0178044f1a8fe..784967b7700a0 100644 --- a/google/cloud/compute/region_commitments/v1/region_commitments_connection.cc +++ b/google/cloud/compute/region_commitments/v1/region_commitments_connection.cc @@ -62,6 +62,23 @@ RegionCommitmentsConnection::InsertCommitment( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +RegionCommitmentsConnection::InsertCommitment( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_commitments::v1:: + InsertCommitmentRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +RegionCommitmentsConnection::InsertCommitment( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StreamRange RegionCommitmentsConnection::ListRegionCommitments( google::cloud::cpp::compute::region_commitments::v1:: @@ -79,6 +96,23 @@ RegionCommitmentsConnection::UpdateCommitment( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +RegionCommitmentsConnection::UpdateCommitment( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_commitments::v1:: + UpdateCommitmentRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +RegionCommitmentsConnection::UpdateCommitment( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace compute_region_commitments_v1 } // namespace cloud diff --git a/google/cloud/compute/region_commitments/v1/region_commitments_connection.h b/google/cloud/compute/region_commitments/v1/region_commitments_connection.h index 92822dcb50d93..cc3c25f2e7209 100644 --- a/google/cloud/compute/region_commitments/v1/region_commitments_connection.h +++ b/google/cloud/compute/region_commitments/v1/region_commitments_connection.h @@ -22,8 +22,10 @@ #include "google/cloud/compute/region_commitments/v1/internal/region_commitments_retry_traits.h" #include "google/cloud/compute/region_commitments/v1/region_commitments_connection_idempotency_policy.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/internal/retry_policy_impl.h" +#include "google/cloud/no_await_tag.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" #include "google/cloud/status_or.h" @@ -200,6 +202,15 @@ class RegionCommitmentsConnection { InsertCommitment(google::cloud::cpp::compute::region_commitments::v1:: InsertCommitmentRequest const& request); + virtual StatusOr InsertCommitment( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_commitments::v1:: + InsertCommitmentRequest const& request); + + virtual future> + InsertCommitment(ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual StreamRange ListRegionCommitments(google::cloud::cpp::compute::region_commitments::v1:: ListRegionCommitmentsRequest request); @@ -207,6 +218,15 @@ class RegionCommitmentsConnection { virtual future> UpdateCommitment(google::cloud::cpp::compute::region_commitments::v1:: UpdateCommitmentRequest const& request); + + virtual StatusOr UpdateCommitment( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_commitments::v1:: + UpdateCommitmentRequest const& request); + + virtual future> + UpdateCommitment(ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); }; GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END diff --git a/google/cloud/compute/region_disk_types/v1/region_disk_types_connection.h b/google/cloud/compute/region_disk_types/v1/region_disk_types_connection.h index 6680af5546f43..853ec2744420b 100644 --- a/google/cloud/compute/region_disk_types/v1/region_disk_types_connection.h +++ b/google/cloud/compute/region_disk_types/v1/region_disk_types_connection.h @@ -22,6 +22,7 @@ #include "google/cloud/compute/region_disk_types/v1/internal/region_disk_types_retry_traits.h" #include "google/cloud/compute/region_disk_types/v1/region_disk_types_connection_idempotency_policy.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/internal/retry_policy_impl.h" #include "google/cloud/options.h" #include "google/cloud/status_or.h" diff --git a/google/cloud/compute/region_disks/v1/internal/region_disks_rest_connection_impl.cc b/google/cloud/compute/region_disks/v1/internal/region_disks_rest_connection_impl.cc index 860adba42f149..38e83686708f6 100644 --- a/google/cloud/compute/region_disks/v1/internal/region_disks_rest_connection_impl.cc +++ b/google/cloud/compute/region_disks/v1/internal/region_disks_rest_connection_impl.cc @@ -23,6 +23,7 @@ #include "google/cloud/internal/async_rest_long_running_operation_custom.h" #include "google/cloud/internal/extract_long_running_result.h" #include "google/cloud/internal/pagination_range.h" +#include "google/cloud/internal/rest_lro_helpers.h" #include "google/cloud/internal/rest_retry_loop.h" #include "google/cloud/rest_options.h" #include @@ -102,6 +103,79 @@ RegionDisksRestConnectionImpl::AddResourcePolicies( }); } +StatusOr +RegionDisksRestConnectionImpl::AddResourcePolicies( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_disks::v1:: + AddResourcePoliciesRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->AddResourcePolicies(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::region_disks::v1:: + AddResourcePoliciesRequest const& request) { + return stub_->AddResourcePolicies(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +RegionDisksRestConnectionImpl::AddResourcePolicies( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::region_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }); +} + future> RegionDisksRestConnectionImpl::BulkInsert( google::cloud::cpp::compute::region_disks::v1::BulkInsertRequest const& @@ -162,6 +236,79 @@ RegionDisksRestConnectionImpl::BulkInsert( }); } +StatusOr +RegionDisksRestConnectionImpl::BulkInsert( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_disks::v1::BulkInsertRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->BulkInsert(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::region_disks::v1:: + BulkInsertRequest const& request) { + return stub_->BulkInsert(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +RegionDisksRestConnectionImpl::BulkInsert( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::region_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }); +} + future> RegionDisksRestConnectionImpl::CreateSnapshot( google::cloud::cpp::compute::region_disks::v1::CreateSnapshotRequest const& @@ -222,6 +369,79 @@ RegionDisksRestConnectionImpl::CreateSnapshot( }); } +StatusOr +RegionDisksRestConnectionImpl::CreateSnapshot( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_disks::v1::CreateSnapshotRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateSnapshot(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::region_disks::v1:: + CreateSnapshotRequest const& request) { + return stub_->CreateSnapshot(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +RegionDisksRestConnectionImpl::CreateSnapshot( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::region_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }); +} + future> RegionDisksRestConnectionImpl::DeleteDisk( google::cloud::cpp::compute::region_disks::v1::DeleteDiskRequest const& @@ -282,6 +502,79 @@ RegionDisksRestConnectionImpl::DeleteDisk( }); } +StatusOr +RegionDisksRestConnectionImpl::DeleteDisk( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_disks::v1::DeleteDiskRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteDisk(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::region_disks::v1:: + DeleteDiskRequest const& request) { + return stub_->DeleteDisk(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +RegionDisksRestConnectionImpl::DeleteDisk( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::region_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }); +} + StatusOr RegionDisksRestConnectionImpl::GetDisk( google::cloud::cpp::compute::region_disks::v1::GetDiskRequest const& @@ -375,6 +668,79 @@ RegionDisksRestConnectionImpl::InsertDisk( }); } +StatusOr +RegionDisksRestConnectionImpl::InsertDisk( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_disks::v1::InsertDiskRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->InsertDisk(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::region_disks::v1:: + InsertDiskRequest const& request) { + return stub_->InsertDisk(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +RegionDisksRestConnectionImpl::InsertDisk( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::region_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }); +} + StreamRange RegionDisksRestConnectionImpl::ListRegionDisks( google::cloud::cpp::compute::region_disks::v1::ListRegionDisksRequest @@ -471,20 +837,93 @@ RegionDisksRestConnectionImpl::RemoveResourcePolicies( }); } -future> -RegionDisksRestConnectionImpl::Resize( - google::cloud::cpp::compute::region_disks::v1::ResizeRequest const& - request) { +StatusOr +RegionDisksRestConnectionImpl::RemoveResourcePolicies( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_disks::v1:: + RemoveResourcePoliciesRequest const& request) { auto current = google::cloud::internal::SaveCurrentOptions(); - return rest_internal::AsyncRestLongRunningOperation< - google::cloud::cpp::compute::v1::Operation, - google::cloud::cpp::compute::v1::Operation, - google::cloud::cpp::compute::region_operations::v1::GetOperationRequest, - google::cloud::cpp::compute::region_operations::v1:: - DeleteOperationRequest>( - background_->cq(), current, request, - [stub = stub_]( - CompletionQueue& cq, + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->RemoveResourcePolicies(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::region_disks::v1:: + RemoveResourcePoliciesRequest const& request) { + return stub_->RemoveResourcePolicies(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +RegionDisksRestConnectionImpl::RemoveResourcePolicies( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::region_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }); +} + +future> +RegionDisksRestConnectionImpl::Resize( + google::cloud::cpp::compute::region_disks::v1::ResizeRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::region_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, request, + [stub = stub_]( + CompletionQueue& cq, std::unique_ptr context, google::cloud::internal::ImmutableOptions options, google::cloud::cpp::compute::region_disks::v1::ResizeRequest const& @@ -532,6 +971,79 @@ RegionDisksRestConnectionImpl::Resize( }); } +StatusOr +RegionDisksRestConnectionImpl::Resize( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_disks::v1::ResizeRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->Resize(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::region_disks::v1::ResizeRequest const& + request) { + return stub_->Resize(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +RegionDisksRestConnectionImpl::Resize( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::region_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }); +} + StatusOr RegionDisksRestConnectionImpl::SetIamPolicy( google::cloud::cpp::compute::region_disks::v1::SetIamPolicyRequest const& @@ -609,6 +1121,80 @@ RegionDisksRestConnectionImpl::SetLabels( }); } +StatusOr +RegionDisksRestConnectionImpl::SetLabels( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_disks::v1::SetLabelsRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->SetLabels(request), + [this]( + rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::region_disks::v1::SetLabelsRequest const& + request) { + return stub_->SetLabels(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +RegionDisksRestConnectionImpl::SetLabels( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::region_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }); +} + future> RegionDisksRestConnectionImpl::StartAsyncReplication( google::cloud::cpp::compute::region_disks::v1:: @@ -669,6 +1255,79 @@ RegionDisksRestConnectionImpl::StartAsyncReplication( }); } +StatusOr +RegionDisksRestConnectionImpl::StartAsyncReplication( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_disks::v1:: + StartAsyncReplicationRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->StartAsyncReplication(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::region_disks::v1:: + StartAsyncReplicationRequest const& request) { + return stub_->StartAsyncReplication(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +RegionDisksRestConnectionImpl::StartAsyncReplication( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::region_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }); +} + future> RegionDisksRestConnectionImpl::StopAsyncReplication( google::cloud::cpp::compute::region_disks::v1:: @@ -729,6 +1388,79 @@ RegionDisksRestConnectionImpl::StopAsyncReplication( }); } +StatusOr +RegionDisksRestConnectionImpl::StopAsyncReplication( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_disks::v1:: + StopAsyncReplicationRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->StopAsyncReplication(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::region_disks::v1:: + StopAsyncReplicationRequest const& request) { + return stub_->StopAsyncReplication(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +RegionDisksRestConnectionImpl::StopAsyncReplication( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::region_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }); +} + future> RegionDisksRestConnectionImpl::StopGroupAsyncReplication( google::cloud::cpp::compute::region_disks::v1:: @@ -789,6 +1521,79 @@ RegionDisksRestConnectionImpl::StopGroupAsyncReplication( }); } +StatusOr +RegionDisksRestConnectionImpl::StopGroupAsyncReplication( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_disks::v1:: + StopGroupAsyncReplicationRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->StopGroupAsyncReplication(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::region_disks::v1:: + StopGroupAsyncReplicationRequest const& request) { + return stub_->StopGroupAsyncReplication(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +RegionDisksRestConnectionImpl::StopGroupAsyncReplication( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::region_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }); +} + StatusOr RegionDisksRestConnectionImpl::TestIamPermissions( google::cloud::cpp::compute::region_disks::v1:: @@ -865,6 +1670,79 @@ RegionDisksRestConnectionImpl::UpdateDisk( }); } +StatusOr +RegionDisksRestConnectionImpl::UpdateDisk( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_disks::v1::UpdateDiskRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UpdateDisk(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::region_disks::v1:: + UpdateDiskRequest const& request) { + return stub_->UpdateDisk(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +RegionDisksRestConnectionImpl::UpdateDisk( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::region_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace compute_region_disks_v1_internal } // namespace cloud diff --git a/google/cloud/compute/region_disks/v1/internal/region_disks_rest_connection_impl.h b/google/cloud/compute/region_disks/v1/internal/region_disks_rest_connection_impl.h index 7461c3eb682ff..dfa8b164d4695 100644 --- a/google/cloud/compute/region_disks/v1/internal/region_disks_rest_connection_impl.h +++ b/google/cloud/compute/region_disks/v1/internal/region_disks_rest_connection_impl.h @@ -55,18 +55,55 @@ class RegionDisksRestConnectionImpl AddResourcePolicies(google::cloud::cpp::compute::region_disks::v1:: AddResourcePoliciesRequest const& request) override; + StatusOr AddResourcePolicies( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_disks::v1:: + AddResourcePoliciesRequest const& request) override; + + future> + AddResourcePolicies( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> BulkInsert( google::cloud::cpp::compute::region_disks::v1::BulkInsertRequest const& request) override; + StatusOr BulkInsert( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_disks::v1::BulkInsertRequest const& + request) override; + + future> BulkInsert( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> CreateSnapshot( google::cloud::cpp::compute::region_disks::v1:: CreateSnapshotRequest const& request) override; + StatusOr CreateSnapshot( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_disks::v1:: + CreateSnapshotRequest const& request) override; + + future> CreateSnapshot( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> DeleteDisk( google::cloud::cpp::compute::region_disks::v1::DeleteDiskRequest const& request) override; + StatusOr DeleteDisk( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_disks::v1::DeleteDiskRequest const& + request) override; + + future> DeleteDisk( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StatusOr GetDisk( google::cloud::cpp::compute::region_disks::v1::GetDiskRequest const& request) override; @@ -79,6 +116,15 @@ class RegionDisksRestConnectionImpl google::cloud::cpp::compute::region_disks::v1::InsertDiskRequest const& request) override; + StatusOr InsertDisk( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_disks::v1::InsertDiskRequest const& + request) override; + + future> InsertDisk( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StreamRange ListRegionDisks( google::cloud::cpp::compute::region_disks::v1::ListRegionDisksRequest request) override; @@ -88,10 +134,29 @@ class RegionDisksRestConnectionImpl google::cloud::cpp::compute::region_disks::v1:: RemoveResourcePoliciesRequest const& request) override; + StatusOr RemoveResourcePolicies( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_disks::v1:: + RemoveResourcePoliciesRequest const& request) override; + + future> + RemoveResourcePolicies( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> Resize( google::cloud::cpp::compute::region_disks::v1::ResizeRequest const& request) override; + StatusOr Resize( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_disks::v1::ResizeRequest const& + request) override; + + future> Resize( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StatusOr SetIamPolicy( google::cloud::cpp::compute::region_disks::v1::SetIamPolicyRequest const& request) override; @@ -100,20 +165,60 @@ class RegionDisksRestConnectionImpl google::cloud::cpp::compute::region_disks::v1::SetLabelsRequest const& request) override; + StatusOr SetLabels( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_disks::v1::SetLabelsRequest const& + request) override; + + future> SetLabels( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> StartAsyncReplication( google::cloud::cpp::compute::region_disks::v1:: StartAsyncReplicationRequest const& request) override; + StatusOr StartAsyncReplication( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_disks::v1:: + StartAsyncReplicationRequest const& request) override; + + future> + StartAsyncReplication( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> StopAsyncReplication(google::cloud::cpp::compute::region_disks::v1:: StopAsyncReplicationRequest const& request) override; + StatusOr StopAsyncReplication( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_disks::v1:: + StopAsyncReplicationRequest const& request) override; + + future> + StopAsyncReplication( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> StopGroupAsyncReplication( google::cloud::cpp::compute::region_disks::v1:: StopGroupAsyncReplicationRequest const& request) override; + StatusOr + StopGroupAsyncReplication( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_disks::v1:: + StopGroupAsyncReplicationRequest const& request) override; + + future> + StopGroupAsyncReplication( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StatusOr TestIamPermissions(google::cloud::cpp::compute::region_disks::v1:: TestIamPermissionsRequest const& request) override; @@ -122,6 +227,15 @@ class RegionDisksRestConnectionImpl google::cloud::cpp::compute::region_disks::v1::UpdateDiskRequest const& request) override; + StatusOr UpdateDisk( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_disks::v1::UpdateDiskRequest const& + request) override; + + future> UpdateDisk( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + private: static std::unique_ptr retry_policy(Options const& options) { diff --git a/google/cloud/compute/region_disks/v1/internal/region_disks_tracing_connection.cc b/google/cloud/compute/region_disks/v1/internal/region_disks_tracing_connection.cc index 0807f6fa1585a..55d09099cd9d4 100644 --- a/google/cloud/compute/region_disks/v1/internal/region_disks_tracing_connection.cc +++ b/google/cloud/compute/region_disks/v1/internal/region_disks_tracing_connection.cc @@ -44,6 +44,30 @@ RegionDisksTracingConnection::AddResourcePolicies( child_->AddResourcePolicies(request)); } +StatusOr +RegionDisksTracingConnection::AddResourcePolicies( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_disks::v1:: + AddResourcePoliciesRequest const& request) { + auto span = internal::MakeSpan( + "compute_region_disks_v1::RegionDisksConnection::AddResourcePolicies"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->AddResourcePolicies(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +RegionDisksTracingConnection::AddResourcePolicies( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_region_disks_v1::RegionDisksConnection::AddResourcePolicies"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->AddResourcePolicies( + ExperimentalTag{}, operation)); +} + future> RegionDisksTracingConnection::BulkInsert( google::cloud::cpp::compute::region_disks::v1::BulkInsertRequest const& @@ -54,6 +78,29 @@ RegionDisksTracingConnection::BulkInsert( return internal::EndSpan(std::move(span), child_->BulkInsert(request)); } +StatusOr +RegionDisksTracingConnection::BulkInsert( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_disks::v1::BulkInsertRequest const& + request) { + auto span = internal::MakeSpan( + "compute_region_disks_v1::RegionDisksConnection::BulkInsert"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->BulkInsert(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +RegionDisksTracingConnection::BulkInsert( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_region_disks_v1::RegionDisksConnection::BulkInsert"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->BulkInsert(ExperimentalTag{}, operation)); +} + future> RegionDisksTracingConnection::CreateSnapshot( google::cloud::cpp::compute::region_disks::v1::CreateSnapshotRequest const& @@ -64,6 +111,29 @@ RegionDisksTracingConnection::CreateSnapshot( return internal::EndSpan(std::move(span), child_->CreateSnapshot(request)); } +StatusOr +RegionDisksTracingConnection::CreateSnapshot( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_disks::v1::CreateSnapshotRequest const& + request) { + auto span = internal::MakeSpan( + "compute_region_disks_v1::RegionDisksConnection::CreateSnapshot"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->CreateSnapshot(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +RegionDisksTracingConnection::CreateSnapshot( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_region_disks_v1::RegionDisksConnection::CreateSnapshot"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->CreateSnapshot(ExperimentalTag{}, operation)); +} + future> RegionDisksTracingConnection::DeleteDisk( google::cloud::cpp::compute::region_disks::v1::DeleteDiskRequest const& @@ -74,6 +144,29 @@ RegionDisksTracingConnection::DeleteDisk( return internal::EndSpan(std::move(span), child_->DeleteDisk(request)); } +StatusOr +RegionDisksTracingConnection::DeleteDisk( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_disks::v1::DeleteDiskRequest const& + request) { + auto span = internal::MakeSpan( + "compute_region_disks_v1::RegionDisksConnection::DeleteDisk"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->DeleteDisk(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +RegionDisksTracingConnection::DeleteDisk( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_region_disks_v1::RegionDisksConnection::DeleteDisk"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->DeleteDisk(ExperimentalTag{}, operation)); +} + StatusOr RegionDisksTracingConnection::GetDisk( google::cloud::cpp::compute::region_disks::v1::GetDiskRequest const& @@ -104,6 +197,29 @@ RegionDisksTracingConnection::InsertDisk( return internal::EndSpan(std::move(span), child_->InsertDisk(request)); } +StatusOr +RegionDisksTracingConnection::InsertDisk( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_disks::v1::InsertDiskRequest const& + request) { + auto span = internal::MakeSpan( + "compute_region_disks_v1::RegionDisksConnection::InsertDisk"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->InsertDisk(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +RegionDisksTracingConnection::InsertDisk( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_region_disks_v1::RegionDisksConnection::InsertDisk"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->InsertDisk(ExperimentalTag{}, operation)); +} + StreamRange RegionDisksTracingConnection::ListRegionDisks( google::cloud::cpp::compute::region_disks::v1::ListRegionDisksRequest @@ -127,6 +243,30 @@ RegionDisksTracingConnection::RemoveResourcePolicies( child_->RemoveResourcePolicies(request)); } +StatusOr +RegionDisksTracingConnection::RemoveResourcePolicies( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_disks::v1:: + RemoveResourcePoliciesRequest const& request) { + auto span = internal::MakeSpan( + "compute_region_disks_v1::RegionDisksConnection::RemoveResourcePolicies"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->RemoveResourcePolicies(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +RegionDisksTracingConnection::RemoveResourcePolicies( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_region_disks_v1::RegionDisksConnection::RemoveResourcePolicies"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->RemoveResourcePolicies( + ExperimentalTag{}, operation)); +} + future> RegionDisksTracingConnection::Resize( google::cloud::cpp::compute::region_disks::v1::ResizeRequest const& @@ -137,6 +277,29 @@ RegionDisksTracingConnection::Resize( return internal::EndSpan(std::move(span), child_->Resize(request)); } +StatusOr +RegionDisksTracingConnection::Resize( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_disks::v1::ResizeRequest const& + request) { + auto span = internal::MakeSpan( + "compute_region_disks_v1::RegionDisksConnection::Resize"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->Resize(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +RegionDisksTracingConnection::Resize( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_region_disks_v1::RegionDisksConnection::Resize"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->Resize(ExperimentalTag{}, operation)); +} + StatusOr RegionDisksTracingConnection::SetIamPolicy( google::cloud::cpp::compute::region_disks::v1::SetIamPolicyRequest const& @@ -157,6 +320,29 @@ RegionDisksTracingConnection::SetLabels( return internal::EndSpan(std::move(span), child_->SetLabels(request)); } +StatusOr +RegionDisksTracingConnection::SetLabels( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_disks::v1::SetLabelsRequest const& + request) { + auto span = internal::MakeSpan( + "compute_region_disks_v1::RegionDisksConnection::SetLabels"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->SetLabels(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +RegionDisksTracingConnection::SetLabels( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_region_disks_v1::RegionDisksConnection::SetLabels"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->SetLabels(ExperimentalTag{}, operation)); +} + future> RegionDisksTracingConnection::StartAsyncReplication( google::cloud::cpp::compute::region_disks::v1:: @@ -168,6 +354,30 @@ RegionDisksTracingConnection::StartAsyncReplication( child_->StartAsyncReplication(request)); } +StatusOr +RegionDisksTracingConnection::StartAsyncReplication( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_disks::v1:: + StartAsyncReplicationRequest const& request) { + auto span = internal::MakeSpan( + "compute_region_disks_v1::RegionDisksConnection::StartAsyncReplication"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->StartAsyncReplication(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +RegionDisksTracingConnection::StartAsyncReplication( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_region_disks_v1::RegionDisksConnection::StartAsyncReplication"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->StartAsyncReplication( + ExperimentalTag{}, operation)); +} + future> RegionDisksTracingConnection::StopAsyncReplication( google::cloud::cpp::compute::region_disks::v1:: @@ -179,6 +389,30 @@ RegionDisksTracingConnection::StopAsyncReplication( child_->StopAsyncReplication(request)); } +StatusOr +RegionDisksTracingConnection::StopAsyncReplication( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_disks::v1:: + StopAsyncReplicationRequest const& request) { + auto span = internal::MakeSpan( + "compute_region_disks_v1::RegionDisksConnection::StopAsyncReplication"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->StopAsyncReplication(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +RegionDisksTracingConnection::StopAsyncReplication( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_region_disks_v1::RegionDisksConnection::StopAsyncReplication"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->StopAsyncReplication( + ExperimentalTag{}, operation)); +} + future> RegionDisksTracingConnection::StopGroupAsyncReplication( google::cloud::cpp::compute::region_disks::v1:: @@ -191,6 +425,32 @@ RegionDisksTracingConnection::StopGroupAsyncReplication( child_->StopGroupAsyncReplication(request)); } +StatusOr +RegionDisksTracingConnection::StopGroupAsyncReplication( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_disks::v1:: + StopGroupAsyncReplicationRequest const& request) { + auto span = internal::MakeSpan( + "compute_region_disks_v1::RegionDisksConnection::" + "StopGroupAsyncReplication"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->StopGroupAsyncReplication(ExperimentalTag{}, NoAwaitTag{}, + request)); +} + +future> +RegionDisksTracingConnection::StopGroupAsyncReplication( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_region_disks_v1::RegionDisksConnection::" + "StopGroupAsyncReplication"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->StopGroupAsyncReplication( + ExperimentalTag{}, operation)); +} + StatusOr RegionDisksTracingConnection::TestIamPermissions( google::cloud::cpp::compute::region_disks::v1:: @@ -211,6 +471,29 @@ RegionDisksTracingConnection::UpdateDisk( return internal::EndSpan(std::move(span), child_->UpdateDisk(request)); } +StatusOr +RegionDisksTracingConnection::UpdateDisk( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_disks::v1::UpdateDiskRequest const& + request) { + auto span = internal::MakeSpan( + "compute_region_disks_v1::RegionDisksConnection::UpdateDisk"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->UpdateDisk(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +RegionDisksTracingConnection::UpdateDisk( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_region_disks_v1::RegionDisksConnection::UpdateDisk"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->UpdateDisk(ExperimentalTag{}, operation)); +} + #endif // GOOGLE_CLOUD_CPP_HAVE_OPENTELEMETRY std::shared_ptr diff --git a/google/cloud/compute/region_disks/v1/internal/region_disks_tracing_connection.h b/google/cloud/compute/region_disks/v1/internal/region_disks_tracing_connection.h index 4f802f6f38037..fab1835089608 100644 --- a/google/cloud/compute/region_disks/v1/internal/region_disks_tracing_connection.h +++ b/google/cloud/compute/region_disks/v1/internal/region_disks_tracing_connection.h @@ -44,18 +44,55 @@ class RegionDisksTracingConnection AddResourcePolicies(google::cloud::cpp::compute::region_disks::v1:: AddResourcePoliciesRequest const& request) override; + StatusOr AddResourcePolicies( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_disks::v1:: + AddResourcePoliciesRequest const& request) override; + + future> + AddResourcePolicies( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> BulkInsert( google::cloud::cpp::compute::region_disks::v1::BulkInsertRequest const& request) override; + StatusOr BulkInsert( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_disks::v1::BulkInsertRequest const& + request) override; + + future> BulkInsert( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> CreateSnapshot( google::cloud::cpp::compute::region_disks::v1:: CreateSnapshotRequest const& request) override; + StatusOr CreateSnapshot( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_disks::v1:: + CreateSnapshotRequest const& request) override; + + future> CreateSnapshot( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> DeleteDisk( google::cloud::cpp::compute::region_disks::v1::DeleteDiskRequest const& request) override; + StatusOr DeleteDisk( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_disks::v1::DeleteDiskRequest const& + request) override; + + future> DeleteDisk( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StatusOr GetDisk( google::cloud::cpp::compute::region_disks::v1::GetDiskRequest const& request) override; @@ -68,6 +105,15 @@ class RegionDisksTracingConnection google::cloud::cpp::compute::region_disks::v1::InsertDiskRequest const& request) override; + StatusOr InsertDisk( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_disks::v1::InsertDiskRequest const& + request) override; + + future> InsertDisk( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StreamRange ListRegionDisks( google::cloud::cpp::compute::region_disks::v1::ListRegionDisksRequest request) override; @@ -77,10 +123,29 @@ class RegionDisksTracingConnection google::cloud::cpp::compute::region_disks::v1:: RemoveResourcePoliciesRequest const& request) override; + StatusOr RemoveResourcePolicies( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_disks::v1:: + RemoveResourcePoliciesRequest const& request) override; + + future> + RemoveResourcePolicies( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> Resize( google::cloud::cpp::compute::region_disks::v1::ResizeRequest const& request) override; + StatusOr Resize( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_disks::v1::ResizeRequest const& + request) override; + + future> Resize( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StatusOr SetIamPolicy( google::cloud::cpp::compute::region_disks::v1::SetIamPolicyRequest const& request) override; @@ -89,20 +154,60 @@ class RegionDisksTracingConnection google::cloud::cpp::compute::region_disks::v1::SetLabelsRequest const& request) override; + StatusOr SetLabels( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_disks::v1::SetLabelsRequest const& + request) override; + + future> SetLabels( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> StartAsyncReplication( google::cloud::cpp::compute::region_disks::v1:: StartAsyncReplicationRequest const& request) override; + StatusOr StartAsyncReplication( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_disks::v1:: + StartAsyncReplicationRequest const& request) override; + + future> + StartAsyncReplication( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> StopAsyncReplication(google::cloud::cpp::compute::region_disks::v1:: StopAsyncReplicationRequest const& request) override; + StatusOr StopAsyncReplication( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_disks::v1:: + StopAsyncReplicationRequest const& request) override; + + future> + StopAsyncReplication( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> StopGroupAsyncReplication( google::cloud::cpp::compute::region_disks::v1:: StopGroupAsyncReplicationRequest const& request) override; + StatusOr + StopGroupAsyncReplication( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_disks::v1:: + StopGroupAsyncReplicationRequest const& request) override; + + future> + StopGroupAsyncReplication( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StatusOr TestIamPermissions(google::cloud::cpp::compute::region_disks::v1:: TestIamPermissionsRequest const& request) override; @@ -111,6 +216,15 @@ class RegionDisksTracingConnection google::cloud::cpp::compute::region_disks::v1::UpdateDiskRequest const& request) override; + StatusOr UpdateDisk( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_disks::v1::UpdateDiskRequest const& + request) override; + + future> UpdateDisk( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + private: std::shared_ptr child_; }; diff --git a/google/cloud/compute/region_disks/v1/mocks/mock_region_disks_connection.h b/google/cloud/compute/region_disks/v1/mocks/mock_region_disks_connection.h index 6bcc77f51011c..8d108b764c1f3 100644 --- a/google/cloud/compute/region_disks/v1/mocks/mock_region_disks_connection.h +++ b/google/cloud/compute/region_disks/v1/mocks/mock_region_disks_connection.h @@ -53,24 +53,76 @@ class MockRegionDisksConnection AddResourcePoliciesRequest const& request), (override)); + MOCK_METHOD(StatusOr, + AddResourcePolicies, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_disks::v1:: + AddResourcePoliciesRequest const& request), + (override)); + + MOCK_METHOD(future>, + AddResourcePolicies, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD( future>, BulkInsert, (google::cloud::cpp::compute::region_disks::v1::BulkInsertRequest const& request), (override)); + MOCK_METHOD( + StatusOr, BulkInsert, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_disks::v1::BulkInsertRequest const& + request), + (override)); + + MOCK_METHOD(future>, + BulkInsert, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD(future>, CreateSnapshot, (google::cloud::cpp::compute::region_disks::v1:: CreateSnapshotRequest const& request), (override)); + MOCK_METHOD(StatusOr, + CreateSnapshot, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_disks::v1:: + CreateSnapshotRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateSnapshot, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteDisk, (google::cloud::cpp::compute::region_disks::v1::DeleteDiskRequest const& request), (override)); + MOCK_METHOD( + StatusOr, DeleteDisk, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_disks::v1::DeleteDiskRequest const& + request), + (override)); + + MOCK_METHOD(future>, + DeleteDisk, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr, GetDisk, (google::cloud::cpp::compute::region_disks::v1::GetDiskRequest const& @@ -89,6 +141,19 @@ class MockRegionDisksConnection request), (override)); + MOCK_METHOD( + StatusOr, InsertDisk, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_disks::v1::InsertDiskRequest const& + request), + (override)); + + MOCK_METHOD(future>, + InsertDisk, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD( (StreamRange), ListRegionDisks, (google::cloud::cpp::compute::region_disks::v1::ListRegionDisksRequest @@ -101,12 +166,38 @@ class MockRegionDisksConnection RemoveResourcePoliciesRequest const& request), (override)); + MOCK_METHOD(StatusOr, + RemoveResourcePolicies, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_disks::v1:: + RemoveResourcePoliciesRequest const& request), + (override)); + + MOCK_METHOD(future>, + RemoveResourcePolicies, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD( future>, Resize, (google::cloud::cpp::compute::region_disks::v1::ResizeRequest const& request), (override)); + MOCK_METHOD( + StatusOr, Resize, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_disks::v1::ResizeRequest const& + request), + (override)); + + MOCK_METHOD(future>, + Resize, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr, SetIamPolicy, (google::cloud::cpp::compute::region_disks::v1::SetIamPolicyRequest const& @@ -119,24 +210,76 @@ class MockRegionDisksConnection request), (override)); + MOCK_METHOD( + StatusOr, SetLabels, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_disks::v1::SetLabelsRequest const& + request), + (override)); + + MOCK_METHOD(future>, + SetLabels, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD(future>, StartAsyncReplication, (google::cloud::cpp::compute::region_disks::v1:: StartAsyncReplicationRequest const& request), (override)); + MOCK_METHOD(StatusOr, + StartAsyncReplication, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_disks::v1:: + StartAsyncReplicationRequest const& request), + (override)); + + MOCK_METHOD(future>, + StartAsyncReplication, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD(future>, StopAsyncReplication, (google::cloud::cpp::compute::region_disks::v1:: StopAsyncReplicationRequest const& request), (override)); + MOCK_METHOD(StatusOr, + StopAsyncReplication, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_disks::v1:: + StopAsyncReplicationRequest const& request), + (override)); + + MOCK_METHOD(future>, + StopAsyncReplication, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD(future>, StopGroupAsyncReplication, (google::cloud::cpp::compute::region_disks::v1:: StopGroupAsyncReplicationRequest const& request), (override)); + MOCK_METHOD(StatusOr, + StopGroupAsyncReplication, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_disks::v1:: + StopGroupAsyncReplicationRequest const& request), + (override)); + + MOCK_METHOD(future>, + StopGroupAsyncReplication, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr, TestIamPermissions, @@ -149,6 +292,19 @@ class MockRegionDisksConnection (google::cloud::cpp::compute::region_disks::v1::UpdateDiskRequest const& request), (override)); + + MOCK_METHOD( + StatusOr, UpdateDisk, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_disks::v1::UpdateDiskRequest const& + request), + (override)); + + MOCK_METHOD(future>, + UpdateDisk, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); }; GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END diff --git a/google/cloud/compute/region_disks/v1/region_disks_connection.cc b/google/cloud/compute/region_disks/v1/region_disks_connection.cc index c980453298340..4401cbea2b762 100644 --- a/google/cloud/compute/region_disks/v1/region_disks_connection.cc +++ b/google/cloud/compute/region_disks/v1/region_disks_connection.cc @@ -45,9 +45,42 @@ RegionDisksConnection::AddResourcePolicies( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +RegionDisksConnection::AddResourcePolicies( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_disks::v1:: + AddResourcePoliciesRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> +RegionDisksConnection::AddResourcePolicies( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +RegionDisksConnection::BulkInsert( + google::cloud::cpp::compute::region_disks::v1::BulkInsertRequest const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +StatusOr RegionDisksConnection::BulkInsert( + ExperimentalTag, NoAwaitTag, google::cloud::cpp::compute::region_disks::v1::BulkInsertRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +RegionDisksConnection::BulkInsert( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { return google::cloud::make_ready_future< StatusOr>( Status(StatusCode::kUnimplemented, "not implemented")); @@ -62,6 +95,23 @@ RegionDisksConnection::CreateSnapshot( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +RegionDisksConnection::CreateSnapshot( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_disks::v1:: + CreateSnapshotRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +RegionDisksConnection::CreateSnapshot( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> RegionDisksConnection::DeleteDisk( google::cloud::cpp::compute::region_disks::v1::DeleteDiskRequest const&) { @@ -70,6 +120,22 @@ RegionDisksConnection::DeleteDisk( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +RegionDisksConnection::DeleteDisk( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_disks::v1::DeleteDiskRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +RegionDisksConnection::DeleteDisk( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr RegionDisksConnection::GetDisk( google::cloud::cpp::compute::region_disks::v1::GetDiskRequest const&) { return Status(StatusCode::kUnimplemented, "not implemented"); @@ -89,6 +155,22 @@ RegionDisksConnection::InsertDisk( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +RegionDisksConnection::InsertDisk( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_disks::v1::InsertDiskRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +RegionDisksConnection::InsertDisk( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StreamRange RegionDisksConnection::ListRegionDisks( google::cloud::cpp::compute::region_disks::v1:: @@ -106,6 +188,23 @@ RegionDisksConnection::RemoveResourcePolicies( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +RegionDisksConnection::RemoveResourcePolicies( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_disks::v1:: + RemoveResourcePoliciesRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +RegionDisksConnection::RemoveResourcePolicies( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> RegionDisksConnection::Resize( google::cloud::cpp::compute::region_disks::v1::ResizeRequest const&) { @@ -114,6 +213,22 @@ RegionDisksConnection::Resize( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +RegionDisksConnection::Resize( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_disks::v1::ResizeRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +RegionDisksConnection::Resize( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr RegionDisksConnection::SetIamPolicy( google::cloud::cpp::compute::region_disks::v1::SetIamPolicyRequest const&) { @@ -128,6 +243,22 @@ RegionDisksConnection::SetLabels( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +RegionDisksConnection::SetLabels( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_disks::v1::SetLabelsRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +RegionDisksConnection::SetLabels( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> RegionDisksConnection::StartAsyncReplication( google::cloud::cpp::compute::region_disks::v1:: @@ -137,6 +268,23 @@ RegionDisksConnection::StartAsyncReplication( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +RegionDisksConnection::StartAsyncReplication( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_disks::v1:: + StartAsyncReplicationRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +RegionDisksConnection::StartAsyncReplication( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> RegionDisksConnection::StopAsyncReplication( google::cloud::cpp::compute::region_disks::v1:: @@ -146,6 +294,23 @@ RegionDisksConnection::StopAsyncReplication( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +RegionDisksConnection::StopAsyncReplication( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_disks::v1:: + StopAsyncReplicationRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +RegionDisksConnection::StopAsyncReplication( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> RegionDisksConnection::StopGroupAsyncReplication( google::cloud::cpp::compute::region_disks::v1:: @@ -155,6 +320,23 @@ RegionDisksConnection::StopGroupAsyncReplication( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +RegionDisksConnection::StopGroupAsyncReplication( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_disks::v1:: + StopGroupAsyncReplicationRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +RegionDisksConnection::StopGroupAsyncReplication( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr RegionDisksConnection::TestIamPermissions( google::cloud::cpp::compute::region_disks::v1:: @@ -170,6 +352,22 @@ RegionDisksConnection::UpdateDisk( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +RegionDisksConnection::UpdateDisk( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_disks::v1::UpdateDiskRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +RegionDisksConnection::UpdateDisk( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace compute_region_disks_v1 } // namespace cloud diff --git a/google/cloud/compute/region_disks/v1/region_disks_connection.h b/google/cloud/compute/region_disks/v1/region_disks_connection.h index c2b40d4ffe939..379645e7d5b93 100644 --- a/google/cloud/compute/region_disks/v1/region_disks_connection.h +++ b/google/cloud/compute/region_disks/v1/region_disks_connection.h @@ -22,8 +22,10 @@ #include "google/cloud/compute/region_disks/v1/internal/region_disks_retry_traits.h" #include "google/cloud/compute/region_disks/v1/region_disks_connection_idempotency_policy.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/internal/retry_policy_impl.h" +#include "google/cloud/no_await_tag.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" #include "google/cloud/status_or.h" @@ -187,20 +189,57 @@ class RegionDisksConnection { AddResourcePolicies(google::cloud::cpp::compute::region_disks::v1:: AddResourcePoliciesRequest const& request); + virtual StatusOr + AddResourcePolicies(ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_disks::v1:: + AddResourcePoliciesRequest const& request); + + virtual future> + AddResourcePolicies( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual future> BulkInsert( google::cloud::cpp::compute::region_disks::v1::BulkInsertRequest const& request); + virtual StatusOr BulkInsert( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_disks::v1::BulkInsertRequest const& + request); + + virtual future> + BulkInsert(ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual future> CreateSnapshot(google::cloud::cpp::compute::region_disks::v1:: CreateSnapshotRequest const& request); + virtual StatusOr CreateSnapshot( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_disks::v1:: + CreateSnapshotRequest const& request); + + virtual future> + CreateSnapshot(ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual future> DeleteDisk( google::cloud::cpp::compute::region_disks::v1::DeleteDiskRequest const& request); + virtual StatusOr DeleteDisk( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_disks::v1::DeleteDiskRequest const& + request); + + virtual future> + DeleteDisk(ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual StatusOr GetDisk( google::cloud::cpp::compute::region_disks::v1::GetDiskRequest const& request); @@ -214,6 +253,15 @@ class RegionDisksConnection { google::cloud::cpp::compute::region_disks::v1::InsertDiskRequest const& request); + virtual StatusOr InsertDisk( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_disks::v1::InsertDiskRequest const& + request); + + virtual future> + InsertDisk(ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual StreamRange ListRegionDisks( google::cloud::cpp::compute::region_disks::v1::ListRegionDisksRequest request); @@ -222,10 +270,29 @@ class RegionDisksConnection { RemoveResourcePolicies(google::cloud::cpp::compute::region_disks::v1:: RemoveResourcePoliciesRequest const& request); + virtual StatusOr + RemoveResourcePolicies(ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_disks::v1:: + RemoveResourcePoliciesRequest const& request); + + virtual future> + RemoveResourcePolicies( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual future> Resize( google::cloud::cpp::compute::region_disks::v1::ResizeRequest const& request); + virtual StatusOr Resize( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_disks::v1::ResizeRequest const& + request); + + virtual future> Resize( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual StatusOr SetIamPolicy( google::cloud::cpp::compute::region_disks::v1::SetIamPolicyRequest const& request); @@ -235,19 +302,59 @@ class RegionDisksConnection { google::cloud::cpp::compute::region_disks::v1::SetLabelsRequest const& request); + virtual StatusOr SetLabels( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_disks::v1::SetLabelsRequest const& + request); + + virtual future> + SetLabels(ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual future> StartAsyncReplication(google::cloud::cpp::compute::region_disks::v1:: StartAsyncReplicationRequest const& request); + virtual StatusOr + StartAsyncReplication(ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_disks::v1:: + StartAsyncReplicationRequest const& request); + + virtual future> + StartAsyncReplication( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual future> StopAsyncReplication(google::cloud::cpp::compute::region_disks::v1:: StopAsyncReplicationRequest const& request); + virtual StatusOr + StopAsyncReplication(ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_disks::v1:: + StopAsyncReplicationRequest const& request); + + virtual future> + StopAsyncReplication( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual future> StopGroupAsyncReplication( google::cloud::cpp::compute::region_disks::v1:: StopGroupAsyncReplicationRequest const& request); + virtual StatusOr + StopGroupAsyncReplication( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_disks::v1:: + StopGroupAsyncReplicationRequest const& request); + + virtual future> + StopGroupAsyncReplication( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual StatusOr TestIamPermissions(google::cloud::cpp::compute::region_disks::v1:: TestIamPermissionsRequest const& request); @@ -256,6 +363,15 @@ class RegionDisksConnection { UpdateDisk( google::cloud::cpp::compute::region_disks::v1::UpdateDiskRequest const& request); + + virtual StatusOr UpdateDisk( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_disks::v1::UpdateDiskRequest const& + request); + + virtual future> + UpdateDisk(ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); }; GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END diff --git a/google/cloud/compute/region_health_check_services/v1/internal/region_health_check_services_rest_connection_impl.cc b/google/cloud/compute/region_health_check_services/v1/internal/region_health_check_services_rest_connection_impl.cc index bf857023adc70..c024dfdb10713 100644 --- a/google/cloud/compute/region_health_check_services/v1/internal/region_health_check_services_rest_connection_impl.cc +++ b/google/cloud/compute/region_health_check_services/v1/internal/region_health_check_services_rest_connection_impl.cc @@ -24,6 +24,7 @@ #include "google/cloud/internal/async_rest_long_running_operation_custom.h" #include "google/cloud/internal/extract_long_running_result.h" #include "google/cloud/internal/pagination_range.h" +#include "google/cloud/internal/rest_lro_helpers.h" #include "google/cloud/internal/rest_retry_loop.h" #include "google/cloud/rest_options.h" #include @@ -107,6 +108,79 @@ RegionHealthCheckServicesRestConnectionImpl::DeleteHealthCheckService( }); } +StatusOr +RegionHealthCheckServicesRestConnectionImpl::DeleteHealthCheckService( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_health_check_services::v1:: + DeleteHealthCheckServiceRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteHealthCheckService(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::region_health_check_services::v1:: + DeleteHealthCheckServiceRequest const& request) { + return stub_->DeleteHealthCheckService(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +RegionHealthCheckServicesRestConnectionImpl::DeleteHealthCheckService( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::region_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }); +} + StatusOr RegionHealthCheckServicesRestConnectionImpl::GetHealthCheckService( google::cloud::cpp::compute::region_health_check_services::v1:: @@ -183,6 +257,79 @@ RegionHealthCheckServicesRestConnectionImpl::InsertHealthCheckService( }); } +StatusOr +RegionHealthCheckServicesRestConnectionImpl::InsertHealthCheckService( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_health_check_services::v1:: + InsertHealthCheckServiceRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->InsertHealthCheckService(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::region_health_check_services::v1:: + InsertHealthCheckServiceRequest const& request) { + return stub_->InsertHealthCheckService(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +RegionHealthCheckServicesRestConnectionImpl::InsertHealthCheckService( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::region_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }); +} + StreamRange RegionHealthCheckServicesRestConnectionImpl::ListRegionHealthCheckServices( google::cloud::cpp::compute::region_health_check_services::v1:: @@ -284,6 +431,79 @@ RegionHealthCheckServicesRestConnectionImpl::PatchHealthCheckService( }); } +StatusOr +RegionHealthCheckServicesRestConnectionImpl::PatchHealthCheckService( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_health_check_services::v1:: + PatchHealthCheckServiceRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->PatchHealthCheckService(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::region_health_check_services::v1:: + PatchHealthCheckServiceRequest const& request) { + return stub_->PatchHealthCheckService(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +RegionHealthCheckServicesRestConnectionImpl::PatchHealthCheckService( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::region_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace compute_region_health_check_services_v1_internal } // namespace cloud diff --git a/google/cloud/compute/region_health_check_services/v1/internal/region_health_check_services_rest_connection_impl.h b/google/cloud/compute/region_health_check_services/v1/internal/region_health_check_services_rest_connection_impl.h index 400c59c88f3b4..f409fc37968e4 100644 --- a/google/cloud/compute/region_health_check_services/v1/internal/region_health_check_services_rest_connection_impl.h +++ b/google/cloud/compute/region_health_check_services/v1/internal/region_health_check_services_rest_connection_impl.h @@ -59,6 +59,16 @@ class RegionHealthCheckServicesRestConnectionImpl google::cloud::cpp::compute::region_health_check_services::v1:: DeleteHealthCheckServiceRequest const& request) override; + StatusOr DeleteHealthCheckService( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_health_check_services::v1:: + DeleteHealthCheckServiceRequest const& request) override; + + future> + DeleteHealthCheckService( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StatusOr GetHealthCheckService( google::cloud::cpp::compute::region_health_check_services::v1:: @@ -69,6 +79,16 @@ class RegionHealthCheckServicesRestConnectionImpl google::cloud::cpp::compute::region_health_check_services::v1:: InsertHealthCheckServiceRequest const& request) override; + StatusOr InsertHealthCheckService( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_health_check_services::v1:: + InsertHealthCheckServiceRequest const& request) override; + + future> + InsertHealthCheckService( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StreamRange ListRegionHealthCheckServices( google::cloud::cpp::compute::region_health_check_services::v1:: @@ -79,6 +99,16 @@ class RegionHealthCheckServicesRestConnectionImpl google::cloud::cpp::compute::region_health_check_services::v1:: PatchHealthCheckServiceRequest const& request) override; + StatusOr PatchHealthCheckService( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_health_check_services::v1:: + PatchHealthCheckServiceRequest const& request) override; + + future> + PatchHealthCheckService( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + private: static std::unique_ptr diff --git a/google/cloud/compute/region_health_check_services/v1/internal/region_health_check_services_tracing_connection.cc b/google/cloud/compute/region_health_check_services/v1/internal/region_health_check_services_tracing_connection.cc index a2804ab18f2cb..846a3f852bf74 100644 --- a/google/cloud/compute/region_health_check_services/v1/internal/region_health_check_services_tracing_connection.cc +++ b/google/cloud/compute/region_health_check_services/v1/internal/region_health_check_services_tracing_connection.cc @@ -49,6 +49,32 @@ RegionHealthCheckServicesTracingConnection::DeleteHealthCheckService( child_->DeleteHealthCheckService(request)); } +StatusOr +RegionHealthCheckServicesTracingConnection::DeleteHealthCheckService( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_health_check_services::v1:: + DeleteHealthCheckServiceRequest const& request) { + auto span = internal::MakeSpan( + "compute_region_health_check_services_v1::" + "RegionHealthCheckServicesConnection::DeleteHealthCheckService"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->DeleteHealthCheckService(ExperimentalTag{}, NoAwaitTag{}, + request)); +} + +future> +RegionHealthCheckServicesTracingConnection::DeleteHealthCheckService( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_region_health_check_services_v1::" + "RegionHealthCheckServicesConnection::DeleteHealthCheckService"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->DeleteHealthCheckService( + ExperimentalTag{}, operation)); +} + StatusOr RegionHealthCheckServicesTracingConnection::GetHealthCheckService( google::cloud::cpp::compute::region_health_check_services::v1:: @@ -72,6 +98,32 @@ RegionHealthCheckServicesTracingConnection::InsertHealthCheckService( child_->InsertHealthCheckService(request)); } +StatusOr +RegionHealthCheckServicesTracingConnection::InsertHealthCheckService( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_health_check_services::v1:: + InsertHealthCheckServiceRequest const& request) { + auto span = internal::MakeSpan( + "compute_region_health_check_services_v1::" + "RegionHealthCheckServicesConnection::InsertHealthCheckService"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->InsertHealthCheckService(ExperimentalTag{}, NoAwaitTag{}, + request)); +} + +future> +RegionHealthCheckServicesTracingConnection::InsertHealthCheckService( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_region_health_check_services_v1::" + "RegionHealthCheckServicesConnection::InsertHealthCheckService"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->InsertHealthCheckService( + ExperimentalTag{}, operation)); +} + StreamRange RegionHealthCheckServicesTracingConnection::ListRegionHealthCheckServices( google::cloud::cpp::compute::region_health_check_services::v1:: @@ -98,6 +150,32 @@ RegionHealthCheckServicesTracingConnection::PatchHealthCheckService( child_->PatchHealthCheckService(request)); } +StatusOr +RegionHealthCheckServicesTracingConnection::PatchHealthCheckService( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_health_check_services::v1:: + PatchHealthCheckServiceRequest const& request) { + auto span = internal::MakeSpan( + "compute_region_health_check_services_v1::" + "RegionHealthCheckServicesConnection::PatchHealthCheckService"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->PatchHealthCheckService(ExperimentalTag{}, NoAwaitTag{}, + request)); +} + +future> +RegionHealthCheckServicesTracingConnection::PatchHealthCheckService( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_region_health_check_services_v1::" + "RegionHealthCheckServicesConnection::PatchHealthCheckService"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->PatchHealthCheckService( + ExperimentalTag{}, operation)); +} + #endif // GOOGLE_CLOUD_CPP_HAVE_OPENTELEMETRY std::shared_ptr DeleteHealthCheckService( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_health_check_services::v1:: + DeleteHealthCheckServiceRequest const& request) override; + + future> + DeleteHealthCheckService( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StatusOr GetHealthCheckService( google::cloud::cpp::compute::region_health_check_services::v1:: @@ -59,6 +69,16 @@ class RegionHealthCheckServicesTracingConnection google::cloud::cpp::compute::region_health_check_services::v1:: InsertHealthCheckServiceRequest const& request) override; + StatusOr InsertHealthCheckService( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_health_check_services::v1:: + InsertHealthCheckServiceRequest const& request) override; + + future> + InsertHealthCheckService( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StreamRange ListRegionHealthCheckServices( google::cloud::cpp::compute::region_health_check_services::v1:: @@ -69,6 +89,16 @@ class RegionHealthCheckServicesTracingConnection google::cloud::cpp::compute::region_health_check_services::v1:: PatchHealthCheckServiceRequest const& request) override; + StatusOr PatchHealthCheckService( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_health_check_services::v1:: + PatchHealthCheckServiceRequest const& request) override; + + future> + PatchHealthCheckService( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + private: std::shared_ptr diff --git a/google/cloud/compute/region_health_check_services/v1/mocks/mock_region_health_check_services_connection.h b/google/cloud/compute/region_health_check_services/v1/mocks/mock_region_health_check_services_connection.h index 2dbae4e43152c..73349fc9a86c2 100644 --- a/google/cloud/compute/region_health_check_services/v1/mocks/mock_region_health_check_services_connection.h +++ b/google/cloud/compute/region_health_check_services/v1/mocks/mock_region_health_check_services_connection.h @@ -55,6 +55,19 @@ class MockRegionHealthCheckServicesConnection DeleteHealthCheckServiceRequest const& request), (override)); + MOCK_METHOD(StatusOr, + DeleteHealthCheckService, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_health_check_services::v1:: + DeleteHealthCheckServiceRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteHealthCheckService, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD(StatusOr, GetHealthCheckService, (google::cloud::cpp::compute::region_health_check_services::v1:: @@ -67,6 +80,19 @@ class MockRegionHealthCheckServicesConnection InsertHealthCheckServiceRequest const& request), (override)); + MOCK_METHOD(StatusOr, + InsertHealthCheckService, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_health_check_services::v1:: + InsertHealthCheckServiceRequest const& request), + (override)); + + MOCK_METHOD(future>, + InsertHealthCheckService, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD( (StreamRange), ListRegionHealthCheckServices, @@ -79,6 +105,19 @@ class MockRegionHealthCheckServicesConnection (google::cloud::cpp::compute::region_health_check_services::v1:: PatchHealthCheckServiceRequest const& request), (override)); + + MOCK_METHOD(StatusOr, + PatchHealthCheckService, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_health_check_services::v1:: + PatchHealthCheckServiceRequest const& request), + (override)); + + MOCK_METHOD(future>, + PatchHealthCheckService, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); }; GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END diff --git a/google/cloud/compute/region_health_check_services/v1/region_health_check_services_connection.cc b/google/cloud/compute/region_health_check_services/v1/region_health_check_services_connection.cc index 3e144d4754279..0be495c9dff76 100644 --- a/google/cloud/compute/region_health_check_services/v1/region_health_check_services_connection.cc +++ b/google/cloud/compute/region_health_check_services/v1/region_health_check_services_connection.cc @@ -47,6 +47,23 @@ RegionHealthCheckServicesConnection::DeleteHealthCheckService( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +RegionHealthCheckServicesConnection::DeleteHealthCheckService( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_health_check_services::v1:: + DeleteHealthCheckServiceRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +RegionHealthCheckServicesConnection::DeleteHealthCheckService( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr RegionHealthCheckServicesConnection::GetHealthCheckService( google::cloud::cpp::compute::region_health_check_services::v1:: @@ -63,6 +80,23 @@ RegionHealthCheckServicesConnection::InsertHealthCheckService( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +RegionHealthCheckServicesConnection::InsertHealthCheckService( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_health_check_services::v1:: + InsertHealthCheckServiceRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +RegionHealthCheckServicesConnection::InsertHealthCheckService( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StreamRange RegionHealthCheckServicesConnection::ListRegionHealthCheckServices( google::cloud::cpp::compute::region_health_check_services::v1:: @@ -80,6 +114,23 @@ RegionHealthCheckServicesConnection::PatchHealthCheckService( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +RegionHealthCheckServicesConnection::PatchHealthCheckService( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_health_check_services::v1:: + PatchHealthCheckServiceRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +RegionHealthCheckServicesConnection::PatchHealthCheckService( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace compute_region_health_check_services_v1 } // namespace cloud diff --git a/google/cloud/compute/region_health_check_services/v1/region_health_check_services_connection.h b/google/cloud/compute/region_health_check_services/v1/region_health_check_services_connection.h index dd0cfbbf8ff99..31085c7308c48 100644 --- a/google/cloud/compute/region_health_check_services/v1/region_health_check_services_connection.h +++ b/google/cloud/compute/region_health_check_services/v1/region_health_check_services_connection.h @@ -23,8 +23,10 @@ #include "google/cloud/compute/region_health_check_services/v1/internal/region_health_check_services_retry_traits.h" #include "google/cloud/compute/region_health_check_services/v1/region_health_check_services_connection_idempotency_policy.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/internal/retry_policy_impl.h" +#include "google/cloud/no_await_tag.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" #include "google/cloud/status_or.h" @@ -206,6 +208,17 @@ class RegionHealthCheckServicesConnection { google::cloud::cpp::compute::region_health_check_services::v1:: DeleteHealthCheckServiceRequest const& request); + virtual StatusOr + DeleteHealthCheckService( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_health_check_services::v1:: + DeleteHealthCheckServiceRequest const& request); + + virtual future> + DeleteHealthCheckService( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual StatusOr GetHealthCheckService( google::cloud::cpp::compute::region_health_check_services::v1:: @@ -216,6 +229,17 @@ class RegionHealthCheckServicesConnection { google::cloud::cpp::compute::region_health_check_services::v1:: InsertHealthCheckServiceRequest const& request); + virtual StatusOr + InsertHealthCheckService( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_health_check_services::v1:: + InsertHealthCheckServiceRequest const& request); + + virtual future> + InsertHealthCheckService( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual StreamRange ListRegionHealthCheckServices( google::cloud::cpp::compute::region_health_check_services::v1:: @@ -225,6 +249,17 @@ class RegionHealthCheckServicesConnection { PatchHealthCheckService( google::cloud::cpp::compute::region_health_check_services::v1:: PatchHealthCheckServiceRequest const& request); + + virtual StatusOr + PatchHealthCheckService( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_health_check_services::v1:: + PatchHealthCheckServiceRequest const& request); + + virtual future> + PatchHealthCheckService( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); }; GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END diff --git a/google/cloud/compute/region_health_checks/v1/internal/region_health_checks_rest_connection_impl.cc b/google/cloud/compute/region_health_checks/v1/internal/region_health_checks_rest_connection_impl.cc index 10055f2b648b0..2cba8481aadf8 100644 --- a/google/cloud/compute/region_health_checks/v1/internal/region_health_checks_rest_connection_impl.cc +++ b/google/cloud/compute/region_health_checks/v1/internal/region_health_checks_rest_connection_impl.cc @@ -24,6 +24,7 @@ #include "google/cloud/internal/async_rest_long_running_operation_custom.h" #include "google/cloud/internal/extract_long_running_result.h" #include "google/cloud/internal/pagination_range.h" +#include "google/cloud/internal/rest_lro_helpers.h" #include "google/cloud/internal/rest_retry_loop.h" #include "google/cloud/rest_options.h" #include @@ -105,6 +106,79 @@ RegionHealthChecksRestConnectionImpl::DeleteHealthCheck( }); } +StatusOr +RegionHealthChecksRestConnectionImpl::DeleteHealthCheck( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_health_checks::v1:: + DeleteHealthCheckRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteHealthCheck(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::region_health_checks::v1:: + DeleteHealthCheckRequest const& request) { + return stub_->DeleteHealthCheck(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +RegionHealthChecksRestConnectionImpl::DeleteHealthCheck( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::region_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }); +} + StatusOr RegionHealthChecksRestConnectionImpl::GetHealthCheck( google::cloud::cpp::compute::region_health_checks::v1:: @@ -181,6 +255,79 @@ RegionHealthChecksRestConnectionImpl::InsertHealthCheck( }); } +StatusOr +RegionHealthChecksRestConnectionImpl::InsertHealthCheck( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_health_checks::v1:: + InsertHealthCheckRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->InsertHealthCheck(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::region_health_checks::v1:: + InsertHealthCheckRequest const& request) { + return stub_->InsertHealthCheck(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +RegionHealthChecksRestConnectionImpl::InsertHealthCheck( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::region_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }); +} + StreamRange RegionHealthChecksRestConnectionImpl::ListRegionHealthChecks( google::cloud::cpp::compute::region_health_checks::v1:: @@ -281,6 +428,79 @@ RegionHealthChecksRestConnectionImpl::PatchHealthCheck( }); } +StatusOr +RegionHealthChecksRestConnectionImpl::PatchHealthCheck( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_health_checks::v1:: + PatchHealthCheckRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->PatchHealthCheck(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::region_health_checks::v1:: + PatchHealthCheckRequest const& request) { + return stub_->PatchHealthCheck(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +RegionHealthChecksRestConnectionImpl::PatchHealthCheck( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::region_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }); +} + future> RegionHealthChecksRestConnectionImpl::UpdateHealthCheck( google::cloud::cpp::compute::region_health_checks::v1:: @@ -341,6 +561,79 @@ RegionHealthChecksRestConnectionImpl::UpdateHealthCheck( }); } +StatusOr +RegionHealthChecksRestConnectionImpl::UpdateHealthCheck( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_health_checks::v1:: + UpdateHealthCheckRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UpdateHealthCheck(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::region_health_checks::v1:: + UpdateHealthCheckRequest const& request) { + return stub_->UpdateHealthCheck(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +RegionHealthChecksRestConnectionImpl::UpdateHealthCheck( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::region_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace compute_region_health_checks_v1_internal } // namespace cloud diff --git a/google/cloud/compute/region_health_checks/v1/internal/region_health_checks_rest_connection_impl.h b/google/cloud/compute/region_health_checks/v1/internal/region_health_checks_rest_connection_impl.h index fd0e49ba8701f..26dac6e06b4ee 100644 --- a/google/cloud/compute/region_health_checks/v1/internal/region_health_checks_rest_connection_impl.h +++ b/google/cloud/compute/region_health_checks/v1/internal/region_health_checks_rest_connection_impl.h @@ -57,6 +57,16 @@ class RegionHealthChecksRestConnectionImpl DeleteHealthCheck(google::cloud::cpp::compute::region_health_checks::v1:: DeleteHealthCheckRequest const& request) override; + StatusOr DeleteHealthCheck( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_health_checks::v1:: + DeleteHealthCheckRequest const& request) override; + + future> + DeleteHealthCheck( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StatusOr GetHealthCheck( google::cloud::cpp::compute::region_health_checks::v1:: GetHealthCheckRequest const& request) override; @@ -65,6 +75,16 @@ class RegionHealthChecksRestConnectionImpl InsertHealthCheck(google::cloud::cpp::compute::region_health_checks::v1:: InsertHealthCheckRequest const& request) override; + StatusOr InsertHealthCheck( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_health_checks::v1:: + InsertHealthCheckRequest const& request) override; + + future> + InsertHealthCheck( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StreamRange ListRegionHealthChecks(google::cloud::cpp::compute::region_health_checks::v1:: ListRegionHealthChecksRequest request) override; @@ -73,10 +93,29 @@ class RegionHealthChecksRestConnectionImpl google::cloud::cpp::compute::region_health_checks::v1:: PatchHealthCheckRequest const& request) override; + StatusOr PatchHealthCheck( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_health_checks::v1:: + PatchHealthCheckRequest const& request) override; + + future> PatchHealthCheck( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> UpdateHealthCheck(google::cloud::cpp::compute::region_health_checks::v1:: UpdateHealthCheckRequest const& request) override; + StatusOr UpdateHealthCheck( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_health_checks::v1:: + UpdateHealthCheckRequest const& request) override; + + future> + UpdateHealthCheck( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + private: static std::unique_ptr< compute_region_health_checks_v1::RegionHealthChecksRetryPolicy> diff --git a/google/cloud/compute/region_health_checks/v1/internal/region_health_checks_tracing_connection.cc b/google/cloud/compute/region_health_checks/v1/internal/region_health_checks_tracing_connection.cc index f22009707233a..445f4f65d572b 100644 --- a/google/cloud/compute/region_health_checks/v1/internal/region_health_checks_tracing_connection.cc +++ b/google/cloud/compute/region_health_checks/v1/internal/region_health_checks_tracing_connection.cc @@ -47,6 +47,32 @@ RegionHealthChecksTracingConnection::DeleteHealthCheck( return internal::EndSpan(std::move(span), child_->DeleteHealthCheck(request)); } +StatusOr +RegionHealthChecksTracingConnection::DeleteHealthCheck( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_health_checks::v1:: + DeleteHealthCheckRequest const& request) { + auto span = internal::MakeSpan( + "compute_region_health_checks_v1::RegionHealthChecksConnection::" + "DeleteHealthCheck"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->DeleteHealthCheck(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +RegionHealthChecksTracingConnection::DeleteHealthCheck( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_region_health_checks_v1::RegionHealthChecksConnection::" + "DeleteHealthCheck"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->DeleteHealthCheck(ExperimentalTag{}, operation)); +} + StatusOr RegionHealthChecksTracingConnection::GetHealthCheck( google::cloud::cpp::compute::region_health_checks::v1:: @@ -69,6 +95,32 @@ RegionHealthChecksTracingConnection::InsertHealthCheck( return internal::EndSpan(std::move(span), child_->InsertHealthCheck(request)); } +StatusOr +RegionHealthChecksTracingConnection::InsertHealthCheck( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_health_checks::v1:: + InsertHealthCheckRequest const& request) { + auto span = internal::MakeSpan( + "compute_region_health_checks_v1::RegionHealthChecksConnection::" + "InsertHealthCheck"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->InsertHealthCheck(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +RegionHealthChecksTracingConnection::InsertHealthCheck( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_region_health_checks_v1::RegionHealthChecksConnection::" + "InsertHealthCheck"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->InsertHealthCheck(ExperimentalTag{}, operation)); +} + StreamRange RegionHealthChecksTracingConnection::ListRegionHealthChecks( google::cloud::cpp::compute::region_health_checks::v1:: @@ -94,6 +146,32 @@ RegionHealthChecksTracingConnection::PatchHealthCheck( return internal::EndSpan(std::move(span), child_->PatchHealthCheck(request)); } +StatusOr +RegionHealthChecksTracingConnection::PatchHealthCheck( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_health_checks::v1:: + PatchHealthCheckRequest const& request) { + auto span = internal::MakeSpan( + "compute_region_health_checks_v1::RegionHealthChecksConnection::" + "PatchHealthCheck"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->PatchHealthCheck(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +RegionHealthChecksTracingConnection::PatchHealthCheck( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_region_health_checks_v1::RegionHealthChecksConnection::" + "PatchHealthCheck"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->PatchHealthCheck(ExperimentalTag{}, operation)); +} + future> RegionHealthChecksTracingConnection::UpdateHealthCheck( google::cloud::cpp::compute::region_health_checks::v1:: @@ -105,6 +183,32 @@ RegionHealthChecksTracingConnection::UpdateHealthCheck( return internal::EndSpan(std::move(span), child_->UpdateHealthCheck(request)); } +StatusOr +RegionHealthChecksTracingConnection::UpdateHealthCheck( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_health_checks::v1:: + UpdateHealthCheckRequest const& request) { + auto span = internal::MakeSpan( + "compute_region_health_checks_v1::RegionHealthChecksConnection::" + "UpdateHealthCheck"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->UpdateHealthCheck(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +RegionHealthChecksTracingConnection::UpdateHealthCheck( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_region_health_checks_v1::RegionHealthChecksConnection::" + "UpdateHealthCheck"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->UpdateHealthCheck(ExperimentalTag{}, operation)); +} + #endif // GOOGLE_CLOUD_CPP_HAVE_OPENTELEMETRY std::shared_ptr diff --git a/google/cloud/compute/region_health_checks/v1/internal/region_health_checks_tracing_connection.h b/google/cloud/compute/region_health_checks/v1/internal/region_health_checks_tracing_connection.h index d0015f3b9306a..ae3c6532335e0 100644 --- a/google/cloud/compute/region_health_checks/v1/internal/region_health_checks_tracing_connection.h +++ b/google/cloud/compute/region_health_checks/v1/internal/region_health_checks_tracing_connection.h @@ -47,6 +47,16 @@ class RegionHealthChecksTracingConnection DeleteHealthCheck(google::cloud::cpp::compute::region_health_checks::v1:: DeleteHealthCheckRequest const& request) override; + StatusOr DeleteHealthCheck( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_health_checks::v1:: + DeleteHealthCheckRequest const& request) override; + + future> + DeleteHealthCheck( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StatusOr GetHealthCheck( google::cloud::cpp::compute::region_health_checks::v1:: GetHealthCheckRequest const& request) override; @@ -55,6 +65,16 @@ class RegionHealthChecksTracingConnection InsertHealthCheck(google::cloud::cpp::compute::region_health_checks::v1:: InsertHealthCheckRequest const& request) override; + StatusOr InsertHealthCheck( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_health_checks::v1:: + InsertHealthCheckRequest const& request) override; + + future> + InsertHealthCheck( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StreamRange ListRegionHealthChecks(google::cloud::cpp::compute::region_health_checks::v1:: ListRegionHealthChecksRequest request) override; @@ -63,10 +83,29 @@ class RegionHealthChecksTracingConnection google::cloud::cpp::compute::region_health_checks::v1:: PatchHealthCheckRequest const& request) override; + StatusOr PatchHealthCheck( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_health_checks::v1:: + PatchHealthCheckRequest const& request) override; + + future> PatchHealthCheck( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> UpdateHealthCheck(google::cloud::cpp::compute::region_health_checks::v1:: UpdateHealthCheckRequest const& request) override; + StatusOr UpdateHealthCheck( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_health_checks::v1:: + UpdateHealthCheckRequest const& request) override; + + future> + UpdateHealthCheck( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + private: std::shared_ptr child_; diff --git a/google/cloud/compute/region_health_checks/v1/mocks/mock_region_health_checks_connection.h b/google/cloud/compute/region_health_checks/v1/mocks/mock_region_health_checks_connection.h index ab482b3188024..de1632bfd2a15 100644 --- a/google/cloud/compute/region_health_checks/v1/mocks/mock_region_health_checks_connection.h +++ b/google/cloud/compute/region_health_checks/v1/mocks/mock_region_health_checks_connection.h @@ -54,6 +54,19 @@ class MockRegionHealthChecksConnection DeleteHealthCheckRequest const& request), (override)); + MOCK_METHOD(StatusOr, + DeleteHealthCheck, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_health_checks::v1:: + DeleteHealthCheckRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteHealthCheck, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD(StatusOr, GetHealthCheck, (google::cloud::cpp::compute::region_health_checks::v1:: @@ -66,6 +79,19 @@ class MockRegionHealthChecksConnection InsertHealthCheckRequest const& request), (override)); + MOCK_METHOD(StatusOr, + InsertHealthCheck, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_health_checks::v1:: + InsertHealthCheckRequest const& request), + (override)); + + MOCK_METHOD(future>, + InsertHealthCheck, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD((StreamRange), ListRegionHealthChecks, (google::cloud::cpp::compute::region_health_checks::v1:: @@ -78,11 +104,37 @@ class MockRegionHealthChecksConnection PatchHealthCheckRequest const& request), (override)); + MOCK_METHOD(StatusOr, + PatchHealthCheck, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_health_checks::v1:: + PatchHealthCheckRequest const& request), + (override)); + + MOCK_METHOD(future>, + PatchHealthCheck, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD(future>, UpdateHealthCheck, (google::cloud::cpp::compute::region_health_checks::v1:: UpdateHealthCheckRequest const& request), (override)); + + MOCK_METHOD(StatusOr, + UpdateHealthCheck, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_health_checks::v1:: + UpdateHealthCheckRequest const& request), + (override)); + + MOCK_METHOD(future>, + UpdateHealthCheck, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); }; GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END diff --git a/google/cloud/compute/region_health_checks/v1/region_health_checks_connection.cc b/google/cloud/compute/region_health_checks/v1/region_health_checks_connection.cc index f0e5c7a733b43..4f431adb6eb3c 100644 --- a/google/cloud/compute/region_health_checks/v1/region_health_checks_connection.cc +++ b/google/cloud/compute/region_health_checks/v1/region_health_checks_connection.cc @@ -46,6 +46,23 @@ RegionHealthChecksConnection::DeleteHealthCheck( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +RegionHealthChecksConnection::DeleteHealthCheck( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_health_checks::v1:: + DeleteHealthCheckRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +RegionHealthChecksConnection::DeleteHealthCheck( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr RegionHealthChecksConnection::GetHealthCheck( google::cloud::cpp::compute::region_health_checks::v1:: @@ -62,6 +79,23 @@ RegionHealthChecksConnection::InsertHealthCheck( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +RegionHealthChecksConnection::InsertHealthCheck( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_health_checks::v1:: + InsertHealthCheckRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +RegionHealthChecksConnection::InsertHealthCheck( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StreamRange RegionHealthChecksConnection::ListRegionHealthChecks( google::cloud::cpp::compute::region_health_checks::v1:: @@ -79,6 +113,23 @@ RegionHealthChecksConnection::PatchHealthCheck( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +RegionHealthChecksConnection::PatchHealthCheck( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_health_checks::v1:: + PatchHealthCheckRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +RegionHealthChecksConnection::PatchHealthCheck( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> RegionHealthChecksConnection::UpdateHealthCheck( google::cloud::cpp::compute::region_health_checks::v1:: @@ -88,6 +139,23 @@ RegionHealthChecksConnection::UpdateHealthCheck( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +RegionHealthChecksConnection::UpdateHealthCheck( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_health_checks::v1:: + UpdateHealthCheckRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +RegionHealthChecksConnection::UpdateHealthCheck( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace compute_region_health_checks_v1 } // namespace cloud diff --git a/google/cloud/compute/region_health_checks/v1/region_health_checks_connection.h b/google/cloud/compute/region_health_checks/v1/region_health_checks_connection.h index e906fda8d6afb..24508570677e8 100644 --- a/google/cloud/compute/region_health_checks/v1/region_health_checks_connection.h +++ b/google/cloud/compute/region_health_checks/v1/region_health_checks_connection.h @@ -23,8 +23,10 @@ #include "google/cloud/compute/region_health_checks/v1/internal/region_health_checks_retry_traits.h" #include "google/cloud/compute/region_health_checks/v1/region_health_checks_connection_idempotency_policy.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/internal/retry_policy_impl.h" +#include "google/cloud/no_await_tag.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" #include "google/cloud/status_or.h" @@ -193,6 +195,16 @@ class RegionHealthChecksConnection { DeleteHealthCheck(google::cloud::cpp::compute::region_health_checks::v1:: DeleteHealthCheckRequest const& request); + virtual StatusOr + DeleteHealthCheck(ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_health_checks::v1:: + DeleteHealthCheckRequest const& request); + + virtual future> + DeleteHealthCheck( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual StatusOr GetHealthCheck( google::cloud::cpp::compute::region_health_checks::v1:: GetHealthCheckRequest const& request); @@ -201,6 +213,16 @@ class RegionHealthChecksConnection { InsertHealthCheck(google::cloud::cpp::compute::region_health_checks::v1:: InsertHealthCheckRequest const& request); + virtual StatusOr + InsertHealthCheck(ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_health_checks::v1:: + InsertHealthCheckRequest const& request); + + virtual future> + InsertHealthCheck( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual StreamRange ListRegionHealthChecks(google::cloud::cpp::compute::region_health_checks::v1:: ListRegionHealthChecksRequest request); @@ -209,9 +231,28 @@ class RegionHealthChecksConnection { PatchHealthCheck(google::cloud::cpp::compute::region_health_checks::v1:: PatchHealthCheckRequest const& request); + virtual StatusOr PatchHealthCheck( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_health_checks::v1:: + PatchHealthCheckRequest const& request); + + virtual future> + PatchHealthCheck(ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual future> UpdateHealthCheck(google::cloud::cpp::compute::region_health_checks::v1:: UpdateHealthCheckRequest const& request); + + virtual StatusOr + UpdateHealthCheck(ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_health_checks::v1:: + UpdateHealthCheckRequest const& request); + + virtual future> + UpdateHealthCheck( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); }; GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END diff --git a/google/cloud/compute/region_instance_group_managers/v1/internal/region_instance_group_managers_rest_connection_impl.cc b/google/cloud/compute/region_instance_group_managers/v1/internal/region_instance_group_managers_rest_connection_impl.cc index 9540ee928156b..f2701dce15290 100644 --- a/google/cloud/compute/region_instance_group_managers/v1/internal/region_instance_group_managers_rest_connection_impl.cc +++ b/google/cloud/compute/region_instance_group_managers/v1/internal/region_instance_group_managers_rest_connection_impl.cc @@ -24,6 +24,7 @@ #include "google/cloud/internal/async_rest_long_running_operation_custom.h" #include "google/cloud/internal/extract_long_running_result.h" #include "google/cloud/internal/pagination_range.h" +#include "google/cloud/internal/rest_lro_helpers.h" #include "google/cloud/internal/rest_retry_loop.h" #include "google/cloud/rest_options.h" #include @@ -108,6 +109,79 @@ RegionInstanceGroupManagersRestConnectionImpl::AbandonInstances( }); } +StatusOr +RegionInstanceGroupManagersRestConnectionImpl::AbandonInstances( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_instance_group_managers::v1:: + AbandonInstancesRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->AbandonInstances(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::region_instance_group_managers::v1:: + AbandonInstancesRequest const& request) { + return stub_->AbandonInstances(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +RegionInstanceGroupManagersRestConnectionImpl::AbandonInstances( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::region_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }); +} + future> RegionInstanceGroupManagersRestConnectionImpl::ApplyUpdatesToInstances( google::cloud::cpp::compute::region_instance_group_managers::v1:: @@ -169,6 +243,79 @@ RegionInstanceGroupManagersRestConnectionImpl::ApplyUpdatesToInstances( }); } +StatusOr +RegionInstanceGroupManagersRestConnectionImpl::ApplyUpdatesToInstances( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_instance_group_managers::v1:: + ApplyUpdatesToInstancesRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->ApplyUpdatesToInstances(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::region_instance_group_managers::v1:: + ApplyUpdatesToInstancesRequest const& request) { + return stub_->ApplyUpdatesToInstances(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +RegionInstanceGroupManagersRestConnectionImpl::ApplyUpdatesToInstances( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::region_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }); +} + future> RegionInstanceGroupManagersRestConnectionImpl::CreateInstances( google::cloud::cpp::compute::region_instance_group_managers::v1:: @@ -230,6 +377,79 @@ RegionInstanceGroupManagersRestConnectionImpl::CreateInstances( }); } +StatusOr +RegionInstanceGroupManagersRestConnectionImpl::CreateInstances( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_instance_group_managers::v1:: + CreateInstancesRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateInstances(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::region_instance_group_managers::v1:: + CreateInstancesRequest const& request) { + return stub_->CreateInstances(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +RegionInstanceGroupManagersRestConnectionImpl::CreateInstances( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::region_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }); +} + future> RegionInstanceGroupManagersRestConnectionImpl::DeleteInstanceGroupManager( google::cloud::cpp::compute::region_instance_group_managers::v1:: @@ -291,6 +511,80 @@ RegionInstanceGroupManagersRestConnectionImpl::DeleteInstanceGroupManager( }); } +StatusOr +RegionInstanceGroupManagersRestConnectionImpl::DeleteInstanceGroupManager( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_instance_group_managers::v1:: + DeleteInstanceGroupManagerRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteInstanceGroupManager(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::region_instance_group_managers::v1:: + DeleteInstanceGroupManagerRequest const& request) { + return stub_->DeleteInstanceGroupManager(rest_context, options, + request); + }, + *current, request, __func__); +} + +future> +RegionInstanceGroupManagersRestConnectionImpl::DeleteInstanceGroupManager( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::region_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }); +} + future> RegionInstanceGroupManagersRestConnectionImpl::DeleteInstances( google::cloud::cpp::compute::region_instance_group_managers::v1:: @@ -352,6 +646,79 @@ RegionInstanceGroupManagersRestConnectionImpl::DeleteInstances( }); } +StatusOr +RegionInstanceGroupManagersRestConnectionImpl::DeleteInstances( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_instance_group_managers::v1:: + DeleteInstancesRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteInstances(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::region_instance_group_managers::v1:: + DeleteInstancesRequest const& request) { + return stub_->DeleteInstances(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +RegionInstanceGroupManagersRestConnectionImpl::DeleteInstances( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::region_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }); +} + future> RegionInstanceGroupManagersRestConnectionImpl::DeletePerInstanceConfigs( google::cloud::cpp::compute::region_instance_group_managers::v1:: @@ -413,35 +780,108 @@ RegionInstanceGroupManagersRestConnectionImpl::DeletePerInstanceConfigs( }); } -StatusOr -RegionInstanceGroupManagersRestConnectionImpl::GetInstanceGroupManager( +StatusOr +RegionInstanceGroupManagersRestConnectionImpl::DeletePerInstanceConfigs( + ExperimentalTag, NoAwaitTag, google::cloud::cpp::compute::region_instance_group_managers::v1:: - GetInstanceGroupManagerRequest const& request) { + DeletePerInstanceConfigsRequest const& request) { auto current = google::cloud::internal::SaveCurrentOptions(); return google::cloud::rest_internal::RestRetryLoop( retry_policy(*current), backoff_policy(*current), - idempotency_policy(*current)->GetInstanceGroupManager(request), + idempotency_policy(*current)->DeletePerInstanceConfigs(request), [this](rest_internal::RestContext& rest_context, Options const& options, google::cloud::cpp::compute::region_instance_group_managers::v1:: - GetInstanceGroupManagerRequest const& request) { - return stub_->GetInstanceGroupManager(rest_context, options, request); + DeletePerInstanceConfigsRequest const& request) { + return stub_->DeletePerInstanceConfigs(rest_context, options, request); }, *current, request, __func__); } future> -RegionInstanceGroupManagersRestConnectionImpl::InsertInstanceGroupManager( - google::cloud::cpp::compute::region_instance_group_managers::v1:: - InsertInstanceGroupManagerRequest const& request) { +RegionInstanceGroupManagersRestConnectionImpl::DeletePerInstanceConfigs( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { auto current = google::cloud::internal::SaveCurrentOptions(); - return rest_internal::AsyncRestLongRunningOperation< + return rest_internal::AsyncRestAwaitLongRunningOperation< google::cloud::cpp::compute::v1::Operation, google::cloud::cpp::compute::v1::Operation, google::cloud::cpp::compute::region_operations::v1::GetOperationRequest, google::cloud::cpp::compute::region_operations::v1:: DeleteOperationRequest>( - background_->cq(), current, request, - [stub = stub_]( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }); +} + +StatusOr +RegionInstanceGroupManagersRestConnectionImpl::GetInstanceGroupManager( + google::cloud::cpp::compute::region_instance_group_managers::v1:: + GetInstanceGroupManagerRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->GetInstanceGroupManager(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::region_instance_group_managers::v1:: + GetInstanceGroupManagerRequest const& request) { + return stub_->GetInstanceGroupManager(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +RegionInstanceGroupManagersRestConnectionImpl::InsertInstanceGroupManager( + google::cloud::cpp::compute::region_instance_group_managers::v1:: + InsertInstanceGroupManagerRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::region_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, request, + [stub = stub_]( CompletionQueue& cq, std::unique_ptr context, google::cloud::internal::ImmutableOptions options, @@ -490,6 +930,80 @@ RegionInstanceGroupManagersRestConnectionImpl::InsertInstanceGroupManager( }); } +StatusOr +RegionInstanceGroupManagersRestConnectionImpl::InsertInstanceGroupManager( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_instance_group_managers::v1:: + InsertInstanceGroupManagerRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->InsertInstanceGroupManager(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::region_instance_group_managers::v1:: + InsertInstanceGroupManagerRequest const& request) { + return stub_->InsertInstanceGroupManager(rest_context, options, + request); + }, + *current, request, __func__); +} + +future> +RegionInstanceGroupManagersRestConnectionImpl::InsertInstanceGroupManager( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::region_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }); +} + StreamRange RegionInstanceGroupManagersRestConnectionImpl::ListRegionInstanceGroupManagers( google::cloud::cpp::compute::region_instance_group_managers::v1:: @@ -631,7 +1145,275 @@ RegionInstanceGroupManagersRestConnectionImpl::ListPerInstanceConfigs( future> RegionInstanceGroupManagersRestConnectionImpl::PatchInstanceGroupManager( google::cloud::cpp::compute::region_instance_group_managers::v1:: - PatchInstanceGroupManagerRequest const& request) { + PatchInstanceGroupManagerRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::region_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, request, + [stub = stub_]( + CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_instance_group_managers::v1:: + PatchInstanceGroupManagerRequest const& request) { + return stub->AsyncPatchInstanceGroupManager( + cq, std::move(context), std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->PatchInstanceGroupManager(request), + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [request](std::string const& op, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest& r) { + r.set_project(request.project()); + r.set_region(request.region()); + r.set_operation(op); + }, + [request](std::string const& op, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest& r) { + r.set_project(request.project()); + r.set_region(request.region()); + r.set_operation(op); + }); +} + +StatusOr +RegionInstanceGroupManagersRestConnectionImpl::PatchInstanceGroupManager( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_instance_group_managers::v1:: + PatchInstanceGroupManagerRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->PatchInstanceGroupManager(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::region_instance_group_managers::v1:: + PatchInstanceGroupManagerRequest const& request) { + return stub_->PatchInstanceGroupManager(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +RegionInstanceGroupManagersRestConnectionImpl::PatchInstanceGroupManager( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::region_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }); +} + +future> +RegionInstanceGroupManagersRestConnectionImpl::PatchPerInstanceConfigs( + google::cloud::cpp::compute::region_instance_group_managers::v1:: + PatchPerInstanceConfigsRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::region_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, request, + [stub = stub_]( + CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_instance_group_managers::v1:: + PatchPerInstanceConfigsRequest const& request) { + return stub->AsyncPatchPerInstanceConfigs(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->PatchPerInstanceConfigs(request), + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [request](std::string const& op, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest& r) { + r.set_project(request.project()); + r.set_region(request.region()); + r.set_operation(op); + }, + [request](std::string const& op, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest& r) { + r.set_project(request.project()); + r.set_region(request.region()); + r.set_operation(op); + }); +} + +StatusOr +RegionInstanceGroupManagersRestConnectionImpl::PatchPerInstanceConfigs( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_instance_group_managers::v1:: + PatchPerInstanceConfigsRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->PatchPerInstanceConfigs(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::region_instance_group_managers::v1:: + PatchPerInstanceConfigsRequest const& request) { + return stub_->PatchPerInstanceConfigs(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +RegionInstanceGroupManagersRestConnectionImpl::PatchPerInstanceConfigs( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::region_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }); +} + +future> +RegionInstanceGroupManagersRestConnectionImpl::RecreateInstances( + google::cloud::cpp::compute::region_instance_group_managers::v1:: + RecreateInstancesRequest const& request) { auto current = google::cloud::internal::SaveCurrentOptions(); return rest_internal::AsyncRestLongRunningOperation< google::cloud::cpp::compute::v1::Operation, @@ -645,9 +1427,9 @@ RegionInstanceGroupManagersRestConnectionImpl::PatchInstanceGroupManager( std::unique_ptr context, google::cloud::internal::ImmutableOptions options, google::cloud::cpp::compute::region_instance_group_managers::v1:: - PatchInstanceGroupManagerRequest const& request) { - return stub->AsyncPatchInstanceGroupManager( - cq, std::move(context), std::move(options), request); + RecreateInstancesRequest const& request) { + return stub->AsyncRecreateInstances(cq, std::move(context), + std::move(options), request); }, [stub = stub_](CompletionQueue& cq, std::unique_ptr context, @@ -668,7 +1450,7 @@ RegionInstanceGroupManagersRestConnectionImpl::PatchInstanceGroupManager( [](StatusOr op, std::string const&) { return op; }, retry_policy(*current), backoff_policy(*current), - idempotency_policy(*current)->PatchInstanceGroupManager(request), + idempotency_policy(*current)->RecreateInstances(request), polling_policy(*current), __func__, [](google::cloud::cpp::compute::v1::Operation const& op) { return op.status() == "DONE"; @@ -689,27 +1471,35 @@ RegionInstanceGroupManagersRestConnectionImpl::PatchInstanceGroupManager( }); } -future> -RegionInstanceGroupManagersRestConnectionImpl::PatchPerInstanceConfigs( +StatusOr +RegionInstanceGroupManagersRestConnectionImpl::RecreateInstances( + ExperimentalTag, NoAwaitTag, google::cloud::cpp::compute::region_instance_group_managers::v1:: - PatchPerInstanceConfigsRequest const& request) { + RecreateInstancesRequest const& request) { auto current = google::cloud::internal::SaveCurrentOptions(); - return rest_internal::AsyncRestLongRunningOperation< + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->RecreateInstances(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::region_instance_group_managers::v1:: + RecreateInstancesRequest const& request) { + return stub_->RecreateInstances(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +RegionInstanceGroupManagersRestConnectionImpl::RecreateInstances( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< google::cloud::cpp::compute::v1::Operation, google::cloud::cpp::compute::v1::Operation, google::cloud::cpp::compute::region_operations::v1::GetOperationRequest, google::cloud::cpp::compute::region_operations::v1:: DeleteOperationRequest>( - background_->cq(), current, request, - [stub = stub_]( - CompletionQueue& cq, - std::unique_ptr context, - google::cloud::internal::ImmutableOptions options, - google::cloud::cpp::compute::region_instance_group_managers::v1:: - PatchPerInstanceConfigsRequest const& request) { - return stub->AsyncPatchPerInstanceConfigs(cq, std::move(context), - std::move(options), request); - }, + background_->cq(), current, operation, [stub = stub_](CompletionQueue& cq, std::unique_ptr context, google::cloud::internal::ImmutableOptions options, @@ -728,32 +1518,36 @@ RegionInstanceGroupManagersRestConnectionImpl::PatchPerInstanceConfigs( }, [](StatusOr op, std::string const&) { return op; }, - retry_policy(*current), backoff_policy(*current), - idempotency_policy(*current)->PatchPerInstanceConfigs(request), polling_policy(*current), __func__, [](google::cloud::cpp::compute::v1::Operation const& op) { return op.status() == "DONE"; }, - [request](std::string const& op, - google::cloud::cpp::compute::region_operations::v1:: - GetOperationRequest& r) { - r.set_project(request.project()); - r.set_region(request.region()); - r.set_operation(op); - }, - [request](std::string const& op, - google::cloud::cpp::compute::region_operations::v1:: - DeleteOperationRequest& r) { - r.set_project(request.project()); - r.set_region(request.region()); - r.set_operation(op); + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); }); } future> -RegionInstanceGroupManagersRestConnectionImpl::RecreateInstances( +RegionInstanceGroupManagersRestConnectionImpl::Resize( google::cloud::cpp::compute::region_instance_group_managers::v1:: - RecreateInstancesRequest const& request) { + ResizeRequest const& request) { auto current = google::cloud::internal::SaveCurrentOptions(); return rest_internal::AsyncRestLongRunningOperation< google::cloud::cpp::compute::v1::Operation, @@ -767,9 +1561,9 @@ RegionInstanceGroupManagersRestConnectionImpl::RecreateInstances( std::unique_ptr context, google::cloud::internal::ImmutableOptions options, google::cloud::cpp::compute::region_instance_group_managers::v1:: - RecreateInstancesRequest const& request) { - return stub->AsyncRecreateInstances(cq, std::move(context), - std::move(options), request); + ResizeRequest const& request) { + return stub->AsyncResize(cq, std::move(context), std::move(options), + request); }, [stub = stub_](CompletionQueue& cq, std::unique_ptr context, @@ -790,8 +1584,8 @@ RegionInstanceGroupManagersRestConnectionImpl::RecreateInstances( [](StatusOr op, std::string const&) { return op; }, retry_policy(*current), backoff_policy(*current), - idempotency_policy(*current)->RecreateInstances(request), - polling_policy(*current), __func__, + idempotency_policy(*current)->Resize(request), polling_policy(*current), + __func__, [](google::cloud::cpp::compute::v1::Operation const& op) { return op.status() == "DONE"; }, @@ -811,27 +1605,35 @@ RegionInstanceGroupManagersRestConnectionImpl::RecreateInstances( }); } -future> +StatusOr RegionInstanceGroupManagersRestConnectionImpl::Resize( + ExperimentalTag, NoAwaitTag, google::cloud::cpp::compute::region_instance_group_managers::v1:: ResizeRequest const& request) { auto current = google::cloud::internal::SaveCurrentOptions(); - return rest_internal::AsyncRestLongRunningOperation< + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->Resize(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::region_instance_group_managers::v1:: + ResizeRequest const& request) { + return stub_->Resize(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +RegionInstanceGroupManagersRestConnectionImpl::Resize( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< google::cloud::cpp::compute::v1::Operation, google::cloud::cpp::compute::v1::Operation, google::cloud::cpp::compute::region_operations::v1::GetOperationRequest, google::cloud::cpp::compute::region_operations::v1:: DeleteOperationRequest>( - background_->cq(), current, request, - [stub = stub_]( - CompletionQueue& cq, - std::unique_ptr context, - google::cloud::internal::ImmutableOptions options, - google::cloud::cpp::compute::region_instance_group_managers::v1:: - ResizeRequest const& request) { - return stub->AsyncResize(cq, std::move(context), std::move(options), - request); - }, + background_->cq(), current, operation, [stub = stub_](CompletionQueue& cq, std::unique_ptr context, google::cloud::internal::ImmutableOptions options, @@ -850,25 +1652,29 @@ RegionInstanceGroupManagersRestConnectionImpl::Resize( }, [](StatusOr op, std::string const&) { return op; }, - retry_policy(*current), backoff_policy(*current), - idempotency_policy(*current)->Resize(request), polling_policy(*current), - __func__, + polling_policy(*current), __func__, [](google::cloud::cpp::compute::v1::Operation const& op) { return op.status() == "DONE"; }, - [request](std::string const& op, - google::cloud::cpp::compute::region_operations::v1:: - GetOperationRequest& r) { - r.set_project(request.project()); - r.set_region(request.region()); - r.set_operation(op); - }, - [request](std::string const& op, - google::cloud::cpp::compute::region_operations::v1:: - DeleteOperationRequest& r) { - r.set_project(request.project()); - r.set_region(request.region()); - r.set_operation(op); + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); }); } @@ -933,6 +1739,79 @@ RegionInstanceGroupManagersRestConnectionImpl::SetInstanceTemplate( }); } +StatusOr +RegionInstanceGroupManagersRestConnectionImpl::SetInstanceTemplate( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_instance_group_managers::v1:: + SetInstanceTemplateRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->SetInstanceTemplate(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::region_instance_group_managers::v1:: + SetInstanceTemplateRequest const& request) { + return stub_->SetInstanceTemplate(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +RegionInstanceGroupManagersRestConnectionImpl::SetInstanceTemplate( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::region_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }); +} + future> RegionInstanceGroupManagersRestConnectionImpl::SetTargetPools( google::cloud::cpp::compute::region_instance_group_managers::v1:: @@ -994,6 +1873,79 @@ RegionInstanceGroupManagersRestConnectionImpl::SetTargetPools( }); } +StatusOr +RegionInstanceGroupManagersRestConnectionImpl::SetTargetPools( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_instance_group_managers::v1:: + SetTargetPoolsRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->SetTargetPools(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::region_instance_group_managers::v1:: + SetTargetPoolsRequest const& request) { + return stub_->SetTargetPools(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +RegionInstanceGroupManagersRestConnectionImpl::SetTargetPools( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::region_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }); +} + future> RegionInstanceGroupManagersRestConnectionImpl::UpdatePerInstanceConfigs( google::cloud::cpp::compute::region_instance_group_managers::v1:: @@ -1055,6 +2007,79 @@ RegionInstanceGroupManagersRestConnectionImpl::UpdatePerInstanceConfigs( }); } +StatusOr +RegionInstanceGroupManagersRestConnectionImpl::UpdatePerInstanceConfigs( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_instance_group_managers::v1:: + UpdatePerInstanceConfigsRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UpdatePerInstanceConfigs(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::region_instance_group_managers::v1:: + UpdatePerInstanceConfigsRequest const& request) { + return stub_->UpdatePerInstanceConfigs(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +RegionInstanceGroupManagersRestConnectionImpl::UpdatePerInstanceConfigs( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::region_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace compute_region_instance_group_managers_v1_internal } // namespace cloud diff --git a/google/cloud/compute/region_instance_group_managers/v1/internal/region_instance_group_managers_rest_connection_impl.h b/google/cloud/compute/region_instance_group_managers/v1/internal/region_instance_group_managers_rest_connection_impl.h index dc5bb7ffce2f1..98ae32c58a0c9 100644 --- a/google/cloud/compute/region_instance_group_managers/v1/internal/region_instance_group_managers_rest_connection_impl.h +++ b/google/cloud/compute/region_instance_group_managers/v1/internal/region_instance_group_managers_rest_connection_impl.h @@ -58,29 +58,87 @@ class RegionInstanceGroupManagersRestConnectionImpl google::cloud::cpp::compute::region_instance_group_managers::v1:: AbandonInstancesRequest const& request) override; + StatusOr AbandonInstances( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_instance_group_managers::v1:: + AbandonInstancesRequest const& request) override; + + future> AbandonInstances( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> ApplyUpdatesToInstances( google::cloud::cpp::compute::region_instance_group_managers::v1:: ApplyUpdatesToInstancesRequest const& request) override; + StatusOr ApplyUpdatesToInstances( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_instance_group_managers::v1:: + ApplyUpdatesToInstancesRequest const& request) override; + + future> + ApplyUpdatesToInstances( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> CreateInstances( google::cloud::cpp::compute::region_instance_group_managers::v1:: CreateInstancesRequest const& request) override; + StatusOr CreateInstances( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_instance_group_managers::v1:: + CreateInstancesRequest const& request) override; + + future> CreateInstances( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> DeleteInstanceGroupManager( google::cloud::cpp::compute::region_instance_group_managers::v1:: DeleteInstanceGroupManagerRequest const& request) override; + StatusOr + DeleteInstanceGroupManager( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_instance_group_managers::v1:: + DeleteInstanceGroupManagerRequest const& request) override; + + future> + DeleteInstanceGroupManager( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> DeleteInstances( google::cloud::cpp::compute::region_instance_group_managers::v1:: DeleteInstancesRequest const& request) override; + StatusOr DeleteInstances( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_instance_group_managers::v1:: + DeleteInstancesRequest const& request) override; + + future> DeleteInstances( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> DeletePerInstanceConfigs( google::cloud::cpp::compute::region_instance_group_managers::v1:: DeletePerInstanceConfigsRequest const& request) override; + StatusOr DeletePerInstanceConfigs( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_instance_group_managers::v1:: + DeletePerInstanceConfigsRequest const& request) override; + + future> + DeletePerInstanceConfigs( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StatusOr GetInstanceGroupManager( google::cloud::cpp::compute::region_instance_group_managers::v1:: @@ -91,6 +149,17 @@ class RegionInstanceGroupManagersRestConnectionImpl google::cloud::cpp::compute::region_instance_group_managers::v1:: InsertInstanceGroupManagerRequest const& request) override; + StatusOr + InsertInstanceGroupManager( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_instance_group_managers::v1:: + InsertInstanceGroupManagerRequest const& request) override; + + future> + InsertInstanceGroupManager( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StreamRange ListRegionInstanceGroupManagers( google::cloud::cpp::compute::region_instance_group_managers::v1:: @@ -116,34 +185,103 @@ class RegionInstanceGroupManagersRestConnectionImpl google::cloud::cpp::compute::region_instance_group_managers::v1:: PatchInstanceGroupManagerRequest const& request) override; + StatusOr + PatchInstanceGroupManager( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_instance_group_managers::v1:: + PatchInstanceGroupManagerRequest const& request) override; + + future> + PatchInstanceGroupManager( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> PatchPerInstanceConfigs( google::cloud::cpp::compute::region_instance_group_managers::v1:: PatchPerInstanceConfigsRequest const& request) override; + StatusOr PatchPerInstanceConfigs( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_instance_group_managers::v1:: + PatchPerInstanceConfigsRequest const& request) override; + + future> + PatchPerInstanceConfigs( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> RecreateInstances( google::cloud::cpp::compute::region_instance_group_managers::v1:: RecreateInstancesRequest const& request) override; + StatusOr RecreateInstances( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_instance_group_managers::v1:: + RecreateInstancesRequest const& request) override; + + future> + RecreateInstances( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> Resize( google::cloud::cpp::compute::region_instance_group_managers::v1:: ResizeRequest const& request) override; + StatusOr Resize( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_instance_group_managers::v1:: + ResizeRequest const& request) override; + + future> Resize( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> SetInstanceTemplate( google::cloud::cpp::compute::region_instance_group_managers::v1:: SetInstanceTemplateRequest const& request) override; + StatusOr SetInstanceTemplate( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_instance_group_managers::v1:: + SetInstanceTemplateRequest const& request) override; + + future> + SetInstanceTemplate( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> SetTargetPools( google::cloud::cpp::compute::region_instance_group_managers::v1:: SetTargetPoolsRequest const& request) override; + StatusOr SetTargetPools( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_instance_group_managers::v1:: + SetTargetPoolsRequest const& request) override; + + future> SetTargetPools( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> UpdatePerInstanceConfigs( google::cloud::cpp::compute::region_instance_group_managers::v1:: UpdatePerInstanceConfigsRequest const& request) override; + StatusOr UpdatePerInstanceConfigs( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_instance_group_managers::v1:: + UpdatePerInstanceConfigsRequest const& request) override; + + future> + UpdatePerInstanceConfigs( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + private: static std::unique_ptr diff --git a/google/cloud/compute/region_instance_group_managers/v1/internal/region_instance_group_managers_tracing_connection.cc b/google/cloud/compute/region_instance_group_managers/v1/internal/region_instance_group_managers_tracing_connection.cc index 7520953ae099a..6d0d8684cb876 100644 --- a/google/cloud/compute/region_instance_group_managers/v1/internal/region_instance_group_managers_tracing_connection.cc +++ b/google/cloud/compute/region_instance_group_managers/v1/internal/region_instance_group_managers_tracing_connection.cc @@ -48,6 +48,32 @@ RegionInstanceGroupManagersTracingConnection::AbandonInstances( return internal::EndSpan(std::move(span), child_->AbandonInstances(request)); } +StatusOr +RegionInstanceGroupManagersTracingConnection::AbandonInstances( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_instance_group_managers::v1:: + AbandonInstancesRequest const& request) { + auto span = internal::MakeSpan( + "compute_region_instance_group_managers_v1::" + "RegionInstanceGroupManagersConnection::AbandonInstances"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->AbandonInstances(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +RegionInstanceGroupManagersTracingConnection::AbandonInstances( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_region_instance_group_managers_v1::" + "RegionInstanceGroupManagersConnection::AbandonInstances"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->AbandonInstances(ExperimentalTag{}, operation)); +} + future> RegionInstanceGroupManagersTracingConnection::ApplyUpdatesToInstances( google::cloud::cpp::compute::region_instance_group_managers::v1:: @@ -60,6 +86,32 @@ RegionInstanceGroupManagersTracingConnection::ApplyUpdatesToInstances( child_->ApplyUpdatesToInstances(request)); } +StatusOr +RegionInstanceGroupManagersTracingConnection::ApplyUpdatesToInstances( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_instance_group_managers::v1:: + ApplyUpdatesToInstancesRequest const& request) { + auto span = internal::MakeSpan( + "compute_region_instance_group_managers_v1::" + "RegionInstanceGroupManagersConnection::ApplyUpdatesToInstances"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->ApplyUpdatesToInstances(ExperimentalTag{}, NoAwaitTag{}, + request)); +} + +future> +RegionInstanceGroupManagersTracingConnection::ApplyUpdatesToInstances( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_region_instance_group_managers_v1::" + "RegionInstanceGroupManagersConnection::ApplyUpdatesToInstances"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->ApplyUpdatesToInstances( + ExperimentalTag{}, operation)); +} + future> RegionInstanceGroupManagersTracingConnection::CreateInstances( google::cloud::cpp::compute::region_instance_group_managers::v1:: @@ -71,6 +123,31 @@ RegionInstanceGroupManagersTracingConnection::CreateInstances( return internal::EndSpan(std::move(span), child_->CreateInstances(request)); } +StatusOr +RegionInstanceGroupManagersTracingConnection::CreateInstances( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_instance_group_managers::v1:: + CreateInstancesRequest const& request) { + auto span = internal::MakeSpan( + "compute_region_instance_group_managers_v1::" + "RegionInstanceGroupManagersConnection::CreateInstances"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->CreateInstances(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +RegionInstanceGroupManagersTracingConnection::CreateInstances( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_region_instance_group_managers_v1::" + "RegionInstanceGroupManagersConnection::CreateInstances"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->CreateInstances(ExperimentalTag{}, operation)); +} + future> RegionInstanceGroupManagersTracingConnection::DeleteInstanceGroupManager( google::cloud::cpp::compute::region_instance_group_managers::v1:: @@ -83,6 +160,32 @@ RegionInstanceGroupManagersTracingConnection::DeleteInstanceGroupManager( child_->DeleteInstanceGroupManager(request)); } +StatusOr +RegionInstanceGroupManagersTracingConnection::DeleteInstanceGroupManager( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_instance_group_managers::v1:: + DeleteInstanceGroupManagerRequest const& request) { + auto span = internal::MakeSpan( + "compute_region_instance_group_managers_v1::" + "RegionInstanceGroupManagersConnection::DeleteInstanceGroupManager"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->DeleteInstanceGroupManager(ExperimentalTag{}, NoAwaitTag{}, + request)); +} + +future> +RegionInstanceGroupManagersTracingConnection::DeleteInstanceGroupManager( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_region_instance_group_managers_v1::" + "RegionInstanceGroupManagersConnection::DeleteInstanceGroupManager"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->DeleteInstanceGroupManager( + ExperimentalTag{}, operation)); +} + future> RegionInstanceGroupManagersTracingConnection::DeleteInstances( google::cloud::cpp::compute::region_instance_group_managers::v1:: @@ -94,6 +197,31 @@ RegionInstanceGroupManagersTracingConnection::DeleteInstances( return internal::EndSpan(std::move(span), child_->DeleteInstances(request)); } +StatusOr +RegionInstanceGroupManagersTracingConnection::DeleteInstances( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_instance_group_managers::v1:: + DeleteInstancesRequest const& request) { + auto span = internal::MakeSpan( + "compute_region_instance_group_managers_v1::" + "RegionInstanceGroupManagersConnection::DeleteInstances"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->DeleteInstances(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +RegionInstanceGroupManagersTracingConnection::DeleteInstances( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_region_instance_group_managers_v1::" + "RegionInstanceGroupManagersConnection::DeleteInstances"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->DeleteInstances(ExperimentalTag{}, operation)); +} + future> RegionInstanceGroupManagersTracingConnection::DeletePerInstanceConfigs( google::cloud::cpp::compute::region_instance_group_managers::v1:: @@ -106,6 +234,32 @@ RegionInstanceGroupManagersTracingConnection::DeletePerInstanceConfigs( child_->DeletePerInstanceConfigs(request)); } +StatusOr +RegionInstanceGroupManagersTracingConnection::DeletePerInstanceConfigs( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_instance_group_managers::v1:: + DeletePerInstanceConfigsRequest const& request) { + auto span = internal::MakeSpan( + "compute_region_instance_group_managers_v1::" + "RegionInstanceGroupManagersConnection::DeletePerInstanceConfigs"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->DeletePerInstanceConfigs(ExperimentalTag{}, NoAwaitTag{}, + request)); +} + +future> +RegionInstanceGroupManagersTracingConnection::DeletePerInstanceConfigs( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_region_instance_group_managers_v1::" + "RegionInstanceGroupManagersConnection::DeletePerInstanceConfigs"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->DeletePerInstanceConfigs( + ExperimentalTag{}, operation)); +} + StatusOr RegionInstanceGroupManagersTracingConnection::GetInstanceGroupManager( google::cloud::cpp::compute::region_instance_group_managers::v1:: @@ -129,6 +283,32 @@ RegionInstanceGroupManagersTracingConnection::InsertInstanceGroupManager( child_->InsertInstanceGroupManager(request)); } +StatusOr +RegionInstanceGroupManagersTracingConnection::InsertInstanceGroupManager( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_instance_group_managers::v1:: + InsertInstanceGroupManagerRequest const& request) { + auto span = internal::MakeSpan( + "compute_region_instance_group_managers_v1::" + "RegionInstanceGroupManagersConnection::InsertInstanceGroupManager"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->InsertInstanceGroupManager(ExperimentalTag{}, NoAwaitTag{}, + request)); +} + +future> +RegionInstanceGroupManagersTracingConnection::InsertInstanceGroupManager( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_region_instance_group_managers_v1::" + "RegionInstanceGroupManagersConnection::InsertInstanceGroupManager"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->InsertInstanceGroupManager( + ExperimentalTag{}, operation)); +} + StreamRange RegionInstanceGroupManagersTracingConnection::ListRegionInstanceGroupManagers( google::cloud::cpp::compute::region_instance_group_managers::v1:: @@ -195,6 +375,32 @@ RegionInstanceGroupManagersTracingConnection::PatchInstanceGroupManager( child_->PatchInstanceGroupManager(request)); } +StatusOr +RegionInstanceGroupManagersTracingConnection::PatchInstanceGroupManager( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_instance_group_managers::v1:: + PatchInstanceGroupManagerRequest const& request) { + auto span = internal::MakeSpan( + "compute_region_instance_group_managers_v1::" + "RegionInstanceGroupManagersConnection::PatchInstanceGroupManager"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->PatchInstanceGroupManager(ExperimentalTag{}, NoAwaitTag{}, + request)); +} + +future> +RegionInstanceGroupManagersTracingConnection::PatchInstanceGroupManager( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_region_instance_group_managers_v1::" + "RegionInstanceGroupManagersConnection::PatchInstanceGroupManager"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->PatchInstanceGroupManager( + ExperimentalTag{}, operation)); +} + future> RegionInstanceGroupManagersTracingConnection::PatchPerInstanceConfigs( google::cloud::cpp::compute::region_instance_group_managers::v1:: @@ -207,6 +413,32 @@ RegionInstanceGroupManagersTracingConnection::PatchPerInstanceConfigs( child_->PatchPerInstanceConfigs(request)); } +StatusOr +RegionInstanceGroupManagersTracingConnection::PatchPerInstanceConfigs( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_instance_group_managers::v1:: + PatchPerInstanceConfigsRequest const& request) { + auto span = internal::MakeSpan( + "compute_region_instance_group_managers_v1::" + "RegionInstanceGroupManagersConnection::PatchPerInstanceConfigs"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->PatchPerInstanceConfigs(ExperimentalTag{}, NoAwaitTag{}, + request)); +} + +future> +RegionInstanceGroupManagersTracingConnection::PatchPerInstanceConfigs( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_region_instance_group_managers_v1::" + "RegionInstanceGroupManagersConnection::PatchPerInstanceConfigs"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->PatchPerInstanceConfigs( + ExperimentalTag{}, operation)); +} + future> RegionInstanceGroupManagersTracingConnection::RecreateInstances( google::cloud::cpp::compute::region_instance_group_managers::v1:: @@ -218,6 +450,32 @@ RegionInstanceGroupManagersTracingConnection::RecreateInstances( return internal::EndSpan(std::move(span), child_->RecreateInstances(request)); } +StatusOr +RegionInstanceGroupManagersTracingConnection::RecreateInstances( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_instance_group_managers::v1:: + RecreateInstancesRequest const& request) { + auto span = internal::MakeSpan( + "compute_region_instance_group_managers_v1::" + "RegionInstanceGroupManagersConnection::RecreateInstances"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->RecreateInstances(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +RegionInstanceGroupManagersTracingConnection::RecreateInstances( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_region_instance_group_managers_v1::" + "RegionInstanceGroupManagersConnection::RecreateInstances"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->RecreateInstances(ExperimentalTag{}, operation)); +} + future> RegionInstanceGroupManagersTracingConnection::Resize( google::cloud::cpp::compute::region_instance_group_managers::v1:: @@ -229,6 +487,31 @@ RegionInstanceGroupManagersTracingConnection::Resize( return internal::EndSpan(std::move(span), child_->Resize(request)); } +StatusOr +RegionInstanceGroupManagersTracingConnection::Resize( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_instance_group_managers::v1:: + ResizeRequest const& request) { + auto span = internal::MakeSpan( + "compute_region_instance_group_managers_v1::" + "RegionInstanceGroupManagersConnection::Resize"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->Resize(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +RegionInstanceGroupManagersTracingConnection::Resize( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_region_instance_group_managers_v1::" + "RegionInstanceGroupManagersConnection::Resize"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->Resize(ExperimentalTag{}, operation)); +} + future> RegionInstanceGroupManagersTracingConnection::SetInstanceTemplate( google::cloud::cpp::compute::region_instance_group_managers::v1:: @@ -241,6 +524,32 @@ RegionInstanceGroupManagersTracingConnection::SetInstanceTemplate( child_->SetInstanceTemplate(request)); } +StatusOr +RegionInstanceGroupManagersTracingConnection::SetInstanceTemplate( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_instance_group_managers::v1:: + SetInstanceTemplateRequest const& request) { + auto span = internal::MakeSpan( + "compute_region_instance_group_managers_v1::" + "RegionInstanceGroupManagersConnection::SetInstanceTemplate"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->SetInstanceTemplate(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +RegionInstanceGroupManagersTracingConnection::SetInstanceTemplate( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_region_instance_group_managers_v1::" + "RegionInstanceGroupManagersConnection::SetInstanceTemplate"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->SetInstanceTemplate( + ExperimentalTag{}, operation)); +} + future> RegionInstanceGroupManagersTracingConnection::SetTargetPools( google::cloud::cpp::compute::region_instance_group_managers::v1:: @@ -252,6 +561,31 @@ RegionInstanceGroupManagersTracingConnection::SetTargetPools( return internal::EndSpan(std::move(span), child_->SetTargetPools(request)); } +StatusOr +RegionInstanceGroupManagersTracingConnection::SetTargetPools( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_instance_group_managers::v1:: + SetTargetPoolsRequest const& request) { + auto span = internal::MakeSpan( + "compute_region_instance_group_managers_v1::" + "RegionInstanceGroupManagersConnection::SetTargetPools"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->SetTargetPools(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +RegionInstanceGroupManagersTracingConnection::SetTargetPools( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_region_instance_group_managers_v1::" + "RegionInstanceGroupManagersConnection::SetTargetPools"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->SetTargetPools(ExperimentalTag{}, operation)); +} + future> RegionInstanceGroupManagersTracingConnection::UpdatePerInstanceConfigs( google::cloud::cpp::compute::region_instance_group_managers::v1:: @@ -264,6 +598,32 @@ RegionInstanceGroupManagersTracingConnection::UpdatePerInstanceConfigs( child_->UpdatePerInstanceConfigs(request)); } +StatusOr +RegionInstanceGroupManagersTracingConnection::UpdatePerInstanceConfigs( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_instance_group_managers::v1:: + UpdatePerInstanceConfigsRequest const& request) { + auto span = internal::MakeSpan( + "compute_region_instance_group_managers_v1::" + "RegionInstanceGroupManagersConnection::UpdatePerInstanceConfigs"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->UpdatePerInstanceConfigs(ExperimentalTag{}, NoAwaitTag{}, + request)); +} + +future> +RegionInstanceGroupManagersTracingConnection::UpdatePerInstanceConfigs( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_region_instance_group_managers_v1::" + "RegionInstanceGroupManagersConnection::UpdatePerInstanceConfigs"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->UpdatePerInstanceConfigs( + ExperimentalTag{}, operation)); +} + #endif // GOOGLE_CLOUD_CPP_HAVE_OPENTELEMETRY std::shared_ptr AbandonInstances( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_instance_group_managers::v1:: + AbandonInstancesRequest const& request) override; + + future> AbandonInstances( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> ApplyUpdatesToInstances( google::cloud::cpp::compute::region_instance_group_managers::v1:: ApplyUpdatesToInstancesRequest const& request) override; + StatusOr ApplyUpdatesToInstances( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_instance_group_managers::v1:: + ApplyUpdatesToInstancesRequest const& request) override; + + future> + ApplyUpdatesToInstances( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> CreateInstances( google::cloud::cpp::compute::region_instance_group_managers::v1:: CreateInstancesRequest const& request) override; + StatusOr CreateInstances( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_instance_group_managers::v1:: + CreateInstancesRequest const& request) override; + + future> CreateInstances( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> DeleteInstanceGroupManager( google::cloud::cpp::compute::region_instance_group_managers::v1:: DeleteInstanceGroupManagerRequest const& request) override; + StatusOr + DeleteInstanceGroupManager( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_instance_group_managers::v1:: + DeleteInstanceGroupManagerRequest const& request) override; + + future> + DeleteInstanceGroupManager( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> DeleteInstances( google::cloud::cpp::compute::region_instance_group_managers::v1:: DeleteInstancesRequest const& request) override; + StatusOr DeleteInstances( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_instance_group_managers::v1:: + DeleteInstancesRequest const& request) override; + + future> DeleteInstances( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> DeletePerInstanceConfigs( google::cloud::cpp::compute::region_instance_group_managers::v1:: DeletePerInstanceConfigsRequest const& request) override; + StatusOr DeletePerInstanceConfigs( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_instance_group_managers::v1:: + DeletePerInstanceConfigsRequest const& request) override; + + future> + DeletePerInstanceConfigs( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StatusOr GetInstanceGroupManager( google::cloud::cpp::compute::region_instance_group_managers::v1:: @@ -81,6 +139,17 @@ class RegionInstanceGroupManagersTracingConnection google::cloud::cpp::compute::region_instance_group_managers::v1:: InsertInstanceGroupManagerRequest const& request) override; + StatusOr + InsertInstanceGroupManager( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_instance_group_managers::v1:: + InsertInstanceGroupManagerRequest const& request) override; + + future> + InsertInstanceGroupManager( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StreamRange ListRegionInstanceGroupManagers( google::cloud::cpp::compute::region_instance_group_managers::v1:: @@ -106,34 +175,103 @@ class RegionInstanceGroupManagersTracingConnection google::cloud::cpp::compute::region_instance_group_managers::v1:: PatchInstanceGroupManagerRequest const& request) override; + StatusOr + PatchInstanceGroupManager( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_instance_group_managers::v1:: + PatchInstanceGroupManagerRequest const& request) override; + + future> + PatchInstanceGroupManager( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> PatchPerInstanceConfigs( google::cloud::cpp::compute::region_instance_group_managers::v1:: PatchPerInstanceConfigsRequest const& request) override; + StatusOr PatchPerInstanceConfigs( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_instance_group_managers::v1:: + PatchPerInstanceConfigsRequest const& request) override; + + future> + PatchPerInstanceConfigs( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> RecreateInstances( google::cloud::cpp::compute::region_instance_group_managers::v1:: RecreateInstancesRequest const& request) override; + StatusOr RecreateInstances( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_instance_group_managers::v1:: + RecreateInstancesRequest const& request) override; + + future> + RecreateInstances( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> Resize( google::cloud::cpp::compute::region_instance_group_managers::v1:: ResizeRequest const& request) override; + StatusOr Resize( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_instance_group_managers::v1:: + ResizeRequest const& request) override; + + future> Resize( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> SetInstanceTemplate( google::cloud::cpp::compute::region_instance_group_managers::v1:: SetInstanceTemplateRequest const& request) override; + StatusOr SetInstanceTemplate( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_instance_group_managers::v1:: + SetInstanceTemplateRequest const& request) override; + + future> + SetInstanceTemplate( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> SetTargetPools( google::cloud::cpp::compute::region_instance_group_managers::v1:: SetTargetPoolsRequest const& request) override; + StatusOr SetTargetPools( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_instance_group_managers::v1:: + SetTargetPoolsRequest const& request) override; + + future> SetTargetPools( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> UpdatePerInstanceConfigs( google::cloud::cpp::compute::region_instance_group_managers::v1:: UpdatePerInstanceConfigsRequest const& request) override; + StatusOr UpdatePerInstanceConfigs( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_instance_group_managers::v1:: + UpdatePerInstanceConfigsRequest const& request) override; + + future> + UpdatePerInstanceConfigs( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + private: std::shared_ptr diff --git a/google/cloud/compute/region_instance_group_managers/v1/mocks/mock_region_instance_group_managers_connection.h b/google/cloud/compute/region_instance_group_managers/v1/mocks/mock_region_instance_group_managers_connection.h index 5795ebf2f45d4..09a616abd3877 100644 --- a/google/cloud/compute/region_instance_group_managers/v1/mocks/mock_region_instance_group_managers_connection.h +++ b/google/cloud/compute/region_instance_group_managers/v1/mocks/mock_region_instance_group_managers_connection.h @@ -55,36 +55,114 @@ class MockRegionInstanceGroupManagersConnection AbandonInstancesRequest const& request), (override)); + MOCK_METHOD(StatusOr, + AbandonInstances, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_instance_group_managers::v1:: + AbandonInstancesRequest const& request), + (override)); + + MOCK_METHOD(future>, + AbandonInstances, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD(future>, ApplyUpdatesToInstances, (google::cloud::cpp::compute::region_instance_group_managers::v1:: ApplyUpdatesToInstancesRequest const& request), (override)); + MOCK_METHOD(StatusOr, + ApplyUpdatesToInstances, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_instance_group_managers::v1:: + ApplyUpdatesToInstancesRequest const& request), + (override)); + + MOCK_METHOD(future>, + ApplyUpdatesToInstances, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD(future>, CreateInstances, (google::cloud::cpp::compute::region_instance_group_managers::v1:: CreateInstancesRequest const& request), (override)); + MOCK_METHOD(StatusOr, + CreateInstances, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_instance_group_managers::v1:: + CreateInstancesRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateInstances, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD(future>, DeleteInstanceGroupManager, (google::cloud::cpp::compute::region_instance_group_managers::v1:: DeleteInstanceGroupManagerRequest const& request), (override)); + MOCK_METHOD(StatusOr, + DeleteInstanceGroupManager, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_instance_group_managers::v1:: + DeleteInstanceGroupManagerRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteInstanceGroupManager, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD(future>, DeleteInstances, (google::cloud::cpp::compute::region_instance_group_managers::v1:: DeleteInstancesRequest const& request), (override)); + MOCK_METHOD(StatusOr, + DeleteInstances, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_instance_group_managers::v1:: + DeleteInstancesRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteInstances, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD(future>, DeletePerInstanceConfigs, (google::cloud::cpp::compute::region_instance_group_managers::v1:: DeletePerInstanceConfigsRequest const& request), (override)); + MOCK_METHOD(StatusOr, + DeletePerInstanceConfigs, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_instance_group_managers::v1:: + DeletePerInstanceConfigsRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeletePerInstanceConfigs, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD(StatusOr, GetInstanceGroupManager, (google::cloud::cpp::compute::region_instance_group_managers::v1:: @@ -97,6 +175,19 @@ class MockRegionInstanceGroupManagersConnection InsertInstanceGroupManagerRequest const& request), (override)); + MOCK_METHOD(StatusOr, + InsertInstanceGroupManager, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_instance_group_managers::v1:: + InsertInstanceGroupManagerRequest const& request), + (override)); + + MOCK_METHOD(future>, + InsertInstanceGroupManager, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD( (StreamRange), ListRegionInstanceGroupManagers, @@ -130,41 +221,131 @@ class MockRegionInstanceGroupManagersConnection PatchInstanceGroupManagerRequest const& request), (override)); + MOCK_METHOD(StatusOr, + PatchInstanceGroupManager, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_instance_group_managers::v1:: + PatchInstanceGroupManagerRequest const& request), + (override)); + + MOCK_METHOD(future>, + PatchInstanceGroupManager, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD(future>, PatchPerInstanceConfigs, (google::cloud::cpp::compute::region_instance_group_managers::v1:: PatchPerInstanceConfigsRequest const& request), (override)); + MOCK_METHOD(StatusOr, + PatchPerInstanceConfigs, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_instance_group_managers::v1:: + PatchPerInstanceConfigsRequest const& request), + (override)); + + MOCK_METHOD(future>, + PatchPerInstanceConfigs, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD(future>, RecreateInstances, (google::cloud::cpp::compute::region_instance_group_managers::v1:: RecreateInstancesRequest const& request), (override)); + MOCK_METHOD(StatusOr, + RecreateInstances, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_instance_group_managers::v1:: + RecreateInstancesRequest const& request), + (override)); + + MOCK_METHOD(future>, + RecreateInstances, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD(future>, Resize, (google::cloud::cpp::compute::region_instance_group_managers::v1:: ResizeRequest const& request), (override)); + MOCK_METHOD(StatusOr, Resize, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_instance_group_managers::v1:: + ResizeRequest const& request), + (override)); + + MOCK_METHOD(future>, + Resize, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD(future>, SetInstanceTemplate, (google::cloud::cpp::compute::region_instance_group_managers::v1:: SetInstanceTemplateRequest const& request), (override)); + MOCK_METHOD(StatusOr, + SetInstanceTemplate, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_instance_group_managers::v1:: + SetInstanceTemplateRequest const& request), + (override)); + + MOCK_METHOD(future>, + SetInstanceTemplate, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD(future>, SetTargetPools, (google::cloud::cpp::compute::region_instance_group_managers::v1:: SetTargetPoolsRequest const& request), (override)); + MOCK_METHOD(StatusOr, + SetTargetPools, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_instance_group_managers::v1:: + SetTargetPoolsRequest const& request), + (override)); + + MOCK_METHOD(future>, + SetTargetPools, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD(future>, UpdatePerInstanceConfigs, (google::cloud::cpp::compute::region_instance_group_managers::v1:: UpdatePerInstanceConfigsRequest const& request), (override)); + + MOCK_METHOD(StatusOr, + UpdatePerInstanceConfigs, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_instance_group_managers::v1:: + UpdatePerInstanceConfigsRequest const& request), + (override)); + + MOCK_METHOD(future>, + UpdatePerInstanceConfigs, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); }; GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END diff --git a/google/cloud/compute/region_instance_group_managers/v1/region_instance_group_managers_connection.cc b/google/cloud/compute/region_instance_group_managers/v1/region_instance_group_managers_connection.cc index 8303377f2ebea..687eaa12822f8 100644 --- a/google/cloud/compute/region_instance_group_managers/v1/region_instance_group_managers_connection.cc +++ b/google/cloud/compute/region_instance_group_managers/v1/region_instance_group_managers_connection.cc @@ -47,6 +47,23 @@ RegionInstanceGroupManagersConnection::AbandonInstances( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +RegionInstanceGroupManagersConnection::AbandonInstances( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_instance_group_managers::v1:: + AbandonInstancesRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +RegionInstanceGroupManagersConnection::AbandonInstances( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> RegionInstanceGroupManagersConnection::ApplyUpdatesToInstances( google::cloud::cpp::compute::region_instance_group_managers::v1:: @@ -56,6 +73,23 @@ RegionInstanceGroupManagersConnection::ApplyUpdatesToInstances( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +RegionInstanceGroupManagersConnection::ApplyUpdatesToInstances( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_instance_group_managers::v1:: + ApplyUpdatesToInstancesRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +RegionInstanceGroupManagersConnection::ApplyUpdatesToInstances( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> RegionInstanceGroupManagersConnection::CreateInstances( google::cloud::cpp::compute::region_instance_group_managers::v1:: @@ -65,6 +99,23 @@ RegionInstanceGroupManagersConnection::CreateInstances( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +RegionInstanceGroupManagersConnection::CreateInstances( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_instance_group_managers::v1:: + CreateInstancesRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +RegionInstanceGroupManagersConnection::CreateInstances( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> RegionInstanceGroupManagersConnection::DeleteInstanceGroupManager( google::cloud::cpp::compute::region_instance_group_managers::v1:: @@ -74,6 +125,23 @@ RegionInstanceGroupManagersConnection::DeleteInstanceGroupManager( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +RegionInstanceGroupManagersConnection::DeleteInstanceGroupManager( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_instance_group_managers::v1:: + DeleteInstanceGroupManagerRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +RegionInstanceGroupManagersConnection::DeleteInstanceGroupManager( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> RegionInstanceGroupManagersConnection::DeleteInstances( google::cloud::cpp::compute::region_instance_group_managers::v1:: @@ -83,6 +151,23 @@ RegionInstanceGroupManagersConnection::DeleteInstances( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +RegionInstanceGroupManagersConnection::DeleteInstances( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_instance_group_managers::v1:: + DeleteInstancesRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +RegionInstanceGroupManagersConnection::DeleteInstances( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> RegionInstanceGroupManagersConnection::DeletePerInstanceConfigs( google::cloud::cpp::compute::region_instance_group_managers::v1:: @@ -92,6 +177,23 @@ RegionInstanceGroupManagersConnection::DeletePerInstanceConfigs( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +RegionInstanceGroupManagersConnection::DeletePerInstanceConfigs( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_instance_group_managers::v1:: + DeletePerInstanceConfigsRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +RegionInstanceGroupManagersConnection::DeletePerInstanceConfigs( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr RegionInstanceGroupManagersConnection::GetInstanceGroupManager( google::cloud::cpp::compute::region_instance_group_managers::v1:: @@ -108,6 +210,23 @@ RegionInstanceGroupManagersConnection::InsertInstanceGroupManager( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +RegionInstanceGroupManagersConnection::InsertInstanceGroupManager( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_instance_group_managers::v1:: + InsertInstanceGroupManagerRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +RegionInstanceGroupManagersConnection::InsertInstanceGroupManager( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StreamRange RegionInstanceGroupManagersConnection::ListRegionInstanceGroupManagers( google::cloud::cpp::compute::region_instance_group_managers::v1:: @@ -149,6 +268,23 @@ RegionInstanceGroupManagersConnection::PatchInstanceGroupManager( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +RegionInstanceGroupManagersConnection::PatchInstanceGroupManager( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_instance_group_managers::v1:: + PatchInstanceGroupManagerRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +RegionInstanceGroupManagersConnection::PatchInstanceGroupManager( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> RegionInstanceGroupManagersConnection::PatchPerInstanceConfigs( google::cloud::cpp::compute::region_instance_group_managers::v1:: @@ -158,6 +294,23 @@ RegionInstanceGroupManagersConnection::PatchPerInstanceConfigs( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +RegionInstanceGroupManagersConnection::PatchPerInstanceConfigs( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_instance_group_managers::v1:: + PatchPerInstanceConfigsRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +RegionInstanceGroupManagersConnection::PatchPerInstanceConfigs( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> RegionInstanceGroupManagersConnection::RecreateInstances( google::cloud::cpp::compute::region_instance_group_managers::v1:: @@ -167,6 +320,23 @@ RegionInstanceGroupManagersConnection::RecreateInstances( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +RegionInstanceGroupManagersConnection::RecreateInstances( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_instance_group_managers::v1:: + RecreateInstancesRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +RegionInstanceGroupManagersConnection::RecreateInstances( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> RegionInstanceGroupManagersConnection::Resize( google::cloud::cpp::compute::region_instance_group_managers::v1:: @@ -176,6 +346,23 @@ RegionInstanceGroupManagersConnection::Resize( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +RegionInstanceGroupManagersConnection::Resize( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_instance_group_managers::v1:: + ResizeRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +RegionInstanceGroupManagersConnection::Resize( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> RegionInstanceGroupManagersConnection::SetInstanceTemplate( google::cloud::cpp::compute::region_instance_group_managers::v1:: @@ -185,6 +372,23 @@ RegionInstanceGroupManagersConnection::SetInstanceTemplate( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +RegionInstanceGroupManagersConnection::SetInstanceTemplate( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_instance_group_managers::v1:: + SetInstanceTemplateRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +RegionInstanceGroupManagersConnection::SetInstanceTemplate( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> RegionInstanceGroupManagersConnection::SetTargetPools( google::cloud::cpp::compute::region_instance_group_managers::v1:: @@ -194,10 +398,44 @@ RegionInstanceGroupManagersConnection::SetTargetPools( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +RegionInstanceGroupManagersConnection::SetTargetPools( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_instance_group_managers::v1:: + SetTargetPoolsRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> +RegionInstanceGroupManagersConnection::SetTargetPools( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +RegionInstanceGroupManagersConnection::UpdatePerInstanceConfigs( + google::cloud::cpp::compute::region_instance_group_managers::v1:: + UpdatePerInstanceConfigsRequest const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +StatusOr RegionInstanceGroupManagersConnection::UpdatePerInstanceConfigs( + ExperimentalTag, NoAwaitTag, google::cloud::cpp::compute::region_instance_group_managers::v1:: UpdatePerInstanceConfigsRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +RegionInstanceGroupManagersConnection::UpdatePerInstanceConfigs( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { return google::cloud::make_ready_future< StatusOr>( Status(StatusCode::kUnimplemented, "not implemented")); diff --git a/google/cloud/compute/region_instance_group_managers/v1/region_instance_group_managers_connection.h b/google/cloud/compute/region_instance_group_managers/v1/region_instance_group_managers_connection.h index fd9fb8f6f6c3d..61760c85b06ad 100644 --- a/google/cloud/compute/region_instance_group_managers/v1/region_instance_group_managers_connection.h +++ b/google/cloud/compute/region_instance_group_managers/v1/region_instance_group_managers_connection.h @@ -23,8 +23,10 @@ #include "google/cloud/compute/region_instance_group_managers/v1/internal/region_instance_group_managers_retry_traits.h" #include "google/cloud/compute/region_instance_group_managers/v1/region_instance_group_managers_connection_idempotency_policy.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/internal/retry_policy_impl.h" +#include "google/cloud/no_await_tag.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" #include "google/cloud/status_or.h" @@ -208,29 +210,89 @@ class RegionInstanceGroupManagersConnection { AbandonInstances(google::cloud::cpp::compute::region_instance_group_managers:: v1::AbandonInstancesRequest const& request); + virtual StatusOr AbandonInstances( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_instance_group_managers::v1:: + AbandonInstancesRequest const& request); + + virtual future> + AbandonInstances(ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual future> ApplyUpdatesToInstances( google::cloud::cpp::compute::region_instance_group_managers::v1:: ApplyUpdatesToInstancesRequest const& request); + virtual StatusOr + ApplyUpdatesToInstances( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_instance_group_managers::v1:: + ApplyUpdatesToInstancesRequest const& request); + + virtual future> + ApplyUpdatesToInstances( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual future> CreateInstances(google::cloud::cpp::compute::region_instance_group_managers:: v1::CreateInstancesRequest const& request); + virtual StatusOr CreateInstances( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_instance_group_managers::v1:: + CreateInstancesRequest const& request); + virtual future> + CreateInstances(ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + + virtual future> + DeleteInstanceGroupManager( + google::cloud::cpp::compute::region_instance_group_managers::v1:: + DeleteInstanceGroupManagerRequest const& request); + + virtual StatusOr DeleteInstanceGroupManager( + ExperimentalTag, NoAwaitTag, google::cloud::cpp::compute::region_instance_group_managers::v1:: DeleteInstanceGroupManagerRequest const& request); + virtual future> + DeleteInstanceGroupManager( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual future> DeleteInstances(google::cloud::cpp::compute::region_instance_group_managers:: v1::DeleteInstancesRequest const& request); + virtual StatusOr DeleteInstances( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_instance_group_managers::v1:: + DeleteInstancesRequest const& request); + + virtual future> + DeleteInstances(ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual future> DeletePerInstanceConfigs( google::cloud::cpp::compute::region_instance_group_managers::v1:: DeletePerInstanceConfigsRequest const& request); + virtual StatusOr + DeletePerInstanceConfigs( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_instance_group_managers::v1:: + DeletePerInstanceConfigsRequest const& request); + + virtual future> + DeletePerInstanceConfigs( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual StatusOr GetInstanceGroupManager( google::cloud::cpp::compute::region_instance_group_managers::v1:: @@ -241,6 +303,17 @@ class RegionInstanceGroupManagersConnection { google::cloud::cpp::compute::region_instance_group_managers::v1:: InsertInstanceGroupManagerRequest const& request); + virtual StatusOr + InsertInstanceGroupManager( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_instance_group_managers::v1:: + InsertInstanceGroupManagerRequest const& request); + + virtual future> + InsertInstanceGroupManager( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual StreamRange ListRegionInstanceGroupManagers( google::cloud::cpp::compute::region_instance_group_managers::v1:: @@ -267,33 +340,106 @@ class RegionInstanceGroupManagersConnection { google::cloud::cpp::compute::region_instance_group_managers::v1:: PatchInstanceGroupManagerRequest const& request); + virtual StatusOr + PatchInstanceGroupManager( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_instance_group_managers::v1:: + PatchInstanceGroupManagerRequest const& request); + + virtual future> + PatchInstanceGroupManager( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual future> PatchPerInstanceConfigs( google::cloud::cpp::compute::region_instance_group_managers::v1:: PatchPerInstanceConfigsRequest const& request); + virtual StatusOr + PatchPerInstanceConfigs( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_instance_group_managers::v1:: + PatchPerInstanceConfigsRequest const& request); + virtual future> + PatchPerInstanceConfigs( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + + virtual future> + RecreateInstances( + google::cloud::cpp::compute::region_instance_group_managers::v1:: + RecreateInstancesRequest const& request); + + virtual StatusOr RecreateInstances( + ExperimentalTag, NoAwaitTag, google::cloud::cpp::compute::region_instance_group_managers::v1:: RecreateInstancesRequest const& request); + virtual future> + RecreateInstances( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual future> Resize( google::cloud::cpp::compute::region_instance_group_managers::v1:: ResizeRequest const& request); + virtual StatusOr Resize( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_instance_group_managers::v1:: + ResizeRequest const& request); + + virtual future> Resize( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual future> SetInstanceTemplate( google::cloud::cpp::compute::region_instance_group_managers::v1:: SetInstanceTemplateRequest const& request); + virtual StatusOr + SetInstanceTemplate( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_instance_group_managers::v1:: + SetInstanceTemplateRequest const& request); + + virtual future> + SetInstanceTemplate( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual future> SetTargetPools(google::cloud::cpp::compute::region_instance_group_managers:: v1::SetTargetPoolsRequest const& request); + virtual StatusOr SetTargetPools( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_instance_group_managers::v1:: + SetTargetPoolsRequest const& request); + + virtual future> + SetTargetPools(ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual future> UpdatePerInstanceConfigs( google::cloud::cpp::compute::region_instance_group_managers::v1:: UpdatePerInstanceConfigsRequest const& request); + + virtual StatusOr + UpdatePerInstanceConfigs( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_instance_group_managers::v1:: + UpdatePerInstanceConfigsRequest const& request); + + virtual future> + UpdatePerInstanceConfigs( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); }; GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END diff --git a/google/cloud/compute/region_instance_groups/v1/internal/region_instance_groups_rest_connection_impl.cc b/google/cloud/compute/region_instance_groups/v1/internal/region_instance_groups_rest_connection_impl.cc index 3dda36349679b..bedf514cd6eac 100644 --- a/google/cloud/compute/region_instance_groups/v1/internal/region_instance_groups_rest_connection_impl.cc +++ b/google/cloud/compute/region_instance_groups/v1/internal/region_instance_groups_rest_connection_impl.cc @@ -24,6 +24,7 @@ #include "google/cloud/internal/async_rest_long_running_operation_custom.h" #include "google/cloud/internal/extract_long_running_result.h" #include "google/cloud/internal/pagination_range.h" +#include "google/cloud/internal/rest_lro_helpers.h" #include "google/cloud/internal/rest_retry_loop.h" #include "google/cloud/rest_options.h" #include @@ -199,6 +200,79 @@ RegionInstanceGroupsRestConnectionImpl::SetNamedPorts( }); } +StatusOr +RegionInstanceGroupsRestConnectionImpl::SetNamedPorts( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_instance_groups::v1:: + SetNamedPortsRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->SetNamedPorts(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::region_instance_groups::v1:: + SetNamedPortsRequest const& request) { + return stub_->SetNamedPorts(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +RegionInstanceGroupsRestConnectionImpl::SetNamedPorts( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::region_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace compute_region_instance_groups_v1_internal } // namespace cloud diff --git a/google/cloud/compute/region_instance_groups/v1/internal/region_instance_groups_rest_connection_impl.h b/google/cloud/compute/region_instance_groups/v1/internal/region_instance_groups_rest_connection_impl.h index b8d393713b7b1..f204739f8646a 100644 --- a/google/cloud/compute/region_instance_groups/v1/internal/region_instance_groups_rest_connection_impl.h +++ b/google/cloud/compute/region_instance_groups/v1/internal/region_instance_groups_rest_connection_impl.h @@ -70,6 +70,15 @@ class RegionInstanceGroupsRestConnectionImpl google::cloud::cpp::compute::region_instance_groups::v1:: SetNamedPortsRequest const& request) override; + StatusOr SetNamedPorts( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_instance_groups::v1:: + SetNamedPortsRequest const& request) override; + + future> SetNamedPorts( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + private: static std::unique_ptr< compute_region_instance_groups_v1::RegionInstanceGroupsRetryPolicy> diff --git a/google/cloud/compute/region_instance_groups/v1/internal/region_instance_groups_tracing_connection.cc b/google/cloud/compute/region_instance_groups/v1/internal/region_instance_groups_tracing_connection.cc index 5015efcfebbf5..8e37fabd3e369 100644 --- a/google/cloud/compute/region_instance_groups/v1/internal/region_instance_groups_tracing_connection.cc +++ b/google/cloud/compute/region_instance_groups/v1/internal/region_instance_groups_tracing_connection.cc @@ -86,6 +86,31 @@ RegionInstanceGroupsTracingConnection::SetNamedPorts( return internal::EndSpan(std::move(span), child_->SetNamedPorts(request)); } +StatusOr +RegionInstanceGroupsTracingConnection::SetNamedPorts( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_instance_groups::v1:: + SetNamedPortsRequest const& request) { + auto span = internal::MakeSpan( + "compute_region_instance_groups_v1::RegionInstanceGroupsConnection::" + "SetNamedPorts"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->SetNamedPorts(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +RegionInstanceGroupsTracingConnection::SetNamedPorts( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_region_instance_groups_v1::RegionInstanceGroupsConnection::" + "SetNamedPorts"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->SetNamedPorts(ExperimentalTag{}, operation)); +} + #endif // GOOGLE_CLOUD_CPP_HAVE_OPENTELEMETRY std::shared_ptr< diff --git a/google/cloud/compute/region_instance_groups/v1/internal/region_instance_groups_tracing_connection.h b/google/cloud/compute/region_instance_groups/v1/internal/region_instance_groups_tracing_connection.h index ce4f164f47ebf..d818c99429633 100644 --- a/google/cloud/compute/region_instance_groups/v1/internal/region_instance_groups_tracing_connection.h +++ b/google/cloud/compute/region_instance_groups/v1/internal/region_instance_groups_tracing_connection.h @@ -60,6 +60,15 @@ class RegionInstanceGroupsTracingConnection google::cloud::cpp::compute::region_instance_groups::v1:: SetNamedPortsRequest const& request) override; + StatusOr SetNamedPorts( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_instance_groups::v1:: + SetNamedPortsRequest const& request) override; + + future> SetNamedPorts( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + private: std::shared_ptr< compute_region_instance_groups_v1::RegionInstanceGroupsConnection> diff --git a/google/cloud/compute/region_instance_groups/v1/mocks/mock_region_instance_groups_connection.h b/google/cloud/compute/region_instance_groups/v1/mocks/mock_region_instance_groups_connection.h index 033b452cde7e2..0a37f0a6bb4b5 100644 --- a/google/cloud/compute/region_instance_groups/v1/mocks/mock_region_instance_groups_connection.h +++ b/google/cloud/compute/region_instance_groups/v1/mocks/mock_region_instance_groups_connection.h @@ -72,6 +72,19 @@ class MockRegionInstanceGroupsConnection (google::cloud::cpp::compute::region_instance_groups::v1:: SetNamedPortsRequest const& request), (override)); + + MOCK_METHOD(StatusOr, + SetNamedPorts, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_instance_groups::v1:: + SetNamedPortsRequest const& request), + (override)); + + MOCK_METHOD(future>, + SetNamedPorts, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); }; GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END diff --git a/google/cloud/compute/region_instance_groups/v1/region_instance_groups_connection.cc b/google/cloud/compute/region_instance_groups/v1/region_instance_groups_connection.cc index a5d08c7421195..4eca5c166659b 100644 --- a/google/cloud/compute/region_instance_groups/v1/region_instance_groups_connection.cc +++ b/google/cloud/compute/region_instance_groups/v1/region_instance_groups_connection.cc @@ -69,6 +69,23 @@ RegionInstanceGroupsConnection::SetNamedPorts( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +RegionInstanceGroupsConnection::SetNamedPorts( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_instance_groups::v1:: + SetNamedPortsRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +RegionInstanceGroupsConnection::SetNamedPorts( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace compute_region_instance_groups_v1 } // namespace cloud diff --git a/google/cloud/compute/region_instance_groups/v1/region_instance_groups_connection.h b/google/cloud/compute/region_instance_groups/v1/region_instance_groups_connection.h index 7b274e6f36337..8d6e002524b1c 100644 --- a/google/cloud/compute/region_instance_groups/v1/region_instance_groups_connection.h +++ b/google/cloud/compute/region_instance_groups/v1/region_instance_groups_connection.h @@ -23,8 +23,10 @@ #include "google/cloud/compute/region_instance_groups/v1/internal/region_instance_groups_retry_traits.h" #include "google/cloud/compute/region_instance_groups/v1/region_instance_groups_connection_idempotency_policy.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/internal/retry_policy_impl.h" +#include "google/cloud/no_await_tag.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" #include "google/cloud/status_or.h" @@ -207,6 +209,15 @@ class RegionInstanceGroupsConnection { virtual future> SetNamedPorts(google::cloud::cpp::compute::region_instance_groups::v1:: SetNamedPortsRequest const& request); + + virtual StatusOr SetNamedPorts( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_instance_groups::v1:: + SetNamedPortsRequest const& request); + + virtual future> + SetNamedPorts(ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); }; GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END diff --git a/google/cloud/compute/region_instance_templates/v1/internal/region_instance_templates_rest_connection_impl.cc b/google/cloud/compute/region_instance_templates/v1/internal/region_instance_templates_rest_connection_impl.cc index c57a29a564be0..ca9a673769ba6 100644 --- a/google/cloud/compute/region_instance_templates/v1/internal/region_instance_templates_rest_connection_impl.cc +++ b/google/cloud/compute/region_instance_templates/v1/internal/region_instance_templates_rest_connection_impl.cc @@ -24,6 +24,7 @@ #include "google/cloud/internal/async_rest_long_running_operation_custom.h" #include "google/cloud/internal/extract_long_running_result.h" #include "google/cloud/internal/pagination_range.h" +#include "google/cloud/internal/rest_lro_helpers.h" #include "google/cloud/internal/rest_retry_loop.h" #include "google/cloud/rest_options.h" #include @@ -106,6 +107,79 @@ RegionInstanceTemplatesRestConnectionImpl::DeleteInstanceTemplate( }); } +StatusOr +RegionInstanceTemplatesRestConnectionImpl::DeleteInstanceTemplate( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_instance_templates::v1:: + DeleteInstanceTemplateRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteInstanceTemplate(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::region_instance_templates::v1:: + DeleteInstanceTemplateRequest const& request) { + return stub_->DeleteInstanceTemplate(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +RegionInstanceTemplatesRestConnectionImpl::DeleteInstanceTemplate( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::region_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }); +} + StatusOr RegionInstanceTemplatesRestConnectionImpl::GetInstanceTemplate( google::cloud::cpp::compute::region_instance_templates::v1:: @@ -182,6 +256,79 @@ RegionInstanceTemplatesRestConnectionImpl::InsertInstanceTemplate( }); } +StatusOr +RegionInstanceTemplatesRestConnectionImpl::InsertInstanceTemplate( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_instance_templates::v1:: + InsertInstanceTemplateRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->InsertInstanceTemplate(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::region_instance_templates::v1:: + InsertInstanceTemplateRequest const& request) { + return stub_->InsertInstanceTemplate(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +RegionInstanceTemplatesRestConnectionImpl::InsertInstanceTemplate( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::region_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }); +} + StreamRange RegionInstanceTemplatesRestConnectionImpl::ListRegionInstanceTemplates( google::cloud::cpp::compute::region_instance_templates::v1:: diff --git a/google/cloud/compute/region_instance_templates/v1/internal/region_instance_templates_rest_connection_impl.h b/google/cloud/compute/region_instance_templates/v1/internal/region_instance_templates_rest_connection_impl.h index ba43721ead203..1bd2f0659d599 100644 --- a/google/cloud/compute/region_instance_templates/v1/internal/region_instance_templates_rest_connection_impl.h +++ b/google/cloud/compute/region_instance_templates/v1/internal/region_instance_templates_rest_connection_impl.h @@ -59,6 +59,16 @@ class RegionInstanceTemplatesRestConnectionImpl google::cloud::cpp::compute::region_instance_templates::v1:: DeleteInstanceTemplateRequest const& request) override; + StatusOr DeleteInstanceTemplate( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_instance_templates::v1:: + DeleteInstanceTemplateRequest const& request) override; + + future> + DeleteInstanceTemplate( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StatusOr GetInstanceTemplate( google::cloud::cpp::compute::region_instance_templates::v1:: @@ -69,6 +79,16 @@ class RegionInstanceTemplatesRestConnectionImpl google::cloud::cpp::compute::region_instance_templates::v1:: InsertInstanceTemplateRequest const& request) override; + StatusOr InsertInstanceTemplate( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_instance_templates::v1:: + InsertInstanceTemplateRequest const& request) override; + + future> + InsertInstanceTemplate( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StreamRange ListRegionInstanceTemplates( google::cloud::cpp::compute::region_instance_templates::v1:: diff --git a/google/cloud/compute/region_instance_templates/v1/internal/region_instance_templates_tracing_connection.cc b/google/cloud/compute/region_instance_templates/v1/internal/region_instance_templates_tracing_connection.cc index d2944636839bd..09da0120879ec 100644 --- a/google/cloud/compute/region_instance_templates/v1/internal/region_instance_templates_tracing_connection.cc +++ b/google/cloud/compute/region_instance_templates/v1/internal/region_instance_templates_tracing_connection.cc @@ -49,6 +49,32 @@ RegionInstanceTemplatesTracingConnection::DeleteInstanceTemplate( child_->DeleteInstanceTemplate(request)); } +StatusOr +RegionInstanceTemplatesTracingConnection::DeleteInstanceTemplate( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_instance_templates::v1:: + DeleteInstanceTemplateRequest const& request) { + auto span = internal::MakeSpan( + "compute_region_instance_templates_v1::RegionInstanceTemplatesConnection:" + ":DeleteInstanceTemplate"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->DeleteInstanceTemplate(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +RegionInstanceTemplatesTracingConnection::DeleteInstanceTemplate( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_region_instance_templates_v1::RegionInstanceTemplatesConnection:" + ":DeleteInstanceTemplate"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->DeleteInstanceTemplate( + ExperimentalTag{}, operation)); +} + StatusOr RegionInstanceTemplatesTracingConnection::GetInstanceTemplate( google::cloud::cpp::compute::region_instance_templates::v1:: @@ -72,6 +98,32 @@ RegionInstanceTemplatesTracingConnection::InsertInstanceTemplate( child_->InsertInstanceTemplate(request)); } +StatusOr +RegionInstanceTemplatesTracingConnection::InsertInstanceTemplate( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_instance_templates::v1:: + InsertInstanceTemplateRequest const& request) { + auto span = internal::MakeSpan( + "compute_region_instance_templates_v1::RegionInstanceTemplatesConnection:" + ":InsertInstanceTemplate"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->InsertInstanceTemplate(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +RegionInstanceTemplatesTracingConnection::InsertInstanceTemplate( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_region_instance_templates_v1::RegionInstanceTemplatesConnection:" + ":InsertInstanceTemplate"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->InsertInstanceTemplate( + ExperimentalTag{}, operation)); +} + StreamRange RegionInstanceTemplatesTracingConnection::ListRegionInstanceTemplates( google::cloud::cpp::compute::region_instance_templates::v1:: diff --git a/google/cloud/compute/region_instance_templates/v1/internal/region_instance_templates_tracing_connection.h b/google/cloud/compute/region_instance_templates/v1/internal/region_instance_templates_tracing_connection.h index e5b2eeb5ad0af..4d211b6042021 100644 --- a/google/cloud/compute/region_instance_templates/v1/internal/region_instance_templates_tracing_connection.h +++ b/google/cloud/compute/region_instance_templates/v1/internal/region_instance_templates_tracing_connection.h @@ -49,6 +49,16 @@ class RegionInstanceTemplatesTracingConnection google::cloud::cpp::compute::region_instance_templates::v1:: DeleteInstanceTemplateRequest const& request) override; + StatusOr DeleteInstanceTemplate( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_instance_templates::v1:: + DeleteInstanceTemplateRequest const& request) override; + + future> + DeleteInstanceTemplate( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StatusOr GetInstanceTemplate( google::cloud::cpp::compute::region_instance_templates::v1:: @@ -59,6 +69,16 @@ class RegionInstanceTemplatesTracingConnection google::cloud::cpp::compute::region_instance_templates::v1:: InsertInstanceTemplateRequest const& request) override; + StatusOr InsertInstanceTemplate( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_instance_templates::v1:: + InsertInstanceTemplateRequest const& request) override; + + future> + InsertInstanceTemplate( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StreamRange ListRegionInstanceTemplates( google::cloud::cpp::compute::region_instance_templates::v1:: diff --git a/google/cloud/compute/region_instance_templates/v1/mocks/mock_region_instance_templates_connection.h b/google/cloud/compute/region_instance_templates/v1/mocks/mock_region_instance_templates_connection.h index a74e94841aa15..54944bee7f2c1 100644 --- a/google/cloud/compute/region_instance_templates/v1/mocks/mock_region_instance_templates_connection.h +++ b/google/cloud/compute/region_instance_templates/v1/mocks/mock_region_instance_templates_connection.h @@ -55,6 +55,19 @@ class MockRegionInstanceTemplatesConnection DeleteInstanceTemplateRequest const& request), (override)); + MOCK_METHOD(StatusOr, + DeleteInstanceTemplate, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_instance_templates::v1:: + DeleteInstanceTemplateRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteInstanceTemplate, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD(StatusOr, GetInstanceTemplate, (google::cloud::cpp::compute::region_instance_templates::v1:: @@ -67,6 +80,19 @@ class MockRegionInstanceTemplatesConnection InsertInstanceTemplateRequest const& request), (override)); + MOCK_METHOD(StatusOr, + InsertInstanceTemplate, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_instance_templates::v1:: + InsertInstanceTemplateRequest const& request), + (override)); + + MOCK_METHOD(future>, + InsertInstanceTemplate, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD((StreamRange), ListRegionInstanceTemplates, (google::cloud::cpp::compute::region_instance_templates::v1:: diff --git a/google/cloud/compute/region_instance_templates/v1/region_instance_templates_connection.cc b/google/cloud/compute/region_instance_templates/v1/region_instance_templates_connection.cc index 32264dc3d2e52..0b332de090274 100644 --- a/google/cloud/compute/region_instance_templates/v1/region_instance_templates_connection.cc +++ b/google/cloud/compute/region_instance_templates/v1/region_instance_templates_connection.cc @@ -47,6 +47,23 @@ RegionInstanceTemplatesConnection::DeleteInstanceTemplate( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +RegionInstanceTemplatesConnection::DeleteInstanceTemplate( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_instance_templates::v1:: + DeleteInstanceTemplateRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +RegionInstanceTemplatesConnection::DeleteInstanceTemplate( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr RegionInstanceTemplatesConnection::GetInstanceTemplate( google::cloud::cpp::compute::region_instance_templates::v1:: @@ -63,6 +80,23 @@ RegionInstanceTemplatesConnection::InsertInstanceTemplate( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +RegionInstanceTemplatesConnection::InsertInstanceTemplate( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_instance_templates::v1:: + InsertInstanceTemplateRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +RegionInstanceTemplatesConnection::InsertInstanceTemplate( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StreamRange RegionInstanceTemplatesConnection::ListRegionInstanceTemplates( google::cloud::cpp::compute::region_instance_templates::v1:: diff --git a/google/cloud/compute/region_instance_templates/v1/region_instance_templates_connection.h b/google/cloud/compute/region_instance_templates/v1/region_instance_templates_connection.h index 1acc0f46ed83d..dcf4f27f75d5b 100644 --- a/google/cloud/compute/region_instance_templates/v1/region_instance_templates_connection.h +++ b/google/cloud/compute/region_instance_templates/v1/region_instance_templates_connection.h @@ -23,8 +23,10 @@ #include "google/cloud/compute/region_instance_templates/v1/internal/region_instance_templates_retry_traits.h" #include "google/cloud/compute/region_instance_templates/v1/region_instance_templates_connection_idempotency_policy.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/internal/retry_policy_impl.h" +#include "google/cloud/no_await_tag.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" #include "google/cloud/status_or.h" @@ -200,6 +202,17 @@ class RegionInstanceTemplatesConnection { google::cloud::cpp::compute::region_instance_templates::v1:: DeleteInstanceTemplateRequest const& request); + virtual StatusOr + DeleteInstanceTemplate( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_instance_templates::v1:: + DeleteInstanceTemplateRequest const& request); + + virtual future> + DeleteInstanceTemplate( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual StatusOr GetInstanceTemplate(google::cloud::cpp::compute::region_instance_templates:: v1::GetInstanceTemplateRequest const& request); @@ -209,6 +222,17 @@ class RegionInstanceTemplatesConnection { google::cloud::cpp::compute::region_instance_templates::v1:: InsertInstanceTemplateRequest const& request); + virtual StatusOr + InsertInstanceTemplate( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_instance_templates::v1:: + InsertInstanceTemplateRequest const& request); + + virtual future> + InsertInstanceTemplate( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual StreamRange ListRegionInstanceTemplates( google::cloud::cpp::compute::region_instance_templates::v1:: diff --git a/google/cloud/compute/region_instances/v1/internal/region_instances_rest_connection_impl.cc b/google/cloud/compute/region_instances/v1/internal/region_instances_rest_connection_impl.cc index f757e87ca33a5..e7b9598c0c5e0 100644 --- a/google/cloud/compute/region_instances/v1/internal/region_instances_rest_connection_impl.cc +++ b/google/cloud/compute/region_instances/v1/internal/region_instances_rest_connection_impl.cc @@ -22,6 +22,7 @@ #include "google/cloud/credentials.h" #include "google/cloud/internal/async_rest_long_running_operation_custom.h" #include "google/cloud/internal/extract_long_running_result.h" +#include "google/cloud/internal/rest_lro_helpers.h" #include "google/cloud/internal/rest_retry_loop.h" #include "google/cloud/rest_options.h" #include @@ -103,6 +104,79 @@ RegionInstancesRestConnectionImpl::BulkInsert( }); } +StatusOr +RegionInstancesRestConnectionImpl::BulkInsert( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_instances::v1::BulkInsertRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->BulkInsert(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::region_instances::v1:: + BulkInsertRequest const& request) { + return stub_->BulkInsert(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +RegionInstancesRestConnectionImpl::BulkInsert( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::region_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace compute_region_instances_v1_internal } // namespace cloud diff --git a/google/cloud/compute/region_instances/v1/internal/region_instances_rest_connection_impl.h b/google/cloud/compute/region_instances/v1/internal/region_instances_rest_connection_impl.h index 8d21358216aef..dc04e24c9b8d3 100644 --- a/google/cloud/compute/region_instances/v1/internal/region_instances_rest_connection_impl.h +++ b/google/cloud/compute/region_instances/v1/internal/region_instances_rest_connection_impl.h @@ -55,6 +55,15 @@ class RegionInstancesRestConnectionImpl google::cloud::cpp::compute::region_instances::v1:: BulkInsertRequest const& request) override; + StatusOr BulkInsert( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_instances::v1:: + BulkInsertRequest const& request) override; + + future> BulkInsert( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + private: static std::unique_ptr< compute_region_instances_v1::RegionInstancesRetryPolicy> diff --git a/google/cloud/compute/region_instances/v1/internal/region_instances_tracing_connection.cc b/google/cloud/compute/region_instances/v1/internal/region_instances_tracing_connection.cc index f4d3115ea4358..e11c00bb8aa94 100644 --- a/google/cloud/compute/region_instances/v1/internal/region_instances_tracing_connection.cc +++ b/google/cloud/compute/region_instances/v1/internal/region_instances_tracing_connection.cc @@ -43,6 +43,29 @@ RegionInstancesTracingConnection::BulkInsert( return internal::EndSpan(std::move(span), child_->BulkInsert(request)); } +StatusOr +RegionInstancesTracingConnection::BulkInsert( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_instances::v1::BulkInsertRequest const& + request) { + auto span = internal::MakeSpan( + "compute_region_instances_v1::RegionInstancesConnection::BulkInsert"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->BulkInsert(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +RegionInstancesTracingConnection::BulkInsert( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_region_instances_v1::RegionInstancesConnection::BulkInsert"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->BulkInsert(ExperimentalTag{}, operation)); +} + #endif // GOOGLE_CLOUD_CPP_HAVE_OPENTELEMETRY std::shared_ptr diff --git a/google/cloud/compute/region_instances/v1/internal/region_instances_tracing_connection.h b/google/cloud/compute/region_instances/v1/internal/region_instances_tracing_connection.h index 2b23defc7c638..19eafe79bce6a 100644 --- a/google/cloud/compute/region_instances/v1/internal/region_instances_tracing_connection.h +++ b/google/cloud/compute/region_instances/v1/internal/region_instances_tracing_connection.h @@ -45,6 +45,15 @@ class RegionInstancesTracingConnection google::cloud::cpp::compute::region_instances::v1:: BulkInsertRequest const& request) override; + StatusOr BulkInsert( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_instances::v1:: + BulkInsertRequest const& request) override; + + future> BulkInsert( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + private: std::shared_ptr child_; diff --git a/google/cloud/compute/region_instances/v1/mocks/mock_region_instances_connection.h b/google/cloud/compute/region_instances/v1/mocks/mock_region_instances_connection.h index db43de5c72bdb..5d7c35860359b 100644 --- a/google/cloud/compute/region_instances/v1/mocks/mock_region_instances_connection.h +++ b/google/cloud/compute/region_instances/v1/mocks/mock_region_instances_connection.h @@ -52,6 +52,18 @@ class MockRegionInstancesConnection (google::cloud::cpp::compute::region_instances::v1:: BulkInsertRequest const& request), (override)); + + MOCK_METHOD(StatusOr, BulkInsert, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_instances::v1:: + BulkInsertRequest const& request), + (override)); + + MOCK_METHOD(future>, + BulkInsert, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); }; GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END diff --git a/google/cloud/compute/region_instances/v1/region_instances_connection.cc b/google/cloud/compute/region_instances/v1/region_instances_connection.cc index 37194090ab079..2e82c4b9a5758 100644 --- a/google/cloud/compute/region_instances/v1/region_instances_connection.cc +++ b/google/cloud/compute/region_instances/v1/region_instances_connection.cc @@ -44,6 +44,23 @@ RegionInstancesConnection::BulkInsert( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +RegionInstancesConnection::BulkInsert( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_instances::v1:: + BulkInsertRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +RegionInstancesConnection::BulkInsert( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace compute_region_instances_v1 } // namespace cloud diff --git a/google/cloud/compute/region_instances/v1/region_instances_connection.h b/google/cloud/compute/region_instances/v1/region_instances_connection.h index c6a1f60a0b47f..d835941651578 100644 --- a/google/cloud/compute/region_instances/v1/region_instances_connection.h +++ b/google/cloud/compute/region_instances/v1/region_instances_connection.h @@ -22,8 +22,10 @@ #include "google/cloud/compute/region_instances/v1/internal/region_instances_retry_traits.h" #include "google/cloud/compute/region_instances/v1/region_instances_connection_idempotency_policy.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/internal/retry_policy_impl.h" +#include "google/cloud/no_await_tag.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" #include "google/cloud/status_or.h" @@ -188,6 +190,15 @@ class RegionInstancesConnection { virtual future> BulkInsert(google::cloud::cpp::compute::region_instances::v1:: BulkInsertRequest const& request); + + virtual StatusOr BulkInsert( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_instances::v1:: + BulkInsertRequest const& request); + + virtual future> + BulkInsert(ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); }; GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END diff --git a/google/cloud/compute/region_network_endpoint_groups/v1/internal/region_network_endpoint_groups_rest_connection_impl.cc b/google/cloud/compute/region_network_endpoint_groups/v1/internal/region_network_endpoint_groups_rest_connection_impl.cc index a4b76fc64c492..93f59ffee27ac 100644 --- a/google/cloud/compute/region_network_endpoint_groups/v1/internal/region_network_endpoint_groups_rest_connection_impl.cc +++ b/google/cloud/compute/region_network_endpoint_groups/v1/internal/region_network_endpoint_groups_rest_connection_impl.cc @@ -24,6 +24,7 @@ #include "google/cloud/internal/async_rest_long_running_operation_custom.h" #include "google/cloud/internal/extract_long_running_result.h" #include "google/cloud/internal/pagination_range.h" +#include "google/cloud/internal/rest_lro_helpers.h" #include "google/cloud/internal/rest_retry_loop.h" #include "google/cloud/rest_options.h" #include @@ -108,6 +109,79 @@ RegionNetworkEndpointGroupsRestConnectionImpl::AttachNetworkEndpoints( }); } +StatusOr +RegionNetworkEndpointGroupsRestConnectionImpl::AttachNetworkEndpoints( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_network_endpoint_groups::v1:: + AttachNetworkEndpointsRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->AttachNetworkEndpoints(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::region_network_endpoint_groups::v1:: + AttachNetworkEndpointsRequest const& request) { + return stub_->AttachNetworkEndpoints(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +RegionNetworkEndpointGroupsRestConnectionImpl::AttachNetworkEndpoints( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::region_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }); +} + future> RegionNetworkEndpointGroupsRestConnectionImpl::DeleteNetworkEndpointGroup( google::cloud::cpp::compute::region_network_endpoint_groups::v1:: @@ -169,6 +243,80 @@ RegionNetworkEndpointGroupsRestConnectionImpl::DeleteNetworkEndpointGroup( }); } +StatusOr +RegionNetworkEndpointGroupsRestConnectionImpl::DeleteNetworkEndpointGroup( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_network_endpoint_groups::v1:: + DeleteNetworkEndpointGroupRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteNetworkEndpointGroup(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::region_network_endpoint_groups::v1:: + DeleteNetworkEndpointGroupRequest const& request) { + return stub_->DeleteNetworkEndpointGroup(rest_context, options, + request); + }, + *current, request, __func__); +} + +future> +RegionNetworkEndpointGroupsRestConnectionImpl::DeleteNetworkEndpointGroup( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::region_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }); +} + future> RegionNetworkEndpointGroupsRestConnectionImpl::DetachNetworkEndpoints( google::cloud::cpp::compute::region_network_endpoint_groups::v1:: @@ -230,6 +378,79 @@ RegionNetworkEndpointGroupsRestConnectionImpl::DetachNetworkEndpoints( }); } +StatusOr +RegionNetworkEndpointGroupsRestConnectionImpl::DetachNetworkEndpoints( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_network_endpoint_groups::v1:: + DetachNetworkEndpointsRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DetachNetworkEndpoints(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::region_network_endpoint_groups::v1:: + DetachNetworkEndpointsRequest const& request) { + return stub_->DetachNetworkEndpoints(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +RegionNetworkEndpointGroupsRestConnectionImpl::DetachNetworkEndpoints( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::region_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }); +} + StatusOr RegionNetworkEndpointGroupsRestConnectionImpl::GetNetworkEndpointGroup( google::cloud::cpp::compute::region_network_endpoint_groups::v1:: @@ -307,6 +528,80 @@ RegionNetworkEndpointGroupsRestConnectionImpl::InsertNetworkEndpointGroup( }); } +StatusOr +RegionNetworkEndpointGroupsRestConnectionImpl::InsertNetworkEndpointGroup( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_network_endpoint_groups::v1:: + InsertNetworkEndpointGroupRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->InsertNetworkEndpointGroup(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::region_network_endpoint_groups::v1:: + InsertNetworkEndpointGroupRequest const& request) { + return stub_->InsertNetworkEndpointGroup(rest_context, options, + request); + }, + *current, request, __func__); +} + +future> +RegionNetworkEndpointGroupsRestConnectionImpl::InsertNetworkEndpointGroup( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::region_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }); +} + StreamRange RegionNetworkEndpointGroupsRestConnectionImpl::ListRegionNetworkEndpointGroups( google::cloud::cpp::compute::region_network_endpoint_groups::v1:: diff --git a/google/cloud/compute/region_network_endpoint_groups/v1/internal/region_network_endpoint_groups_rest_connection_impl.h b/google/cloud/compute/region_network_endpoint_groups/v1/internal/region_network_endpoint_groups_rest_connection_impl.h index a7f86e05d113a..1cffdce493615 100644 --- a/google/cloud/compute/region_network_endpoint_groups/v1/internal/region_network_endpoint_groups_rest_connection_impl.h +++ b/google/cloud/compute/region_network_endpoint_groups/v1/internal/region_network_endpoint_groups_rest_connection_impl.h @@ -59,16 +59,47 @@ class RegionNetworkEndpointGroupsRestConnectionImpl google::cloud::cpp::compute::region_network_endpoint_groups::v1:: AttachNetworkEndpointsRequest const& request) override; + StatusOr AttachNetworkEndpoints( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_network_endpoint_groups::v1:: + AttachNetworkEndpointsRequest const& request) override; + + future> + AttachNetworkEndpoints( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> DeleteNetworkEndpointGroup( google::cloud::cpp::compute::region_network_endpoint_groups::v1:: DeleteNetworkEndpointGroupRequest const& request) override; + StatusOr + DeleteNetworkEndpointGroup( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_network_endpoint_groups::v1:: + DeleteNetworkEndpointGroupRequest const& request) override; + + future> + DeleteNetworkEndpointGroup( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> DetachNetworkEndpoints( google::cloud::cpp::compute::region_network_endpoint_groups::v1:: DetachNetworkEndpointsRequest const& request) override; + StatusOr DetachNetworkEndpoints( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_network_endpoint_groups::v1:: + DetachNetworkEndpointsRequest const& request) override; + + future> + DetachNetworkEndpoints( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StatusOr GetNetworkEndpointGroup( google::cloud::cpp::compute::region_network_endpoint_groups::v1:: @@ -79,6 +110,17 @@ class RegionNetworkEndpointGroupsRestConnectionImpl google::cloud::cpp::compute::region_network_endpoint_groups::v1:: InsertNetworkEndpointGroupRequest const& request) override; + StatusOr + InsertNetworkEndpointGroup( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_network_endpoint_groups::v1:: + InsertNetworkEndpointGroupRequest const& request) override; + + future> + InsertNetworkEndpointGroup( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StreamRange ListRegionNetworkEndpointGroups( google::cloud::cpp::compute::region_network_endpoint_groups::v1:: diff --git a/google/cloud/compute/region_network_endpoint_groups/v1/internal/region_network_endpoint_groups_tracing_connection.cc b/google/cloud/compute/region_network_endpoint_groups/v1/internal/region_network_endpoint_groups_tracing_connection.cc index 8d8fa5c3a6b3a..32c6eb645cf56 100644 --- a/google/cloud/compute/region_network_endpoint_groups/v1/internal/region_network_endpoint_groups_tracing_connection.cc +++ b/google/cloud/compute/region_network_endpoint_groups/v1/internal/region_network_endpoint_groups_tracing_connection.cc @@ -49,6 +49,32 @@ RegionNetworkEndpointGroupsTracingConnection::AttachNetworkEndpoints( child_->AttachNetworkEndpoints(request)); } +StatusOr +RegionNetworkEndpointGroupsTracingConnection::AttachNetworkEndpoints( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_network_endpoint_groups::v1:: + AttachNetworkEndpointsRequest const& request) { + auto span = internal::MakeSpan( + "compute_region_network_endpoint_groups_v1::" + "RegionNetworkEndpointGroupsConnection::AttachNetworkEndpoints"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->AttachNetworkEndpoints(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +RegionNetworkEndpointGroupsTracingConnection::AttachNetworkEndpoints( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_region_network_endpoint_groups_v1::" + "RegionNetworkEndpointGroupsConnection::AttachNetworkEndpoints"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->AttachNetworkEndpoints( + ExperimentalTag{}, operation)); +} + future> RegionNetworkEndpointGroupsTracingConnection::DeleteNetworkEndpointGroup( google::cloud::cpp::compute::region_network_endpoint_groups::v1:: @@ -61,6 +87,32 @@ RegionNetworkEndpointGroupsTracingConnection::DeleteNetworkEndpointGroup( child_->DeleteNetworkEndpointGroup(request)); } +StatusOr +RegionNetworkEndpointGroupsTracingConnection::DeleteNetworkEndpointGroup( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_network_endpoint_groups::v1:: + DeleteNetworkEndpointGroupRequest const& request) { + auto span = internal::MakeSpan( + "compute_region_network_endpoint_groups_v1::" + "RegionNetworkEndpointGroupsConnection::DeleteNetworkEndpointGroup"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->DeleteNetworkEndpointGroup(ExperimentalTag{}, NoAwaitTag{}, + request)); +} + +future> +RegionNetworkEndpointGroupsTracingConnection::DeleteNetworkEndpointGroup( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_region_network_endpoint_groups_v1::" + "RegionNetworkEndpointGroupsConnection::DeleteNetworkEndpointGroup"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->DeleteNetworkEndpointGroup( + ExperimentalTag{}, operation)); +} + future> RegionNetworkEndpointGroupsTracingConnection::DetachNetworkEndpoints( google::cloud::cpp::compute::region_network_endpoint_groups::v1:: @@ -73,6 +125,32 @@ RegionNetworkEndpointGroupsTracingConnection::DetachNetworkEndpoints( child_->DetachNetworkEndpoints(request)); } +StatusOr +RegionNetworkEndpointGroupsTracingConnection::DetachNetworkEndpoints( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_network_endpoint_groups::v1:: + DetachNetworkEndpointsRequest const& request) { + auto span = internal::MakeSpan( + "compute_region_network_endpoint_groups_v1::" + "RegionNetworkEndpointGroupsConnection::DetachNetworkEndpoints"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->DetachNetworkEndpoints(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +RegionNetworkEndpointGroupsTracingConnection::DetachNetworkEndpoints( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_region_network_endpoint_groups_v1::" + "RegionNetworkEndpointGroupsConnection::DetachNetworkEndpoints"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->DetachNetworkEndpoints( + ExperimentalTag{}, operation)); +} + StatusOr RegionNetworkEndpointGroupsTracingConnection::GetNetworkEndpointGroup( google::cloud::cpp::compute::region_network_endpoint_groups::v1:: @@ -96,6 +174,32 @@ RegionNetworkEndpointGroupsTracingConnection::InsertNetworkEndpointGroup( child_->InsertNetworkEndpointGroup(request)); } +StatusOr +RegionNetworkEndpointGroupsTracingConnection::InsertNetworkEndpointGroup( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_network_endpoint_groups::v1:: + InsertNetworkEndpointGroupRequest const& request) { + auto span = internal::MakeSpan( + "compute_region_network_endpoint_groups_v1::" + "RegionNetworkEndpointGroupsConnection::InsertNetworkEndpointGroup"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->InsertNetworkEndpointGroup(ExperimentalTag{}, NoAwaitTag{}, + request)); +} + +future> +RegionNetworkEndpointGroupsTracingConnection::InsertNetworkEndpointGroup( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_region_network_endpoint_groups_v1::" + "RegionNetworkEndpointGroupsConnection::InsertNetworkEndpointGroup"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->InsertNetworkEndpointGroup( + ExperimentalTag{}, operation)); +} + StreamRange RegionNetworkEndpointGroupsTracingConnection::ListRegionNetworkEndpointGroups( google::cloud::cpp::compute::region_network_endpoint_groups::v1:: diff --git a/google/cloud/compute/region_network_endpoint_groups/v1/internal/region_network_endpoint_groups_tracing_connection.h b/google/cloud/compute/region_network_endpoint_groups/v1/internal/region_network_endpoint_groups_tracing_connection.h index 15384dd825db4..804804f9fa06b 100644 --- a/google/cloud/compute/region_network_endpoint_groups/v1/internal/region_network_endpoint_groups_tracing_connection.h +++ b/google/cloud/compute/region_network_endpoint_groups/v1/internal/region_network_endpoint_groups_tracing_connection.h @@ -49,16 +49,47 @@ class RegionNetworkEndpointGroupsTracingConnection google::cloud::cpp::compute::region_network_endpoint_groups::v1:: AttachNetworkEndpointsRequest const& request) override; + StatusOr AttachNetworkEndpoints( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_network_endpoint_groups::v1:: + AttachNetworkEndpointsRequest const& request) override; + + future> + AttachNetworkEndpoints( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> DeleteNetworkEndpointGroup( google::cloud::cpp::compute::region_network_endpoint_groups::v1:: DeleteNetworkEndpointGroupRequest const& request) override; + StatusOr + DeleteNetworkEndpointGroup( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_network_endpoint_groups::v1:: + DeleteNetworkEndpointGroupRequest const& request) override; + + future> + DeleteNetworkEndpointGroup( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> DetachNetworkEndpoints( google::cloud::cpp::compute::region_network_endpoint_groups::v1:: DetachNetworkEndpointsRequest const& request) override; + StatusOr DetachNetworkEndpoints( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_network_endpoint_groups::v1:: + DetachNetworkEndpointsRequest const& request) override; + + future> + DetachNetworkEndpoints( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StatusOr GetNetworkEndpointGroup( google::cloud::cpp::compute::region_network_endpoint_groups::v1:: @@ -69,6 +100,17 @@ class RegionNetworkEndpointGroupsTracingConnection google::cloud::cpp::compute::region_network_endpoint_groups::v1:: InsertNetworkEndpointGroupRequest const& request) override; + StatusOr + InsertNetworkEndpointGroup( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_network_endpoint_groups::v1:: + InsertNetworkEndpointGroupRequest const& request) override; + + future> + InsertNetworkEndpointGroup( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StreamRange ListRegionNetworkEndpointGroups( google::cloud::cpp::compute::region_network_endpoint_groups::v1:: diff --git a/google/cloud/compute/region_network_endpoint_groups/v1/mocks/mock_region_network_endpoint_groups_connection.h b/google/cloud/compute/region_network_endpoint_groups/v1/mocks/mock_region_network_endpoint_groups_connection.h index b4b79aaa7790c..a973cf394b3b3 100644 --- a/google/cloud/compute/region_network_endpoint_groups/v1/mocks/mock_region_network_endpoint_groups_connection.h +++ b/google/cloud/compute/region_network_endpoint_groups/v1/mocks/mock_region_network_endpoint_groups_connection.h @@ -55,18 +55,57 @@ class MockRegionNetworkEndpointGroupsConnection AttachNetworkEndpointsRequest const& request), (override)); + MOCK_METHOD(StatusOr, + AttachNetworkEndpoints, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_network_endpoint_groups::v1:: + AttachNetworkEndpointsRequest const& request), + (override)); + + MOCK_METHOD(future>, + AttachNetworkEndpoints, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD(future>, DeleteNetworkEndpointGroup, (google::cloud::cpp::compute::region_network_endpoint_groups::v1:: DeleteNetworkEndpointGroupRequest const& request), (override)); + MOCK_METHOD(StatusOr, + DeleteNetworkEndpointGroup, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_network_endpoint_groups::v1:: + DeleteNetworkEndpointGroupRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteNetworkEndpointGroup, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD(future>, DetachNetworkEndpoints, (google::cloud::cpp::compute::region_network_endpoint_groups::v1:: DetachNetworkEndpointsRequest const& request), (override)); + MOCK_METHOD(StatusOr, + DetachNetworkEndpoints, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_network_endpoint_groups::v1:: + DetachNetworkEndpointsRequest const& request), + (override)); + + MOCK_METHOD(future>, + DetachNetworkEndpoints, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD(StatusOr, GetNetworkEndpointGroup, (google::cloud::cpp::compute::region_network_endpoint_groups::v1:: @@ -79,6 +118,19 @@ class MockRegionNetworkEndpointGroupsConnection InsertNetworkEndpointGroupRequest const& request), (override)); + MOCK_METHOD(StatusOr, + InsertNetworkEndpointGroup, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_network_endpoint_groups::v1:: + InsertNetworkEndpointGroupRequest const& request), + (override)); + + MOCK_METHOD(future>, + InsertNetworkEndpointGroup, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD( (StreamRange), ListRegionNetworkEndpointGroups, diff --git a/google/cloud/compute/region_network_endpoint_groups/v1/region_network_endpoint_groups_connection.cc b/google/cloud/compute/region_network_endpoint_groups/v1/region_network_endpoint_groups_connection.cc index 5230129eb8dcb..f337cace48d89 100644 --- a/google/cloud/compute/region_network_endpoint_groups/v1/region_network_endpoint_groups_connection.cc +++ b/google/cloud/compute/region_network_endpoint_groups/v1/region_network_endpoint_groups_connection.cc @@ -47,6 +47,23 @@ RegionNetworkEndpointGroupsConnection::AttachNetworkEndpoints( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +RegionNetworkEndpointGroupsConnection::AttachNetworkEndpoints( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_network_endpoint_groups::v1:: + AttachNetworkEndpointsRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +RegionNetworkEndpointGroupsConnection::AttachNetworkEndpoints( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> RegionNetworkEndpointGroupsConnection::DeleteNetworkEndpointGroup( google::cloud::cpp::compute::region_network_endpoint_groups::v1:: @@ -56,6 +73,23 @@ RegionNetworkEndpointGroupsConnection::DeleteNetworkEndpointGroup( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +RegionNetworkEndpointGroupsConnection::DeleteNetworkEndpointGroup( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_network_endpoint_groups::v1:: + DeleteNetworkEndpointGroupRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +RegionNetworkEndpointGroupsConnection::DeleteNetworkEndpointGroup( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> RegionNetworkEndpointGroupsConnection::DetachNetworkEndpoints( google::cloud::cpp::compute::region_network_endpoint_groups::v1:: @@ -65,6 +99,23 @@ RegionNetworkEndpointGroupsConnection::DetachNetworkEndpoints( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +RegionNetworkEndpointGroupsConnection::DetachNetworkEndpoints( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_network_endpoint_groups::v1:: + DetachNetworkEndpointsRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +RegionNetworkEndpointGroupsConnection::DetachNetworkEndpoints( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr RegionNetworkEndpointGroupsConnection::GetNetworkEndpointGroup( google::cloud::cpp::compute::region_network_endpoint_groups::v1:: @@ -81,6 +132,23 @@ RegionNetworkEndpointGroupsConnection::InsertNetworkEndpointGroup( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +RegionNetworkEndpointGroupsConnection::InsertNetworkEndpointGroup( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_network_endpoint_groups::v1:: + InsertNetworkEndpointGroupRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +RegionNetworkEndpointGroupsConnection::InsertNetworkEndpointGroup( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StreamRange RegionNetworkEndpointGroupsConnection::ListRegionNetworkEndpointGroups( google::cloud::cpp::compute::region_network_endpoint_groups::v1:: diff --git a/google/cloud/compute/region_network_endpoint_groups/v1/region_network_endpoint_groups_connection.h b/google/cloud/compute/region_network_endpoint_groups/v1/region_network_endpoint_groups_connection.h index ca7554c31c332..a476be17a473c 100644 --- a/google/cloud/compute/region_network_endpoint_groups/v1/region_network_endpoint_groups_connection.h +++ b/google/cloud/compute/region_network_endpoint_groups/v1/region_network_endpoint_groups_connection.h @@ -23,8 +23,10 @@ #include "google/cloud/compute/region_network_endpoint_groups/v1/internal/region_network_endpoint_groups_retry_traits.h" #include "google/cloud/compute/region_network_endpoint_groups/v1/region_network_endpoint_groups_connection_idempotency_policy.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/internal/retry_policy_impl.h" +#include "google/cloud/no_await_tag.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" #include "google/cloud/status_or.h" @@ -209,16 +211,49 @@ class RegionNetworkEndpointGroupsConnection { google::cloud::cpp::compute::region_network_endpoint_groups::v1:: AttachNetworkEndpointsRequest const& request); + virtual StatusOr + AttachNetworkEndpoints( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_network_endpoint_groups::v1:: + AttachNetworkEndpointsRequest const& request); + + virtual future> + AttachNetworkEndpoints( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual future> DeleteNetworkEndpointGroup( google::cloud::cpp::compute::region_network_endpoint_groups::v1:: DeleteNetworkEndpointGroupRequest const& request); + virtual StatusOr + DeleteNetworkEndpointGroup( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_network_endpoint_groups::v1:: + DeleteNetworkEndpointGroupRequest const& request); + + virtual future> + DeleteNetworkEndpointGroup( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual future> DetachNetworkEndpoints( google::cloud::cpp::compute::region_network_endpoint_groups::v1:: DetachNetworkEndpointsRequest const& request); + virtual StatusOr + DetachNetworkEndpoints( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_network_endpoint_groups::v1:: + DetachNetworkEndpointsRequest const& request); + + virtual future> + DetachNetworkEndpoints( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual StatusOr GetNetworkEndpointGroup( google::cloud::cpp::compute::region_network_endpoint_groups::v1:: @@ -229,6 +264,17 @@ class RegionNetworkEndpointGroupsConnection { google::cloud::cpp::compute::region_network_endpoint_groups::v1:: InsertNetworkEndpointGroupRequest const& request); + virtual StatusOr + InsertNetworkEndpointGroup( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_network_endpoint_groups::v1:: + InsertNetworkEndpointGroupRequest const& request); + + virtual future> + InsertNetworkEndpointGroup( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual StreamRange ListRegionNetworkEndpointGroups( google::cloud::cpp::compute::region_network_endpoint_groups::v1:: diff --git a/google/cloud/compute/region_network_firewall_policies/v1/internal/region_network_firewall_policies_rest_connection_impl.cc b/google/cloud/compute/region_network_firewall_policies/v1/internal/region_network_firewall_policies_rest_connection_impl.cc index df6400a2a5a20..e09fbf285b9b8 100644 --- a/google/cloud/compute/region_network_firewall_policies/v1/internal/region_network_firewall_policies_rest_connection_impl.cc +++ b/google/cloud/compute/region_network_firewall_policies/v1/internal/region_network_firewall_policies_rest_connection_impl.cc @@ -24,6 +24,7 @@ #include "google/cloud/internal/async_rest_long_running_operation_custom.h" #include "google/cloud/internal/extract_long_running_result.h" #include "google/cloud/internal/pagination_range.h" +#include "google/cloud/internal/rest_lro_helpers.h" #include "google/cloud/internal/rest_retry_loop.h" #include "google/cloud/rest_options.h" #include @@ -108,6 +109,79 @@ RegionNetworkFirewallPoliciesRestConnectionImpl::AddAssociation( }); } +StatusOr +RegionNetworkFirewallPoliciesRestConnectionImpl::AddAssociation( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_network_firewall_policies::v1:: + AddAssociationRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->AddAssociation(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::region_network_firewall_policies::v1:: + AddAssociationRequest const& request) { + return stub_->AddAssociation(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +RegionNetworkFirewallPoliciesRestConnectionImpl::AddAssociation( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::region_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }); +} + future> RegionNetworkFirewallPoliciesRestConnectionImpl::AddRule( google::cloud::cpp::compute::region_network_firewall_policies::v1:: @@ -169,6 +243,79 @@ RegionNetworkFirewallPoliciesRestConnectionImpl::AddRule( }); } +StatusOr +RegionNetworkFirewallPoliciesRestConnectionImpl::AddRule( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_network_firewall_policies::v1:: + AddRuleRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->AddRule(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::region_network_firewall_policies::v1:: + AddRuleRequest const& request) { + return stub_->AddRule(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +RegionNetworkFirewallPoliciesRestConnectionImpl::AddRule( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::region_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }); +} + future> RegionNetworkFirewallPoliciesRestConnectionImpl::CloneRules( google::cloud::cpp::compute::region_network_firewall_policies::v1:: @@ -230,6 +377,79 @@ RegionNetworkFirewallPoliciesRestConnectionImpl::CloneRules( }); } +StatusOr +RegionNetworkFirewallPoliciesRestConnectionImpl::CloneRules( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_network_firewall_policies::v1:: + CloneRulesRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CloneRules(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::region_network_firewall_policies::v1:: + CloneRulesRequest const& request) { + return stub_->CloneRules(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +RegionNetworkFirewallPoliciesRestConnectionImpl::CloneRules( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::region_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }); +} + future> RegionNetworkFirewallPoliciesRestConnectionImpl::DeleteFirewallPolicy( google::cloud::cpp::compute::region_network_firewall_policies::v1:: @@ -291,6 +511,79 @@ RegionNetworkFirewallPoliciesRestConnectionImpl::DeleteFirewallPolicy( }); } +StatusOr +RegionNetworkFirewallPoliciesRestConnectionImpl::DeleteFirewallPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_network_firewall_policies::v1:: + DeleteFirewallPolicyRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteFirewallPolicy(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::region_network_firewall_policies::v1:: + DeleteFirewallPolicyRequest const& request) { + return stub_->DeleteFirewallPolicy(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +RegionNetworkFirewallPoliciesRestConnectionImpl::DeleteFirewallPolicy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::region_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }); +} + StatusOr RegionNetworkFirewallPoliciesRestConnectionImpl::GetFirewallPolicy( google::cloud::cpp::compute::region_network_firewall_policies::v1:: @@ -433,6 +726,79 @@ RegionNetworkFirewallPoliciesRestConnectionImpl::InsertFirewallPolicy( }); } +StatusOr +RegionNetworkFirewallPoliciesRestConnectionImpl::InsertFirewallPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_network_firewall_policies::v1:: + InsertFirewallPolicyRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->InsertFirewallPolicy(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::region_network_firewall_policies::v1:: + InsertFirewallPolicyRequest const& request) { + return stub_->InsertFirewallPolicy(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +RegionNetworkFirewallPoliciesRestConnectionImpl::InsertFirewallPolicy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::region_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }); +} + StreamRange RegionNetworkFirewallPoliciesRestConnectionImpl:: ListRegionNetworkFirewallPolicies( @@ -537,6 +903,79 @@ RegionNetworkFirewallPoliciesRestConnectionImpl::PatchFirewallPolicy( }); } +StatusOr +RegionNetworkFirewallPoliciesRestConnectionImpl::PatchFirewallPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_network_firewall_policies::v1:: + PatchFirewallPolicyRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->PatchFirewallPolicy(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::region_network_firewall_policies::v1:: + PatchFirewallPolicyRequest const& request) { + return stub_->PatchFirewallPolicy(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +RegionNetworkFirewallPoliciesRestConnectionImpl::PatchFirewallPolicy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::region_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }); +} + future> RegionNetworkFirewallPoliciesRestConnectionImpl::PatchRule( google::cloud::cpp::compute::region_network_firewall_policies::v1:: @@ -598,6 +1037,79 @@ RegionNetworkFirewallPoliciesRestConnectionImpl::PatchRule( }); } +StatusOr +RegionNetworkFirewallPoliciesRestConnectionImpl::PatchRule( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_network_firewall_policies::v1:: + PatchRuleRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->PatchRule(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::region_network_firewall_policies::v1:: + PatchRuleRequest const& request) { + return stub_->PatchRule(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +RegionNetworkFirewallPoliciesRestConnectionImpl::PatchRule( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::region_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }); +} + future> RegionNetworkFirewallPoliciesRestConnectionImpl::RemoveAssociation( google::cloud::cpp::compute::region_network_firewall_policies::v1:: @@ -659,6 +1171,79 @@ RegionNetworkFirewallPoliciesRestConnectionImpl::RemoveAssociation( }); } +StatusOr +RegionNetworkFirewallPoliciesRestConnectionImpl::RemoveAssociation( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_network_firewall_policies::v1:: + RemoveAssociationRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->RemoveAssociation(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::region_network_firewall_policies::v1:: + RemoveAssociationRequest const& request) { + return stub_->RemoveAssociation(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +RegionNetworkFirewallPoliciesRestConnectionImpl::RemoveAssociation( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::region_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }); +} + future> RegionNetworkFirewallPoliciesRestConnectionImpl::RemoveRule( google::cloud::cpp::compute::region_network_firewall_policies::v1:: @@ -720,6 +1305,79 @@ RegionNetworkFirewallPoliciesRestConnectionImpl::RemoveRule( }); } +StatusOr +RegionNetworkFirewallPoliciesRestConnectionImpl::RemoveRule( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_network_firewall_policies::v1:: + RemoveRuleRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->RemoveRule(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::region_network_firewall_policies::v1:: + RemoveRuleRequest const& request) { + return stub_->RemoveRule(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +RegionNetworkFirewallPoliciesRestConnectionImpl::RemoveRule( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::region_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }); +} + StatusOr RegionNetworkFirewallPoliciesRestConnectionImpl::SetIamPolicy( google::cloud::cpp::compute::region_network_firewall_policies::v1:: diff --git a/google/cloud/compute/region_network_firewall_policies/v1/internal/region_network_firewall_policies_rest_connection_impl.h b/google/cloud/compute/region_network_firewall_policies/v1/internal/region_network_firewall_policies_rest_connection_impl.h index 91c4ed8281543..8df9a3d7659ca 100644 --- a/google/cloud/compute/region_network_firewall_policies/v1/internal/region_network_firewall_policies_rest_connection_impl.h +++ b/google/cloud/compute/region_network_firewall_policies/v1/internal/region_network_firewall_policies_rest_connection_impl.h @@ -58,19 +58,56 @@ class RegionNetworkFirewallPoliciesRestConnectionImpl google::cloud::cpp::compute::region_network_firewall_policies::v1:: AddAssociationRequest const& request) override; + StatusOr AddAssociation( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_network_firewall_policies::v1:: + AddAssociationRequest const& request) override; + + future> AddAssociation( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> AddRule( google::cloud::cpp::compute::region_network_firewall_policies::v1:: AddRuleRequest const& request) override; + StatusOr AddRule( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_network_firewall_policies::v1:: + AddRuleRequest const& request) override; + + future> AddRule( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> CloneRules( google::cloud::cpp::compute::region_network_firewall_policies::v1:: CloneRulesRequest const& request) override; + StatusOr CloneRules( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_network_firewall_policies::v1:: + CloneRulesRequest const& request) override; + + future> CloneRules( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> DeleteFirewallPolicy( google::cloud::cpp::compute::region_network_firewall_policies::v1:: DeleteFirewallPolicyRequest const& request) override; + StatusOr DeleteFirewallPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_network_firewall_policies::v1:: + DeleteFirewallPolicyRequest const& request) override; + + future> + DeleteFirewallPolicy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StatusOr GetFirewallPolicy( google::cloud::cpp::compute::region_network_firewall_policies::v1:: GetFirewallPolicyRequest const& request) override; @@ -98,6 +135,16 @@ class RegionNetworkFirewallPoliciesRestConnectionImpl google::cloud::cpp::compute::region_network_firewall_policies::v1:: InsertFirewallPolicyRequest const& request) override; + StatusOr InsertFirewallPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_network_firewall_policies::v1:: + InsertFirewallPolicyRequest const& request) override; + + future> + InsertFirewallPolicy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StreamRange ListRegionNetworkFirewallPolicies( google::cloud::cpp::compute::region_network_firewall_policies::v1:: @@ -108,19 +155,57 @@ class RegionNetworkFirewallPoliciesRestConnectionImpl google::cloud::cpp::compute::region_network_firewall_policies::v1:: PatchFirewallPolicyRequest const& request) override; + StatusOr PatchFirewallPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_network_firewall_policies::v1:: + PatchFirewallPolicyRequest const& request) override; + + future> + PatchFirewallPolicy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> PatchRule( google::cloud::cpp::compute::region_network_firewall_policies::v1:: PatchRuleRequest const& request) override; + StatusOr PatchRule( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_network_firewall_policies::v1:: + PatchRuleRequest const& request) override; + + future> PatchRule( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> RemoveAssociation( google::cloud::cpp::compute::region_network_firewall_policies::v1:: RemoveAssociationRequest const& request) override; + StatusOr RemoveAssociation( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_network_firewall_policies::v1:: + RemoveAssociationRequest const& request) override; + + future> + RemoveAssociation( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> RemoveRule( google::cloud::cpp::compute::region_network_firewall_policies::v1:: RemoveRuleRequest const& request) override; + StatusOr RemoveRule( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_network_firewall_policies::v1:: + RemoveRuleRequest const& request) override; + + future> RemoveRule( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StatusOr SetIamPolicy( google::cloud::cpp::compute::region_network_firewall_policies::v1:: SetIamPolicyRequest const& request) override; diff --git a/google/cloud/compute/region_network_firewall_policies/v1/internal/region_network_firewall_policies_tracing_connection.cc b/google/cloud/compute/region_network_firewall_policies/v1/internal/region_network_firewall_policies_tracing_connection.cc index bebc22cb68f82..0bf527396aba4 100644 --- a/google/cloud/compute/region_network_firewall_policies/v1/internal/region_network_firewall_policies_tracing_connection.cc +++ b/google/cloud/compute/region_network_firewall_policies/v1/internal/region_network_firewall_policies_tracing_connection.cc @@ -48,6 +48,31 @@ RegionNetworkFirewallPoliciesTracingConnection::AddAssociation( return internal::EndSpan(std::move(span), child_->AddAssociation(request)); } +StatusOr +RegionNetworkFirewallPoliciesTracingConnection::AddAssociation( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_network_firewall_policies::v1:: + AddAssociationRequest const& request) { + auto span = internal::MakeSpan( + "compute_region_network_firewall_policies_v1::" + "RegionNetworkFirewallPoliciesConnection::AddAssociation"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->AddAssociation(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +RegionNetworkFirewallPoliciesTracingConnection::AddAssociation( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_region_network_firewall_policies_v1::" + "RegionNetworkFirewallPoliciesConnection::AddAssociation"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->AddAssociation(ExperimentalTag{}, operation)); +} + future> RegionNetworkFirewallPoliciesTracingConnection::AddRule( google::cloud::cpp::compute::region_network_firewall_policies::v1:: @@ -59,6 +84,31 @@ RegionNetworkFirewallPoliciesTracingConnection::AddRule( return internal::EndSpan(std::move(span), child_->AddRule(request)); } +StatusOr +RegionNetworkFirewallPoliciesTracingConnection::AddRule( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_network_firewall_policies::v1:: + AddRuleRequest const& request) { + auto span = internal::MakeSpan( + "compute_region_network_firewall_policies_v1::" + "RegionNetworkFirewallPoliciesConnection::AddRule"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->AddRule(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +RegionNetworkFirewallPoliciesTracingConnection::AddRule( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_region_network_firewall_policies_v1::" + "RegionNetworkFirewallPoliciesConnection::AddRule"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->AddRule(ExperimentalTag{}, operation)); +} + future> RegionNetworkFirewallPoliciesTracingConnection::CloneRules( google::cloud::cpp::compute::region_network_firewall_policies::v1:: @@ -70,6 +120,31 @@ RegionNetworkFirewallPoliciesTracingConnection::CloneRules( return internal::EndSpan(std::move(span), child_->CloneRules(request)); } +StatusOr +RegionNetworkFirewallPoliciesTracingConnection::CloneRules( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_network_firewall_policies::v1:: + CloneRulesRequest const& request) { + auto span = internal::MakeSpan( + "compute_region_network_firewall_policies_v1::" + "RegionNetworkFirewallPoliciesConnection::CloneRules"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->CloneRules(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +RegionNetworkFirewallPoliciesTracingConnection::CloneRules( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_region_network_firewall_policies_v1::" + "RegionNetworkFirewallPoliciesConnection::CloneRules"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->CloneRules(ExperimentalTag{}, operation)); +} + future> RegionNetworkFirewallPoliciesTracingConnection::DeleteFirewallPolicy( google::cloud::cpp::compute::region_network_firewall_policies::v1:: @@ -82,6 +157,32 @@ RegionNetworkFirewallPoliciesTracingConnection::DeleteFirewallPolicy( child_->DeleteFirewallPolicy(request)); } +StatusOr +RegionNetworkFirewallPoliciesTracingConnection::DeleteFirewallPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_network_firewall_policies::v1:: + DeleteFirewallPolicyRequest const& request) { + auto span = internal::MakeSpan( + "compute_region_network_firewall_policies_v1::" + "RegionNetworkFirewallPoliciesConnection::DeleteFirewallPolicy"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->DeleteFirewallPolicy(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +RegionNetworkFirewallPoliciesTracingConnection::DeleteFirewallPolicy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_region_network_firewall_policies_v1::" + "RegionNetworkFirewallPoliciesConnection::DeleteFirewallPolicy"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->DeleteFirewallPolicy( + ExperimentalTag{}, operation)); +} + StatusOr RegionNetworkFirewallPoliciesTracingConnection::GetFirewallPolicy( google::cloud::cpp::compute::region_network_firewall_policies::v1:: @@ -150,6 +251,32 @@ RegionNetworkFirewallPoliciesTracingConnection::InsertFirewallPolicy( child_->InsertFirewallPolicy(request)); } +StatusOr +RegionNetworkFirewallPoliciesTracingConnection::InsertFirewallPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_network_firewall_policies::v1:: + InsertFirewallPolicyRequest const& request) { + auto span = internal::MakeSpan( + "compute_region_network_firewall_policies_v1::" + "RegionNetworkFirewallPoliciesConnection::InsertFirewallPolicy"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->InsertFirewallPolicy(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +RegionNetworkFirewallPoliciesTracingConnection::InsertFirewallPolicy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_region_network_firewall_policies_v1::" + "RegionNetworkFirewallPoliciesConnection::InsertFirewallPolicy"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->InsertFirewallPolicy( + ExperimentalTag{}, operation)); +} + StreamRange RegionNetworkFirewallPoliciesTracingConnection:: ListRegionNetworkFirewallPolicies( @@ -178,6 +305,32 @@ RegionNetworkFirewallPoliciesTracingConnection::PatchFirewallPolicy( child_->PatchFirewallPolicy(request)); } +StatusOr +RegionNetworkFirewallPoliciesTracingConnection::PatchFirewallPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_network_firewall_policies::v1:: + PatchFirewallPolicyRequest const& request) { + auto span = internal::MakeSpan( + "compute_region_network_firewall_policies_v1::" + "RegionNetworkFirewallPoliciesConnection::PatchFirewallPolicy"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->PatchFirewallPolicy(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +RegionNetworkFirewallPoliciesTracingConnection::PatchFirewallPolicy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_region_network_firewall_policies_v1::" + "RegionNetworkFirewallPoliciesConnection::PatchFirewallPolicy"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->PatchFirewallPolicy( + ExperimentalTag{}, operation)); +} + future> RegionNetworkFirewallPoliciesTracingConnection::PatchRule( google::cloud::cpp::compute::region_network_firewall_policies::v1:: @@ -189,6 +342,31 @@ RegionNetworkFirewallPoliciesTracingConnection::PatchRule( return internal::EndSpan(std::move(span), child_->PatchRule(request)); } +StatusOr +RegionNetworkFirewallPoliciesTracingConnection::PatchRule( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_network_firewall_policies::v1:: + PatchRuleRequest const& request) { + auto span = internal::MakeSpan( + "compute_region_network_firewall_policies_v1::" + "RegionNetworkFirewallPoliciesConnection::PatchRule"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->PatchRule(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +RegionNetworkFirewallPoliciesTracingConnection::PatchRule( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_region_network_firewall_policies_v1::" + "RegionNetworkFirewallPoliciesConnection::PatchRule"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->PatchRule(ExperimentalTag{}, operation)); +} + future> RegionNetworkFirewallPoliciesTracingConnection::RemoveAssociation( google::cloud::cpp::compute::region_network_firewall_policies::v1:: @@ -200,6 +378,32 @@ RegionNetworkFirewallPoliciesTracingConnection::RemoveAssociation( return internal::EndSpan(std::move(span), child_->RemoveAssociation(request)); } +StatusOr +RegionNetworkFirewallPoliciesTracingConnection::RemoveAssociation( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_network_firewall_policies::v1:: + RemoveAssociationRequest const& request) { + auto span = internal::MakeSpan( + "compute_region_network_firewall_policies_v1::" + "RegionNetworkFirewallPoliciesConnection::RemoveAssociation"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->RemoveAssociation(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +RegionNetworkFirewallPoliciesTracingConnection::RemoveAssociation( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_region_network_firewall_policies_v1::" + "RegionNetworkFirewallPoliciesConnection::RemoveAssociation"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->RemoveAssociation(ExperimentalTag{}, operation)); +} + future> RegionNetworkFirewallPoliciesTracingConnection::RemoveRule( google::cloud::cpp::compute::region_network_firewall_policies::v1:: @@ -211,6 +415,31 @@ RegionNetworkFirewallPoliciesTracingConnection::RemoveRule( return internal::EndSpan(std::move(span), child_->RemoveRule(request)); } +StatusOr +RegionNetworkFirewallPoliciesTracingConnection::RemoveRule( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_network_firewall_policies::v1:: + RemoveRuleRequest const& request) { + auto span = internal::MakeSpan( + "compute_region_network_firewall_policies_v1::" + "RegionNetworkFirewallPoliciesConnection::RemoveRule"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->RemoveRule(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +RegionNetworkFirewallPoliciesTracingConnection::RemoveRule( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_region_network_firewall_policies_v1::" + "RegionNetworkFirewallPoliciesConnection::RemoveRule"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->RemoveRule(ExperimentalTag{}, operation)); +} + StatusOr RegionNetworkFirewallPoliciesTracingConnection::SetIamPolicy( google::cloud::cpp::compute::region_network_firewall_policies::v1:: diff --git a/google/cloud/compute/region_network_firewall_policies/v1/internal/region_network_firewall_policies_tracing_connection.h b/google/cloud/compute/region_network_firewall_policies/v1/internal/region_network_firewall_policies_tracing_connection.h index 10f24372e9774..4af683d7dfc31 100644 --- a/google/cloud/compute/region_network_firewall_policies/v1/internal/region_network_firewall_policies_tracing_connection.h +++ b/google/cloud/compute/region_network_firewall_policies/v1/internal/region_network_firewall_policies_tracing_connection.h @@ -48,19 +48,56 @@ class RegionNetworkFirewallPoliciesTracingConnection google::cloud::cpp::compute::region_network_firewall_policies::v1:: AddAssociationRequest const& request) override; + StatusOr AddAssociation( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_network_firewall_policies::v1:: + AddAssociationRequest const& request) override; + + future> AddAssociation( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> AddRule( google::cloud::cpp::compute::region_network_firewall_policies::v1:: AddRuleRequest const& request) override; + StatusOr AddRule( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_network_firewall_policies::v1:: + AddRuleRequest const& request) override; + + future> AddRule( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> CloneRules( google::cloud::cpp::compute::region_network_firewall_policies::v1:: CloneRulesRequest const& request) override; + StatusOr CloneRules( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_network_firewall_policies::v1:: + CloneRulesRequest const& request) override; + + future> CloneRules( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> DeleteFirewallPolicy( google::cloud::cpp::compute::region_network_firewall_policies::v1:: DeleteFirewallPolicyRequest const& request) override; + StatusOr DeleteFirewallPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_network_firewall_policies::v1:: + DeleteFirewallPolicyRequest const& request) override; + + future> + DeleteFirewallPolicy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StatusOr GetFirewallPolicy( google::cloud::cpp::compute::region_network_firewall_policies::v1:: GetFirewallPolicyRequest const& request) override; @@ -88,6 +125,16 @@ class RegionNetworkFirewallPoliciesTracingConnection google::cloud::cpp::compute::region_network_firewall_policies::v1:: InsertFirewallPolicyRequest const& request) override; + StatusOr InsertFirewallPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_network_firewall_policies::v1:: + InsertFirewallPolicyRequest const& request) override; + + future> + InsertFirewallPolicy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StreamRange ListRegionNetworkFirewallPolicies( google::cloud::cpp::compute::region_network_firewall_policies::v1:: @@ -98,19 +145,57 @@ class RegionNetworkFirewallPoliciesTracingConnection google::cloud::cpp::compute::region_network_firewall_policies::v1:: PatchFirewallPolicyRequest const& request) override; + StatusOr PatchFirewallPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_network_firewall_policies::v1:: + PatchFirewallPolicyRequest const& request) override; + + future> + PatchFirewallPolicy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> PatchRule( google::cloud::cpp::compute::region_network_firewall_policies::v1:: PatchRuleRequest const& request) override; + StatusOr PatchRule( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_network_firewall_policies::v1:: + PatchRuleRequest const& request) override; + + future> PatchRule( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> RemoveAssociation( google::cloud::cpp::compute::region_network_firewall_policies::v1:: RemoveAssociationRequest const& request) override; + StatusOr RemoveAssociation( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_network_firewall_policies::v1:: + RemoveAssociationRequest const& request) override; + + future> + RemoveAssociation( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> RemoveRule( google::cloud::cpp::compute::region_network_firewall_policies::v1:: RemoveRuleRequest const& request) override; + StatusOr RemoveRule( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_network_firewall_policies::v1:: + RemoveRuleRequest const& request) override; + + future> RemoveRule( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StatusOr SetIamPolicy( google::cloud::cpp::compute::region_network_firewall_policies::v1:: SetIamPolicyRequest const& request) override; diff --git a/google/cloud/compute/region_network_firewall_policies/v1/mocks/mock_region_network_firewall_policies_connection.h b/google/cloud/compute/region_network_firewall_policies/v1/mocks/mock_region_network_firewall_policies_connection.h index 2d8388467a552..06cb561b5959f 100644 --- a/google/cloud/compute/region_network_firewall_policies/v1/mocks/mock_region_network_firewall_policies_connection.h +++ b/google/cloud/compute/region_network_firewall_policies/v1/mocks/mock_region_network_firewall_policies_connection.h @@ -55,24 +55,74 @@ class MockRegionNetworkFirewallPoliciesConnection v1::AddAssociationRequest const& request), (override)); + MOCK_METHOD(StatusOr, + AddAssociation, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_network_firewall_policies:: + v1::AddAssociationRequest const& request), + (override)); + + MOCK_METHOD(future>, + AddAssociation, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD(future>, AddRule, (google::cloud::cpp::compute::region_network_firewall_policies:: v1::AddRuleRequest const& request), (override)); + MOCK_METHOD(StatusOr, AddRule, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_network_firewall_policies:: + v1::AddRuleRequest const& request), + (override)); + + MOCK_METHOD(future>, + AddRule, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD(future>, CloneRules, (google::cloud::cpp::compute::region_network_firewall_policies:: v1::CloneRulesRequest const& request), (override)); + MOCK_METHOD(StatusOr, CloneRules, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_network_firewall_policies:: + v1::CloneRulesRequest const& request), + (override)); + + MOCK_METHOD(future>, + CloneRules, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD(future>, DeleteFirewallPolicy, (google::cloud::cpp::compute::region_network_firewall_policies:: v1::DeleteFirewallPolicyRequest const& request), (override)); + MOCK_METHOD(StatusOr, + DeleteFirewallPolicy, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_network_firewall_policies:: + v1::DeleteFirewallPolicyRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteFirewallPolicy, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD(StatusOr, GetFirewallPolicy, (google::cloud::cpp::compute::region_network_firewall_policies:: @@ -111,6 +161,19 @@ class MockRegionNetworkFirewallPoliciesConnection v1::InsertFirewallPolicyRequest const& request), (override)); + MOCK_METHOD(StatusOr, + InsertFirewallPolicy, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_network_firewall_policies:: + v1::InsertFirewallPolicyRequest const& request), + (override)); + + MOCK_METHOD(future>, + InsertFirewallPolicy, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD((StreamRange), ListRegionNetworkFirewallPolicies, (google::cloud::cpp::compute::region_network_firewall_policies:: @@ -123,24 +186,74 @@ class MockRegionNetworkFirewallPoliciesConnection v1::PatchFirewallPolicyRequest const& request), (override)); + MOCK_METHOD(StatusOr, + PatchFirewallPolicy, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_network_firewall_policies:: + v1::PatchFirewallPolicyRequest const& request), + (override)); + + MOCK_METHOD(future>, + PatchFirewallPolicy, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD(future>, PatchRule, (google::cloud::cpp::compute::region_network_firewall_policies:: v1::PatchRuleRequest const& request), (override)); + MOCK_METHOD(StatusOr, PatchRule, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_network_firewall_policies:: + v1::PatchRuleRequest const& request), + (override)); + + MOCK_METHOD(future>, + PatchRule, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD(future>, RemoveAssociation, (google::cloud::cpp::compute::region_network_firewall_policies:: v1::RemoveAssociationRequest const& request), (override)); + MOCK_METHOD(StatusOr, + RemoveAssociation, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_network_firewall_policies:: + v1::RemoveAssociationRequest const& request), + (override)); + + MOCK_METHOD(future>, + RemoveAssociation, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD(future>, RemoveRule, (google::cloud::cpp::compute::region_network_firewall_policies:: v1::RemoveRuleRequest const& request), (override)); + MOCK_METHOD(StatusOr, RemoveRule, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_network_firewall_policies:: + v1::RemoveRuleRequest const& request), + (override)); + + MOCK_METHOD(future>, + RemoveRule, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD(StatusOr, SetIamPolicy, (google::cloud::cpp::compute::region_network_firewall_policies:: v1::SetIamPolicyRequest const& request), diff --git a/google/cloud/compute/region_network_firewall_policies/v1/region_network_firewall_policies_connection.cc b/google/cloud/compute/region_network_firewall_policies/v1/region_network_firewall_policies_connection.cc index b163b99b0748a..20d6237a7b06d 100644 --- a/google/cloud/compute/region_network_firewall_policies/v1/region_network_firewall_policies_connection.cc +++ b/google/cloud/compute/region_network_firewall_policies/v1/region_network_firewall_policies_connection.cc @@ -47,10 +47,44 @@ RegionNetworkFirewallPoliciesConnection::AddAssociation( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +RegionNetworkFirewallPoliciesConnection::AddAssociation( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_network_firewall_policies::v1:: + AddAssociationRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> +RegionNetworkFirewallPoliciesConnection::AddAssociation( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +RegionNetworkFirewallPoliciesConnection::AddRule( + google::cloud::cpp::compute::region_network_firewall_policies::v1:: + AddRuleRequest const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +StatusOr RegionNetworkFirewallPoliciesConnection::AddRule( + ExperimentalTag, NoAwaitTag, google::cloud::cpp::compute::region_network_firewall_policies::v1:: AddRuleRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +RegionNetworkFirewallPoliciesConnection::AddRule( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { return google::cloud::make_ready_future< StatusOr>( Status(StatusCode::kUnimplemented, "not implemented")); @@ -65,6 +99,23 @@ RegionNetworkFirewallPoliciesConnection::CloneRules( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +RegionNetworkFirewallPoliciesConnection::CloneRules( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_network_firewall_policies::v1:: + CloneRulesRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +RegionNetworkFirewallPoliciesConnection::CloneRules( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> RegionNetworkFirewallPoliciesConnection::DeleteFirewallPolicy( google::cloud::cpp::compute::region_network_firewall_policies::v1:: @@ -74,6 +125,23 @@ RegionNetworkFirewallPoliciesConnection::DeleteFirewallPolicy( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +RegionNetworkFirewallPoliciesConnection::DeleteFirewallPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_network_firewall_policies::v1:: + DeleteFirewallPolicyRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +RegionNetworkFirewallPoliciesConnection::DeleteFirewallPolicy( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr RegionNetworkFirewallPoliciesConnection::GetFirewallPolicy( google::cloud::cpp::compute::region_network_firewall_policies::v1:: @@ -119,6 +187,23 @@ RegionNetworkFirewallPoliciesConnection::InsertFirewallPolicy( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +RegionNetworkFirewallPoliciesConnection::InsertFirewallPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_network_firewall_policies::v1:: + InsertFirewallPolicyRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +RegionNetworkFirewallPoliciesConnection::InsertFirewallPolicy( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StreamRange RegionNetworkFirewallPoliciesConnection::ListRegionNetworkFirewallPolicies( google::cloud::cpp::compute::region_network_firewall_policies::v1:: @@ -136,10 +221,44 @@ RegionNetworkFirewallPoliciesConnection::PatchFirewallPolicy( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +RegionNetworkFirewallPoliciesConnection::PatchFirewallPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_network_firewall_policies::v1:: + PatchFirewallPolicyRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> +RegionNetworkFirewallPoliciesConnection::PatchFirewallPolicy( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +RegionNetworkFirewallPoliciesConnection::PatchRule( + google::cloud::cpp::compute::region_network_firewall_policies::v1:: + PatchRuleRequest const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +StatusOr RegionNetworkFirewallPoliciesConnection::PatchRule( + ExperimentalTag, NoAwaitTag, google::cloud::cpp::compute::region_network_firewall_policies::v1:: PatchRuleRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +RegionNetworkFirewallPoliciesConnection::PatchRule( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { return google::cloud::make_ready_future< StatusOr>( Status(StatusCode::kUnimplemented, "not implemented")); @@ -154,10 +273,44 @@ RegionNetworkFirewallPoliciesConnection::RemoveAssociation( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +RegionNetworkFirewallPoliciesConnection::RemoveAssociation( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_network_firewall_policies::v1:: + RemoveAssociationRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> +RegionNetworkFirewallPoliciesConnection::RemoveAssociation( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +RegionNetworkFirewallPoliciesConnection::RemoveRule( + google::cloud::cpp::compute::region_network_firewall_policies::v1:: + RemoveRuleRequest const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +StatusOr RegionNetworkFirewallPoliciesConnection::RemoveRule( + ExperimentalTag, NoAwaitTag, google::cloud::cpp::compute::region_network_firewall_policies::v1:: RemoveRuleRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +RegionNetworkFirewallPoliciesConnection::RemoveRule( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { return google::cloud::make_ready_future< StatusOr>( Status(StatusCode::kUnimplemented, "not implemented")); diff --git a/google/cloud/compute/region_network_firewall_policies/v1/region_network_firewall_policies_connection.h b/google/cloud/compute/region_network_firewall_policies/v1/region_network_firewall_policies_connection.h index 44f1c18a9cc9b..6c2deb1b938e3 100644 --- a/google/cloud/compute/region_network_firewall_policies/v1/region_network_firewall_policies_connection.h +++ b/google/cloud/compute/region_network_firewall_policies/v1/region_network_firewall_policies_connection.h @@ -23,8 +23,10 @@ #include "google/cloud/compute/region_network_firewall_policies/v1/internal/region_network_firewall_policies_retry_traits.h" #include "google/cloud/compute/region_network_firewall_policies/v1/region_network_firewall_policies_connection_idempotency_policy.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/internal/retry_policy_impl.h" +#include "google/cloud/no_await_tag.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" #include "google/cloud/status_or.h" @@ -209,19 +211,57 @@ class RegionNetworkFirewallPoliciesConnection { AddAssociation(google::cloud::cpp::compute::region_network_firewall_policies:: v1::AddAssociationRequest const& request); + virtual StatusOr AddAssociation( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_network_firewall_policies::v1:: + AddAssociationRequest const& request); + + virtual future> + AddAssociation(ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual future> AddRule( google::cloud::cpp::compute::region_network_firewall_policies::v1:: AddRuleRequest const& request); + virtual StatusOr AddRule( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_network_firewall_policies::v1:: + AddRuleRequest const& request); + + virtual future> AddRule( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual future> CloneRules(google::cloud::cpp::compute::region_network_firewall_policies::v1:: CloneRulesRequest const& request); + virtual StatusOr CloneRules( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_network_firewall_policies::v1:: + CloneRulesRequest const& request); + + virtual future> + CloneRules(ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual future> DeleteFirewallPolicy( google::cloud::cpp::compute::region_network_firewall_policies::v1:: DeleteFirewallPolicyRequest const& request); + virtual StatusOr + DeleteFirewallPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_network_firewall_policies::v1:: + DeleteFirewallPolicyRequest const& request); + + virtual future> + DeleteFirewallPolicy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual StatusOr GetFirewallPolicy( google::cloud::cpp::compute::region_network_firewall_policies::v1:: @@ -251,6 +291,17 @@ class RegionNetworkFirewallPoliciesConnection { google::cloud::cpp::compute::region_network_firewall_policies::v1:: InsertFirewallPolicyRequest const& request); + virtual StatusOr + InsertFirewallPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_network_firewall_policies::v1:: + InsertFirewallPolicyRequest const& request); + + virtual future> + InsertFirewallPolicy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual StreamRange ListRegionNetworkFirewallPolicies( google::cloud::cpp::compute::region_network_firewall_policies::v1:: @@ -261,19 +312,59 @@ class RegionNetworkFirewallPoliciesConnection { google::cloud::cpp::compute::region_network_firewall_policies::v1:: PatchFirewallPolicyRequest const& request); + virtual StatusOr + PatchFirewallPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_network_firewall_policies::v1:: + PatchFirewallPolicyRequest const& request); + + virtual future> + PatchFirewallPolicy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual future> PatchRule(google::cloud::cpp::compute::region_network_firewall_policies::v1:: PatchRuleRequest const& request); + virtual StatusOr PatchRule( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_network_firewall_policies::v1:: + PatchRuleRequest const& request); + + virtual future> + PatchRule(ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual future> RemoveAssociation( google::cloud::cpp::compute::region_network_firewall_policies::v1:: RemoveAssociationRequest const& request); + virtual StatusOr + RemoveAssociation( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_network_firewall_policies::v1:: + RemoveAssociationRequest const& request); + + virtual future> + RemoveAssociation( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual future> RemoveRule(google::cloud::cpp::compute::region_network_firewall_policies::v1:: RemoveRuleRequest const& request); + virtual StatusOr RemoveRule( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_network_firewall_policies::v1:: + RemoveRuleRequest const& request); + + virtual future> + RemoveRule(ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual StatusOr SetIamPolicy( google::cloud::cpp::compute::region_network_firewall_policies::v1:: SetIamPolicyRequest const& request); diff --git a/google/cloud/compute/region_notification_endpoints/v1/internal/region_notification_endpoints_rest_connection_impl.cc b/google/cloud/compute/region_notification_endpoints/v1/internal/region_notification_endpoints_rest_connection_impl.cc index 4985132d30163..5b5453ae5b9cd 100644 --- a/google/cloud/compute/region_notification_endpoints/v1/internal/region_notification_endpoints_rest_connection_impl.cc +++ b/google/cloud/compute/region_notification_endpoints/v1/internal/region_notification_endpoints_rest_connection_impl.cc @@ -24,6 +24,7 @@ #include "google/cloud/internal/async_rest_long_running_operation_custom.h" #include "google/cloud/internal/extract_long_running_result.h" #include "google/cloud/internal/pagination_range.h" +#include "google/cloud/internal/rest_lro_helpers.h" #include "google/cloud/internal/rest_retry_loop.h" #include "google/cloud/rest_options.h" #include @@ -108,6 +109,80 @@ RegionNotificationEndpointsRestConnectionImpl::DeleteNotificationEndpoint( }); } +StatusOr +RegionNotificationEndpointsRestConnectionImpl::DeleteNotificationEndpoint( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_notification_endpoints::v1:: + DeleteNotificationEndpointRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteNotificationEndpoint(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::region_notification_endpoints::v1:: + DeleteNotificationEndpointRequest const& request) { + return stub_->DeleteNotificationEndpoint(rest_context, options, + request); + }, + *current, request, __func__); +} + +future> +RegionNotificationEndpointsRestConnectionImpl::DeleteNotificationEndpoint( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::region_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }); +} + StatusOr RegionNotificationEndpointsRestConnectionImpl::GetNotificationEndpoint( google::cloud::cpp::compute::region_notification_endpoints::v1:: @@ -185,6 +260,80 @@ RegionNotificationEndpointsRestConnectionImpl::InsertNotificationEndpoint( }); } +StatusOr +RegionNotificationEndpointsRestConnectionImpl::InsertNotificationEndpoint( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_notification_endpoints::v1:: + InsertNotificationEndpointRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->InsertNotificationEndpoint(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::region_notification_endpoints::v1:: + InsertNotificationEndpointRequest const& request) { + return stub_->InsertNotificationEndpoint(rest_context, options, + request); + }, + *current, request, __func__); +} + +future> +RegionNotificationEndpointsRestConnectionImpl::InsertNotificationEndpoint( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::region_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }); +} + StreamRange RegionNotificationEndpointsRestConnectionImpl::ListRegionNotificationEndpoints( google::cloud::cpp::compute::region_notification_endpoints::v1:: diff --git a/google/cloud/compute/region_notification_endpoints/v1/internal/region_notification_endpoints_rest_connection_impl.h b/google/cloud/compute/region_notification_endpoints/v1/internal/region_notification_endpoints_rest_connection_impl.h index fff0d82281f53..cbffe27066756 100644 --- a/google/cloud/compute/region_notification_endpoints/v1/internal/region_notification_endpoints_rest_connection_impl.h +++ b/google/cloud/compute/region_notification_endpoints/v1/internal/region_notification_endpoints_rest_connection_impl.h @@ -59,6 +59,17 @@ class RegionNotificationEndpointsRestConnectionImpl google::cloud::cpp::compute::region_notification_endpoints::v1:: DeleteNotificationEndpointRequest const& request) override; + StatusOr + DeleteNotificationEndpoint( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_notification_endpoints::v1:: + DeleteNotificationEndpointRequest const& request) override; + + future> + DeleteNotificationEndpoint( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StatusOr GetNotificationEndpoint( google::cloud::cpp::compute::region_notification_endpoints::v1:: @@ -69,6 +80,17 @@ class RegionNotificationEndpointsRestConnectionImpl google::cloud::cpp::compute::region_notification_endpoints::v1:: InsertNotificationEndpointRequest const& request) override; + StatusOr + InsertNotificationEndpoint( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_notification_endpoints::v1:: + InsertNotificationEndpointRequest const& request) override; + + future> + InsertNotificationEndpoint( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StreamRange ListRegionNotificationEndpoints( google::cloud::cpp::compute::region_notification_endpoints::v1:: diff --git a/google/cloud/compute/region_notification_endpoints/v1/internal/region_notification_endpoints_tracing_connection.cc b/google/cloud/compute/region_notification_endpoints/v1/internal/region_notification_endpoints_tracing_connection.cc index cf361d1bf02bf..7998b5ca23c5b 100644 --- a/google/cloud/compute/region_notification_endpoints/v1/internal/region_notification_endpoints_tracing_connection.cc +++ b/google/cloud/compute/region_notification_endpoints/v1/internal/region_notification_endpoints_tracing_connection.cc @@ -49,6 +49,32 @@ RegionNotificationEndpointsTracingConnection::DeleteNotificationEndpoint( child_->DeleteNotificationEndpoint(request)); } +StatusOr +RegionNotificationEndpointsTracingConnection::DeleteNotificationEndpoint( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_notification_endpoints::v1:: + DeleteNotificationEndpointRequest const& request) { + auto span = internal::MakeSpan( + "compute_region_notification_endpoints_v1::" + "RegionNotificationEndpointsConnection::DeleteNotificationEndpoint"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->DeleteNotificationEndpoint(ExperimentalTag{}, NoAwaitTag{}, + request)); +} + +future> +RegionNotificationEndpointsTracingConnection::DeleteNotificationEndpoint( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_region_notification_endpoints_v1::" + "RegionNotificationEndpointsConnection::DeleteNotificationEndpoint"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->DeleteNotificationEndpoint( + ExperimentalTag{}, operation)); +} + StatusOr RegionNotificationEndpointsTracingConnection::GetNotificationEndpoint( google::cloud::cpp::compute::region_notification_endpoints::v1:: @@ -72,6 +98,32 @@ RegionNotificationEndpointsTracingConnection::InsertNotificationEndpoint( child_->InsertNotificationEndpoint(request)); } +StatusOr +RegionNotificationEndpointsTracingConnection::InsertNotificationEndpoint( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_notification_endpoints::v1:: + InsertNotificationEndpointRequest const& request) { + auto span = internal::MakeSpan( + "compute_region_notification_endpoints_v1::" + "RegionNotificationEndpointsConnection::InsertNotificationEndpoint"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->InsertNotificationEndpoint(ExperimentalTag{}, NoAwaitTag{}, + request)); +} + +future> +RegionNotificationEndpointsTracingConnection::InsertNotificationEndpoint( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_region_notification_endpoints_v1::" + "RegionNotificationEndpointsConnection::InsertNotificationEndpoint"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->InsertNotificationEndpoint( + ExperimentalTag{}, operation)); +} + StreamRange RegionNotificationEndpointsTracingConnection::ListRegionNotificationEndpoints( google::cloud::cpp::compute::region_notification_endpoints::v1:: diff --git a/google/cloud/compute/region_notification_endpoints/v1/internal/region_notification_endpoints_tracing_connection.h b/google/cloud/compute/region_notification_endpoints/v1/internal/region_notification_endpoints_tracing_connection.h index 7969386b1378a..25ec67b859a61 100644 --- a/google/cloud/compute/region_notification_endpoints/v1/internal/region_notification_endpoints_tracing_connection.h +++ b/google/cloud/compute/region_notification_endpoints/v1/internal/region_notification_endpoints_tracing_connection.h @@ -49,6 +49,17 @@ class RegionNotificationEndpointsTracingConnection google::cloud::cpp::compute::region_notification_endpoints::v1:: DeleteNotificationEndpointRequest const& request) override; + StatusOr + DeleteNotificationEndpoint( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_notification_endpoints::v1:: + DeleteNotificationEndpointRequest const& request) override; + + future> + DeleteNotificationEndpoint( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StatusOr GetNotificationEndpoint( google::cloud::cpp::compute::region_notification_endpoints::v1:: @@ -59,6 +70,17 @@ class RegionNotificationEndpointsTracingConnection google::cloud::cpp::compute::region_notification_endpoints::v1:: InsertNotificationEndpointRequest const& request) override; + StatusOr + InsertNotificationEndpoint( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_notification_endpoints::v1:: + InsertNotificationEndpointRequest const& request) override; + + future> + InsertNotificationEndpoint( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StreamRange ListRegionNotificationEndpoints( google::cloud::cpp::compute::region_notification_endpoints::v1:: diff --git a/google/cloud/compute/region_notification_endpoints/v1/mocks/mock_region_notification_endpoints_connection.h b/google/cloud/compute/region_notification_endpoints/v1/mocks/mock_region_notification_endpoints_connection.h index 81143eba39a7c..5da8fc4f5d200 100644 --- a/google/cloud/compute/region_notification_endpoints/v1/mocks/mock_region_notification_endpoints_connection.h +++ b/google/cloud/compute/region_notification_endpoints/v1/mocks/mock_region_notification_endpoints_connection.h @@ -55,6 +55,19 @@ class MockRegionNotificationEndpointsConnection DeleteNotificationEndpointRequest const& request), (override)); + MOCK_METHOD(StatusOr, + DeleteNotificationEndpoint, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_notification_endpoints::v1:: + DeleteNotificationEndpointRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteNotificationEndpoint, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD(StatusOr, GetNotificationEndpoint, (google::cloud::cpp::compute::region_notification_endpoints::v1:: @@ -67,6 +80,19 @@ class MockRegionNotificationEndpointsConnection InsertNotificationEndpointRequest const& request), (override)); + MOCK_METHOD(StatusOr, + InsertNotificationEndpoint, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_notification_endpoints::v1:: + InsertNotificationEndpointRequest const& request), + (override)); + + MOCK_METHOD(future>, + InsertNotificationEndpoint, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD( (StreamRange), ListRegionNotificationEndpoints, diff --git a/google/cloud/compute/region_notification_endpoints/v1/region_notification_endpoints_connection.cc b/google/cloud/compute/region_notification_endpoints/v1/region_notification_endpoints_connection.cc index 88a8da5511557..c2d39a3c45320 100644 --- a/google/cloud/compute/region_notification_endpoints/v1/region_notification_endpoints_connection.cc +++ b/google/cloud/compute/region_notification_endpoints/v1/region_notification_endpoints_connection.cc @@ -47,6 +47,23 @@ RegionNotificationEndpointsConnection::DeleteNotificationEndpoint( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +RegionNotificationEndpointsConnection::DeleteNotificationEndpoint( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_notification_endpoints::v1:: + DeleteNotificationEndpointRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +RegionNotificationEndpointsConnection::DeleteNotificationEndpoint( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr RegionNotificationEndpointsConnection::GetNotificationEndpoint( google::cloud::cpp::compute::region_notification_endpoints::v1:: @@ -63,6 +80,23 @@ RegionNotificationEndpointsConnection::InsertNotificationEndpoint( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +RegionNotificationEndpointsConnection::InsertNotificationEndpoint( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_notification_endpoints::v1:: + InsertNotificationEndpointRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +RegionNotificationEndpointsConnection::InsertNotificationEndpoint( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StreamRange RegionNotificationEndpointsConnection::ListRegionNotificationEndpoints( google::cloud::cpp::compute::region_notification_endpoints::v1:: diff --git a/google/cloud/compute/region_notification_endpoints/v1/region_notification_endpoints_connection.h b/google/cloud/compute/region_notification_endpoints/v1/region_notification_endpoints_connection.h index f914524c4992c..32920bdad0aac 100644 --- a/google/cloud/compute/region_notification_endpoints/v1/region_notification_endpoints_connection.h +++ b/google/cloud/compute/region_notification_endpoints/v1/region_notification_endpoints_connection.h @@ -23,8 +23,10 @@ #include "google/cloud/compute/region_notification_endpoints/v1/internal/region_notification_endpoints_retry_traits.h" #include "google/cloud/compute/region_notification_endpoints/v1/region_notification_endpoints_connection_idempotency_policy.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/internal/retry_policy_impl.h" +#include "google/cloud/no_await_tag.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" #include "google/cloud/status_or.h" @@ -209,6 +211,17 @@ class RegionNotificationEndpointsConnection { google::cloud::cpp::compute::region_notification_endpoints::v1:: DeleteNotificationEndpointRequest const& request); + virtual StatusOr + DeleteNotificationEndpoint( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_notification_endpoints::v1:: + DeleteNotificationEndpointRequest const& request); + + virtual future> + DeleteNotificationEndpoint( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual StatusOr GetNotificationEndpoint( google::cloud::cpp::compute::region_notification_endpoints::v1:: @@ -219,6 +232,17 @@ class RegionNotificationEndpointsConnection { google::cloud::cpp::compute::region_notification_endpoints::v1:: InsertNotificationEndpointRequest const& request); + virtual StatusOr + InsertNotificationEndpoint( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_notification_endpoints::v1:: + InsertNotificationEndpointRequest const& request); + + virtual future> + InsertNotificationEndpoint( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual StreamRange ListRegionNotificationEndpoints( google::cloud::cpp::compute::region_notification_endpoints::v1:: diff --git a/google/cloud/compute/region_operations/v1/region_operations_connection.h b/google/cloud/compute/region_operations/v1/region_operations_connection.h index e4cdf15fb0d28..043414f5a9a9e 100644 --- a/google/cloud/compute/region_operations/v1/region_operations_connection.h +++ b/google/cloud/compute/region_operations/v1/region_operations_connection.h @@ -22,6 +22,7 @@ #include "google/cloud/compute/region_operations/v1/internal/region_operations_retry_traits.h" #include "google/cloud/compute/region_operations/v1/region_operations_connection_idempotency_policy.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/internal/retry_policy_impl.h" #include "google/cloud/options.h" #include "google/cloud/status_or.h" diff --git a/google/cloud/compute/region_security_policies/v1/internal/region_security_policies_rest_connection_impl.cc b/google/cloud/compute/region_security_policies/v1/internal/region_security_policies_rest_connection_impl.cc index dd460337a175d..8abb88eff3872 100644 --- a/google/cloud/compute/region_security_policies/v1/internal/region_security_policies_rest_connection_impl.cc +++ b/google/cloud/compute/region_security_policies/v1/internal/region_security_policies_rest_connection_impl.cc @@ -24,6 +24,7 @@ #include "google/cloud/internal/async_rest_long_running_operation_custom.h" #include "google/cloud/internal/extract_long_running_result.h" #include "google/cloud/internal/pagination_range.h" +#include "google/cloud/internal/rest_lro_helpers.h" #include "google/cloud/internal/rest_retry_loop.h" #include "google/cloud/rest_options.h" #include @@ -106,6 +107,79 @@ RegionSecurityPoliciesRestConnectionImpl::AddRule( }); } +StatusOr +RegionSecurityPoliciesRestConnectionImpl::AddRule( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_security_policies::v1:: + AddRuleRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->AddRule(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::region_security_policies::v1:: + AddRuleRequest const& request) { + return stub_->AddRule(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +RegionSecurityPoliciesRestConnectionImpl::AddRule( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::region_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }); +} + future> RegionSecurityPoliciesRestConnectionImpl::DeleteSecurityPolicy( google::cloud::cpp::compute::region_security_policies::v1:: @@ -166,6 +240,79 @@ RegionSecurityPoliciesRestConnectionImpl::DeleteSecurityPolicy( }); } +StatusOr +RegionSecurityPoliciesRestConnectionImpl::DeleteSecurityPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_security_policies::v1:: + DeleteSecurityPolicyRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteSecurityPolicy(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::region_security_policies::v1:: + DeleteSecurityPolicyRequest const& request) { + return stub_->DeleteSecurityPolicy(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +RegionSecurityPoliciesRestConnectionImpl::DeleteSecurityPolicy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::region_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }); +} + StatusOr RegionSecurityPoliciesRestConnectionImpl::GetSecurityPolicy( google::cloud::cpp::compute::region_security_policies::v1:: @@ -258,6 +405,79 @@ RegionSecurityPoliciesRestConnectionImpl::InsertSecurityPolicy( }); } +StatusOr +RegionSecurityPoliciesRestConnectionImpl::InsertSecurityPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_security_policies::v1:: + InsertSecurityPolicyRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->InsertSecurityPolicy(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::region_security_policies::v1:: + InsertSecurityPolicyRequest const& request) { + return stub_->InsertSecurityPolicy(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +RegionSecurityPoliciesRestConnectionImpl::InsertSecurityPolicy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::region_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }); +} + StreamRange RegionSecurityPoliciesRestConnectionImpl::ListRegionSecurityPolicies( google::cloud::cpp::compute::region_security_policies::v1:: @@ -358,6 +578,79 @@ RegionSecurityPoliciesRestConnectionImpl::PatchSecurityPolicy( }); } +StatusOr +RegionSecurityPoliciesRestConnectionImpl::PatchSecurityPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_security_policies::v1:: + PatchSecurityPolicyRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->PatchSecurityPolicy(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::region_security_policies::v1:: + PatchSecurityPolicyRequest const& request) { + return stub_->PatchSecurityPolicy(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +RegionSecurityPoliciesRestConnectionImpl::PatchSecurityPolicy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::region_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }); +} + future> RegionSecurityPoliciesRestConnectionImpl::PatchRule( google::cloud::cpp::compute::region_security_policies::v1:: @@ -418,6 +711,79 @@ RegionSecurityPoliciesRestConnectionImpl::PatchRule( }); } +StatusOr +RegionSecurityPoliciesRestConnectionImpl::PatchRule( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_security_policies::v1:: + PatchRuleRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->PatchRule(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::region_security_policies::v1:: + PatchRuleRequest const& request) { + return stub_->PatchRule(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +RegionSecurityPoliciesRestConnectionImpl::PatchRule( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::region_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }); +} + future> RegionSecurityPoliciesRestConnectionImpl::RemoveRule( google::cloud::cpp::compute::region_security_policies::v1:: @@ -478,6 +844,79 @@ RegionSecurityPoliciesRestConnectionImpl::RemoveRule( }); } +StatusOr +RegionSecurityPoliciesRestConnectionImpl::RemoveRule( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_security_policies::v1:: + RemoveRuleRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->RemoveRule(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::region_security_policies::v1:: + RemoveRuleRequest const& request) { + return stub_->RemoveRule(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +RegionSecurityPoliciesRestConnectionImpl::RemoveRule( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::region_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace compute_region_security_policies_v1_internal } // namespace cloud diff --git a/google/cloud/compute/region_security_policies/v1/internal/region_security_policies_rest_connection_impl.h b/google/cloud/compute/region_security_policies/v1/internal/region_security_policies_rest_connection_impl.h index 81d738759065f..2b1ce1ac22846 100644 --- a/google/cloud/compute/region_security_policies/v1/internal/region_security_policies_rest_connection_impl.h +++ b/google/cloud/compute/region_security_policies/v1/internal/region_security_policies_rest_connection_impl.h @@ -58,11 +58,30 @@ class RegionSecurityPoliciesRestConnectionImpl google::cloud::cpp::compute::region_security_policies::v1:: AddRuleRequest const& request) override; + StatusOr AddRule( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_security_policies::v1:: + AddRuleRequest const& request) override; + + future> AddRule( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> DeleteSecurityPolicy( google::cloud::cpp::compute::region_security_policies::v1:: DeleteSecurityPolicyRequest const& request) override; + StatusOr DeleteSecurityPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_security_policies::v1:: + DeleteSecurityPolicyRequest const& request) override; + + future> + DeleteSecurityPolicy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StatusOr GetSecurityPolicy( google::cloud::cpp::compute::region_security_policies::v1:: GetSecurityPolicyRequest const& request) override; @@ -76,6 +95,16 @@ class RegionSecurityPoliciesRestConnectionImpl google::cloud::cpp::compute::region_security_policies::v1:: InsertSecurityPolicyRequest const& request) override; + StatusOr InsertSecurityPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_security_policies::v1:: + InsertSecurityPolicyRequest const& request) override; + + future> + InsertSecurityPolicy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StreamRange ListRegionSecurityPolicies( google::cloud::cpp::compute::region_security_policies::v1:: @@ -86,14 +115,42 @@ class RegionSecurityPoliciesRestConnectionImpl google::cloud::cpp::compute::region_security_policies::v1:: PatchSecurityPolicyRequest const& request) override; + StatusOr PatchSecurityPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_security_policies::v1:: + PatchSecurityPolicyRequest const& request) override; + + future> + PatchSecurityPolicy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> PatchRule( google::cloud::cpp::compute::region_security_policies::v1:: PatchRuleRequest const& request) override; + StatusOr PatchRule( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_security_policies::v1:: + PatchRuleRequest const& request) override; + + future> PatchRule( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> RemoveRule( google::cloud::cpp::compute::region_security_policies::v1:: RemoveRuleRequest const& request) override; + StatusOr RemoveRule( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_security_policies::v1:: + RemoveRuleRequest const& request) override; + + future> RemoveRule( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + private: static std::unique_ptr< compute_region_security_policies_v1::RegionSecurityPoliciesRetryPolicy> diff --git a/google/cloud/compute/region_security_policies/v1/internal/region_security_policies_tracing_connection.cc b/google/cloud/compute/region_security_policies/v1/internal/region_security_policies_tracing_connection.cc index 68f0b4e430838..f7a30fba83b58 100644 --- a/google/cloud/compute/region_security_policies/v1/internal/region_security_policies_tracing_connection.cc +++ b/google/cloud/compute/region_security_policies/v1/internal/region_security_policies_tracing_connection.cc @@ -48,6 +48,31 @@ RegionSecurityPoliciesTracingConnection::AddRule( return internal::EndSpan(std::move(span), child_->AddRule(request)); } +StatusOr +RegionSecurityPoliciesTracingConnection::AddRule( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_security_policies::v1:: + AddRuleRequest const& request) { + auto span = internal::MakeSpan( + "compute_region_security_policies_v1::RegionSecurityPoliciesConnection::" + "AddRule"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->AddRule(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +RegionSecurityPoliciesTracingConnection::AddRule( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_region_security_policies_v1::RegionSecurityPoliciesConnection::" + "AddRule"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->AddRule(ExperimentalTag{}, operation)); +} + future> RegionSecurityPoliciesTracingConnection::DeleteSecurityPolicy( google::cloud::cpp::compute::region_security_policies::v1:: @@ -60,6 +85,32 @@ RegionSecurityPoliciesTracingConnection::DeleteSecurityPolicy( child_->DeleteSecurityPolicy(request)); } +StatusOr +RegionSecurityPoliciesTracingConnection::DeleteSecurityPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_security_policies::v1:: + DeleteSecurityPolicyRequest const& request) { + auto span = internal::MakeSpan( + "compute_region_security_policies_v1::RegionSecurityPoliciesConnection::" + "DeleteSecurityPolicy"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->DeleteSecurityPolicy(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +RegionSecurityPoliciesTracingConnection::DeleteSecurityPolicy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_region_security_policies_v1::RegionSecurityPoliciesConnection::" + "DeleteSecurityPolicy"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->DeleteSecurityPolicy( + ExperimentalTag{}, operation)); +} + StatusOr RegionSecurityPoliciesTracingConnection::GetSecurityPolicy( google::cloud::cpp::compute::region_security_policies::v1:: @@ -94,6 +145,32 @@ RegionSecurityPoliciesTracingConnection::InsertSecurityPolicy( child_->InsertSecurityPolicy(request)); } +StatusOr +RegionSecurityPoliciesTracingConnection::InsertSecurityPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_security_policies::v1:: + InsertSecurityPolicyRequest const& request) { + auto span = internal::MakeSpan( + "compute_region_security_policies_v1::RegionSecurityPoliciesConnection::" + "InsertSecurityPolicy"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->InsertSecurityPolicy(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +RegionSecurityPoliciesTracingConnection::InsertSecurityPolicy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_region_security_policies_v1::RegionSecurityPoliciesConnection::" + "InsertSecurityPolicy"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->InsertSecurityPolicy( + ExperimentalTag{}, operation)); +} + StreamRange RegionSecurityPoliciesTracingConnection::ListRegionSecurityPolicies( google::cloud::cpp::compute::region_security_policies::v1:: @@ -120,6 +197,32 @@ RegionSecurityPoliciesTracingConnection::PatchSecurityPolicy( child_->PatchSecurityPolicy(request)); } +StatusOr +RegionSecurityPoliciesTracingConnection::PatchSecurityPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_security_policies::v1:: + PatchSecurityPolicyRequest const& request) { + auto span = internal::MakeSpan( + "compute_region_security_policies_v1::RegionSecurityPoliciesConnection::" + "PatchSecurityPolicy"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->PatchSecurityPolicy(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +RegionSecurityPoliciesTracingConnection::PatchSecurityPolicy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_region_security_policies_v1::RegionSecurityPoliciesConnection::" + "PatchSecurityPolicy"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->PatchSecurityPolicy( + ExperimentalTag{}, operation)); +} + future> RegionSecurityPoliciesTracingConnection::PatchRule( google::cloud::cpp::compute::region_security_policies::v1:: @@ -131,6 +234,31 @@ RegionSecurityPoliciesTracingConnection::PatchRule( return internal::EndSpan(std::move(span), child_->PatchRule(request)); } +StatusOr +RegionSecurityPoliciesTracingConnection::PatchRule( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_security_policies::v1:: + PatchRuleRequest const& request) { + auto span = internal::MakeSpan( + "compute_region_security_policies_v1::RegionSecurityPoliciesConnection::" + "PatchRule"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->PatchRule(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +RegionSecurityPoliciesTracingConnection::PatchRule( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_region_security_policies_v1::RegionSecurityPoliciesConnection::" + "PatchRule"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->PatchRule(ExperimentalTag{}, operation)); +} + future> RegionSecurityPoliciesTracingConnection::RemoveRule( google::cloud::cpp::compute::region_security_policies::v1:: @@ -142,6 +270,31 @@ RegionSecurityPoliciesTracingConnection::RemoveRule( return internal::EndSpan(std::move(span), child_->RemoveRule(request)); } +StatusOr +RegionSecurityPoliciesTracingConnection::RemoveRule( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_security_policies::v1:: + RemoveRuleRequest const& request) { + auto span = internal::MakeSpan( + "compute_region_security_policies_v1::RegionSecurityPoliciesConnection::" + "RemoveRule"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->RemoveRule(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +RegionSecurityPoliciesTracingConnection::RemoveRule( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_region_security_policies_v1::RegionSecurityPoliciesConnection::" + "RemoveRule"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->RemoveRule(ExperimentalTag{}, operation)); +} + #endif // GOOGLE_CLOUD_CPP_HAVE_OPENTELEMETRY std::shared_ptr< diff --git a/google/cloud/compute/region_security_policies/v1/internal/region_security_policies_tracing_connection.h b/google/cloud/compute/region_security_policies/v1/internal/region_security_policies_tracing_connection.h index 838cef0267129..64943553adaad 100644 --- a/google/cloud/compute/region_security_policies/v1/internal/region_security_policies_tracing_connection.h +++ b/google/cloud/compute/region_security_policies/v1/internal/region_security_policies_tracing_connection.h @@ -48,11 +48,30 @@ class RegionSecurityPoliciesTracingConnection google::cloud::cpp::compute::region_security_policies::v1:: AddRuleRequest const& request) override; + StatusOr AddRule( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_security_policies::v1:: + AddRuleRequest const& request) override; + + future> AddRule( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> DeleteSecurityPolicy( google::cloud::cpp::compute::region_security_policies::v1:: DeleteSecurityPolicyRequest const& request) override; + StatusOr DeleteSecurityPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_security_policies::v1:: + DeleteSecurityPolicyRequest const& request) override; + + future> + DeleteSecurityPolicy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StatusOr GetSecurityPolicy( google::cloud::cpp::compute::region_security_policies::v1:: GetSecurityPolicyRequest const& request) override; @@ -66,6 +85,16 @@ class RegionSecurityPoliciesTracingConnection google::cloud::cpp::compute::region_security_policies::v1:: InsertSecurityPolicyRequest const& request) override; + StatusOr InsertSecurityPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_security_policies::v1:: + InsertSecurityPolicyRequest const& request) override; + + future> + InsertSecurityPolicy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StreamRange ListRegionSecurityPolicies( google::cloud::cpp::compute::region_security_policies::v1:: @@ -76,14 +105,42 @@ class RegionSecurityPoliciesTracingConnection google::cloud::cpp::compute::region_security_policies::v1:: PatchSecurityPolicyRequest const& request) override; + StatusOr PatchSecurityPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_security_policies::v1:: + PatchSecurityPolicyRequest const& request) override; + + future> + PatchSecurityPolicy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> PatchRule( google::cloud::cpp::compute::region_security_policies::v1:: PatchRuleRequest const& request) override; + StatusOr PatchRule( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_security_policies::v1:: + PatchRuleRequest const& request) override; + + future> PatchRule( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> RemoveRule( google::cloud::cpp::compute::region_security_policies::v1:: RemoveRuleRequest const& request) override; + StatusOr RemoveRule( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_security_policies::v1:: + RemoveRuleRequest const& request) override; + + future> RemoveRule( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + private: std::shared_ptr< compute_region_security_policies_v1::RegionSecurityPoliciesConnection> diff --git a/google/cloud/compute/region_security_policies/v1/mocks/mock_region_security_policies_connection.h b/google/cloud/compute/region_security_policies/v1/mocks/mock_region_security_policies_connection.h index 625901c6ad12b..1a2f6be8c3a76 100644 --- a/google/cloud/compute/region_security_policies/v1/mocks/mock_region_security_policies_connection.h +++ b/google/cloud/compute/region_security_policies/v1/mocks/mock_region_security_policies_connection.h @@ -55,12 +55,37 @@ class MockRegionSecurityPoliciesConnection AddRuleRequest const& request), (override)); + MOCK_METHOD(StatusOr, AddRule, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_security_policies::v1:: + AddRuleRequest const& request), + (override)); + + MOCK_METHOD(future>, + AddRule, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD(future>, DeleteSecurityPolicy, (google::cloud::cpp::compute::region_security_policies::v1:: DeleteSecurityPolicyRequest const& request), (override)); + MOCK_METHOD(StatusOr, + DeleteSecurityPolicy, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_security_policies::v1:: + DeleteSecurityPolicyRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteSecurityPolicy, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD(StatusOr, GetSecurityPolicy, (google::cloud::cpp::compute::region_security_policies::v1:: @@ -79,6 +104,19 @@ class MockRegionSecurityPoliciesConnection InsertSecurityPolicyRequest const& request), (override)); + MOCK_METHOD(StatusOr, + InsertSecurityPolicy, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_security_policies::v1:: + InsertSecurityPolicyRequest const& request), + (override)); + + MOCK_METHOD(future>, + InsertSecurityPolicy, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD((StreamRange), ListRegionSecurityPolicies, (google::cloud::cpp::compute::region_security_policies::v1:: @@ -91,17 +129,54 @@ class MockRegionSecurityPoliciesConnection PatchSecurityPolicyRequest const& request), (override)); + MOCK_METHOD(StatusOr, + PatchSecurityPolicy, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_security_policies::v1:: + PatchSecurityPolicyRequest const& request), + (override)); + + MOCK_METHOD(future>, + PatchSecurityPolicy, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD(future>, PatchRule, (google::cloud::cpp::compute::region_security_policies::v1:: PatchRuleRequest const& request), (override)); + MOCK_METHOD(StatusOr, PatchRule, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_security_policies::v1:: + PatchRuleRequest const& request), + (override)); + + MOCK_METHOD(future>, + PatchRule, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD(future>, RemoveRule, (google::cloud::cpp::compute::region_security_policies::v1:: RemoveRuleRequest const& request), (override)); + + MOCK_METHOD(StatusOr, RemoveRule, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_security_policies::v1:: + RemoveRuleRequest const& request), + (override)); + + MOCK_METHOD(future>, + RemoveRule, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); }; GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END diff --git a/google/cloud/compute/region_security_policies/v1/region_security_policies_connection.cc b/google/cloud/compute/region_security_policies/v1/region_security_policies_connection.cc index 93d0fa3234304..de5d0638f78a5 100644 --- a/google/cloud/compute/region_security_policies/v1/region_security_policies_connection.cc +++ b/google/cloud/compute/region_security_policies/v1/region_security_policies_connection.cc @@ -46,6 +46,23 @@ RegionSecurityPoliciesConnection::AddRule( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +RegionSecurityPoliciesConnection::AddRule( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_security_policies::v1:: + AddRuleRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +RegionSecurityPoliciesConnection::AddRule( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> RegionSecurityPoliciesConnection::DeleteSecurityPolicy( google::cloud::cpp::compute::region_security_policies::v1:: @@ -55,6 +72,23 @@ RegionSecurityPoliciesConnection::DeleteSecurityPolicy( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +RegionSecurityPoliciesConnection::DeleteSecurityPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_security_policies::v1:: + DeleteSecurityPolicyRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +RegionSecurityPoliciesConnection::DeleteSecurityPolicy( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr RegionSecurityPoliciesConnection::GetSecurityPolicy( google::cloud::cpp::compute::region_security_policies::v1:: @@ -78,6 +112,23 @@ RegionSecurityPoliciesConnection::InsertSecurityPolicy( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +RegionSecurityPoliciesConnection::InsertSecurityPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_security_policies::v1:: + InsertSecurityPolicyRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +RegionSecurityPoliciesConnection::InsertSecurityPolicy( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StreamRange RegionSecurityPoliciesConnection::ListRegionSecurityPolicies( google::cloud::cpp::compute::region_security_policies::v1:: @@ -95,6 +146,23 @@ RegionSecurityPoliciesConnection::PatchSecurityPolicy( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +RegionSecurityPoliciesConnection::PatchSecurityPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_security_policies::v1:: + PatchSecurityPolicyRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +RegionSecurityPoliciesConnection::PatchSecurityPolicy( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> RegionSecurityPoliciesConnection::PatchRule( google::cloud::cpp::compute::region_security_policies::v1:: @@ -104,6 +172,23 @@ RegionSecurityPoliciesConnection::PatchRule( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +RegionSecurityPoliciesConnection::PatchRule( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_security_policies::v1:: + PatchRuleRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +RegionSecurityPoliciesConnection::PatchRule( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> RegionSecurityPoliciesConnection::RemoveRule( google::cloud::cpp::compute::region_security_policies::v1:: @@ -113,6 +198,23 @@ RegionSecurityPoliciesConnection::RemoveRule( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +RegionSecurityPoliciesConnection::RemoveRule( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_security_policies::v1:: + RemoveRuleRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +RegionSecurityPoliciesConnection::RemoveRule( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace compute_region_security_policies_v1 } // namespace cloud diff --git a/google/cloud/compute/region_security_policies/v1/region_security_policies_connection.h b/google/cloud/compute/region_security_policies/v1/region_security_policies_connection.h index 29fd2513d24ad..0a59382b6700b 100644 --- a/google/cloud/compute/region_security_policies/v1/region_security_policies_connection.h +++ b/google/cloud/compute/region_security_policies/v1/region_security_policies_connection.h @@ -23,8 +23,10 @@ #include "google/cloud/compute/region_security_policies/v1/internal/region_security_policies_retry_traits.h" #include "google/cloud/compute/region_security_policies/v1/region_security_policies_connection_idempotency_policy.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/internal/retry_policy_impl.h" +#include "google/cloud/no_await_tag.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" #include "google/cloud/status_or.h" @@ -198,10 +200,29 @@ class RegionSecurityPoliciesConnection { google::cloud::cpp::compute::region_security_policies::v1:: AddRuleRequest const& request); + virtual StatusOr AddRule( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_security_policies::v1:: + AddRuleRequest const& request); + + virtual future> AddRule( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual future> DeleteSecurityPolicy(google::cloud::cpp::compute::region_security_policies:: v1::DeleteSecurityPolicyRequest const& request); + virtual StatusOr + DeleteSecurityPolicy(ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_security_policies:: + v1::DeleteSecurityPolicyRequest const& request); + + virtual future> + DeleteSecurityPolicy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual StatusOr GetSecurityPolicy(google::cloud::cpp::compute::region_security_policies::v1:: GetSecurityPolicyRequest const& request); @@ -214,6 +235,16 @@ class RegionSecurityPoliciesConnection { InsertSecurityPolicy(google::cloud::cpp::compute::region_security_policies:: v1::InsertSecurityPolicyRequest const& request); + virtual StatusOr + InsertSecurityPolicy(ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_security_policies:: + v1::InsertSecurityPolicyRequest const& request); + + virtual future> + InsertSecurityPolicy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual StreamRange ListRegionSecurityPolicies( google::cloud::cpp::compute::region_security_policies::v1:: @@ -223,13 +254,41 @@ class RegionSecurityPoliciesConnection { PatchSecurityPolicy(google::cloud::cpp::compute::region_security_policies:: v1::PatchSecurityPolicyRequest const& request); + virtual StatusOr + PatchSecurityPolicy(ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_security_policies:: + v1::PatchSecurityPolicyRequest const& request); + + virtual future> + PatchSecurityPolicy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual future> PatchRule(google::cloud::cpp::compute::region_security_policies::v1:: PatchRuleRequest const& request); + virtual StatusOr PatchRule( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_security_policies::v1:: + PatchRuleRequest const& request); + + virtual future> + PatchRule(ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual future> RemoveRule(google::cloud::cpp::compute::region_security_policies::v1:: RemoveRuleRequest const& request); + + virtual StatusOr RemoveRule( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_security_policies::v1:: + RemoveRuleRequest const& request); + + virtual future> + RemoveRule(ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); }; GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END diff --git a/google/cloud/compute/region_ssl_certificates/v1/internal/region_ssl_certificates_rest_connection_impl.cc b/google/cloud/compute/region_ssl_certificates/v1/internal/region_ssl_certificates_rest_connection_impl.cc index 2a14e6d44aa09..57dcae1cdb2ac 100644 --- a/google/cloud/compute/region_ssl_certificates/v1/internal/region_ssl_certificates_rest_connection_impl.cc +++ b/google/cloud/compute/region_ssl_certificates/v1/internal/region_ssl_certificates_rest_connection_impl.cc @@ -24,6 +24,7 @@ #include "google/cloud/internal/async_rest_long_running_operation_custom.h" #include "google/cloud/internal/extract_long_running_result.h" #include "google/cloud/internal/pagination_range.h" +#include "google/cloud/internal/rest_lro_helpers.h" #include "google/cloud/internal/rest_retry_loop.h" #include "google/cloud/rest_options.h" #include @@ -106,6 +107,79 @@ RegionSslCertificatesRestConnectionImpl::DeleteSslCertificate( }); } +StatusOr +RegionSslCertificatesRestConnectionImpl::DeleteSslCertificate( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_ssl_certificates::v1:: + DeleteSslCertificateRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteSslCertificate(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::region_ssl_certificates::v1:: + DeleteSslCertificateRequest const& request) { + return stub_->DeleteSslCertificate(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +RegionSslCertificatesRestConnectionImpl::DeleteSslCertificate( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::region_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }); +} + StatusOr RegionSslCertificatesRestConnectionImpl::GetSslCertificate( google::cloud::cpp::compute::region_ssl_certificates::v1:: @@ -182,6 +256,79 @@ RegionSslCertificatesRestConnectionImpl::InsertSslCertificate( }); } +StatusOr +RegionSslCertificatesRestConnectionImpl::InsertSslCertificate( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_ssl_certificates::v1:: + InsertSslCertificateRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->InsertSslCertificate(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::region_ssl_certificates::v1:: + InsertSslCertificateRequest const& request) { + return stub_->InsertSslCertificate(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +RegionSslCertificatesRestConnectionImpl::InsertSslCertificate( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::region_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }); +} + StreamRange RegionSslCertificatesRestConnectionImpl::ListRegionSslCertificates( google::cloud::cpp::compute::region_ssl_certificates::v1:: diff --git a/google/cloud/compute/region_ssl_certificates/v1/internal/region_ssl_certificates_rest_connection_impl.h b/google/cloud/compute/region_ssl_certificates/v1/internal/region_ssl_certificates_rest_connection_impl.h index dd97a0afabb37..985a05df8aa2b 100644 --- a/google/cloud/compute/region_ssl_certificates/v1/internal/region_ssl_certificates_rest_connection_impl.h +++ b/google/cloud/compute/region_ssl_certificates/v1/internal/region_ssl_certificates_rest_connection_impl.h @@ -59,6 +59,16 @@ class RegionSslCertificatesRestConnectionImpl google::cloud::cpp::compute::region_ssl_certificates::v1:: DeleteSslCertificateRequest const& request) override; + StatusOr DeleteSslCertificate( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_ssl_certificates::v1:: + DeleteSslCertificateRequest const& request) override; + + future> + DeleteSslCertificate( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StatusOr GetSslCertificate( google::cloud::cpp::compute::region_ssl_certificates::v1:: GetSslCertificateRequest const& request) override; @@ -68,6 +78,16 @@ class RegionSslCertificatesRestConnectionImpl google::cloud::cpp::compute::region_ssl_certificates::v1:: InsertSslCertificateRequest const& request) override; + StatusOr InsertSslCertificate( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_ssl_certificates::v1:: + InsertSslCertificateRequest const& request) override; + + future> + InsertSslCertificate( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StreamRange ListRegionSslCertificates( google::cloud::cpp::compute::region_ssl_certificates::v1:: diff --git a/google/cloud/compute/region_ssl_certificates/v1/internal/region_ssl_certificates_tracing_connection.cc b/google/cloud/compute/region_ssl_certificates/v1/internal/region_ssl_certificates_tracing_connection.cc index ffbe7e4f94464..203936c0842ca 100644 --- a/google/cloud/compute/region_ssl_certificates/v1/internal/region_ssl_certificates_tracing_connection.cc +++ b/google/cloud/compute/region_ssl_certificates/v1/internal/region_ssl_certificates_tracing_connection.cc @@ -48,6 +48,32 @@ RegionSslCertificatesTracingConnection::DeleteSslCertificate( child_->DeleteSslCertificate(request)); } +StatusOr +RegionSslCertificatesTracingConnection::DeleteSslCertificate( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_ssl_certificates::v1:: + DeleteSslCertificateRequest const& request) { + auto span = internal::MakeSpan( + "compute_region_ssl_certificates_v1::RegionSslCertificatesConnection::" + "DeleteSslCertificate"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->DeleteSslCertificate(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +RegionSslCertificatesTracingConnection::DeleteSslCertificate( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_region_ssl_certificates_v1::RegionSslCertificatesConnection::" + "DeleteSslCertificate"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->DeleteSslCertificate( + ExperimentalTag{}, operation)); +} + StatusOr RegionSslCertificatesTracingConnection::GetSslCertificate( google::cloud::cpp::compute::region_ssl_certificates::v1:: @@ -71,6 +97,32 @@ RegionSslCertificatesTracingConnection::InsertSslCertificate( child_->InsertSslCertificate(request)); } +StatusOr +RegionSslCertificatesTracingConnection::InsertSslCertificate( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_ssl_certificates::v1:: + InsertSslCertificateRequest const& request) { + auto span = internal::MakeSpan( + "compute_region_ssl_certificates_v1::RegionSslCertificatesConnection::" + "InsertSslCertificate"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->InsertSslCertificate(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +RegionSslCertificatesTracingConnection::InsertSslCertificate( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_region_ssl_certificates_v1::RegionSslCertificatesConnection::" + "InsertSslCertificate"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->InsertSslCertificate( + ExperimentalTag{}, operation)); +} + StreamRange RegionSslCertificatesTracingConnection::ListRegionSslCertificates( google::cloud::cpp::compute::region_ssl_certificates::v1:: diff --git a/google/cloud/compute/region_ssl_certificates/v1/internal/region_ssl_certificates_tracing_connection.h b/google/cloud/compute/region_ssl_certificates/v1/internal/region_ssl_certificates_tracing_connection.h index 3778e1059fb67..915a9d75fef2e 100644 --- a/google/cloud/compute/region_ssl_certificates/v1/internal/region_ssl_certificates_tracing_connection.h +++ b/google/cloud/compute/region_ssl_certificates/v1/internal/region_ssl_certificates_tracing_connection.h @@ -49,6 +49,16 @@ class RegionSslCertificatesTracingConnection google::cloud::cpp::compute::region_ssl_certificates::v1:: DeleteSslCertificateRequest const& request) override; + StatusOr DeleteSslCertificate( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_ssl_certificates::v1:: + DeleteSslCertificateRequest const& request) override; + + future> + DeleteSslCertificate( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StatusOr GetSslCertificate( google::cloud::cpp::compute::region_ssl_certificates::v1:: GetSslCertificateRequest const& request) override; @@ -58,6 +68,16 @@ class RegionSslCertificatesTracingConnection google::cloud::cpp::compute::region_ssl_certificates::v1:: InsertSslCertificateRequest const& request) override; + StatusOr InsertSslCertificate( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_ssl_certificates::v1:: + InsertSslCertificateRequest const& request) override; + + future> + InsertSslCertificate( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StreamRange ListRegionSslCertificates( google::cloud::cpp::compute::region_ssl_certificates::v1:: diff --git a/google/cloud/compute/region_ssl_certificates/v1/mocks/mock_region_ssl_certificates_connection.h b/google/cloud/compute/region_ssl_certificates/v1/mocks/mock_region_ssl_certificates_connection.h index 73a2a31c541d1..a5e6bda4a395b 100644 --- a/google/cloud/compute/region_ssl_certificates/v1/mocks/mock_region_ssl_certificates_connection.h +++ b/google/cloud/compute/region_ssl_certificates/v1/mocks/mock_region_ssl_certificates_connection.h @@ -55,6 +55,19 @@ class MockRegionSslCertificatesConnection DeleteSslCertificateRequest const& request), (override)); + MOCK_METHOD(StatusOr, + DeleteSslCertificate, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_ssl_certificates::v1:: + DeleteSslCertificateRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteSslCertificate, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD(StatusOr, GetSslCertificate, (google::cloud::cpp::compute::region_ssl_certificates::v1:: @@ -67,6 +80,19 @@ class MockRegionSslCertificatesConnection InsertSslCertificateRequest const& request), (override)); + MOCK_METHOD(StatusOr, + InsertSslCertificate, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_ssl_certificates::v1:: + InsertSslCertificateRequest const& request), + (override)); + + MOCK_METHOD(future>, + InsertSslCertificate, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD((StreamRange), ListRegionSslCertificates, (google::cloud::cpp::compute::region_ssl_certificates::v1:: diff --git a/google/cloud/compute/region_ssl_certificates/v1/region_ssl_certificates_connection.cc b/google/cloud/compute/region_ssl_certificates/v1/region_ssl_certificates_connection.cc index a7196ad229253..4a6d5258cf657 100644 --- a/google/cloud/compute/region_ssl_certificates/v1/region_ssl_certificates_connection.cc +++ b/google/cloud/compute/region_ssl_certificates/v1/region_ssl_certificates_connection.cc @@ -46,6 +46,23 @@ RegionSslCertificatesConnection::DeleteSslCertificate( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +RegionSslCertificatesConnection::DeleteSslCertificate( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_ssl_certificates::v1:: + DeleteSslCertificateRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +RegionSslCertificatesConnection::DeleteSslCertificate( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr RegionSslCertificatesConnection::GetSslCertificate( google::cloud::cpp::compute::region_ssl_certificates::v1:: @@ -62,6 +79,23 @@ RegionSslCertificatesConnection::InsertSslCertificate( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +RegionSslCertificatesConnection::InsertSslCertificate( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_ssl_certificates::v1:: + InsertSslCertificateRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +RegionSslCertificatesConnection::InsertSslCertificate( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StreamRange RegionSslCertificatesConnection::ListRegionSslCertificates( google::cloud::cpp::compute::region_ssl_certificates::v1:: diff --git a/google/cloud/compute/region_ssl_certificates/v1/region_ssl_certificates_connection.h b/google/cloud/compute/region_ssl_certificates/v1/region_ssl_certificates_connection.h index 1b908e1f0460c..9bf9d42545fac 100644 --- a/google/cloud/compute/region_ssl_certificates/v1/region_ssl_certificates_connection.h +++ b/google/cloud/compute/region_ssl_certificates/v1/region_ssl_certificates_connection.h @@ -23,8 +23,10 @@ #include "google/cloud/compute/region_ssl_certificates/v1/internal/region_ssl_certificates_retry_traits.h" #include "google/cloud/compute/region_ssl_certificates/v1/region_ssl_certificates_connection_idempotency_policy.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/internal/retry_policy_impl.h" +#include "google/cloud/no_await_tag.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" #include "google/cloud/status_or.h" @@ -198,6 +200,16 @@ class RegionSslCertificatesConnection { DeleteSslCertificate(google::cloud::cpp::compute::region_ssl_certificates:: v1::DeleteSslCertificateRequest const& request); + virtual StatusOr + DeleteSslCertificate(ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_ssl_certificates:: + v1::DeleteSslCertificateRequest const& request); + + virtual future> + DeleteSslCertificate( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual StatusOr GetSslCertificate(google::cloud::cpp::compute::region_ssl_certificates::v1:: GetSslCertificateRequest const& request); @@ -206,6 +218,16 @@ class RegionSslCertificatesConnection { InsertSslCertificate(google::cloud::cpp::compute::region_ssl_certificates:: v1::InsertSslCertificateRequest const& request); + virtual StatusOr + InsertSslCertificate(ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_ssl_certificates:: + v1::InsertSslCertificateRequest const& request); + + virtual future> + InsertSslCertificate( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual StreamRange ListRegionSslCertificates( google::cloud::cpp::compute::region_ssl_certificates::v1:: diff --git a/google/cloud/compute/region_ssl_policies/v1/internal/region_ssl_policies_rest_connection_impl.cc b/google/cloud/compute/region_ssl_policies/v1/internal/region_ssl_policies_rest_connection_impl.cc index 41c24a85a8ec2..06db056f84f64 100644 --- a/google/cloud/compute/region_ssl_policies/v1/internal/region_ssl_policies_rest_connection_impl.cc +++ b/google/cloud/compute/region_ssl_policies/v1/internal/region_ssl_policies_rest_connection_impl.cc @@ -23,6 +23,7 @@ #include "google/cloud/internal/async_rest_long_running_operation_custom.h" #include "google/cloud/internal/extract_long_running_result.h" #include "google/cloud/internal/pagination_range.h" +#include "google/cloud/internal/rest_lro_helpers.h" #include "google/cloud/internal/rest_retry_loop.h" #include "google/cloud/rest_options.h" #include @@ -104,6 +105,79 @@ RegionSslPoliciesRestConnectionImpl::DeleteSslPolicy( }); } +StatusOr +RegionSslPoliciesRestConnectionImpl::DeleteSslPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_ssl_policies::v1:: + DeleteSslPolicyRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteSslPolicy(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::region_ssl_policies::v1:: + DeleteSslPolicyRequest const& request) { + return stub_->DeleteSslPolicy(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +RegionSslPoliciesRestConnectionImpl::DeleteSslPolicy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::region_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }); +} + StatusOr RegionSslPoliciesRestConnectionImpl::GetSslPolicy( google::cloud::cpp::compute::region_ssl_policies::v1:: @@ -180,6 +254,79 @@ RegionSslPoliciesRestConnectionImpl::InsertSslPolicy( }); } +StatusOr +RegionSslPoliciesRestConnectionImpl::InsertSslPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_ssl_policies::v1:: + InsertSslPolicyRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->InsertSslPolicy(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::region_ssl_policies::v1:: + InsertSslPolicyRequest const& request) { + return stub_->InsertSslPolicy(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +RegionSslPoliciesRestConnectionImpl::InsertSslPolicy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::region_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }); +} + StreamRange RegionSslPoliciesRestConnectionImpl::ListRegionSslPolicies( google::cloud::cpp::compute::region_ssl_policies::v1:: @@ -297,6 +444,79 @@ RegionSslPoliciesRestConnectionImpl::PatchSslPolicy( }); } +StatusOr +RegionSslPoliciesRestConnectionImpl::PatchSslPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_ssl_policies::v1:: + PatchSslPolicyRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->PatchSslPolicy(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::region_ssl_policies::v1:: + PatchSslPolicyRequest const& request) { + return stub_->PatchSslPolicy(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +RegionSslPoliciesRestConnectionImpl::PatchSslPolicy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::region_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace compute_region_ssl_policies_v1_internal } // namespace cloud diff --git a/google/cloud/compute/region_ssl_policies/v1/internal/region_ssl_policies_rest_connection_impl.h b/google/cloud/compute/region_ssl_policies/v1/internal/region_ssl_policies_rest_connection_impl.h index 0e135706a80cd..56c67537ce522 100644 --- a/google/cloud/compute/region_ssl_policies/v1/internal/region_ssl_policies_rest_connection_impl.h +++ b/google/cloud/compute/region_ssl_policies/v1/internal/region_ssl_policies_rest_connection_impl.h @@ -56,6 +56,15 @@ class RegionSslPoliciesRestConnectionImpl google::cloud::cpp::compute::region_ssl_policies::v1:: DeleteSslPolicyRequest const& request) override; + StatusOr DeleteSslPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_ssl_policies::v1:: + DeleteSslPolicyRequest const& request) override; + + future> DeleteSslPolicy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StatusOr GetSslPolicy( google::cloud::cpp::compute::region_ssl_policies::v1:: GetSslPolicyRequest const& request) override; @@ -64,6 +73,15 @@ class RegionSslPoliciesRestConnectionImpl google::cloud::cpp::compute::region_ssl_policies::v1:: InsertSslPolicyRequest const& request) override; + StatusOr InsertSslPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_ssl_policies::v1:: + InsertSslPolicyRequest const& request) override; + + future> InsertSslPolicy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StreamRange ListRegionSslPolicies( google::cloud::cpp::compute::region_ssl_policies::v1:: ListRegionSslPoliciesRequest request) override; @@ -78,6 +96,15 @@ class RegionSslPoliciesRestConnectionImpl google::cloud::cpp::compute::region_ssl_policies::v1:: PatchSslPolicyRequest const& request) override; + StatusOr PatchSslPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_ssl_policies::v1:: + PatchSslPolicyRequest const& request) override; + + future> PatchSslPolicy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + private: static std::unique_ptr< compute_region_ssl_policies_v1::RegionSslPoliciesRetryPolicy> diff --git a/google/cloud/compute/region_ssl_policies/v1/internal/region_ssl_policies_tracing_connection.cc b/google/cloud/compute/region_ssl_policies/v1/internal/region_ssl_policies_tracing_connection.cc index 593f33b946ff8..6ddbaf5e37dc3 100644 --- a/google/cloud/compute/region_ssl_policies/v1/internal/region_ssl_policies_tracing_connection.cc +++ b/google/cloud/compute/region_ssl_policies/v1/internal/region_ssl_policies_tracing_connection.cc @@ -45,6 +45,31 @@ RegionSslPoliciesTracingConnection::DeleteSslPolicy( return internal::EndSpan(std::move(span), child_->DeleteSslPolicy(request)); } +StatusOr +RegionSslPoliciesTracingConnection::DeleteSslPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_ssl_policies::v1:: + DeleteSslPolicyRequest const& request) { + auto span = internal::MakeSpan( + "compute_region_ssl_policies_v1::RegionSslPoliciesConnection::" + "DeleteSslPolicy"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->DeleteSslPolicy(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +RegionSslPoliciesTracingConnection::DeleteSslPolicy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_region_ssl_policies_v1::RegionSslPoliciesConnection::" + "DeleteSslPolicy"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->DeleteSslPolicy(ExperimentalTag{}, operation)); +} + StatusOr RegionSslPoliciesTracingConnection::GetSslPolicy( google::cloud::cpp::compute::region_ssl_policies::v1:: @@ -67,6 +92,31 @@ RegionSslPoliciesTracingConnection::InsertSslPolicy( return internal::EndSpan(std::move(span), child_->InsertSslPolicy(request)); } +StatusOr +RegionSslPoliciesTracingConnection::InsertSslPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_ssl_policies::v1:: + InsertSslPolicyRequest const& request) { + auto span = internal::MakeSpan( + "compute_region_ssl_policies_v1::RegionSslPoliciesConnection::" + "InsertSslPolicy"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->InsertSslPolicy(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +RegionSslPoliciesTracingConnection::InsertSslPolicy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_region_ssl_policies_v1::RegionSslPoliciesConnection::" + "InsertSslPolicy"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->InsertSslPolicy(ExperimentalTag{}, operation)); +} + StreamRange RegionSslPoliciesTracingConnection::ListRegionSslPolicies( google::cloud::cpp::compute::region_ssl_policies::v1:: @@ -104,6 +154,31 @@ RegionSslPoliciesTracingConnection::PatchSslPolicy( return internal::EndSpan(std::move(span), child_->PatchSslPolicy(request)); } +StatusOr +RegionSslPoliciesTracingConnection::PatchSslPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_ssl_policies::v1:: + PatchSslPolicyRequest const& request) { + auto span = internal::MakeSpan( + "compute_region_ssl_policies_v1::RegionSslPoliciesConnection::" + "PatchSslPolicy"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->PatchSslPolicy(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +RegionSslPoliciesTracingConnection::PatchSslPolicy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_region_ssl_policies_v1::RegionSslPoliciesConnection::" + "PatchSslPolicy"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->PatchSslPolicy(ExperimentalTag{}, operation)); +} + #endif // GOOGLE_CLOUD_CPP_HAVE_OPENTELEMETRY std::shared_ptr diff --git a/google/cloud/compute/region_ssl_policies/v1/internal/region_ssl_policies_tracing_connection.h b/google/cloud/compute/region_ssl_policies/v1/internal/region_ssl_policies_tracing_connection.h index cd637979b18a3..deaccebe7acb3 100644 --- a/google/cloud/compute/region_ssl_policies/v1/internal/region_ssl_policies_tracing_connection.h +++ b/google/cloud/compute/region_ssl_policies/v1/internal/region_ssl_policies_tracing_connection.h @@ -46,6 +46,15 @@ class RegionSslPoliciesTracingConnection google::cloud::cpp::compute::region_ssl_policies::v1:: DeleteSslPolicyRequest const& request) override; + StatusOr DeleteSslPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_ssl_policies::v1:: + DeleteSslPolicyRequest const& request) override; + + future> DeleteSslPolicy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StatusOr GetSslPolicy( google::cloud::cpp::compute::region_ssl_policies::v1:: GetSslPolicyRequest const& request) override; @@ -54,6 +63,15 @@ class RegionSslPoliciesTracingConnection google::cloud::cpp::compute::region_ssl_policies::v1:: InsertSslPolicyRequest const& request) override; + StatusOr InsertSslPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_ssl_policies::v1:: + InsertSslPolicyRequest const& request) override; + + future> InsertSslPolicy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StreamRange ListRegionSslPolicies( google::cloud::cpp::compute::region_ssl_policies::v1:: ListRegionSslPoliciesRequest request) override; @@ -68,6 +86,15 @@ class RegionSslPoliciesTracingConnection google::cloud::cpp::compute::region_ssl_policies::v1:: PatchSslPolicyRequest const& request) override; + StatusOr PatchSslPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_ssl_policies::v1:: + PatchSslPolicyRequest const& request) override; + + future> PatchSslPolicy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + private: std::shared_ptr child_; diff --git a/google/cloud/compute/region_ssl_policies/v1/mocks/mock_region_ssl_policies_connection.h b/google/cloud/compute/region_ssl_policies/v1/mocks/mock_region_ssl_policies_connection.h index ad837c8f9ed65..64e249278792d 100644 --- a/google/cloud/compute/region_ssl_policies/v1/mocks/mock_region_ssl_policies_connection.h +++ b/google/cloud/compute/region_ssl_policies/v1/mocks/mock_region_ssl_policies_connection.h @@ -53,6 +53,19 @@ class MockRegionSslPoliciesConnection DeleteSslPolicyRequest const& request), (override)); + MOCK_METHOD(StatusOr, + DeleteSslPolicy, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_ssl_policies::v1:: + DeleteSslPolicyRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteSslPolicy, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD(StatusOr, GetSslPolicy, (google::cloud::cpp::compute::region_ssl_policies::v1:: @@ -65,6 +78,19 @@ class MockRegionSslPoliciesConnection InsertSslPolicyRequest const& request), (override)); + MOCK_METHOD(StatusOr, + InsertSslPolicy, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_ssl_policies::v1:: + InsertSslPolicyRequest const& request), + (override)); + + MOCK_METHOD(future>, + InsertSslPolicy, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD((StreamRange), ListRegionSslPolicies, (google::cloud::cpp::compute::region_ssl_policies::v1:: @@ -83,6 +109,19 @@ class MockRegionSslPoliciesConnection (google::cloud::cpp::compute::region_ssl_policies::v1:: PatchSslPolicyRequest const& request), (override)); + + MOCK_METHOD(StatusOr, + PatchSslPolicy, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_ssl_policies::v1:: + PatchSslPolicyRequest const& request), + (override)); + + MOCK_METHOD(future>, + PatchSslPolicy, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); }; GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END diff --git a/google/cloud/compute/region_ssl_policies/v1/region_ssl_policies_connection.cc b/google/cloud/compute/region_ssl_policies/v1/region_ssl_policies_connection.cc index 35df8e7585afd..b117c9d38018f 100644 --- a/google/cloud/compute/region_ssl_policies/v1/region_ssl_policies_connection.cc +++ b/google/cloud/compute/region_ssl_policies/v1/region_ssl_policies_connection.cc @@ -45,6 +45,23 @@ RegionSslPoliciesConnection::DeleteSslPolicy( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +RegionSslPoliciesConnection::DeleteSslPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_ssl_policies::v1:: + DeleteSslPolicyRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +RegionSslPoliciesConnection::DeleteSslPolicy( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr RegionSslPoliciesConnection::GetSslPolicy( google::cloud::cpp::compute::region_ssl_policies::v1:: @@ -61,6 +78,23 @@ RegionSslPoliciesConnection::InsertSslPolicy( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +RegionSslPoliciesConnection::InsertSslPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_ssl_policies::v1:: + InsertSslPolicyRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +RegionSslPoliciesConnection::InsertSslPolicy( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StreamRange RegionSslPoliciesConnection::ListRegionSslPolicies( google::cloud::cpp::compute::region_ssl_policies::v1:: @@ -86,6 +120,23 @@ RegionSslPoliciesConnection::PatchSslPolicy( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +RegionSslPoliciesConnection::PatchSslPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_ssl_policies::v1:: + PatchSslPolicyRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +RegionSslPoliciesConnection::PatchSslPolicy( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace compute_region_ssl_policies_v1 } // namespace cloud diff --git a/google/cloud/compute/region_ssl_policies/v1/region_ssl_policies_connection.h b/google/cloud/compute/region_ssl_policies/v1/region_ssl_policies_connection.h index 8647dda887be0..ba94e27b0be6f 100644 --- a/google/cloud/compute/region_ssl_policies/v1/region_ssl_policies_connection.h +++ b/google/cloud/compute/region_ssl_policies/v1/region_ssl_policies_connection.h @@ -22,8 +22,10 @@ #include "google/cloud/compute/region_ssl_policies/v1/internal/region_ssl_policies_retry_traits.h" #include "google/cloud/compute/region_ssl_policies/v1/region_ssl_policies_connection_idempotency_policy.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/internal/retry_policy_impl.h" +#include "google/cloud/no_await_tag.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" #include "google/cloud/status_or.h" @@ -190,6 +192,15 @@ class RegionSslPoliciesConnection { DeleteSslPolicy(google::cloud::cpp::compute::region_ssl_policies::v1:: DeleteSslPolicyRequest const& request); + virtual StatusOr DeleteSslPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_ssl_policies::v1:: + DeleteSslPolicyRequest const& request); + + virtual future> + DeleteSslPolicy(ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual StatusOr GetSslPolicy( google::cloud::cpp::compute::region_ssl_policies::v1:: GetSslPolicyRequest const& request); @@ -198,6 +209,15 @@ class RegionSslPoliciesConnection { InsertSslPolicy(google::cloud::cpp::compute::region_ssl_policies::v1:: InsertSslPolicyRequest const& request); + virtual StatusOr InsertSslPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_ssl_policies::v1:: + InsertSslPolicyRequest const& request); + + virtual future> + InsertSslPolicy(ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual StreamRange ListRegionSslPolicies(google::cloud::cpp::compute::region_ssl_policies::v1:: ListRegionSslPoliciesRequest request); @@ -210,6 +230,15 @@ class RegionSslPoliciesConnection { virtual future> PatchSslPolicy(google::cloud::cpp::compute::region_ssl_policies::v1:: PatchSslPolicyRequest const& request); + + virtual StatusOr PatchSslPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_ssl_policies::v1:: + PatchSslPolicyRequest const& request); + + virtual future> + PatchSslPolicy(ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); }; GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END diff --git a/google/cloud/compute/region_target_http_proxies/v1/internal/region_target_http_proxies_rest_connection_impl.cc b/google/cloud/compute/region_target_http_proxies/v1/internal/region_target_http_proxies_rest_connection_impl.cc index 6b7a8461be097..81b9389e281fc 100644 --- a/google/cloud/compute/region_target_http_proxies/v1/internal/region_target_http_proxies_rest_connection_impl.cc +++ b/google/cloud/compute/region_target_http_proxies/v1/internal/region_target_http_proxies_rest_connection_impl.cc @@ -24,6 +24,7 @@ #include "google/cloud/internal/async_rest_long_running_operation_custom.h" #include "google/cloud/internal/extract_long_running_result.h" #include "google/cloud/internal/pagination_range.h" +#include "google/cloud/internal/rest_lro_helpers.h" #include "google/cloud/internal/rest_retry_loop.h" #include "google/cloud/rest_options.h" #include @@ -106,6 +107,79 @@ RegionTargetHttpProxiesRestConnectionImpl::DeleteTargetHttpProxy( }); } +StatusOr +RegionTargetHttpProxiesRestConnectionImpl::DeleteTargetHttpProxy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_target_http_proxies::v1:: + DeleteTargetHttpProxyRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteTargetHttpProxy(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::region_target_http_proxies::v1:: + DeleteTargetHttpProxyRequest const& request) { + return stub_->DeleteTargetHttpProxy(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +RegionTargetHttpProxiesRestConnectionImpl::DeleteTargetHttpProxy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::region_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }); +} + StatusOr RegionTargetHttpProxiesRestConnectionImpl::GetTargetHttpProxy( google::cloud::cpp::compute::region_target_http_proxies::v1:: @@ -182,6 +256,79 @@ RegionTargetHttpProxiesRestConnectionImpl::InsertTargetHttpProxy( }); } +StatusOr +RegionTargetHttpProxiesRestConnectionImpl::InsertTargetHttpProxy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_target_http_proxies::v1:: + InsertTargetHttpProxyRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->InsertTargetHttpProxy(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::region_target_http_proxies::v1:: + InsertTargetHttpProxyRequest const& request) { + return stub_->InsertTargetHttpProxy(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +RegionTargetHttpProxiesRestConnectionImpl::InsertTargetHttpProxy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::region_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }); +} + StreamRange RegionTargetHttpProxiesRestConnectionImpl::ListRegionTargetHttpProxies( google::cloud::cpp::compute::region_target_http_proxies::v1:: @@ -282,6 +429,79 @@ RegionTargetHttpProxiesRestConnectionImpl::SetUrlMap( }); } +StatusOr +RegionTargetHttpProxiesRestConnectionImpl::SetUrlMap( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_target_http_proxies::v1:: + SetUrlMapRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->SetUrlMap(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::region_target_http_proxies::v1:: + SetUrlMapRequest const& request) { + return stub_->SetUrlMap(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +RegionTargetHttpProxiesRestConnectionImpl::SetUrlMap( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::region_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace compute_region_target_http_proxies_v1_internal } // namespace cloud diff --git a/google/cloud/compute/region_target_http_proxies/v1/internal/region_target_http_proxies_rest_connection_impl.h b/google/cloud/compute/region_target_http_proxies/v1/internal/region_target_http_proxies_rest_connection_impl.h index fdeb1bcc6059a..c1faf4256ca3d 100644 --- a/google/cloud/compute/region_target_http_proxies/v1/internal/region_target_http_proxies_rest_connection_impl.h +++ b/google/cloud/compute/region_target_http_proxies/v1/internal/region_target_http_proxies_rest_connection_impl.h @@ -59,6 +59,16 @@ class RegionTargetHttpProxiesRestConnectionImpl google::cloud::cpp::compute::region_target_http_proxies::v1:: DeleteTargetHttpProxyRequest const& request) override; + StatusOr DeleteTargetHttpProxy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_target_http_proxies::v1:: + DeleteTargetHttpProxyRequest const& request) override; + + future> + DeleteTargetHttpProxy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StatusOr GetTargetHttpProxy( google::cloud::cpp::compute::region_target_http_proxies::v1:: GetTargetHttpProxyRequest const& request) override; @@ -68,6 +78,16 @@ class RegionTargetHttpProxiesRestConnectionImpl google::cloud::cpp::compute::region_target_http_proxies::v1:: InsertTargetHttpProxyRequest const& request) override; + StatusOr InsertTargetHttpProxy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_target_http_proxies::v1:: + InsertTargetHttpProxyRequest const& request) override; + + future> + InsertTargetHttpProxy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StreamRange ListRegionTargetHttpProxies( google::cloud::cpp::compute::region_target_http_proxies::v1:: @@ -77,6 +97,15 @@ class RegionTargetHttpProxiesRestConnectionImpl google::cloud::cpp::compute::region_target_http_proxies::v1:: SetUrlMapRequest const& request) override; + StatusOr SetUrlMap( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_target_http_proxies::v1:: + SetUrlMapRequest const& request) override; + + future> SetUrlMap( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + private: static std::unique_ptr< compute_region_target_http_proxies_v1::RegionTargetHttpProxiesRetryPolicy> diff --git a/google/cloud/compute/region_target_http_proxies/v1/internal/region_target_http_proxies_tracing_connection.cc b/google/cloud/compute/region_target_http_proxies/v1/internal/region_target_http_proxies_tracing_connection.cc index 744e8e0cc7206..932262aae7a39 100644 --- a/google/cloud/compute/region_target_http_proxies/v1/internal/region_target_http_proxies_tracing_connection.cc +++ b/google/cloud/compute/region_target_http_proxies/v1/internal/region_target_http_proxies_tracing_connection.cc @@ -49,6 +49,32 @@ RegionTargetHttpProxiesTracingConnection::DeleteTargetHttpProxy( child_->DeleteTargetHttpProxy(request)); } +StatusOr +RegionTargetHttpProxiesTracingConnection::DeleteTargetHttpProxy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_target_http_proxies::v1:: + DeleteTargetHttpProxyRequest const& request) { + auto span = internal::MakeSpan( + "compute_region_target_http_proxies_v1::" + "RegionTargetHttpProxiesConnection::DeleteTargetHttpProxy"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->DeleteTargetHttpProxy(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +RegionTargetHttpProxiesTracingConnection::DeleteTargetHttpProxy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_region_target_http_proxies_v1::" + "RegionTargetHttpProxiesConnection::DeleteTargetHttpProxy"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->DeleteTargetHttpProxy( + ExperimentalTag{}, operation)); +} + StatusOr RegionTargetHttpProxiesTracingConnection::GetTargetHttpProxy( google::cloud::cpp::compute::region_target_http_proxies::v1:: @@ -72,6 +98,32 @@ RegionTargetHttpProxiesTracingConnection::InsertTargetHttpProxy( child_->InsertTargetHttpProxy(request)); } +StatusOr +RegionTargetHttpProxiesTracingConnection::InsertTargetHttpProxy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_target_http_proxies::v1:: + InsertTargetHttpProxyRequest const& request) { + auto span = internal::MakeSpan( + "compute_region_target_http_proxies_v1::" + "RegionTargetHttpProxiesConnection::InsertTargetHttpProxy"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->InsertTargetHttpProxy(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +RegionTargetHttpProxiesTracingConnection::InsertTargetHttpProxy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_region_target_http_proxies_v1::" + "RegionTargetHttpProxiesConnection::InsertTargetHttpProxy"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->InsertTargetHttpProxy( + ExperimentalTag{}, operation)); +} + StreamRange RegionTargetHttpProxiesTracingConnection::ListRegionTargetHttpProxies( google::cloud::cpp::compute::region_target_http_proxies::v1:: @@ -97,6 +149,31 @@ RegionTargetHttpProxiesTracingConnection::SetUrlMap( return internal::EndSpan(std::move(span), child_->SetUrlMap(request)); } +StatusOr +RegionTargetHttpProxiesTracingConnection::SetUrlMap( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_target_http_proxies::v1:: + SetUrlMapRequest const& request) { + auto span = internal::MakeSpan( + "compute_region_target_http_proxies_v1::" + "RegionTargetHttpProxiesConnection::SetUrlMap"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->SetUrlMap(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +RegionTargetHttpProxiesTracingConnection::SetUrlMap( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_region_target_http_proxies_v1::" + "RegionTargetHttpProxiesConnection::SetUrlMap"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->SetUrlMap(ExperimentalTag{}, operation)); +} + #endif // GOOGLE_CLOUD_CPP_HAVE_OPENTELEMETRY std::shared_ptr< diff --git a/google/cloud/compute/region_target_http_proxies/v1/internal/region_target_http_proxies_tracing_connection.h b/google/cloud/compute/region_target_http_proxies/v1/internal/region_target_http_proxies_tracing_connection.h index 3b31c771fd50d..f88f2c74b26ab 100644 --- a/google/cloud/compute/region_target_http_proxies/v1/internal/region_target_http_proxies_tracing_connection.h +++ b/google/cloud/compute/region_target_http_proxies/v1/internal/region_target_http_proxies_tracing_connection.h @@ -49,6 +49,16 @@ class RegionTargetHttpProxiesTracingConnection google::cloud::cpp::compute::region_target_http_proxies::v1:: DeleteTargetHttpProxyRequest const& request) override; + StatusOr DeleteTargetHttpProxy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_target_http_proxies::v1:: + DeleteTargetHttpProxyRequest const& request) override; + + future> + DeleteTargetHttpProxy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StatusOr GetTargetHttpProxy( google::cloud::cpp::compute::region_target_http_proxies::v1:: GetTargetHttpProxyRequest const& request) override; @@ -58,6 +68,16 @@ class RegionTargetHttpProxiesTracingConnection google::cloud::cpp::compute::region_target_http_proxies::v1:: InsertTargetHttpProxyRequest const& request) override; + StatusOr InsertTargetHttpProxy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_target_http_proxies::v1:: + InsertTargetHttpProxyRequest const& request) override; + + future> + InsertTargetHttpProxy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StreamRange ListRegionTargetHttpProxies( google::cloud::cpp::compute::region_target_http_proxies::v1:: @@ -67,6 +87,15 @@ class RegionTargetHttpProxiesTracingConnection google::cloud::cpp::compute::region_target_http_proxies::v1:: SetUrlMapRequest const& request) override; + StatusOr SetUrlMap( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_target_http_proxies::v1:: + SetUrlMapRequest const& request) override; + + future> SetUrlMap( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + private: std::shared_ptr< compute_region_target_http_proxies_v1::RegionTargetHttpProxiesConnection> diff --git a/google/cloud/compute/region_target_http_proxies/v1/mocks/mock_region_target_http_proxies_connection.h b/google/cloud/compute/region_target_http_proxies/v1/mocks/mock_region_target_http_proxies_connection.h index b2ae86d0efecb..0bfb0dbc2c3a0 100644 --- a/google/cloud/compute/region_target_http_proxies/v1/mocks/mock_region_target_http_proxies_connection.h +++ b/google/cloud/compute/region_target_http_proxies/v1/mocks/mock_region_target_http_proxies_connection.h @@ -55,6 +55,19 @@ class MockRegionTargetHttpProxiesConnection DeleteTargetHttpProxyRequest const& request), (override)); + MOCK_METHOD(StatusOr, + DeleteTargetHttpProxy, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_target_http_proxies::v1:: + DeleteTargetHttpProxyRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteTargetHttpProxy, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD(StatusOr, GetTargetHttpProxy, (google::cloud::cpp::compute::region_target_http_proxies::v1:: @@ -67,6 +80,19 @@ class MockRegionTargetHttpProxiesConnection InsertTargetHttpProxyRequest const& request), (override)); + MOCK_METHOD(StatusOr, + InsertTargetHttpProxy, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_target_http_proxies::v1:: + InsertTargetHttpProxyRequest const& request), + (override)); + + MOCK_METHOD(future>, + InsertTargetHttpProxy, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD((StreamRange), ListRegionTargetHttpProxies, (google::cloud::cpp::compute::region_target_http_proxies::v1:: @@ -78,6 +104,18 @@ class MockRegionTargetHttpProxiesConnection (google::cloud::cpp::compute::region_target_http_proxies::v1:: SetUrlMapRequest const& request), (override)); + + MOCK_METHOD(StatusOr, SetUrlMap, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_target_http_proxies::v1:: + SetUrlMapRequest const& request), + (override)); + + MOCK_METHOD(future>, + SetUrlMap, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); }; GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END diff --git a/google/cloud/compute/region_target_http_proxies/v1/region_target_http_proxies_connection.cc b/google/cloud/compute/region_target_http_proxies/v1/region_target_http_proxies_connection.cc index 90d658748d068..06314a2638a5a 100644 --- a/google/cloud/compute/region_target_http_proxies/v1/region_target_http_proxies_connection.cc +++ b/google/cloud/compute/region_target_http_proxies/v1/region_target_http_proxies_connection.cc @@ -47,6 +47,23 @@ RegionTargetHttpProxiesConnection::DeleteTargetHttpProxy( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +RegionTargetHttpProxiesConnection::DeleteTargetHttpProxy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_target_http_proxies::v1:: + DeleteTargetHttpProxyRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +RegionTargetHttpProxiesConnection::DeleteTargetHttpProxy( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr RegionTargetHttpProxiesConnection::GetTargetHttpProxy( google::cloud::cpp::compute::region_target_http_proxies::v1:: @@ -63,6 +80,23 @@ RegionTargetHttpProxiesConnection::InsertTargetHttpProxy( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +RegionTargetHttpProxiesConnection::InsertTargetHttpProxy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_target_http_proxies::v1:: + InsertTargetHttpProxyRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +RegionTargetHttpProxiesConnection::InsertTargetHttpProxy( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StreamRange RegionTargetHttpProxiesConnection::ListRegionTargetHttpProxies( google::cloud::cpp::compute::region_target_http_proxies::v1:: @@ -80,6 +114,23 @@ RegionTargetHttpProxiesConnection::SetUrlMap( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +RegionTargetHttpProxiesConnection::SetUrlMap( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_target_http_proxies::v1:: + SetUrlMapRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +RegionTargetHttpProxiesConnection::SetUrlMap( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace compute_region_target_http_proxies_v1 } // namespace cloud diff --git a/google/cloud/compute/region_target_http_proxies/v1/region_target_http_proxies_connection.h b/google/cloud/compute/region_target_http_proxies/v1/region_target_http_proxies_connection.h index 4c4df95f7fb93..b8742c7dd18d3 100644 --- a/google/cloud/compute/region_target_http_proxies/v1/region_target_http_proxies_connection.h +++ b/google/cloud/compute/region_target_http_proxies/v1/region_target_http_proxies_connection.h @@ -23,8 +23,10 @@ #include "google/cloud/compute/region_target_http_proxies/v1/internal/region_target_http_proxies_retry_traits.h" #include "google/cloud/compute/region_target_http_proxies/v1/region_target_http_proxies_connection_idempotency_policy.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/internal/retry_policy_impl.h" +#include "google/cloud/no_await_tag.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" #include "google/cloud/status_or.h" @@ -200,6 +202,17 @@ class RegionTargetHttpProxiesConnection { google::cloud::cpp::compute::region_target_http_proxies::v1:: DeleteTargetHttpProxyRequest const& request); + virtual StatusOr + DeleteTargetHttpProxy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_target_http_proxies::v1:: + DeleteTargetHttpProxyRequest const& request); + + virtual future> + DeleteTargetHttpProxy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual StatusOr GetTargetHttpProxy(google::cloud::cpp::compute::region_target_http_proxies:: v1::GetTargetHttpProxyRequest const& request); @@ -209,6 +222,17 @@ class RegionTargetHttpProxiesConnection { google::cloud::cpp::compute::region_target_http_proxies::v1:: InsertTargetHttpProxyRequest const& request); + virtual StatusOr + InsertTargetHttpProxy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_target_http_proxies::v1:: + InsertTargetHttpProxyRequest const& request); + + virtual future> + InsertTargetHttpProxy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual StreamRange ListRegionTargetHttpProxies( google::cloud::cpp::compute::region_target_http_proxies::v1:: @@ -217,6 +241,15 @@ class RegionTargetHttpProxiesConnection { virtual future> SetUrlMap(google::cloud::cpp::compute::region_target_http_proxies::v1:: SetUrlMapRequest const& request); + + virtual StatusOr SetUrlMap( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_target_http_proxies::v1:: + SetUrlMapRequest const& request); + + virtual future> + SetUrlMap(ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); }; GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END diff --git a/google/cloud/compute/region_target_https_proxies/v1/internal/region_target_https_proxies_rest_connection_impl.cc b/google/cloud/compute/region_target_https_proxies/v1/internal/region_target_https_proxies_rest_connection_impl.cc index 68f64736dddc4..8dec31e06aebe 100644 --- a/google/cloud/compute/region_target_https_proxies/v1/internal/region_target_https_proxies_rest_connection_impl.cc +++ b/google/cloud/compute/region_target_https_proxies/v1/internal/region_target_https_proxies_rest_connection_impl.cc @@ -24,6 +24,7 @@ #include "google/cloud/internal/async_rest_long_running_operation_custom.h" #include "google/cloud/internal/extract_long_running_result.h" #include "google/cloud/internal/pagination_range.h" +#include "google/cloud/internal/rest_lro_helpers.h" #include "google/cloud/internal/rest_retry_loop.h" #include "google/cloud/rest_options.h" #include @@ -106,6 +107,79 @@ RegionTargetHttpsProxiesRestConnectionImpl::DeleteTargetHttpsProxy( }); } +StatusOr +RegionTargetHttpsProxiesRestConnectionImpl::DeleteTargetHttpsProxy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_target_https_proxies::v1:: + DeleteTargetHttpsProxyRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteTargetHttpsProxy(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::region_target_https_proxies::v1:: + DeleteTargetHttpsProxyRequest const& request) { + return stub_->DeleteTargetHttpsProxy(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +RegionTargetHttpsProxiesRestConnectionImpl::DeleteTargetHttpsProxy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::region_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }); +} + StatusOr RegionTargetHttpsProxiesRestConnectionImpl::GetTargetHttpsProxy( google::cloud::cpp::compute::region_target_https_proxies::v1:: @@ -182,6 +256,79 @@ RegionTargetHttpsProxiesRestConnectionImpl::InsertTargetHttpsProxy( }); } +StatusOr +RegionTargetHttpsProxiesRestConnectionImpl::InsertTargetHttpsProxy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_target_https_proxies::v1:: + InsertTargetHttpsProxyRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->InsertTargetHttpsProxy(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::region_target_https_proxies::v1:: + InsertTargetHttpsProxyRequest const& request) { + return stub_->InsertTargetHttpsProxy(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +RegionTargetHttpsProxiesRestConnectionImpl::InsertTargetHttpsProxy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::region_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }); +} + StreamRange RegionTargetHttpsProxiesRestConnectionImpl::ListRegionTargetHttpsProxies( google::cloud::cpp::compute::region_target_https_proxies::v1:: @@ -282,6 +429,79 @@ RegionTargetHttpsProxiesRestConnectionImpl::PatchTargetHttpsProxy( }); } +StatusOr +RegionTargetHttpsProxiesRestConnectionImpl::PatchTargetHttpsProxy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_target_https_proxies::v1:: + PatchTargetHttpsProxyRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->PatchTargetHttpsProxy(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::region_target_https_proxies::v1:: + PatchTargetHttpsProxyRequest const& request) { + return stub_->PatchTargetHttpsProxy(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +RegionTargetHttpsProxiesRestConnectionImpl::PatchTargetHttpsProxy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::region_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }); +} + future> RegionTargetHttpsProxiesRestConnectionImpl::SetSslCertificates( google::cloud::cpp::compute::region_target_https_proxies::v1:: @@ -342,6 +562,79 @@ RegionTargetHttpsProxiesRestConnectionImpl::SetSslCertificates( }); } +StatusOr +RegionTargetHttpsProxiesRestConnectionImpl::SetSslCertificates( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_target_https_proxies::v1:: + SetSslCertificatesRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->SetSslCertificates(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::region_target_https_proxies::v1:: + SetSslCertificatesRequest const& request) { + return stub_->SetSslCertificates(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +RegionTargetHttpsProxiesRestConnectionImpl::SetSslCertificates( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::region_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }); +} + future> RegionTargetHttpsProxiesRestConnectionImpl::SetUrlMap( google::cloud::cpp::compute::region_target_https_proxies::v1:: @@ -402,6 +695,79 @@ RegionTargetHttpsProxiesRestConnectionImpl::SetUrlMap( }); } +StatusOr +RegionTargetHttpsProxiesRestConnectionImpl::SetUrlMap( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_target_https_proxies::v1:: + SetUrlMapRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->SetUrlMap(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::region_target_https_proxies::v1:: + SetUrlMapRequest const& request) { + return stub_->SetUrlMap(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +RegionTargetHttpsProxiesRestConnectionImpl::SetUrlMap( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::region_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace compute_region_target_https_proxies_v1_internal } // namespace cloud diff --git a/google/cloud/compute/region_target_https_proxies/v1/internal/region_target_https_proxies_rest_connection_impl.h b/google/cloud/compute/region_target_https_proxies/v1/internal/region_target_https_proxies_rest_connection_impl.h index 87bccf9511923..1ac964c06775c 100644 --- a/google/cloud/compute/region_target_https_proxies/v1/internal/region_target_https_proxies_rest_connection_impl.h +++ b/google/cloud/compute/region_target_https_proxies/v1/internal/region_target_https_proxies_rest_connection_impl.h @@ -59,6 +59,16 @@ class RegionTargetHttpsProxiesRestConnectionImpl google::cloud::cpp::compute::region_target_https_proxies::v1:: DeleteTargetHttpsProxyRequest const& request) override; + StatusOr DeleteTargetHttpsProxy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_target_https_proxies::v1:: + DeleteTargetHttpsProxyRequest const& request) override; + + future> + DeleteTargetHttpsProxy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StatusOr GetTargetHttpsProxy( google::cloud::cpp::compute::region_target_https_proxies::v1:: @@ -69,6 +79,16 @@ class RegionTargetHttpsProxiesRestConnectionImpl google::cloud::cpp::compute::region_target_https_proxies::v1:: InsertTargetHttpsProxyRequest const& request) override; + StatusOr InsertTargetHttpsProxy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_target_https_proxies::v1:: + InsertTargetHttpsProxyRequest const& request) override; + + future> + InsertTargetHttpsProxy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StreamRange ListRegionTargetHttpsProxies( google::cloud::cpp::compute::region_target_https_proxies::v1:: @@ -79,14 +99,43 @@ class RegionTargetHttpsProxiesRestConnectionImpl google::cloud::cpp::compute::region_target_https_proxies::v1:: PatchTargetHttpsProxyRequest const& request) override; + StatusOr PatchTargetHttpsProxy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_target_https_proxies::v1:: + PatchTargetHttpsProxyRequest const& request) override; + + future> + PatchTargetHttpsProxy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> SetSslCertificates(google::cloud::cpp::compute::region_target_https_proxies:: v1::SetSslCertificatesRequest const& request) override; + StatusOr SetSslCertificates( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_target_https_proxies::v1:: + SetSslCertificatesRequest const& request) override; + + future> + SetSslCertificates( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> SetUrlMap( google::cloud::cpp::compute::region_target_https_proxies::v1:: SetUrlMapRequest const& request) override; + StatusOr SetUrlMap( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_target_https_proxies::v1:: + SetUrlMapRequest const& request) override; + + future> SetUrlMap( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + private: static std::unique_ptr diff --git a/google/cloud/compute/region_target_https_proxies/v1/internal/region_target_https_proxies_tracing_connection.cc b/google/cloud/compute/region_target_https_proxies/v1/internal/region_target_https_proxies_tracing_connection.cc index c9767f7278be0..0170938c9b069 100644 --- a/google/cloud/compute/region_target_https_proxies/v1/internal/region_target_https_proxies_tracing_connection.cc +++ b/google/cloud/compute/region_target_https_proxies/v1/internal/region_target_https_proxies_tracing_connection.cc @@ -49,6 +49,32 @@ RegionTargetHttpsProxiesTracingConnection::DeleteTargetHttpsProxy( child_->DeleteTargetHttpsProxy(request)); } +StatusOr +RegionTargetHttpsProxiesTracingConnection::DeleteTargetHttpsProxy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_target_https_proxies::v1:: + DeleteTargetHttpsProxyRequest const& request) { + auto span = internal::MakeSpan( + "compute_region_target_https_proxies_v1::" + "RegionTargetHttpsProxiesConnection::DeleteTargetHttpsProxy"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->DeleteTargetHttpsProxy(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +RegionTargetHttpsProxiesTracingConnection::DeleteTargetHttpsProxy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_region_target_https_proxies_v1::" + "RegionTargetHttpsProxiesConnection::DeleteTargetHttpsProxy"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->DeleteTargetHttpsProxy( + ExperimentalTag{}, operation)); +} + StatusOr RegionTargetHttpsProxiesTracingConnection::GetTargetHttpsProxy( google::cloud::cpp::compute::region_target_https_proxies::v1:: @@ -72,6 +98,32 @@ RegionTargetHttpsProxiesTracingConnection::InsertTargetHttpsProxy( child_->InsertTargetHttpsProxy(request)); } +StatusOr +RegionTargetHttpsProxiesTracingConnection::InsertTargetHttpsProxy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_target_https_proxies::v1:: + InsertTargetHttpsProxyRequest const& request) { + auto span = internal::MakeSpan( + "compute_region_target_https_proxies_v1::" + "RegionTargetHttpsProxiesConnection::InsertTargetHttpsProxy"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->InsertTargetHttpsProxy(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +RegionTargetHttpsProxiesTracingConnection::InsertTargetHttpsProxy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_region_target_https_proxies_v1::" + "RegionTargetHttpsProxiesConnection::InsertTargetHttpsProxy"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->InsertTargetHttpsProxy( + ExperimentalTag{}, operation)); +} + StreamRange RegionTargetHttpsProxiesTracingConnection::ListRegionTargetHttpsProxies( google::cloud::cpp::compute::region_target_https_proxies::v1:: @@ -98,6 +150,32 @@ RegionTargetHttpsProxiesTracingConnection::PatchTargetHttpsProxy( child_->PatchTargetHttpsProxy(request)); } +StatusOr +RegionTargetHttpsProxiesTracingConnection::PatchTargetHttpsProxy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_target_https_proxies::v1:: + PatchTargetHttpsProxyRequest const& request) { + auto span = internal::MakeSpan( + "compute_region_target_https_proxies_v1::" + "RegionTargetHttpsProxiesConnection::PatchTargetHttpsProxy"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->PatchTargetHttpsProxy(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +RegionTargetHttpsProxiesTracingConnection::PatchTargetHttpsProxy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_region_target_https_proxies_v1::" + "RegionTargetHttpsProxiesConnection::PatchTargetHttpsProxy"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->PatchTargetHttpsProxy( + ExperimentalTag{}, operation)); +} + future> RegionTargetHttpsProxiesTracingConnection::SetSslCertificates( google::cloud::cpp::compute::region_target_https_proxies::v1:: @@ -110,6 +188,32 @@ RegionTargetHttpsProxiesTracingConnection::SetSslCertificates( child_->SetSslCertificates(request)); } +StatusOr +RegionTargetHttpsProxiesTracingConnection::SetSslCertificates( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_target_https_proxies::v1:: + SetSslCertificatesRequest const& request) { + auto span = internal::MakeSpan( + "compute_region_target_https_proxies_v1::" + "RegionTargetHttpsProxiesConnection::SetSslCertificates"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->SetSslCertificates(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +RegionTargetHttpsProxiesTracingConnection::SetSslCertificates( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_region_target_https_proxies_v1::" + "RegionTargetHttpsProxiesConnection::SetSslCertificates"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->SetSslCertificates( + ExperimentalTag{}, operation)); +} + future> RegionTargetHttpsProxiesTracingConnection::SetUrlMap( google::cloud::cpp::compute::region_target_https_proxies::v1:: @@ -121,6 +225,31 @@ RegionTargetHttpsProxiesTracingConnection::SetUrlMap( return internal::EndSpan(std::move(span), child_->SetUrlMap(request)); } +StatusOr +RegionTargetHttpsProxiesTracingConnection::SetUrlMap( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_target_https_proxies::v1:: + SetUrlMapRequest const& request) { + auto span = internal::MakeSpan( + "compute_region_target_https_proxies_v1::" + "RegionTargetHttpsProxiesConnection::SetUrlMap"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->SetUrlMap(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +RegionTargetHttpsProxiesTracingConnection::SetUrlMap( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_region_target_https_proxies_v1::" + "RegionTargetHttpsProxiesConnection::SetUrlMap"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->SetUrlMap(ExperimentalTag{}, operation)); +} + #endif // GOOGLE_CLOUD_CPP_HAVE_OPENTELEMETRY std::shared_ptr< diff --git a/google/cloud/compute/region_target_https_proxies/v1/internal/region_target_https_proxies_tracing_connection.h b/google/cloud/compute/region_target_https_proxies/v1/internal/region_target_https_proxies_tracing_connection.h index d1ce5f51feed0..0f6c28928aca8 100644 --- a/google/cloud/compute/region_target_https_proxies/v1/internal/region_target_https_proxies_tracing_connection.h +++ b/google/cloud/compute/region_target_https_proxies/v1/internal/region_target_https_proxies_tracing_connection.h @@ -49,6 +49,16 @@ class RegionTargetHttpsProxiesTracingConnection google::cloud::cpp::compute::region_target_https_proxies::v1:: DeleteTargetHttpsProxyRequest const& request) override; + StatusOr DeleteTargetHttpsProxy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_target_https_proxies::v1:: + DeleteTargetHttpsProxyRequest const& request) override; + + future> + DeleteTargetHttpsProxy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StatusOr GetTargetHttpsProxy( google::cloud::cpp::compute::region_target_https_proxies::v1:: @@ -59,6 +69,16 @@ class RegionTargetHttpsProxiesTracingConnection google::cloud::cpp::compute::region_target_https_proxies::v1:: InsertTargetHttpsProxyRequest const& request) override; + StatusOr InsertTargetHttpsProxy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_target_https_proxies::v1:: + InsertTargetHttpsProxyRequest const& request) override; + + future> + InsertTargetHttpsProxy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StreamRange ListRegionTargetHttpsProxies( google::cloud::cpp::compute::region_target_https_proxies::v1:: @@ -69,14 +89,43 @@ class RegionTargetHttpsProxiesTracingConnection google::cloud::cpp::compute::region_target_https_proxies::v1:: PatchTargetHttpsProxyRequest const& request) override; + StatusOr PatchTargetHttpsProxy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_target_https_proxies::v1:: + PatchTargetHttpsProxyRequest const& request) override; + + future> + PatchTargetHttpsProxy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> SetSslCertificates(google::cloud::cpp::compute::region_target_https_proxies:: v1::SetSslCertificatesRequest const& request) override; + StatusOr SetSslCertificates( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_target_https_proxies::v1:: + SetSslCertificatesRequest const& request) override; + + future> + SetSslCertificates( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> SetUrlMap( google::cloud::cpp::compute::region_target_https_proxies::v1:: SetUrlMapRequest const& request) override; + StatusOr SetUrlMap( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_target_https_proxies::v1:: + SetUrlMapRequest const& request) override; + + future> SetUrlMap( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + private: std::shared_ptr diff --git a/google/cloud/compute/region_target_https_proxies/v1/mocks/mock_region_target_https_proxies_connection.h b/google/cloud/compute/region_target_https_proxies/v1/mocks/mock_region_target_https_proxies_connection.h index 1b5a065837c0f..3898ccc662a6b 100644 --- a/google/cloud/compute/region_target_https_proxies/v1/mocks/mock_region_target_https_proxies_connection.h +++ b/google/cloud/compute/region_target_https_proxies/v1/mocks/mock_region_target_https_proxies_connection.h @@ -55,6 +55,19 @@ class MockRegionTargetHttpsProxiesConnection DeleteTargetHttpsProxyRequest const& request), (override)); + MOCK_METHOD(StatusOr, + DeleteTargetHttpsProxy, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_target_https_proxies::v1:: + DeleteTargetHttpsProxyRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteTargetHttpsProxy, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD(StatusOr, GetTargetHttpsProxy, (google::cloud::cpp::compute::region_target_https_proxies::v1:: @@ -67,6 +80,19 @@ class MockRegionTargetHttpsProxiesConnection InsertTargetHttpsProxyRequest const& request), (override)); + MOCK_METHOD(StatusOr, + InsertTargetHttpsProxy, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_target_https_proxies::v1:: + InsertTargetHttpsProxyRequest const& request), + (override)); + + MOCK_METHOD(future>, + InsertTargetHttpsProxy, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD((StreamRange), ListRegionTargetHttpsProxies, (google::cloud::cpp::compute::region_target_https_proxies::v1:: @@ -79,17 +105,55 @@ class MockRegionTargetHttpsProxiesConnection PatchTargetHttpsProxyRequest const& request), (override)); + MOCK_METHOD(StatusOr, + PatchTargetHttpsProxy, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_target_https_proxies::v1:: + PatchTargetHttpsProxyRequest const& request), + (override)); + + MOCK_METHOD(future>, + PatchTargetHttpsProxy, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD(future>, SetSslCertificates, (google::cloud::cpp::compute::region_target_https_proxies::v1:: SetSslCertificatesRequest const& request), (override)); + MOCK_METHOD(StatusOr, + SetSslCertificates, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_target_https_proxies::v1:: + SetSslCertificatesRequest const& request), + (override)); + + MOCK_METHOD(future>, + SetSslCertificates, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD(future>, SetUrlMap, (google::cloud::cpp::compute::region_target_https_proxies::v1:: SetUrlMapRequest const& request), (override)); + + MOCK_METHOD(StatusOr, SetUrlMap, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_target_https_proxies::v1:: + SetUrlMapRequest const& request), + (override)); + + MOCK_METHOD(future>, + SetUrlMap, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); }; GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END diff --git a/google/cloud/compute/region_target_https_proxies/v1/region_target_https_proxies_connection.cc b/google/cloud/compute/region_target_https_proxies/v1/region_target_https_proxies_connection.cc index 64fd40bc537f5..6863d96e93160 100644 --- a/google/cloud/compute/region_target_https_proxies/v1/region_target_https_proxies_connection.cc +++ b/google/cloud/compute/region_target_https_proxies/v1/region_target_https_proxies_connection.cc @@ -47,6 +47,23 @@ RegionTargetHttpsProxiesConnection::DeleteTargetHttpsProxy( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +RegionTargetHttpsProxiesConnection::DeleteTargetHttpsProxy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_target_https_proxies::v1:: + DeleteTargetHttpsProxyRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +RegionTargetHttpsProxiesConnection::DeleteTargetHttpsProxy( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr RegionTargetHttpsProxiesConnection::GetTargetHttpsProxy( google::cloud::cpp::compute::region_target_https_proxies::v1:: @@ -63,6 +80,23 @@ RegionTargetHttpsProxiesConnection::InsertTargetHttpsProxy( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +RegionTargetHttpsProxiesConnection::InsertTargetHttpsProxy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_target_https_proxies::v1:: + InsertTargetHttpsProxyRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +RegionTargetHttpsProxiesConnection::InsertTargetHttpsProxy( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StreamRange RegionTargetHttpsProxiesConnection::ListRegionTargetHttpsProxies( google::cloud::cpp::compute::region_target_https_proxies::v1:: @@ -80,10 +114,44 @@ RegionTargetHttpsProxiesConnection::PatchTargetHttpsProxy( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +RegionTargetHttpsProxiesConnection::PatchTargetHttpsProxy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_target_https_proxies::v1:: + PatchTargetHttpsProxyRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> +RegionTargetHttpsProxiesConnection::PatchTargetHttpsProxy( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +RegionTargetHttpsProxiesConnection::SetSslCertificates( + google::cloud::cpp::compute::region_target_https_proxies::v1:: + SetSslCertificatesRequest const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +StatusOr RegionTargetHttpsProxiesConnection::SetSslCertificates( + ExperimentalTag, NoAwaitTag, google::cloud::cpp::compute::region_target_https_proxies::v1:: SetSslCertificatesRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +RegionTargetHttpsProxiesConnection::SetSslCertificates( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { return google::cloud::make_ready_future< StatusOr>( Status(StatusCode::kUnimplemented, "not implemented")); @@ -98,6 +166,23 @@ RegionTargetHttpsProxiesConnection::SetUrlMap( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +RegionTargetHttpsProxiesConnection::SetUrlMap( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_target_https_proxies::v1:: + SetUrlMapRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +RegionTargetHttpsProxiesConnection::SetUrlMap( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace compute_region_target_https_proxies_v1 } // namespace cloud diff --git a/google/cloud/compute/region_target_https_proxies/v1/region_target_https_proxies_connection.h b/google/cloud/compute/region_target_https_proxies/v1/region_target_https_proxies_connection.h index 817b8081c77c6..aa06562acc74c 100644 --- a/google/cloud/compute/region_target_https_proxies/v1/region_target_https_proxies_connection.h +++ b/google/cloud/compute/region_target_https_proxies/v1/region_target_https_proxies_connection.h @@ -23,8 +23,10 @@ #include "google/cloud/compute/region_target_https_proxies/v1/internal/region_target_https_proxies_retry_traits.h" #include "google/cloud/compute/region_target_https_proxies/v1/region_target_https_proxies_connection_idempotency_policy.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/internal/retry_policy_impl.h" +#include "google/cloud/no_await_tag.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" #include "google/cloud/status_or.h" @@ -206,6 +208,17 @@ class RegionTargetHttpsProxiesConnection { google::cloud::cpp::compute::region_target_https_proxies::v1:: DeleteTargetHttpsProxyRequest const& request); + virtual StatusOr + DeleteTargetHttpsProxy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_target_https_proxies::v1:: + DeleteTargetHttpsProxyRequest const& request); + + virtual future> + DeleteTargetHttpsProxy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual StatusOr GetTargetHttpsProxy(google::cloud::cpp::compute::region_target_https_proxies:: v1::GetTargetHttpsProxyRequest const& request); @@ -215,6 +228,17 @@ class RegionTargetHttpsProxiesConnection { google::cloud::cpp::compute::region_target_https_proxies::v1:: InsertTargetHttpsProxyRequest const& request); + virtual StatusOr + InsertTargetHttpsProxy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_target_https_proxies::v1:: + InsertTargetHttpsProxyRequest const& request); + + virtual future> + InsertTargetHttpsProxy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual StreamRange ListRegionTargetHttpsProxies( google::cloud::cpp::compute::region_target_https_proxies::v1:: @@ -225,13 +249,43 @@ class RegionTargetHttpsProxiesConnection { google::cloud::cpp::compute::region_target_https_proxies::v1:: PatchTargetHttpsProxyRequest const& request); + virtual StatusOr + PatchTargetHttpsProxy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_target_https_proxies::v1:: + PatchTargetHttpsProxyRequest const& request); + + virtual future> + PatchTargetHttpsProxy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual future> SetSslCertificates(google::cloud::cpp::compute::region_target_https_proxies:: v1::SetSslCertificatesRequest const& request); + virtual StatusOr + SetSslCertificates(ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_target_https_proxies:: + v1::SetSslCertificatesRequest const& request); + + virtual future> + SetSslCertificates( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual future> SetUrlMap(google::cloud::cpp::compute::region_target_https_proxies::v1:: SetUrlMapRequest const& request); + + virtual StatusOr SetUrlMap( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_target_https_proxies::v1:: + SetUrlMapRequest const& request); + + virtual future> + SetUrlMap(ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); }; GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END diff --git a/google/cloud/compute/region_target_tcp_proxies/v1/internal/region_target_tcp_proxies_rest_connection_impl.cc b/google/cloud/compute/region_target_tcp_proxies/v1/internal/region_target_tcp_proxies_rest_connection_impl.cc index 3548d2880061b..1b47ca24df981 100644 --- a/google/cloud/compute/region_target_tcp_proxies/v1/internal/region_target_tcp_proxies_rest_connection_impl.cc +++ b/google/cloud/compute/region_target_tcp_proxies/v1/internal/region_target_tcp_proxies_rest_connection_impl.cc @@ -24,6 +24,7 @@ #include "google/cloud/internal/async_rest_long_running_operation_custom.h" #include "google/cloud/internal/extract_long_running_result.h" #include "google/cloud/internal/pagination_range.h" +#include "google/cloud/internal/rest_lro_helpers.h" #include "google/cloud/internal/rest_retry_loop.h" #include "google/cloud/rest_options.h" #include @@ -106,6 +107,79 @@ RegionTargetTcpProxiesRestConnectionImpl::DeleteTargetTcpProxy( }); } +StatusOr +RegionTargetTcpProxiesRestConnectionImpl::DeleteTargetTcpProxy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_target_tcp_proxies::v1:: + DeleteTargetTcpProxyRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteTargetTcpProxy(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::region_target_tcp_proxies::v1:: + DeleteTargetTcpProxyRequest const& request) { + return stub_->DeleteTargetTcpProxy(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +RegionTargetTcpProxiesRestConnectionImpl::DeleteTargetTcpProxy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::region_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }); +} + StatusOr RegionTargetTcpProxiesRestConnectionImpl::GetTargetTcpProxy( google::cloud::cpp::compute::region_target_tcp_proxies::v1:: @@ -182,6 +256,79 @@ RegionTargetTcpProxiesRestConnectionImpl::InsertTargetTcpProxy( }); } +StatusOr +RegionTargetTcpProxiesRestConnectionImpl::InsertTargetTcpProxy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_target_tcp_proxies::v1:: + InsertTargetTcpProxyRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->InsertTargetTcpProxy(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::region_target_tcp_proxies::v1:: + InsertTargetTcpProxyRequest const& request) { + return stub_->InsertTargetTcpProxy(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +RegionTargetTcpProxiesRestConnectionImpl::InsertTargetTcpProxy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::region_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }); +} + StreamRange RegionTargetTcpProxiesRestConnectionImpl::ListRegionTargetTcpProxies( google::cloud::cpp::compute::region_target_tcp_proxies::v1:: diff --git a/google/cloud/compute/region_target_tcp_proxies/v1/internal/region_target_tcp_proxies_rest_connection_impl.h b/google/cloud/compute/region_target_tcp_proxies/v1/internal/region_target_tcp_proxies_rest_connection_impl.h index 1c0f41636f947..1c4611cb1df98 100644 --- a/google/cloud/compute/region_target_tcp_proxies/v1/internal/region_target_tcp_proxies_rest_connection_impl.h +++ b/google/cloud/compute/region_target_tcp_proxies/v1/internal/region_target_tcp_proxies_rest_connection_impl.h @@ -59,6 +59,16 @@ class RegionTargetTcpProxiesRestConnectionImpl google::cloud::cpp::compute::region_target_tcp_proxies::v1:: DeleteTargetTcpProxyRequest const& request) override; + StatusOr DeleteTargetTcpProxy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_target_tcp_proxies::v1:: + DeleteTargetTcpProxyRequest const& request) override; + + future> + DeleteTargetTcpProxy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StatusOr GetTargetTcpProxy( google::cloud::cpp::compute::region_target_tcp_proxies::v1:: GetTargetTcpProxyRequest const& request) override; @@ -68,6 +78,16 @@ class RegionTargetTcpProxiesRestConnectionImpl google::cloud::cpp::compute::region_target_tcp_proxies::v1:: InsertTargetTcpProxyRequest const& request) override; + StatusOr InsertTargetTcpProxy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_target_tcp_proxies::v1:: + InsertTargetTcpProxyRequest const& request) override; + + future> + InsertTargetTcpProxy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StreamRange ListRegionTargetTcpProxies( google::cloud::cpp::compute::region_target_tcp_proxies::v1:: diff --git a/google/cloud/compute/region_target_tcp_proxies/v1/internal/region_target_tcp_proxies_tracing_connection.cc b/google/cloud/compute/region_target_tcp_proxies/v1/internal/region_target_tcp_proxies_tracing_connection.cc index a8693dcf39018..f0bccd0e42809 100644 --- a/google/cloud/compute/region_target_tcp_proxies/v1/internal/region_target_tcp_proxies_tracing_connection.cc +++ b/google/cloud/compute/region_target_tcp_proxies/v1/internal/region_target_tcp_proxies_tracing_connection.cc @@ -49,6 +49,32 @@ RegionTargetTcpProxiesTracingConnection::DeleteTargetTcpProxy( child_->DeleteTargetTcpProxy(request)); } +StatusOr +RegionTargetTcpProxiesTracingConnection::DeleteTargetTcpProxy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_target_tcp_proxies::v1:: + DeleteTargetTcpProxyRequest const& request) { + auto span = internal::MakeSpan( + "compute_region_target_tcp_proxies_v1::RegionTargetTcpProxiesConnection::" + "DeleteTargetTcpProxy"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->DeleteTargetTcpProxy(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +RegionTargetTcpProxiesTracingConnection::DeleteTargetTcpProxy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_region_target_tcp_proxies_v1::RegionTargetTcpProxiesConnection::" + "DeleteTargetTcpProxy"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->DeleteTargetTcpProxy( + ExperimentalTag{}, operation)); +} + StatusOr RegionTargetTcpProxiesTracingConnection::GetTargetTcpProxy( google::cloud::cpp::compute::region_target_tcp_proxies::v1:: @@ -72,6 +98,32 @@ RegionTargetTcpProxiesTracingConnection::InsertTargetTcpProxy( child_->InsertTargetTcpProxy(request)); } +StatusOr +RegionTargetTcpProxiesTracingConnection::InsertTargetTcpProxy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_target_tcp_proxies::v1:: + InsertTargetTcpProxyRequest const& request) { + auto span = internal::MakeSpan( + "compute_region_target_tcp_proxies_v1::RegionTargetTcpProxiesConnection::" + "InsertTargetTcpProxy"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->InsertTargetTcpProxy(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +RegionTargetTcpProxiesTracingConnection::InsertTargetTcpProxy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_region_target_tcp_proxies_v1::RegionTargetTcpProxiesConnection::" + "InsertTargetTcpProxy"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->InsertTargetTcpProxy( + ExperimentalTag{}, operation)); +} + StreamRange RegionTargetTcpProxiesTracingConnection::ListRegionTargetTcpProxies( google::cloud::cpp::compute::region_target_tcp_proxies::v1:: diff --git a/google/cloud/compute/region_target_tcp_proxies/v1/internal/region_target_tcp_proxies_tracing_connection.h b/google/cloud/compute/region_target_tcp_proxies/v1/internal/region_target_tcp_proxies_tracing_connection.h index 0419ab66b7843..a101ba7adac1d 100644 --- a/google/cloud/compute/region_target_tcp_proxies/v1/internal/region_target_tcp_proxies_tracing_connection.h +++ b/google/cloud/compute/region_target_tcp_proxies/v1/internal/region_target_tcp_proxies_tracing_connection.h @@ -49,6 +49,16 @@ class RegionTargetTcpProxiesTracingConnection google::cloud::cpp::compute::region_target_tcp_proxies::v1:: DeleteTargetTcpProxyRequest const& request) override; + StatusOr DeleteTargetTcpProxy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_target_tcp_proxies::v1:: + DeleteTargetTcpProxyRequest const& request) override; + + future> + DeleteTargetTcpProxy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StatusOr GetTargetTcpProxy( google::cloud::cpp::compute::region_target_tcp_proxies::v1:: GetTargetTcpProxyRequest const& request) override; @@ -58,6 +68,16 @@ class RegionTargetTcpProxiesTracingConnection google::cloud::cpp::compute::region_target_tcp_proxies::v1:: InsertTargetTcpProxyRequest const& request) override; + StatusOr InsertTargetTcpProxy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_target_tcp_proxies::v1:: + InsertTargetTcpProxyRequest const& request) override; + + future> + InsertTargetTcpProxy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StreamRange ListRegionTargetTcpProxies( google::cloud::cpp::compute::region_target_tcp_proxies::v1:: diff --git a/google/cloud/compute/region_target_tcp_proxies/v1/mocks/mock_region_target_tcp_proxies_connection.h b/google/cloud/compute/region_target_tcp_proxies/v1/mocks/mock_region_target_tcp_proxies_connection.h index cddd96548d5ec..975ce5e15ecd4 100644 --- a/google/cloud/compute/region_target_tcp_proxies/v1/mocks/mock_region_target_tcp_proxies_connection.h +++ b/google/cloud/compute/region_target_tcp_proxies/v1/mocks/mock_region_target_tcp_proxies_connection.h @@ -55,6 +55,19 @@ class MockRegionTargetTcpProxiesConnection DeleteTargetTcpProxyRequest const& request), (override)); + MOCK_METHOD(StatusOr, + DeleteTargetTcpProxy, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_target_tcp_proxies::v1:: + DeleteTargetTcpProxyRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteTargetTcpProxy, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD(StatusOr, GetTargetTcpProxy, (google::cloud::cpp::compute::region_target_tcp_proxies::v1:: @@ -67,6 +80,19 @@ class MockRegionTargetTcpProxiesConnection InsertTargetTcpProxyRequest const& request), (override)); + MOCK_METHOD(StatusOr, + InsertTargetTcpProxy, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_target_tcp_proxies::v1:: + InsertTargetTcpProxyRequest const& request), + (override)); + + MOCK_METHOD(future>, + InsertTargetTcpProxy, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD((StreamRange), ListRegionTargetTcpProxies, (google::cloud::cpp::compute::region_target_tcp_proxies::v1:: diff --git a/google/cloud/compute/region_target_tcp_proxies/v1/region_target_tcp_proxies_connection.cc b/google/cloud/compute/region_target_tcp_proxies/v1/region_target_tcp_proxies_connection.cc index 2f3a63397b9b7..d3277ac7cec78 100644 --- a/google/cloud/compute/region_target_tcp_proxies/v1/region_target_tcp_proxies_connection.cc +++ b/google/cloud/compute/region_target_tcp_proxies/v1/region_target_tcp_proxies_connection.cc @@ -46,6 +46,23 @@ RegionTargetTcpProxiesConnection::DeleteTargetTcpProxy( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +RegionTargetTcpProxiesConnection::DeleteTargetTcpProxy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_target_tcp_proxies::v1:: + DeleteTargetTcpProxyRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +RegionTargetTcpProxiesConnection::DeleteTargetTcpProxy( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr RegionTargetTcpProxiesConnection::GetTargetTcpProxy( google::cloud::cpp::compute::region_target_tcp_proxies::v1:: @@ -62,6 +79,23 @@ RegionTargetTcpProxiesConnection::InsertTargetTcpProxy( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +RegionTargetTcpProxiesConnection::InsertTargetTcpProxy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_target_tcp_proxies::v1:: + InsertTargetTcpProxyRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +RegionTargetTcpProxiesConnection::InsertTargetTcpProxy( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StreamRange RegionTargetTcpProxiesConnection::ListRegionTargetTcpProxies( google::cloud::cpp::compute::region_target_tcp_proxies::v1:: diff --git a/google/cloud/compute/region_target_tcp_proxies/v1/region_target_tcp_proxies_connection.h b/google/cloud/compute/region_target_tcp_proxies/v1/region_target_tcp_proxies_connection.h index 87312103f827f..e6eecc3281ec7 100644 --- a/google/cloud/compute/region_target_tcp_proxies/v1/region_target_tcp_proxies_connection.h +++ b/google/cloud/compute/region_target_tcp_proxies/v1/region_target_tcp_proxies_connection.h @@ -23,8 +23,10 @@ #include "google/cloud/compute/region_target_tcp_proxies/v1/internal/region_target_tcp_proxies_retry_traits.h" #include "google/cloud/compute/region_target_tcp_proxies/v1/region_target_tcp_proxies_connection_idempotency_policy.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/internal/retry_policy_impl.h" +#include "google/cloud/no_await_tag.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" #include "google/cloud/status_or.h" @@ -198,6 +200,16 @@ class RegionTargetTcpProxiesConnection { DeleteTargetTcpProxy(google::cloud::cpp::compute::region_target_tcp_proxies:: v1::DeleteTargetTcpProxyRequest const& request); + virtual StatusOr + DeleteTargetTcpProxy(ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_target_tcp_proxies:: + v1::DeleteTargetTcpProxyRequest const& request); + + virtual future> + DeleteTargetTcpProxy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual StatusOr GetTargetTcpProxy(google::cloud::cpp::compute::region_target_tcp_proxies::v1:: GetTargetTcpProxyRequest const& request); @@ -206,6 +218,16 @@ class RegionTargetTcpProxiesConnection { InsertTargetTcpProxy(google::cloud::cpp::compute::region_target_tcp_proxies:: v1::InsertTargetTcpProxyRequest const& request); + virtual StatusOr + InsertTargetTcpProxy(ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_target_tcp_proxies:: + v1::InsertTargetTcpProxyRequest const& request); + + virtual future> + InsertTargetTcpProxy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual StreamRange ListRegionTargetTcpProxies( google::cloud::cpp::compute::region_target_tcp_proxies::v1:: diff --git a/google/cloud/compute/region_url_maps/v1/internal/region_url_maps_rest_connection_impl.cc b/google/cloud/compute/region_url_maps/v1/internal/region_url_maps_rest_connection_impl.cc index bb083ba15facf..ddf667b86df01 100644 --- a/google/cloud/compute/region_url_maps/v1/internal/region_url_maps_rest_connection_impl.cc +++ b/google/cloud/compute/region_url_maps/v1/internal/region_url_maps_rest_connection_impl.cc @@ -23,6 +23,7 @@ #include "google/cloud/internal/async_rest_long_running_operation_custom.h" #include "google/cloud/internal/extract_long_running_result.h" #include "google/cloud/internal/pagination_range.h" +#include "google/cloud/internal/rest_lro_helpers.h" #include "google/cloud/internal/rest_retry_loop.h" #include "google/cloud/rest_options.h" #include @@ -103,6 +104,79 @@ RegionUrlMapsRestConnectionImpl::DeleteUrlMap( }); } +StatusOr +RegionUrlMapsRestConnectionImpl::DeleteUrlMap( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_url_maps::v1::DeleteUrlMapRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteUrlMap(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::region_url_maps::v1:: + DeleteUrlMapRequest const& request) { + return stub_->DeleteUrlMap(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +RegionUrlMapsRestConnectionImpl::DeleteUrlMap( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::region_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }); +} + StatusOr RegionUrlMapsRestConnectionImpl::GetUrlMap( google::cloud::cpp::compute::region_url_maps::v1::GetUrlMapRequest const& @@ -179,6 +253,79 @@ RegionUrlMapsRestConnectionImpl::InsertUrlMap( }); } +StatusOr +RegionUrlMapsRestConnectionImpl::InsertUrlMap( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_url_maps::v1::InsertUrlMapRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->InsertUrlMap(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::region_url_maps::v1:: + InsertUrlMapRequest const& request) { + return stub_->InsertUrlMap(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +RegionUrlMapsRestConnectionImpl::InsertUrlMap( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::region_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }); +} + StreamRange RegionUrlMapsRestConnectionImpl::ListRegionUrlMaps( google::cloud::cpp::compute::region_url_maps::v1::ListRegionUrlMapsRequest @@ -276,6 +423,79 @@ RegionUrlMapsRestConnectionImpl::PatchUrlMap( }); } +StatusOr +RegionUrlMapsRestConnectionImpl::PatchUrlMap( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_url_maps::v1::PatchUrlMapRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->PatchUrlMap(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::region_url_maps::v1:: + PatchUrlMapRequest const& request) { + return stub_->PatchUrlMap(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +RegionUrlMapsRestConnectionImpl::PatchUrlMap( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::region_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }); +} + future> RegionUrlMapsRestConnectionImpl::UpdateUrlMap( google::cloud::cpp::compute::region_url_maps::v1::UpdateUrlMapRequest const& @@ -336,6 +556,79 @@ RegionUrlMapsRestConnectionImpl::UpdateUrlMap( }); } +StatusOr +RegionUrlMapsRestConnectionImpl::UpdateUrlMap( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_url_maps::v1::UpdateUrlMapRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UpdateUrlMap(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::region_url_maps::v1:: + UpdateUrlMapRequest const& request) { + return stub_->UpdateUrlMap(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +RegionUrlMapsRestConnectionImpl::UpdateUrlMap( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::region_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }); +} + StatusOr RegionUrlMapsRestConnectionImpl::Validate( google::cloud::cpp::compute::region_url_maps::v1::ValidateRequest const& diff --git a/google/cloud/compute/region_url_maps/v1/internal/region_url_maps_rest_connection_impl.h b/google/cloud/compute/region_url_maps/v1/internal/region_url_maps_rest_connection_impl.h index 14eb12bfd6654..275d557904650 100644 --- a/google/cloud/compute/region_url_maps/v1/internal/region_url_maps_rest_connection_impl.h +++ b/google/cloud/compute/region_url_maps/v1/internal/region_url_maps_rest_connection_impl.h @@ -56,6 +56,15 @@ class RegionUrlMapsRestConnectionImpl google::cloud::cpp::compute::region_url_maps::v1:: DeleteUrlMapRequest const& request) override; + StatusOr DeleteUrlMap( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_url_maps::v1:: + DeleteUrlMapRequest const& request) override; + + future> DeleteUrlMap( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StatusOr GetUrlMap( google::cloud::cpp::compute::region_url_maps::v1::GetUrlMapRequest const& request) override; @@ -64,6 +73,15 @@ class RegionUrlMapsRestConnectionImpl google::cloud::cpp::compute::region_url_maps::v1:: InsertUrlMapRequest const& request) override; + StatusOr InsertUrlMap( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_url_maps::v1:: + InsertUrlMapRequest const& request) override; + + future> InsertUrlMap( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StreamRange ListRegionUrlMaps( google::cloud::cpp::compute::region_url_maps::v1::ListRegionUrlMapsRequest request) override; @@ -72,10 +90,28 @@ class RegionUrlMapsRestConnectionImpl google::cloud::cpp::compute::region_url_maps::v1:: PatchUrlMapRequest const& request) override; + StatusOr PatchUrlMap( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_url_maps::v1:: + PatchUrlMapRequest const& request) override; + + future> PatchUrlMap( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> UpdateUrlMap( google::cloud::cpp::compute::region_url_maps::v1:: UpdateUrlMapRequest const& request) override; + StatusOr UpdateUrlMap( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_url_maps::v1:: + UpdateUrlMapRequest const& request) override; + + future> UpdateUrlMap( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StatusOr Validate( google::cloud::cpp::compute::region_url_maps::v1::ValidateRequest const& request) override; diff --git a/google/cloud/compute/region_url_maps/v1/internal/region_url_maps_tracing_connection.cc b/google/cloud/compute/region_url_maps/v1/internal/region_url_maps_tracing_connection.cc index 1bb9f269a5af5..3a6d0858fa8e5 100644 --- a/google/cloud/compute/region_url_maps/v1/internal/region_url_maps_tracing_connection.cc +++ b/google/cloud/compute/region_url_maps/v1/internal/region_url_maps_tracing_connection.cc @@ -43,6 +43,29 @@ RegionUrlMapsTracingConnection::DeleteUrlMap( return internal::EndSpan(std::move(span), child_->DeleteUrlMap(request)); } +StatusOr +RegionUrlMapsTracingConnection::DeleteUrlMap( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_url_maps::v1::DeleteUrlMapRequest const& + request) { + auto span = internal::MakeSpan( + "compute_region_url_maps_v1::RegionUrlMapsConnection::DeleteUrlMap"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->DeleteUrlMap(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +RegionUrlMapsTracingConnection::DeleteUrlMap( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_region_url_maps_v1::RegionUrlMapsConnection::DeleteUrlMap"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->DeleteUrlMap(ExperimentalTag{}, operation)); +} + StatusOr RegionUrlMapsTracingConnection::GetUrlMap( google::cloud::cpp::compute::region_url_maps::v1::GetUrlMapRequest const& @@ -63,6 +86,29 @@ RegionUrlMapsTracingConnection::InsertUrlMap( return internal::EndSpan(std::move(span), child_->InsertUrlMap(request)); } +StatusOr +RegionUrlMapsTracingConnection::InsertUrlMap( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_url_maps::v1::InsertUrlMapRequest const& + request) { + auto span = internal::MakeSpan( + "compute_region_url_maps_v1::RegionUrlMapsConnection::InsertUrlMap"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->InsertUrlMap(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +RegionUrlMapsTracingConnection::InsertUrlMap( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_region_url_maps_v1::RegionUrlMapsConnection::InsertUrlMap"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->InsertUrlMap(ExperimentalTag{}, operation)); +} + StreamRange RegionUrlMapsTracingConnection::ListRegionUrlMaps( google::cloud::cpp::compute::region_url_maps::v1::ListRegionUrlMapsRequest @@ -85,6 +131,29 @@ RegionUrlMapsTracingConnection::PatchUrlMap( return internal::EndSpan(std::move(span), child_->PatchUrlMap(request)); } +StatusOr +RegionUrlMapsTracingConnection::PatchUrlMap( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_url_maps::v1::PatchUrlMapRequest const& + request) { + auto span = internal::MakeSpan( + "compute_region_url_maps_v1::RegionUrlMapsConnection::PatchUrlMap"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->PatchUrlMap(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +RegionUrlMapsTracingConnection::PatchUrlMap( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_region_url_maps_v1::RegionUrlMapsConnection::PatchUrlMap"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->PatchUrlMap(ExperimentalTag{}, operation)); +} + future> RegionUrlMapsTracingConnection::UpdateUrlMap( google::cloud::cpp::compute::region_url_maps::v1::UpdateUrlMapRequest const& @@ -95,6 +164,29 @@ RegionUrlMapsTracingConnection::UpdateUrlMap( return internal::EndSpan(std::move(span), child_->UpdateUrlMap(request)); } +StatusOr +RegionUrlMapsTracingConnection::UpdateUrlMap( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_url_maps::v1::UpdateUrlMapRequest const& + request) { + auto span = internal::MakeSpan( + "compute_region_url_maps_v1::RegionUrlMapsConnection::UpdateUrlMap"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->UpdateUrlMap(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +RegionUrlMapsTracingConnection::UpdateUrlMap( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_region_url_maps_v1::RegionUrlMapsConnection::UpdateUrlMap"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->UpdateUrlMap(ExperimentalTag{}, operation)); +} + StatusOr RegionUrlMapsTracingConnection::Validate( google::cloud::cpp::compute::region_url_maps::v1::ValidateRequest const& diff --git a/google/cloud/compute/region_url_maps/v1/internal/region_url_maps_tracing_connection.h b/google/cloud/compute/region_url_maps/v1/internal/region_url_maps_tracing_connection.h index f75daf51809d7..d51c55757ce1b 100644 --- a/google/cloud/compute/region_url_maps/v1/internal/region_url_maps_tracing_connection.h +++ b/google/cloud/compute/region_url_maps/v1/internal/region_url_maps_tracing_connection.h @@ -45,6 +45,15 @@ class RegionUrlMapsTracingConnection google::cloud::cpp::compute::region_url_maps::v1:: DeleteUrlMapRequest const& request) override; + StatusOr DeleteUrlMap( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_url_maps::v1:: + DeleteUrlMapRequest const& request) override; + + future> DeleteUrlMap( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StatusOr GetUrlMap( google::cloud::cpp::compute::region_url_maps::v1::GetUrlMapRequest const& request) override; @@ -53,6 +62,15 @@ class RegionUrlMapsTracingConnection google::cloud::cpp::compute::region_url_maps::v1:: InsertUrlMapRequest const& request) override; + StatusOr InsertUrlMap( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_url_maps::v1:: + InsertUrlMapRequest const& request) override; + + future> InsertUrlMap( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StreamRange ListRegionUrlMaps( google::cloud::cpp::compute::region_url_maps::v1::ListRegionUrlMapsRequest request) override; @@ -61,10 +79,28 @@ class RegionUrlMapsTracingConnection google::cloud::cpp::compute::region_url_maps::v1:: PatchUrlMapRequest const& request) override; + StatusOr PatchUrlMap( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_url_maps::v1:: + PatchUrlMapRequest const& request) override; + + future> PatchUrlMap( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> UpdateUrlMap( google::cloud::cpp::compute::region_url_maps::v1:: UpdateUrlMapRequest const& request) override; + StatusOr UpdateUrlMap( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_url_maps::v1:: + UpdateUrlMapRequest const& request) override; + + future> UpdateUrlMap( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StatusOr Validate( google::cloud::cpp::compute::region_url_maps::v1::ValidateRequest const& request) override; diff --git a/google/cloud/compute/region_url_maps/v1/mocks/mock_region_url_maps_connection.h b/google/cloud/compute/region_url_maps/v1/mocks/mock_region_url_maps_connection.h index d9713f61a20ad..ff4ba9c9dc3d6 100644 --- a/google/cloud/compute/region_url_maps/v1/mocks/mock_region_url_maps_connection.h +++ b/google/cloud/compute/region_url_maps/v1/mocks/mock_region_url_maps_connection.h @@ -53,6 +53,19 @@ class MockRegionUrlMapsConnection DeleteUrlMapRequest const& request), (override)); + MOCK_METHOD(StatusOr, + DeleteUrlMap, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_url_maps::v1:: + DeleteUrlMapRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteUrlMap, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr, GetUrlMap, (google::cloud::cpp::compute::region_url_maps::v1::GetUrlMapRequest const& @@ -65,6 +78,19 @@ class MockRegionUrlMapsConnection InsertUrlMapRequest const& request), (override)); + MOCK_METHOD(StatusOr, + InsertUrlMap, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_url_maps::v1:: + InsertUrlMapRequest const& request), + (override)); + + MOCK_METHOD(future>, + InsertUrlMap, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD((StreamRange), ListRegionUrlMaps, (google::cloud::cpp::compute::region_url_maps::v1:: @@ -77,12 +103,37 @@ class MockRegionUrlMapsConnection PatchUrlMapRequest const& request), (override)); + MOCK_METHOD(StatusOr, PatchUrlMap, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_url_maps::v1:: + PatchUrlMapRequest const& request), + (override)); + + MOCK_METHOD(future>, + PatchUrlMap, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD(future>, UpdateUrlMap, (google::cloud::cpp::compute::region_url_maps::v1:: UpdateUrlMapRequest const& request), (override)); + MOCK_METHOD(StatusOr, + UpdateUrlMap, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_url_maps::v1:: + UpdateUrlMapRequest const& request), + (override)); + + MOCK_METHOD(future>, + UpdateUrlMap, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr, Validate, diff --git a/google/cloud/compute/region_url_maps/v1/region_url_maps_connection.cc b/google/cloud/compute/region_url_maps/v1/region_url_maps_connection.cc index 20d0567ac97bc..1059b5f58fd98 100644 --- a/google/cloud/compute/region_url_maps/v1/region_url_maps_connection.cc +++ b/google/cloud/compute/region_url_maps/v1/region_url_maps_connection.cc @@ -45,6 +45,23 @@ RegionUrlMapsConnection::DeleteUrlMap( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +RegionUrlMapsConnection::DeleteUrlMap( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_url_maps::v1:: + DeleteUrlMapRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +RegionUrlMapsConnection::DeleteUrlMap( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr RegionUrlMapsConnection::GetUrlMap( google::cloud::cpp::compute::region_url_maps::v1::GetUrlMapRequest const&) { @@ -60,6 +77,23 @@ RegionUrlMapsConnection::InsertUrlMap( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +RegionUrlMapsConnection::InsertUrlMap( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_url_maps::v1:: + InsertUrlMapRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +RegionUrlMapsConnection::InsertUrlMap( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StreamRange RegionUrlMapsConnection::ListRegionUrlMaps( google::cloud::cpp::compute::region_url_maps::v1:: @@ -77,6 +111,23 @@ RegionUrlMapsConnection::PatchUrlMap( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +RegionUrlMapsConnection::PatchUrlMap( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_url_maps::v1:: + PatchUrlMapRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +RegionUrlMapsConnection::PatchUrlMap( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> RegionUrlMapsConnection::UpdateUrlMap( google::cloud::cpp::compute::region_url_maps::v1:: @@ -86,6 +137,23 @@ RegionUrlMapsConnection::UpdateUrlMap( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +RegionUrlMapsConnection::UpdateUrlMap( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_url_maps::v1:: + UpdateUrlMapRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +RegionUrlMapsConnection::UpdateUrlMap( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr RegionUrlMapsConnection::Validate( google::cloud::cpp::compute::region_url_maps::v1::ValidateRequest const&) { diff --git a/google/cloud/compute/region_url_maps/v1/region_url_maps_connection.h b/google/cloud/compute/region_url_maps/v1/region_url_maps_connection.h index cfb80e2f45985..2df8007dbb715 100644 --- a/google/cloud/compute/region_url_maps/v1/region_url_maps_connection.h +++ b/google/cloud/compute/region_url_maps/v1/region_url_maps_connection.h @@ -22,8 +22,10 @@ #include "google/cloud/compute/region_url_maps/v1/internal/region_url_maps_retry_traits.h" #include "google/cloud/compute/region_url_maps/v1/region_url_maps_connection_idempotency_policy.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/internal/retry_policy_impl.h" +#include "google/cloud/no_await_tag.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" #include "google/cloud/status_or.h" @@ -189,6 +191,15 @@ class RegionUrlMapsConnection { DeleteUrlMap(google::cloud::cpp::compute::region_url_maps::v1:: DeleteUrlMapRequest const& request); + virtual StatusOr DeleteUrlMap( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_url_maps::v1:: + DeleteUrlMapRequest const& request); + + virtual future> + DeleteUrlMap(ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual StatusOr GetUrlMap( google::cloud::cpp::compute::region_url_maps::v1::GetUrlMapRequest const& request); @@ -197,6 +208,15 @@ class RegionUrlMapsConnection { InsertUrlMap(google::cloud::cpp::compute::region_url_maps::v1:: InsertUrlMapRequest const& request); + virtual StatusOr InsertUrlMap( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_url_maps::v1:: + InsertUrlMapRequest const& request); + + virtual future> + InsertUrlMap(ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual StreamRange ListRegionUrlMaps( google::cloud::cpp::compute::region_url_maps::v1::ListRegionUrlMapsRequest @@ -206,10 +226,28 @@ class RegionUrlMapsConnection { PatchUrlMap(google::cloud::cpp::compute::region_url_maps::v1:: PatchUrlMapRequest const& request); + virtual StatusOr PatchUrlMap( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_url_maps::v1:: + PatchUrlMapRequest const& request); + + virtual future> + PatchUrlMap(ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual future> UpdateUrlMap(google::cloud::cpp::compute::region_url_maps::v1:: UpdateUrlMapRequest const& request); + virtual StatusOr UpdateUrlMap( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::region_url_maps::v1:: + UpdateUrlMapRequest const& request); + + virtual future> + UpdateUrlMap(ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual StatusOr Validate( google::cloud::cpp::compute::region_url_maps::v1::ValidateRequest const& diff --git a/google/cloud/compute/region_zones/v1/region_zones_connection.h b/google/cloud/compute/region_zones/v1/region_zones_connection.h index 16589cbc982e3..b5d4de0a7afa6 100644 --- a/google/cloud/compute/region_zones/v1/region_zones_connection.h +++ b/google/cloud/compute/region_zones/v1/region_zones_connection.h @@ -22,6 +22,7 @@ #include "google/cloud/compute/region_zones/v1/internal/region_zones_retry_traits.h" #include "google/cloud/compute/region_zones/v1/region_zones_connection_idempotency_policy.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/internal/retry_policy_impl.h" #include "google/cloud/options.h" #include "google/cloud/status_or.h" diff --git a/google/cloud/compute/regions/v1/regions_connection.h b/google/cloud/compute/regions/v1/regions_connection.h index 9ac789bce5581..b1b2793b8ddfe 100644 --- a/google/cloud/compute/regions/v1/regions_connection.h +++ b/google/cloud/compute/regions/v1/regions_connection.h @@ -22,6 +22,7 @@ #include "google/cloud/compute/regions/v1/internal/regions_retry_traits.h" #include "google/cloud/compute/regions/v1/regions_connection_idempotency_policy.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/internal/retry_policy_impl.h" #include "google/cloud/options.h" #include "google/cloud/status_or.h" diff --git a/google/cloud/compute/reservations/v1/internal/reservations_rest_connection_impl.cc b/google/cloud/compute/reservations/v1/internal/reservations_rest_connection_impl.cc index 6c051b3e0c98d..0c13089aac693 100644 --- a/google/cloud/compute/reservations/v1/internal/reservations_rest_connection_impl.cc +++ b/google/cloud/compute/reservations/v1/internal/reservations_rest_connection_impl.cc @@ -23,6 +23,7 @@ #include "google/cloud/internal/async_rest_long_running_operation_custom.h" #include "google/cloud/internal/extract_long_running_result.h" #include "google/cloud/internal/pagination_range.h" +#include "google/cloud/internal/rest_lro_helpers.h" #include "google/cloud/internal/rest_retry_loop.h" #include "google/cloud/rest_options.h" #include @@ -146,6 +147,79 @@ ReservationsRestConnectionImpl::DeleteReservation( }); } +StatusOr +ReservationsRestConnectionImpl::DeleteReservation( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::reservations::v1:: + DeleteReservationRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteReservation(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::reservations::v1:: + DeleteReservationRequest const& request) { + return stub_->DeleteReservation(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +ReservationsRestConnectionImpl::DeleteReservation( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::zone_operations::v1::DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::zone_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::zone_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation]( + std::string const&, + google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest& + r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_zone(info.zone); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::zone_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_zone(info.zone); + r.set_operation(info.operation); + }); +} + StatusOr ReservationsRestConnectionImpl::GetReservation( google::cloud::cpp::compute::reservations::v1::GetReservationRequest const& @@ -238,6 +312,79 @@ ReservationsRestConnectionImpl::InsertReservation( }); } +StatusOr +ReservationsRestConnectionImpl::InsertReservation( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::reservations::v1:: + InsertReservationRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->InsertReservation(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::reservations::v1:: + InsertReservationRequest const& request) { + return stub_->InsertReservation(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +ReservationsRestConnectionImpl::InsertReservation( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::zone_operations::v1::DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::zone_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::zone_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation]( + std::string const&, + google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest& + r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_zone(info.zone); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::zone_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_zone(info.zone); + r.set_operation(info.operation); + }); +} + StreamRange ReservationsRestConnectionImpl::ListReservations( google::cloud::cpp::compute::reservations::v1::ListReservationsRequest @@ -336,6 +483,79 @@ ReservationsRestConnectionImpl::Resize( }); } +StatusOr +ReservationsRestConnectionImpl::Resize( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::reservations::v1::ResizeRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->Resize(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::reservations::v1::ResizeRequest const& + request) { + return stub_->Resize(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +ReservationsRestConnectionImpl::Resize( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::zone_operations::v1::DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::zone_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::zone_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation]( + std::string const&, + google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest& + r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_zone(info.zone); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::zone_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_zone(info.zone); + r.set_operation(info.operation); + }); +} + StatusOr ReservationsRestConnectionImpl::SetIamPolicy( google::cloud::cpp::compute::reservations::v1::SetIamPolicyRequest const& @@ -428,6 +648,79 @@ ReservationsRestConnectionImpl::UpdateReservation( }); } +StatusOr +ReservationsRestConnectionImpl::UpdateReservation( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::reservations::v1:: + UpdateReservationRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UpdateReservation(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::reservations::v1:: + UpdateReservationRequest const& request) { + return stub_->UpdateReservation(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +ReservationsRestConnectionImpl::UpdateReservation( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::zone_operations::v1::DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::zone_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::zone_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation]( + std::string const&, + google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest& + r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_zone(info.zone); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::zone_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_zone(info.zone); + r.set_operation(info.operation); + }); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace compute_reservations_v1_internal } // namespace cloud diff --git a/google/cloud/compute/reservations/v1/internal/reservations_rest_connection_impl.h b/google/cloud/compute/reservations/v1/internal/reservations_rest_connection_impl.h index 7c90e5bd71b4e..65c98a20b5438 100644 --- a/google/cloud/compute/reservations/v1/internal/reservations_rest_connection_impl.h +++ b/google/cloud/compute/reservations/v1/internal/reservations_rest_connection_impl.h @@ -61,6 +61,16 @@ class ReservationsRestConnectionImpl DeleteReservation(google::cloud::cpp::compute::reservations::v1:: DeleteReservationRequest const& request) override; + StatusOr DeleteReservation( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::reservations::v1:: + DeleteReservationRequest const& request) override; + + future> + DeleteReservation( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StatusOr GetReservation( google::cloud::cpp::compute::reservations::v1:: GetReservationRequest const& request) override; @@ -73,6 +83,16 @@ class ReservationsRestConnectionImpl InsertReservation(google::cloud::cpp::compute::reservations::v1:: InsertReservationRequest const& request) override; + StatusOr InsertReservation( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::reservations::v1:: + InsertReservationRequest const& request) override; + + future> + InsertReservation( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StreamRange ListReservations( google::cloud::cpp::compute::reservations::v1::ListReservationsRequest request) override; @@ -81,6 +101,15 @@ class ReservationsRestConnectionImpl google::cloud::cpp::compute::reservations::v1::ResizeRequest const& request) override; + StatusOr Resize( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::reservations::v1::ResizeRequest const& + request) override; + + future> Resize( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StatusOr SetIamPolicy( google::cloud::cpp::compute::reservations::v1::SetIamPolicyRequest const& request) override; @@ -93,6 +122,16 @@ class ReservationsRestConnectionImpl UpdateReservation(google::cloud::cpp::compute::reservations::v1:: UpdateReservationRequest const& request) override; + StatusOr UpdateReservation( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::reservations::v1:: + UpdateReservationRequest const& request) override; + + future> + UpdateReservation( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + private: static std::unique_ptr retry_policy(Options const& options) { diff --git a/google/cloud/compute/reservations/v1/internal/reservations_tracing_connection.cc b/google/cloud/compute/reservations/v1/internal/reservations_tracing_connection.cc index 7630c3377aec0..258029a63e018 100644 --- a/google/cloud/compute/reservations/v1/internal/reservations_tracing_connection.cc +++ b/google/cloud/compute/reservations/v1/internal/reservations_tracing_connection.cc @@ -58,6 +58,30 @@ ReservationsTracingConnection::DeleteReservation( return internal::EndSpan(std::move(span), child_->DeleteReservation(request)); } +StatusOr +ReservationsTracingConnection::DeleteReservation( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::reservations::v1:: + DeleteReservationRequest const& request) { + auto span = internal::MakeSpan( + "compute_reservations_v1::ReservationsConnection::DeleteReservation"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->DeleteReservation(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +ReservationsTracingConnection::DeleteReservation( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_reservations_v1::ReservationsConnection::DeleteReservation"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->DeleteReservation(ExperimentalTag{}, operation)); +} + StatusOr ReservationsTracingConnection::GetReservation( google::cloud::cpp::compute::reservations::v1::GetReservationRequest const& @@ -88,6 +112,30 @@ ReservationsTracingConnection::InsertReservation( return internal::EndSpan(std::move(span), child_->InsertReservation(request)); } +StatusOr +ReservationsTracingConnection::InsertReservation( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::reservations::v1:: + InsertReservationRequest const& request) { + auto span = internal::MakeSpan( + "compute_reservations_v1::ReservationsConnection::InsertReservation"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->InsertReservation(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +ReservationsTracingConnection::InsertReservation( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_reservations_v1::ReservationsConnection::InsertReservation"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->InsertReservation(ExperimentalTag{}, operation)); +} + StreamRange ReservationsTracingConnection::ListReservations( google::cloud::cpp::compute::reservations::v1::ListReservationsRequest @@ -111,6 +159,29 @@ ReservationsTracingConnection::Resize( return internal::EndSpan(std::move(span), child_->Resize(request)); } +StatusOr +ReservationsTracingConnection::Resize( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::reservations::v1::ResizeRequest const& + request) { + auto span = internal::MakeSpan( + "compute_reservations_v1::ReservationsConnection::Resize"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->Resize(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +ReservationsTracingConnection::Resize( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_reservations_v1::ReservationsConnection::Resize"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->Resize(ExperimentalTag{}, operation)); +} + StatusOr ReservationsTracingConnection::SetIamPolicy( google::cloud::cpp::compute::reservations::v1::SetIamPolicyRequest const& @@ -141,6 +212,30 @@ ReservationsTracingConnection::UpdateReservation( return internal::EndSpan(std::move(span), child_->UpdateReservation(request)); } +StatusOr +ReservationsTracingConnection::UpdateReservation( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::reservations::v1:: + UpdateReservationRequest const& request) { + auto span = internal::MakeSpan( + "compute_reservations_v1::ReservationsConnection::UpdateReservation"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->UpdateReservation(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +ReservationsTracingConnection::UpdateReservation( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_reservations_v1::ReservationsConnection::UpdateReservation"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->UpdateReservation(ExperimentalTag{}, operation)); +} + #endif // GOOGLE_CLOUD_CPP_HAVE_OPENTELEMETRY std::shared_ptr diff --git a/google/cloud/compute/reservations/v1/internal/reservations_tracing_connection.h b/google/cloud/compute/reservations/v1/internal/reservations_tracing_connection.h index 9168b38eaa1fd..c79a58ef6ee7e 100644 --- a/google/cloud/compute/reservations/v1/internal/reservations_tracing_connection.h +++ b/google/cloud/compute/reservations/v1/internal/reservations_tracing_connection.h @@ -50,6 +50,16 @@ class ReservationsTracingConnection DeleteReservation(google::cloud::cpp::compute::reservations::v1:: DeleteReservationRequest const& request) override; + StatusOr DeleteReservation( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::reservations::v1:: + DeleteReservationRequest const& request) override; + + future> + DeleteReservation( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StatusOr GetReservation( google::cloud::cpp::compute::reservations::v1:: GetReservationRequest const& request) override; @@ -62,6 +72,16 @@ class ReservationsTracingConnection InsertReservation(google::cloud::cpp::compute::reservations::v1:: InsertReservationRequest const& request) override; + StatusOr InsertReservation( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::reservations::v1:: + InsertReservationRequest const& request) override; + + future> + InsertReservation( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StreamRange ListReservations( google::cloud::cpp::compute::reservations::v1::ListReservationsRequest request) override; @@ -70,6 +90,15 @@ class ReservationsTracingConnection google::cloud::cpp::compute::reservations::v1::ResizeRequest const& request) override; + StatusOr Resize( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::reservations::v1::ResizeRequest const& + request) override; + + future> Resize( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StatusOr SetIamPolicy( google::cloud::cpp::compute::reservations::v1::SetIamPolicyRequest const& request) override; @@ -82,6 +111,16 @@ class ReservationsTracingConnection UpdateReservation(google::cloud::cpp::compute::reservations::v1:: UpdateReservationRequest const& request) override; + StatusOr UpdateReservation( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::reservations::v1:: + UpdateReservationRequest const& request) override; + + future> + UpdateReservation( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + private: std::shared_ptr child_; }; diff --git a/google/cloud/compute/reservations/v1/mocks/mock_reservations_connection.h b/google/cloud/compute/reservations/v1/mocks/mock_reservations_connection.h index 9164a55a47370..0a3a83a364f55 100644 --- a/google/cloud/compute/reservations/v1/mocks/mock_reservations_connection.h +++ b/google/cloud/compute/reservations/v1/mocks/mock_reservations_connection.h @@ -62,6 +62,19 @@ class MockReservationsConnection DeleteReservationRequest const& request), (override)); + MOCK_METHOD(StatusOr, + DeleteReservation, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::reservations::v1:: + DeleteReservationRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteReservation, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD(StatusOr, GetReservation, (google::cloud::cpp::compute::reservations::v1:: @@ -80,6 +93,19 @@ class MockReservationsConnection InsertReservationRequest const& request), (override)); + MOCK_METHOD(StatusOr, + InsertReservation, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::reservations::v1:: + InsertReservationRequest const& request), + (override)); + + MOCK_METHOD(future>, + InsertReservation, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD( (StreamRange), ListReservations, @@ -93,6 +119,19 @@ class MockReservationsConnection request), (override)); + MOCK_METHOD( + StatusOr, Resize, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::reservations::v1::ResizeRequest const& + request), + (override)); + + MOCK_METHOD(future>, + Resize, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr, SetIamPolicy, (google::cloud::cpp::compute::reservations::v1::SetIamPolicyRequest const& @@ -111,6 +150,19 @@ class MockReservationsConnection (google::cloud::cpp::compute::reservations::v1:: UpdateReservationRequest const& request), (override)); + + MOCK_METHOD(StatusOr, + UpdateReservation, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::reservations::v1:: + UpdateReservationRequest const& request), + (override)); + + MOCK_METHOD(future>, + UpdateReservation, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); }; GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END diff --git a/google/cloud/compute/reservations/v1/reservations_connection.cc b/google/cloud/compute/reservations/v1/reservations_connection.cc index 30679341e2020..d4b1cc3d5c745 100644 --- a/google/cloud/compute/reservations/v1/reservations_connection.cc +++ b/google/cloud/compute/reservations/v1/reservations_connection.cc @@ -55,6 +55,23 @@ ReservationsConnection::DeleteReservation( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +ReservationsConnection::DeleteReservation( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::reservations::v1:: + DeleteReservationRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +ReservationsConnection::DeleteReservation( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr ReservationsConnection::GetReservation( google::cloud::cpp::compute::reservations::v1:: @@ -77,6 +94,23 @@ ReservationsConnection::InsertReservation( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +ReservationsConnection::InsertReservation( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::reservations::v1:: + InsertReservationRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +ReservationsConnection::InsertReservation( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StreamRange ReservationsConnection::ListReservations( google::cloud::cpp::compute::reservations::v1:: @@ -93,6 +127,22 @@ ReservationsConnection::Resize( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +ReservationsConnection::Resize( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::reservations::v1::ResizeRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +ReservationsConnection::Resize( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr ReservationsConnection::SetIamPolicy( google::cloud::cpp::compute::reservations::v1::SetIamPolicyRequest const&) { @@ -115,6 +165,23 @@ ReservationsConnection::UpdateReservation( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +ReservationsConnection::UpdateReservation( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::reservations::v1:: + UpdateReservationRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +ReservationsConnection::UpdateReservation( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace compute_reservations_v1 } // namespace cloud diff --git a/google/cloud/compute/reservations/v1/reservations_connection.h b/google/cloud/compute/reservations/v1/reservations_connection.h index 3f13fe376ce86..1bad36f431b35 100644 --- a/google/cloud/compute/reservations/v1/reservations_connection.h +++ b/google/cloud/compute/reservations/v1/reservations_connection.h @@ -22,8 +22,10 @@ #include "google/cloud/compute/reservations/v1/internal/reservations_retry_traits.h" #include "google/cloud/compute/reservations/v1/reservations_connection_idempotency_policy.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/internal/retry_policy_impl.h" +#include "google/cloud/no_await_tag.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" #include "google/cloud/status_or.h" @@ -193,6 +195,16 @@ class ReservationsConnection { DeleteReservation(google::cloud::cpp::compute::reservations::v1:: DeleteReservationRequest const& request); + virtual StatusOr + DeleteReservation(ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::reservations::v1:: + DeleteReservationRequest const& request); + + virtual future> + DeleteReservation( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual StatusOr GetReservation( google::cloud::cpp::compute::reservations::v1:: GetReservationRequest const& request); @@ -205,6 +217,16 @@ class ReservationsConnection { InsertReservation(google::cloud::cpp::compute::reservations::v1:: InsertReservationRequest const& request); + virtual StatusOr + InsertReservation(ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::reservations::v1:: + InsertReservationRequest const& request); + + virtual future> + InsertReservation( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual StreamRange ListReservations( google::cloud::cpp::compute::reservations::v1::ListReservationsRequest @@ -214,6 +236,15 @@ class ReservationsConnection { google::cloud::cpp::compute::reservations::v1::ResizeRequest const& request); + virtual StatusOr Resize( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::reservations::v1::ResizeRequest const& + request); + + virtual future> Resize( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual StatusOr SetIamPolicy( google::cloud::cpp::compute::reservations::v1::SetIamPolicyRequest const& request); @@ -225,6 +256,16 @@ class ReservationsConnection { virtual future> UpdateReservation(google::cloud::cpp::compute::reservations::v1:: UpdateReservationRequest const& request); + + virtual StatusOr + UpdateReservation(ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::reservations::v1:: + UpdateReservationRequest const& request); + + virtual future> + UpdateReservation( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); }; GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END diff --git a/google/cloud/compute/resource_policies/v1/internal/resource_policies_rest_connection_impl.cc b/google/cloud/compute/resource_policies/v1/internal/resource_policies_rest_connection_impl.cc index 5093a43195c03..562c380958a2a 100644 --- a/google/cloud/compute/resource_policies/v1/internal/resource_policies_rest_connection_impl.cc +++ b/google/cloud/compute/resource_policies/v1/internal/resource_policies_rest_connection_impl.cc @@ -23,6 +23,7 @@ #include "google/cloud/internal/async_rest_long_running_operation_custom.h" #include "google/cloud/internal/extract_long_running_result.h" #include "google/cloud/internal/pagination_range.h" +#include "google/cloud/internal/rest_lro_helpers.h" #include "google/cloud/internal/rest_retry_loop.h" #include "google/cloud/rest_options.h" #include @@ -147,6 +148,79 @@ ResourcePoliciesRestConnectionImpl::DeleteResourcePolicy( }); } +StatusOr +ResourcePoliciesRestConnectionImpl::DeleteResourcePolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::resource_policies::v1:: + DeleteResourcePolicyRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteResourcePolicy(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::resource_policies::v1:: + DeleteResourcePolicyRequest const& request) { + return stub_->DeleteResourcePolicy(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +ResourcePoliciesRestConnectionImpl::DeleteResourcePolicy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::region_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }); +} + StatusOr ResourcePoliciesRestConnectionImpl::GetResourcePolicy( google::cloud::cpp::compute::resource_policies::v1:: @@ -239,6 +313,79 @@ ResourcePoliciesRestConnectionImpl::InsertResourcePolicy( }); } +StatusOr +ResourcePoliciesRestConnectionImpl::InsertResourcePolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::resource_policies::v1:: + InsertResourcePolicyRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->InsertResourcePolicy(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::resource_policies::v1:: + InsertResourcePolicyRequest const& request) { + return stub_->InsertResourcePolicy(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +ResourcePoliciesRestConnectionImpl::InsertResourcePolicy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::region_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }); +} + StreamRange ResourcePoliciesRestConnectionImpl::ListResourcePolicies( google::cloud::cpp::compute::resource_policies::v1:: @@ -338,6 +485,79 @@ ResourcePoliciesRestConnectionImpl::PatchResourcePolicy( }); } +StatusOr +ResourcePoliciesRestConnectionImpl::PatchResourcePolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::resource_policies::v1:: + PatchResourcePolicyRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->PatchResourcePolicy(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::resource_policies::v1:: + PatchResourcePolicyRequest const& request) { + return stub_->PatchResourcePolicy(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +ResourcePoliciesRestConnectionImpl::PatchResourcePolicy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::region_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }); +} + StatusOr ResourcePoliciesRestConnectionImpl::SetIamPolicy( google::cloud::cpp::compute::resource_policies::v1:: diff --git a/google/cloud/compute/resource_policies/v1/internal/resource_policies_rest_connection_impl.h b/google/cloud/compute/resource_policies/v1/internal/resource_policies_rest_connection_impl.h index 44557450a4808..976ca2fb410f1 100644 --- a/google/cloud/compute/resource_policies/v1/internal/resource_policies_rest_connection_impl.h +++ b/google/cloud/compute/resource_policies/v1/internal/resource_policies_rest_connection_impl.h @@ -62,6 +62,16 @@ class ResourcePoliciesRestConnectionImpl DeleteResourcePolicy(google::cloud::cpp::compute::resource_policies::v1:: DeleteResourcePolicyRequest const& request) override; + StatusOr DeleteResourcePolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::resource_policies::v1:: + DeleteResourcePolicyRequest const& request) override; + + future> + DeleteResourcePolicy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StatusOr GetResourcePolicy( google::cloud::cpp::compute::resource_policies::v1:: GetResourcePolicyRequest const& request) override; @@ -74,6 +84,16 @@ class ResourcePoliciesRestConnectionImpl InsertResourcePolicy(google::cloud::cpp::compute::resource_policies::v1:: InsertResourcePolicyRequest const& request) override; + StatusOr InsertResourcePolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::resource_policies::v1:: + InsertResourcePolicyRequest const& request) override; + + future> + InsertResourcePolicy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StreamRange ListResourcePolicies(google::cloud::cpp::compute::resource_policies::v1:: ListResourcePoliciesRequest request) override; @@ -82,6 +102,16 @@ class ResourcePoliciesRestConnectionImpl PatchResourcePolicy(google::cloud::cpp::compute::resource_policies::v1:: PatchResourcePolicyRequest const& request) override; + StatusOr PatchResourcePolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::resource_policies::v1:: + PatchResourcePolicyRequest const& request) override; + + future> + PatchResourcePolicy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StatusOr SetIamPolicy( google::cloud::cpp::compute::resource_policies::v1:: SetIamPolicyRequest const& request) override; diff --git a/google/cloud/compute/resource_policies/v1/internal/resource_policies_tracing_connection.cc b/google/cloud/compute/resource_policies/v1/internal/resource_policies_tracing_connection.cc index 1a12febeb4a32..297ac9272fed5 100644 --- a/google/cloud/compute/resource_policies/v1/internal/resource_policies_tracing_connection.cc +++ b/google/cloud/compute/resource_policies/v1/internal/resource_policies_tracing_connection.cc @@ -62,6 +62,32 @@ ResourcePoliciesTracingConnection::DeleteResourcePolicy( child_->DeleteResourcePolicy(request)); } +StatusOr +ResourcePoliciesTracingConnection::DeleteResourcePolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::resource_policies::v1:: + DeleteResourcePolicyRequest const& request) { + auto span = internal::MakeSpan( + "compute_resource_policies_v1::ResourcePoliciesConnection::" + "DeleteResourcePolicy"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->DeleteResourcePolicy(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +ResourcePoliciesTracingConnection::DeleteResourcePolicy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_resource_policies_v1::ResourcePoliciesConnection::" + "DeleteResourcePolicy"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->DeleteResourcePolicy( + ExperimentalTag{}, operation)); +} + StatusOr ResourcePoliciesTracingConnection::GetResourcePolicy( google::cloud::cpp::compute::resource_policies::v1:: @@ -95,6 +121,32 @@ ResourcePoliciesTracingConnection::InsertResourcePolicy( child_->InsertResourcePolicy(request)); } +StatusOr +ResourcePoliciesTracingConnection::InsertResourcePolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::resource_policies::v1:: + InsertResourcePolicyRequest const& request) { + auto span = internal::MakeSpan( + "compute_resource_policies_v1::ResourcePoliciesConnection::" + "InsertResourcePolicy"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->InsertResourcePolicy(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +ResourcePoliciesTracingConnection::InsertResourcePolicy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_resource_policies_v1::ResourcePoliciesConnection::" + "InsertResourcePolicy"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->InsertResourcePolicy( + ExperimentalTag{}, operation)); +} + StreamRange ResourcePoliciesTracingConnection::ListResourcePolicies( google::cloud::cpp::compute::resource_policies::v1:: @@ -121,6 +173,32 @@ ResourcePoliciesTracingConnection::PatchResourcePolicy( child_->PatchResourcePolicy(request)); } +StatusOr +ResourcePoliciesTracingConnection::PatchResourcePolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::resource_policies::v1:: + PatchResourcePolicyRequest const& request) { + auto span = internal::MakeSpan( + "compute_resource_policies_v1::ResourcePoliciesConnection::" + "PatchResourcePolicy"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->PatchResourcePolicy(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +ResourcePoliciesTracingConnection::PatchResourcePolicy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_resource_policies_v1::ResourcePoliciesConnection::" + "PatchResourcePolicy"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->PatchResourcePolicy( + ExperimentalTag{}, operation)); +} + StatusOr ResourcePoliciesTracingConnection::SetIamPolicy( google::cloud::cpp::compute::resource_policies::v1:: diff --git a/google/cloud/compute/resource_policies/v1/internal/resource_policies_tracing_connection.h b/google/cloud/compute/resource_policies/v1/internal/resource_policies_tracing_connection.h index 16b84a849d8ff..a004f8fe712d5 100644 --- a/google/cloud/compute/resource_policies/v1/internal/resource_policies_tracing_connection.h +++ b/google/cloud/compute/resource_policies/v1/internal/resource_policies_tracing_connection.h @@ -51,6 +51,16 @@ class ResourcePoliciesTracingConnection DeleteResourcePolicy(google::cloud::cpp::compute::resource_policies::v1:: DeleteResourcePolicyRequest const& request) override; + StatusOr DeleteResourcePolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::resource_policies::v1:: + DeleteResourcePolicyRequest const& request) override; + + future> + DeleteResourcePolicy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StatusOr GetResourcePolicy( google::cloud::cpp::compute::resource_policies::v1:: GetResourcePolicyRequest const& request) override; @@ -63,6 +73,16 @@ class ResourcePoliciesTracingConnection InsertResourcePolicy(google::cloud::cpp::compute::resource_policies::v1:: InsertResourcePolicyRequest const& request) override; + StatusOr InsertResourcePolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::resource_policies::v1:: + InsertResourcePolicyRequest const& request) override; + + future> + InsertResourcePolicy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StreamRange ListResourcePolicies(google::cloud::cpp::compute::resource_policies::v1:: ListResourcePoliciesRequest request) override; @@ -71,6 +91,16 @@ class ResourcePoliciesTracingConnection PatchResourcePolicy(google::cloud::cpp::compute::resource_policies::v1:: PatchResourcePolicyRequest const& request) override; + StatusOr PatchResourcePolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::resource_policies::v1:: + PatchResourcePolicyRequest const& request) override; + + future> + PatchResourcePolicy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StatusOr SetIamPolicy( google::cloud::cpp::compute::resource_policies::v1:: SetIamPolicyRequest const& request) override; diff --git a/google/cloud/compute/resource_policies/v1/mocks/mock_resource_policies_connection.h b/google/cloud/compute/resource_policies/v1/mocks/mock_resource_policies_connection.h index eb331c7a72fc0..f6ca050b6ac1d 100644 --- a/google/cloud/compute/resource_policies/v1/mocks/mock_resource_policies_connection.h +++ b/google/cloud/compute/resource_policies/v1/mocks/mock_resource_policies_connection.h @@ -61,6 +61,19 @@ class MockResourcePoliciesConnection DeleteResourcePolicyRequest const& request), (override)); + MOCK_METHOD(StatusOr, + DeleteResourcePolicy, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::resource_policies::v1:: + DeleteResourcePolicyRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteResourcePolicy, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD(StatusOr, GetResourcePolicy, (google::cloud::cpp::compute::resource_policies::v1:: @@ -78,6 +91,19 @@ class MockResourcePoliciesConnection InsertResourcePolicyRequest const& request), (override)); + MOCK_METHOD(StatusOr, + InsertResourcePolicy, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::resource_policies::v1:: + InsertResourcePolicyRequest const& request), + (override)); + + MOCK_METHOD(future>, + InsertResourcePolicy, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD((StreamRange), ListResourcePolicies, (google::cloud::cpp::compute::resource_policies::v1:: @@ -90,6 +116,19 @@ class MockResourcePoliciesConnection PatchResourcePolicyRequest const& request), (override)); + MOCK_METHOD(StatusOr, + PatchResourcePolicy, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::resource_policies::v1:: + PatchResourcePolicyRequest const& request), + (override)); + + MOCK_METHOD(future>, + PatchResourcePolicy, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD(StatusOr, SetIamPolicy, (google::cloud::cpp::compute::resource_policies::v1:: SetIamPolicyRequest const& request), diff --git a/google/cloud/compute/resource_policies/v1/resource_policies_connection.cc b/google/cloud/compute/resource_policies/v1/resource_policies_connection.cc index 47ac6483db573..b6d493b4b2d16 100644 --- a/google/cloud/compute/resource_policies/v1/resource_policies_connection.cc +++ b/google/cloud/compute/resource_policies/v1/resource_policies_connection.cc @@ -55,6 +55,23 @@ ResourcePoliciesConnection::DeleteResourcePolicy( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +ResourcePoliciesConnection::DeleteResourcePolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::resource_policies::v1:: + DeleteResourcePolicyRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +ResourcePoliciesConnection::DeleteResourcePolicy( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr ResourcePoliciesConnection::GetResourcePolicy( google::cloud::cpp::compute::resource_policies::v1:: @@ -78,6 +95,23 @@ ResourcePoliciesConnection::InsertResourcePolicy( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +ResourcePoliciesConnection::InsertResourcePolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::resource_policies::v1:: + InsertResourcePolicyRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +ResourcePoliciesConnection::InsertResourcePolicy( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StreamRange ResourcePoliciesConnection::ListResourcePolicies( google::cloud::cpp::compute::resource_policies::v1:: @@ -95,6 +129,23 @@ ResourcePoliciesConnection::PatchResourcePolicy( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +ResourcePoliciesConnection::PatchResourcePolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::resource_policies::v1:: + PatchResourcePolicyRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +ResourcePoliciesConnection::PatchResourcePolicy( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr ResourcePoliciesConnection::SetIamPolicy( google::cloud::cpp::compute::resource_policies::v1:: diff --git a/google/cloud/compute/resource_policies/v1/resource_policies_connection.h b/google/cloud/compute/resource_policies/v1/resource_policies_connection.h index 6c5ca04d3cd82..13601fa189c86 100644 --- a/google/cloud/compute/resource_policies/v1/resource_policies_connection.h +++ b/google/cloud/compute/resource_policies/v1/resource_policies_connection.h @@ -22,8 +22,10 @@ #include "google/cloud/compute/resource_policies/v1/internal/resource_policies_retry_traits.h" #include "google/cloud/compute/resource_policies/v1/resource_policies_connection_idempotency_policy.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/internal/retry_policy_impl.h" +#include "google/cloud/no_await_tag.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" #include "google/cloud/status_or.h" @@ -196,6 +198,16 @@ class ResourcePoliciesConnection { DeleteResourcePolicy(google::cloud::cpp::compute::resource_policies::v1:: DeleteResourcePolicyRequest const& request); + virtual StatusOr + DeleteResourcePolicy(ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::resource_policies::v1:: + DeleteResourcePolicyRequest const& request); + + virtual future> + DeleteResourcePolicy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual StatusOr GetResourcePolicy(google::cloud::cpp::compute::resource_policies::v1:: GetResourcePolicyRequest const& request); @@ -208,6 +220,16 @@ class ResourcePoliciesConnection { InsertResourcePolicy(google::cloud::cpp::compute::resource_policies::v1:: InsertResourcePolicyRequest const& request); + virtual StatusOr + InsertResourcePolicy(ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::resource_policies::v1:: + InsertResourcePolicyRequest const& request); + + virtual future> + InsertResourcePolicy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual StreamRange ListResourcePolicies(google::cloud::cpp::compute::resource_policies::v1:: ListResourcePoliciesRequest request); @@ -216,6 +238,16 @@ class ResourcePoliciesConnection { PatchResourcePolicy(google::cloud::cpp::compute::resource_policies::v1:: PatchResourcePolicyRequest const& request); + virtual StatusOr + PatchResourcePolicy(ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::resource_policies::v1:: + PatchResourcePolicyRequest const& request); + + virtual future> + PatchResourcePolicy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual StatusOr SetIamPolicy( google::cloud::cpp::compute::resource_policies::v1:: SetIamPolicyRequest const& request); diff --git a/google/cloud/compute/routers/v1/internal/routers_rest_connection_impl.cc b/google/cloud/compute/routers/v1/internal/routers_rest_connection_impl.cc index de566d20c42bc..bebd589b0afb1 100644 --- a/google/cloud/compute/routers/v1/internal/routers_rest_connection_impl.cc +++ b/google/cloud/compute/routers/v1/internal/routers_rest_connection_impl.cc @@ -23,6 +23,7 @@ #include "google/cloud/internal/async_rest_long_running_operation_custom.h" #include "google/cloud/internal/extract_long_running_result.h" #include "google/cloud/internal/pagination_range.h" +#include "google/cloud/internal/rest_lro_helpers.h" #include "google/cloud/internal/rest_retry_loop.h" #include "google/cloud/rest_options.h" #include @@ -143,6 +144,80 @@ RoutersRestConnectionImpl::DeleteRouter( }); } +StatusOr +RoutersRestConnectionImpl::DeleteRouter( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::routers::v1::DeleteRouterRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteRouter(request), + [this]( + rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::routers::v1::DeleteRouterRequest const& + request) { + return stub_->DeleteRouter(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +RoutersRestConnectionImpl::DeleteRouter( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::region_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }); +} + StatusOr RoutersRestConnectionImpl::GetRouter( google::cloud::cpp::compute::routers::v1::GetRouterRequest const& request) { @@ -268,6 +343,80 @@ RoutersRestConnectionImpl::InsertRouter( }); } +StatusOr +RoutersRestConnectionImpl::InsertRouter( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::routers::v1::InsertRouterRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->InsertRouter(request), + [this]( + rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::routers::v1::InsertRouterRequest const& + request) { + return stub_->InsertRouter(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +RoutersRestConnectionImpl::InsertRouter( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::region_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }); +} + StreamRange RoutersRestConnectionImpl::ListRouters( google::cloud::cpp::compute::routers::v1::ListRoutersRequest request) { @@ -365,6 +514,79 @@ RoutersRestConnectionImpl::PatchRouter( }); } +StatusOr +RoutersRestConnectionImpl::PatchRouter( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::routers::v1::PatchRouterRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->PatchRouter(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::routers::v1::PatchRouterRequest const& + request) { + return stub_->PatchRouter(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +RoutersRestConnectionImpl::PatchRouter( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::region_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }); +} + StatusOr RoutersRestConnectionImpl::Preview( google::cloud::cpp::compute::routers::v1::PreviewRequest const& request) { @@ -441,6 +663,80 @@ RoutersRestConnectionImpl::UpdateRouter( }); } +StatusOr +RoutersRestConnectionImpl::UpdateRouter( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::routers::v1::UpdateRouterRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UpdateRouter(request), + [this]( + rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::routers::v1::UpdateRouterRequest const& + request) { + return stub_->UpdateRouter(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +RoutersRestConnectionImpl::UpdateRouter( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::region_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace compute_routers_v1_internal } // namespace cloud diff --git a/google/cloud/compute/routers/v1/internal/routers_rest_connection_impl.h b/google/cloud/compute/routers/v1/internal/routers_rest_connection_impl.h index eb1e97e4e4187..957d6919c5996 100644 --- a/google/cloud/compute/routers/v1/internal/routers_rest_connection_impl.h +++ b/google/cloud/compute/routers/v1/internal/routers_rest_connection_impl.h @@ -59,6 +59,15 @@ class RoutersRestConnectionImpl : public compute_routers_v1::RoutersConnection { google::cloud::cpp::compute::routers::v1::DeleteRouterRequest const& request) override; + StatusOr DeleteRouter( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::routers::v1::DeleteRouterRequest const& + request) override; + + future> DeleteRouter( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StatusOr GetRouter( google::cloud::cpp::compute::routers::v1::GetRouterRequest const& request) override; @@ -81,6 +90,15 @@ class RoutersRestConnectionImpl : public compute_routers_v1::RoutersConnection { google::cloud::cpp::compute::routers::v1::InsertRouterRequest const& request) override; + StatusOr InsertRouter( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::routers::v1::InsertRouterRequest const& + request) override; + + future> InsertRouter( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StreamRange ListRouters( google::cloud::cpp::compute::routers::v1::ListRoutersRequest request) override; @@ -89,6 +107,15 @@ class RoutersRestConnectionImpl : public compute_routers_v1::RoutersConnection { google::cloud::cpp::compute::routers::v1::PatchRouterRequest const& request) override; + StatusOr PatchRouter( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::routers::v1::PatchRouterRequest const& + request) override; + + future> PatchRouter( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StatusOr Preview( google::cloud::cpp::compute::routers::v1::PreviewRequest const& request) override; @@ -97,6 +124,15 @@ class RoutersRestConnectionImpl : public compute_routers_v1::RoutersConnection { google::cloud::cpp::compute::routers::v1::UpdateRouterRequest const& request) override; + StatusOr UpdateRouter( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::routers::v1::UpdateRouterRequest const& + request) override; + + future> UpdateRouter( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + private: static std::unique_ptr retry_policy( Options const& options) { diff --git a/google/cloud/compute/routers/v1/internal/routers_tracing_connection.cc b/google/cloud/compute/routers/v1/internal/routers_tracing_connection.cc index 7f80d5c1ee6b1..10bb0a5f6b513 100644 --- a/google/cloud/compute/routers/v1/internal/routers_tracing_connection.cc +++ b/google/cloud/compute/routers/v1/internal/routers_tracing_connection.cc @@ -57,6 +57,29 @@ RoutersTracingConnection::DeleteRouter( return internal::EndSpan(std::move(span), child_->DeleteRouter(request)); } +StatusOr +RoutersTracingConnection::DeleteRouter( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::routers::v1::DeleteRouterRequest const& + request) { + auto span = + internal::MakeSpan("compute_routers_v1::RoutersConnection::DeleteRouter"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->DeleteRouter(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +RoutersTracingConnection::DeleteRouter( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = + internal::MakeSpan("compute_routers_v1::RoutersConnection::DeleteRouter"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->DeleteRouter(ExperimentalTag{}, operation)); +} + StatusOr RoutersTracingConnection::GetRouter( google::cloud::cpp::compute::routers::v1::GetRouterRequest const& request) { @@ -106,6 +129,29 @@ RoutersTracingConnection::InsertRouter( return internal::EndSpan(std::move(span), child_->InsertRouter(request)); } +StatusOr +RoutersTracingConnection::InsertRouter( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::routers::v1::InsertRouterRequest const& + request) { + auto span = + internal::MakeSpan("compute_routers_v1::RoutersConnection::InsertRouter"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->InsertRouter(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +RoutersTracingConnection::InsertRouter( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = + internal::MakeSpan("compute_routers_v1::RoutersConnection::InsertRouter"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->InsertRouter(ExperimentalTag{}, operation)); +} + StreamRange RoutersTracingConnection::ListRouters( google::cloud::cpp::compute::routers::v1::ListRoutersRequest request) { @@ -127,6 +173,29 @@ RoutersTracingConnection::PatchRouter( return internal::EndSpan(std::move(span), child_->PatchRouter(request)); } +StatusOr +RoutersTracingConnection::PatchRouter( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::routers::v1::PatchRouterRequest const& + request) { + auto span = + internal::MakeSpan("compute_routers_v1::RoutersConnection::PatchRouter"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->PatchRouter(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +RoutersTracingConnection::PatchRouter( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = + internal::MakeSpan("compute_routers_v1::RoutersConnection::PatchRouter"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->PatchRouter(ExperimentalTag{}, operation)); +} + StatusOr RoutersTracingConnection::Preview( google::cloud::cpp::compute::routers::v1::PreviewRequest const& request) { @@ -146,6 +215,29 @@ RoutersTracingConnection::UpdateRouter( return internal::EndSpan(std::move(span), child_->UpdateRouter(request)); } +StatusOr +RoutersTracingConnection::UpdateRouter( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::routers::v1::UpdateRouterRequest const& + request) { + auto span = + internal::MakeSpan("compute_routers_v1::RoutersConnection::UpdateRouter"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->UpdateRouter(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +RoutersTracingConnection::UpdateRouter( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = + internal::MakeSpan("compute_routers_v1::RoutersConnection::UpdateRouter"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->UpdateRouter(ExperimentalTag{}, operation)); +} + #endif // GOOGLE_CLOUD_CPP_HAVE_OPENTELEMETRY std::shared_ptr diff --git a/google/cloud/compute/routers/v1/internal/routers_tracing_connection.h b/google/cloud/compute/routers/v1/internal/routers_tracing_connection.h index 664cc0edb42ef..1c60bedf90b18 100644 --- a/google/cloud/compute/routers/v1/internal/routers_tracing_connection.h +++ b/google/cloud/compute/routers/v1/internal/routers_tracing_connection.h @@ -49,6 +49,15 @@ class RoutersTracingConnection : public compute_routers_v1::RoutersConnection { google::cloud::cpp::compute::routers::v1::DeleteRouterRequest const& request) override; + StatusOr DeleteRouter( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::routers::v1::DeleteRouterRequest const& + request) override; + + future> DeleteRouter( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StatusOr GetRouter( google::cloud::cpp::compute::routers::v1::GetRouterRequest const& request) override; @@ -71,6 +80,15 @@ class RoutersTracingConnection : public compute_routers_v1::RoutersConnection { google::cloud::cpp::compute::routers::v1::InsertRouterRequest const& request) override; + StatusOr InsertRouter( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::routers::v1::InsertRouterRequest const& + request) override; + + future> InsertRouter( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StreamRange ListRouters( google::cloud::cpp::compute::routers::v1::ListRoutersRequest request) override; @@ -79,6 +97,15 @@ class RoutersTracingConnection : public compute_routers_v1::RoutersConnection { google::cloud::cpp::compute::routers::v1::PatchRouterRequest const& request) override; + StatusOr PatchRouter( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::routers::v1::PatchRouterRequest const& + request) override; + + future> PatchRouter( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StatusOr Preview( google::cloud::cpp::compute::routers::v1::PreviewRequest const& request) override; @@ -87,6 +114,15 @@ class RoutersTracingConnection : public compute_routers_v1::RoutersConnection { google::cloud::cpp::compute::routers::v1::UpdateRouterRequest const& request) override; + StatusOr UpdateRouter( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::routers::v1::UpdateRouterRequest const& + request) override; + + future> UpdateRouter( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + private: std::shared_ptr child_; }; diff --git a/google/cloud/compute/routers/v1/mocks/mock_routers_connection.h b/google/cloud/compute/routers/v1/mocks/mock_routers_connection.h index abe8770777106..2440c426a8a70 100644 --- a/google/cloud/compute/routers/v1/mocks/mock_routers_connection.h +++ b/google/cloud/compute/routers/v1/mocks/mock_routers_connection.h @@ -61,6 +61,19 @@ class MockRoutersConnection : public compute_routers_v1::RoutersConnection { request), (override)); + MOCK_METHOD( + StatusOr, DeleteRouter, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::routers::v1::DeleteRouterRequest const& + request), + (override)); + + MOCK_METHOD(future>, + DeleteRouter, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD(StatusOr, GetRouter, (google::cloud::cpp::compute::routers::v1::GetRouterRequest const& request), @@ -94,6 +107,19 @@ class MockRoutersConnection : public compute_routers_v1::RoutersConnection { request), (override)); + MOCK_METHOD( + StatusOr, InsertRouter, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::routers::v1::InsertRouterRequest const& + request), + (override)); + + MOCK_METHOD(future>, + InsertRouter, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD( (StreamRange), ListRouters, (google::cloud::cpp::compute::routers::v1::ListRoutersRequest request), @@ -105,6 +131,19 @@ class MockRoutersConnection : public compute_routers_v1::RoutersConnection { request), (override)); + MOCK_METHOD( + StatusOr, PatchRouter, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::routers::v1::PatchRouterRequest const& + request), + (override)); + + MOCK_METHOD(future>, + PatchRouter, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr, Preview, @@ -117,6 +156,19 @@ class MockRoutersConnection : public compute_routers_v1::RoutersConnection { (google::cloud::cpp::compute::routers::v1::UpdateRouterRequest const& request), (override)); + + MOCK_METHOD( + StatusOr, UpdateRouter, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::routers::v1::UpdateRouterRequest const& + request), + (override)); + + MOCK_METHOD(future>, + UpdateRouter, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); }; GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END diff --git a/google/cloud/compute/routers/v1/routers_connection.cc b/google/cloud/compute/routers/v1/routers_connection.cc index ad1ffaccb9d9a..50c9157e4fdd3 100644 --- a/google/cloud/compute/routers/v1/routers_connection.cc +++ b/google/cloud/compute/routers/v1/routers_connection.cc @@ -54,6 +54,22 @@ RoutersConnection::DeleteRouter( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +RoutersConnection::DeleteRouter( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::routers::v1::DeleteRouterRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +RoutersConnection::DeleteRouter( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr RoutersConnection::GetRouter( google::cloud::cpp::compute::routers::v1::GetRouterRequest const&) { return Status(StatusCode::kUnimplemented, "not implemented"); @@ -85,6 +101,22 @@ RoutersConnection::InsertRouter( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +RoutersConnection::InsertRouter( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::routers::v1::InsertRouterRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +RoutersConnection::InsertRouter( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StreamRange RoutersConnection::ListRouters( google::cloud::cpp::compute::routers::v1:: @@ -101,6 +133,22 @@ RoutersConnection::PatchRouter( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +RoutersConnection::PatchRouter( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::routers::v1::PatchRouterRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +RoutersConnection::PatchRouter( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr RoutersConnection::Preview( google::cloud::cpp::compute::routers::v1::PreviewRequest const&) { @@ -115,6 +163,22 @@ RoutersConnection::UpdateRouter( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +RoutersConnection::UpdateRouter( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::routers::v1::UpdateRouterRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +RoutersConnection::UpdateRouter( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace compute_routers_v1 } // namespace cloud diff --git a/google/cloud/compute/routers/v1/routers_connection.h b/google/cloud/compute/routers/v1/routers_connection.h index c57421010f978..b366b328738d5 100644 --- a/google/cloud/compute/routers/v1/routers_connection.h +++ b/google/cloud/compute/routers/v1/routers_connection.h @@ -22,8 +22,10 @@ #include "google/cloud/compute/routers/v1/internal/routers_retry_traits.h" #include "google/cloud/compute/routers/v1/routers_connection_idempotency_policy.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/internal/retry_policy_impl.h" +#include "google/cloud/no_await_tag.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" #include "google/cloud/status_or.h" @@ -192,6 +194,15 @@ class RoutersConnection { google::cloud::cpp::compute::routers::v1::DeleteRouterRequest const& request); + virtual StatusOr DeleteRouter( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::routers::v1::DeleteRouterRequest const& + request); + + virtual future> + DeleteRouter(ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual StatusOr GetRouter( google::cloud::cpp::compute::routers::v1::GetRouterRequest const& request); @@ -216,6 +227,15 @@ class RoutersConnection { google::cloud::cpp::compute::routers::v1::InsertRouterRequest const& request); + virtual StatusOr InsertRouter( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::routers::v1::InsertRouterRequest const& + request); + + virtual future> + InsertRouter(ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual StreamRange ListRouters( google::cloud::cpp::compute::routers::v1::ListRoutersRequest request); @@ -224,6 +244,15 @@ class RoutersConnection { google::cloud::cpp::compute::routers::v1::PatchRouterRequest const& request); + virtual StatusOr PatchRouter( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::routers::v1::PatchRouterRequest const& + request); + + virtual future> + PatchRouter(ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual StatusOr Preview( google::cloud::cpp::compute::routers::v1::PreviewRequest const& request); @@ -232,6 +261,15 @@ class RoutersConnection { UpdateRouter( google::cloud::cpp::compute::routers::v1::UpdateRouterRequest const& request); + + virtual StatusOr UpdateRouter( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::routers::v1::UpdateRouterRequest const& + request); + + virtual future> + UpdateRouter(ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); }; GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END diff --git a/google/cloud/compute/routes/v1/internal/routes_rest_connection_impl.cc b/google/cloud/compute/routes/v1/internal/routes_rest_connection_impl.cc index 4d74f70945917..ec5b3c9ec8bfb 100644 --- a/google/cloud/compute/routes/v1/internal/routes_rest_connection_impl.cc +++ b/google/cloud/compute/routes/v1/internal/routes_rest_connection_impl.cc @@ -23,6 +23,7 @@ #include "google/cloud/internal/async_rest_long_running_operation_custom.h" #include "google/cloud/internal/extract_long_running_result.h" #include "google/cloud/internal/pagination_range.h" +#include "google/cloud/internal/rest_lro_helpers.h" #include "google/cloud/internal/rest_retry_loop.h" #include "google/cloud/rest_options.h" #include @@ -101,6 +102,77 @@ RoutesRestConnectionImpl::DeleteRoute( }); } +StatusOr +RoutesRestConnectionImpl::DeleteRoute( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::routes::v1::DeleteRouteRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteRoute(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::routes::v1::DeleteRouteRequest const& + request) { + return stub_->DeleteRoute(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +RoutesRestConnectionImpl::DeleteRoute( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::global_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }); +} + StatusOr RoutesRestConnectionImpl::GetRoute( google::cloud::cpp::compute::routes::v1::GetRouteRequest const& request) { @@ -175,6 +247,77 @@ RoutesRestConnectionImpl::InsertRoute( }); } +StatusOr +RoutesRestConnectionImpl::InsertRoute( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::routes::v1::InsertRouteRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->InsertRoute(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::routes::v1::InsertRouteRequest const& + request) { + return stub_->InsertRoute(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +RoutesRestConnectionImpl::InsertRoute( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::global_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }); +} + StreamRange RoutesRestConnectionImpl::ListRoutes( google::cloud::cpp::compute::routes::v1::ListRoutesRequest request) { diff --git a/google/cloud/compute/routes/v1/internal/routes_rest_connection_impl.h b/google/cloud/compute/routes/v1/internal/routes_rest_connection_impl.h index 681f1598e2e35..872729a86e5a3 100644 --- a/google/cloud/compute/routes/v1/internal/routes_rest_connection_impl.h +++ b/google/cloud/compute/routes/v1/internal/routes_rest_connection_impl.h @@ -53,6 +53,15 @@ class RoutesRestConnectionImpl : public compute_routes_v1::RoutesConnection { google::cloud::cpp::compute::routes::v1::DeleteRouteRequest const& request) override; + StatusOr DeleteRoute( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::routes::v1::DeleteRouteRequest const& + request) override; + + future> DeleteRoute( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StatusOr GetRoute( google::cloud::cpp::compute::routes::v1::GetRouteRequest const& request) override; @@ -61,6 +70,15 @@ class RoutesRestConnectionImpl : public compute_routes_v1::RoutesConnection { google::cloud::cpp::compute::routes::v1::InsertRouteRequest const& request) override; + StatusOr InsertRoute( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::routes::v1::InsertRouteRequest const& + request) override; + + future> InsertRoute( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StreamRange ListRoutes( google::cloud::cpp::compute::routes::v1::ListRoutesRequest request) override; diff --git a/google/cloud/compute/routes/v1/internal/routes_tracing_connection.cc b/google/cloud/compute/routes/v1/internal/routes_tracing_connection.cc index 037fbd446bd8a..e2634d6953288 100644 --- a/google/cloud/compute/routes/v1/internal/routes_tracing_connection.cc +++ b/google/cloud/compute/routes/v1/internal/routes_tracing_connection.cc @@ -43,6 +43,29 @@ RoutesTracingConnection::DeleteRoute( return internal::EndSpan(std::move(span), child_->DeleteRoute(request)); } +StatusOr +RoutesTracingConnection::DeleteRoute( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::routes::v1::DeleteRouteRequest const& + request) { + auto span = + internal::MakeSpan("compute_routes_v1::RoutesConnection::DeleteRoute"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->DeleteRoute(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +RoutesTracingConnection::DeleteRoute( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = + internal::MakeSpan("compute_routes_v1::RoutesConnection::DeleteRoute"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->DeleteRoute(ExperimentalTag{}, operation)); +} + StatusOr RoutesTracingConnection::GetRoute( google::cloud::cpp::compute::routes::v1::GetRouteRequest const& request) { @@ -62,6 +85,29 @@ RoutesTracingConnection::InsertRoute( return internal::EndSpan(std::move(span), child_->InsertRoute(request)); } +StatusOr +RoutesTracingConnection::InsertRoute( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::routes::v1::InsertRouteRequest const& + request) { + auto span = + internal::MakeSpan("compute_routes_v1::RoutesConnection::InsertRoute"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->InsertRoute(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +RoutesTracingConnection::InsertRoute( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = + internal::MakeSpan("compute_routes_v1::RoutesConnection::InsertRoute"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->InsertRoute(ExperimentalTag{}, operation)); +} + StreamRange RoutesTracingConnection::ListRoutes( google::cloud::cpp::compute::routes::v1::ListRoutesRequest request) { diff --git a/google/cloud/compute/routes/v1/internal/routes_tracing_connection.h b/google/cloud/compute/routes/v1/internal/routes_tracing_connection.h index bd88f72bc219c..e6714f69bdb4e 100644 --- a/google/cloud/compute/routes/v1/internal/routes_tracing_connection.h +++ b/google/cloud/compute/routes/v1/internal/routes_tracing_connection.h @@ -43,6 +43,15 @@ class RoutesTracingConnection : public compute_routes_v1::RoutesConnection { google::cloud::cpp::compute::routes::v1::DeleteRouteRequest const& request) override; + StatusOr DeleteRoute( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::routes::v1::DeleteRouteRequest const& + request) override; + + future> DeleteRoute( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StatusOr GetRoute( google::cloud::cpp::compute::routes::v1::GetRouteRequest const& request) override; @@ -51,6 +60,15 @@ class RoutesTracingConnection : public compute_routes_v1::RoutesConnection { google::cloud::cpp::compute::routes::v1::InsertRouteRequest const& request) override; + StatusOr InsertRoute( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::routes::v1::InsertRouteRequest const& + request) override; + + future> InsertRoute( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StreamRange ListRoutes( google::cloud::cpp::compute::routes::v1::ListRoutesRequest request) override; diff --git a/google/cloud/compute/routes/v1/mocks/mock_routes_connection.h b/google/cloud/compute/routes/v1/mocks/mock_routes_connection.h index e3550eff0f414..e234d0c0b23a3 100644 --- a/google/cloud/compute/routes/v1/mocks/mock_routes_connection.h +++ b/google/cloud/compute/routes/v1/mocks/mock_routes_connection.h @@ -52,6 +52,19 @@ class MockRoutesConnection : public compute_routes_v1::RoutesConnection { request), (override)); + MOCK_METHOD( + StatusOr, DeleteRoute, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::routes::v1::DeleteRouteRequest const& + request), + (override)); + + MOCK_METHOD(future>, + DeleteRoute, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr, GetRoute, (google::cloud::cpp::compute::routes::v1::GetRouteRequest const& request), @@ -63,6 +76,19 @@ class MockRoutesConnection : public compute_routes_v1::RoutesConnection { request), (override)); + MOCK_METHOD( + StatusOr, InsertRoute, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::routes::v1::InsertRouteRequest const& + request), + (override)); + + MOCK_METHOD(future>, + InsertRoute, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD( (StreamRange), ListRoutes, (google::cloud::cpp::compute::routes::v1::ListRoutesRequest request), diff --git a/google/cloud/compute/routes/v1/routes_connection.cc b/google/cloud/compute/routes/v1/routes_connection.cc index 4e629d0d4e683..b52918849800e 100644 --- a/google/cloud/compute/routes/v1/routes_connection.cc +++ b/google/cloud/compute/routes/v1/routes_connection.cc @@ -44,6 +44,22 @@ RoutesConnection::DeleteRoute( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +RoutesConnection::DeleteRoute( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::routes::v1::DeleteRouteRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +RoutesConnection::DeleteRoute( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr RoutesConnection::GetRoute( google::cloud::cpp::compute::routes::v1::GetRouteRequest const&) { return Status(StatusCode::kUnimplemented, "not implemented"); @@ -57,6 +73,22 @@ RoutesConnection::InsertRoute( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +RoutesConnection::InsertRoute( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::routes::v1::InsertRouteRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +RoutesConnection::InsertRoute( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StreamRange RoutesConnection::ListRoutes( google::cloud::cpp::compute::routes::v1:: diff --git a/google/cloud/compute/routes/v1/routes_connection.h b/google/cloud/compute/routes/v1/routes_connection.h index 1a44a865c0052..ce75f75fafc63 100644 --- a/google/cloud/compute/routes/v1/routes_connection.h +++ b/google/cloud/compute/routes/v1/routes_connection.h @@ -22,8 +22,10 @@ #include "google/cloud/compute/routes/v1/internal/routes_retry_traits.h" #include "google/cloud/compute/routes/v1/routes_connection_idempotency_policy.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/internal/retry_policy_impl.h" +#include "google/cloud/no_await_tag.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" #include "google/cloud/status_or.h" @@ -184,6 +186,15 @@ class RoutesConnection { DeleteRoute(google::cloud::cpp::compute::routes::v1::DeleteRouteRequest const& request); + virtual StatusOr DeleteRoute( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::routes::v1::DeleteRouteRequest const& + request); + + virtual future> + DeleteRoute(ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual StatusOr GetRoute( google::cloud::cpp::compute::routes::v1::GetRouteRequest const& request); @@ -191,6 +202,15 @@ class RoutesConnection { InsertRoute(google::cloud::cpp::compute::routes::v1::InsertRouteRequest const& request); + virtual StatusOr InsertRoute( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::routes::v1::InsertRouteRequest const& + request); + + virtual future> + InsertRoute(ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual StreamRange ListRoutes( google::cloud::cpp::compute::routes::v1::ListRoutesRequest request); }; diff --git a/google/cloud/compute/security_policies/v1/internal/security_policies_rest_connection_impl.cc b/google/cloud/compute/security_policies/v1/internal/security_policies_rest_connection_impl.cc index 121ac7403e254..71dae59161355 100644 --- a/google/cloud/compute/security_policies/v1/internal/security_policies_rest_connection_impl.cc +++ b/google/cloud/compute/security_policies/v1/internal/security_policies_rest_connection_impl.cc @@ -23,6 +23,7 @@ #include "google/cloud/internal/async_rest_long_running_operation_custom.h" #include "google/cloud/internal/extract_long_running_result.h" #include "google/cloud/internal/pagination_range.h" +#include "google/cloud/internal/rest_lro_helpers.h" #include "google/cloud/internal/rest_retry_loop.h" #include "google/cloud/rest_options.h" #include @@ -102,6 +103,77 @@ SecurityPoliciesRestConnectionImpl::AddRule( }); } +StatusOr +SecurityPoliciesRestConnectionImpl::AddRule( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::security_policies::v1::AddRuleRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->AddRule(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::security_policies::v1:: + AddRuleRequest const& request) { + return stub_->AddRule(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +SecurityPoliciesRestConnectionImpl::AddRule( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::global_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }); +} + StreamRange> SecurityPoliciesRestConnectionImpl::AggregatedListSecurityPolicies( @@ -203,6 +275,77 @@ SecurityPoliciesRestConnectionImpl::DeleteSecurityPolicy( }); } +StatusOr +SecurityPoliciesRestConnectionImpl::DeleteSecurityPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::security_policies::v1:: + DeleteSecurityPolicyRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteSecurityPolicy(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::security_policies::v1:: + DeleteSecurityPolicyRequest const& request) { + return stub_->DeleteSecurityPolicy(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +SecurityPoliciesRestConnectionImpl::DeleteSecurityPolicy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::global_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }); +} + StatusOr SecurityPoliciesRestConnectionImpl::GetSecurityPolicy( google::cloud::cpp::compute::security_policies::v1:: @@ -293,6 +436,77 @@ SecurityPoliciesRestConnectionImpl::InsertSecurityPolicy( }); } +StatusOr +SecurityPoliciesRestConnectionImpl::InsertSecurityPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::security_policies::v1:: + InsertSecurityPolicyRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->InsertSecurityPolicy(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::security_policies::v1:: + InsertSecurityPolicyRequest const& request) { + return stub_->InsertSecurityPolicy(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +SecurityPoliciesRestConnectionImpl::InsertSecurityPolicy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::global_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }); +} + StreamRange SecurityPoliciesRestConnectionImpl::ListSecurityPolicies( google::cloud::cpp::compute::security_policies::v1:: @@ -408,6 +622,77 @@ SecurityPoliciesRestConnectionImpl::PatchSecurityPolicy( }); } +StatusOr +SecurityPoliciesRestConnectionImpl::PatchSecurityPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::security_policies::v1:: + PatchSecurityPolicyRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->PatchSecurityPolicy(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::security_policies::v1:: + PatchSecurityPolicyRequest const& request) { + return stub_->PatchSecurityPolicy(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +SecurityPoliciesRestConnectionImpl::PatchSecurityPolicy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::global_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }); +} + future> SecurityPoliciesRestConnectionImpl::PatchRule( google::cloud::cpp::compute::security_policies::v1::PatchRuleRequest const& @@ -466,6 +751,77 @@ SecurityPoliciesRestConnectionImpl::PatchRule( }); } +StatusOr +SecurityPoliciesRestConnectionImpl::PatchRule( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::security_policies::v1::PatchRuleRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->PatchRule(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::security_policies::v1:: + PatchRuleRequest const& request) { + return stub_->PatchRule(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +SecurityPoliciesRestConnectionImpl::PatchRule( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::global_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }); +} + future> SecurityPoliciesRestConnectionImpl::RemoveRule( google::cloud::cpp::compute::security_policies::v1::RemoveRuleRequest const& @@ -524,6 +880,77 @@ SecurityPoliciesRestConnectionImpl::RemoveRule( }); } +StatusOr +SecurityPoliciesRestConnectionImpl::RemoveRule( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::security_policies::v1::RemoveRuleRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->RemoveRule(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::security_policies::v1:: + RemoveRuleRequest const& request) { + return stub_->RemoveRule(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +SecurityPoliciesRestConnectionImpl::RemoveRule( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::global_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }); +} + future> SecurityPoliciesRestConnectionImpl::SetLabels( google::cloud::cpp::compute::security_policies::v1::SetLabelsRequest const& @@ -582,6 +1009,77 @@ SecurityPoliciesRestConnectionImpl::SetLabels( }); } +StatusOr +SecurityPoliciesRestConnectionImpl::SetLabels( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::security_policies::v1::SetLabelsRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->SetLabels(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::security_policies::v1:: + SetLabelsRequest const& request) { + return stub_->SetLabels(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +SecurityPoliciesRestConnectionImpl::SetLabels( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::global_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace compute_security_policies_v1_internal } // namespace cloud diff --git a/google/cloud/compute/security_policies/v1/internal/security_policies_rest_connection_impl.h b/google/cloud/compute/security_policies/v1/internal/security_policies_rest_connection_impl.h index 604925d3a2bbc..497552294c6d9 100644 --- a/google/cloud/compute/security_policies/v1/internal/security_policies_rest_connection_impl.h +++ b/google/cloud/compute/security_policies/v1/internal/security_policies_rest_connection_impl.h @@ -56,6 +56,15 @@ class SecurityPoliciesRestConnectionImpl google::cloud::cpp::compute::security_policies::v1::AddRuleRequest const& request) override; + StatusOr AddRule( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::security_policies::v1::AddRuleRequest const& + request) override; + + future> AddRule( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StreamRange> AggregatedListSecurityPolicies( @@ -66,6 +75,16 @@ class SecurityPoliciesRestConnectionImpl DeleteSecurityPolicy(google::cloud::cpp::compute::security_policies::v1:: DeleteSecurityPolicyRequest const& request) override; + StatusOr DeleteSecurityPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::security_policies::v1:: + DeleteSecurityPolicyRequest const& request) override; + + future> + DeleteSecurityPolicy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StatusOr GetSecurityPolicy( google::cloud::cpp::compute::security_policies::v1:: GetSecurityPolicyRequest const& request) override; @@ -78,6 +97,16 @@ class SecurityPoliciesRestConnectionImpl InsertSecurityPolicy(google::cloud::cpp::compute::security_policies::v1:: InsertSecurityPolicyRequest const& request) override; + StatusOr InsertSecurityPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::security_policies::v1:: + InsertSecurityPolicyRequest const& request) override; + + future> + InsertSecurityPolicy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StreamRange ListSecurityPolicies(google::cloud::cpp::compute::security_policies::v1:: ListSecurityPoliciesRequest request) override; @@ -92,18 +121,55 @@ class SecurityPoliciesRestConnectionImpl PatchSecurityPolicy(google::cloud::cpp::compute::security_policies::v1:: PatchSecurityPolicyRequest const& request) override; + StatusOr PatchSecurityPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::security_policies::v1:: + PatchSecurityPolicyRequest const& request) override; + + future> + PatchSecurityPolicy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> PatchRule( google::cloud::cpp::compute::security_policies::v1:: PatchRuleRequest const& request) override; + StatusOr PatchRule( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::security_policies::v1:: + PatchRuleRequest const& request) override; + + future> PatchRule( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> RemoveRule( google::cloud::cpp::compute::security_policies::v1:: RemoveRuleRequest const& request) override; + StatusOr RemoveRule( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::security_policies::v1:: + RemoveRuleRequest const& request) override; + + future> RemoveRule( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> SetLabels( google::cloud::cpp::compute::security_policies::v1:: SetLabelsRequest const& request) override; + StatusOr SetLabels( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::security_policies::v1:: + SetLabelsRequest const& request) override; + + future> SetLabels( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + private: static std::unique_ptr< compute_security_policies_v1::SecurityPoliciesRetryPolicy> diff --git a/google/cloud/compute/security_policies/v1/internal/security_policies_tracing_connection.cc b/google/cloud/compute/security_policies/v1/internal/security_policies_tracing_connection.cc index 4b1f612ed63b8..08ed246cee68f 100644 --- a/google/cloud/compute/security_policies/v1/internal/security_policies_tracing_connection.cc +++ b/google/cloud/compute/security_policies/v1/internal/security_policies_tracing_connection.cc @@ -44,6 +44,29 @@ SecurityPoliciesTracingConnection::AddRule( return internal::EndSpan(std::move(span), child_->AddRule(request)); } +StatusOr +SecurityPoliciesTracingConnection::AddRule( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::security_policies::v1::AddRuleRequest const& + request) { + auto span = internal::MakeSpan( + "compute_security_policies_v1::SecurityPoliciesConnection::AddRule"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->AddRule(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +SecurityPoliciesTracingConnection::AddRule( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_security_policies_v1::SecurityPoliciesConnection::AddRule"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->AddRule(ExperimentalTag{}, operation)); +} + StreamRange> SecurityPoliciesTracingConnection::AggregatedListSecurityPolicies( @@ -72,6 +95,32 @@ SecurityPoliciesTracingConnection::DeleteSecurityPolicy( child_->DeleteSecurityPolicy(request)); } +StatusOr +SecurityPoliciesTracingConnection::DeleteSecurityPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::security_policies::v1:: + DeleteSecurityPolicyRequest const& request) { + auto span = internal::MakeSpan( + "compute_security_policies_v1::SecurityPoliciesConnection::" + "DeleteSecurityPolicy"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->DeleteSecurityPolicy(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +SecurityPoliciesTracingConnection::DeleteSecurityPolicy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_security_policies_v1::SecurityPoliciesConnection::" + "DeleteSecurityPolicy"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->DeleteSecurityPolicy( + ExperimentalTag{}, operation)); +} + StatusOr SecurityPoliciesTracingConnection::GetSecurityPolicy( google::cloud::cpp::compute::security_policies::v1:: @@ -105,6 +154,32 @@ SecurityPoliciesTracingConnection::InsertSecurityPolicy( child_->InsertSecurityPolicy(request)); } +StatusOr +SecurityPoliciesTracingConnection::InsertSecurityPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::security_policies::v1:: + InsertSecurityPolicyRequest const& request) { + auto span = internal::MakeSpan( + "compute_security_policies_v1::SecurityPoliciesConnection::" + "InsertSecurityPolicy"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->InsertSecurityPolicy(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +SecurityPoliciesTracingConnection::InsertSecurityPolicy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_security_policies_v1::SecurityPoliciesConnection::" + "InsertSecurityPolicy"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->InsertSecurityPolicy( + ExperimentalTag{}, operation)); +} + StreamRange SecurityPoliciesTracingConnection::ListSecurityPolicies( google::cloud::cpp::compute::security_policies::v1:: @@ -144,6 +219,32 @@ SecurityPoliciesTracingConnection::PatchSecurityPolicy( child_->PatchSecurityPolicy(request)); } +StatusOr +SecurityPoliciesTracingConnection::PatchSecurityPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::security_policies::v1:: + PatchSecurityPolicyRequest const& request) { + auto span = internal::MakeSpan( + "compute_security_policies_v1::SecurityPoliciesConnection::" + "PatchSecurityPolicy"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->PatchSecurityPolicy(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +SecurityPoliciesTracingConnection::PatchSecurityPolicy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_security_policies_v1::SecurityPoliciesConnection::" + "PatchSecurityPolicy"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->PatchSecurityPolicy( + ExperimentalTag{}, operation)); +} + future> SecurityPoliciesTracingConnection::PatchRule( google::cloud::cpp::compute::security_policies::v1::PatchRuleRequest const& @@ -154,6 +255,29 @@ SecurityPoliciesTracingConnection::PatchRule( return internal::EndSpan(std::move(span), child_->PatchRule(request)); } +StatusOr +SecurityPoliciesTracingConnection::PatchRule( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::security_policies::v1::PatchRuleRequest const& + request) { + auto span = internal::MakeSpan( + "compute_security_policies_v1::SecurityPoliciesConnection::PatchRule"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->PatchRule(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +SecurityPoliciesTracingConnection::PatchRule( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_security_policies_v1::SecurityPoliciesConnection::PatchRule"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->PatchRule(ExperimentalTag{}, operation)); +} + future> SecurityPoliciesTracingConnection::RemoveRule( google::cloud::cpp::compute::security_policies::v1::RemoveRuleRequest const& @@ -164,6 +288,29 @@ SecurityPoliciesTracingConnection::RemoveRule( return internal::EndSpan(std::move(span), child_->RemoveRule(request)); } +StatusOr +SecurityPoliciesTracingConnection::RemoveRule( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::security_policies::v1::RemoveRuleRequest const& + request) { + auto span = internal::MakeSpan( + "compute_security_policies_v1::SecurityPoliciesConnection::RemoveRule"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->RemoveRule(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +SecurityPoliciesTracingConnection::RemoveRule( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_security_policies_v1::SecurityPoliciesConnection::RemoveRule"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->RemoveRule(ExperimentalTag{}, operation)); +} + future> SecurityPoliciesTracingConnection::SetLabels( google::cloud::cpp::compute::security_policies::v1::SetLabelsRequest const& @@ -174,6 +321,29 @@ SecurityPoliciesTracingConnection::SetLabels( return internal::EndSpan(std::move(span), child_->SetLabels(request)); } +StatusOr +SecurityPoliciesTracingConnection::SetLabels( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::security_policies::v1::SetLabelsRequest const& + request) { + auto span = internal::MakeSpan( + "compute_security_policies_v1::SecurityPoliciesConnection::SetLabels"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->SetLabels(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +SecurityPoliciesTracingConnection::SetLabels( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_security_policies_v1::SecurityPoliciesConnection::SetLabels"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->SetLabels(ExperimentalTag{}, operation)); +} + #endif // GOOGLE_CLOUD_CPP_HAVE_OPENTELEMETRY std::shared_ptr diff --git a/google/cloud/compute/security_policies/v1/internal/security_policies_tracing_connection.h b/google/cloud/compute/security_policies/v1/internal/security_policies_tracing_connection.h index 6df13ba281e0c..61a8184709c2b 100644 --- a/google/cloud/compute/security_policies/v1/internal/security_policies_tracing_connection.h +++ b/google/cloud/compute/security_policies/v1/internal/security_policies_tracing_connection.h @@ -45,6 +45,15 @@ class SecurityPoliciesTracingConnection google::cloud::cpp::compute::security_policies::v1::AddRuleRequest const& request) override; + StatusOr AddRule( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::security_policies::v1::AddRuleRequest const& + request) override; + + future> AddRule( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StreamRange> AggregatedListSecurityPolicies( @@ -55,6 +64,16 @@ class SecurityPoliciesTracingConnection DeleteSecurityPolicy(google::cloud::cpp::compute::security_policies::v1:: DeleteSecurityPolicyRequest const& request) override; + StatusOr DeleteSecurityPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::security_policies::v1:: + DeleteSecurityPolicyRequest const& request) override; + + future> + DeleteSecurityPolicy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StatusOr GetSecurityPolicy( google::cloud::cpp::compute::security_policies::v1:: GetSecurityPolicyRequest const& request) override; @@ -67,6 +86,16 @@ class SecurityPoliciesTracingConnection InsertSecurityPolicy(google::cloud::cpp::compute::security_policies::v1:: InsertSecurityPolicyRequest const& request) override; + StatusOr InsertSecurityPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::security_policies::v1:: + InsertSecurityPolicyRequest const& request) override; + + future> + InsertSecurityPolicy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StreamRange ListSecurityPolicies(google::cloud::cpp::compute::security_policies::v1:: ListSecurityPoliciesRequest request) override; @@ -81,18 +110,55 @@ class SecurityPoliciesTracingConnection PatchSecurityPolicy(google::cloud::cpp::compute::security_policies::v1:: PatchSecurityPolicyRequest const& request) override; + StatusOr PatchSecurityPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::security_policies::v1:: + PatchSecurityPolicyRequest const& request) override; + + future> + PatchSecurityPolicy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> PatchRule( google::cloud::cpp::compute::security_policies::v1:: PatchRuleRequest const& request) override; + StatusOr PatchRule( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::security_policies::v1:: + PatchRuleRequest const& request) override; + + future> PatchRule( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> RemoveRule( google::cloud::cpp::compute::security_policies::v1:: RemoveRuleRequest const& request) override; + StatusOr RemoveRule( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::security_policies::v1:: + RemoveRuleRequest const& request) override; + + future> RemoveRule( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> SetLabels( google::cloud::cpp::compute::security_policies::v1:: SetLabelsRequest const& request) override; + StatusOr SetLabels( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::security_policies::v1:: + SetLabelsRequest const& request) override; + + future> SetLabels( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + private: std::shared_ptr child_; diff --git a/google/cloud/compute/security_policies/v1/mocks/mock_security_policies_connection.h b/google/cloud/compute/security_policies/v1/mocks/mock_security_policies_connection.h index 368d5cd736127..07c74f99f03f7 100644 --- a/google/cloud/compute/security_policies/v1/mocks/mock_security_policies_connection.h +++ b/google/cloud/compute/security_policies/v1/mocks/mock_security_policies_connection.h @@ -53,6 +53,19 @@ class MockSecurityPoliciesConnection request), (override)); + MOCK_METHOD( + StatusOr, AddRule, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::security_policies::v1::AddRuleRequest const& + request), + (override)); + + MOCK_METHOD(future>, + AddRule, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD( (StreamRange>), @@ -67,6 +80,19 @@ class MockSecurityPoliciesConnection DeleteSecurityPolicyRequest const& request), (override)); + MOCK_METHOD(StatusOr, + DeleteSecurityPolicy, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::security_policies::v1:: + DeleteSecurityPolicyRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteSecurityPolicy, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD(StatusOr, GetSecurityPolicy, (google::cloud::cpp::compute::security_policies::v1:: @@ -85,6 +111,19 @@ class MockSecurityPoliciesConnection InsertSecurityPolicyRequest const& request), (override)); + MOCK_METHOD(StatusOr, + InsertSecurityPolicy, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::security_policies::v1:: + InsertSecurityPolicyRequest const& request), + (override)); + + MOCK_METHOD(future>, + InsertSecurityPolicy, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD((StreamRange), ListSecurityPolicies, (google::cloud::cpp::compute::security_policies::v1:: @@ -105,23 +144,72 @@ class MockSecurityPoliciesConnection PatchSecurityPolicyRequest const& request), (override)); + MOCK_METHOD(StatusOr, + PatchSecurityPolicy, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::security_policies::v1:: + PatchSecurityPolicyRequest const& request), + (override)); + + MOCK_METHOD(future>, + PatchSecurityPolicy, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD(future>, PatchRule, (google::cloud::cpp::compute::security_policies::v1:: PatchRuleRequest const& request), (override)); + MOCK_METHOD(StatusOr, PatchRule, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::security_policies::v1:: + PatchRuleRequest const& request), + (override)); + + MOCK_METHOD(future>, + PatchRule, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD(future>, RemoveRule, (google::cloud::cpp::compute::security_policies::v1:: RemoveRuleRequest const& request), (override)); + MOCK_METHOD(StatusOr, RemoveRule, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::security_policies::v1:: + RemoveRuleRequest const& request), + (override)); + + MOCK_METHOD(future>, + RemoveRule, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD(future>, SetLabels, (google::cloud::cpp::compute::security_policies::v1:: SetLabelsRequest const& request), (override)); + + MOCK_METHOD(StatusOr, SetLabels, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::security_policies::v1:: + SetLabelsRequest const& request), + (override)); + + MOCK_METHOD(future>, + SetLabels, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); }; GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END diff --git a/google/cloud/compute/security_policies/v1/security_policies_connection.cc b/google/cloud/compute/security_policies/v1/security_policies_connection.cc index ecf8e9c278682..7366981f704d7 100644 --- a/google/cloud/compute/security_policies/v1/security_policies_connection.cc +++ b/google/cloud/compute/security_policies/v1/security_policies_connection.cc @@ -44,6 +44,22 @@ SecurityPoliciesConnection::AddRule( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +SecurityPoliciesConnection::AddRule( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::security_policies::v1::AddRuleRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +SecurityPoliciesConnection::AddRule( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StreamRange> SecurityPoliciesConnection::AggregatedListSecurityPolicies( @@ -63,6 +79,23 @@ SecurityPoliciesConnection::DeleteSecurityPolicy( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +SecurityPoliciesConnection::DeleteSecurityPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::security_policies::v1:: + DeleteSecurityPolicyRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +SecurityPoliciesConnection::DeleteSecurityPolicy( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr SecurityPoliciesConnection::GetSecurityPolicy( google::cloud::cpp::compute::security_policies::v1:: @@ -85,6 +118,23 @@ SecurityPoliciesConnection::InsertSecurityPolicy( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +SecurityPoliciesConnection::InsertSecurityPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::security_policies::v1:: + InsertSecurityPolicyRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +SecurityPoliciesConnection::InsertSecurityPolicy( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StreamRange SecurityPoliciesConnection::ListSecurityPolicies( google::cloud::cpp::compute::security_policies::v1:: @@ -110,6 +160,23 @@ SecurityPoliciesConnection::PatchSecurityPolicy( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +SecurityPoliciesConnection::PatchSecurityPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::security_policies::v1:: + PatchSecurityPolicyRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +SecurityPoliciesConnection::PatchSecurityPolicy( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> SecurityPoliciesConnection::PatchRule( google::cloud::cpp::compute::security_policies::v1:: @@ -119,6 +186,23 @@ SecurityPoliciesConnection::PatchRule( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +SecurityPoliciesConnection::PatchRule( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::security_policies::v1:: + PatchRuleRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +SecurityPoliciesConnection::PatchRule( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> SecurityPoliciesConnection::RemoveRule( google::cloud::cpp::compute::security_policies::v1:: @@ -128,10 +212,44 @@ SecurityPoliciesConnection::RemoveRule( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +SecurityPoliciesConnection::RemoveRule( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::security_policies::v1:: + RemoveRuleRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> +SecurityPoliciesConnection::RemoveRule( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +SecurityPoliciesConnection::SetLabels( + google::cloud::cpp::compute::security_policies::v1:: + SetLabelsRequest const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +StatusOr SecurityPoliciesConnection::SetLabels( + ExperimentalTag, NoAwaitTag, google::cloud::cpp::compute::security_policies::v1:: SetLabelsRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +SecurityPoliciesConnection::SetLabels( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { return google::cloud::make_ready_future< StatusOr>( Status(StatusCode::kUnimplemented, "not implemented")); diff --git a/google/cloud/compute/security_policies/v1/security_policies_connection.h b/google/cloud/compute/security_policies/v1/security_policies_connection.h index 5db6d45d9204a..2dc1aaa83e2ef 100644 --- a/google/cloud/compute/security_policies/v1/security_policies_connection.h +++ b/google/cloud/compute/security_policies/v1/security_policies_connection.h @@ -22,8 +22,10 @@ #include "google/cloud/compute/security_policies/v1/internal/security_policies_retry_traits.h" #include "google/cloud/compute/security_policies/v1/security_policies_connection_idempotency_policy.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/internal/retry_policy_impl.h" +#include "google/cloud/no_await_tag.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" #include "google/cloud/status_or.h" @@ -190,6 +192,15 @@ class SecurityPoliciesConnection { google::cloud::cpp::compute::security_policies::v1::AddRuleRequest const& request); + virtual StatusOr AddRule( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::security_policies::v1::AddRuleRequest const& + request); + + virtual future> AddRule( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual StreamRange> AggregatedListSecurityPolicies( @@ -200,6 +211,16 @@ class SecurityPoliciesConnection { DeleteSecurityPolicy(google::cloud::cpp::compute::security_policies::v1:: DeleteSecurityPolicyRequest const& request); + virtual StatusOr + DeleteSecurityPolicy(ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::security_policies::v1:: + DeleteSecurityPolicyRequest const& request); + + virtual future> + DeleteSecurityPolicy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual StatusOr GetSecurityPolicy(google::cloud::cpp::compute::security_policies::v1:: GetSecurityPolicyRequest const& request); @@ -212,6 +233,16 @@ class SecurityPoliciesConnection { InsertSecurityPolicy(google::cloud::cpp::compute::security_policies::v1:: InsertSecurityPolicyRequest const& request); + virtual StatusOr + InsertSecurityPolicy(ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::security_policies::v1:: + InsertSecurityPolicyRequest const& request); + + virtual future> + InsertSecurityPolicy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual StreamRange ListSecurityPolicies(google::cloud::cpp::compute::security_policies::v1:: ListSecurityPoliciesRequest request); @@ -226,17 +257,54 @@ class SecurityPoliciesConnection { PatchSecurityPolicy(google::cloud::cpp::compute::security_policies::v1:: PatchSecurityPolicyRequest const& request); + virtual StatusOr + PatchSecurityPolicy(ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::security_policies::v1:: + PatchSecurityPolicyRequest const& request); + + virtual future> + PatchSecurityPolicy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual future> PatchRule(google::cloud::cpp::compute::security_policies::v1:: PatchRuleRequest const& request); + virtual StatusOr PatchRule( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::security_policies::v1:: + PatchRuleRequest const& request); + + virtual future> + PatchRule(ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual future> RemoveRule(google::cloud::cpp::compute::security_policies::v1:: RemoveRuleRequest const& request); + virtual StatusOr RemoveRule( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::security_policies::v1:: + RemoveRuleRequest const& request); + + virtual future> + RemoveRule(ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual future> SetLabels(google::cloud::cpp::compute::security_policies::v1:: SetLabelsRequest const& request); + + virtual StatusOr SetLabels( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::security_policies::v1:: + SetLabelsRequest const& request); + + virtual future> + SetLabels(ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); }; GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END diff --git a/google/cloud/compute/service_attachments/v1/internal/service_attachments_rest_connection_impl.cc b/google/cloud/compute/service_attachments/v1/internal/service_attachments_rest_connection_impl.cc index ec6d6f1972fb5..dc56760b211ad 100644 --- a/google/cloud/compute/service_attachments/v1/internal/service_attachments_rest_connection_impl.cc +++ b/google/cloud/compute/service_attachments/v1/internal/service_attachments_rest_connection_impl.cc @@ -23,6 +23,7 @@ #include "google/cloud/internal/async_rest_long_running_operation_custom.h" #include "google/cloud/internal/extract_long_running_result.h" #include "google/cloud/internal/pagination_range.h" +#include "google/cloud/internal/rest_lro_helpers.h" #include "google/cloud/internal/rest_retry_loop.h" #include "google/cloud/rest_options.h" #include @@ -147,6 +148,79 @@ ServiceAttachmentsRestConnectionImpl::DeleteServiceAttachment( }); } +StatusOr +ServiceAttachmentsRestConnectionImpl::DeleteServiceAttachment( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::service_attachments::v1:: + DeleteServiceAttachmentRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteServiceAttachment(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::service_attachments::v1:: + DeleteServiceAttachmentRequest const& request) { + return stub_->DeleteServiceAttachment(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +ServiceAttachmentsRestConnectionImpl::DeleteServiceAttachment( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::region_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }); +} + StatusOr ServiceAttachmentsRestConnectionImpl::GetServiceAttachment( google::cloud::cpp::compute::service_attachments::v1:: @@ -239,6 +313,79 @@ ServiceAttachmentsRestConnectionImpl::InsertServiceAttachment( }); } +StatusOr +ServiceAttachmentsRestConnectionImpl::InsertServiceAttachment( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::service_attachments::v1:: + InsertServiceAttachmentRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->InsertServiceAttachment(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::service_attachments::v1:: + InsertServiceAttachmentRequest const& request) { + return stub_->InsertServiceAttachment(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +ServiceAttachmentsRestConnectionImpl::InsertServiceAttachment( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::region_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }); +} + StreamRange ServiceAttachmentsRestConnectionImpl::ListServiceAttachments( google::cloud::cpp::compute::service_attachments::v1:: @@ -339,6 +486,79 @@ ServiceAttachmentsRestConnectionImpl::PatchServiceAttachment( }); } +StatusOr +ServiceAttachmentsRestConnectionImpl::PatchServiceAttachment( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::service_attachments::v1:: + PatchServiceAttachmentRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->PatchServiceAttachment(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::service_attachments::v1:: + PatchServiceAttachmentRequest const& request) { + return stub_->PatchServiceAttachment(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +ServiceAttachmentsRestConnectionImpl::PatchServiceAttachment( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::region_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }); +} + StatusOr ServiceAttachmentsRestConnectionImpl::SetIamPolicy( google::cloud::cpp::compute::service_attachments::v1:: diff --git a/google/cloud/compute/service_attachments/v1/internal/service_attachments_rest_connection_impl.h b/google/cloud/compute/service_attachments/v1/internal/service_attachments_rest_connection_impl.h index 82e3184e07a0f..3393615e03511 100644 --- a/google/cloud/compute/service_attachments/v1/internal/service_attachments_rest_connection_impl.h +++ b/google/cloud/compute/service_attachments/v1/internal/service_attachments_rest_connection_impl.h @@ -64,6 +64,16 @@ class ServiceAttachmentsRestConnectionImpl google::cloud::cpp::compute::service_attachments::v1:: DeleteServiceAttachmentRequest const& request) override; + StatusOr DeleteServiceAttachment( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::service_attachments::v1:: + DeleteServiceAttachmentRequest const& request) override; + + future> + DeleteServiceAttachment( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StatusOr GetServiceAttachment(google::cloud::cpp::compute::service_attachments::v1:: GetServiceAttachmentRequest const& request) override; @@ -77,6 +87,16 @@ class ServiceAttachmentsRestConnectionImpl google::cloud::cpp::compute::service_attachments::v1:: InsertServiceAttachmentRequest const& request) override; + StatusOr InsertServiceAttachment( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::service_attachments::v1:: + InsertServiceAttachmentRequest const& request) override; + + future> + InsertServiceAttachment( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StreamRange ListServiceAttachments(google::cloud::cpp::compute::service_attachments::v1:: ListServiceAttachmentsRequest request) override; @@ -86,6 +106,16 @@ class ServiceAttachmentsRestConnectionImpl google::cloud::cpp::compute::service_attachments::v1:: PatchServiceAttachmentRequest const& request) override; + StatusOr PatchServiceAttachment( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::service_attachments::v1:: + PatchServiceAttachmentRequest const& request) override; + + future> + PatchServiceAttachment( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StatusOr SetIamPolicy( google::cloud::cpp::compute::service_attachments::v1:: SetIamPolicyRequest const& request) override; diff --git a/google/cloud/compute/service_attachments/v1/internal/service_attachments_tracing_connection.cc b/google/cloud/compute/service_attachments/v1/internal/service_attachments_tracing_connection.cc index a9e52fe787625..7e8833ffabf0b 100644 --- a/google/cloud/compute/service_attachments/v1/internal/service_attachments_tracing_connection.cc +++ b/google/cloud/compute/service_attachments/v1/internal/service_attachments_tracing_connection.cc @@ -63,6 +63,32 @@ ServiceAttachmentsTracingConnection::DeleteServiceAttachment( child_->DeleteServiceAttachment(request)); } +StatusOr +ServiceAttachmentsTracingConnection::DeleteServiceAttachment( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::service_attachments::v1:: + DeleteServiceAttachmentRequest const& request) { + auto span = internal::MakeSpan( + "compute_service_attachments_v1::ServiceAttachmentsConnection::" + "DeleteServiceAttachment"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->DeleteServiceAttachment(ExperimentalTag{}, NoAwaitTag{}, + request)); +} + +future> +ServiceAttachmentsTracingConnection::DeleteServiceAttachment( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_service_attachments_v1::ServiceAttachmentsConnection::" + "DeleteServiceAttachment"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->DeleteServiceAttachment( + ExperimentalTag{}, operation)); +} + StatusOr ServiceAttachmentsTracingConnection::GetServiceAttachment( google::cloud::cpp::compute::service_attachments::v1:: @@ -97,6 +123,32 @@ ServiceAttachmentsTracingConnection::InsertServiceAttachment( child_->InsertServiceAttachment(request)); } +StatusOr +ServiceAttachmentsTracingConnection::InsertServiceAttachment( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::service_attachments::v1:: + InsertServiceAttachmentRequest const& request) { + auto span = internal::MakeSpan( + "compute_service_attachments_v1::ServiceAttachmentsConnection::" + "InsertServiceAttachment"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->InsertServiceAttachment(ExperimentalTag{}, NoAwaitTag{}, + request)); +} + +future> +ServiceAttachmentsTracingConnection::InsertServiceAttachment( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_service_attachments_v1::ServiceAttachmentsConnection::" + "InsertServiceAttachment"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->InsertServiceAttachment( + ExperimentalTag{}, operation)); +} + StreamRange ServiceAttachmentsTracingConnection::ListServiceAttachments( google::cloud::cpp::compute::service_attachments::v1:: @@ -123,6 +175,32 @@ ServiceAttachmentsTracingConnection::PatchServiceAttachment( child_->PatchServiceAttachment(request)); } +StatusOr +ServiceAttachmentsTracingConnection::PatchServiceAttachment( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::service_attachments::v1:: + PatchServiceAttachmentRequest const& request) { + auto span = internal::MakeSpan( + "compute_service_attachments_v1::ServiceAttachmentsConnection::" + "PatchServiceAttachment"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->PatchServiceAttachment(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +ServiceAttachmentsTracingConnection::PatchServiceAttachment( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_service_attachments_v1::ServiceAttachmentsConnection::" + "PatchServiceAttachment"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->PatchServiceAttachment( + ExperimentalTag{}, operation)); +} + StatusOr ServiceAttachmentsTracingConnection::SetIamPolicy( google::cloud::cpp::compute::service_attachments::v1:: diff --git a/google/cloud/compute/service_attachments/v1/internal/service_attachments_tracing_connection.h b/google/cloud/compute/service_attachments/v1/internal/service_attachments_tracing_connection.h index e0b5116397494..02f341c176997 100644 --- a/google/cloud/compute/service_attachments/v1/internal/service_attachments_tracing_connection.h +++ b/google/cloud/compute/service_attachments/v1/internal/service_attachments_tracing_connection.h @@ -54,6 +54,16 @@ class ServiceAttachmentsTracingConnection google::cloud::cpp::compute::service_attachments::v1:: DeleteServiceAttachmentRequest const& request) override; + StatusOr DeleteServiceAttachment( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::service_attachments::v1:: + DeleteServiceAttachmentRequest const& request) override; + + future> + DeleteServiceAttachment( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StatusOr GetServiceAttachment(google::cloud::cpp::compute::service_attachments::v1:: GetServiceAttachmentRequest const& request) override; @@ -67,6 +77,16 @@ class ServiceAttachmentsTracingConnection google::cloud::cpp::compute::service_attachments::v1:: InsertServiceAttachmentRequest const& request) override; + StatusOr InsertServiceAttachment( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::service_attachments::v1:: + InsertServiceAttachmentRequest const& request) override; + + future> + InsertServiceAttachment( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StreamRange ListServiceAttachments(google::cloud::cpp::compute::service_attachments::v1:: ListServiceAttachmentsRequest request) override; @@ -76,6 +96,16 @@ class ServiceAttachmentsTracingConnection google::cloud::cpp::compute::service_attachments::v1:: PatchServiceAttachmentRequest const& request) override; + StatusOr PatchServiceAttachment( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::service_attachments::v1:: + PatchServiceAttachmentRequest const& request) override; + + future> + PatchServiceAttachment( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StatusOr SetIamPolicy( google::cloud::cpp::compute::service_attachments::v1:: SetIamPolicyRequest const& request) override; diff --git a/google/cloud/compute/service_attachments/v1/mocks/mock_service_attachments_connection.h b/google/cloud/compute/service_attachments/v1/mocks/mock_service_attachments_connection.h index 5b87f9b210a74..a24f3041614e6 100644 --- a/google/cloud/compute/service_attachments/v1/mocks/mock_service_attachments_connection.h +++ b/google/cloud/compute/service_attachments/v1/mocks/mock_service_attachments_connection.h @@ -61,6 +61,19 @@ class MockServiceAttachmentsConnection DeleteServiceAttachmentRequest const& request), (override)); + MOCK_METHOD(StatusOr, + DeleteServiceAttachment, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::service_attachments::v1:: + DeleteServiceAttachmentRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteServiceAttachment, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD(StatusOr, GetServiceAttachment, (google::cloud::cpp::compute::service_attachments::v1:: @@ -78,6 +91,19 @@ class MockServiceAttachmentsConnection InsertServiceAttachmentRequest const& request), (override)); + MOCK_METHOD(StatusOr, + InsertServiceAttachment, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::service_attachments::v1:: + InsertServiceAttachmentRequest const& request), + (override)); + + MOCK_METHOD(future>, + InsertServiceAttachment, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD((StreamRange), ListServiceAttachments, (google::cloud::cpp::compute::service_attachments::v1:: @@ -90,6 +116,19 @@ class MockServiceAttachmentsConnection PatchServiceAttachmentRequest const& request), (override)); + MOCK_METHOD(StatusOr, + PatchServiceAttachment, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::service_attachments::v1:: + PatchServiceAttachmentRequest const& request), + (override)); + + MOCK_METHOD(future>, + PatchServiceAttachment, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD(StatusOr, SetIamPolicy, (google::cloud::cpp::compute::service_attachments::v1:: SetIamPolicyRequest const& request), diff --git a/google/cloud/compute/service_attachments/v1/service_attachments_connection.cc b/google/cloud/compute/service_attachments/v1/service_attachments_connection.cc index 323ac0d5d03f1..491b174403e1b 100644 --- a/google/cloud/compute/service_attachments/v1/service_attachments_connection.cc +++ b/google/cloud/compute/service_attachments/v1/service_attachments_connection.cc @@ -55,6 +55,23 @@ ServiceAttachmentsConnection::DeleteServiceAttachment( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +ServiceAttachmentsConnection::DeleteServiceAttachment( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::service_attachments::v1:: + DeleteServiceAttachmentRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +ServiceAttachmentsConnection::DeleteServiceAttachment( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr ServiceAttachmentsConnection::GetServiceAttachment( google::cloud::cpp::compute::service_attachments::v1:: @@ -78,6 +95,23 @@ ServiceAttachmentsConnection::InsertServiceAttachment( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +ServiceAttachmentsConnection::InsertServiceAttachment( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::service_attachments::v1:: + InsertServiceAttachmentRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +ServiceAttachmentsConnection::InsertServiceAttachment( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StreamRange ServiceAttachmentsConnection::ListServiceAttachments( google::cloud::cpp::compute::service_attachments::v1:: @@ -95,6 +129,23 @@ ServiceAttachmentsConnection::PatchServiceAttachment( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +ServiceAttachmentsConnection::PatchServiceAttachment( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::service_attachments::v1:: + PatchServiceAttachmentRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +ServiceAttachmentsConnection::PatchServiceAttachment( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr ServiceAttachmentsConnection::SetIamPolicy( google::cloud::cpp::compute::service_attachments::v1:: diff --git a/google/cloud/compute/service_attachments/v1/service_attachments_connection.h b/google/cloud/compute/service_attachments/v1/service_attachments_connection.h index 4e3247216e59a..f9f565f513315 100644 --- a/google/cloud/compute/service_attachments/v1/service_attachments_connection.h +++ b/google/cloud/compute/service_attachments/v1/service_attachments_connection.h @@ -22,8 +22,10 @@ #include "google/cloud/compute/service_attachments/v1/internal/service_attachments_retry_traits.h" #include "google/cloud/compute/service_attachments/v1/service_attachments_connection_idempotency_policy.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/internal/retry_policy_impl.h" +#include "google/cloud/no_await_tag.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" #include "google/cloud/status_or.h" @@ -199,6 +201,16 @@ class ServiceAttachmentsConnection { DeleteServiceAttachment(google::cloud::cpp::compute::service_attachments::v1:: DeleteServiceAttachmentRequest const& request); + virtual StatusOr + DeleteServiceAttachment(ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::service_attachments::v1:: + DeleteServiceAttachmentRequest const& request); + + virtual future> + DeleteServiceAttachment( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual StatusOr GetServiceAttachment(google::cloud::cpp::compute::service_attachments::v1:: GetServiceAttachmentRequest const& request); @@ -211,6 +223,16 @@ class ServiceAttachmentsConnection { InsertServiceAttachment(google::cloud::cpp::compute::service_attachments::v1:: InsertServiceAttachmentRequest const& request); + virtual StatusOr + InsertServiceAttachment(ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::service_attachments::v1:: + InsertServiceAttachmentRequest const& request); + + virtual future> + InsertServiceAttachment( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual StreamRange ListServiceAttachments(google::cloud::cpp::compute::service_attachments::v1:: ListServiceAttachmentsRequest request); @@ -219,6 +241,16 @@ class ServiceAttachmentsConnection { PatchServiceAttachment(google::cloud::cpp::compute::service_attachments::v1:: PatchServiceAttachmentRequest const& request); + virtual StatusOr + PatchServiceAttachment(ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::service_attachments::v1:: + PatchServiceAttachmentRequest const& request); + + virtual future> + PatchServiceAttachment( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual StatusOr SetIamPolicy( google::cloud::cpp::compute::service_attachments::v1:: SetIamPolicyRequest const& request); diff --git a/google/cloud/compute/snapshot_settings/v1/internal/snapshot_settings_rest_connection_impl.cc b/google/cloud/compute/snapshot_settings/v1/internal/snapshot_settings_rest_connection_impl.cc index a445ac3ade5b5..481a917ab74d9 100644 --- a/google/cloud/compute/snapshot_settings/v1/internal/snapshot_settings_rest_connection_impl.cc +++ b/google/cloud/compute/snapshot_settings/v1/internal/snapshot_settings_rest_connection_impl.cc @@ -22,6 +22,7 @@ #include "google/cloud/credentials.h" #include "google/cloud/internal/async_rest_long_running_operation_custom.h" #include "google/cloud/internal/extract_long_running_result.h" +#include "google/cloud/internal/rest_lro_helpers.h" #include "google/cloud/internal/rest_retry_loop.h" #include "google/cloud/rest_options.h" #include @@ -117,6 +118,77 @@ SnapshotSettingsRestConnectionImpl::PatchSnapshotSettings( }); } +StatusOr +SnapshotSettingsRestConnectionImpl::PatchSnapshotSettings( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::snapshot_settings::v1:: + PatchSnapshotSettingsRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->PatchSnapshotSettings(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::snapshot_settings::v1:: + PatchSnapshotSettingsRequest const& request) { + return stub_->PatchSnapshotSettings(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +SnapshotSettingsRestConnectionImpl::PatchSnapshotSettings( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::global_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace compute_snapshot_settings_v1_internal } // namespace cloud diff --git a/google/cloud/compute/snapshot_settings/v1/internal/snapshot_settings_rest_connection_impl.h b/google/cloud/compute/snapshot_settings/v1/internal/snapshot_settings_rest_connection_impl.h index 3ce9eeabfa448..e2bde5e6882ad 100644 --- a/google/cloud/compute/snapshot_settings/v1/internal/snapshot_settings_rest_connection_impl.h +++ b/google/cloud/compute/snapshot_settings/v1/internal/snapshot_settings_rest_connection_impl.h @@ -60,6 +60,16 @@ class SnapshotSettingsRestConnectionImpl google::cloud::cpp::compute::snapshot_settings::v1:: PatchSnapshotSettingsRequest const& request) override; + StatusOr PatchSnapshotSettings( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::snapshot_settings::v1:: + PatchSnapshotSettingsRequest const& request) override; + + future> + PatchSnapshotSettings( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + private: static std::unique_ptr< compute_snapshot_settings_v1::SnapshotSettingsRetryPolicy> diff --git a/google/cloud/compute/snapshot_settings/v1/internal/snapshot_settings_tracing_connection.cc b/google/cloud/compute/snapshot_settings/v1/internal/snapshot_settings_tracing_connection.cc index c3c76fdb34008..9e7022a944511 100644 --- a/google/cloud/compute/snapshot_settings/v1/internal/snapshot_settings_tracing_connection.cc +++ b/google/cloud/compute/snapshot_settings/v1/internal/snapshot_settings_tracing_connection.cc @@ -56,6 +56,32 @@ SnapshotSettingsTracingConnection::PatchSnapshotSettings( child_->PatchSnapshotSettings(request)); } +StatusOr +SnapshotSettingsTracingConnection::PatchSnapshotSettings( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::snapshot_settings::v1:: + PatchSnapshotSettingsRequest const& request) { + auto span = internal::MakeSpan( + "compute_snapshot_settings_v1::SnapshotSettingsConnection::" + "PatchSnapshotSettings"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->PatchSnapshotSettings(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +SnapshotSettingsTracingConnection::PatchSnapshotSettings( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_snapshot_settings_v1::SnapshotSettingsConnection::" + "PatchSnapshotSettings"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->PatchSnapshotSettings( + ExperimentalTag{}, operation)); +} + #endif // GOOGLE_CLOUD_CPP_HAVE_OPENTELEMETRY std::shared_ptr diff --git a/google/cloud/compute/snapshot_settings/v1/internal/snapshot_settings_tracing_connection.h b/google/cloud/compute/snapshot_settings/v1/internal/snapshot_settings_tracing_connection.h index 5f1c732cf454c..6d94e6a8cf920 100644 --- a/google/cloud/compute/snapshot_settings/v1/internal/snapshot_settings_tracing_connection.h +++ b/google/cloud/compute/snapshot_settings/v1/internal/snapshot_settings_tracing_connection.h @@ -50,6 +50,16 @@ class SnapshotSettingsTracingConnection google::cloud::cpp::compute::snapshot_settings::v1:: PatchSnapshotSettingsRequest const& request) override; + StatusOr PatchSnapshotSettings( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::snapshot_settings::v1:: + PatchSnapshotSettingsRequest const& request) override; + + future> + PatchSnapshotSettings( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + private: std::shared_ptr child_; diff --git a/google/cloud/compute/snapshot_settings/v1/mocks/mock_snapshot_settings_connection.h b/google/cloud/compute/snapshot_settings/v1/mocks/mock_snapshot_settings_connection.h index 79afd7d376c25..b0e65e75459de 100644 --- a/google/cloud/compute/snapshot_settings/v1/mocks/mock_snapshot_settings_connection.h +++ b/google/cloud/compute/snapshot_settings/v1/mocks/mock_snapshot_settings_connection.h @@ -58,6 +58,19 @@ class MockSnapshotSettingsConnection (google::cloud::cpp::compute::snapshot_settings::v1:: PatchSnapshotSettingsRequest const& request), (override)); + + MOCK_METHOD(StatusOr, + PatchSnapshotSettings, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::snapshot_settings::v1:: + PatchSnapshotSettingsRequest const& request), + (override)); + + MOCK_METHOD(future>, + PatchSnapshotSettings, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); }; GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END diff --git a/google/cloud/compute/snapshot_settings/v1/snapshot_settings_connection.cc b/google/cloud/compute/snapshot_settings/v1/snapshot_settings_connection.cc index a0ba8b3b703da..479c4927eaea2 100644 --- a/google/cloud/compute/snapshot_settings/v1/snapshot_settings_connection.cc +++ b/google/cloud/compute/snapshot_settings/v1/snapshot_settings_connection.cc @@ -51,6 +51,23 @@ SnapshotSettingsConnection::PatchSnapshotSettings( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +SnapshotSettingsConnection::PatchSnapshotSettings( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::snapshot_settings::v1:: + PatchSnapshotSettingsRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +SnapshotSettingsConnection::PatchSnapshotSettings( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace compute_snapshot_settings_v1 } // namespace cloud diff --git a/google/cloud/compute/snapshot_settings/v1/snapshot_settings_connection.h b/google/cloud/compute/snapshot_settings/v1/snapshot_settings_connection.h index 24885b7e34176..16b602e5cacfa 100644 --- a/google/cloud/compute/snapshot_settings/v1/snapshot_settings_connection.h +++ b/google/cloud/compute/snapshot_settings/v1/snapshot_settings_connection.h @@ -22,8 +22,10 @@ #include "google/cloud/compute/snapshot_settings/v1/internal/snapshot_settings_retry_traits.h" #include "google/cloud/compute/snapshot_settings/v1/snapshot_settings_connection_idempotency_policy.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/internal/retry_policy_impl.h" +#include "google/cloud/no_await_tag.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" #include "google/cloud/status_or.h" @@ -192,6 +194,16 @@ class SnapshotSettingsConnection { virtual future> PatchSnapshotSettings(google::cloud::cpp::compute::snapshot_settings::v1:: PatchSnapshotSettingsRequest const& request); + + virtual StatusOr + PatchSnapshotSettings(ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::snapshot_settings::v1:: + PatchSnapshotSettingsRequest const& request); + + virtual future> + PatchSnapshotSettings( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); }; GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END diff --git a/google/cloud/compute/snapshots/v1/internal/snapshots_rest_connection_impl.cc b/google/cloud/compute/snapshots/v1/internal/snapshots_rest_connection_impl.cc index 26fe118548ef3..fc0eaa7c5a0e7 100644 --- a/google/cloud/compute/snapshots/v1/internal/snapshots_rest_connection_impl.cc +++ b/google/cloud/compute/snapshots/v1/internal/snapshots_rest_connection_impl.cc @@ -23,6 +23,7 @@ #include "google/cloud/internal/async_rest_long_running_operation_custom.h" #include "google/cloud/internal/extract_long_running_result.h" #include "google/cloud/internal/pagination_range.h" +#include "google/cloud/internal/rest_lro_helpers.h" #include "google/cloud/internal/rest_retry_loop.h" #include "google/cloud/rest_options.h" #include @@ -100,6 +101,77 @@ SnapshotsRestConnectionImpl::DeleteSnapshot( }); } +StatusOr +SnapshotsRestConnectionImpl::DeleteSnapshot( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::snapshots::v1::DeleteSnapshotRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteSnapshot(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::snapshots::v1:: + DeleteSnapshotRequest const& request) { + return stub_->DeleteSnapshot(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +SnapshotsRestConnectionImpl::DeleteSnapshot( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::global_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }); +} + StatusOr SnapshotsRestConnectionImpl::GetSnapshot( google::cloud::cpp::compute::snapshots::v1::GetSnapshotRequest const& @@ -192,6 +264,77 @@ SnapshotsRestConnectionImpl::InsertSnapshot( }); } +StatusOr +SnapshotsRestConnectionImpl::InsertSnapshot( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::snapshots::v1::InsertSnapshotRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->InsertSnapshot(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::snapshots::v1:: + InsertSnapshotRequest const& request) { + return stub_->InsertSnapshot(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +SnapshotsRestConnectionImpl::InsertSnapshot( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::global_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }); +} + StreamRange SnapshotsRestConnectionImpl::ListSnapshots( google::cloud::cpp::compute::snapshots::v1::ListSnapshotsRequest request) { @@ -303,6 +446,77 @@ SnapshotsRestConnectionImpl::SetLabels( }); } +StatusOr +SnapshotsRestConnectionImpl::SetLabels( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::snapshots::v1::SetLabelsRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->SetLabels(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::snapshots::v1::SetLabelsRequest const& + request) { + return stub_->SetLabels(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +SnapshotsRestConnectionImpl::SetLabels( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::global_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }); +} + StatusOr SnapshotsRestConnectionImpl::TestIamPermissions( google::cloud::cpp::compute::snapshots::v1::TestIamPermissionsRequest const& diff --git a/google/cloud/compute/snapshots/v1/internal/snapshots_rest_connection_impl.h b/google/cloud/compute/snapshots/v1/internal/snapshots_rest_connection_impl.h index 55fdc4c0ad20a..6fee1b09ead7d 100644 --- a/google/cloud/compute/snapshots/v1/internal/snapshots_rest_connection_impl.h +++ b/google/cloud/compute/snapshots/v1/internal/snapshots_rest_connection_impl.h @@ -54,6 +54,15 @@ class SnapshotsRestConnectionImpl google::cloud::cpp::compute::snapshots::v1::DeleteSnapshotRequest const& request) override; + StatusOr DeleteSnapshot( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::snapshots::v1::DeleteSnapshotRequest const& + request) override; + + future> DeleteSnapshot( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StatusOr GetSnapshot( google::cloud::cpp::compute::snapshots::v1::GetSnapshotRequest const& request) override; @@ -66,6 +75,15 @@ class SnapshotsRestConnectionImpl google::cloud::cpp::compute::snapshots::v1::InsertSnapshotRequest const& request) override; + StatusOr InsertSnapshot( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::snapshots::v1::InsertSnapshotRequest const& + request) override; + + future> InsertSnapshot( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StreamRange ListSnapshots( google::cloud::cpp::compute::snapshots::v1::ListSnapshotsRequest request) override; @@ -78,6 +96,15 @@ class SnapshotsRestConnectionImpl google::cloud::cpp::compute::snapshots::v1::SetLabelsRequest const& request) override; + StatusOr SetLabels( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::snapshots::v1::SetLabelsRequest const& + request) override; + + future> SetLabels( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StatusOr TestIamPermissions(google::cloud::cpp::compute::snapshots::v1:: TestIamPermissionsRequest const& request) override; diff --git a/google/cloud/compute/snapshots/v1/internal/snapshots_tracing_connection.cc b/google/cloud/compute/snapshots/v1/internal/snapshots_tracing_connection.cc index febf130e6db41..4fadc1686fbf9 100644 --- a/google/cloud/compute/snapshots/v1/internal/snapshots_tracing_connection.cc +++ b/google/cloud/compute/snapshots/v1/internal/snapshots_tracing_connection.cc @@ -43,6 +43,29 @@ SnapshotsTracingConnection::DeleteSnapshot( return internal::EndSpan(std::move(span), child_->DeleteSnapshot(request)); } +StatusOr +SnapshotsTracingConnection::DeleteSnapshot( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::snapshots::v1::DeleteSnapshotRequest const& + request) { + auto span = internal::MakeSpan( + "compute_snapshots_v1::SnapshotsConnection::DeleteSnapshot"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->DeleteSnapshot(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +SnapshotsTracingConnection::DeleteSnapshot( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_snapshots_v1::SnapshotsConnection::DeleteSnapshot"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->DeleteSnapshot(ExperimentalTag{}, operation)); +} + StatusOr SnapshotsTracingConnection::GetSnapshot( google::cloud::cpp::compute::snapshots::v1::GetSnapshotRequest const& @@ -73,6 +96,29 @@ SnapshotsTracingConnection::InsertSnapshot( return internal::EndSpan(std::move(span), child_->InsertSnapshot(request)); } +StatusOr +SnapshotsTracingConnection::InsertSnapshot( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::snapshots::v1::InsertSnapshotRequest const& + request) { + auto span = internal::MakeSpan( + "compute_snapshots_v1::SnapshotsConnection::InsertSnapshot"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->InsertSnapshot(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +SnapshotsTracingConnection::InsertSnapshot( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_snapshots_v1::SnapshotsConnection::InsertSnapshot"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->InsertSnapshot(ExperimentalTag{}, operation)); +} + StreamRange SnapshotsTracingConnection::ListSnapshots( google::cloud::cpp::compute::snapshots::v1::ListSnapshotsRequest request) { @@ -105,6 +151,29 @@ SnapshotsTracingConnection::SetLabels( return internal::EndSpan(std::move(span), child_->SetLabels(request)); } +StatusOr +SnapshotsTracingConnection::SetLabels( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::snapshots::v1::SetLabelsRequest const& + request) { + auto span = internal::MakeSpan( + "compute_snapshots_v1::SnapshotsConnection::SetLabels"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->SetLabels(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +SnapshotsTracingConnection::SetLabels( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_snapshots_v1::SnapshotsConnection::SetLabels"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->SetLabels(ExperimentalTag{}, operation)); +} + StatusOr SnapshotsTracingConnection::TestIamPermissions( google::cloud::cpp::compute::snapshots::v1::TestIamPermissionsRequest const& diff --git a/google/cloud/compute/snapshots/v1/internal/snapshots_tracing_connection.h b/google/cloud/compute/snapshots/v1/internal/snapshots_tracing_connection.h index 83a45b2b0fa8a..b0335c26999ba 100644 --- a/google/cloud/compute/snapshots/v1/internal/snapshots_tracing_connection.h +++ b/google/cloud/compute/snapshots/v1/internal/snapshots_tracing_connection.h @@ -44,6 +44,15 @@ class SnapshotsTracingConnection google::cloud::cpp::compute::snapshots::v1::DeleteSnapshotRequest const& request) override; + StatusOr DeleteSnapshot( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::snapshots::v1::DeleteSnapshotRequest const& + request) override; + + future> DeleteSnapshot( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StatusOr GetSnapshot( google::cloud::cpp::compute::snapshots::v1::GetSnapshotRequest const& request) override; @@ -56,6 +65,15 @@ class SnapshotsTracingConnection google::cloud::cpp::compute::snapshots::v1::InsertSnapshotRequest const& request) override; + StatusOr InsertSnapshot( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::snapshots::v1::InsertSnapshotRequest const& + request) override; + + future> InsertSnapshot( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StreamRange ListSnapshots( google::cloud::cpp::compute::snapshots::v1::ListSnapshotsRequest request) override; @@ -68,6 +86,15 @@ class SnapshotsTracingConnection google::cloud::cpp::compute::snapshots::v1::SetLabelsRequest const& request) override; + StatusOr SetLabels( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::snapshots::v1::SetLabelsRequest const& + request) override; + + future> SetLabels( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StatusOr TestIamPermissions(google::cloud::cpp::compute::snapshots::v1:: TestIamPermissionsRequest const& request) override; diff --git a/google/cloud/compute/snapshots/v1/mocks/mock_snapshots_connection.h b/google/cloud/compute/snapshots/v1/mocks/mock_snapshots_connection.h index 86f2c1550cff3..b5b2c3bf07119 100644 --- a/google/cloud/compute/snapshots/v1/mocks/mock_snapshots_connection.h +++ b/google/cloud/compute/snapshots/v1/mocks/mock_snapshots_connection.h @@ -54,6 +54,19 @@ class MockSnapshotsConnection request), (override)); + MOCK_METHOD( + StatusOr, DeleteSnapshot, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::snapshots::v1::DeleteSnapshotRequest const& + request), + (override)); + + MOCK_METHOD(future>, + DeleteSnapshot, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr, GetSnapshot, (google::cloud::cpp::compute::snapshots::v1::GetSnapshotRequest const& @@ -73,6 +86,19 @@ class MockSnapshotsConnection request), (override)); + MOCK_METHOD( + StatusOr, InsertSnapshot, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::snapshots::v1::InsertSnapshotRequest const& + request), + (override)); + + MOCK_METHOD(future>, + InsertSnapshot, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD((StreamRange), ListSnapshots, (google::cloud::cpp::compute::snapshots::v1::ListSnapshotsRequest @@ -91,6 +117,19 @@ class MockSnapshotsConnection request), (override)); + MOCK_METHOD( + StatusOr, SetLabels, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::snapshots::v1::SetLabelsRequest const& + request), + (override)); + + MOCK_METHOD(future>, + SetLabels, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr, TestIamPermissions, diff --git a/google/cloud/compute/snapshots/v1/snapshots_connection.cc b/google/cloud/compute/snapshots/v1/snapshots_connection.cc index 7b7886f671372..18a615c5a82d7 100644 --- a/google/cloud/compute/snapshots/v1/snapshots_connection.cc +++ b/google/cloud/compute/snapshots/v1/snapshots_connection.cc @@ -44,6 +44,22 @@ SnapshotsConnection::DeleteSnapshot( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +SnapshotsConnection::DeleteSnapshot( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::snapshots::v1::DeleteSnapshotRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +SnapshotsConnection::DeleteSnapshot( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr SnapshotsConnection::GetSnapshot( google::cloud::cpp::compute::snapshots::v1::GetSnapshotRequest const&) { @@ -64,6 +80,22 @@ SnapshotsConnection::InsertSnapshot( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +SnapshotsConnection::InsertSnapshot( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::snapshots::v1::InsertSnapshotRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +SnapshotsConnection::InsertSnapshot( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StreamRange SnapshotsConnection::ListSnapshots( google::cloud::cpp::compute::snapshots::v1:: @@ -86,6 +118,22 @@ SnapshotsConnection::SetLabels( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +SnapshotsConnection::SetLabels( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::snapshots::v1::SetLabelsRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +SnapshotsConnection::SetLabels( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr SnapshotsConnection::TestIamPermissions( google::cloud::cpp::compute::snapshots::v1:: diff --git a/google/cloud/compute/snapshots/v1/snapshots_connection.h b/google/cloud/compute/snapshots/v1/snapshots_connection.h index 25c823788a7cf..bc156fefbb047 100644 --- a/google/cloud/compute/snapshots/v1/snapshots_connection.h +++ b/google/cloud/compute/snapshots/v1/snapshots_connection.h @@ -22,8 +22,10 @@ #include "google/cloud/compute/snapshots/v1/internal/snapshots_retry_traits.h" #include "google/cloud/compute/snapshots/v1/snapshots_connection_idempotency_policy.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/internal/retry_policy_impl.h" +#include "google/cloud/no_await_tag.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" #include "google/cloud/status_or.h" @@ -188,6 +190,15 @@ class SnapshotsConnection { google::cloud::cpp::compute::snapshots::v1::DeleteSnapshotRequest const& request); + virtual StatusOr DeleteSnapshot( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::snapshots::v1::DeleteSnapshotRequest const& + request); + + virtual future> + DeleteSnapshot(ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual StatusOr GetSnapshot( google::cloud::cpp::compute::snapshots::v1::GetSnapshotRequest const& request); @@ -201,6 +212,15 @@ class SnapshotsConnection { google::cloud::cpp::compute::snapshots::v1::InsertSnapshotRequest const& request); + virtual StatusOr InsertSnapshot( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::snapshots::v1::InsertSnapshotRequest const& + request); + + virtual future> + InsertSnapshot(ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual StreamRange ListSnapshots( google::cloud::cpp::compute::snapshots::v1::ListSnapshotsRequest request); @@ -212,6 +232,15 @@ class SnapshotsConnection { SetLabels(google::cloud::cpp::compute::snapshots::v1::SetLabelsRequest const& request); + virtual StatusOr SetLabels( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::snapshots::v1::SetLabelsRequest const& + request); + + virtual future> + SetLabels(ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual StatusOr TestIamPermissions(google::cloud::cpp::compute::snapshots::v1:: TestIamPermissionsRequest const& request); diff --git a/google/cloud/compute/ssl_certificates/v1/internal/ssl_certificates_rest_connection_impl.cc b/google/cloud/compute/ssl_certificates/v1/internal/ssl_certificates_rest_connection_impl.cc index 535e6e459ad1f..8d6d70f25429a 100644 --- a/google/cloud/compute/ssl_certificates/v1/internal/ssl_certificates_rest_connection_impl.cc +++ b/google/cloud/compute/ssl_certificates/v1/internal/ssl_certificates_rest_connection_impl.cc @@ -23,6 +23,7 @@ #include "google/cloud/internal/async_rest_long_running_operation_custom.h" #include "google/cloud/internal/extract_long_running_result.h" #include "google/cloud/internal/pagination_range.h" +#include "google/cloud/internal/rest_lro_helpers.h" #include "google/cloud/internal/rest_retry_loop.h" #include "google/cloud/rest_options.h" #include @@ -145,6 +146,77 @@ SslCertificatesRestConnectionImpl::DeleteSslCertificate( }); } +StatusOr +SslCertificatesRestConnectionImpl::DeleteSslCertificate( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::ssl_certificates::v1:: + DeleteSslCertificateRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteSslCertificate(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::ssl_certificates::v1:: + DeleteSslCertificateRequest const& request) { + return stub_->DeleteSslCertificate(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +SslCertificatesRestConnectionImpl::DeleteSslCertificate( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::global_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }); +} + StatusOr SslCertificatesRestConnectionImpl::GetSslCertificate( google::cloud::cpp::compute::ssl_certificates::v1:: @@ -219,6 +291,77 @@ SslCertificatesRestConnectionImpl::InsertSslCertificate( }); } +StatusOr +SslCertificatesRestConnectionImpl::InsertSslCertificate( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::ssl_certificates::v1:: + InsertSslCertificateRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->InsertSslCertificate(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::ssl_certificates::v1:: + InsertSslCertificateRequest const& request) { + return stub_->InsertSslCertificate(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +SslCertificatesRestConnectionImpl::InsertSslCertificate( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::global_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }); +} + StreamRange SslCertificatesRestConnectionImpl::ListSslCertificates( google::cloud::cpp::compute::ssl_certificates::v1:: diff --git a/google/cloud/compute/ssl_certificates/v1/internal/ssl_certificates_rest_connection_impl.h b/google/cloud/compute/ssl_certificates/v1/internal/ssl_certificates_rest_connection_impl.h index b1a7aa4524f8f..dccef8687b3e6 100644 --- a/google/cloud/compute/ssl_certificates/v1/internal/ssl_certificates_rest_connection_impl.h +++ b/google/cloud/compute/ssl_certificates/v1/internal/ssl_certificates_rest_connection_impl.h @@ -62,6 +62,16 @@ class SslCertificatesRestConnectionImpl DeleteSslCertificate(google::cloud::cpp::compute::ssl_certificates::v1:: DeleteSslCertificateRequest const& request) override; + StatusOr DeleteSslCertificate( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::ssl_certificates::v1:: + DeleteSslCertificateRequest const& request) override; + + future> + DeleteSslCertificate( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StatusOr GetSslCertificate( google::cloud::cpp::compute::ssl_certificates::v1:: GetSslCertificateRequest const& request) override; @@ -70,6 +80,16 @@ class SslCertificatesRestConnectionImpl InsertSslCertificate(google::cloud::cpp::compute::ssl_certificates::v1:: InsertSslCertificateRequest const& request) override; + StatusOr InsertSslCertificate( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::ssl_certificates::v1:: + InsertSslCertificateRequest const& request) override; + + future> + InsertSslCertificate( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StreamRange ListSslCertificates(google::cloud::cpp::compute::ssl_certificates::v1:: ListSslCertificatesRequest request) override; diff --git a/google/cloud/compute/ssl_certificates/v1/internal/ssl_certificates_tracing_connection.cc b/google/cloud/compute/ssl_certificates/v1/internal/ssl_certificates_tracing_connection.cc index f96109bfd76ef..6b4e5822b8e8a 100644 --- a/google/cloud/compute/ssl_certificates/v1/internal/ssl_certificates_tracing_connection.cc +++ b/google/cloud/compute/ssl_certificates/v1/internal/ssl_certificates_tracing_connection.cc @@ -61,6 +61,32 @@ SslCertificatesTracingConnection::DeleteSslCertificate( child_->DeleteSslCertificate(request)); } +StatusOr +SslCertificatesTracingConnection::DeleteSslCertificate( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::ssl_certificates::v1:: + DeleteSslCertificateRequest const& request) { + auto span = internal::MakeSpan( + "compute_ssl_certificates_v1::SslCertificatesConnection::" + "DeleteSslCertificate"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->DeleteSslCertificate(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +SslCertificatesTracingConnection::DeleteSslCertificate( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_ssl_certificates_v1::SslCertificatesConnection::" + "DeleteSslCertificate"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->DeleteSslCertificate( + ExperimentalTag{}, operation)); +} + StatusOr SslCertificatesTracingConnection::GetSslCertificate( google::cloud::cpp::compute::ssl_certificates::v1:: @@ -84,6 +110,32 @@ SslCertificatesTracingConnection::InsertSslCertificate( child_->InsertSslCertificate(request)); } +StatusOr +SslCertificatesTracingConnection::InsertSslCertificate( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::ssl_certificates::v1:: + InsertSslCertificateRequest const& request) { + auto span = internal::MakeSpan( + "compute_ssl_certificates_v1::SslCertificatesConnection::" + "InsertSslCertificate"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->InsertSslCertificate(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +SslCertificatesTracingConnection::InsertSslCertificate( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_ssl_certificates_v1::SslCertificatesConnection::" + "InsertSslCertificate"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->InsertSslCertificate( + ExperimentalTag{}, operation)); +} + StreamRange SslCertificatesTracingConnection::ListSslCertificates( google::cloud::cpp::compute::ssl_certificates::v1:: diff --git a/google/cloud/compute/ssl_certificates/v1/internal/ssl_certificates_tracing_connection.h b/google/cloud/compute/ssl_certificates/v1/internal/ssl_certificates_tracing_connection.h index d9c6c9ae75445..822838dbadde1 100644 --- a/google/cloud/compute/ssl_certificates/v1/internal/ssl_certificates_tracing_connection.h +++ b/google/cloud/compute/ssl_certificates/v1/internal/ssl_certificates_tracing_connection.h @@ -51,6 +51,16 @@ class SslCertificatesTracingConnection DeleteSslCertificate(google::cloud::cpp::compute::ssl_certificates::v1:: DeleteSslCertificateRequest const& request) override; + StatusOr DeleteSslCertificate( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::ssl_certificates::v1:: + DeleteSslCertificateRequest const& request) override; + + future> + DeleteSslCertificate( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StatusOr GetSslCertificate( google::cloud::cpp::compute::ssl_certificates::v1:: GetSslCertificateRequest const& request) override; @@ -59,6 +69,16 @@ class SslCertificatesTracingConnection InsertSslCertificate(google::cloud::cpp::compute::ssl_certificates::v1:: InsertSslCertificateRequest const& request) override; + StatusOr InsertSslCertificate( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::ssl_certificates::v1:: + InsertSslCertificateRequest const& request) override; + + future> + InsertSslCertificate( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StreamRange ListSslCertificates(google::cloud::cpp::compute::ssl_certificates::v1:: ListSslCertificatesRequest request) override; diff --git a/google/cloud/compute/ssl_certificates/v1/mocks/mock_ssl_certificates_connection.h b/google/cloud/compute/ssl_certificates/v1/mocks/mock_ssl_certificates_connection.h index cd0f9a811dbec..3815cff732f3e 100644 --- a/google/cloud/compute/ssl_certificates/v1/mocks/mock_ssl_certificates_connection.h +++ b/google/cloud/compute/ssl_certificates/v1/mocks/mock_ssl_certificates_connection.h @@ -61,6 +61,19 @@ class MockSslCertificatesConnection DeleteSslCertificateRequest const& request), (override)); + MOCK_METHOD(StatusOr, + DeleteSslCertificate, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::ssl_certificates::v1:: + DeleteSslCertificateRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteSslCertificate, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD(StatusOr, GetSslCertificate, (google::cloud::cpp::compute::ssl_certificates::v1:: @@ -73,6 +86,19 @@ class MockSslCertificatesConnection InsertSslCertificateRequest const& request), (override)); + MOCK_METHOD(StatusOr, + InsertSslCertificate, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::ssl_certificates::v1:: + InsertSslCertificateRequest const& request), + (override)); + + MOCK_METHOD(future>, + InsertSslCertificate, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD((StreamRange), ListSslCertificates, (google::cloud::cpp::compute::ssl_certificates::v1:: diff --git a/google/cloud/compute/ssl_certificates/v1/ssl_certificates_connection.cc b/google/cloud/compute/ssl_certificates/v1/ssl_certificates_connection.cc index caee050c311c0..07b3a7fb961a5 100644 --- a/google/cloud/compute/ssl_certificates/v1/ssl_certificates_connection.cc +++ b/google/cloud/compute/ssl_certificates/v1/ssl_certificates_connection.cc @@ -55,6 +55,23 @@ SslCertificatesConnection::DeleteSslCertificate( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +SslCertificatesConnection::DeleteSslCertificate( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::ssl_certificates::v1:: + DeleteSslCertificateRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +SslCertificatesConnection::DeleteSslCertificate( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr SslCertificatesConnection::GetSslCertificate( google::cloud::cpp::compute::ssl_certificates::v1:: @@ -71,6 +88,23 @@ SslCertificatesConnection::InsertSslCertificate( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +SslCertificatesConnection::InsertSslCertificate( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::ssl_certificates::v1:: + InsertSslCertificateRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +SslCertificatesConnection::InsertSslCertificate( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StreamRange SslCertificatesConnection::ListSslCertificates( google::cloud::cpp::compute::ssl_certificates::v1:: diff --git a/google/cloud/compute/ssl_certificates/v1/ssl_certificates_connection.h b/google/cloud/compute/ssl_certificates/v1/ssl_certificates_connection.h index b32fd79e33928..09442e2ea3f5d 100644 --- a/google/cloud/compute/ssl_certificates/v1/ssl_certificates_connection.h +++ b/google/cloud/compute/ssl_certificates/v1/ssl_certificates_connection.h @@ -22,8 +22,10 @@ #include "google/cloud/compute/ssl_certificates/v1/internal/ssl_certificates_retry_traits.h" #include "google/cloud/compute/ssl_certificates/v1/ssl_certificates_connection_idempotency_policy.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/internal/retry_policy_impl.h" +#include "google/cloud/no_await_tag.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" #include "google/cloud/status_or.h" @@ -196,6 +198,16 @@ class SslCertificatesConnection { DeleteSslCertificate(google::cloud::cpp::compute::ssl_certificates::v1:: DeleteSslCertificateRequest const& request); + virtual StatusOr + DeleteSslCertificate(ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::ssl_certificates::v1:: + DeleteSslCertificateRequest const& request); + + virtual future> + DeleteSslCertificate( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual StatusOr GetSslCertificate(google::cloud::cpp::compute::ssl_certificates::v1:: GetSslCertificateRequest const& request); @@ -204,6 +216,16 @@ class SslCertificatesConnection { InsertSslCertificate(google::cloud::cpp::compute::ssl_certificates::v1:: InsertSslCertificateRequest const& request); + virtual StatusOr + InsertSslCertificate(ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::ssl_certificates::v1:: + InsertSslCertificateRequest const& request); + + virtual future> + InsertSslCertificate( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual StreamRange ListSslCertificates(google::cloud::cpp::compute::ssl_certificates::v1:: ListSslCertificatesRequest request); diff --git a/google/cloud/compute/ssl_policies/v1/internal/ssl_policies_rest_connection_impl.cc b/google/cloud/compute/ssl_policies/v1/internal/ssl_policies_rest_connection_impl.cc index e4a7bf883ef93..8a3f859ac11fb 100644 --- a/google/cloud/compute/ssl_policies/v1/internal/ssl_policies_rest_connection_impl.cc +++ b/google/cloud/compute/ssl_policies/v1/internal/ssl_policies_rest_connection_impl.cc @@ -23,6 +23,7 @@ #include "google/cloud/internal/async_rest_long_running_operation_custom.h" #include "google/cloud/internal/extract_long_running_result.h" #include "google/cloud/internal/pagination_range.h" +#include "google/cloud/internal/rest_lro_helpers.h" #include "google/cloud/internal/rest_retry_loop.h" #include "google/cloud/rest_options.h" #include @@ -142,6 +143,77 @@ SslPoliciesRestConnectionImpl::DeleteSslPolicy( }); } +StatusOr +SslPoliciesRestConnectionImpl::DeleteSslPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::ssl_policies::v1::DeleteSslPolicyRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteSslPolicy(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::ssl_policies::v1:: + DeleteSslPolicyRequest const& request) { + return stub_->DeleteSslPolicy(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +SslPoliciesRestConnectionImpl::DeleteSslPolicy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::global_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }); +} + StatusOr SslPoliciesRestConnectionImpl::GetSslPolicy( google::cloud::cpp::compute::ssl_policies::v1::GetSslPolicyRequest const& @@ -216,6 +288,77 @@ SslPoliciesRestConnectionImpl::InsertSslPolicy( }); } +StatusOr +SslPoliciesRestConnectionImpl::InsertSslPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::ssl_policies::v1::InsertSslPolicyRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->InsertSslPolicy(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::ssl_policies::v1:: + InsertSslPolicyRequest const& request) { + return stub_->InsertSslPolicy(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +SslPoliciesRestConnectionImpl::InsertSslPolicy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::global_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }); +} + StreamRange SslPoliciesRestConnectionImpl::ListSslPolicies( google::cloud::cpp::compute::ssl_policies::v1::ListSslPoliciesRequest @@ -327,6 +470,77 @@ SslPoliciesRestConnectionImpl::PatchSslPolicy( }); } +StatusOr +SslPoliciesRestConnectionImpl::PatchSslPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::ssl_policies::v1::PatchSslPolicyRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->PatchSslPolicy(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::ssl_policies::v1:: + PatchSslPolicyRequest const& request) { + return stub_->PatchSslPolicy(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +SslPoliciesRestConnectionImpl::PatchSslPolicy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::global_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace compute_ssl_policies_v1_internal } // namespace cloud diff --git a/google/cloud/compute/ssl_policies/v1/internal/ssl_policies_rest_connection_impl.h b/google/cloud/compute/ssl_policies/v1/internal/ssl_policies_rest_connection_impl.h index 2528c7058f620..501b3218c7b26 100644 --- a/google/cloud/compute/ssl_policies/v1/internal/ssl_policies_rest_connection_impl.h +++ b/google/cloud/compute/ssl_policies/v1/internal/ssl_policies_rest_connection_impl.h @@ -61,6 +61,15 @@ class SslPoliciesRestConnectionImpl google::cloud::cpp::compute::ssl_policies::v1:: DeleteSslPolicyRequest const& request) override; + StatusOr DeleteSslPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::ssl_policies::v1:: + DeleteSslPolicyRequest const& request) override; + + future> DeleteSslPolicy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StatusOr GetSslPolicy( google::cloud::cpp::compute::ssl_policies::v1::GetSslPolicyRequest const& request) override; @@ -69,6 +78,15 @@ class SslPoliciesRestConnectionImpl google::cloud::cpp::compute::ssl_policies::v1:: InsertSslPolicyRequest const& request) override; + StatusOr InsertSslPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::ssl_policies::v1:: + InsertSslPolicyRequest const& request) override; + + future> InsertSslPolicy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StreamRange ListSslPolicies( google::cloud::cpp::compute::ssl_policies::v1::ListSslPoliciesRequest request) override; @@ -83,6 +101,15 @@ class SslPoliciesRestConnectionImpl google::cloud::cpp::compute::ssl_policies::v1:: PatchSslPolicyRequest const& request) override; + StatusOr PatchSslPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::ssl_policies::v1:: + PatchSslPolicyRequest const& request) override; + + future> PatchSslPolicy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + private: static std::unique_ptr retry_policy(Options const& options) { diff --git a/google/cloud/compute/ssl_policies/v1/internal/ssl_policies_tracing_connection.cc b/google/cloud/compute/ssl_policies/v1/internal/ssl_policies_tracing_connection.cc index 3ed05a3d05179..5c9aca89f938c 100644 --- a/google/cloud/compute/ssl_policies/v1/internal/ssl_policies_tracing_connection.cc +++ b/google/cloud/compute/ssl_policies/v1/internal/ssl_policies_tracing_connection.cc @@ -58,6 +58,29 @@ SslPoliciesTracingConnection::DeleteSslPolicy( return internal::EndSpan(std::move(span), child_->DeleteSslPolicy(request)); } +StatusOr +SslPoliciesTracingConnection::DeleteSslPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::ssl_policies::v1::DeleteSslPolicyRequest const& + request) { + auto span = internal::MakeSpan( + "compute_ssl_policies_v1::SslPoliciesConnection::DeleteSslPolicy"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->DeleteSslPolicy(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +SslPoliciesTracingConnection::DeleteSslPolicy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_ssl_policies_v1::SslPoliciesConnection::DeleteSslPolicy"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->DeleteSslPolicy(ExperimentalTag{}, operation)); +} + StatusOr SslPoliciesTracingConnection::GetSslPolicy( google::cloud::cpp::compute::ssl_policies::v1::GetSslPolicyRequest const& @@ -78,6 +101,29 @@ SslPoliciesTracingConnection::InsertSslPolicy( return internal::EndSpan(std::move(span), child_->InsertSslPolicy(request)); } +StatusOr +SslPoliciesTracingConnection::InsertSslPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::ssl_policies::v1::InsertSslPolicyRequest const& + request) { + auto span = internal::MakeSpan( + "compute_ssl_policies_v1::SslPoliciesConnection::InsertSslPolicy"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->InsertSslPolicy(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +SslPoliciesTracingConnection::InsertSslPolicy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_ssl_policies_v1::SslPoliciesConnection::InsertSslPolicy"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->InsertSslPolicy(ExperimentalTag{}, operation)); +} + StreamRange SslPoliciesTracingConnection::ListSslPolicies( google::cloud::cpp::compute::ssl_policies::v1::ListSslPoliciesRequest @@ -112,6 +158,29 @@ SslPoliciesTracingConnection::PatchSslPolicy( return internal::EndSpan(std::move(span), child_->PatchSslPolicy(request)); } +StatusOr +SslPoliciesTracingConnection::PatchSslPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::ssl_policies::v1::PatchSslPolicyRequest const& + request) { + auto span = internal::MakeSpan( + "compute_ssl_policies_v1::SslPoliciesConnection::PatchSslPolicy"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->PatchSslPolicy(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +SslPoliciesTracingConnection::PatchSslPolicy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_ssl_policies_v1::SslPoliciesConnection::PatchSslPolicy"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->PatchSslPolicy(ExperimentalTag{}, operation)); +} + #endif // GOOGLE_CLOUD_CPP_HAVE_OPENTELEMETRY std::shared_ptr diff --git a/google/cloud/compute/ssl_policies/v1/internal/ssl_policies_tracing_connection.h b/google/cloud/compute/ssl_policies/v1/internal/ssl_policies_tracing_connection.h index 34a3b8961746a..6f3d8750431e3 100644 --- a/google/cloud/compute/ssl_policies/v1/internal/ssl_policies_tracing_connection.h +++ b/google/cloud/compute/ssl_policies/v1/internal/ssl_policies_tracing_connection.h @@ -50,6 +50,15 @@ class SslPoliciesTracingConnection google::cloud::cpp::compute::ssl_policies::v1:: DeleteSslPolicyRequest const& request) override; + StatusOr DeleteSslPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::ssl_policies::v1:: + DeleteSslPolicyRequest const& request) override; + + future> DeleteSslPolicy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StatusOr GetSslPolicy( google::cloud::cpp::compute::ssl_policies::v1::GetSslPolicyRequest const& request) override; @@ -58,6 +67,15 @@ class SslPoliciesTracingConnection google::cloud::cpp::compute::ssl_policies::v1:: InsertSslPolicyRequest const& request) override; + StatusOr InsertSslPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::ssl_policies::v1:: + InsertSslPolicyRequest const& request) override; + + future> InsertSslPolicy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StreamRange ListSslPolicies( google::cloud::cpp::compute::ssl_policies::v1::ListSslPoliciesRequest request) override; @@ -72,6 +90,15 @@ class SslPoliciesTracingConnection google::cloud::cpp::compute::ssl_policies::v1:: PatchSslPolicyRequest const& request) override; + StatusOr PatchSslPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::ssl_policies::v1:: + PatchSslPolicyRequest const& request) override; + + future> PatchSslPolicy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + private: std::shared_ptr child_; }; diff --git a/google/cloud/compute/ssl_policies/v1/mocks/mock_ssl_policies_connection.h b/google/cloud/compute/ssl_policies/v1/mocks/mock_ssl_policies_connection.h index c99cd93efe3e0..c077d3ea58d07 100644 --- a/google/cloud/compute/ssl_policies/v1/mocks/mock_ssl_policies_connection.h +++ b/google/cloud/compute/ssl_policies/v1/mocks/mock_ssl_policies_connection.h @@ -62,6 +62,19 @@ class MockSslPoliciesConnection DeleteSslPolicyRequest const& request), (override)); + MOCK_METHOD(StatusOr, + DeleteSslPolicy, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::ssl_policies::v1:: + DeleteSslPolicyRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteSslPolicy, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr, GetSslPolicy, (google::cloud::cpp::compute::ssl_policies::v1::GetSslPolicyRequest const& @@ -74,6 +87,19 @@ class MockSslPoliciesConnection InsertSslPolicyRequest const& request), (override)); + MOCK_METHOD(StatusOr, + InsertSslPolicy, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::ssl_policies::v1:: + InsertSslPolicyRequest const& request), + (override)); + + MOCK_METHOD(future>, + InsertSslPolicy, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD( (StreamRange), ListSslPolicies, @@ -93,6 +119,19 @@ class MockSslPoliciesConnection (google::cloud::cpp::compute::ssl_policies::v1:: PatchSslPolicyRequest const& request), (override)); + + MOCK_METHOD(StatusOr, + PatchSslPolicy, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::ssl_policies::v1:: + PatchSslPolicyRequest const& request), + (override)); + + MOCK_METHOD(future>, + PatchSslPolicy, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); }; GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END diff --git a/google/cloud/compute/ssl_policies/v1/ssl_policies_connection.cc b/google/cloud/compute/ssl_policies/v1/ssl_policies_connection.cc index c9b0e1472ad3c..c95d020cc7321 100644 --- a/google/cloud/compute/ssl_policies/v1/ssl_policies_connection.cc +++ b/google/cloud/compute/ssl_policies/v1/ssl_policies_connection.cc @@ -55,6 +55,23 @@ SslPoliciesConnection::DeleteSslPolicy( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +SslPoliciesConnection::DeleteSslPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::ssl_policies::v1:: + DeleteSslPolicyRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +SslPoliciesConnection::DeleteSslPolicy( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr SslPoliciesConnection::GetSslPolicy( google::cloud::cpp::compute::ssl_policies::v1::GetSslPolicyRequest const&) { @@ -70,6 +87,23 @@ SslPoliciesConnection::InsertSslPolicy( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +SslPoliciesConnection::InsertSslPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::ssl_policies::v1:: + InsertSslPolicyRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +SslPoliciesConnection::InsertSslPolicy( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StreamRange SslPoliciesConnection::ListSslPolicies( google::cloud::cpp::compute::ssl_policies::v1:: @@ -95,6 +129,23 @@ SslPoliciesConnection::PatchSslPolicy( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +SslPoliciesConnection::PatchSslPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::ssl_policies::v1:: + PatchSslPolicyRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +SslPoliciesConnection::PatchSslPolicy( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace compute_ssl_policies_v1 } // namespace cloud diff --git a/google/cloud/compute/ssl_policies/v1/ssl_policies_connection.h b/google/cloud/compute/ssl_policies/v1/ssl_policies_connection.h index 1ea63e1ef9499..504d273c191f8 100644 --- a/google/cloud/compute/ssl_policies/v1/ssl_policies_connection.h +++ b/google/cloud/compute/ssl_policies/v1/ssl_policies_connection.h @@ -22,8 +22,10 @@ #include "google/cloud/compute/ssl_policies/v1/internal/ssl_policies_retry_traits.h" #include "google/cloud/compute/ssl_policies/v1/ssl_policies_connection_idempotency_policy.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/internal/retry_policy_impl.h" +#include "google/cloud/no_await_tag.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" #include "google/cloud/status_or.h" @@ -192,6 +194,15 @@ class SslPoliciesConnection { DeleteSslPolicy(google::cloud::cpp::compute::ssl_policies::v1:: DeleteSslPolicyRequest const& request); + virtual StatusOr DeleteSslPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::ssl_policies::v1:: + DeleteSslPolicyRequest const& request); + + virtual future> + DeleteSslPolicy(ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual StatusOr GetSslPolicy( google::cloud::cpp::compute::ssl_policies::v1::GetSslPolicyRequest const& request); @@ -200,6 +211,15 @@ class SslPoliciesConnection { InsertSslPolicy(google::cloud::cpp::compute::ssl_policies::v1:: InsertSslPolicyRequest const& request); + virtual StatusOr InsertSslPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::ssl_policies::v1:: + InsertSslPolicyRequest const& request); + + virtual future> + InsertSslPolicy(ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual StreamRange ListSslPolicies( google::cloud::cpp::compute::ssl_policies::v1::ListSslPoliciesRequest @@ -213,6 +233,15 @@ class SslPoliciesConnection { virtual future> PatchSslPolicy(google::cloud::cpp::compute::ssl_policies::v1:: PatchSslPolicyRequest const& request); + + virtual StatusOr PatchSslPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::ssl_policies::v1:: + PatchSslPolicyRequest const& request); + + virtual future> + PatchSslPolicy(ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); }; GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END diff --git a/google/cloud/compute/storage_pool_types/v1/storage_pool_types_connection.h b/google/cloud/compute/storage_pool_types/v1/storage_pool_types_connection.h index 868fb2c4ca682..b751f224f9268 100644 --- a/google/cloud/compute/storage_pool_types/v1/storage_pool_types_connection.h +++ b/google/cloud/compute/storage_pool_types/v1/storage_pool_types_connection.h @@ -22,6 +22,7 @@ #include "google/cloud/compute/storage_pool_types/v1/internal/storage_pool_types_retry_traits.h" #include "google/cloud/compute/storage_pool_types/v1/storage_pool_types_connection_idempotency_policy.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/internal/retry_policy_impl.h" #include "google/cloud/options.h" #include "google/cloud/status_or.h" diff --git a/google/cloud/compute/storage_pools/v1/internal/storage_pools_rest_connection_impl.cc b/google/cloud/compute/storage_pools/v1/internal/storage_pools_rest_connection_impl.cc index 3b499a44c0ff2..a5e28d9f1c24e 100644 --- a/google/cloud/compute/storage_pools/v1/internal/storage_pools_rest_connection_impl.cc +++ b/google/cloud/compute/storage_pools/v1/internal/storage_pools_rest_connection_impl.cc @@ -23,6 +23,7 @@ #include "google/cloud/internal/async_rest_long_running_operation_custom.h" #include "google/cloud/internal/extract_long_running_result.h" #include "google/cloud/internal/pagination_range.h" +#include "google/cloud/internal/rest_lro_helpers.h" #include "google/cloud/internal/rest_retry_loop.h" #include "google/cloud/rest_options.h" #include @@ -146,6 +147,79 @@ StoragePoolsRestConnectionImpl::DeleteStoragePool( }); } +StatusOr +StoragePoolsRestConnectionImpl::DeleteStoragePool( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::storage_pools::v1:: + DeleteStoragePoolRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteStoragePool(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::storage_pools::v1:: + DeleteStoragePoolRequest const& request) { + return stub_->DeleteStoragePool(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +StoragePoolsRestConnectionImpl::DeleteStoragePool( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::zone_operations::v1::DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::zone_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::zone_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation]( + std::string const&, + google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest& + r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_zone(info.zone); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::zone_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_zone(info.zone); + r.set_operation(info.operation); + }); +} + StatusOr StoragePoolsRestConnectionImpl::GetStoragePool( google::cloud::cpp::compute::storage_pools::v1::GetStoragePoolRequest const& @@ -238,6 +312,79 @@ StoragePoolsRestConnectionImpl::InsertStoragePool( }); } +StatusOr +StoragePoolsRestConnectionImpl::InsertStoragePool( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::storage_pools::v1:: + InsertStoragePoolRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->InsertStoragePool(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::storage_pools::v1:: + InsertStoragePoolRequest const& request) { + return stub_->InsertStoragePool(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +StoragePoolsRestConnectionImpl::InsertStoragePool( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::zone_operations::v1::DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::zone_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::zone_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation]( + std::string const&, + google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest& + r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_zone(info.zone); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::zone_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_zone(info.zone); + r.set_operation(info.operation); + }); +} + StreamRange StoragePoolsRestConnectionImpl::ListStoragePools( google::cloud::cpp::compute::storage_pools::v1::ListStoragePoolsRequest @@ -403,6 +550,79 @@ StoragePoolsRestConnectionImpl::UpdateStoragePool( }); } +StatusOr +StoragePoolsRestConnectionImpl::UpdateStoragePool( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::storage_pools::v1:: + UpdateStoragePoolRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UpdateStoragePool(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::storage_pools::v1:: + UpdateStoragePoolRequest const& request) { + return stub_->UpdateStoragePool(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +StoragePoolsRestConnectionImpl::UpdateStoragePool( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::zone_operations::v1::DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::zone_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::zone_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation]( + std::string const&, + google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest& + r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_zone(info.zone); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::zone_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_zone(info.zone); + r.set_operation(info.operation); + }); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace compute_storage_pools_v1_internal } // namespace cloud diff --git a/google/cloud/compute/storage_pools/v1/internal/storage_pools_rest_connection_impl.h b/google/cloud/compute/storage_pools/v1/internal/storage_pools_rest_connection_impl.h index 5e3c79632f0b5..df7b1e7e95635 100644 --- a/google/cloud/compute/storage_pools/v1/internal/storage_pools_rest_connection_impl.h +++ b/google/cloud/compute/storage_pools/v1/internal/storage_pools_rest_connection_impl.h @@ -61,6 +61,16 @@ class StoragePoolsRestConnectionImpl DeleteStoragePool(google::cloud::cpp::compute::storage_pools::v1:: DeleteStoragePoolRequest const& request) override; + StatusOr DeleteStoragePool( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::storage_pools::v1:: + DeleteStoragePoolRequest const& request) override; + + future> + DeleteStoragePool( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StatusOr GetStoragePool( google::cloud::cpp::compute::storage_pools::v1:: GetStoragePoolRequest const& request) override; @@ -73,6 +83,16 @@ class StoragePoolsRestConnectionImpl InsertStoragePool(google::cloud::cpp::compute::storage_pools::v1:: InsertStoragePoolRequest const& request) override; + StatusOr InsertStoragePool( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::storage_pools::v1:: + InsertStoragePoolRequest const& request) override; + + future> + InsertStoragePool( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StreamRange ListStoragePools( google::cloud::cpp::compute::storage_pools::v1::ListStoragePoolsRequest request) override; @@ -93,6 +113,16 @@ class StoragePoolsRestConnectionImpl UpdateStoragePool(google::cloud::cpp::compute::storage_pools::v1:: UpdateStoragePoolRequest const& request) override; + StatusOr UpdateStoragePool( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::storage_pools::v1:: + UpdateStoragePoolRequest const& request) override; + + future> + UpdateStoragePool( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + private: static std::unique_ptr retry_policy(Options const& options) { diff --git a/google/cloud/compute/storage_pools/v1/internal/storage_pools_tracing_connection.cc b/google/cloud/compute/storage_pools/v1/internal/storage_pools_tracing_connection.cc index b45aaccc73c99..7795a3d30a608 100644 --- a/google/cloud/compute/storage_pools/v1/internal/storage_pools_tracing_connection.cc +++ b/google/cloud/compute/storage_pools/v1/internal/storage_pools_tracing_connection.cc @@ -58,6 +58,30 @@ StoragePoolsTracingConnection::DeleteStoragePool( return internal::EndSpan(std::move(span), child_->DeleteStoragePool(request)); } +StatusOr +StoragePoolsTracingConnection::DeleteStoragePool( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::storage_pools::v1:: + DeleteStoragePoolRequest const& request) { + auto span = internal::MakeSpan( + "compute_storage_pools_v1::StoragePoolsConnection::DeleteStoragePool"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->DeleteStoragePool(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +StoragePoolsTracingConnection::DeleteStoragePool( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_storage_pools_v1::StoragePoolsConnection::DeleteStoragePool"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->DeleteStoragePool(ExperimentalTag{}, operation)); +} + StatusOr StoragePoolsTracingConnection::GetStoragePool( google::cloud::cpp::compute::storage_pools::v1::GetStoragePoolRequest const& @@ -88,6 +112,30 @@ StoragePoolsTracingConnection::InsertStoragePool( return internal::EndSpan(std::move(span), child_->InsertStoragePool(request)); } +StatusOr +StoragePoolsTracingConnection::InsertStoragePool( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::storage_pools::v1:: + InsertStoragePoolRequest const& request) { + auto span = internal::MakeSpan( + "compute_storage_pools_v1::StoragePoolsConnection::InsertStoragePool"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->InsertStoragePool(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +StoragePoolsTracingConnection::InsertStoragePool( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_storage_pools_v1::StoragePoolsConnection::InsertStoragePool"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->InsertStoragePool(ExperimentalTag{}, operation)); +} + StreamRange StoragePoolsTracingConnection::ListStoragePools( google::cloud::cpp::compute::storage_pools::v1::ListStoragePoolsRequest @@ -143,6 +191,30 @@ StoragePoolsTracingConnection::UpdateStoragePool( return internal::EndSpan(std::move(span), child_->UpdateStoragePool(request)); } +StatusOr +StoragePoolsTracingConnection::UpdateStoragePool( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::storage_pools::v1:: + UpdateStoragePoolRequest const& request) { + auto span = internal::MakeSpan( + "compute_storage_pools_v1::StoragePoolsConnection::UpdateStoragePool"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->UpdateStoragePool(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +StoragePoolsTracingConnection::UpdateStoragePool( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_storage_pools_v1::StoragePoolsConnection::UpdateStoragePool"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->UpdateStoragePool(ExperimentalTag{}, operation)); +} + #endif // GOOGLE_CLOUD_CPP_HAVE_OPENTELEMETRY std::shared_ptr diff --git a/google/cloud/compute/storage_pools/v1/internal/storage_pools_tracing_connection.h b/google/cloud/compute/storage_pools/v1/internal/storage_pools_tracing_connection.h index 93346c2f30deb..a67eb879be71f 100644 --- a/google/cloud/compute/storage_pools/v1/internal/storage_pools_tracing_connection.h +++ b/google/cloud/compute/storage_pools/v1/internal/storage_pools_tracing_connection.h @@ -50,6 +50,16 @@ class StoragePoolsTracingConnection DeleteStoragePool(google::cloud::cpp::compute::storage_pools::v1:: DeleteStoragePoolRequest const& request) override; + StatusOr DeleteStoragePool( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::storage_pools::v1:: + DeleteStoragePoolRequest const& request) override; + + future> + DeleteStoragePool( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StatusOr GetStoragePool( google::cloud::cpp::compute::storage_pools::v1:: GetStoragePoolRequest const& request) override; @@ -62,6 +72,16 @@ class StoragePoolsTracingConnection InsertStoragePool(google::cloud::cpp::compute::storage_pools::v1:: InsertStoragePoolRequest const& request) override; + StatusOr InsertStoragePool( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::storage_pools::v1:: + InsertStoragePoolRequest const& request) override; + + future> + InsertStoragePool( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StreamRange ListStoragePools( google::cloud::cpp::compute::storage_pools::v1::ListStoragePoolsRequest request) override; @@ -82,6 +102,16 @@ class StoragePoolsTracingConnection UpdateStoragePool(google::cloud::cpp::compute::storage_pools::v1:: UpdateStoragePoolRequest const& request) override; + StatusOr UpdateStoragePool( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::storage_pools::v1:: + UpdateStoragePoolRequest const& request) override; + + future> + UpdateStoragePool( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + private: std::shared_ptr child_; }; diff --git a/google/cloud/compute/storage_pools/v1/mocks/mock_storage_pools_connection.h b/google/cloud/compute/storage_pools/v1/mocks/mock_storage_pools_connection.h index af94670954061..2b0141a5f8199 100644 --- a/google/cloud/compute/storage_pools/v1/mocks/mock_storage_pools_connection.h +++ b/google/cloud/compute/storage_pools/v1/mocks/mock_storage_pools_connection.h @@ -62,6 +62,19 @@ class MockStoragePoolsConnection DeleteStoragePoolRequest const& request), (override)); + MOCK_METHOD(StatusOr, + DeleteStoragePool, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::storage_pools::v1:: + DeleteStoragePoolRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteStoragePool, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD(StatusOr, GetStoragePool, (google::cloud::cpp::compute::storage_pools::v1:: @@ -79,6 +92,19 @@ class MockStoragePoolsConnection InsertStoragePoolRequest const& request), (override)); + MOCK_METHOD(StatusOr, + InsertStoragePool, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::storage_pools::v1:: + InsertStoragePoolRequest const& request), + (override)); + + MOCK_METHOD(future>, + InsertStoragePool, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD( (StreamRange), ListStoragePools, @@ -109,6 +135,19 @@ class MockStoragePoolsConnection (google::cloud::cpp::compute::storage_pools::v1:: UpdateStoragePoolRequest const& request), (override)); + + MOCK_METHOD(StatusOr, + UpdateStoragePool, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::storage_pools::v1:: + UpdateStoragePoolRequest const& request), + (override)); + + MOCK_METHOD(future>, + UpdateStoragePool, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); }; GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END diff --git a/google/cloud/compute/storage_pools/v1/storage_pools_connection.cc b/google/cloud/compute/storage_pools/v1/storage_pools_connection.cc index a95a8fe98687a..ac097831bd67f 100644 --- a/google/cloud/compute/storage_pools/v1/storage_pools_connection.cc +++ b/google/cloud/compute/storage_pools/v1/storage_pools_connection.cc @@ -55,6 +55,23 @@ StoragePoolsConnection::DeleteStoragePool( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +StoragePoolsConnection::DeleteStoragePool( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::storage_pools::v1:: + DeleteStoragePoolRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +StoragePoolsConnection::DeleteStoragePool( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr StoragePoolsConnection::GetStoragePool( google::cloud::cpp::compute::storage_pools::v1:: @@ -78,6 +95,23 @@ StoragePoolsConnection::InsertStoragePool( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +StoragePoolsConnection::InsertStoragePool( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::storage_pools::v1:: + InsertStoragePoolRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +StoragePoolsConnection::InsertStoragePool( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StreamRange StoragePoolsConnection::ListStoragePools( google::cloud::cpp::compute::storage_pools::v1:: @@ -117,6 +151,23 @@ StoragePoolsConnection::UpdateStoragePool( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +StoragePoolsConnection::UpdateStoragePool( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::storage_pools::v1:: + UpdateStoragePoolRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +StoragePoolsConnection::UpdateStoragePool( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace compute_storage_pools_v1 } // namespace cloud diff --git a/google/cloud/compute/storage_pools/v1/storage_pools_connection.h b/google/cloud/compute/storage_pools/v1/storage_pools_connection.h index 3589428dea755..8d0e24ac9949c 100644 --- a/google/cloud/compute/storage_pools/v1/storage_pools_connection.h +++ b/google/cloud/compute/storage_pools/v1/storage_pools_connection.h @@ -22,8 +22,10 @@ #include "google/cloud/compute/storage_pools/v1/internal/storage_pools_retry_traits.h" #include "google/cloud/compute/storage_pools/v1/storage_pools_connection_idempotency_policy.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/internal/retry_policy_impl.h" +#include "google/cloud/no_await_tag.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" #include "google/cloud/status_or.h" @@ -194,6 +196,16 @@ class StoragePoolsConnection { DeleteStoragePool(google::cloud::cpp::compute::storage_pools::v1:: DeleteStoragePoolRequest const& request); + virtual StatusOr + DeleteStoragePool(ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::storage_pools::v1:: + DeleteStoragePoolRequest const& request); + + virtual future> + DeleteStoragePool( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual StatusOr GetStoragePool( google::cloud::cpp::compute::storage_pools::v1:: GetStoragePoolRequest const& request); @@ -206,6 +218,16 @@ class StoragePoolsConnection { InsertStoragePool(google::cloud::cpp::compute::storage_pools::v1:: InsertStoragePoolRequest const& request); + virtual StatusOr + InsertStoragePool(ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::storage_pools::v1:: + InsertStoragePoolRequest const& request); + + virtual future> + InsertStoragePool( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual StreamRange ListStoragePools( google::cloud::cpp::compute::storage_pools::v1::ListStoragePoolsRequest @@ -226,6 +248,16 @@ class StoragePoolsConnection { virtual future> UpdateStoragePool(google::cloud::cpp::compute::storage_pools::v1:: UpdateStoragePoolRequest const& request); + + virtual StatusOr + UpdateStoragePool(ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::storage_pools::v1:: + UpdateStoragePoolRequest const& request); + + virtual future> + UpdateStoragePool( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); }; GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END diff --git a/google/cloud/compute/subnetworks/v1/internal/subnetworks_rest_connection_impl.cc b/google/cloud/compute/subnetworks/v1/internal/subnetworks_rest_connection_impl.cc index 1d7f22a087b8d..2b0da461eacf5 100644 --- a/google/cloud/compute/subnetworks/v1/internal/subnetworks_rest_connection_impl.cc +++ b/google/cloud/compute/subnetworks/v1/internal/subnetworks_rest_connection_impl.cc @@ -23,6 +23,7 @@ #include "google/cloud/internal/async_rest_long_running_operation_custom.h" #include "google/cloud/internal/extract_long_running_result.h" #include "google/cloud/internal/pagination_range.h" +#include "google/cloud/internal/rest_lro_helpers.h" #include "google/cloud/internal/rest_retry_loop.h" #include "google/cloud/rest_options.h" #include @@ -144,6 +145,79 @@ SubnetworksRestConnectionImpl::DeleteSubnetwork( }); } +StatusOr +SubnetworksRestConnectionImpl::DeleteSubnetwork( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::subnetworks::v1::DeleteSubnetworkRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteSubnetwork(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::subnetworks::v1:: + DeleteSubnetworkRequest const& request) { + return stub_->DeleteSubnetwork(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +SubnetworksRestConnectionImpl::DeleteSubnetwork( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::region_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }); +} + future> SubnetworksRestConnectionImpl::ExpandIpCidrRange( google::cloud::cpp::compute::subnetworks::v1:: @@ -204,6 +278,79 @@ SubnetworksRestConnectionImpl::ExpandIpCidrRange( }); } +StatusOr +SubnetworksRestConnectionImpl::ExpandIpCidrRange( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::subnetworks::v1:: + ExpandIpCidrRangeRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->ExpandIpCidrRange(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::subnetworks::v1:: + ExpandIpCidrRangeRequest const& request) { + return stub_->ExpandIpCidrRange(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +SubnetworksRestConnectionImpl::ExpandIpCidrRange( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::region_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }); +} + StatusOr SubnetworksRestConnectionImpl::GetSubnetwork( google::cloud::cpp::compute::subnetworks::v1::GetSubnetworkRequest const& @@ -296,6 +443,79 @@ SubnetworksRestConnectionImpl::InsertSubnetwork( }); } +StatusOr +SubnetworksRestConnectionImpl::InsertSubnetwork( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::subnetworks::v1::InsertSubnetworkRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->InsertSubnetwork(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::subnetworks::v1:: + InsertSubnetworkRequest const& request) { + return stub_->InsertSubnetwork(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +SubnetworksRestConnectionImpl::InsertSubnetwork( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::region_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }); +} + StreamRange SubnetworksRestConnectionImpl::ListSubnetworks( google::cloud::cpp::compute::subnetworks::v1::ListSubnetworksRequest @@ -428,6 +648,79 @@ SubnetworksRestConnectionImpl::PatchSubnetwork( }); } +StatusOr +SubnetworksRestConnectionImpl::PatchSubnetwork( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::subnetworks::v1::PatchSubnetworkRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->PatchSubnetwork(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::subnetworks::v1:: + PatchSubnetworkRequest const& request) { + return stub_->PatchSubnetwork(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +SubnetworksRestConnectionImpl::PatchSubnetwork( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::region_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }); +} + StatusOr SubnetworksRestConnectionImpl::SetIamPolicy( google::cloud::cpp::compute::subnetworks::v1::SetIamPolicyRequest const& @@ -504,6 +797,79 @@ SubnetworksRestConnectionImpl::SetPrivateIpGoogleAccess( }); } +StatusOr +SubnetworksRestConnectionImpl::SetPrivateIpGoogleAccess( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::subnetworks::v1:: + SetPrivateIpGoogleAccessRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->SetPrivateIpGoogleAccess(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::subnetworks::v1:: + SetPrivateIpGoogleAccessRequest const& request) { + return stub_->SetPrivateIpGoogleAccess(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +SubnetworksRestConnectionImpl::SetPrivateIpGoogleAccess( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::region_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }); +} + StatusOr SubnetworksRestConnectionImpl::TestIamPermissions( google::cloud::cpp::compute::subnetworks::v1:: diff --git a/google/cloud/compute/subnetworks/v1/internal/subnetworks_rest_connection_impl.h b/google/cloud/compute/subnetworks/v1/internal/subnetworks_rest_connection_impl.h index b062005fac400..d9d339b29a082 100644 --- a/google/cloud/compute/subnetworks/v1/internal/subnetworks_rest_connection_impl.h +++ b/google/cloud/compute/subnetworks/v1/internal/subnetworks_rest_connection_impl.h @@ -61,10 +61,29 @@ class SubnetworksRestConnectionImpl google::cloud::cpp::compute::subnetworks::v1:: DeleteSubnetworkRequest const& request) override; + StatusOr DeleteSubnetwork( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::subnetworks::v1:: + DeleteSubnetworkRequest const& request) override; + + future> DeleteSubnetwork( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> ExpandIpCidrRange(google::cloud::cpp::compute::subnetworks::v1:: ExpandIpCidrRangeRequest const& request) override; + StatusOr ExpandIpCidrRange( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::subnetworks::v1:: + ExpandIpCidrRangeRequest const& request) override; + + future> + ExpandIpCidrRange( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StatusOr GetSubnetwork( google::cloud::cpp::compute::subnetworks::v1::GetSubnetworkRequest const& request) override; @@ -77,6 +96,15 @@ class SubnetworksRestConnectionImpl google::cloud::cpp::compute::subnetworks::v1:: InsertSubnetworkRequest const& request) override; + StatusOr InsertSubnetwork( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::subnetworks::v1:: + InsertSubnetworkRequest const& request) override; + + future> InsertSubnetwork( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StreamRange ListSubnetworks( google::cloud::cpp::compute::subnetworks::v1::ListSubnetworksRequest request) override; @@ -89,6 +117,15 @@ class SubnetworksRestConnectionImpl google::cloud::cpp::compute::subnetworks::v1:: PatchSubnetworkRequest const& request) override; + StatusOr PatchSubnetwork( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::subnetworks::v1:: + PatchSubnetworkRequest const& request) override; + + future> PatchSubnetwork( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StatusOr SetIamPolicy( google::cloud::cpp::compute::subnetworks::v1::SetIamPolicyRequest const& request) override; @@ -98,6 +135,16 @@ class SubnetworksRestConnectionImpl google::cloud::cpp::compute::subnetworks::v1:: SetPrivateIpGoogleAccessRequest const& request) override; + StatusOr SetPrivateIpGoogleAccess( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::subnetworks::v1:: + SetPrivateIpGoogleAccessRequest const& request) override; + + future> + SetPrivateIpGoogleAccess( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StatusOr TestIamPermissions(google::cloud::cpp::compute::subnetworks::v1:: TestIamPermissionsRequest const& request) override; diff --git a/google/cloud/compute/subnetworks/v1/internal/subnetworks_tracing_connection.cc b/google/cloud/compute/subnetworks/v1/internal/subnetworks_tracing_connection.cc index 0eeae4bbf492e..745aa5314a3cc 100644 --- a/google/cloud/compute/subnetworks/v1/internal/subnetworks_tracing_connection.cc +++ b/google/cloud/compute/subnetworks/v1/internal/subnetworks_tracing_connection.cc @@ -58,6 +58,30 @@ SubnetworksTracingConnection::DeleteSubnetwork( return internal::EndSpan(std::move(span), child_->DeleteSubnetwork(request)); } +StatusOr +SubnetworksTracingConnection::DeleteSubnetwork( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::subnetworks::v1::DeleteSubnetworkRequest const& + request) { + auto span = internal::MakeSpan( + "compute_subnetworks_v1::SubnetworksConnection::DeleteSubnetwork"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->DeleteSubnetwork(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +SubnetworksTracingConnection::DeleteSubnetwork( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_subnetworks_v1::SubnetworksConnection::DeleteSubnetwork"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->DeleteSubnetwork(ExperimentalTag{}, operation)); +} + future> SubnetworksTracingConnection::ExpandIpCidrRange( google::cloud::cpp::compute::subnetworks::v1:: @@ -68,6 +92,30 @@ SubnetworksTracingConnection::ExpandIpCidrRange( return internal::EndSpan(std::move(span), child_->ExpandIpCidrRange(request)); } +StatusOr +SubnetworksTracingConnection::ExpandIpCidrRange( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::subnetworks::v1:: + ExpandIpCidrRangeRequest const& request) { + auto span = internal::MakeSpan( + "compute_subnetworks_v1::SubnetworksConnection::ExpandIpCidrRange"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->ExpandIpCidrRange(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +SubnetworksTracingConnection::ExpandIpCidrRange( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_subnetworks_v1::SubnetworksConnection::ExpandIpCidrRange"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->ExpandIpCidrRange(ExperimentalTag{}, operation)); +} + StatusOr SubnetworksTracingConnection::GetSubnetwork( google::cloud::cpp::compute::subnetworks::v1::GetSubnetworkRequest const& @@ -98,6 +146,30 @@ SubnetworksTracingConnection::InsertSubnetwork( return internal::EndSpan(std::move(span), child_->InsertSubnetwork(request)); } +StatusOr +SubnetworksTracingConnection::InsertSubnetwork( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::subnetworks::v1::InsertSubnetworkRequest const& + request) { + auto span = internal::MakeSpan( + "compute_subnetworks_v1::SubnetworksConnection::InsertSubnetwork"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->InsertSubnetwork(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +SubnetworksTracingConnection::InsertSubnetwork( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_subnetworks_v1::SubnetworksConnection::InsertSubnetwork"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->InsertSubnetwork(ExperimentalTag{}, operation)); +} + StreamRange SubnetworksTracingConnection::ListSubnetworks( google::cloud::cpp::compute::subnetworks::v1::ListSubnetworksRequest @@ -133,6 +205,29 @@ SubnetworksTracingConnection::PatchSubnetwork( return internal::EndSpan(std::move(span), child_->PatchSubnetwork(request)); } +StatusOr +SubnetworksTracingConnection::PatchSubnetwork( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::subnetworks::v1::PatchSubnetworkRequest const& + request) { + auto span = internal::MakeSpan( + "compute_subnetworks_v1::SubnetworksConnection::PatchSubnetwork"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->PatchSubnetwork(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +SubnetworksTracingConnection::PatchSubnetwork( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_subnetworks_v1::SubnetworksConnection::PatchSubnetwork"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->PatchSubnetwork(ExperimentalTag{}, operation)); +} + StatusOr SubnetworksTracingConnection::SetIamPolicy( google::cloud::cpp::compute::subnetworks::v1::SetIamPolicyRequest const& @@ -155,6 +250,32 @@ SubnetworksTracingConnection::SetPrivateIpGoogleAccess( child_->SetPrivateIpGoogleAccess(request)); } +StatusOr +SubnetworksTracingConnection::SetPrivateIpGoogleAccess( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::subnetworks::v1:: + SetPrivateIpGoogleAccessRequest const& request) { + auto span = internal::MakeSpan( + "compute_subnetworks_v1::SubnetworksConnection::" + "SetPrivateIpGoogleAccess"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->SetPrivateIpGoogleAccess(ExperimentalTag{}, NoAwaitTag{}, + request)); +} + +future> +SubnetworksTracingConnection::SetPrivateIpGoogleAccess( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_subnetworks_v1::SubnetworksConnection::" + "SetPrivateIpGoogleAccess"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->SetPrivateIpGoogleAccess( + ExperimentalTag{}, operation)); +} + StatusOr SubnetworksTracingConnection::TestIamPermissions( google::cloud::cpp::compute::subnetworks::v1:: diff --git a/google/cloud/compute/subnetworks/v1/internal/subnetworks_tracing_connection.h b/google/cloud/compute/subnetworks/v1/internal/subnetworks_tracing_connection.h index 88bd668f39179..f7350d9750225 100644 --- a/google/cloud/compute/subnetworks/v1/internal/subnetworks_tracing_connection.h +++ b/google/cloud/compute/subnetworks/v1/internal/subnetworks_tracing_connection.h @@ -50,10 +50,29 @@ class SubnetworksTracingConnection google::cloud::cpp::compute::subnetworks::v1:: DeleteSubnetworkRequest const& request) override; + StatusOr DeleteSubnetwork( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::subnetworks::v1:: + DeleteSubnetworkRequest const& request) override; + + future> DeleteSubnetwork( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> ExpandIpCidrRange(google::cloud::cpp::compute::subnetworks::v1:: ExpandIpCidrRangeRequest const& request) override; + StatusOr ExpandIpCidrRange( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::subnetworks::v1:: + ExpandIpCidrRangeRequest const& request) override; + + future> + ExpandIpCidrRange( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StatusOr GetSubnetwork( google::cloud::cpp::compute::subnetworks::v1::GetSubnetworkRequest const& request) override; @@ -66,6 +85,15 @@ class SubnetworksTracingConnection google::cloud::cpp::compute::subnetworks::v1:: InsertSubnetworkRequest const& request) override; + StatusOr InsertSubnetwork( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::subnetworks::v1:: + InsertSubnetworkRequest const& request) override; + + future> InsertSubnetwork( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StreamRange ListSubnetworks( google::cloud::cpp::compute::subnetworks::v1::ListSubnetworksRequest request) override; @@ -78,6 +106,15 @@ class SubnetworksTracingConnection google::cloud::cpp::compute::subnetworks::v1:: PatchSubnetworkRequest const& request) override; + StatusOr PatchSubnetwork( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::subnetworks::v1:: + PatchSubnetworkRequest const& request) override; + + future> PatchSubnetwork( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StatusOr SetIamPolicy( google::cloud::cpp::compute::subnetworks::v1::SetIamPolicyRequest const& request) override; @@ -87,6 +124,16 @@ class SubnetworksTracingConnection google::cloud::cpp::compute::subnetworks::v1:: SetPrivateIpGoogleAccessRequest const& request) override; + StatusOr SetPrivateIpGoogleAccess( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::subnetworks::v1:: + SetPrivateIpGoogleAccessRequest const& request) override; + + future> + SetPrivateIpGoogleAccess( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StatusOr TestIamPermissions(google::cloud::cpp::compute::subnetworks::v1:: TestIamPermissionsRequest const& request) override; diff --git a/google/cloud/compute/subnetworks/v1/mocks/mock_subnetworks_connection.h b/google/cloud/compute/subnetworks/v1/mocks/mock_subnetworks_connection.h index 9f35d309188fa..cf7b5d88ac913 100644 --- a/google/cloud/compute/subnetworks/v1/mocks/mock_subnetworks_connection.h +++ b/google/cloud/compute/subnetworks/v1/mocks/mock_subnetworks_connection.h @@ -62,12 +62,38 @@ class MockSubnetworksConnection DeleteSubnetworkRequest const& request), (override)); + MOCK_METHOD(StatusOr, + DeleteSubnetwork, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::subnetworks::v1:: + DeleteSubnetworkRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteSubnetwork, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD(future>, ExpandIpCidrRange, (google::cloud::cpp::compute::subnetworks::v1:: ExpandIpCidrRangeRequest const& request), (override)); + MOCK_METHOD(StatusOr, + ExpandIpCidrRange, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::subnetworks::v1:: + ExpandIpCidrRangeRequest const& request), + (override)); + + MOCK_METHOD(future>, + ExpandIpCidrRange, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr, GetSubnetwork, (google::cloud::cpp::compute::subnetworks::v1::GetSubnetworkRequest const& @@ -86,6 +112,19 @@ class MockSubnetworksConnection InsertSubnetworkRequest const& request), (override)); + MOCK_METHOD(StatusOr, + InsertSubnetwork, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::subnetworks::v1:: + InsertSubnetworkRequest const& request), + (override)); + + MOCK_METHOD(future>, + InsertSubnetwork, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD( (StreamRange), ListSubnetworks, @@ -105,6 +144,19 @@ class MockSubnetworksConnection PatchSubnetworkRequest const& request), (override)); + MOCK_METHOD(StatusOr, + PatchSubnetwork, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::subnetworks::v1:: + PatchSubnetworkRequest const& request), + (override)); + + MOCK_METHOD(future>, + PatchSubnetwork, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr, SetIamPolicy, (google::cloud::cpp::compute::subnetworks::v1::SetIamPolicyRequest const& @@ -117,6 +169,19 @@ class MockSubnetworksConnection SetPrivateIpGoogleAccessRequest const& request), (override)); + MOCK_METHOD(StatusOr, + SetPrivateIpGoogleAccess, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::subnetworks::v1:: + SetPrivateIpGoogleAccessRequest const& request), + (override)); + + MOCK_METHOD(future>, + SetPrivateIpGoogleAccess, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr, TestIamPermissions, diff --git a/google/cloud/compute/subnetworks/v1/subnetworks_connection.cc b/google/cloud/compute/subnetworks/v1/subnetworks_connection.cc index ad5b73c1d3a8d..7e0fcee13b3c1 100644 --- a/google/cloud/compute/subnetworks/v1/subnetworks_connection.cc +++ b/google/cloud/compute/subnetworks/v1/subnetworks_connection.cc @@ -55,6 +55,23 @@ SubnetworksConnection::DeleteSubnetwork( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +SubnetworksConnection::DeleteSubnetwork( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::subnetworks::v1:: + DeleteSubnetworkRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +SubnetworksConnection::DeleteSubnetwork( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> SubnetworksConnection::ExpandIpCidrRange( google::cloud::cpp::compute::subnetworks::v1:: @@ -64,6 +81,23 @@ SubnetworksConnection::ExpandIpCidrRange( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +SubnetworksConnection::ExpandIpCidrRange( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::subnetworks::v1:: + ExpandIpCidrRangeRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +SubnetworksConnection::ExpandIpCidrRange( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr SubnetworksConnection::GetSubnetwork( google::cloud::cpp::compute::subnetworks::v1::GetSubnetworkRequest const&) { @@ -85,6 +119,23 @@ SubnetworksConnection::InsertSubnetwork( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +SubnetworksConnection::InsertSubnetwork( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::subnetworks::v1:: + InsertSubnetworkRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +SubnetworksConnection::InsertSubnetwork( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StreamRange SubnetworksConnection::ListSubnetworks( google::cloud::cpp::compute::subnetworks::v1:: @@ -110,6 +161,23 @@ SubnetworksConnection::PatchSubnetwork( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +SubnetworksConnection::PatchSubnetwork( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::subnetworks::v1:: + PatchSubnetworkRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +SubnetworksConnection::PatchSubnetwork( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr SubnetworksConnection::SetIamPolicy( google::cloud::cpp::compute::subnetworks::v1::SetIamPolicyRequest const&) { @@ -125,6 +193,23 @@ SubnetworksConnection::SetPrivateIpGoogleAccess( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +SubnetworksConnection::SetPrivateIpGoogleAccess( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::subnetworks::v1:: + SetPrivateIpGoogleAccessRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +SubnetworksConnection::SetPrivateIpGoogleAccess( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr SubnetworksConnection::TestIamPermissions( google::cloud::cpp::compute::subnetworks::v1:: diff --git a/google/cloud/compute/subnetworks/v1/subnetworks_connection.h b/google/cloud/compute/subnetworks/v1/subnetworks_connection.h index 00fe0baca16bd..2674e73457920 100644 --- a/google/cloud/compute/subnetworks/v1/subnetworks_connection.h +++ b/google/cloud/compute/subnetworks/v1/subnetworks_connection.h @@ -22,8 +22,10 @@ #include "google/cloud/compute/subnetworks/v1/internal/subnetworks_retry_traits.h" #include "google/cloud/compute/subnetworks/v1/subnetworks_connection_idempotency_policy.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/internal/retry_policy_impl.h" +#include "google/cloud/no_await_tag.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" #include "google/cloud/status_or.h" @@ -192,10 +194,29 @@ class SubnetworksConnection { DeleteSubnetwork(google::cloud::cpp::compute::subnetworks::v1:: DeleteSubnetworkRequest const& request); + virtual StatusOr DeleteSubnetwork( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::subnetworks::v1:: + DeleteSubnetworkRequest const& request); + + virtual future> + DeleteSubnetwork(ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual future> ExpandIpCidrRange(google::cloud::cpp::compute::subnetworks::v1:: ExpandIpCidrRangeRequest const& request); + virtual StatusOr + ExpandIpCidrRange(ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::subnetworks::v1:: + ExpandIpCidrRangeRequest const& request); + + virtual future> + ExpandIpCidrRange( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual StatusOr GetSubnetwork( google::cloud::cpp::compute::subnetworks::v1::GetSubnetworkRequest const& request); @@ -208,6 +229,15 @@ class SubnetworksConnection { InsertSubnetwork(google::cloud::cpp::compute::subnetworks::v1:: InsertSubnetworkRequest const& request); + virtual StatusOr InsertSubnetwork( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::subnetworks::v1:: + InsertSubnetworkRequest const& request); + + virtual future> + InsertSubnetwork(ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual StreamRange ListSubnetworks( google::cloud::cpp::compute::subnetworks::v1::ListSubnetworksRequest @@ -221,6 +251,15 @@ class SubnetworksConnection { PatchSubnetwork(google::cloud::cpp::compute::subnetworks::v1:: PatchSubnetworkRequest const& request); + virtual StatusOr PatchSubnetwork( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::subnetworks::v1:: + PatchSubnetworkRequest const& request); + + virtual future> + PatchSubnetwork(ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual StatusOr SetIamPolicy( google::cloud::cpp::compute::subnetworks::v1::SetIamPolicyRequest const& request); @@ -229,6 +268,16 @@ class SubnetworksConnection { SetPrivateIpGoogleAccess(google::cloud::cpp::compute::subnetworks::v1:: SetPrivateIpGoogleAccessRequest const& request); + virtual StatusOr + SetPrivateIpGoogleAccess(ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::subnetworks::v1:: + SetPrivateIpGoogleAccessRequest const& request); + + virtual future> + SetPrivateIpGoogleAccess( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual StatusOr TestIamPermissions(google::cloud::cpp::compute::subnetworks::v1:: TestIamPermissionsRequest const& request); diff --git a/google/cloud/compute/target_grpc_proxies/v1/internal/target_grpc_proxies_rest_connection_impl.cc b/google/cloud/compute/target_grpc_proxies/v1/internal/target_grpc_proxies_rest_connection_impl.cc index 05b5a76ebac23..0be9651633d24 100644 --- a/google/cloud/compute/target_grpc_proxies/v1/internal/target_grpc_proxies_rest_connection_impl.cc +++ b/google/cloud/compute/target_grpc_proxies/v1/internal/target_grpc_proxies_rest_connection_impl.cc @@ -23,6 +23,7 @@ #include "google/cloud/internal/async_rest_long_running_operation_custom.h" #include "google/cloud/internal/extract_long_running_result.h" #include "google/cloud/internal/pagination_range.h" +#include "google/cloud/internal/rest_lro_helpers.h" #include "google/cloud/internal/rest_retry_loop.h" #include "google/cloud/rest_options.h" #include @@ -102,6 +103,77 @@ TargetGrpcProxiesRestConnectionImpl::DeleteTargetGrpcProxy( }); } +StatusOr +TargetGrpcProxiesRestConnectionImpl::DeleteTargetGrpcProxy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_grpc_proxies::v1:: + DeleteTargetGrpcProxyRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteTargetGrpcProxy(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::target_grpc_proxies::v1:: + DeleteTargetGrpcProxyRequest const& request) { + return stub_->DeleteTargetGrpcProxy(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +TargetGrpcProxiesRestConnectionImpl::DeleteTargetGrpcProxy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::global_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }); +} + StatusOr TargetGrpcProxiesRestConnectionImpl::GetTargetGrpcProxy( google::cloud::cpp::compute::target_grpc_proxies::v1:: @@ -176,6 +248,77 @@ TargetGrpcProxiesRestConnectionImpl::InsertTargetGrpcProxy( }); } +StatusOr +TargetGrpcProxiesRestConnectionImpl::InsertTargetGrpcProxy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_grpc_proxies::v1:: + InsertTargetGrpcProxyRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->InsertTargetGrpcProxy(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::target_grpc_proxies::v1:: + InsertTargetGrpcProxyRequest const& request) { + return stub_->InsertTargetGrpcProxy(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +TargetGrpcProxiesRestConnectionImpl::InsertTargetGrpcProxy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::global_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }); +} + StreamRange TargetGrpcProxiesRestConnectionImpl::ListTargetGrpcProxies( google::cloud::cpp::compute::target_grpc_proxies::v1:: @@ -274,6 +417,77 @@ TargetGrpcProxiesRestConnectionImpl::PatchTargetGrpcProxy( }); } +StatusOr +TargetGrpcProxiesRestConnectionImpl::PatchTargetGrpcProxy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_grpc_proxies::v1:: + PatchTargetGrpcProxyRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->PatchTargetGrpcProxy(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::target_grpc_proxies::v1:: + PatchTargetGrpcProxyRequest const& request) { + return stub_->PatchTargetGrpcProxy(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +TargetGrpcProxiesRestConnectionImpl::PatchTargetGrpcProxy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::global_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace compute_target_grpc_proxies_v1_internal } // namespace cloud diff --git a/google/cloud/compute/target_grpc_proxies/v1/internal/target_grpc_proxies_rest_connection_impl.h b/google/cloud/compute/target_grpc_proxies/v1/internal/target_grpc_proxies_rest_connection_impl.h index bdc25490df164..80d56a20f583f 100644 --- a/google/cloud/compute/target_grpc_proxies/v1/internal/target_grpc_proxies_rest_connection_impl.h +++ b/google/cloud/compute/target_grpc_proxies/v1/internal/target_grpc_proxies_rest_connection_impl.h @@ -57,6 +57,16 @@ class TargetGrpcProxiesRestConnectionImpl google::cloud::cpp::compute::target_grpc_proxies::v1:: DeleteTargetGrpcProxyRequest const& request) override; + StatusOr DeleteTargetGrpcProxy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_grpc_proxies::v1:: + DeleteTargetGrpcProxyRequest const& request) override; + + future> + DeleteTargetGrpcProxy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StatusOr GetTargetGrpcProxy( google::cloud::cpp::compute::target_grpc_proxies::v1:: GetTargetGrpcProxyRequest const& request) override; @@ -66,6 +76,16 @@ class TargetGrpcProxiesRestConnectionImpl google::cloud::cpp::compute::target_grpc_proxies::v1:: InsertTargetGrpcProxyRequest const& request) override; + StatusOr InsertTargetGrpcProxy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_grpc_proxies::v1:: + InsertTargetGrpcProxyRequest const& request) override; + + future> + InsertTargetGrpcProxy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StreamRange ListTargetGrpcProxies(google::cloud::cpp::compute::target_grpc_proxies::v1:: ListTargetGrpcProxiesRequest request) override; @@ -74,6 +94,16 @@ class TargetGrpcProxiesRestConnectionImpl PatchTargetGrpcProxy(google::cloud::cpp::compute::target_grpc_proxies::v1:: PatchTargetGrpcProxyRequest const& request) override; + StatusOr PatchTargetGrpcProxy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_grpc_proxies::v1:: + PatchTargetGrpcProxyRequest const& request) override; + + future> + PatchTargetGrpcProxy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + private: static std::unique_ptr< compute_target_grpc_proxies_v1::TargetGrpcProxiesRetryPolicy> diff --git a/google/cloud/compute/target_grpc_proxies/v1/internal/target_grpc_proxies_tracing_connection.cc b/google/cloud/compute/target_grpc_proxies/v1/internal/target_grpc_proxies_tracing_connection.cc index 7f265194556cc..bd694b698980f 100644 --- a/google/cloud/compute/target_grpc_proxies/v1/internal/target_grpc_proxies_tracing_connection.cc +++ b/google/cloud/compute/target_grpc_proxies/v1/internal/target_grpc_proxies_tracing_connection.cc @@ -46,6 +46,32 @@ TargetGrpcProxiesTracingConnection::DeleteTargetGrpcProxy( child_->DeleteTargetGrpcProxy(request)); } +StatusOr +TargetGrpcProxiesTracingConnection::DeleteTargetGrpcProxy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_grpc_proxies::v1:: + DeleteTargetGrpcProxyRequest const& request) { + auto span = internal::MakeSpan( + "compute_target_grpc_proxies_v1::TargetGrpcProxiesConnection::" + "DeleteTargetGrpcProxy"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->DeleteTargetGrpcProxy(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +TargetGrpcProxiesTracingConnection::DeleteTargetGrpcProxy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_target_grpc_proxies_v1::TargetGrpcProxiesConnection::" + "DeleteTargetGrpcProxy"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->DeleteTargetGrpcProxy( + ExperimentalTag{}, operation)); +} + StatusOr TargetGrpcProxiesTracingConnection::GetTargetGrpcProxy( google::cloud::cpp::compute::target_grpc_proxies::v1:: @@ -69,6 +95,32 @@ TargetGrpcProxiesTracingConnection::InsertTargetGrpcProxy( child_->InsertTargetGrpcProxy(request)); } +StatusOr +TargetGrpcProxiesTracingConnection::InsertTargetGrpcProxy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_grpc_proxies::v1:: + InsertTargetGrpcProxyRequest const& request) { + auto span = internal::MakeSpan( + "compute_target_grpc_proxies_v1::TargetGrpcProxiesConnection::" + "InsertTargetGrpcProxy"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->InsertTargetGrpcProxy(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +TargetGrpcProxiesTracingConnection::InsertTargetGrpcProxy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_target_grpc_proxies_v1::TargetGrpcProxiesConnection::" + "InsertTargetGrpcProxy"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->InsertTargetGrpcProxy( + ExperimentalTag{}, operation)); +} + StreamRange TargetGrpcProxiesTracingConnection::ListTargetGrpcProxies( google::cloud::cpp::compute::target_grpc_proxies::v1:: @@ -95,6 +147,32 @@ TargetGrpcProxiesTracingConnection::PatchTargetGrpcProxy( child_->PatchTargetGrpcProxy(request)); } +StatusOr +TargetGrpcProxiesTracingConnection::PatchTargetGrpcProxy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_grpc_proxies::v1:: + PatchTargetGrpcProxyRequest const& request) { + auto span = internal::MakeSpan( + "compute_target_grpc_proxies_v1::TargetGrpcProxiesConnection::" + "PatchTargetGrpcProxy"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->PatchTargetGrpcProxy(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +TargetGrpcProxiesTracingConnection::PatchTargetGrpcProxy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_target_grpc_proxies_v1::TargetGrpcProxiesConnection::" + "PatchTargetGrpcProxy"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->PatchTargetGrpcProxy( + ExperimentalTag{}, operation)); +} + #endif // GOOGLE_CLOUD_CPP_HAVE_OPENTELEMETRY std::shared_ptr diff --git a/google/cloud/compute/target_grpc_proxies/v1/internal/target_grpc_proxies_tracing_connection.h b/google/cloud/compute/target_grpc_proxies/v1/internal/target_grpc_proxies_tracing_connection.h index 1801791ac0bac..9e1cafa009816 100644 --- a/google/cloud/compute/target_grpc_proxies/v1/internal/target_grpc_proxies_tracing_connection.h +++ b/google/cloud/compute/target_grpc_proxies/v1/internal/target_grpc_proxies_tracing_connection.h @@ -47,6 +47,16 @@ class TargetGrpcProxiesTracingConnection google::cloud::cpp::compute::target_grpc_proxies::v1:: DeleteTargetGrpcProxyRequest const& request) override; + StatusOr DeleteTargetGrpcProxy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_grpc_proxies::v1:: + DeleteTargetGrpcProxyRequest const& request) override; + + future> + DeleteTargetGrpcProxy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StatusOr GetTargetGrpcProxy( google::cloud::cpp::compute::target_grpc_proxies::v1:: GetTargetGrpcProxyRequest const& request) override; @@ -56,6 +66,16 @@ class TargetGrpcProxiesTracingConnection google::cloud::cpp::compute::target_grpc_proxies::v1:: InsertTargetGrpcProxyRequest const& request) override; + StatusOr InsertTargetGrpcProxy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_grpc_proxies::v1:: + InsertTargetGrpcProxyRequest const& request) override; + + future> + InsertTargetGrpcProxy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StreamRange ListTargetGrpcProxies(google::cloud::cpp::compute::target_grpc_proxies::v1:: ListTargetGrpcProxiesRequest request) override; @@ -64,6 +84,16 @@ class TargetGrpcProxiesTracingConnection PatchTargetGrpcProxy(google::cloud::cpp::compute::target_grpc_proxies::v1:: PatchTargetGrpcProxyRequest const& request) override; + StatusOr PatchTargetGrpcProxy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_grpc_proxies::v1:: + PatchTargetGrpcProxyRequest const& request) override; + + future> + PatchTargetGrpcProxy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + private: std::shared_ptr child_; diff --git a/google/cloud/compute/target_grpc_proxies/v1/mocks/mock_target_grpc_proxies_connection.h b/google/cloud/compute/target_grpc_proxies/v1/mocks/mock_target_grpc_proxies_connection.h index 6fcb7de7d900a..f251c327d6287 100644 --- a/google/cloud/compute/target_grpc_proxies/v1/mocks/mock_target_grpc_proxies_connection.h +++ b/google/cloud/compute/target_grpc_proxies/v1/mocks/mock_target_grpc_proxies_connection.h @@ -53,6 +53,19 @@ class MockTargetGrpcProxiesConnection DeleteTargetGrpcProxyRequest const& request), (override)); + MOCK_METHOD(StatusOr, + DeleteTargetGrpcProxy, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_grpc_proxies::v1:: + DeleteTargetGrpcProxyRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteTargetGrpcProxy, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD(StatusOr, GetTargetGrpcProxy, (google::cloud::cpp::compute::target_grpc_proxies::v1:: @@ -65,6 +78,19 @@ class MockTargetGrpcProxiesConnection InsertTargetGrpcProxyRequest const& request), (override)); + MOCK_METHOD(StatusOr, + InsertTargetGrpcProxy, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_grpc_proxies::v1:: + InsertTargetGrpcProxyRequest const& request), + (override)); + + MOCK_METHOD(future>, + InsertTargetGrpcProxy, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD((StreamRange), ListTargetGrpcProxies, (google::cloud::cpp::compute::target_grpc_proxies::v1:: @@ -76,6 +102,19 @@ class MockTargetGrpcProxiesConnection (google::cloud::cpp::compute::target_grpc_proxies::v1:: PatchTargetGrpcProxyRequest const& request), (override)); + + MOCK_METHOD(StatusOr, + PatchTargetGrpcProxy, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_grpc_proxies::v1:: + PatchTargetGrpcProxyRequest const& request), + (override)); + + MOCK_METHOD(future>, + PatchTargetGrpcProxy, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); }; GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END diff --git a/google/cloud/compute/target_grpc_proxies/v1/target_grpc_proxies_connection.cc b/google/cloud/compute/target_grpc_proxies/v1/target_grpc_proxies_connection.cc index d5cec7807716f..9782f95d0d825 100644 --- a/google/cloud/compute/target_grpc_proxies/v1/target_grpc_proxies_connection.cc +++ b/google/cloud/compute/target_grpc_proxies/v1/target_grpc_proxies_connection.cc @@ -45,6 +45,23 @@ TargetGrpcProxiesConnection::DeleteTargetGrpcProxy( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +TargetGrpcProxiesConnection::DeleteTargetGrpcProxy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_grpc_proxies::v1:: + DeleteTargetGrpcProxyRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +TargetGrpcProxiesConnection::DeleteTargetGrpcProxy( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr TargetGrpcProxiesConnection::GetTargetGrpcProxy( google::cloud::cpp::compute::target_grpc_proxies::v1:: @@ -61,6 +78,23 @@ TargetGrpcProxiesConnection::InsertTargetGrpcProxy( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +TargetGrpcProxiesConnection::InsertTargetGrpcProxy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_grpc_proxies::v1:: + InsertTargetGrpcProxyRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +TargetGrpcProxiesConnection::InsertTargetGrpcProxy( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StreamRange TargetGrpcProxiesConnection::ListTargetGrpcProxies( google::cloud::cpp::compute::target_grpc_proxies::v1:: @@ -78,6 +112,23 @@ TargetGrpcProxiesConnection::PatchTargetGrpcProxy( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +TargetGrpcProxiesConnection::PatchTargetGrpcProxy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_grpc_proxies::v1:: + PatchTargetGrpcProxyRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +TargetGrpcProxiesConnection::PatchTargetGrpcProxy( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace compute_target_grpc_proxies_v1 } // namespace cloud diff --git a/google/cloud/compute/target_grpc_proxies/v1/target_grpc_proxies_connection.h b/google/cloud/compute/target_grpc_proxies/v1/target_grpc_proxies_connection.h index bd63f1f692189..6b6d43ca1cd61 100644 --- a/google/cloud/compute/target_grpc_proxies/v1/target_grpc_proxies_connection.h +++ b/google/cloud/compute/target_grpc_proxies/v1/target_grpc_proxies_connection.h @@ -22,8 +22,10 @@ #include "google/cloud/compute/target_grpc_proxies/v1/internal/target_grpc_proxies_retry_traits.h" #include "google/cloud/compute/target_grpc_proxies/v1/target_grpc_proxies_connection_idempotency_policy.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/internal/retry_policy_impl.h" +#include "google/cloud/no_await_tag.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" #include "google/cloud/status_or.h" @@ -190,6 +192,16 @@ class TargetGrpcProxiesConnection { DeleteTargetGrpcProxy(google::cloud::cpp::compute::target_grpc_proxies::v1:: DeleteTargetGrpcProxyRequest const& request); + virtual StatusOr + DeleteTargetGrpcProxy(ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_grpc_proxies::v1:: + DeleteTargetGrpcProxyRequest const& request); + + virtual future> + DeleteTargetGrpcProxy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual StatusOr GetTargetGrpcProxy(google::cloud::cpp::compute::target_grpc_proxies::v1:: GetTargetGrpcProxyRequest const& request); @@ -198,6 +210,16 @@ class TargetGrpcProxiesConnection { InsertTargetGrpcProxy(google::cloud::cpp::compute::target_grpc_proxies::v1:: InsertTargetGrpcProxyRequest const& request); + virtual StatusOr + InsertTargetGrpcProxy(ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_grpc_proxies::v1:: + InsertTargetGrpcProxyRequest const& request); + + virtual future> + InsertTargetGrpcProxy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual StreamRange ListTargetGrpcProxies(google::cloud::cpp::compute::target_grpc_proxies::v1:: ListTargetGrpcProxiesRequest request); @@ -205,6 +227,16 @@ class TargetGrpcProxiesConnection { virtual future> PatchTargetGrpcProxy(google::cloud::cpp::compute::target_grpc_proxies::v1:: PatchTargetGrpcProxyRequest const& request); + + virtual StatusOr + PatchTargetGrpcProxy(ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_grpc_proxies::v1:: + PatchTargetGrpcProxyRequest const& request); + + virtual future> + PatchTargetGrpcProxy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); }; GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END diff --git a/google/cloud/compute/target_http_proxies/v1/internal/target_http_proxies_rest_connection_impl.cc b/google/cloud/compute/target_http_proxies/v1/internal/target_http_proxies_rest_connection_impl.cc index 5d4ccad1d6264..c61b47c7e8489 100644 --- a/google/cloud/compute/target_http_proxies/v1/internal/target_http_proxies_rest_connection_impl.cc +++ b/google/cloud/compute/target_http_proxies/v1/internal/target_http_proxies_rest_connection_impl.cc @@ -23,6 +23,7 @@ #include "google/cloud/internal/async_rest_long_running_operation_custom.h" #include "google/cloud/internal/extract_long_running_result.h" #include "google/cloud/internal/pagination_range.h" +#include "google/cloud/internal/rest_lro_helpers.h" #include "google/cloud/internal/rest_retry_loop.h" #include "google/cloud/rest_options.h" #include @@ -145,6 +146,77 @@ TargetHttpProxiesRestConnectionImpl::DeleteTargetHttpProxy( }); } +StatusOr +TargetHttpProxiesRestConnectionImpl::DeleteTargetHttpProxy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_http_proxies::v1:: + DeleteTargetHttpProxyRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteTargetHttpProxy(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::target_http_proxies::v1:: + DeleteTargetHttpProxyRequest const& request) { + return stub_->DeleteTargetHttpProxy(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +TargetHttpProxiesRestConnectionImpl::DeleteTargetHttpProxy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::global_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }); +} + StatusOr TargetHttpProxiesRestConnectionImpl::GetTargetHttpProxy( google::cloud::cpp::compute::target_http_proxies::v1:: @@ -219,6 +291,77 @@ TargetHttpProxiesRestConnectionImpl::InsertTargetHttpProxy( }); } +StatusOr +TargetHttpProxiesRestConnectionImpl::InsertTargetHttpProxy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_http_proxies::v1:: + InsertTargetHttpProxyRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->InsertTargetHttpProxy(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::target_http_proxies::v1:: + InsertTargetHttpProxyRequest const& request) { + return stub_->InsertTargetHttpProxy(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +TargetHttpProxiesRestConnectionImpl::InsertTargetHttpProxy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::global_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }); +} + StreamRange TargetHttpProxiesRestConnectionImpl::ListTargetHttpProxies( google::cloud::cpp::compute::target_http_proxies::v1:: @@ -317,6 +460,77 @@ TargetHttpProxiesRestConnectionImpl::PatchTargetHttpProxy( }); } +StatusOr +TargetHttpProxiesRestConnectionImpl::PatchTargetHttpProxy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_http_proxies::v1:: + PatchTargetHttpProxyRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->PatchTargetHttpProxy(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::target_http_proxies::v1:: + PatchTargetHttpProxyRequest const& request) { + return stub_->PatchTargetHttpProxy(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +TargetHttpProxiesRestConnectionImpl::PatchTargetHttpProxy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::global_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }); +} + future> TargetHttpProxiesRestConnectionImpl::SetUrlMap( google::cloud::cpp::compute::target_http_proxies::v1:: @@ -375,6 +589,77 @@ TargetHttpProxiesRestConnectionImpl::SetUrlMap( }); } +StatusOr +TargetHttpProxiesRestConnectionImpl::SetUrlMap( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_http_proxies::v1:: + SetUrlMapRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->SetUrlMap(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::target_http_proxies::v1:: + SetUrlMapRequest const& request) { + return stub_->SetUrlMap(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +TargetHttpProxiesRestConnectionImpl::SetUrlMap( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::global_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace compute_target_http_proxies_v1_internal } // namespace cloud diff --git a/google/cloud/compute/target_http_proxies/v1/internal/target_http_proxies_rest_connection_impl.h b/google/cloud/compute/target_http_proxies/v1/internal/target_http_proxies_rest_connection_impl.h index af1776f8ae5b8..2c9089e355ae9 100644 --- a/google/cloud/compute/target_http_proxies/v1/internal/target_http_proxies_rest_connection_impl.h +++ b/google/cloud/compute/target_http_proxies/v1/internal/target_http_proxies_rest_connection_impl.h @@ -64,6 +64,16 @@ class TargetHttpProxiesRestConnectionImpl google::cloud::cpp::compute::target_http_proxies::v1:: DeleteTargetHttpProxyRequest const& request) override; + StatusOr DeleteTargetHttpProxy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_http_proxies::v1:: + DeleteTargetHttpProxyRequest const& request) override; + + future> + DeleteTargetHttpProxy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StatusOr GetTargetHttpProxy( google::cloud::cpp::compute::target_http_proxies::v1:: GetTargetHttpProxyRequest const& request) override; @@ -73,6 +83,16 @@ class TargetHttpProxiesRestConnectionImpl google::cloud::cpp::compute::target_http_proxies::v1:: InsertTargetHttpProxyRequest const& request) override; + StatusOr InsertTargetHttpProxy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_http_proxies::v1:: + InsertTargetHttpProxyRequest const& request) override; + + future> + InsertTargetHttpProxy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StreamRange ListTargetHttpProxies(google::cloud::cpp::compute::target_http_proxies::v1:: ListTargetHttpProxiesRequest request) override; @@ -81,10 +101,29 @@ class TargetHttpProxiesRestConnectionImpl PatchTargetHttpProxy(google::cloud::cpp::compute::target_http_proxies::v1:: PatchTargetHttpProxyRequest const& request) override; + StatusOr PatchTargetHttpProxy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_http_proxies::v1:: + PatchTargetHttpProxyRequest const& request) override; + + future> + PatchTargetHttpProxy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> SetUrlMap( google::cloud::cpp::compute::target_http_proxies::v1:: SetUrlMapRequest const& request) override; + StatusOr SetUrlMap( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_http_proxies::v1:: + SetUrlMapRequest const& request) override; + + future> SetUrlMap( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + private: static std::unique_ptr< compute_target_http_proxies_v1::TargetHttpProxiesRetryPolicy> diff --git a/google/cloud/compute/target_http_proxies/v1/internal/target_http_proxies_tracing_connection.cc b/google/cloud/compute/target_http_proxies/v1/internal/target_http_proxies_tracing_connection.cc index f16f33aff728e..c59dabdff3b4f 100644 --- a/google/cloud/compute/target_http_proxies/v1/internal/target_http_proxies_tracing_connection.cc +++ b/google/cloud/compute/target_http_proxies/v1/internal/target_http_proxies_tracing_connection.cc @@ -62,6 +62,32 @@ TargetHttpProxiesTracingConnection::DeleteTargetHttpProxy( child_->DeleteTargetHttpProxy(request)); } +StatusOr +TargetHttpProxiesTracingConnection::DeleteTargetHttpProxy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_http_proxies::v1:: + DeleteTargetHttpProxyRequest const& request) { + auto span = internal::MakeSpan( + "compute_target_http_proxies_v1::TargetHttpProxiesConnection::" + "DeleteTargetHttpProxy"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->DeleteTargetHttpProxy(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +TargetHttpProxiesTracingConnection::DeleteTargetHttpProxy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_target_http_proxies_v1::TargetHttpProxiesConnection::" + "DeleteTargetHttpProxy"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->DeleteTargetHttpProxy( + ExperimentalTag{}, operation)); +} + StatusOr TargetHttpProxiesTracingConnection::GetTargetHttpProxy( google::cloud::cpp::compute::target_http_proxies::v1:: @@ -85,6 +111,32 @@ TargetHttpProxiesTracingConnection::InsertTargetHttpProxy( child_->InsertTargetHttpProxy(request)); } +StatusOr +TargetHttpProxiesTracingConnection::InsertTargetHttpProxy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_http_proxies::v1:: + InsertTargetHttpProxyRequest const& request) { + auto span = internal::MakeSpan( + "compute_target_http_proxies_v1::TargetHttpProxiesConnection::" + "InsertTargetHttpProxy"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->InsertTargetHttpProxy(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +TargetHttpProxiesTracingConnection::InsertTargetHttpProxy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_target_http_proxies_v1::TargetHttpProxiesConnection::" + "InsertTargetHttpProxy"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->InsertTargetHttpProxy( + ExperimentalTag{}, operation)); +} + StreamRange TargetHttpProxiesTracingConnection::ListTargetHttpProxies( google::cloud::cpp::compute::target_http_proxies::v1:: @@ -111,6 +163,32 @@ TargetHttpProxiesTracingConnection::PatchTargetHttpProxy( child_->PatchTargetHttpProxy(request)); } +StatusOr +TargetHttpProxiesTracingConnection::PatchTargetHttpProxy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_http_proxies::v1:: + PatchTargetHttpProxyRequest const& request) { + auto span = internal::MakeSpan( + "compute_target_http_proxies_v1::TargetHttpProxiesConnection::" + "PatchTargetHttpProxy"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->PatchTargetHttpProxy(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +TargetHttpProxiesTracingConnection::PatchTargetHttpProxy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_target_http_proxies_v1::TargetHttpProxiesConnection::" + "PatchTargetHttpProxy"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->PatchTargetHttpProxy( + ExperimentalTag{}, operation)); +} + future> TargetHttpProxiesTracingConnection::SetUrlMap( google::cloud::cpp::compute::target_http_proxies::v1:: @@ -121,6 +199,29 @@ TargetHttpProxiesTracingConnection::SetUrlMap( return internal::EndSpan(std::move(span), child_->SetUrlMap(request)); } +StatusOr +TargetHttpProxiesTracingConnection::SetUrlMap( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_http_proxies::v1:: + SetUrlMapRequest const& request) { + auto span = internal::MakeSpan( + "compute_target_http_proxies_v1::TargetHttpProxiesConnection::SetUrlMap"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->SetUrlMap(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +TargetHttpProxiesTracingConnection::SetUrlMap( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_target_http_proxies_v1::TargetHttpProxiesConnection::SetUrlMap"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->SetUrlMap(ExperimentalTag{}, operation)); +} + #endif // GOOGLE_CLOUD_CPP_HAVE_OPENTELEMETRY std::shared_ptr diff --git a/google/cloud/compute/target_http_proxies/v1/internal/target_http_proxies_tracing_connection.h b/google/cloud/compute/target_http_proxies/v1/internal/target_http_proxies_tracing_connection.h index ce712f1f62031..6ec111e53470b 100644 --- a/google/cloud/compute/target_http_proxies/v1/internal/target_http_proxies_tracing_connection.h +++ b/google/cloud/compute/target_http_proxies/v1/internal/target_http_proxies_tracing_connection.h @@ -54,6 +54,16 @@ class TargetHttpProxiesTracingConnection google::cloud::cpp::compute::target_http_proxies::v1:: DeleteTargetHttpProxyRequest const& request) override; + StatusOr DeleteTargetHttpProxy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_http_proxies::v1:: + DeleteTargetHttpProxyRequest const& request) override; + + future> + DeleteTargetHttpProxy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StatusOr GetTargetHttpProxy( google::cloud::cpp::compute::target_http_proxies::v1:: GetTargetHttpProxyRequest const& request) override; @@ -63,6 +73,16 @@ class TargetHttpProxiesTracingConnection google::cloud::cpp::compute::target_http_proxies::v1:: InsertTargetHttpProxyRequest const& request) override; + StatusOr InsertTargetHttpProxy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_http_proxies::v1:: + InsertTargetHttpProxyRequest const& request) override; + + future> + InsertTargetHttpProxy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StreamRange ListTargetHttpProxies(google::cloud::cpp::compute::target_http_proxies::v1:: ListTargetHttpProxiesRequest request) override; @@ -71,10 +91,29 @@ class TargetHttpProxiesTracingConnection PatchTargetHttpProxy(google::cloud::cpp::compute::target_http_proxies::v1:: PatchTargetHttpProxyRequest const& request) override; + StatusOr PatchTargetHttpProxy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_http_proxies::v1:: + PatchTargetHttpProxyRequest const& request) override; + + future> + PatchTargetHttpProxy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> SetUrlMap( google::cloud::cpp::compute::target_http_proxies::v1:: SetUrlMapRequest const& request) override; + StatusOr SetUrlMap( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_http_proxies::v1:: + SetUrlMapRequest const& request) override; + + future> SetUrlMap( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + private: std::shared_ptr child_; diff --git a/google/cloud/compute/target_http_proxies/v1/mocks/mock_target_http_proxies_connection.h b/google/cloud/compute/target_http_proxies/v1/mocks/mock_target_http_proxies_connection.h index 0cd52fde790dc..a52fcbbb88bd9 100644 --- a/google/cloud/compute/target_http_proxies/v1/mocks/mock_target_http_proxies_connection.h +++ b/google/cloud/compute/target_http_proxies/v1/mocks/mock_target_http_proxies_connection.h @@ -61,6 +61,19 @@ class MockTargetHttpProxiesConnection DeleteTargetHttpProxyRequest const& request), (override)); + MOCK_METHOD(StatusOr, + DeleteTargetHttpProxy, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_http_proxies::v1:: + DeleteTargetHttpProxyRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteTargetHttpProxy, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD(StatusOr, GetTargetHttpProxy, (google::cloud::cpp::compute::target_http_proxies::v1:: @@ -73,6 +86,19 @@ class MockTargetHttpProxiesConnection InsertTargetHttpProxyRequest const& request), (override)); + MOCK_METHOD(StatusOr, + InsertTargetHttpProxy, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_http_proxies::v1:: + InsertTargetHttpProxyRequest const& request), + (override)); + + MOCK_METHOD(future>, + InsertTargetHttpProxy, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD((StreamRange), ListTargetHttpProxies, (google::cloud::cpp::compute::target_http_proxies::v1:: @@ -85,11 +111,36 @@ class MockTargetHttpProxiesConnection PatchTargetHttpProxyRequest const& request), (override)); + MOCK_METHOD(StatusOr, + PatchTargetHttpProxy, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_http_proxies::v1:: + PatchTargetHttpProxyRequest const& request), + (override)); + + MOCK_METHOD(future>, + PatchTargetHttpProxy, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD(future>, SetUrlMap, (google::cloud::cpp::compute::target_http_proxies::v1:: SetUrlMapRequest const& request), (override)); + + MOCK_METHOD(StatusOr, SetUrlMap, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_http_proxies::v1:: + SetUrlMapRequest const& request), + (override)); + + MOCK_METHOD(future>, + SetUrlMap, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); }; GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END diff --git a/google/cloud/compute/target_http_proxies/v1/target_http_proxies_connection.cc b/google/cloud/compute/target_http_proxies/v1/target_http_proxies_connection.cc index 0b4b76a71f7c4..b5e9e272ec3a1 100644 --- a/google/cloud/compute/target_http_proxies/v1/target_http_proxies_connection.cc +++ b/google/cloud/compute/target_http_proxies/v1/target_http_proxies_connection.cc @@ -55,6 +55,23 @@ TargetHttpProxiesConnection::DeleteTargetHttpProxy( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +TargetHttpProxiesConnection::DeleteTargetHttpProxy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_http_proxies::v1:: + DeleteTargetHttpProxyRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +TargetHttpProxiesConnection::DeleteTargetHttpProxy( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr TargetHttpProxiesConnection::GetTargetHttpProxy( google::cloud::cpp::compute::target_http_proxies::v1:: @@ -71,6 +88,23 @@ TargetHttpProxiesConnection::InsertTargetHttpProxy( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +TargetHttpProxiesConnection::InsertTargetHttpProxy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_http_proxies::v1:: + InsertTargetHttpProxyRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +TargetHttpProxiesConnection::InsertTargetHttpProxy( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StreamRange TargetHttpProxiesConnection::ListTargetHttpProxies( google::cloud::cpp::compute::target_http_proxies::v1:: @@ -88,6 +122,23 @@ TargetHttpProxiesConnection::PatchTargetHttpProxy( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +TargetHttpProxiesConnection::PatchTargetHttpProxy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_http_proxies::v1:: + PatchTargetHttpProxyRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +TargetHttpProxiesConnection::PatchTargetHttpProxy( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> TargetHttpProxiesConnection::SetUrlMap( google::cloud::cpp::compute::target_http_proxies::v1:: @@ -97,6 +148,23 @@ TargetHttpProxiesConnection::SetUrlMap( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +TargetHttpProxiesConnection::SetUrlMap( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_http_proxies::v1:: + SetUrlMapRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +TargetHttpProxiesConnection::SetUrlMap( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace compute_target_http_proxies_v1 } // namespace cloud diff --git a/google/cloud/compute/target_http_proxies/v1/target_http_proxies_connection.h b/google/cloud/compute/target_http_proxies/v1/target_http_proxies_connection.h index 3a598904dc8ce..b4c0576622f0a 100644 --- a/google/cloud/compute/target_http_proxies/v1/target_http_proxies_connection.h +++ b/google/cloud/compute/target_http_proxies/v1/target_http_proxies_connection.h @@ -22,8 +22,10 @@ #include "google/cloud/compute/target_http_proxies/v1/internal/target_http_proxies_retry_traits.h" #include "google/cloud/compute/target_http_proxies/v1/target_http_proxies_connection_idempotency_policy.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/internal/retry_policy_impl.h" +#include "google/cloud/no_await_tag.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" #include "google/cloud/status_or.h" @@ -197,6 +199,16 @@ class TargetHttpProxiesConnection { DeleteTargetHttpProxy(google::cloud::cpp::compute::target_http_proxies::v1:: DeleteTargetHttpProxyRequest const& request); + virtual StatusOr + DeleteTargetHttpProxy(ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_http_proxies::v1:: + DeleteTargetHttpProxyRequest const& request); + + virtual future> + DeleteTargetHttpProxy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual StatusOr GetTargetHttpProxy(google::cloud::cpp::compute::target_http_proxies::v1:: GetTargetHttpProxyRequest const& request); @@ -205,6 +217,16 @@ class TargetHttpProxiesConnection { InsertTargetHttpProxy(google::cloud::cpp::compute::target_http_proxies::v1:: InsertTargetHttpProxyRequest const& request); + virtual StatusOr + InsertTargetHttpProxy(ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_http_proxies::v1:: + InsertTargetHttpProxyRequest const& request); + + virtual future> + InsertTargetHttpProxy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual StreamRange ListTargetHttpProxies(google::cloud::cpp::compute::target_http_proxies::v1:: ListTargetHttpProxiesRequest request); @@ -213,9 +235,28 @@ class TargetHttpProxiesConnection { PatchTargetHttpProxy(google::cloud::cpp::compute::target_http_proxies::v1:: PatchTargetHttpProxyRequest const& request); + virtual StatusOr + PatchTargetHttpProxy(ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_http_proxies::v1:: + PatchTargetHttpProxyRequest const& request); + + virtual future> + PatchTargetHttpProxy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual future> SetUrlMap(google::cloud::cpp::compute::target_http_proxies::v1:: SetUrlMapRequest const& request); + + virtual StatusOr SetUrlMap( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_http_proxies::v1:: + SetUrlMapRequest const& request); + + virtual future> + SetUrlMap(ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); }; GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END diff --git a/google/cloud/compute/target_https_proxies/v1/internal/target_https_proxies_rest_connection_impl.cc b/google/cloud/compute/target_https_proxies/v1/internal/target_https_proxies_rest_connection_impl.cc index 1a122e0de73df..c0d9430804a74 100644 --- a/google/cloud/compute/target_https_proxies/v1/internal/target_https_proxies_rest_connection_impl.cc +++ b/google/cloud/compute/target_https_proxies/v1/internal/target_https_proxies_rest_connection_impl.cc @@ -24,6 +24,7 @@ #include "google/cloud/internal/async_rest_long_running_operation_custom.h" #include "google/cloud/internal/extract_long_running_result.h" #include "google/cloud/internal/pagination_range.h" +#include "google/cloud/internal/rest_lro_helpers.h" #include "google/cloud/internal/rest_retry_loop.h" #include "google/cloud/rest_options.h" #include @@ -146,6 +147,77 @@ TargetHttpsProxiesRestConnectionImpl::DeleteTargetHttpsProxy( }); } +StatusOr +TargetHttpsProxiesRestConnectionImpl::DeleteTargetHttpsProxy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_https_proxies::v1:: + DeleteTargetHttpsProxyRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteTargetHttpsProxy(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::target_https_proxies::v1:: + DeleteTargetHttpsProxyRequest const& request) { + return stub_->DeleteTargetHttpsProxy(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +TargetHttpsProxiesRestConnectionImpl::DeleteTargetHttpsProxy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::global_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }); +} + StatusOr TargetHttpsProxiesRestConnectionImpl::GetTargetHttpsProxy( google::cloud::cpp::compute::target_https_proxies::v1:: @@ -220,6 +292,77 @@ TargetHttpsProxiesRestConnectionImpl::InsertTargetHttpsProxy( }); } +StatusOr +TargetHttpsProxiesRestConnectionImpl::InsertTargetHttpsProxy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_https_proxies::v1:: + InsertTargetHttpsProxyRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->InsertTargetHttpsProxy(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::target_https_proxies::v1:: + InsertTargetHttpsProxyRequest const& request) { + return stub_->InsertTargetHttpsProxy(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +TargetHttpsProxiesRestConnectionImpl::InsertTargetHttpsProxy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::global_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }); +} + StreamRange TargetHttpsProxiesRestConnectionImpl::ListTargetHttpsProxies( google::cloud::cpp::compute::target_https_proxies::v1:: @@ -318,6 +461,77 @@ TargetHttpsProxiesRestConnectionImpl::PatchTargetHttpsProxy( }); } +StatusOr +TargetHttpsProxiesRestConnectionImpl::PatchTargetHttpsProxy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_https_proxies::v1:: + PatchTargetHttpsProxyRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->PatchTargetHttpsProxy(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::target_https_proxies::v1:: + PatchTargetHttpsProxyRequest const& request) { + return stub_->PatchTargetHttpsProxy(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +TargetHttpsProxiesRestConnectionImpl::PatchTargetHttpsProxy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::global_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }); +} + future> TargetHttpsProxiesRestConnectionImpl::SetCertificateMap( google::cloud::cpp::compute::target_https_proxies::v1:: @@ -376,6 +590,77 @@ TargetHttpsProxiesRestConnectionImpl::SetCertificateMap( }); } +StatusOr +TargetHttpsProxiesRestConnectionImpl::SetCertificateMap( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_https_proxies::v1:: + SetCertificateMapRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->SetCertificateMap(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::target_https_proxies::v1:: + SetCertificateMapRequest const& request) { + return stub_->SetCertificateMap(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +TargetHttpsProxiesRestConnectionImpl::SetCertificateMap( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::global_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }); +} + future> TargetHttpsProxiesRestConnectionImpl::SetQuicOverride( google::cloud::cpp::compute::target_https_proxies::v1:: @@ -434,6 +719,77 @@ TargetHttpsProxiesRestConnectionImpl::SetQuicOverride( }); } +StatusOr +TargetHttpsProxiesRestConnectionImpl::SetQuicOverride( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_https_proxies::v1:: + SetQuicOverrideRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->SetQuicOverride(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::target_https_proxies::v1:: + SetQuicOverrideRequest const& request) { + return stub_->SetQuicOverride(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +TargetHttpsProxiesRestConnectionImpl::SetQuicOverride( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::global_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }); +} + future> TargetHttpsProxiesRestConnectionImpl::SetSslCertificates( google::cloud::cpp::compute::target_https_proxies::v1:: @@ -492,6 +848,77 @@ TargetHttpsProxiesRestConnectionImpl::SetSslCertificates( }); } +StatusOr +TargetHttpsProxiesRestConnectionImpl::SetSslCertificates( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_https_proxies::v1:: + SetSslCertificatesRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->SetSslCertificates(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::target_https_proxies::v1:: + SetSslCertificatesRequest const& request) { + return stub_->SetSslCertificates(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +TargetHttpsProxiesRestConnectionImpl::SetSslCertificates( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::global_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }); +} + future> TargetHttpsProxiesRestConnectionImpl::SetSslPolicy( google::cloud::cpp::compute::target_https_proxies::v1:: @@ -550,6 +977,77 @@ TargetHttpsProxiesRestConnectionImpl::SetSslPolicy( }); } +StatusOr +TargetHttpsProxiesRestConnectionImpl::SetSslPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_https_proxies::v1:: + SetSslPolicyRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->SetSslPolicy(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::target_https_proxies::v1:: + SetSslPolicyRequest const& request) { + return stub_->SetSslPolicy(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +TargetHttpsProxiesRestConnectionImpl::SetSslPolicy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::global_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }); +} + future> TargetHttpsProxiesRestConnectionImpl::SetUrlMap( google::cloud::cpp::compute::target_https_proxies::v1:: @@ -608,6 +1106,77 @@ TargetHttpsProxiesRestConnectionImpl::SetUrlMap( }); } +StatusOr +TargetHttpsProxiesRestConnectionImpl::SetUrlMap( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_https_proxies::v1:: + SetUrlMapRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->SetUrlMap(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::target_https_proxies::v1:: + SetUrlMapRequest const& request) { + return stub_->SetUrlMap(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +TargetHttpsProxiesRestConnectionImpl::SetUrlMap( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::global_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace compute_target_https_proxies_v1_internal } // namespace cloud diff --git a/google/cloud/compute/target_https_proxies/v1/internal/target_https_proxies_rest_connection_impl.h b/google/cloud/compute/target_https_proxies/v1/internal/target_https_proxies_rest_connection_impl.h index da4ee36ad4f7a..a2a67288973e8 100644 --- a/google/cloud/compute/target_https_proxies/v1/internal/target_https_proxies_rest_connection_impl.h +++ b/google/cloud/compute/target_https_proxies/v1/internal/target_https_proxies_rest_connection_impl.h @@ -65,6 +65,16 @@ class TargetHttpsProxiesRestConnectionImpl google::cloud::cpp::compute::target_https_proxies::v1:: DeleteTargetHttpsProxyRequest const& request) override; + StatusOr DeleteTargetHttpsProxy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_https_proxies::v1:: + DeleteTargetHttpsProxyRequest const& request) override; + + future> + DeleteTargetHttpsProxy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StatusOr GetTargetHttpsProxy(google::cloud::cpp::compute::target_https_proxies::v1:: GetTargetHttpsProxyRequest const& request) override; @@ -74,6 +84,16 @@ class TargetHttpsProxiesRestConnectionImpl google::cloud::cpp::compute::target_https_proxies::v1:: InsertTargetHttpsProxyRequest const& request) override; + StatusOr InsertTargetHttpsProxy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_https_proxies::v1:: + InsertTargetHttpsProxyRequest const& request) override; + + future> + InsertTargetHttpsProxy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StreamRange ListTargetHttpsProxies(google::cloud::cpp::compute::target_https_proxies::v1:: ListTargetHttpsProxiesRequest request) override; @@ -83,26 +103,83 @@ class TargetHttpsProxiesRestConnectionImpl google::cloud::cpp::compute::target_https_proxies::v1:: PatchTargetHttpsProxyRequest const& request) override; + StatusOr PatchTargetHttpsProxy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_https_proxies::v1:: + PatchTargetHttpsProxyRequest const& request) override; + + future> + PatchTargetHttpsProxy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> SetCertificateMap(google::cloud::cpp::compute::target_https_proxies::v1:: SetCertificateMapRequest const& request) override; + StatusOr SetCertificateMap( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_https_proxies::v1:: + SetCertificateMapRequest const& request) override; + + future> + SetCertificateMap( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> SetQuicOverride( google::cloud::cpp::compute::target_https_proxies::v1:: SetQuicOverrideRequest const& request) override; + StatusOr SetQuicOverride( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_https_proxies::v1:: + SetQuicOverrideRequest const& request) override; + + future> SetQuicOverride( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> SetSslCertificates(google::cloud::cpp::compute::target_https_proxies::v1:: SetSslCertificatesRequest const& request) override; + StatusOr SetSslCertificates( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_https_proxies::v1:: + SetSslCertificatesRequest const& request) override; + + future> + SetSslCertificates( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> SetSslPolicy( google::cloud::cpp::compute::target_https_proxies::v1:: SetSslPolicyRequest const& request) override; + StatusOr SetSslPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_https_proxies::v1:: + SetSslPolicyRequest const& request) override; + + future> SetSslPolicy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> SetUrlMap( google::cloud::cpp::compute::target_https_proxies::v1:: SetUrlMapRequest const& request) override; + StatusOr SetUrlMap( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_https_proxies::v1:: + SetUrlMapRequest const& request) override; + + future> SetUrlMap( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + private: static std::unique_ptr< compute_target_https_proxies_v1::TargetHttpsProxiesRetryPolicy> diff --git a/google/cloud/compute/target_https_proxies/v1/internal/target_https_proxies_tracing_connection.cc b/google/cloud/compute/target_https_proxies/v1/internal/target_https_proxies_tracing_connection.cc index 9e317c48fa230..9f46638dd8113 100644 --- a/google/cloud/compute/target_https_proxies/v1/internal/target_https_proxies_tracing_connection.cc +++ b/google/cloud/compute/target_https_proxies/v1/internal/target_https_proxies_tracing_connection.cc @@ -64,6 +64,32 @@ TargetHttpsProxiesTracingConnection::DeleteTargetHttpsProxy( child_->DeleteTargetHttpsProxy(request)); } +StatusOr +TargetHttpsProxiesTracingConnection::DeleteTargetHttpsProxy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_https_proxies::v1:: + DeleteTargetHttpsProxyRequest const& request) { + auto span = internal::MakeSpan( + "compute_target_https_proxies_v1::TargetHttpsProxiesConnection::" + "DeleteTargetHttpsProxy"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->DeleteTargetHttpsProxy(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +TargetHttpsProxiesTracingConnection::DeleteTargetHttpsProxy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_target_https_proxies_v1::TargetHttpsProxiesConnection::" + "DeleteTargetHttpsProxy"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->DeleteTargetHttpsProxy( + ExperimentalTag{}, operation)); +} + StatusOr TargetHttpsProxiesTracingConnection::GetTargetHttpsProxy( google::cloud::cpp::compute::target_https_proxies::v1:: @@ -87,6 +113,32 @@ TargetHttpsProxiesTracingConnection::InsertTargetHttpsProxy( child_->InsertTargetHttpsProxy(request)); } +StatusOr +TargetHttpsProxiesTracingConnection::InsertTargetHttpsProxy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_https_proxies::v1:: + InsertTargetHttpsProxyRequest const& request) { + auto span = internal::MakeSpan( + "compute_target_https_proxies_v1::TargetHttpsProxiesConnection::" + "InsertTargetHttpsProxy"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->InsertTargetHttpsProxy(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +TargetHttpsProxiesTracingConnection::InsertTargetHttpsProxy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_target_https_proxies_v1::TargetHttpsProxiesConnection::" + "InsertTargetHttpsProxy"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->InsertTargetHttpsProxy( + ExperimentalTag{}, operation)); +} + StreamRange TargetHttpsProxiesTracingConnection::ListTargetHttpsProxies( google::cloud::cpp::compute::target_https_proxies::v1:: @@ -113,6 +165,32 @@ TargetHttpsProxiesTracingConnection::PatchTargetHttpsProxy( child_->PatchTargetHttpsProxy(request)); } +StatusOr +TargetHttpsProxiesTracingConnection::PatchTargetHttpsProxy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_https_proxies::v1:: + PatchTargetHttpsProxyRequest const& request) { + auto span = internal::MakeSpan( + "compute_target_https_proxies_v1::TargetHttpsProxiesConnection::" + "PatchTargetHttpsProxy"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->PatchTargetHttpsProxy(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +TargetHttpsProxiesTracingConnection::PatchTargetHttpsProxy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_target_https_proxies_v1::TargetHttpsProxiesConnection::" + "PatchTargetHttpsProxy"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->PatchTargetHttpsProxy( + ExperimentalTag{}, operation)); +} + future> TargetHttpsProxiesTracingConnection::SetCertificateMap( google::cloud::cpp::compute::target_https_proxies::v1:: @@ -124,6 +202,32 @@ TargetHttpsProxiesTracingConnection::SetCertificateMap( return internal::EndSpan(std::move(span), child_->SetCertificateMap(request)); } +StatusOr +TargetHttpsProxiesTracingConnection::SetCertificateMap( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_https_proxies::v1:: + SetCertificateMapRequest const& request) { + auto span = internal::MakeSpan( + "compute_target_https_proxies_v1::TargetHttpsProxiesConnection::" + "SetCertificateMap"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->SetCertificateMap(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +TargetHttpsProxiesTracingConnection::SetCertificateMap( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_target_https_proxies_v1::TargetHttpsProxiesConnection::" + "SetCertificateMap"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->SetCertificateMap(ExperimentalTag{}, operation)); +} + future> TargetHttpsProxiesTracingConnection::SetQuicOverride( google::cloud::cpp::compute::target_https_proxies::v1:: @@ -135,6 +239,31 @@ TargetHttpsProxiesTracingConnection::SetQuicOverride( return internal::EndSpan(std::move(span), child_->SetQuicOverride(request)); } +StatusOr +TargetHttpsProxiesTracingConnection::SetQuicOverride( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_https_proxies::v1:: + SetQuicOverrideRequest const& request) { + auto span = internal::MakeSpan( + "compute_target_https_proxies_v1::TargetHttpsProxiesConnection::" + "SetQuicOverride"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->SetQuicOverride(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +TargetHttpsProxiesTracingConnection::SetQuicOverride( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_target_https_proxies_v1::TargetHttpsProxiesConnection::" + "SetQuicOverride"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->SetQuicOverride(ExperimentalTag{}, operation)); +} + future> TargetHttpsProxiesTracingConnection::SetSslCertificates( google::cloud::cpp::compute::target_https_proxies::v1:: @@ -147,6 +276,32 @@ TargetHttpsProxiesTracingConnection::SetSslCertificates( child_->SetSslCertificates(request)); } +StatusOr +TargetHttpsProxiesTracingConnection::SetSslCertificates( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_https_proxies::v1:: + SetSslCertificatesRequest const& request) { + auto span = internal::MakeSpan( + "compute_target_https_proxies_v1::TargetHttpsProxiesConnection::" + "SetSslCertificates"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->SetSslCertificates(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +TargetHttpsProxiesTracingConnection::SetSslCertificates( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_target_https_proxies_v1::TargetHttpsProxiesConnection::" + "SetSslCertificates"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->SetSslCertificates( + ExperimentalTag{}, operation)); +} + future> TargetHttpsProxiesTracingConnection::SetSslPolicy( google::cloud::cpp::compute::target_https_proxies::v1:: @@ -158,6 +313,31 @@ TargetHttpsProxiesTracingConnection::SetSslPolicy( return internal::EndSpan(std::move(span), child_->SetSslPolicy(request)); } +StatusOr +TargetHttpsProxiesTracingConnection::SetSslPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_https_proxies::v1:: + SetSslPolicyRequest const& request) { + auto span = internal::MakeSpan( + "compute_target_https_proxies_v1::TargetHttpsProxiesConnection::" + "SetSslPolicy"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->SetSslPolicy(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +TargetHttpsProxiesTracingConnection::SetSslPolicy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_target_https_proxies_v1::TargetHttpsProxiesConnection::" + "SetSslPolicy"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->SetSslPolicy(ExperimentalTag{}, operation)); +} + future> TargetHttpsProxiesTracingConnection::SetUrlMap( google::cloud::cpp::compute::target_https_proxies::v1:: @@ -169,6 +349,31 @@ TargetHttpsProxiesTracingConnection::SetUrlMap( return internal::EndSpan(std::move(span), child_->SetUrlMap(request)); } +StatusOr +TargetHttpsProxiesTracingConnection::SetUrlMap( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_https_proxies::v1:: + SetUrlMapRequest const& request) { + auto span = internal::MakeSpan( + "compute_target_https_proxies_v1::TargetHttpsProxiesConnection::" + "SetUrlMap"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->SetUrlMap(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +TargetHttpsProxiesTracingConnection::SetUrlMap( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_target_https_proxies_v1::TargetHttpsProxiesConnection::" + "SetUrlMap"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->SetUrlMap(ExperimentalTag{}, operation)); +} + #endif // GOOGLE_CLOUD_CPP_HAVE_OPENTELEMETRY std::shared_ptr diff --git a/google/cloud/compute/target_https_proxies/v1/internal/target_https_proxies_tracing_connection.h b/google/cloud/compute/target_https_proxies/v1/internal/target_https_proxies_tracing_connection.h index 09816611fba2b..503e5bc65c63a 100644 --- a/google/cloud/compute/target_https_proxies/v1/internal/target_https_proxies_tracing_connection.h +++ b/google/cloud/compute/target_https_proxies/v1/internal/target_https_proxies_tracing_connection.h @@ -55,6 +55,16 @@ class TargetHttpsProxiesTracingConnection google::cloud::cpp::compute::target_https_proxies::v1:: DeleteTargetHttpsProxyRequest const& request) override; + StatusOr DeleteTargetHttpsProxy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_https_proxies::v1:: + DeleteTargetHttpsProxyRequest const& request) override; + + future> + DeleteTargetHttpsProxy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StatusOr GetTargetHttpsProxy(google::cloud::cpp::compute::target_https_proxies::v1:: GetTargetHttpsProxyRequest const& request) override; @@ -64,6 +74,16 @@ class TargetHttpsProxiesTracingConnection google::cloud::cpp::compute::target_https_proxies::v1:: InsertTargetHttpsProxyRequest const& request) override; + StatusOr InsertTargetHttpsProxy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_https_proxies::v1:: + InsertTargetHttpsProxyRequest const& request) override; + + future> + InsertTargetHttpsProxy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StreamRange ListTargetHttpsProxies(google::cloud::cpp::compute::target_https_proxies::v1:: ListTargetHttpsProxiesRequest request) override; @@ -73,26 +93,83 @@ class TargetHttpsProxiesTracingConnection google::cloud::cpp::compute::target_https_proxies::v1:: PatchTargetHttpsProxyRequest const& request) override; + StatusOr PatchTargetHttpsProxy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_https_proxies::v1:: + PatchTargetHttpsProxyRequest const& request) override; + + future> + PatchTargetHttpsProxy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> SetCertificateMap(google::cloud::cpp::compute::target_https_proxies::v1:: SetCertificateMapRequest const& request) override; + StatusOr SetCertificateMap( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_https_proxies::v1:: + SetCertificateMapRequest const& request) override; + + future> + SetCertificateMap( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> SetQuicOverride( google::cloud::cpp::compute::target_https_proxies::v1:: SetQuicOverrideRequest const& request) override; + StatusOr SetQuicOverride( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_https_proxies::v1:: + SetQuicOverrideRequest const& request) override; + + future> SetQuicOverride( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> SetSslCertificates(google::cloud::cpp::compute::target_https_proxies::v1:: SetSslCertificatesRequest const& request) override; + StatusOr SetSslCertificates( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_https_proxies::v1:: + SetSslCertificatesRequest const& request) override; + + future> + SetSslCertificates( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> SetSslPolicy( google::cloud::cpp::compute::target_https_proxies::v1:: SetSslPolicyRequest const& request) override; + StatusOr SetSslPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_https_proxies::v1:: + SetSslPolicyRequest const& request) override; + + future> SetSslPolicy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> SetUrlMap( google::cloud::cpp::compute::target_https_proxies::v1:: SetUrlMapRequest const& request) override; + StatusOr SetUrlMap( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_https_proxies::v1:: + SetUrlMapRequest const& request) override; + + future> SetUrlMap( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + private: std::shared_ptr child_; diff --git a/google/cloud/compute/target_https_proxies/v1/mocks/mock_target_https_proxies_connection.h b/google/cloud/compute/target_https_proxies/v1/mocks/mock_target_https_proxies_connection.h index ee55b1336bff0..c45e59270eca2 100644 --- a/google/cloud/compute/target_https_proxies/v1/mocks/mock_target_https_proxies_connection.h +++ b/google/cloud/compute/target_https_proxies/v1/mocks/mock_target_https_proxies_connection.h @@ -62,6 +62,19 @@ class MockTargetHttpsProxiesConnection DeleteTargetHttpsProxyRequest const& request), (override)); + MOCK_METHOD(StatusOr, + DeleteTargetHttpsProxy, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_https_proxies::v1:: + DeleteTargetHttpsProxyRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteTargetHttpsProxy, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD(StatusOr, GetTargetHttpsProxy, (google::cloud::cpp::compute::target_https_proxies::v1:: @@ -74,6 +87,19 @@ class MockTargetHttpsProxiesConnection InsertTargetHttpsProxyRequest const& request), (override)); + MOCK_METHOD(StatusOr, + InsertTargetHttpsProxy, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_https_proxies::v1:: + InsertTargetHttpsProxyRequest const& request), + (override)); + + MOCK_METHOD(future>, + InsertTargetHttpsProxy, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD((StreamRange), ListTargetHttpsProxies, (google::cloud::cpp::compute::target_https_proxies::v1:: @@ -86,35 +112,112 @@ class MockTargetHttpsProxiesConnection PatchTargetHttpsProxyRequest const& request), (override)); + MOCK_METHOD(StatusOr, + PatchTargetHttpsProxy, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_https_proxies::v1:: + PatchTargetHttpsProxyRequest const& request), + (override)); + + MOCK_METHOD(future>, + PatchTargetHttpsProxy, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD(future>, SetCertificateMap, (google::cloud::cpp::compute::target_https_proxies::v1:: SetCertificateMapRequest const& request), (override)); + MOCK_METHOD(StatusOr, + SetCertificateMap, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_https_proxies::v1:: + SetCertificateMapRequest const& request), + (override)); + + MOCK_METHOD(future>, + SetCertificateMap, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD(future>, SetQuicOverride, (google::cloud::cpp::compute::target_https_proxies::v1:: SetQuicOverrideRequest const& request), (override)); + MOCK_METHOD(StatusOr, + SetQuicOverride, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_https_proxies::v1:: + SetQuicOverrideRequest const& request), + (override)); + + MOCK_METHOD(future>, + SetQuicOverride, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD(future>, SetSslCertificates, (google::cloud::cpp::compute::target_https_proxies::v1:: SetSslCertificatesRequest const& request), (override)); + MOCK_METHOD(StatusOr, + SetSslCertificates, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_https_proxies::v1:: + SetSslCertificatesRequest const& request), + (override)); + + MOCK_METHOD(future>, + SetSslCertificates, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD(future>, SetSslPolicy, (google::cloud::cpp::compute::target_https_proxies::v1:: SetSslPolicyRequest const& request), (override)); + MOCK_METHOD(StatusOr, + SetSslPolicy, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_https_proxies::v1:: + SetSslPolicyRequest const& request), + (override)); + + MOCK_METHOD(future>, + SetSslPolicy, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD(future>, SetUrlMap, (google::cloud::cpp::compute::target_https_proxies::v1:: SetUrlMapRequest const& request), (override)); + + MOCK_METHOD(StatusOr, SetUrlMap, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_https_proxies::v1:: + SetUrlMapRequest const& request), + (override)); + + MOCK_METHOD(future>, + SetUrlMap, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); }; GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END diff --git a/google/cloud/compute/target_https_proxies/v1/target_https_proxies_connection.cc b/google/cloud/compute/target_https_proxies/v1/target_https_proxies_connection.cc index 9c55f6bb58d8a..ac2641fbb579f 100644 --- a/google/cloud/compute/target_https_proxies/v1/target_https_proxies_connection.cc +++ b/google/cloud/compute/target_https_proxies/v1/target_https_proxies_connection.cc @@ -56,6 +56,23 @@ TargetHttpsProxiesConnection::DeleteTargetHttpsProxy( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +TargetHttpsProxiesConnection::DeleteTargetHttpsProxy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_https_proxies::v1:: + DeleteTargetHttpsProxyRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +TargetHttpsProxiesConnection::DeleteTargetHttpsProxy( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr TargetHttpsProxiesConnection::GetTargetHttpsProxy( google::cloud::cpp::compute::target_https_proxies::v1:: @@ -72,6 +89,23 @@ TargetHttpsProxiesConnection::InsertTargetHttpsProxy( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +TargetHttpsProxiesConnection::InsertTargetHttpsProxy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_https_proxies::v1:: + InsertTargetHttpsProxyRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +TargetHttpsProxiesConnection::InsertTargetHttpsProxy( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StreamRange TargetHttpsProxiesConnection::ListTargetHttpsProxies( google::cloud::cpp::compute::target_https_proxies::v1:: @@ -89,6 +123,23 @@ TargetHttpsProxiesConnection::PatchTargetHttpsProxy( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +TargetHttpsProxiesConnection::PatchTargetHttpsProxy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_https_proxies::v1:: + PatchTargetHttpsProxyRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +TargetHttpsProxiesConnection::PatchTargetHttpsProxy( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> TargetHttpsProxiesConnection::SetCertificateMap( google::cloud::cpp::compute::target_https_proxies::v1:: @@ -98,6 +149,23 @@ TargetHttpsProxiesConnection::SetCertificateMap( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +TargetHttpsProxiesConnection::SetCertificateMap( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_https_proxies::v1:: + SetCertificateMapRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +TargetHttpsProxiesConnection::SetCertificateMap( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> TargetHttpsProxiesConnection::SetQuicOverride( google::cloud::cpp::compute::target_https_proxies::v1:: @@ -107,6 +175,23 @@ TargetHttpsProxiesConnection::SetQuicOverride( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +TargetHttpsProxiesConnection::SetQuicOverride( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_https_proxies::v1:: + SetQuicOverrideRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +TargetHttpsProxiesConnection::SetQuicOverride( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> TargetHttpsProxiesConnection::SetSslCertificates( google::cloud::cpp::compute::target_https_proxies::v1:: @@ -116,6 +201,23 @@ TargetHttpsProxiesConnection::SetSslCertificates( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +TargetHttpsProxiesConnection::SetSslCertificates( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_https_proxies::v1:: + SetSslCertificatesRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +TargetHttpsProxiesConnection::SetSslCertificates( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> TargetHttpsProxiesConnection::SetSslPolicy( google::cloud::cpp::compute::target_https_proxies::v1:: @@ -125,6 +227,23 @@ TargetHttpsProxiesConnection::SetSslPolicy( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +TargetHttpsProxiesConnection::SetSslPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_https_proxies::v1:: + SetSslPolicyRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +TargetHttpsProxiesConnection::SetSslPolicy( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> TargetHttpsProxiesConnection::SetUrlMap( google::cloud::cpp::compute::target_https_proxies::v1:: @@ -134,6 +253,23 @@ TargetHttpsProxiesConnection::SetUrlMap( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +TargetHttpsProxiesConnection::SetUrlMap( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_https_proxies::v1:: + SetUrlMapRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +TargetHttpsProxiesConnection::SetUrlMap( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace compute_target_https_proxies_v1 } // namespace cloud diff --git a/google/cloud/compute/target_https_proxies/v1/target_https_proxies_connection.h b/google/cloud/compute/target_https_proxies/v1/target_https_proxies_connection.h index 7bb6a3ca9a2cd..f313ae031b8c2 100644 --- a/google/cloud/compute/target_https_proxies/v1/target_https_proxies_connection.h +++ b/google/cloud/compute/target_https_proxies/v1/target_https_proxies_connection.h @@ -23,8 +23,10 @@ #include "google/cloud/compute/target_https_proxies/v1/internal/target_https_proxies_retry_traits.h" #include "google/cloud/compute/target_https_proxies/v1/target_https_proxies_connection_idempotency_policy.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/internal/retry_policy_impl.h" +#include "google/cloud/no_await_tag.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" #include "google/cloud/status_or.h" @@ -200,6 +202,16 @@ class TargetHttpsProxiesConnection { DeleteTargetHttpsProxy(google::cloud::cpp::compute::target_https_proxies::v1:: DeleteTargetHttpsProxyRequest const& request); + virtual StatusOr + DeleteTargetHttpsProxy(ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_https_proxies::v1:: + DeleteTargetHttpsProxyRequest const& request); + + virtual future> + DeleteTargetHttpsProxy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual StatusOr GetTargetHttpsProxy(google::cloud::cpp::compute::target_https_proxies::v1:: GetTargetHttpsProxyRequest const& request); @@ -208,6 +220,16 @@ class TargetHttpsProxiesConnection { InsertTargetHttpsProxy(google::cloud::cpp::compute::target_https_proxies::v1:: InsertTargetHttpsProxyRequest const& request); + virtual StatusOr + InsertTargetHttpsProxy(ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_https_proxies::v1:: + InsertTargetHttpsProxyRequest const& request); + + virtual future> + InsertTargetHttpsProxy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual StreamRange ListTargetHttpsProxies(google::cloud::cpp::compute::target_https_proxies::v1:: ListTargetHttpsProxiesRequest request); @@ -216,25 +238,82 @@ class TargetHttpsProxiesConnection { PatchTargetHttpsProxy(google::cloud::cpp::compute::target_https_proxies::v1:: PatchTargetHttpsProxyRequest const& request); + virtual StatusOr + PatchTargetHttpsProxy(ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_https_proxies::v1:: + PatchTargetHttpsProxyRequest const& request); + + virtual future> + PatchTargetHttpsProxy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual future> SetCertificateMap(google::cloud::cpp::compute::target_https_proxies::v1:: SetCertificateMapRequest const& request); + virtual StatusOr + SetCertificateMap(ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_https_proxies::v1:: + SetCertificateMapRequest const& request); + + virtual future> + SetCertificateMap( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual future> SetQuicOverride(google::cloud::cpp::compute::target_https_proxies::v1:: SetQuicOverrideRequest const& request); + virtual StatusOr SetQuicOverride( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_https_proxies::v1:: + SetQuicOverrideRequest const& request); + + virtual future> + SetQuicOverride(ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual future> SetSslCertificates(google::cloud::cpp::compute::target_https_proxies::v1:: SetSslCertificatesRequest const& request); + virtual StatusOr + SetSslCertificates(ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_https_proxies::v1:: + SetSslCertificatesRequest const& request); + + virtual future> + SetSslCertificates( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual future> SetSslPolicy(google::cloud::cpp::compute::target_https_proxies::v1:: SetSslPolicyRequest const& request); + virtual StatusOr SetSslPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_https_proxies::v1:: + SetSslPolicyRequest const& request); + + virtual future> + SetSslPolicy(ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual future> SetUrlMap(google::cloud::cpp::compute::target_https_proxies::v1:: SetUrlMapRequest const& request); + + virtual StatusOr SetUrlMap( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_https_proxies::v1:: + SetUrlMapRequest const& request); + + virtual future> + SetUrlMap(ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); }; GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END diff --git a/google/cloud/compute/target_instances/v1/internal/target_instances_rest_connection_impl.cc b/google/cloud/compute/target_instances/v1/internal/target_instances_rest_connection_impl.cc index 71215655bc398..e019c6c232a9e 100644 --- a/google/cloud/compute/target_instances/v1/internal/target_instances_rest_connection_impl.cc +++ b/google/cloud/compute/target_instances/v1/internal/target_instances_rest_connection_impl.cc @@ -23,6 +23,7 @@ #include "google/cloud/internal/async_rest_long_running_operation_custom.h" #include "google/cloud/internal/extract_long_running_result.h" #include "google/cloud/internal/pagination_range.h" +#include "google/cloud/internal/rest_lro_helpers.h" #include "google/cloud/internal/rest_retry_loop.h" #include "google/cloud/rest_options.h" #include @@ -147,6 +148,79 @@ TargetInstancesRestConnectionImpl::DeleteTargetInstance( }); } +StatusOr +TargetInstancesRestConnectionImpl::DeleteTargetInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_instances::v1:: + DeleteTargetInstanceRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteTargetInstance(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::target_instances::v1:: + DeleteTargetInstanceRequest const& request) { + return stub_->DeleteTargetInstance(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +TargetInstancesRestConnectionImpl::DeleteTargetInstance( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::zone_operations::v1::DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::zone_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::zone_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation]( + std::string const&, + google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest& + r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_zone(info.zone); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::zone_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_zone(info.zone); + r.set_operation(info.operation); + }); +} + StatusOr TargetInstancesRestConnectionImpl::GetTargetInstance( google::cloud::cpp::compute::target_instances::v1:: @@ -223,6 +297,79 @@ TargetInstancesRestConnectionImpl::InsertTargetInstance( }); } +StatusOr +TargetInstancesRestConnectionImpl::InsertTargetInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_instances::v1:: + InsertTargetInstanceRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->InsertTargetInstance(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::target_instances::v1:: + InsertTargetInstanceRequest const& request) { + return stub_->InsertTargetInstance(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +TargetInstancesRestConnectionImpl::InsertTargetInstance( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::zone_operations::v1::DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::zone_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::zone_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation]( + std::string const&, + google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest& + r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_zone(info.zone); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::zone_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_zone(info.zone); + r.set_operation(info.operation); + }); +} + StreamRange TargetInstancesRestConnectionImpl::ListTargetInstances( google::cloud::cpp::compute::target_instances::v1:: @@ -321,6 +468,79 @@ TargetInstancesRestConnectionImpl::SetSecurityPolicy( }); } +StatusOr +TargetInstancesRestConnectionImpl::SetSecurityPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_instances::v1:: + SetSecurityPolicyRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->SetSecurityPolicy(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::target_instances::v1:: + SetSecurityPolicyRequest const& request) { + return stub_->SetSecurityPolicy(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +TargetInstancesRestConnectionImpl::SetSecurityPolicy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::zone_operations::v1::DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::zone_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::zone_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation]( + std::string const&, + google::cloud::cpp::compute::zone_operations::v1::GetOperationRequest& + r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_zone(info.zone); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::zone_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_zone(info.zone); + r.set_operation(info.operation); + }); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace compute_target_instances_v1_internal } // namespace cloud diff --git a/google/cloud/compute/target_instances/v1/internal/target_instances_rest_connection_impl.h b/google/cloud/compute/target_instances/v1/internal/target_instances_rest_connection_impl.h index 8ed4a11dd1e59..b6036d20b0be0 100644 --- a/google/cloud/compute/target_instances/v1/internal/target_instances_rest_connection_impl.h +++ b/google/cloud/compute/target_instances/v1/internal/target_instances_rest_connection_impl.h @@ -62,6 +62,16 @@ class TargetInstancesRestConnectionImpl DeleteTargetInstance(google::cloud::cpp::compute::target_instances::v1:: DeleteTargetInstanceRequest const& request) override; + StatusOr DeleteTargetInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_instances::v1:: + DeleteTargetInstanceRequest const& request) override; + + future> + DeleteTargetInstance( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StatusOr GetTargetInstance( google::cloud::cpp::compute::target_instances::v1:: GetTargetInstanceRequest const& request) override; @@ -70,6 +80,16 @@ class TargetInstancesRestConnectionImpl InsertTargetInstance(google::cloud::cpp::compute::target_instances::v1:: InsertTargetInstanceRequest const& request) override; + StatusOr InsertTargetInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_instances::v1:: + InsertTargetInstanceRequest const& request) override; + + future> + InsertTargetInstance( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StreamRange ListTargetInstances(google::cloud::cpp::compute::target_instances::v1:: ListTargetInstancesRequest request) override; @@ -78,6 +98,16 @@ class TargetInstancesRestConnectionImpl SetSecurityPolicy(google::cloud::cpp::compute::target_instances::v1:: SetSecurityPolicyRequest const& request) override; + StatusOr SetSecurityPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_instances::v1:: + SetSecurityPolicyRequest const& request) override; + + future> + SetSecurityPolicy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + private: static std::unique_ptr< compute_target_instances_v1::TargetInstancesRetryPolicy> diff --git a/google/cloud/compute/target_instances/v1/internal/target_instances_tracing_connection.cc b/google/cloud/compute/target_instances/v1/internal/target_instances_tracing_connection.cc index e6e2593d9dacb..d103b44b2017b 100644 --- a/google/cloud/compute/target_instances/v1/internal/target_instances_tracing_connection.cc +++ b/google/cloud/compute/target_instances/v1/internal/target_instances_tracing_connection.cc @@ -61,6 +61,32 @@ TargetInstancesTracingConnection::DeleteTargetInstance( child_->DeleteTargetInstance(request)); } +StatusOr +TargetInstancesTracingConnection::DeleteTargetInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_instances::v1:: + DeleteTargetInstanceRequest const& request) { + auto span = internal::MakeSpan( + "compute_target_instances_v1::TargetInstancesConnection::" + "DeleteTargetInstance"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->DeleteTargetInstance(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +TargetInstancesTracingConnection::DeleteTargetInstance( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_target_instances_v1::TargetInstancesConnection::" + "DeleteTargetInstance"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->DeleteTargetInstance( + ExperimentalTag{}, operation)); +} + StatusOr TargetInstancesTracingConnection::GetTargetInstance( google::cloud::cpp::compute::target_instances::v1:: @@ -84,6 +110,32 @@ TargetInstancesTracingConnection::InsertTargetInstance( child_->InsertTargetInstance(request)); } +StatusOr +TargetInstancesTracingConnection::InsertTargetInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_instances::v1:: + InsertTargetInstanceRequest const& request) { + auto span = internal::MakeSpan( + "compute_target_instances_v1::TargetInstancesConnection::" + "InsertTargetInstance"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->InsertTargetInstance(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +TargetInstancesTracingConnection::InsertTargetInstance( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_target_instances_v1::TargetInstancesConnection::" + "InsertTargetInstance"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->InsertTargetInstance( + ExperimentalTag{}, operation)); +} + StreamRange TargetInstancesTracingConnection::ListTargetInstances( google::cloud::cpp::compute::target_instances::v1:: @@ -109,6 +161,32 @@ TargetInstancesTracingConnection::SetSecurityPolicy( return internal::EndSpan(std::move(span), child_->SetSecurityPolicy(request)); } +StatusOr +TargetInstancesTracingConnection::SetSecurityPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_instances::v1:: + SetSecurityPolicyRequest const& request) { + auto span = internal::MakeSpan( + "compute_target_instances_v1::TargetInstancesConnection::" + "SetSecurityPolicy"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->SetSecurityPolicy(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +TargetInstancesTracingConnection::SetSecurityPolicy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_target_instances_v1::TargetInstancesConnection::" + "SetSecurityPolicy"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->SetSecurityPolicy(ExperimentalTag{}, operation)); +} + #endif // GOOGLE_CLOUD_CPP_HAVE_OPENTELEMETRY std::shared_ptr diff --git a/google/cloud/compute/target_instances/v1/internal/target_instances_tracing_connection.h b/google/cloud/compute/target_instances/v1/internal/target_instances_tracing_connection.h index 509c78a0998b4..3fce5cbe094db 100644 --- a/google/cloud/compute/target_instances/v1/internal/target_instances_tracing_connection.h +++ b/google/cloud/compute/target_instances/v1/internal/target_instances_tracing_connection.h @@ -51,6 +51,16 @@ class TargetInstancesTracingConnection DeleteTargetInstance(google::cloud::cpp::compute::target_instances::v1:: DeleteTargetInstanceRequest const& request) override; + StatusOr DeleteTargetInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_instances::v1:: + DeleteTargetInstanceRequest const& request) override; + + future> + DeleteTargetInstance( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StatusOr GetTargetInstance( google::cloud::cpp::compute::target_instances::v1:: GetTargetInstanceRequest const& request) override; @@ -59,6 +69,16 @@ class TargetInstancesTracingConnection InsertTargetInstance(google::cloud::cpp::compute::target_instances::v1:: InsertTargetInstanceRequest const& request) override; + StatusOr InsertTargetInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_instances::v1:: + InsertTargetInstanceRequest const& request) override; + + future> + InsertTargetInstance( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StreamRange ListTargetInstances(google::cloud::cpp::compute::target_instances::v1:: ListTargetInstancesRequest request) override; @@ -67,6 +87,16 @@ class TargetInstancesTracingConnection SetSecurityPolicy(google::cloud::cpp::compute::target_instances::v1:: SetSecurityPolicyRequest const& request) override; + StatusOr SetSecurityPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_instances::v1:: + SetSecurityPolicyRequest const& request) override; + + future> + SetSecurityPolicy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + private: std::shared_ptr child_; diff --git a/google/cloud/compute/target_instances/v1/mocks/mock_target_instances_connection.h b/google/cloud/compute/target_instances/v1/mocks/mock_target_instances_connection.h index 4ab7b98cacb45..879d20853c957 100644 --- a/google/cloud/compute/target_instances/v1/mocks/mock_target_instances_connection.h +++ b/google/cloud/compute/target_instances/v1/mocks/mock_target_instances_connection.h @@ -61,6 +61,19 @@ class MockTargetInstancesConnection DeleteTargetInstanceRequest const& request), (override)); + MOCK_METHOD(StatusOr, + DeleteTargetInstance, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_instances::v1:: + DeleteTargetInstanceRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteTargetInstance, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD(StatusOr, GetTargetInstance, (google::cloud::cpp::compute::target_instances::v1:: @@ -73,6 +86,19 @@ class MockTargetInstancesConnection InsertTargetInstanceRequest const& request), (override)); + MOCK_METHOD(StatusOr, + InsertTargetInstance, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_instances::v1:: + InsertTargetInstanceRequest const& request), + (override)); + + MOCK_METHOD(future>, + InsertTargetInstance, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD((StreamRange), ListTargetInstances, (google::cloud::cpp::compute::target_instances::v1:: @@ -84,6 +110,19 @@ class MockTargetInstancesConnection (google::cloud::cpp::compute::target_instances::v1:: SetSecurityPolicyRequest const& request), (override)); + + MOCK_METHOD(StatusOr, + SetSecurityPolicy, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_instances::v1:: + SetSecurityPolicyRequest const& request), + (override)); + + MOCK_METHOD(future>, + SetSecurityPolicy, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); }; GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END diff --git a/google/cloud/compute/target_instances/v1/target_instances_connection.cc b/google/cloud/compute/target_instances/v1/target_instances_connection.cc index 282be07a6e0e8..b5346eddf8a7b 100644 --- a/google/cloud/compute/target_instances/v1/target_instances_connection.cc +++ b/google/cloud/compute/target_instances/v1/target_instances_connection.cc @@ -55,6 +55,23 @@ TargetInstancesConnection::DeleteTargetInstance( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +TargetInstancesConnection::DeleteTargetInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_instances::v1:: + DeleteTargetInstanceRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +TargetInstancesConnection::DeleteTargetInstance( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr TargetInstancesConnection::GetTargetInstance( google::cloud::cpp::compute::target_instances::v1:: @@ -71,6 +88,23 @@ TargetInstancesConnection::InsertTargetInstance( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +TargetInstancesConnection::InsertTargetInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_instances::v1:: + InsertTargetInstanceRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +TargetInstancesConnection::InsertTargetInstance( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StreamRange TargetInstancesConnection::ListTargetInstances( google::cloud::cpp::compute::target_instances::v1:: @@ -88,6 +122,23 @@ TargetInstancesConnection::SetSecurityPolicy( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +TargetInstancesConnection::SetSecurityPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_instances::v1:: + SetSecurityPolicyRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +TargetInstancesConnection::SetSecurityPolicy( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace compute_target_instances_v1 } // namespace cloud diff --git a/google/cloud/compute/target_instances/v1/target_instances_connection.h b/google/cloud/compute/target_instances/v1/target_instances_connection.h index ecbd46bb25bc2..c86b961341d77 100644 --- a/google/cloud/compute/target_instances/v1/target_instances_connection.h +++ b/google/cloud/compute/target_instances/v1/target_instances_connection.h @@ -22,8 +22,10 @@ #include "google/cloud/compute/target_instances/v1/internal/target_instances_retry_traits.h" #include "google/cloud/compute/target_instances/v1/target_instances_connection_idempotency_policy.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/internal/retry_policy_impl.h" +#include "google/cloud/no_await_tag.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" #include "google/cloud/status_or.h" @@ -196,6 +198,16 @@ class TargetInstancesConnection { DeleteTargetInstance(google::cloud::cpp::compute::target_instances::v1:: DeleteTargetInstanceRequest const& request); + virtual StatusOr + DeleteTargetInstance(ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_instances::v1:: + DeleteTargetInstanceRequest const& request); + + virtual future> + DeleteTargetInstance( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual StatusOr GetTargetInstance(google::cloud::cpp::compute::target_instances::v1:: GetTargetInstanceRequest const& request); @@ -204,6 +216,16 @@ class TargetInstancesConnection { InsertTargetInstance(google::cloud::cpp::compute::target_instances::v1:: InsertTargetInstanceRequest const& request); + virtual StatusOr + InsertTargetInstance(ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_instances::v1:: + InsertTargetInstanceRequest const& request); + + virtual future> + InsertTargetInstance( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual StreamRange ListTargetInstances(google::cloud::cpp::compute::target_instances::v1:: ListTargetInstancesRequest request); @@ -211,6 +233,16 @@ class TargetInstancesConnection { virtual future> SetSecurityPolicy(google::cloud::cpp::compute::target_instances::v1:: SetSecurityPolicyRequest const& request); + + virtual StatusOr + SetSecurityPolicy(ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_instances::v1:: + SetSecurityPolicyRequest const& request); + + virtual future> + SetSecurityPolicy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); }; GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END diff --git a/google/cloud/compute/target_pools/v1/internal/target_pools_rest_connection_impl.cc b/google/cloud/compute/target_pools/v1/internal/target_pools_rest_connection_impl.cc index 3895f4d9c992d..18d8fba3ebfed 100644 --- a/google/cloud/compute/target_pools/v1/internal/target_pools_rest_connection_impl.cc +++ b/google/cloud/compute/target_pools/v1/internal/target_pools_rest_connection_impl.cc @@ -23,6 +23,7 @@ #include "google/cloud/internal/async_rest_long_running_operation_custom.h" #include "google/cloud/internal/extract_long_running_result.h" #include "google/cloud/internal/pagination_range.h" +#include "google/cloud/internal/rest_lro_helpers.h" #include "google/cloud/internal/rest_retry_loop.h" #include "google/cloud/rest_options.h" #include @@ -102,6 +103,79 @@ TargetPoolsRestConnectionImpl::AddHealthCheck( }); } +StatusOr +TargetPoolsRestConnectionImpl::AddHealthCheck( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_pools::v1::AddHealthCheckRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->AddHealthCheck(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::target_pools::v1:: + AddHealthCheckRequest const& request) { + return stub_->AddHealthCheck(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +TargetPoolsRestConnectionImpl::AddHealthCheck( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::region_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }); +} + future> TargetPoolsRestConnectionImpl::AddInstance( google::cloud::cpp::compute::target_pools::v1::AddInstanceRequest const& @@ -162,6 +236,79 @@ TargetPoolsRestConnectionImpl::AddInstance( }); } +StatusOr +TargetPoolsRestConnectionImpl::AddInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_pools::v1::AddInstanceRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->AddInstance(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::target_pools::v1:: + AddInstanceRequest const& request) { + return stub_->AddInstance(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +TargetPoolsRestConnectionImpl::AddInstance( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::region_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }); +} + StreamRange> TargetPoolsRestConnectionImpl::AggregatedListTargetPools( @@ -264,6 +411,79 @@ TargetPoolsRestConnectionImpl::DeleteTargetPool( }); } +StatusOr +TargetPoolsRestConnectionImpl::DeleteTargetPool( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_pools::v1:: + DeleteTargetPoolRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteTargetPool(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::target_pools::v1:: + DeleteTargetPoolRequest const& request) { + return stub_->DeleteTargetPool(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +TargetPoolsRestConnectionImpl::DeleteTargetPool( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::region_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }); +} + StatusOr TargetPoolsRestConnectionImpl::GetTargetPool( google::cloud::cpp::compute::target_pools::v1::GetTargetPoolRequest const& @@ -357,6 +577,79 @@ TargetPoolsRestConnectionImpl::InsertTargetPool( }); } +StatusOr +TargetPoolsRestConnectionImpl::InsertTargetPool( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_pools::v1:: + InsertTargetPoolRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->InsertTargetPool(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::target_pools::v1:: + InsertTargetPoolRequest const& request) { + return stub_->InsertTargetPool(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +TargetPoolsRestConnectionImpl::InsertTargetPool( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::region_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }); +} + StreamRange TargetPoolsRestConnectionImpl::ListTargetPools( google::cloud::cpp::compute::target_pools::v1::ListTargetPoolsRequest @@ -453,6 +746,79 @@ TargetPoolsRestConnectionImpl::RemoveHealthCheck( }); } +StatusOr +TargetPoolsRestConnectionImpl::RemoveHealthCheck( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_pools::v1:: + RemoveHealthCheckRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->RemoveHealthCheck(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::target_pools::v1:: + RemoveHealthCheckRequest const& request) { + return stub_->RemoveHealthCheck(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +TargetPoolsRestConnectionImpl::RemoveHealthCheck( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::region_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }); +} + future> TargetPoolsRestConnectionImpl::RemoveInstance( google::cloud::cpp::compute::target_pools::v1::RemoveInstanceRequest const& @@ -513,6 +879,79 @@ TargetPoolsRestConnectionImpl::RemoveInstance( }); } +StatusOr +TargetPoolsRestConnectionImpl::RemoveInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_pools::v1::RemoveInstanceRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->RemoveInstance(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::target_pools::v1:: + RemoveInstanceRequest const& request) { + return stub_->RemoveInstance(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +TargetPoolsRestConnectionImpl::RemoveInstance( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::region_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }); +} + future> TargetPoolsRestConnectionImpl::SetBackup( google::cloud::cpp::compute::target_pools::v1::SetBackupRequest const& @@ -574,6 +1013,80 @@ TargetPoolsRestConnectionImpl::SetBackup( }); } +StatusOr +TargetPoolsRestConnectionImpl::SetBackup( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_pools::v1::SetBackupRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->SetBackup(request), + [this]( + rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::target_pools::v1::SetBackupRequest const& + request) { + return stub_->SetBackup(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +TargetPoolsRestConnectionImpl::SetBackup( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::region_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }); +} + future> TargetPoolsRestConnectionImpl::SetSecurityPolicy( google::cloud::cpp::compute::target_pools::v1:: @@ -634,6 +1147,79 @@ TargetPoolsRestConnectionImpl::SetSecurityPolicy( }); } +StatusOr +TargetPoolsRestConnectionImpl::SetSecurityPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_pools::v1:: + SetSecurityPolicyRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->SetSecurityPolicy(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::target_pools::v1:: + SetSecurityPolicyRequest const& request) { + return stub_->SetSecurityPolicy(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +TargetPoolsRestConnectionImpl::SetSecurityPolicy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::region_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace compute_target_pools_v1_internal } // namespace cloud diff --git a/google/cloud/compute/target_pools/v1/internal/target_pools_rest_connection_impl.h b/google/cloud/compute/target_pools/v1/internal/target_pools_rest_connection_impl.h index 1a89e5a6a8dad..27ac0c726c7fe 100644 --- a/google/cloud/compute/target_pools/v1/internal/target_pools_rest_connection_impl.h +++ b/google/cloud/compute/target_pools/v1/internal/target_pools_rest_connection_impl.h @@ -55,10 +55,28 @@ class TargetPoolsRestConnectionImpl google::cloud::cpp::compute::target_pools::v1:: AddHealthCheckRequest const& request) override; + StatusOr AddHealthCheck( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_pools::v1:: + AddHealthCheckRequest const& request) override; + + future> AddHealthCheck( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> AddInstance( google::cloud::cpp::compute::target_pools::v1::AddInstanceRequest const& request) override; + StatusOr AddInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_pools::v1::AddInstanceRequest const& + request) override; + + future> AddInstance( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StreamRange> AggregatedListTargetPools( @@ -69,6 +87,15 @@ class TargetPoolsRestConnectionImpl google::cloud::cpp::compute::target_pools::v1:: DeleteTargetPoolRequest const& request) override; + StatusOr DeleteTargetPool( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_pools::v1:: + DeleteTargetPoolRequest const& request) override; + + future> DeleteTargetPool( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StatusOr GetTargetPool( google::cloud::cpp::compute::target_pools::v1::GetTargetPoolRequest const& request) override; @@ -81,6 +108,15 @@ class TargetPoolsRestConnectionImpl google::cloud::cpp::compute::target_pools::v1:: InsertTargetPoolRequest const& request) override; + StatusOr InsertTargetPool( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_pools::v1:: + InsertTargetPoolRequest const& request) override; + + future> InsertTargetPool( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StreamRange ListTargetPools( google::cloud::cpp::compute::target_pools::v1::ListTargetPoolsRequest request) override; @@ -89,18 +125,56 @@ class TargetPoolsRestConnectionImpl RemoveHealthCheck(google::cloud::cpp::compute::target_pools::v1:: RemoveHealthCheckRequest const& request) override; + StatusOr RemoveHealthCheck( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_pools::v1:: + RemoveHealthCheckRequest const& request) override; + + future> + RemoveHealthCheck( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> RemoveInstance( google::cloud::cpp::compute::target_pools::v1:: RemoveInstanceRequest const& request) override; + StatusOr RemoveInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_pools::v1:: + RemoveInstanceRequest const& request) override; + + future> RemoveInstance( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> SetBackup( google::cloud::cpp::compute::target_pools::v1::SetBackupRequest const& request) override; + StatusOr SetBackup( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_pools::v1::SetBackupRequest const& + request) override; + + future> SetBackup( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> SetSecurityPolicy(google::cloud::cpp::compute::target_pools::v1:: SetSecurityPolicyRequest const& request) override; + StatusOr SetSecurityPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_pools::v1:: + SetSecurityPolicyRequest const& request) override; + + future> + SetSecurityPolicy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + private: static std::unique_ptr retry_policy(Options const& options) { diff --git a/google/cloud/compute/target_pools/v1/internal/target_pools_tracing_connection.cc b/google/cloud/compute/target_pools/v1/internal/target_pools_tracing_connection.cc index 3c12a43407806..2bc11c97202ae 100644 --- a/google/cloud/compute/target_pools/v1/internal/target_pools_tracing_connection.cc +++ b/google/cloud/compute/target_pools/v1/internal/target_pools_tracing_connection.cc @@ -43,6 +43,29 @@ TargetPoolsTracingConnection::AddHealthCheck( return internal::EndSpan(std::move(span), child_->AddHealthCheck(request)); } +StatusOr +TargetPoolsTracingConnection::AddHealthCheck( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_pools::v1::AddHealthCheckRequest const& + request) { + auto span = internal::MakeSpan( + "compute_target_pools_v1::TargetPoolsConnection::AddHealthCheck"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->AddHealthCheck(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +TargetPoolsTracingConnection::AddHealthCheck( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_target_pools_v1::TargetPoolsConnection::AddHealthCheck"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->AddHealthCheck(ExperimentalTag{}, operation)); +} + future> TargetPoolsTracingConnection::AddInstance( google::cloud::cpp::compute::target_pools::v1::AddInstanceRequest const& @@ -53,6 +76,29 @@ TargetPoolsTracingConnection::AddInstance( return internal::EndSpan(std::move(span), child_->AddInstance(request)); } +StatusOr +TargetPoolsTracingConnection::AddInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_pools::v1::AddInstanceRequest const& + request) { + auto span = internal::MakeSpan( + "compute_target_pools_v1::TargetPoolsConnection::AddInstance"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->AddInstance(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +TargetPoolsTracingConnection::AddInstance( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_target_pools_v1::TargetPoolsConnection::AddInstance"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->AddInstance(ExperimentalTag{}, operation)); +} + StreamRange> TargetPoolsTracingConnection::AggregatedListTargetPools( @@ -78,6 +124,30 @@ TargetPoolsTracingConnection::DeleteTargetPool( return internal::EndSpan(std::move(span), child_->DeleteTargetPool(request)); } +StatusOr +TargetPoolsTracingConnection::DeleteTargetPool( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_pools::v1:: + DeleteTargetPoolRequest const& request) { + auto span = internal::MakeSpan( + "compute_target_pools_v1::TargetPoolsConnection::DeleteTargetPool"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->DeleteTargetPool(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +TargetPoolsTracingConnection::DeleteTargetPool( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_target_pools_v1::TargetPoolsConnection::DeleteTargetPool"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->DeleteTargetPool(ExperimentalTag{}, operation)); +} + StatusOr TargetPoolsTracingConnection::GetTargetPool( google::cloud::cpp::compute::target_pools::v1::GetTargetPoolRequest const& @@ -108,6 +178,30 @@ TargetPoolsTracingConnection::InsertTargetPool( return internal::EndSpan(std::move(span), child_->InsertTargetPool(request)); } +StatusOr +TargetPoolsTracingConnection::InsertTargetPool( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_pools::v1:: + InsertTargetPoolRequest const& request) { + auto span = internal::MakeSpan( + "compute_target_pools_v1::TargetPoolsConnection::InsertTargetPool"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->InsertTargetPool(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +TargetPoolsTracingConnection::InsertTargetPool( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_target_pools_v1::TargetPoolsConnection::InsertTargetPool"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->InsertTargetPool(ExperimentalTag{}, operation)); +} + StreamRange TargetPoolsTracingConnection::ListTargetPools( google::cloud::cpp::compute::target_pools::v1::ListTargetPoolsRequest @@ -131,6 +225,30 @@ TargetPoolsTracingConnection::RemoveHealthCheck( return internal::EndSpan(std::move(span), child_->RemoveHealthCheck(request)); } +StatusOr +TargetPoolsTracingConnection::RemoveHealthCheck( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_pools::v1:: + RemoveHealthCheckRequest const& request) { + auto span = internal::MakeSpan( + "compute_target_pools_v1::TargetPoolsConnection::RemoveHealthCheck"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->RemoveHealthCheck(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +TargetPoolsTracingConnection::RemoveHealthCheck( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_target_pools_v1::TargetPoolsConnection::RemoveHealthCheck"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->RemoveHealthCheck(ExperimentalTag{}, operation)); +} + future> TargetPoolsTracingConnection::RemoveInstance( google::cloud::cpp::compute::target_pools::v1::RemoveInstanceRequest const& @@ -141,6 +259,29 @@ TargetPoolsTracingConnection::RemoveInstance( return internal::EndSpan(std::move(span), child_->RemoveInstance(request)); } +StatusOr +TargetPoolsTracingConnection::RemoveInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_pools::v1::RemoveInstanceRequest const& + request) { + auto span = internal::MakeSpan( + "compute_target_pools_v1::TargetPoolsConnection::RemoveInstance"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->RemoveInstance(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +TargetPoolsTracingConnection::RemoveInstance( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_target_pools_v1::TargetPoolsConnection::RemoveInstance"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->RemoveInstance(ExperimentalTag{}, operation)); +} + future> TargetPoolsTracingConnection::SetBackup( google::cloud::cpp::compute::target_pools::v1::SetBackupRequest const& @@ -151,6 +292,29 @@ TargetPoolsTracingConnection::SetBackup( return internal::EndSpan(std::move(span), child_->SetBackup(request)); } +StatusOr +TargetPoolsTracingConnection::SetBackup( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_pools::v1::SetBackupRequest const& + request) { + auto span = internal::MakeSpan( + "compute_target_pools_v1::TargetPoolsConnection::SetBackup"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->SetBackup(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +TargetPoolsTracingConnection::SetBackup( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_target_pools_v1::TargetPoolsConnection::SetBackup"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->SetBackup(ExperimentalTag{}, operation)); +} + future> TargetPoolsTracingConnection::SetSecurityPolicy( google::cloud::cpp::compute::target_pools::v1:: @@ -161,6 +325,30 @@ TargetPoolsTracingConnection::SetSecurityPolicy( return internal::EndSpan(std::move(span), child_->SetSecurityPolicy(request)); } +StatusOr +TargetPoolsTracingConnection::SetSecurityPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_pools::v1:: + SetSecurityPolicyRequest const& request) { + auto span = internal::MakeSpan( + "compute_target_pools_v1::TargetPoolsConnection::SetSecurityPolicy"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->SetSecurityPolicy(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +TargetPoolsTracingConnection::SetSecurityPolicy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_target_pools_v1::TargetPoolsConnection::SetSecurityPolicy"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->SetSecurityPolicy(ExperimentalTag{}, operation)); +} + #endif // GOOGLE_CLOUD_CPP_HAVE_OPENTELEMETRY std::shared_ptr diff --git a/google/cloud/compute/target_pools/v1/internal/target_pools_tracing_connection.h b/google/cloud/compute/target_pools/v1/internal/target_pools_tracing_connection.h index ef92170466c1f..836aec5d606b5 100644 --- a/google/cloud/compute/target_pools/v1/internal/target_pools_tracing_connection.h +++ b/google/cloud/compute/target_pools/v1/internal/target_pools_tracing_connection.h @@ -44,10 +44,28 @@ class TargetPoolsTracingConnection google::cloud::cpp::compute::target_pools::v1:: AddHealthCheckRequest const& request) override; + StatusOr AddHealthCheck( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_pools::v1:: + AddHealthCheckRequest const& request) override; + + future> AddHealthCheck( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> AddInstance( google::cloud::cpp::compute::target_pools::v1::AddInstanceRequest const& request) override; + StatusOr AddInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_pools::v1::AddInstanceRequest const& + request) override; + + future> AddInstance( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StreamRange> AggregatedListTargetPools( @@ -58,6 +76,15 @@ class TargetPoolsTracingConnection google::cloud::cpp::compute::target_pools::v1:: DeleteTargetPoolRequest const& request) override; + StatusOr DeleteTargetPool( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_pools::v1:: + DeleteTargetPoolRequest const& request) override; + + future> DeleteTargetPool( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StatusOr GetTargetPool( google::cloud::cpp::compute::target_pools::v1::GetTargetPoolRequest const& request) override; @@ -70,6 +97,15 @@ class TargetPoolsTracingConnection google::cloud::cpp::compute::target_pools::v1:: InsertTargetPoolRequest const& request) override; + StatusOr InsertTargetPool( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_pools::v1:: + InsertTargetPoolRequest const& request) override; + + future> InsertTargetPool( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StreamRange ListTargetPools( google::cloud::cpp::compute::target_pools::v1::ListTargetPoolsRequest request) override; @@ -78,18 +114,56 @@ class TargetPoolsTracingConnection RemoveHealthCheck(google::cloud::cpp::compute::target_pools::v1:: RemoveHealthCheckRequest const& request) override; + StatusOr RemoveHealthCheck( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_pools::v1:: + RemoveHealthCheckRequest const& request) override; + + future> + RemoveHealthCheck( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> RemoveInstance( google::cloud::cpp::compute::target_pools::v1:: RemoveInstanceRequest const& request) override; + StatusOr RemoveInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_pools::v1:: + RemoveInstanceRequest const& request) override; + + future> RemoveInstance( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> SetBackup( google::cloud::cpp::compute::target_pools::v1::SetBackupRequest const& request) override; + StatusOr SetBackup( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_pools::v1::SetBackupRequest const& + request) override; + + future> SetBackup( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> SetSecurityPolicy(google::cloud::cpp::compute::target_pools::v1:: SetSecurityPolicyRequest const& request) override; + StatusOr SetSecurityPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_pools::v1:: + SetSecurityPolicyRequest const& request) override; + + future> + SetSecurityPolicy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + private: std::shared_ptr child_; }; diff --git a/google/cloud/compute/target_pools/v1/mocks/mock_target_pools_connection.h b/google/cloud/compute/target_pools/v1/mocks/mock_target_pools_connection.h index 40bbdd0923654..f4ef193ac0e8d 100644 --- a/google/cloud/compute/target_pools/v1/mocks/mock_target_pools_connection.h +++ b/google/cloud/compute/target_pools/v1/mocks/mock_target_pools_connection.h @@ -53,12 +53,38 @@ class MockTargetPoolsConnection AddHealthCheckRequest const& request), (override)); + MOCK_METHOD(StatusOr, + AddHealthCheck, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_pools::v1:: + AddHealthCheckRequest const& request), + (override)); + + MOCK_METHOD(future>, + AddHealthCheck, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD( future>, AddInstance, (google::cloud::cpp::compute::target_pools::v1::AddInstanceRequest const& request), (override)); + MOCK_METHOD( + StatusOr, AddInstance, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_pools::v1::AddInstanceRequest const& + request), + (override)); + + MOCK_METHOD(future>, + AddInstance, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD( (StreamRange< std::pair, + DeleteTargetPool, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_pools::v1:: + DeleteTargetPoolRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteTargetPool, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD(StatusOr, GetTargetPool, (google::cloud::cpp::compute::target_pools::v1:: @@ -93,6 +132,19 @@ class MockTargetPoolsConnection InsertTargetPoolRequest const& request), (override)); + MOCK_METHOD(StatusOr, + InsertTargetPool, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_pools::v1:: + InsertTargetPoolRequest const& request), + (override)); + + MOCK_METHOD(future>, + InsertTargetPool, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD( (StreamRange), ListTargetPools, @@ -106,23 +158,75 @@ class MockTargetPoolsConnection RemoveHealthCheckRequest const& request), (override)); + MOCK_METHOD(StatusOr, + RemoveHealthCheck, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_pools::v1:: + RemoveHealthCheckRequest const& request), + (override)); + + MOCK_METHOD(future>, + RemoveHealthCheck, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD(future>, RemoveInstance, (google::cloud::cpp::compute::target_pools::v1:: RemoveInstanceRequest const& request), (override)); + MOCK_METHOD(StatusOr, + RemoveInstance, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_pools::v1:: + RemoveInstanceRequest const& request), + (override)); + + MOCK_METHOD(future>, + RemoveInstance, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD( future>, SetBackup, (google::cloud::cpp::compute::target_pools::v1::SetBackupRequest const& request), (override)); + MOCK_METHOD( + StatusOr, SetBackup, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_pools::v1::SetBackupRequest const& + request), + (override)); + + MOCK_METHOD(future>, + SetBackup, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD(future>, SetSecurityPolicy, (google::cloud::cpp::compute::target_pools::v1:: SetSecurityPolicyRequest const& request), (override)); + + MOCK_METHOD(StatusOr, + SetSecurityPolicy, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_pools::v1:: + SetSecurityPolicyRequest const& request), + (override)); + + MOCK_METHOD(future>, + SetSecurityPolicy, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); }; GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END diff --git a/google/cloud/compute/target_pools/v1/target_pools_connection.cc b/google/cloud/compute/target_pools/v1/target_pools_connection.cc index 5c2073cef00fa..0c471c027f712 100644 --- a/google/cloud/compute/target_pools/v1/target_pools_connection.cc +++ b/google/cloud/compute/target_pools/v1/target_pools_connection.cc @@ -45,6 +45,23 @@ TargetPoolsConnection::AddHealthCheck( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +TargetPoolsConnection::AddHealthCheck( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_pools::v1:: + AddHealthCheckRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +TargetPoolsConnection::AddHealthCheck( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> TargetPoolsConnection::AddInstance( google::cloud::cpp::compute::target_pools::v1::AddInstanceRequest const&) { @@ -53,6 +70,22 @@ TargetPoolsConnection::AddInstance( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +TargetPoolsConnection::AddInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_pools::v1::AddInstanceRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +TargetPoolsConnection::AddInstance( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StreamRange> TargetPoolsConnection::AggregatedListTargetPools( @@ -72,6 +105,23 @@ TargetPoolsConnection::DeleteTargetPool( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +TargetPoolsConnection::DeleteTargetPool( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_pools::v1:: + DeleteTargetPoolRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +TargetPoolsConnection::DeleteTargetPool( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr TargetPoolsConnection::GetTargetPool(google::cloud::cpp::compute::target_pools:: v1::GetTargetPoolRequest const&) { @@ -93,6 +143,23 @@ TargetPoolsConnection::InsertTargetPool( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +TargetPoolsConnection::InsertTargetPool( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_pools::v1:: + InsertTargetPoolRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +TargetPoolsConnection::InsertTargetPool( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StreamRange TargetPoolsConnection::ListTargetPools( google::cloud::cpp::compute::target_pools::v1:: @@ -110,6 +177,23 @@ TargetPoolsConnection::RemoveHealthCheck( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +TargetPoolsConnection::RemoveHealthCheck( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_pools::v1:: + RemoveHealthCheckRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +TargetPoolsConnection::RemoveHealthCheck( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> TargetPoolsConnection::RemoveInstance( google::cloud::cpp::compute::target_pools::v1:: @@ -119,6 +203,23 @@ TargetPoolsConnection::RemoveInstance( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +TargetPoolsConnection::RemoveInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_pools::v1:: + RemoveInstanceRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +TargetPoolsConnection::RemoveInstance( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> TargetPoolsConnection::SetBackup( google::cloud::cpp::compute::target_pools::v1::SetBackupRequest const&) { @@ -127,6 +228,22 @@ TargetPoolsConnection::SetBackup( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +TargetPoolsConnection::SetBackup( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_pools::v1::SetBackupRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +TargetPoolsConnection::SetBackup( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> TargetPoolsConnection::SetSecurityPolicy( google::cloud::cpp::compute::target_pools::v1:: @@ -136,6 +253,23 @@ TargetPoolsConnection::SetSecurityPolicy( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +TargetPoolsConnection::SetSecurityPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_pools::v1:: + SetSecurityPolicyRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +TargetPoolsConnection::SetSecurityPolicy( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace compute_target_pools_v1 } // namespace cloud diff --git a/google/cloud/compute/target_pools/v1/target_pools_connection.h b/google/cloud/compute/target_pools/v1/target_pools_connection.h index 2f86d860825d2..2f0c1ad8bca88 100644 --- a/google/cloud/compute/target_pools/v1/target_pools_connection.h +++ b/google/cloud/compute/target_pools/v1/target_pools_connection.h @@ -22,8 +22,10 @@ #include "google/cloud/compute/target_pools/v1/internal/target_pools_retry_traits.h" #include "google/cloud/compute/target_pools/v1/target_pools_connection_idempotency_policy.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/internal/retry_policy_impl.h" +#include "google/cloud/no_await_tag.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" #include "google/cloud/status_or.h" @@ -187,11 +189,29 @@ class TargetPoolsConnection { AddHealthCheck(google::cloud::cpp::compute::target_pools::v1:: AddHealthCheckRequest const& request); + virtual StatusOr AddHealthCheck( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_pools::v1:: + AddHealthCheckRequest const& request); + + virtual future> + AddHealthCheck(ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual future> AddInstance( google::cloud::cpp::compute::target_pools::v1::AddInstanceRequest const& request); + virtual StatusOr AddInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_pools::v1::AddInstanceRequest const& + request); + + virtual future> + AddInstance(ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual StreamRange> AggregatedListTargetPools(google::cloud::cpp::compute::target_pools::v1:: @@ -201,6 +221,15 @@ class TargetPoolsConnection { DeleteTargetPool(google::cloud::cpp::compute::target_pools::v1:: DeleteTargetPoolRequest const& request); + virtual StatusOr DeleteTargetPool( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_pools::v1:: + DeleteTargetPoolRequest const& request); + + virtual future> + DeleteTargetPool(ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual StatusOr GetTargetPool( google::cloud::cpp::compute::target_pools::v1::GetTargetPoolRequest const& request); @@ -214,6 +243,15 @@ class TargetPoolsConnection { InsertTargetPool(google::cloud::cpp::compute::target_pools::v1:: InsertTargetPoolRequest const& request); + virtual StatusOr InsertTargetPool( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_pools::v1:: + InsertTargetPoolRequest const& request); + + virtual future> + InsertTargetPool(ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual StreamRange ListTargetPools( google::cloud::cpp::compute::target_pools::v1::ListTargetPoolsRequest @@ -223,18 +261,56 @@ class TargetPoolsConnection { RemoveHealthCheck(google::cloud::cpp::compute::target_pools::v1:: RemoveHealthCheckRequest const& request); + virtual StatusOr + RemoveHealthCheck(ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_pools::v1:: + RemoveHealthCheckRequest const& request); + + virtual future> + RemoveHealthCheck( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual future> RemoveInstance(google::cloud::cpp::compute::target_pools::v1:: RemoveInstanceRequest const& request); + virtual StatusOr RemoveInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_pools::v1:: + RemoveInstanceRequest const& request); + + virtual future> + RemoveInstance(ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual future> SetBackup( google::cloud::cpp::compute::target_pools::v1::SetBackupRequest const& request); + virtual StatusOr SetBackup( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_pools::v1::SetBackupRequest const& + request); + + virtual future> + SetBackup(ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual future> SetSecurityPolicy(google::cloud::cpp::compute::target_pools::v1:: SetSecurityPolicyRequest const& request); + + virtual StatusOr + SetSecurityPolicy(ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_pools::v1:: + SetSecurityPolicyRequest const& request); + + virtual future> + SetSecurityPolicy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); }; GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END diff --git a/google/cloud/compute/target_ssl_proxies/v1/internal/target_ssl_proxies_rest_connection_impl.cc b/google/cloud/compute/target_ssl_proxies/v1/internal/target_ssl_proxies_rest_connection_impl.cc index 89235cc435317..2fddb72959476 100644 --- a/google/cloud/compute/target_ssl_proxies/v1/internal/target_ssl_proxies_rest_connection_impl.cc +++ b/google/cloud/compute/target_ssl_proxies/v1/internal/target_ssl_proxies_rest_connection_impl.cc @@ -23,6 +23,7 @@ #include "google/cloud/internal/async_rest_long_running_operation_custom.h" #include "google/cloud/internal/extract_long_running_result.h" #include "google/cloud/internal/pagination_range.h" +#include "google/cloud/internal/rest_lro_helpers.h" #include "google/cloud/internal/rest_retry_loop.h" #include "google/cloud/rest_options.h" #include @@ -102,6 +103,77 @@ TargetSslProxiesRestConnectionImpl::DeleteTargetSslProxy( }); } +StatusOr +TargetSslProxiesRestConnectionImpl::DeleteTargetSslProxy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_ssl_proxies::v1:: + DeleteTargetSslProxyRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteTargetSslProxy(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::target_ssl_proxies::v1:: + DeleteTargetSslProxyRequest const& request) { + return stub_->DeleteTargetSslProxy(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +TargetSslProxiesRestConnectionImpl::DeleteTargetSslProxy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::global_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }); +} + StatusOr TargetSslProxiesRestConnectionImpl::GetTargetSslProxy( google::cloud::cpp::compute::target_ssl_proxies::v1:: @@ -176,6 +248,77 @@ TargetSslProxiesRestConnectionImpl::InsertTargetSslProxy( }); } +StatusOr +TargetSslProxiesRestConnectionImpl::InsertTargetSslProxy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_ssl_proxies::v1:: + InsertTargetSslProxyRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->InsertTargetSslProxy(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::target_ssl_proxies::v1:: + InsertTargetSslProxyRequest const& request) { + return stub_->InsertTargetSslProxy(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +TargetSslProxiesRestConnectionImpl::InsertTargetSslProxy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::global_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }); +} + StreamRange TargetSslProxiesRestConnectionImpl::ListTargetSslProxies( google::cloud::cpp::compute::target_ssl_proxies::v1:: @@ -273,6 +416,77 @@ TargetSslProxiesRestConnectionImpl::SetBackendService( }); } +StatusOr +TargetSslProxiesRestConnectionImpl::SetBackendService( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_ssl_proxies::v1:: + SetBackendServiceRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->SetBackendService(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::target_ssl_proxies::v1:: + SetBackendServiceRequest const& request) { + return stub_->SetBackendService(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +TargetSslProxiesRestConnectionImpl::SetBackendService( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::global_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }); +} + future> TargetSslProxiesRestConnectionImpl::SetCertificateMap( google::cloud::cpp::compute::target_ssl_proxies::v1:: @@ -331,6 +545,77 @@ TargetSslProxiesRestConnectionImpl::SetCertificateMap( }); } +StatusOr +TargetSslProxiesRestConnectionImpl::SetCertificateMap( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_ssl_proxies::v1:: + SetCertificateMapRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->SetCertificateMap(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::target_ssl_proxies::v1:: + SetCertificateMapRequest const& request) { + return stub_->SetCertificateMap(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +TargetSslProxiesRestConnectionImpl::SetCertificateMap( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::global_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }); +} + future> TargetSslProxiesRestConnectionImpl::SetProxyHeader( google::cloud::cpp::compute::target_ssl_proxies::v1:: @@ -389,6 +674,77 @@ TargetSslProxiesRestConnectionImpl::SetProxyHeader( }); } +StatusOr +TargetSslProxiesRestConnectionImpl::SetProxyHeader( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_ssl_proxies::v1:: + SetProxyHeaderRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->SetProxyHeader(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::target_ssl_proxies::v1:: + SetProxyHeaderRequest const& request) { + return stub_->SetProxyHeader(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +TargetSslProxiesRestConnectionImpl::SetProxyHeader( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::global_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }); +} + future> TargetSslProxiesRestConnectionImpl::SetSslCertificates( google::cloud::cpp::compute::target_ssl_proxies::v1:: @@ -447,6 +803,77 @@ TargetSslProxiesRestConnectionImpl::SetSslCertificates( }); } +StatusOr +TargetSslProxiesRestConnectionImpl::SetSslCertificates( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_ssl_proxies::v1:: + SetSslCertificatesRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->SetSslCertificates(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::target_ssl_proxies::v1:: + SetSslCertificatesRequest const& request) { + return stub_->SetSslCertificates(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +TargetSslProxiesRestConnectionImpl::SetSslCertificates( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::global_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }); +} + future> TargetSslProxiesRestConnectionImpl::SetSslPolicy( google::cloud::cpp::compute::target_ssl_proxies::v1:: @@ -505,6 +932,77 @@ TargetSslProxiesRestConnectionImpl::SetSslPolicy( }); } +StatusOr +TargetSslProxiesRestConnectionImpl::SetSslPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_ssl_proxies::v1:: + SetSslPolicyRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->SetSslPolicy(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::target_ssl_proxies::v1:: + SetSslPolicyRequest const& request) { + return stub_->SetSslPolicy(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +TargetSslProxiesRestConnectionImpl::SetSslPolicy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::global_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace compute_target_ssl_proxies_v1_internal } // namespace cloud diff --git a/google/cloud/compute/target_ssl_proxies/v1/internal/target_ssl_proxies_rest_connection_impl.h b/google/cloud/compute/target_ssl_proxies/v1/internal/target_ssl_proxies_rest_connection_impl.h index 9fea85ea3c0d7..63fa2ba1e6b3a 100644 --- a/google/cloud/compute/target_ssl_proxies/v1/internal/target_ssl_proxies_rest_connection_impl.h +++ b/google/cloud/compute/target_ssl_proxies/v1/internal/target_ssl_proxies_rest_connection_impl.h @@ -56,6 +56,16 @@ class TargetSslProxiesRestConnectionImpl DeleteTargetSslProxy(google::cloud::cpp::compute::target_ssl_proxies::v1:: DeleteTargetSslProxyRequest const& request) override; + StatusOr DeleteTargetSslProxy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_ssl_proxies::v1:: + DeleteTargetSslProxyRequest const& request) override; + + future> + DeleteTargetSslProxy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StatusOr GetTargetSslProxy( google::cloud::cpp::compute::target_ssl_proxies::v1:: GetTargetSslProxyRequest const& request) override; @@ -64,6 +74,16 @@ class TargetSslProxiesRestConnectionImpl InsertTargetSslProxy(google::cloud::cpp::compute::target_ssl_proxies::v1:: InsertTargetSslProxyRequest const& request) override; + StatusOr InsertTargetSslProxy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_ssl_proxies::v1:: + InsertTargetSslProxyRequest const& request) override; + + future> + InsertTargetSslProxy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StreamRange ListTargetSslProxies(google::cloud::cpp::compute::target_ssl_proxies::v1:: ListTargetSslProxiesRequest request) override; @@ -72,22 +92,70 @@ class TargetSslProxiesRestConnectionImpl SetBackendService(google::cloud::cpp::compute::target_ssl_proxies::v1:: SetBackendServiceRequest const& request) override; + StatusOr SetBackendService( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_ssl_proxies::v1:: + SetBackendServiceRequest const& request) override; + + future> + SetBackendService( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> SetCertificateMap(google::cloud::cpp::compute::target_ssl_proxies::v1:: SetCertificateMapRequest const& request) override; + StatusOr SetCertificateMap( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_ssl_proxies::v1:: + SetCertificateMapRequest const& request) override; + + future> + SetCertificateMap( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> SetProxyHeader( google::cloud::cpp::compute::target_ssl_proxies::v1:: SetProxyHeaderRequest const& request) override; + StatusOr SetProxyHeader( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_ssl_proxies::v1:: + SetProxyHeaderRequest const& request) override; + + future> SetProxyHeader( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> SetSslCertificates(google::cloud::cpp::compute::target_ssl_proxies::v1:: SetSslCertificatesRequest const& request) override; + StatusOr SetSslCertificates( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_ssl_proxies::v1:: + SetSslCertificatesRequest const& request) override; + + future> + SetSslCertificates( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> SetSslPolicy( google::cloud::cpp::compute::target_ssl_proxies::v1:: SetSslPolicyRequest const& request) override; + StatusOr SetSslPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_ssl_proxies::v1:: + SetSslPolicyRequest const& request) override; + + future> SetSslPolicy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + private: static std::unique_ptr< compute_target_ssl_proxies_v1::TargetSslProxiesRetryPolicy> diff --git a/google/cloud/compute/target_ssl_proxies/v1/internal/target_ssl_proxies_tracing_connection.cc b/google/cloud/compute/target_ssl_proxies/v1/internal/target_ssl_proxies_tracing_connection.cc index b06a172d52038..3bd863f0fd00d 100644 --- a/google/cloud/compute/target_ssl_proxies/v1/internal/target_ssl_proxies_tracing_connection.cc +++ b/google/cloud/compute/target_ssl_proxies/v1/internal/target_ssl_proxies_tracing_connection.cc @@ -46,6 +46,32 @@ TargetSslProxiesTracingConnection::DeleteTargetSslProxy( child_->DeleteTargetSslProxy(request)); } +StatusOr +TargetSslProxiesTracingConnection::DeleteTargetSslProxy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_ssl_proxies::v1:: + DeleteTargetSslProxyRequest const& request) { + auto span = internal::MakeSpan( + "compute_target_ssl_proxies_v1::TargetSslProxiesConnection::" + "DeleteTargetSslProxy"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->DeleteTargetSslProxy(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +TargetSslProxiesTracingConnection::DeleteTargetSslProxy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_target_ssl_proxies_v1::TargetSslProxiesConnection::" + "DeleteTargetSslProxy"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->DeleteTargetSslProxy( + ExperimentalTag{}, operation)); +} + StatusOr TargetSslProxiesTracingConnection::GetTargetSslProxy( google::cloud::cpp::compute::target_ssl_proxies::v1:: @@ -69,6 +95,32 @@ TargetSslProxiesTracingConnection::InsertTargetSslProxy( child_->InsertTargetSslProxy(request)); } +StatusOr +TargetSslProxiesTracingConnection::InsertTargetSslProxy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_ssl_proxies::v1:: + InsertTargetSslProxyRequest const& request) { + auto span = internal::MakeSpan( + "compute_target_ssl_proxies_v1::TargetSslProxiesConnection::" + "InsertTargetSslProxy"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->InsertTargetSslProxy(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +TargetSslProxiesTracingConnection::InsertTargetSslProxy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_target_ssl_proxies_v1::TargetSslProxiesConnection::" + "InsertTargetSslProxy"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->InsertTargetSslProxy( + ExperimentalTag{}, operation)); +} + StreamRange TargetSslProxiesTracingConnection::ListTargetSslProxies( google::cloud::cpp::compute::target_ssl_proxies::v1:: @@ -94,6 +146,32 @@ TargetSslProxiesTracingConnection::SetBackendService( return internal::EndSpan(std::move(span), child_->SetBackendService(request)); } +StatusOr +TargetSslProxiesTracingConnection::SetBackendService( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_ssl_proxies::v1:: + SetBackendServiceRequest const& request) { + auto span = internal::MakeSpan( + "compute_target_ssl_proxies_v1::TargetSslProxiesConnection::" + "SetBackendService"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->SetBackendService(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +TargetSslProxiesTracingConnection::SetBackendService( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_target_ssl_proxies_v1::TargetSslProxiesConnection::" + "SetBackendService"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->SetBackendService(ExperimentalTag{}, operation)); +} + future> TargetSslProxiesTracingConnection::SetCertificateMap( google::cloud::cpp::compute::target_ssl_proxies::v1:: @@ -105,6 +183,32 @@ TargetSslProxiesTracingConnection::SetCertificateMap( return internal::EndSpan(std::move(span), child_->SetCertificateMap(request)); } +StatusOr +TargetSslProxiesTracingConnection::SetCertificateMap( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_ssl_proxies::v1:: + SetCertificateMapRequest const& request) { + auto span = internal::MakeSpan( + "compute_target_ssl_proxies_v1::TargetSslProxiesConnection::" + "SetCertificateMap"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->SetCertificateMap(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +TargetSslProxiesTracingConnection::SetCertificateMap( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_target_ssl_proxies_v1::TargetSslProxiesConnection::" + "SetCertificateMap"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->SetCertificateMap(ExperimentalTag{}, operation)); +} + future> TargetSslProxiesTracingConnection::SetProxyHeader( google::cloud::cpp::compute::target_ssl_proxies::v1:: @@ -116,6 +220,31 @@ TargetSslProxiesTracingConnection::SetProxyHeader( return internal::EndSpan(std::move(span), child_->SetProxyHeader(request)); } +StatusOr +TargetSslProxiesTracingConnection::SetProxyHeader( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_ssl_proxies::v1:: + SetProxyHeaderRequest const& request) { + auto span = internal::MakeSpan( + "compute_target_ssl_proxies_v1::TargetSslProxiesConnection::" + "SetProxyHeader"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->SetProxyHeader(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +TargetSslProxiesTracingConnection::SetProxyHeader( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_target_ssl_proxies_v1::TargetSslProxiesConnection::" + "SetProxyHeader"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->SetProxyHeader(ExperimentalTag{}, operation)); +} + future> TargetSslProxiesTracingConnection::SetSslCertificates( google::cloud::cpp::compute::target_ssl_proxies::v1:: @@ -128,6 +257,32 @@ TargetSslProxiesTracingConnection::SetSslCertificates( child_->SetSslCertificates(request)); } +StatusOr +TargetSslProxiesTracingConnection::SetSslCertificates( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_ssl_proxies::v1:: + SetSslCertificatesRequest const& request) { + auto span = internal::MakeSpan( + "compute_target_ssl_proxies_v1::TargetSslProxiesConnection::" + "SetSslCertificates"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->SetSslCertificates(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +TargetSslProxiesTracingConnection::SetSslCertificates( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_target_ssl_proxies_v1::TargetSslProxiesConnection::" + "SetSslCertificates"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->SetSslCertificates( + ExperimentalTag{}, operation)); +} + future> TargetSslProxiesTracingConnection::SetSslPolicy( google::cloud::cpp::compute::target_ssl_proxies::v1:: @@ -139,6 +294,31 @@ TargetSslProxiesTracingConnection::SetSslPolicy( return internal::EndSpan(std::move(span), child_->SetSslPolicy(request)); } +StatusOr +TargetSslProxiesTracingConnection::SetSslPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_ssl_proxies::v1:: + SetSslPolicyRequest const& request) { + auto span = internal::MakeSpan( + "compute_target_ssl_proxies_v1::TargetSslProxiesConnection::" + "SetSslPolicy"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->SetSslPolicy(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +TargetSslProxiesTracingConnection::SetSslPolicy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_target_ssl_proxies_v1::TargetSslProxiesConnection::" + "SetSslPolicy"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->SetSslPolicy(ExperimentalTag{}, operation)); +} + #endif // GOOGLE_CLOUD_CPP_HAVE_OPENTELEMETRY std::shared_ptr diff --git a/google/cloud/compute/target_ssl_proxies/v1/internal/target_ssl_proxies_tracing_connection.h b/google/cloud/compute/target_ssl_proxies/v1/internal/target_ssl_proxies_tracing_connection.h index 942690b0625ac..5e91893187a8d 100644 --- a/google/cloud/compute/target_ssl_proxies/v1/internal/target_ssl_proxies_tracing_connection.h +++ b/google/cloud/compute/target_ssl_proxies/v1/internal/target_ssl_proxies_tracing_connection.h @@ -45,6 +45,16 @@ class TargetSslProxiesTracingConnection DeleteTargetSslProxy(google::cloud::cpp::compute::target_ssl_proxies::v1:: DeleteTargetSslProxyRequest const& request) override; + StatusOr DeleteTargetSslProxy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_ssl_proxies::v1:: + DeleteTargetSslProxyRequest const& request) override; + + future> + DeleteTargetSslProxy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StatusOr GetTargetSslProxy( google::cloud::cpp::compute::target_ssl_proxies::v1:: GetTargetSslProxyRequest const& request) override; @@ -53,6 +63,16 @@ class TargetSslProxiesTracingConnection InsertTargetSslProxy(google::cloud::cpp::compute::target_ssl_proxies::v1:: InsertTargetSslProxyRequest const& request) override; + StatusOr InsertTargetSslProxy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_ssl_proxies::v1:: + InsertTargetSslProxyRequest const& request) override; + + future> + InsertTargetSslProxy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StreamRange ListTargetSslProxies(google::cloud::cpp::compute::target_ssl_proxies::v1:: ListTargetSslProxiesRequest request) override; @@ -61,22 +81,70 @@ class TargetSslProxiesTracingConnection SetBackendService(google::cloud::cpp::compute::target_ssl_proxies::v1:: SetBackendServiceRequest const& request) override; + StatusOr SetBackendService( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_ssl_proxies::v1:: + SetBackendServiceRequest const& request) override; + + future> + SetBackendService( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> SetCertificateMap(google::cloud::cpp::compute::target_ssl_proxies::v1:: SetCertificateMapRequest const& request) override; + StatusOr SetCertificateMap( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_ssl_proxies::v1:: + SetCertificateMapRequest const& request) override; + + future> + SetCertificateMap( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> SetProxyHeader( google::cloud::cpp::compute::target_ssl_proxies::v1:: SetProxyHeaderRequest const& request) override; + StatusOr SetProxyHeader( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_ssl_proxies::v1:: + SetProxyHeaderRequest const& request) override; + + future> SetProxyHeader( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> SetSslCertificates(google::cloud::cpp::compute::target_ssl_proxies::v1:: SetSslCertificatesRequest const& request) override; + StatusOr SetSslCertificates( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_ssl_proxies::v1:: + SetSslCertificatesRequest const& request) override; + + future> + SetSslCertificates( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> SetSslPolicy( google::cloud::cpp::compute::target_ssl_proxies::v1:: SetSslPolicyRequest const& request) override; + StatusOr SetSslPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_ssl_proxies::v1:: + SetSslPolicyRequest const& request) override; + + future> SetSslPolicy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + private: std::shared_ptr child_; diff --git a/google/cloud/compute/target_ssl_proxies/v1/mocks/mock_target_ssl_proxies_connection.h b/google/cloud/compute/target_ssl_proxies/v1/mocks/mock_target_ssl_proxies_connection.h index 803be35b40d83..b3d52793c66ad 100644 --- a/google/cloud/compute/target_ssl_proxies/v1/mocks/mock_target_ssl_proxies_connection.h +++ b/google/cloud/compute/target_ssl_proxies/v1/mocks/mock_target_ssl_proxies_connection.h @@ -53,6 +53,19 @@ class MockTargetSslProxiesConnection DeleteTargetSslProxyRequest const& request), (override)); + MOCK_METHOD(StatusOr, + DeleteTargetSslProxy, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_ssl_proxies::v1:: + DeleteTargetSslProxyRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteTargetSslProxy, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD(StatusOr, GetTargetSslProxy, (google::cloud::cpp::compute::target_ssl_proxies::v1:: @@ -65,6 +78,19 @@ class MockTargetSslProxiesConnection InsertTargetSslProxyRequest const& request), (override)); + MOCK_METHOD(StatusOr, + InsertTargetSslProxy, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_ssl_proxies::v1:: + InsertTargetSslProxyRequest const& request), + (override)); + + MOCK_METHOD(future>, + InsertTargetSslProxy, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD((StreamRange), ListTargetSslProxies, (google::cloud::cpp::compute::target_ssl_proxies::v1:: @@ -77,29 +103,94 @@ class MockTargetSslProxiesConnection SetBackendServiceRequest const& request), (override)); + MOCK_METHOD(StatusOr, + SetBackendService, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_ssl_proxies::v1:: + SetBackendServiceRequest const& request), + (override)); + + MOCK_METHOD(future>, + SetBackendService, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD(future>, SetCertificateMap, (google::cloud::cpp::compute::target_ssl_proxies::v1:: SetCertificateMapRequest const& request), (override)); + MOCK_METHOD(StatusOr, + SetCertificateMap, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_ssl_proxies::v1:: + SetCertificateMapRequest const& request), + (override)); + + MOCK_METHOD(future>, + SetCertificateMap, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD(future>, SetProxyHeader, (google::cloud::cpp::compute::target_ssl_proxies::v1:: SetProxyHeaderRequest const& request), (override)); + MOCK_METHOD(StatusOr, + SetProxyHeader, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_ssl_proxies::v1:: + SetProxyHeaderRequest const& request), + (override)); + + MOCK_METHOD(future>, + SetProxyHeader, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD(future>, SetSslCertificates, (google::cloud::cpp::compute::target_ssl_proxies::v1:: SetSslCertificatesRequest const& request), (override)); + MOCK_METHOD(StatusOr, + SetSslCertificates, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_ssl_proxies::v1:: + SetSslCertificatesRequest const& request), + (override)); + + MOCK_METHOD(future>, + SetSslCertificates, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD(future>, SetSslPolicy, (google::cloud::cpp::compute::target_ssl_proxies::v1:: SetSslPolicyRequest const& request), (override)); + + MOCK_METHOD(StatusOr, + SetSslPolicy, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_ssl_proxies::v1:: + SetSslPolicyRequest const& request), + (override)); + + MOCK_METHOD(future>, + SetSslPolicy, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); }; GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END diff --git a/google/cloud/compute/target_ssl_proxies/v1/target_ssl_proxies_connection.cc b/google/cloud/compute/target_ssl_proxies/v1/target_ssl_proxies_connection.cc index 8e5e615d54c0d..7fbe5bfc7d6c5 100644 --- a/google/cloud/compute/target_ssl_proxies/v1/target_ssl_proxies_connection.cc +++ b/google/cloud/compute/target_ssl_proxies/v1/target_ssl_proxies_connection.cc @@ -45,6 +45,23 @@ TargetSslProxiesConnection::DeleteTargetSslProxy( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +TargetSslProxiesConnection::DeleteTargetSslProxy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_ssl_proxies::v1:: + DeleteTargetSslProxyRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +TargetSslProxiesConnection::DeleteTargetSslProxy( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr TargetSslProxiesConnection::GetTargetSslProxy( google::cloud::cpp::compute::target_ssl_proxies::v1:: @@ -61,6 +78,23 @@ TargetSslProxiesConnection::InsertTargetSslProxy( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +TargetSslProxiesConnection::InsertTargetSslProxy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_ssl_proxies::v1:: + InsertTargetSslProxyRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +TargetSslProxiesConnection::InsertTargetSslProxy( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StreamRange TargetSslProxiesConnection::ListTargetSslProxies( google::cloud::cpp::compute::target_ssl_proxies::v1:: @@ -78,6 +112,23 @@ TargetSslProxiesConnection::SetBackendService( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +TargetSslProxiesConnection::SetBackendService( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_ssl_proxies::v1:: + SetBackendServiceRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +TargetSslProxiesConnection::SetBackendService( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> TargetSslProxiesConnection::SetCertificateMap( google::cloud::cpp::compute::target_ssl_proxies::v1:: @@ -87,6 +138,23 @@ TargetSslProxiesConnection::SetCertificateMap( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +TargetSslProxiesConnection::SetCertificateMap( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_ssl_proxies::v1:: + SetCertificateMapRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +TargetSslProxiesConnection::SetCertificateMap( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> TargetSslProxiesConnection::SetProxyHeader( google::cloud::cpp::compute::target_ssl_proxies::v1:: @@ -96,6 +164,23 @@ TargetSslProxiesConnection::SetProxyHeader( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +TargetSslProxiesConnection::SetProxyHeader( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_ssl_proxies::v1:: + SetProxyHeaderRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +TargetSslProxiesConnection::SetProxyHeader( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> TargetSslProxiesConnection::SetSslCertificates( google::cloud::cpp::compute::target_ssl_proxies::v1:: @@ -105,10 +190,44 @@ TargetSslProxiesConnection::SetSslCertificates( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +TargetSslProxiesConnection::SetSslCertificates( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_ssl_proxies::v1:: + SetSslCertificatesRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> +TargetSslProxiesConnection::SetSslCertificates( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +TargetSslProxiesConnection::SetSslPolicy( + google::cloud::cpp::compute::target_ssl_proxies::v1:: + SetSslPolicyRequest const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +StatusOr TargetSslProxiesConnection::SetSslPolicy( + ExperimentalTag, NoAwaitTag, google::cloud::cpp::compute::target_ssl_proxies::v1:: SetSslPolicyRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +TargetSslProxiesConnection::SetSslPolicy( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { return google::cloud::make_ready_future< StatusOr>( Status(StatusCode::kUnimplemented, "not implemented")); diff --git a/google/cloud/compute/target_ssl_proxies/v1/target_ssl_proxies_connection.h b/google/cloud/compute/target_ssl_proxies/v1/target_ssl_proxies_connection.h index bba723d16dbdf..534cb019ce861 100644 --- a/google/cloud/compute/target_ssl_proxies/v1/target_ssl_proxies_connection.h +++ b/google/cloud/compute/target_ssl_proxies/v1/target_ssl_proxies_connection.h @@ -22,8 +22,10 @@ #include "google/cloud/compute/target_ssl_proxies/v1/internal/target_ssl_proxies_retry_traits.h" #include "google/cloud/compute/target_ssl_proxies/v1/target_ssl_proxies_connection_idempotency_policy.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/internal/retry_policy_impl.h" +#include "google/cloud/no_await_tag.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" #include "google/cloud/status_or.h" @@ -190,6 +192,16 @@ class TargetSslProxiesConnection { DeleteTargetSslProxy(google::cloud::cpp::compute::target_ssl_proxies::v1:: DeleteTargetSslProxyRequest const& request); + virtual StatusOr + DeleteTargetSslProxy(ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_ssl_proxies::v1:: + DeleteTargetSslProxyRequest const& request); + + virtual future> + DeleteTargetSslProxy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual StatusOr GetTargetSslProxy(google::cloud::cpp::compute::target_ssl_proxies::v1:: GetTargetSslProxyRequest const& request); @@ -198,6 +210,16 @@ class TargetSslProxiesConnection { InsertTargetSslProxy(google::cloud::cpp::compute::target_ssl_proxies::v1:: InsertTargetSslProxyRequest const& request); + virtual StatusOr + InsertTargetSslProxy(ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_ssl_proxies::v1:: + InsertTargetSslProxyRequest const& request); + + virtual future> + InsertTargetSslProxy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual StreamRange ListTargetSslProxies(google::cloud::cpp::compute::target_ssl_proxies::v1:: ListTargetSslProxiesRequest request); @@ -206,21 +228,69 @@ class TargetSslProxiesConnection { SetBackendService(google::cloud::cpp::compute::target_ssl_proxies::v1:: SetBackendServiceRequest const& request); + virtual StatusOr + SetBackendService(ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_ssl_proxies::v1:: + SetBackendServiceRequest const& request); + + virtual future> + SetBackendService( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual future> SetCertificateMap(google::cloud::cpp::compute::target_ssl_proxies::v1:: SetCertificateMapRequest const& request); + virtual StatusOr + SetCertificateMap(ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_ssl_proxies::v1:: + SetCertificateMapRequest const& request); + + virtual future> + SetCertificateMap( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual future> SetProxyHeader(google::cloud::cpp::compute::target_ssl_proxies::v1:: SetProxyHeaderRequest const& request); + virtual StatusOr SetProxyHeader( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_ssl_proxies::v1:: + SetProxyHeaderRequest const& request); + + virtual future> + SetProxyHeader(ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual future> SetSslCertificates(google::cloud::cpp::compute::target_ssl_proxies::v1:: SetSslCertificatesRequest const& request); + virtual StatusOr + SetSslCertificates(ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_ssl_proxies::v1:: + SetSslCertificatesRequest const& request); + + virtual future> + SetSslCertificates( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual future> SetSslPolicy(google::cloud::cpp::compute::target_ssl_proxies::v1:: SetSslPolicyRequest const& request); + + virtual StatusOr SetSslPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_ssl_proxies::v1:: + SetSslPolicyRequest const& request); + + virtual future> + SetSslPolicy(ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); }; GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END diff --git a/google/cloud/compute/target_tcp_proxies/v1/internal/target_tcp_proxies_rest_connection_impl.cc b/google/cloud/compute/target_tcp_proxies/v1/internal/target_tcp_proxies_rest_connection_impl.cc index 9b24e06e401f2..ef0a8b1554e5a 100644 --- a/google/cloud/compute/target_tcp_proxies/v1/internal/target_tcp_proxies_rest_connection_impl.cc +++ b/google/cloud/compute/target_tcp_proxies/v1/internal/target_tcp_proxies_rest_connection_impl.cc @@ -23,6 +23,7 @@ #include "google/cloud/internal/async_rest_long_running_operation_custom.h" #include "google/cloud/internal/extract_long_running_result.h" #include "google/cloud/internal/pagination_range.h" +#include "google/cloud/internal/rest_lro_helpers.h" #include "google/cloud/internal/rest_retry_loop.h" #include "google/cloud/rest_options.h" #include @@ -145,6 +146,77 @@ TargetTcpProxiesRestConnectionImpl::DeleteTargetTcpProxy( }); } +StatusOr +TargetTcpProxiesRestConnectionImpl::DeleteTargetTcpProxy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_tcp_proxies::v1:: + DeleteTargetTcpProxyRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteTargetTcpProxy(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::target_tcp_proxies::v1:: + DeleteTargetTcpProxyRequest const& request) { + return stub_->DeleteTargetTcpProxy(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +TargetTcpProxiesRestConnectionImpl::DeleteTargetTcpProxy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::global_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }); +} + StatusOr TargetTcpProxiesRestConnectionImpl::GetTargetTcpProxy( google::cloud::cpp::compute::target_tcp_proxies::v1:: @@ -219,6 +291,77 @@ TargetTcpProxiesRestConnectionImpl::InsertTargetTcpProxy( }); } +StatusOr +TargetTcpProxiesRestConnectionImpl::InsertTargetTcpProxy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_tcp_proxies::v1:: + InsertTargetTcpProxyRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->InsertTargetTcpProxy(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::target_tcp_proxies::v1:: + InsertTargetTcpProxyRequest const& request) { + return stub_->InsertTargetTcpProxy(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +TargetTcpProxiesRestConnectionImpl::InsertTargetTcpProxy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::global_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }); +} + StreamRange TargetTcpProxiesRestConnectionImpl::ListTargetTcpProxies( google::cloud::cpp::compute::target_tcp_proxies::v1:: @@ -316,6 +459,77 @@ TargetTcpProxiesRestConnectionImpl::SetBackendService( }); } +StatusOr +TargetTcpProxiesRestConnectionImpl::SetBackendService( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_tcp_proxies::v1:: + SetBackendServiceRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->SetBackendService(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::target_tcp_proxies::v1:: + SetBackendServiceRequest const& request) { + return stub_->SetBackendService(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +TargetTcpProxiesRestConnectionImpl::SetBackendService( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::global_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }); +} + future> TargetTcpProxiesRestConnectionImpl::SetProxyHeader( google::cloud::cpp::compute::target_tcp_proxies::v1:: @@ -374,6 +588,77 @@ TargetTcpProxiesRestConnectionImpl::SetProxyHeader( }); } +StatusOr +TargetTcpProxiesRestConnectionImpl::SetProxyHeader( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_tcp_proxies::v1:: + SetProxyHeaderRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->SetProxyHeader(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::target_tcp_proxies::v1:: + SetProxyHeaderRequest const& request) { + return stub_->SetProxyHeader(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +TargetTcpProxiesRestConnectionImpl::SetProxyHeader( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::global_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace compute_target_tcp_proxies_v1_internal } // namespace cloud diff --git a/google/cloud/compute/target_tcp_proxies/v1/internal/target_tcp_proxies_rest_connection_impl.h b/google/cloud/compute/target_tcp_proxies/v1/internal/target_tcp_proxies_rest_connection_impl.h index 4d39b29ba8fe5..d1ed4a40abce7 100644 --- a/google/cloud/compute/target_tcp_proxies/v1/internal/target_tcp_proxies_rest_connection_impl.h +++ b/google/cloud/compute/target_tcp_proxies/v1/internal/target_tcp_proxies_rest_connection_impl.h @@ -62,6 +62,16 @@ class TargetTcpProxiesRestConnectionImpl DeleteTargetTcpProxy(google::cloud::cpp::compute::target_tcp_proxies::v1:: DeleteTargetTcpProxyRequest const& request) override; + StatusOr DeleteTargetTcpProxy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_tcp_proxies::v1:: + DeleteTargetTcpProxyRequest const& request) override; + + future> + DeleteTargetTcpProxy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StatusOr GetTargetTcpProxy( google::cloud::cpp::compute::target_tcp_proxies::v1:: GetTargetTcpProxyRequest const& request) override; @@ -70,6 +80,16 @@ class TargetTcpProxiesRestConnectionImpl InsertTargetTcpProxy(google::cloud::cpp::compute::target_tcp_proxies::v1:: InsertTargetTcpProxyRequest const& request) override; + StatusOr InsertTargetTcpProxy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_tcp_proxies::v1:: + InsertTargetTcpProxyRequest const& request) override; + + future> + InsertTargetTcpProxy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StreamRange ListTargetTcpProxies(google::cloud::cpp::compute::target_tcp_proxies::v1:: ListTargetTcpProxiesRequest request) override; @@ -78,10 +98,29 @@ class TargetTcpProxiesRestConnectionImpl SetBackendService(google::cloud::cpp::compute::target_tcp_proxies::v1:: SetBackendServiceRequest const& request) override; + StatusOr SetBackendService( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_tcp_proxies::v1:: + SetBackendServiceRequest const& request) override; + + future> + SetBackendService( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> SetProxyHeader( google::cloud::cpp::compute::target_tcp_proxies::v1:: SetProxyHeaderRequest const& request) override; + StatusOr SetProxyHeader( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_tcp_proxies::v1:: + SetProxyHeaderRequest const& request) override; + + future> SetProxyHeader( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + private: static std::unique_ptr< compute_target_tcp_proxies_v1::TargetTcpProxiesRetryPolicy> diff --git a/google/cloud/compute/target_tcp_proxies/v1/internal/target_tcp_proxies_tracing_connection.cc b/google/cloud/compute/target_tcp_proxies/v1/internal/target_tcp_proxies_tracing_connection.cc index 4ffe19286418d..9957fd8af73be 100644 --- a/google/cloud/compute/target_tcp_proxies/v1/internal/target_tcp_proxies_tracing_connection.cc +++ b/google/cloud/compute/target_tcp_proxies/v1/internal/target_tcp_proxies_tracing_connection.cc @@ -62,6 +62,32 @@ TargetTcpProxiesTracingConnection::DeleteTargetTcpProxy( child_->DeleteTargetTcpProxy(request)); } +StatusOr +TargetTcpProxiesTracingConnection::DeleteTargetTcpProxy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_tcp_proxies::v1:: + DeleteTargetTcpProxyRequest const& request) { + auto span = internal::MakeSpan( + "compute_target_tcp_proxies_v1::TargetTcpProxiesConnection::" + "DeleteTargetTcpProxy"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->DeleteTargetTcpProxy(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +TargetTcpProxiesTracingConnection::DeleteTargetTcpProxy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_target_tcp_proxies_v1::TargetTcpProxiesConnection::" + "DeleteTargetTcpProxy"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->DeleteTargetTcpProxy( + ExperimentalTag{}, operation)); +} + StatusOr TargetTcpProxiesTracingConnection::GetTargetTcpProxy( google::cloud::cpp::compute::target_tcp_proxies::v1:: @@ -85,6 +111,32 @@ TargetTcpProxiesTracingConnection::InsertTargetTcpProxy( child_->InsertTargetTcpProxy(request)); } +StatusOr +TargetTcpProxiesTracingConnection::InsertTargetTcpProxy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_tcp_proxies::v1:: + InsertTargetTcpProxyRequest const& request) { + auto span = internal::MakeSpan( + "compute_target_tcp_proxies_v1::TargetTcpProxiesConnection::" + "InsertTargetTcpProxy"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->InsertTargetTcpProxy(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +TargetTcpProxiesTracingConnection::InsertTargetTcpProxy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_target_tcp_proxies_v1::TargetTcpProxiesConnection::" + "InsertTargetTcpProxy"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->InsertTargetTcpProxy( + ExperimentalTag{}, operation)); +} + StreamRange TargetTcpProxiesTracingConnection::ListTargetTcpProxies( google::cloud::cpp::compute::target_tcp_proxies::v1:: @@ -110,6 +162,32 @@ TargetTcpProxiesTracingConnection::SetBackendService( return internal::EndSpan(std::move(span), child_->SetBackendService(request)); } +StatusOr +TargetTcpProxiesTracingConnection::SetBackendService( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_tcp_proxies::v1:: + SetBackendServiceRequest const& request) { + auto span = internal::MakeSpan( + "compute_target_tcp_proxies_v1::TargetTcpProxiesConnection::" + "SetBackendService"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->SetBackendService(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +TargetTcpProxiesTracingConnection::SetBackendService( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_target_tcp_proxies_v1::TargetTcpProxiesConnection::" + "SetBackendService"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->SetBackendService(ExperimentalTag{}, operation)); +} + future> TargetTcpProxiesTracingConnection::SetProxyHeader( google::cloud::cpp::compute::target_tcp_proxies::v1:: @@ -121,6 +199,31 @@ TargetTcpProxiesTracingConnection::SetProxyHeader( return internal::EndSpan(std::move(span), child_->SetProxyHeader(request)); } +StatusOr +TargetTcpProxiesTracingConnection::SetProxyHeader( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_tcp_proxies::v1:: + SetProxyHeaderRequest const& request) { + auto span = internal::MakeSpan( + "compute_target_tcp_proxies_v1::TargetTcpProxiesConnection::" + "SetProxyHeader"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->SetProxyHeader(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +TargetTcpProxiesTracingConnection::SetProxyHeader( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_target_tcp_proxies_v1::TargetTcpProxiesConnection::" + "SetProxyHeader"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->SetProxyHeader(ExperimentalTag{}, operation)); +} + #endif // GOOGLE_CLOUD_CPP_HAVE_OPENTELEMETRY std::shared_ptr diff --git a/google/cloud/compute/target_tcp_proxies/v1/internal/target_tcp_proxies_tracing_connection.h b/google/cloud/compute/target_tcp_proxies/v1/internal/target_tcp_proxies_tracing_connection.h index 57083b895ab10..97a0fdc28a7af 100644 --- a/google/cloud/compute/target_tcp_proxies/v1/internal/target_tcp_proxies_tracing_connection.h +++ b/google/cloud/compute/target_tcp_proxies/v1/internal/target_tcp_proxies_tracing_connection.h @@ -51,6 +51,16 @@ class TargetTcpProxiesTracingConnection DeleteTargetTcpProxy(google::cloud::cpp::compute::target_tcp_proxies::v1:: DeleteTargetTcpProxyRequest const& request) override; + StatusOr DeleteTargetTcpProxy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_tcp_proxies::v1:: + DeleteTargetTcpProxyRequest const& request) override; + + future> + DeleteTargetTcpProxy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StatusOr GetTargetTcpProxy( google::cloud::cpp::compute::target_tcp_proxies::v1:: GetTargetTcpProxyRequest const& request) override; @@ -59,6 +69,16 @@ class TargetTcpProxiesTracingConnection InsertTargetTcpProxy(google::cloud::cpp::compute::target_tcp_proxies::v1:: InsertTargetTcpProxyRequest const& request) override; + StatusOr InsertTargetTcpProxy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_tcp_proxies::v1:: + InsertTargetTcpProxyRequest const& request) override; + + future> + InsertTargetTcpProxy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StreamRange ListTargetTcpProxies(google::cloud::cpp::compute::target_tcp_proxies::v1:: ListTargetTcpProxiesRequest request) override; @@ -67,10 +87,29 @@ class TargetTcpProxiesTracingConnection SetBackendService(google::cloud::cpp::compute::target_tcp_proxies::v1:: SetBackendServiceRequest const& request) override; + StatusOr SetBackendService( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_tcp_proxies::v1:: + SetBackendServiceRequest const& request) override; + + future> + SetBackendService( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> SetProxyHeader( google::cloud::cpp::compute::target_tcp_proxies::v1:: SetProxyHeaderRequest const& request) override; + StatusOr SetProxyHeader( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_tcp_proxies::v1:: + SetProxyHeaderRequest const& request) override; + + future> SetProxyHeader( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + private: std::shared_ptr child_; diff --git a/google/cloud/compute/target_tcp_proxies/v1/mocks/mock_target_tcp_proxies_connection.h b/google/cloud/compute/target_tcp_proxies/v1/mocks/mock_target_tcp_proxies_connection.h index 50cd4c080c440..b3bef2911c810 100644 --- a/google/cloud/compute/target_tcp_proxies/v1/mocks/mock_target_tcp_proxies_connection.h +++ b/google/cloud/compute/target_tcp_proxies/v1/mocks/mock_target_tcp_proxies_connection.h @@ -61,6 +61,19 @@ class MockTargetTcpProxiesConnection DeleteTargetTcpProxyRequest const& request), (override)); + MOCK_METHOD(StatusOr, + DeleteTargetTcpProxy, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_tcp_proxies::v1:: + DeleteTargetTcpProxyRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteTargetTcpProxy, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD(StatusOr, GetTargetTcpProxy, (google::cloud::cpp::compute::target_tcp_proxies::v1:: @@ -73,6 +86,19 @@ class MockTargetTcpProxiesConnection InsertTargetTcpProxyRequest const& request), (override)); + MOCK_METHOD(StatusOr, + InsertTargetTcpProxy, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_tcp_proxies::v1:: + InsertTargetTcpProxyRequest const& request), + (override)); + + MOCK_METHOD(future>, + InsertTargetTcpProxy, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD((StreamRange), ListTargetTcpProxies, (google::cloud::cpp::compute::target_tcp_proxies::v1:: @@ -85,11 +111,37 @@ class MockTargetTcpProxiesConnection SetBackendServiceRequest const& request), (override)); + MOCK_METHOD(StatusOr, + SetBackendService, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_tcp_proxies::v1:: + SetBackendServiceRequest const& request), + (override)); + + MOCK_METHOD(future>, + SetBackendService, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD(future>, SetProxyHeader, (google::cloud::cpp::compute::target_tcp_proxies::v1:: SetProxyHeaderRequest const& request), (override)); + + MOCK_METHOD(StatusOr, + SetProxyHeader, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_tcp_proxies::v1:: + SetProxyHeaderRequest const& request), + (override)); + + MOCK_METHOD(future>, + SetProxyHeader, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); }; GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END diff --git a/google/cloud/compute/target_tcp_proxies/v1/target_tcp_proxies_connection.cc b/google/cloud/compute/target_tcp_proxies/v1/target_tcp_proxies_connection.cc index c27f64c50ba94..45bc7481428b5 100644 --- a/google/cloud/compute/target_tcp_proxies/v1/target_tcp_proxies_connection.cc +++ b/google/cloud/compute/target_tcp_proxies/v1/target_tcp_proxies_connection.cc @@ -55,6 +55,23 @@ TargetTcpProxiesConnection::DeleteTargetTcpProxy( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +TargetTcpProxiesConnection::DeleteTargetTcpProxy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_tcp_proxies::v1:: + DeleteTargetTcpProxyRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +TargetTcpProxiesConnection::DeleteTargetTcpProxy( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr TargetTcpProxiesConnection::GetTargetTcpProxy( google::cloud::cpp::compute::target_tcp_proxies::v1:: @@ -71,6 +88,23 @@ TargetTcpProxiesConnection::InsertTargetTcpProxy( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +TargetTcpProxiesConnection::InsertTargetTcpProxy( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_tcp_proxies::v1:: + InsertTargetTcpProxyRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +TargetTcpProxiesConnection::InsertTargetTcpProxy( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StreamRange TargetTcpProxiesConnection::ListTargetTcpProxies( google::cloud::cpp::compute::target_tcp_proxies::v1:: @@ -88,6 +122,23 @@ TargetTcpProxiesConnection::SetBackendService( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +TargetTcpProxiesConnection::SetBackendService( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_tcp_proxies::v1:: + SetBackendServiceRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +TargetTcpProxiesConnection::SetBackendService( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> TargetTcpProxiesConnection::SetProxyHeader( google::cloud::cpp::compute::target_tcp_proxies::v1:: @@ -97,6 +148,23 @@ TargetTcpProxiesConnection::SetProxyHeader( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +TargetTcpProxiesConnection::SetProxyHeader( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_tcp_proxies::v1:: + SetProxyHeaderRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +TargetTcpProxiesConnection::SetProxyHeader( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace compute_target_tcp_proxies_v1 } // namespace cloud diff --git a/google/cloud/compute/target_tcp_proxies/v1/target_tcp_proxies_connection.h b/google/cloud/compute/target_tcp_proxies/v1/target_tcp_proxies_connection.h index c0a362b985cc7..e98180bcfffb8 100644 --- a/google/cloud/compute/target_tcp_proxies/v1/target_tcp_proxies_connection.h +++ b/google/cloud/compute/target_tcp_proxies/v1/target_tcp_proxies_connection.h @@ -22,8 +22,10 @@ #include "google/cloud/compute/target_tcp_proxies/v1/internal/target_tcp_proxies_retry_traits.h" #include "google/cloud/compute/target_tcp_proxies/v1/target_tcp_proxies_connection_idempotency_policy.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/internal/retry_policy_impl.h" +#include "google/cloud/no_await_tag.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" #include "google/cloud/status_or.h" @@ -196,6 +198,16 @@ class TargetTcpProxiesConnection { DeleteTargetTcpProxy(google::cloud::cpp::compute::target_tcp_proxies::v1:: DeleteTargetTcpProxyRequest const& request); + virtual StatusOr + DeleteTargetTcpProxy(ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_tcp_proxies::v1:: + DeleteTargetTcpProxyRequest const& request); + + virtual future> + DeleteTargetTcpProxy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual StatusOr GetTargetTcpProxy(google::cloud::cpp::compute::target_tcp_proxies::v1:: GetTargetTcpProxyRequest const& request); @@ -204,6 +216,16 @@ class TargetTcpProxiesConnection { InsertTargetTcpProxy(google::cloud::cpp::compute::target_tcp_proxies::v1:: InsertTargetTcpProxyRequest const& request); + virtual StatusOr + InsertTargetTcpProxy(ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_tcp_proxies::v1:: + InsertTargetTcpProxyRequest const& request); + + virtual future> + InsertTargetTcpProxy( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual StreamRange ListTargetTcpProxies(google::cloud::cpp::compute::target_tcp_proxies::v1:: ListTargetTcpProxiesRequest request); @@ -212,9 +234,28 @@ class TargetTcpProxiesConnection { SetBackendService(google::cloud::cpp::compute::target_tcp_proxies::v1:: SetBackendServiceRequest const& request); + virtual StatusOr + SetBackendService(ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_tcp_proxies::v1:: + SetBackendServiceRequest const& request); + + virtual future> + SetBackendService( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual future> SetProxyHeader(google::cloud::cpp::compute::target_tcp_proxies::v1:: SetProxyHeaderRequest const& request); + + virtual StatusOr SetProxyHeader( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_tcp_proxies::v1:: + SetProxyHeaderRequest const& request); + + virtual future> + SetProxyHeader(ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); }; GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END diff --git a/google/cloud/compute/target_vpn_gateways/v1/internal/target_vpn_gateways_rest_connection_impl.cc b/google/cloud/compute/target_vpn_gateways/v1/internal/target_vpn_gateways_rest_connection_impl.cc index be6e1cd0f847a..9fb23efb841e2 100644 --- a/google/cloud/compute/target_vpn_gateways/v1/internal/target_vpn_gateways_rest_connection_impl.cc +++ b/google/cloud/compute/target_vpn_gateways/v1/internal/target_vpn_gateways_rest_connection_impl.cc @@ -23,6 +23,7 @@ #include "google/cloud/internal/async_rest_long_running_operation_custom.h" #include "google/cloud/internal/extract_long_running_result.h" #include "google/cloud/internal/pagination_range.h" +#include "google/cloud/internal/rest_lro_helpers.h" #include "google/cloud/internal/rest_retry_loop.h" #include "google/cloud/rest_options.h" #include @@ -147,6 +148,79 @@ TargetVpnGatewaysRestConnectionImpl::DeleteTargetVpnGateway( }); } +StatusOr +TargetVpnGatewaysRestConnectionImpl::DeleteTargetVpnGateway( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_vpn_gateways::v1:: + DeleteTargetVpnGatewayRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteTargetVpnGateway(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::target_vpn_gateways::v1:: + DeleteTargetVpnGatewayRequest const& request) { + return stub_->DeleteTargetVpnGateway(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +TargetVpnGatewaysRestConnectionImpl::DeleteTargetVpnGateway( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::region_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }); +} + StatusOr TargetVpnGatewaysRestConnectionImpl::GetTargetVpnGateway( google::cloud::cpp::compute::target_vpn_gateways::v1:: @@ -223,6 +297,79 @@ TargetVpnGatewaysRestConnectionImpl::InsertTargetVpnGateway( }); } +StatusOr +TargetVpnGatewaysRestConnectionImpl::InsertTargetVpnGateway( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_vpn_gateways::v1:: + InsertTargetVpnGatewayRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->InsertTargetVpnGateway(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::target_vpn_gateways::v1:: + InsertTargetVpnGatewayRequest const& request) { + return stub_->InsertTargetVpnGateway(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +TargetVpnGatewaysRestConnectionImpl::InsertTargetVpnGateway( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::region_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }); +} + StreamRange TargetVpnGatewaysRestConnectionImpl::ListTargetVpnGateways( google::cloud::cpp::compute::target_vpn_gateways::v1:: @@ -323,6 +470,79 @@ TargetVpnGatewaysRestConnectionImpl::SetLabels( }); } +StatusOr +TargetVpnGatewaysRestConnectionImpl::SetLabels( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_vpn_gateways::v1:: + SetLabelsRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->SetLabels(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::target_vpn_gateways::v1:: + SetLabelsRequest const& request) { + return stub_->SetLabels(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +TargetVpnGatewaysRestConnectionImpl::SetLabels( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::region_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace compute_target_vpn_gateways_v1_internal } // namespace cloud diff --git a/google/cloud/compute/target_vpn_gateways/v1/internal/target_vpn_gateways_rest_connection_impl.h b/google/cloud/compute/target_vpn_gateways/v1/internal/target_vpn_gateways_rest_connection_impl.h index e3b57eb28c587..024a25d2d6531 100644 --- a/google/cloud/compute/target_vpn_gateways/v1/internal/target_vpn_gateways_rest_connection_impl.h +++ b/google/cloud/compute/target_vpn_gateways/v1/internal/target_vpn_gateways_rest_connection_impl.h @@ -64,6 +64,16 @@ class TargetVpnGatewaysRestConnectionImpl google::cloud::cpp::compute::target_vpn_gateways::v1:: DeleteTargetVpnGatewayRequest const& request) override; + StatusOr DeleteTargetVpnGateway( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_vpn_gateways::v1:: + DeleteTargetVpnGatewayRequest const& request) override; + + future> + DeleteTargetVpnGateway( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StatusOr GetTargetVpnGateway(google::cloud::cpp::compute::target_vpn_gateways::v1:: GetTargetVpnGatewayRequest const& request) override; @@ -73,6 +83,16 @@ class TargetVpnGatewaysRestConnectionImpl google::cloud::cpp::compute::target_vpn_gateways::v1:: InsertTargetVpnGatewayRequest const& request) override; + StatusOr InsertTargetVpnGateway( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_vpn_gateways::v1:: + InsertTargetVpnGatewayRequest const& request) override; + + future> + InsertTargetVpnGateway( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StreamRange ListTargetVpnGateways(google::cloud::cpp::compute::target_vpn_gateways::v1:: ListTargetVpnGatewaysRequest request) override; @@ -81,6 +101,15 @@ class TargetVpnGatewaysRestConnectionImpl google::cloud::cpp::compute::target_vpn_gateways::v1:: SetLabelsRequest const& request) override; + StatusOr SetLabels( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_vpn_gateways::v1:: + SetLabelsRequest const& request) override; + + future> SetLabels( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + private: static std::unique_ptr< compute_target_vpn_gateways_v1::TargetVpnGatewaysRetryPolicy> diff --git a/google/cloud/compute/target_vpn_gateways/v1/internal/target_vpn_gateways_tracing_connection.cc b/google/cloud/compute/target_vpn_gateways/v1/internal/target_vpn_gateways_tracing_connection.cc index 0698f5ce75e58..884702b9455ea 100644 --- a/google/cloud/compute/target_vpn_gateways/v1/internal/target_vpn_gateways_tracing_connection.cc +++ b/google/cloud/compute/target_vpn_gateways/v1/internal/target_vpn_gateways_tracing_connection.cc @@ -62,6 +62,32 @@ TargetVpnGatewaysTracingConnection::DeleteTargetVpnGateway( child_->DeleteTargetVpnGateway(request)); } +StatusOr +TargetVpnGatewaysTracingConnection::DeleteTargetVpnGateway( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_vpn_gateways::v1:: + DeleteTargetVpnGatewayRequest const& request) { + auto span = internal::MakeSpan( + "compute_target_vpn_gateways_v1::TargetVpnGatewaysConnection::" + "DeleteTargetVpnGateway"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->DeleteTargetVpnGateway(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +TargetVpnGatewaysTracingConnection::DeleteTargetVpnGateway( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_target_vpn_gateways_v1::TargetVpnGatewaysConnection::" + "DeleteTargetVpnGateway"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->DeleteTargetVpnGateway( + ExperimentalTag{}, operation)); +} + StatusOr TargetVpnGatewaysTracingConnection::GetTargetVpnGateway( google::cloud::cpp::compute::target_vpn_gateways::v1:: @@ -85,6 +111,32 @@ TargetVpnGatewaysTracingConnection::InsertTargetVpnGateway( child_->InsertTargetVpnGateway(request)); } +StatusOr +TargetVpnGatewaysTracingConnection::InsertTargetVpnGateway( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_vpn_gateways::v1:: + InsertTargetVpnGatewayRequest const& request) { + auto span = internal::MakeSpan( + "compute_target_vpn_gateways_v1::TargetVpnGatewaysConnection::" + "InsertTargetVpnGateway"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->InsertTargetVpnGateway(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +TargetVpnGatewaysTracingConnection::InsertTargetVpnGateway( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_target_vpn_gateways_v1::TargetVpnGatewaysConnection::" + "InsertTargetVpnGateway"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->InsertTargetVpnGateway( + ExperimentalTag{}, operation)); +} + StreamRange TargetVpnGatewaysTracingConnection::ListTargetVpnGateways( google::cloud::cpp::compute::target_vpn_gateways::v1:: @@ -109,6 +161,29 @@ TargetVpnGatewaysTracingConnection::SetLabels( return internal::EndSpan(std::move(span), child_->SetLabels(request)); } +StatusOr +TargetVpnGatewaysTracingConnection::SetLabels( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_vpn_gateways::v1:: + SetLabelsRequest const& request) { + auto span = internal::MakeSpan( + "compute_target_vpn_gateways_v1::TargetVpnGatewaysConnection::SetLabels"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->SetLabels(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +TargetVpnGatewaysTracingConnection::SetLabels( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_target_vpn_gateways_v1::TargetVpnGatewaysConnection::SetLabels"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->SetLabels(ExperimentalTag{}, operation)); +} + #endif // GOOGLE_CLOUD_CPP_HAVE_OPENTELEMETRY std::shared_ptr diff --git a/google/cloud/compute/target_vpn_gateways/v1/internal/target_vpn_gateways_tracing_connection.h b/google/cloud/compute/target_vpn_gateways/v1/internal/target_vpn_gateways_tracing_connection.h index 2944e2b65d91a..01ee23ff5765c 100644 --- a/google/cloud/compute/target_vpn_gateways/v1/internal/target_vpn_gateways_tracing_connection.h +++ b/google/cloud/compute/target_vpn_gateways/v1/internal/target_vpn_gateways_tracing_connection.h @@ -54,6 +54,16 @@ class TargetVpnGatewaysTracingConnection google::cloud::cpp::compute::target_vpn_gateways::v1:: DeleteTargetVpnGatewayRequest const& request) override; + StatusOr DeleteTargetVpnGateway( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_vpn_gateways::v1:: + DeleteTargetVpnGatewayRequest const& request) override; + + future> + DeleteTargetVpnGateway( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StatusOr GetTargetVpnGateway(google::cloud::cpp::compute::target_vpn_gateways::v1:: GetTargetVpnGatewayRequest const& request) override; @@ -63,6 +73,16 @@ class TargetVpnGatewaysTracingConnection google::cloud::cpp::compute::target_vpn_gateways::v1:: InsertTargetVpnGatewayRequest const& request) override; + StatusOr InsertTargetVpnGateway( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_vpn_gateways::v1:: + InsertTargetVpnGatewayRequest const& request) override; + + future> + InsertTargetVpnGateway( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StreamRange ListTargetVpnGateways(google::cloud::cpp::compute::target_vpn_gateways::v1:: ListTargetVpnGatewaysRequest request) override; @@ -71,6 +91,15 @@ class TargetVpnGatewaysTracingConnection google::cloud::cpp::compute::target_vpn_gateways::v1:: SetLabelsRequest const& request) override; + StatusOr SetLabels( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_vpn_gateways::v1:: + SetLabelsRequest const& request) override; + + future> SetLabels( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + private: std::shared_ptr child_; diff --git a/google/cloud/compute/target_vpn_gateways/v1/mocks/mock_target_vpn_gateways_connection.h b/google/cloud/compute/target_vpn_gateways/v1/mocks/mock_target_vpn_gateways_connection.h index 2edd82a86fd6f..a7569302ab1ef 100644 --- a/google/cloud/compute/target_vpn_gateways/v1/mocks/mock_target_vpn_gateways_connection.h +++ b/google/cloud/compute/target_vpn_gateways/v1/mocks/mock_target_vpn_gateways_connection.h @@ -61,6 +61,19 @@ class MockTargetVpnGatewaysConnection DeleteTargetVpnGatewayRequest const& request), (override)); + MOCK_METHOD(StatusOr, + DeleteTargetVpnGateway, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_vpn_gateways::v1:: + DeleteTargetVpnGatewayRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteTargetVpnGateway, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD(StatusOr, GetTargetVpnGateway, (google::cloud::cpp::compute::target_vpn_gateways::v1:: @@ -73,6 +86,19 @@ class MockTargetVpnGatewaysConnection InsertTargetVpnGatewayRequest const& request), (override)); + MOCK_METHOD(StatusOr, + InsertTargetVpnGateway, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_vpn_gateways::v1:: + InsertTargetVpnGatewayRequest const& request), + (override)); + + MOCK_METHOD(future>, + InsertTargetVpnGateway, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD((StreamRange), ListTargetVpnGateways, (google::cloud::cpp::compute::target_vpn_gateways::v1:: @@ -84,6 +110,18 @@ class MockTargetVpnGatewaysConnection (google::cloud::cpp::compute::target_vpn_gateways::v1:: SetLabelsRequest const& request), (override)); + + MOCK_METHOD(StatusOr, SetLabels, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_vpn_gateways::v1:: + SetLabelsRequest const& request), + (override)); + + MOCK_METHOD(future>, + SetLabels, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); }; GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END diff --git a/google/cloud/compute/target_vpn_gateways/v1/target_vpn_gateways_connection.cc b/google/cloud/compute/target_vpn_gateways/v1/target_vpn_gateways_connection.cc index 08422c5b76ccd..2018bea1a911e 100644 --- a/google/cloud/compute/target_vpn_gateways/v1/target_vpn_gateways_connection.cc +++ b/google/cloud/compute/target_vpn_gateways/v1/target_vpn_gateways_connection.cc @@ -55,6 +55,23 @@ TargetVpnGatewaysConnection::DeleteTargetVpnGateway( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +TargetVpnGatewaysConnection::DeleteTargetVpnGateway( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_vpn_gateways::v1:: + DeleteTargetVpnGatewayRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +TargetVpnGatewaysConnection::DeleteTargetVpnGateway( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr TargetVpnGatewaysConnection::GetTargetVpnGateway( google::cloud::cpp::compute::target_vpn_gateways::v1:: @@ -71,6 +88,23 @@ TargetVpnGatewaysConnection::InsertTargetVpnGateway( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +TargetVpnGatewaysConnection::InsertTargetVpnGateway( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_vpn_gateways::v1:: + InsertTargetVpnGatewayRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +TargetVpnGatewaysConnection::InsertTargetVpnGateway( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StreamRange TargetVpnGatewaysConnection::ListTargetVpnGateways( google::cloud::cpp::compute::target_vpn_gateways::v1:: @@ -88,6 +122,23 @@ TargetVpnGatewaysConnection::SetLabels( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +TargetVpnGatewaysConnection::SetLabels( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_vpn_gateways::v1:: + SetLabelsRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +TargetVpnGatewaysConnection::SetLabels( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace compute_target_vpn_gateways_v1 } // namespace cloud diff --git a/google/cloud/compute/target_vpn_gateways/v1/target_vpn_gateways_connection.h b/google/cloud/compute/target_vpn_gateways/v1/target_vpn_gateways_connection.h index 8c647c895e040..8668342cf070a 100644 --- a/google/cloud/compute/target_vpn_gateways/v1/target_vpn_gateways_connection.h +++ b/google/cloud/compute/target_vpn_gateways/v1/target_vpn_gateways_connection.h @@ -22,8 +22,10 @@ #include "google/cloud/compute/target_vpn_gateways/v1/internal/target_vpn_gateways_retry_traits.h" #include "google/cloud/compute/target_vpn_gateways/v1/target_vpn_gateways_connection_idempotency_policy.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/internal/retry_policy_impl.h" +#include "google/cloud/no_await_tag.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" #include "google/cloud/status_or.h" @@ -197,6 +199,16 @@ class TargetVpnGatewaysConnection { DeleteTargetVpnGateway(google::cloud::cpp::compute::target_vpn_gateways::v1:: DeleteTargetVpnGatewayRequest const& request); + virtual StatusOr + DeleteTargetVpnGateway(ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_vpn_gateways::v1:: + DeleteTargetVpnGatewayRequest const& request); + + virtual future> + DeleteTargetVpnGateway( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual StatusOr GetTargetVpnGateway(google::cloud::cpp::compute::target_vpn_gateways::v1:: GetTargetVpnGatewayRequest const& request); @@ -205,6 +217,16 @@ class TargetVpnGatewaysConnection { InsertTargetVpnGateway(google::cloud::cpp::compute::target_vpn_gateways::v1:: InsertTargetVpnGatewayRequest const& request); + virtual StatusOr + InsertTargetVpnGateway(ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_vpn_gateways::v1:: + InsertTargetVpnGatewayRequest const& request); + + virtual future> + InsertTargetVpnGateway( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual StreamRange ListTargetVpnGateways(google::cloud::cpp::compute::target_vpn_gateways::v1:: ListTargetVpnGatewaysRequest request); @@ -212,6 +234,15 @@ class TargetVpnGatewaysConnection { virtual future> SetLabels(google::cloud::cpp::compute::target_vpn_gateways::v1:: SetLabelsRequest const& request); + + virtual StatusOr SetLabels( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::target_vpn_gateways::v1:: + SetLabelsRequest const& request); + + virtual future> + SetLabels(ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); }; GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END diff --git a/google/cloud/compute/url_maps/v1/internal/url_maps_rest_connection_impl.cc b/google/cloud/compute/url_maps/v1/internal/url_maps_rest_connection_impl.cc index 870cbf3ccfe3b..0d9f3f2907b79 100644 --- a/google/cloud/compute/url_maps/v1/internal/url_maps_rest_connection_impl.cc +++ b/google/cloud/compute/url_maps/v1/internal/url_maps_rest_connection_impl.cc @@ -23,6 +23,7 @@ #include "google/cloud/internal/async_rest_long_running_operation_custom.h" #include "google/cloud/internal/extract_long_running_result.h" #include "google/cloud/internal/pagination_range.h" +#include "google/cloud/internal/rest_lro_helpers.h" #include "google/cloud/internal/rest_retry_loop.h" #include "google/cloud/rest_options.h" #include @@ -141,6 +142,78 @@ UrlMapsRestConnectionImpl::DeleteUrlMap( }); } +StatusOr +UrlMapsRestConnectionImpl::DeleteUrlMap( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::url_maps::v1::DeleteUrlMapRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteUrlMap(request), + [this]( + rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::url_maps::v1::DeleteUrlMapRequest const& + request) { + return stub_->DeleteUrlMap(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +UrlMapsRestConnectionImpl::DeleteUrlMap( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::global_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }); +} + StatusOr UrlMapsRestConnectionImpl::GetUrlMap( google::cloud::cpp::compute::url_maps::v1::GetUrlMapRequest const& @@ -216,6 +289,78 @@ UrlMapsRestConnectionImpl::InsertUrlMap( }); } +StatusOr +UrlMapsRestConnectionImpl::InsertUrlMap( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::url_maps::v1::InsertUrlMapRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->InsertUrlMap(request), + [this]( + rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::url_maps::v1::InsertUrlMapRequest const& + request) { + return stub_->InsertUrlMap(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +UrlMapsRestConnectionImpl::InsertUrlMap( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::global_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }); +} + future> UrlMapsRestConnectionImpl::InvalidateCache( google::cloud::cpp::compute::url_maps::v1::InvalidateCacheRequest const& @@ -274,6 +419,77 @@ UrlMapsRestConnectionImpl::InvalidateCache( }); } +StatusOr +UrlMapsRestConnectionImpl::InvalidateCache( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::url_maps::v1::InvalidateCacheRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->InvalidateCache(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::url_maps::v1:: + InvalidateCacheRequest const& request) { + return stub_->InvalidateCache(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +UrlMapsRestConnectionImpl::InvalidateCache( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::global_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }); +} + StreamRange UrlMapsRestConnectionImpl::ListUrlMaps( google::cloud::cpp::compute::url_maps::v1::ListUrlMapsRequest request) { @@ -369,6 +585,78 @@ UrlMapsRestConnectionImpl::PatchUrlMap( }); } +StatusOr +UrlMapsRestConnectionImpl::PatchUrlMap( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::url_maps::v1::PatchUrlMapRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->PatchUrlMap(request), + [this]( + rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::url_maps::v1::PatchUrlMapRequest const& + request) { + return stub_->PatchUrlMap(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +UrlMapsRestConnectionImpl::PatchUrlMap( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::global_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }); +} + future> UrlMapsRestConnectionImpl::UpdateUrlMap( google::cloud::cpp::compute::url_maps::v1::UpdateUrlMapRequest const& @@ -428,6 +716,78 @@ UrlMapsRestConnectionImpl::UpdateUrlMap( }); } +StatusOr +UrlMapsRestConnectionImpl::UpdateUrlMap( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::url_maps::v1::UpdateUrlMapRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UpdateUrlMap(request), + [this]( + rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::url_maps::v1::UpdateUrlMapRequest const& + request) { + return stub_->UpdateUrlMap(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +UrlMapsRestConnectionImpl::UpdateUrlMap( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::global_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::global_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_operation(info.operation); + }); +} + StatusOr UrlMapsRestConnectionImpl::Validate( google::cloud::cpp::compute::url_maps::v1::ValidateRequest const& request) { diff --git a/google/cloud/compute/url_maps/v1/internal/url_maps_rest_connection_impl.h b/google/cloud/compute/url_maps/v1/internal/url_maps_rest_connection_impl.h index 26d1e5538de0f..a928854878366 100644 --- a/google/cloud/compute/url_maps/v1/internal/url_maps_rest_connection_impl.h +++ b/google/cloud/compute/url_maps/v1/internal/url_maps_rest_connection_impl.h @@ -60,6 +60,15 @@ class UrlMapsRestConnectionImpl google::cloud::cpp::compute::url_maps::v1::DeleteUrlMapRequest const& request) override; + StatusOr DeleteUrlMap( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::url_maps::v1::DeleteUrlMapRequest const& + request) override; + + future> DeleteUrlMap( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StatusOr GetUrlMap( google::cloud::cpp::compute::url_maps::v1::GetUrlMapRequest const& request) override; @@ -68,10 +77,28 @@ class UrlMapsRestConnectionImpl google::cloud::cpp::compute::url_maps::v1::InsertUrlMapRequest const& request) override; + StatusOr InsertUrlMap( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::url_maps::v1::InsertUrlMapRequest const& + request) override; + + future> InsertUrlMap( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> InvalidateCache( google::cloud::cpp::compute::url_maps::v1::InvalidateCacheRequest const& request) override; + StatusOr InvalidateCache( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::url_maps::v1::InvalidateCacheRequest const& + request) override; + + future> InvalidateCache( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StreamRange ListUrlMaps( google::cloud::cpp::compute::url_maps::v1::ListUrlMapsRequest request) override; @@ -80,10 +107,28 @@ class UrlMapsRestConnectionImpl google::cloud::cpp::compute::url_maps::v1::PatchUrlMapRequest const& request) override; + StatusOr PatchUrlMap( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::url_maps::v1::PatchUrlMapRequest const& + request) override; + + future> PatchUrlMap( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> UpdateUrlMap( google::cloud::cpp::compute::url_maps::v1::UpdateUrlMapRequest const& request) override; + StatusOr UpdateUrlMap( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::url_maps::v1::UpdateUrlMapRequest const& + request) override; + + future> UpdateUrlMap( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StatusOr Validate( google::cloud::cpp::compute::url_maps::v1::ValidateRequest const& request) override; diff --git a/google/cloud/compute/url_maps/v1/internal/url_maps_tracing_connection.cc b/google/cloud/compute/url_maps/v1/internal/url_maps_tracing_connection.cc index ab641848176a7..28bca1a4e0508 100644 --- a/google/cloud/compute/url_maps/v1/internal/url_maps_tracing_connection.cc +++ b/google/cloud/compute/url_maps/v1/internal/url_maps_tracing_connection.cc @@ -57,6 +57,29 @@ UrlMapsTracingConnection::DeleteUrlMap( return internal::EndSpan(std::move(span), child_->DeleteUrlMap(request)); } +StatusOr +UrlMapsTracingConnection::DeleteUrlMap( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::url_maps::v1::DeleteUrlMapRequest const& + request) { + auto span = internal::MakeSpan( + "compute_url_maps_v1::UrlMapsConnection::DeleteUrlMap"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->DeleteUrlMap(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +UrlMapsTracingConnection::DeleteUrlMap( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_url_maps_v1::UrlMapsConnection::DeleteUrlMap"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->DeleteUrlMap(ExperimentalTag{}, operation)); +} + StatusOr UrlMapsTracingConnection::GetUrlMap( google::cloud::cpp::compute::url_maps::v1::GetUrlMapRequest const& @@ -77,6 +100,29 @@ UrlMapsTracingConnection::InsertUrlMap( return internal::EndSpan(std::move(span), child_->InsertUrlMap(request)); } +StatusOr +UrlMapsTracingConnection::InsertUrlMap( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::url_maps::v1::InsertUrlMapRequest const& + request) { + auto span = internal::MakeSpan( + "compute_url_maps_v1::UrlMapsConnection::InsertUrlMap"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->InsertUrlMap(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +UrlMapsTracingConnection::InsertUrlMap( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_url_maps_v1::UrlMapsConnection::InsertUrlMap"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->InsertUrlMap(ExperimentalTag{}, operation)); +} + future> UrlMapsTracingConnection::InvalidateCache( google::cloud::cpp::compute::url_maps::v1::InvalidateCacheRequest const& @@ -87,6 +133,29 @@ UrlMapsTracingConnection::InvalidateCache( return internal::EndSpan(std::move(span), child_->InvalidateCache(request)); } +StatusOr +UrlMapsTracingConnection::InvalidateCache( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::url_maps::v1::InvalidateCacheRequest const& + request) { + auto span = internal::MakeSpan( + "compute_url_maps_v1::UrlMapsConnection::InvalidateCache"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->InvalidateCache(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +UrlMapsTracingConnection::InvalidateCache( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_url_maps_v1::UrlMapsConnection::InvalidateCache"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->InvalidateCache(ExperimentalTag{}, operation)); +} + StreamRange UrlMapsTracingConnection::ListUrlMaps( google::cloud::cpp::compute::url_maps::v1::ListUrlMapsRequest request) { @@ -108,6 +177,29 @@ UrlMapsTracingConnection::PatchUrlMap( return internal::EndSpan(std::move(span), child_->PatchUrlMap(request)); } +StatusOr +UrlMapsTracingConnection::PatchUrlMap( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::url_maps::v1::PatchUrlMapRequest const& + request) { + auto span = + internal::MakeSpan("compute_url_maps_v1::UrlMapsConnection::PatchUrlMap"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->PatchUrlMap(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +UrlMapsTracingConnection::PatchUrlMap( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = + internal::MakeSpan("compute_url_maps_v1::UrlMapsConnection::PatchUrlMap"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->PatchUrlMap(ExperimentalTag{}, operation)); +} + future> UrlMapsTracingConnection::UpdateUrlMap( google::cloud::cpp::compute::url_maps::v1::UpdateUrlMapRequest const& @@ -118,6 +210,29 @@ UrlMapsTracingConnection::UpdateUrlMap( return internal::EndSpan(std::move(span), child_->UpdateUrlMap(request)); } +StatusOr +UrlMapsTracingConnection::UpdateUrlMap( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::url_maps::v1::UpdateUrlMapRequest const& + request) { + auto span = internal::MakeSpan( + "compute_url_maps_v1::UrlMapsConnection::UpdateUrlMap"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->UpdateUrlMap(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +UrlMapsTracingConnection::UpdateUrlMap( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_url_maps_v1::UrlMapsConnection::UpdateUrlMap"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->UpdateUrlMap(ExperimentalTag{}, operation)); +} + StatusOr UrlMapsTracingConnection::Validate( google::cloud::cpp::compute::url_maps::v1::ValidateRequest const& request) { diff --git a/google/cloud/compute/url_maps/v1/internal/url_maps_tracing_connection.h b/google/cloud/compute/url_maps/v1/internal/url_maps_tracing_connection.h index aefbc92a7aada..8a4c537641ba8 100644 --- a/google/cloud/compute/url_maps/v1/internal/url_maps_tracing_connection.h +++ b/google/cloud/compute/url_maps/v1/internal/url_maps_tracing_connection.h @@ -49,6 +49,15 @@ class UrlMapsTracingConnection : public compute_url_maps_v1::UrlMapsConnection { google::cloud::cpp::compute::url_maps::v1::DeleteUrlMapRequest const& request) override; + StatusOr DeleteUrlMap( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::url_maps::v1::DeleteUrlMapRequest const& + request) override; + + future> DeleteUrlMap( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StatusOr GetUrlMap( google::cloud::cpp::compute::url_maps::v1::GetUrlMapRequest const& request) override; @@ -57,10 +66,28 @@ class UrlMapsTracingConnection : public compute_url_maps_v1::UrlMapsConnection { google::cloud::cpp::compute::url_maps::v1::InsertUrlMapRequest const& request) override; + StatusOr InsertUrlMap( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::url_maps::v1::InsertUrlMapRequest const& + request) override; + + future> InsertUrlMap( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> InvalidateCache( google::cloud::cpp::compute::url_maps::v1::InvalidateCacheRequest const& request) override; + StatusOr InvalidateCache( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::url_maps::v1::InvalidateCacheRequest const& + request) override; + + future> InvalidateCache( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StreamRange ListUrlMaps( google::cloud::cpp::compute::url_maps::v1::ListUrlMapsRequest request) override; @@ -69,10 +96,28 @@ class UrlMapsTracingConnection : public compute_url_maps_v1::UrlMapsConnection { google::cloud::cpp::compute::url_maps::v1::PatchUrlMapRequest const& request) override; + StatusOr PatchUrlMap( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::url_maps::v1::PatchUrlMapRequest const& + request) override; + + future> PatchUrlMap( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> UpdateUrlMap( google::cloud::cpp::compute::url_maps::v1::UpdateUrlMapRequest const& request) override; + StatusOr UpdateUrlMap( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::url_maps::v1::UpdateUrlMapRequest const& + request) override; + + future> UpdateUrlMap( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StatusOr Validate( google::cloud::cpp::compute::url_maps::v1::ValidateRequest const& request) override; diff --git a/google/cloud/compute/url_maps/v1/mocks/mock_url_maps_connection.h b/google/cloud/compute/url_maps/v1/mocks/mock_url_maps_connection.h index 9f0762067bd27..319b29a05b47b 100644 --- a/google/cloud/compute/url_maps/v1/mocks/mock_url_maps_connection.h +++ b/google/cloud/compute/url_maps/v1/mocks/mock_url_maps_connection.h @@ -61,6 +61,19 @@ class MockUrlMapsConnection : public compute_url_maps_v1::UrlMapsConnection { request), (override)); + MOCK_METHOD( + StatusOr, DeleteUrlMap, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::url_maps::v1::DeleteUrlMapRequest const& + request), + (override)); + + MOCK_METHOD(future>, + DeleteUrlMap, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr, GetUrlMap, (google::cloud::cpp::compute::url_maps::v1::GetUrlMapRequest const& @@ -74,6 +87,19 @@ class MockUrlMapsConnection : public compute_url_maps_v1::UrlMapsConnection { request), (override)); + MOCK_METHOD( + StatusOr, InsertUrlMap, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::url_maps::v1::InsertUrlMapRequest const& + request), + (override)); + + MOCK_METHOD(future>, + InsertUrlMap, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD( future>, InvalidateCache, @@ -81,6 +107,19 @@ class MockUrlMapsConnection : public compute_url_maps_v1::UrlMapsConnection { request), (override)); + MOCK_METHOD( + StatusOr, InvalidateCache, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::url_maps::v1::InvalidateCacheRequest const& + request), + (override)); + + MOCK_METHOD(future>, + InvalidateCache, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD( (StreamRange), ListUrlMaps, (google::cloud::cpp::compute::url_maps::v1::ListUrlMapsRequest request), @@ -92,6 +131,19 @@ class MockUrlMapsConnection : public compute_url_maps_v1::UrlMapsConnection { request), (override)); + MOCK_METHOD( + StatusOr, PatchUrlMap, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::url_maps::v1::PatchUrlMapRequest const& + request), + (override)); + + MOCK_METHOD(future>, + PatchUrlMap, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD( future>, UpdateUrlMap, @@ -99,6 +151,19 @@ class MockUrlMapsConnection : public compute_url_maps_v1::UrlMapsConnection { request), (override)); + MOCK_METHOD( + StatusOr, UpdateUrlMap, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::url_maps::v1::UpdateUrlMapRequest const& + request), + (override)); + + MOCK_METHOD(future>, + UpdateUrlMap, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr, Validate, diff --git a/google/cloud/compute/url_maps/v1/url_maps_connection.cc b/google/cloud/compute/url_maps/v1/url_maps_connection.cc index 0ce4fc39296eb..27372524d1c44 100644 --- a/google/cloud/compute/url_maps/v1/url_maps_connection.cc +++ b/google/cloud/compute/url_maps/v1/url_maps_connection.cc @@ -54,6 +54,22 @@ UrlMapsConnection::DeleteUrlMap( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +UrlMapsConnection::DeleteUrlMap( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::url_maps::v1::DeleteUrlMapRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +UrlMapsConnection::DeleteUrlMap( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr UrlMapsConnection::GetUrlMap( google::cloud::cpp::compute::url_maps::v1::GetUrlMapRequest const&) { return Status(StatusCode::kUnimplemented, "not implemented"); @@ -67,6 +83,22 @@ UrlMapsConnection::InsertUrlMap( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +UrlMapsConnection::InsertUrlMap( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::url_maps::v1::InsertUrlMapRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +UrlMapsConnection::InsertUrlMap( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> UrlMapsConnection::InvalidateCache( google::cloud::cpp::compute::url_maps::v1::InvalidateCacheRequest const&) { @@ -75,6 +107,22 @@ UrlMapsConnection::InvalidateCache( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +UrlMapsConnection::InvalidateCache( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::url_maps::v1::InvalidateCacheRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +UrlMapsConnection::InvalidateCache( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StreamRange UrlMapsConnection::ListUrlMaps( google::cloud::cpp::compute::url_maps::v1:: @@ -91,6 +139,22 @@ UrlMapsConnection::PatchUrlMap( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +UrlMapsConnection::PatchUrlMap( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::url_maps::v1::PatchUrlMapRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +UrlMapsConnection::PatchUrlMap( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> UrlMapsConnection::UpdateUrlMap( google::cloud::cpp::compute::url_maps::v1::UpdateUrlMapRequest const&) { @@ -99,6 +163,22 @@ UrlMapsConnection::UpdateUrlMap( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +UrlMapsConnection::UpdateUrlMap( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::url_maps::v1::UpdateUrlMapRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +UrlMapsConnection::UpdateUrlMap( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr UrlMapsConnection::Validate( google::cloud::cpp::compute::url_maps::v1::ValidateRequest const&) { diff --git a/google/cloud/compute/url_maps/v1/url_maps_connection.h b/google/cloud/compute/url_maps/v1/url_maps_connection.h index e2f543001febf..ea01cb122b99d 100644 --- a/google/cloud/compute/url_maps/v1/url_maps_connection.h +++ b/google/cloud/compute/url_maps/v1/url_maps_connection.h @@ -22,8 +22,10 @@ #include "google/cloud/compute/url_maps/v1/internal/url_maps_retry_traits.h" #include "google/cloud/compute/url_maps/v1/url_maps_connection_idempotency_policy.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/internal/retry_policy_impl.h" +#include "google/cloud/no_await_tag.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" #include "google/cloud/status_or.h" @@ -192,6 +194,15 @@ class UrlMapsConnection { google::cloud::cpp::compute::url_maps::v1::DeleteUrlMapRequest const& request); + virtual StatusOr DeleteUrlMap( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::url_maps::v1::DeleteUrlMapRequest const& + request); + + virtual future> + DeleteUrlMap(ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual StatusOr GetUrlMap( google::cloud::cpp::compute::url_maps::v1::GetUrlMapRequest const& request); @@ -201,11 +212,29 @@ class UrlMapsConnection { google::cloud::cpp::compute::url_maps::v1::InsertUrlMapRequest const& request); + virtual StatusOr InsertUrlMap( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::url_maps::v1::InsertUrlMapRequest const& + request); + + virtual future> + InsertUrlMap(ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual future> InvalidateCache( google::cloud::cpp::compute::url_maps::v1::InvalidateCacheRequest const& request); + virtual StatusOr InvalidateCache( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::url_maps::v1::InvalidateCacheRequest const& + request); + + virtual future> + InvalidateCache(ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual StreamRange ListUrlMaps( google::cloud::cpp::compute::url_maps::v1::ListUrlMapsRequest request); @@ -214,11 +243,29 @@ class UrlMapsConnection { google::cloud::cpp::compute::url_maps::v1::PatchUrlMapRequest const& request); + virtual StatusOr PatchUrlMap( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::url_maps::v1::PatchUrlMapRequest const& + request); + + virtual future> + PatchUrlMap(ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual future> UpdateUrlMap( google::cloud::cpp::compute::url_maps::v1::UpdateUrlMapRequest const& request); + virtual StatusOr UpdateUrlMap( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::url_maps::v1::UpdateUrlMapRequest const& + request); + + virtual future> + UpdateUrlMap(ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual StatusOr Validate(google::cloud::cpp::compute::url_maps::v1::ValidateRequest const& request); diff --git a/google/cloud/compute/vpn_gateways/v1/internal/vpn_gateways_rest_connection_impl.cc b/google/cloud/compute/vpn_gateways/v1/internal/vpn_gateways_rest_connection_impl.cc index 11e810c76b550..04d2ca109655f 100644 --- a/google/cloud/compute/vpn_gateways/v1/internal/vpn_gateways_rest_connection_impl.cc +++ b/google/cloud/compute/vpn_gateways/v1/internal/vpn_gateways_rest_connection_impl.cc @@ -23,6 +23,7 @@ #include "google/cloud/internal/async_rest_long_running_operation_custom.h" #include "google/cloud/internal/extract_long_running_result.h" #include "google/cloud/internal/pagination_range.h" +#include "google/cloud/internal/rest_lro_helpers.h" #include "google/cloud/internal/rest_retry_loop.h" #include "google/cloud/rest_options.h" #include @@ -144,6 +145,79 @@ VpnGatewaysRestConnectionImpl::DeleteVpnGateway( }); } +StatusOr +VpnGatewaysRestConnectionImpl::DeleteVpnGateway( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::vpn_gateways::v1:: + DeleteVpnGatewayRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteVpnGateway(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::vpn_gateways::v1:: + DeleteVpnGatewayRequest const& request) { + return stub_->DeleteVpnGateway(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +VpnGatewaysRestConnectionImpl::DeleteVpnGateway( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::region_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }); +} + StatusOr VpnGatewaysRestConnectionImpl::GetVpnGateway( google::cloud::cpp::compute::vpn_gateways::v1::GetVpnGatewayRequest const& @@ -237,6 +311,79 @@ VpnGatewaysRestConnectionImpl::InsertVpnGateway( }); } +StatusOr +VpnGatewaysRestConnectionImpl::InsertVpnGateway( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::vpn_gateways::v1:: + InsertVpnGatewayRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->InsertVpnGateway(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::vpn_gateways::v1:: + InsertVpnGatewayRequest const& request) { + return stub_->InsertVpnGateway(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +VpnGatewaysRestConnectionImpl::InsertVpnGateway( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::region_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }); +} + StreamRange VpnGatewaysRestConnectionImpl::ListVpnGateways( google::cloud::cpp::compute::vpn_gateways::v1::ListVpnGatewaysRequest @@ -334,6 +481,80 @@ VpnGatewaysRestConnectionImpl::SetLabels( }); } +StatusOr +VpnGatewaysRestConnectionImpl::SetLabels( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::vpn_gateways::v1::SetLabelsRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->SetLabels(request), + [this]( + rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::vpn_gateways::v1::SetLabelsRequest const& + request) { + return stub_->SetLabels(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +VpnGatewaysRestConnectionImpl::SetLabels( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::region_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }); +} + StatusOr VpnGatewaysRestConnectionImpl::TestIamPermissions( google::cloud::cpp::compute::vpn_gateways::v1:: diff --git a/google/cloud/compute/vpn_gateways/v1/internal/vpn_gateways_rest_connection_impl.h b/google/cloud/compute/vpn_gateways/v1/internal/vpn_gateways_rest_connection_impl.h index b9245e5f9b499..1246b589e12e2 100644 --- a/google/cloud/compute/vpn_gateways/v1/internal/vpn_gateways_rest_connection_impl.h +++ b/google/cloud/compute/vpn_gateways/v1/internal/vpn_gateways_rest_connection_impl.h @@ -61,6 +61,15 @@ class VpnGatewaysRestConnectionImpl google::cloud::cpp::compute::vpn_gateways::v1:: DeleteVpnGatewayRequest const& request) override; + StatusOr DeleteVpnGateway( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::vpn_gateways::v1:: + DeleteVpnGatewayRequest const& request) override; + + future> DeleteVpnGateway( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StatusOr GetVpnGateway( google::cloud::cpp::compute::vpn_gateways::v1::GetVpnGatewayRequest const& request) override; @@ -74,6 +83,15 @@ class VpnGatewaysRestConnectionImpl google::cloud::cpp::compute::vpn_gateways::v1:: InsertVpnGatewayRequest const& request) override; + StatusOr InsertVpnGateway( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::vpn_gateways::v1:: + InsertVpnGatewayRequest const& request) override; + + future> InsertVpnGateway( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StreamRange ListVpnGateways( google::cloud::cpp::compute::vpn_gateways::v1::ListVpnGatewaysRequest request) override; @@ -82,6 +100,15 @@ class VpnGatewaysRestConnectionImpl google::cloud::cpp::compute::vpn_gateways::v1::SetLabelsRequest const& request) override; + StatusOr SetLabels( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::vpn_gateways::v1::SetLabelsRequest const& + request) override; + + future> SetLabels( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StatusOr TestIamPermissions(google::cloud::cpp::compute::vpn_gateways::v1:: TestIamPermissionsRequest const& request) override; diff --git a/google/cloud/compute/vpn_gateways/v1/internal/vpn_gateways_tracing_connection.cc b/google/cloud/compute/vpn_gateways/v1/internal/vpn_gateways_tracing_connection.cc index 1af914061e8a8..8e4b28a6bf235 100644 --- a/google/cloud/compute/vpn_gateways/v1/internal/vpn_gateways_tracing_connection.cc +++ b/google/cloud/compute/vpn_gateways/v1/internal/vpn_gateways_tracing_connection.cc @@ -58,6 +58,30 @@ VpnGatewaysTracingConnection::DeleteVpnGateway( return internal::EndSpan(std::move(span), child_->DeleteVpnGateway(request)); } +StatusOr +VpnGatewaysTracingConnection::DeleteVpnGateway( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::vpn_gateways::v1:: + DeleteVpnGatewayRequest const& request) { + auto span = internal::MakeSpan( + "compute_vpn_gateways_v1::VpnGatewaysConnection::DeleteVpnGateway"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->DeleteVpnGateway(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +VpnGatewaysTracingConnection::DeleteVpnGateway( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_vpn_gateways_v1::VpnGatewaysConnection::DeleteVpnGateway"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->DeleteVpnGateway(ExperimentalTag{}, operation)); +} + StatusOr VpnGatewaysTracingConnection::GetVpnGateway( google::cloud::cpp::compute::vpn_gateways::v1::GetVpnGatewayRequest const& @@ -88,6 +112,30 @@ VpnGatewaysTracingConnection::InsertVpnGateway( return internal::EndSpan(std::move(span), child_->InsertVpnGateway(request)); } +StatusOr +VpnGatewaysTracingConnection::InsertVpnGateway( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::vpn_gateways::v1:: + InsertVpnGatewayRequest const& request) { + auto span = internal::MakeSpan( + "compute_vpn_gateways_v1::VpnGatewaysConnection::InsertVpnGateway"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->InsertVpnGateway(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +VpnGatewaysTracingConnection::InsertVpnGateway( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_vpn_gateways_v1::VpnGatewaysConnection::InsertVpnGateway"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->InsertVpnGateway(ExperimentalTag{}, operation)); +} + StreamRange VpnGatewaysTracingConnection::ListVpnGateways( google::cloud::cpp::compute::vpn_gateways::v1::ListVpnGatewaysRequest @@ -111,6 +159,29 @@ VpnGatewaysTracingConnection::SetLabels( return internal::EndSpan(std::move(span), child_->SetLabels(request)); } +StatusOr +VpnGatewaysTracingConnection::SetLabels( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::vpn_gateways::v1::SetLabelsRequest const& + request) { + auto span = internal::MakeSpan( + "compute_vpn_gateways_v1::VpnGatewaysConnection::SetLabels"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->SetLabels(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +VpnGatewaysTracingConnection::SetLabels( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_vpn_gateways_v1::VpnGatewaysConnection::SetLabels"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->SetLabels(ExperimentalTag{}, operation)); +} + StatusOr VpnGatewaysTracingConnection::TestIamPermissions( google::cloud::cpp::compute::vpn_gateways::v1:: diff --git a/google/cloud/compute/vpn_gateways/v1/internal/vpn_gateways_tracing_connection.h b/google/cloud/compute/vpn_gateways/v1/internal/vpn_gateways_tracing_connection.h index 9e20e438b4e55..aea1bec1fcd10 100644 --- a/google/cloud/compute/vpn_gateways/v1/internal/vpn_gateways_tracing_connection.h +++ b/google/cloud/compute/vpn_gateways/v1/internal/vpn_gateways_tracing_connection.h @@ -50,6 +50,15 @@ class VpnGatewaysTracingConnection google::cloud::cpp::compute::vpn_gateways::v1:: DeleteVpnGatewayRequest const& request) override; + StatusOr DeleteVpnGateway( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::vpn_gateways::v1:: + DeleteVpnGatewayRequest const& request) override; + + future> DeleteVpnGateway( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StatusOr GetVpnGateway( google::cloud::cpp::compute::vpn_gateways::v1::GetVpnGatewayRequest const& request) override; @@ -63,6 +72,15 @@ class VpnGatewaysTracingConnection google::cloud::cpp::compute::vpn_gateways::v1:: InsertVpnGatewayRequest const& request) override; + StatusOr InsertVpnGateway( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::vpn_gateways::v1:: + InsertVpnGatewayRequest const& request) override; + + future> InsertVpnGateway( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StreamRange ListVpnGateways( google::cloud::cpp::compute::vpn_gateways::v1::ListVpnGatewaysRequest request) override; @@ -71,6 +89,15 @@ class VpnGatewaysTracingConnection google::cloud::cpp::compute::vpn_gateways::v1::SetLabelsRequest const& request) override; + StatusOr SetLabels( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::vpn_gateways::v1::SetLabelsRequest const& + request) override; + + future> SetLabels( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StatusOr TestIamPermissions(google::cloud::cpp::compute::vpn_gateways::v1:: TestIamPermissionsRequest const& request) override; diff --git a/google/cloud/compute/vpn_gateways/v1/mocks/mock_vpn_gateways_connection.h b/google/cloud/compute/vpn_gateways/v1/mocks/mock_vpn_gateways_connection.h index 8b00f607e77b8..85e914934acd5 100644 --- a/google/cloud/compute/vpn_gateways/v1/mocks/mock_vpn_gateways_connection.h +++ b/google/cloud/compute/vpn_gateways/v1/mocks/mock_vpn_gateways_connection.h @@ -62,6 +62,19 @@ class MockVpnGatewaysConnection DeleteVpnGatewayRequest const& request), (override)); + MOCK_METHOD(StatusOr, + DeleteVpnGateway, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::vpn_gateways::v1:: + DeleteVpnGatewayRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteVpnGateway, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD(StatusOr, GetVpnGateway, (google::cloud::cpp::compute::vpn_gateways::v1:: @@ -81,6 +94,19 @@ class MockVpnGatewaysConnection InsertVpnGatewayRequest const& request), (override)); + MOCK_METHOD(StatusOr, + InsertVpnGateway, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::vpn_gateways::v1:: + InsertVpnGatewayRequest const& request), + (override)); + + MOCK_METHOD(future>, + InsertVpnGateway, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD( (StreamRange), ListVpnGateways, @@ -94,6 +120,19 @@ class MockVpnGatewaysConnection request), (override)); + MOCK_METHOD( + StatusOr, SetLabels, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::vpn_gateways::v1::SetLabelsRequest const& + request), + (override)); + + MOCK_METHOD(future>, + SetLabels, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr, TestIamPermissions, diff --git a/google/cloud/compute/vpn_gateways/v1/vpn_gateways_connection.cc b/google/cloud/compute/vpn_gateways/v1/vpn_gateways_connection.cc index 19a61db0fdd13..919ec3dfd6bb1 100644 --- a/google/cloud/compute/vpn_gateways/v1/vpn_gateways_connection.cc +++ b/google/cloud/compute/vpn_gateways/v1/vpn_gateways_connection.cc @@ -55,6 +55,23 @@ VpnGatewaysConnection::DeleteVpnGateway( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +VpnGatewaysConnection::DeleteVpnGateway( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::vpn_gateways::v1:: + DeleteVpnGatewayRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +VpnGatewaysConnection::DeleteVpnGateway( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr VpnGatewaysConnection::GetVpnGateway(google::cloud::cpp::compute::vpn_gateways:: v1::GetVpnGatewayRequest const&) { @@ -76,6 +93,23 @@ VpnGatewaysConnection::InsertVpnGateway( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +VpnGatewaysConnection::InsertVpnGateway( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::vpn_gateways::v1:: + InsertVpnGatewayRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +VpnGatewaysConnection::InsertVpnGateway( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StreamRange VpnGatewaysConnection::ListVpnGateways( google::cloud::cpp::compute::vpn_gateways::v1:: @@ -92,6 +126,22 @@ VpnGatewaysConnection::SetLabels( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +VpnGatewaysConnection::SetLabels( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::vpn_gateways::v1::SetLabelsRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +VpnGatewaysConnection::SetLabels( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr VpnGatewaysConnection::TestIamPermissions( google::cloud::cpp::compute::vpn_gateways::v1:: diff --git a/google/cloud/compute/vpn_gateways/v1/vpn_gateways_connection.h b/google/cloud/compute/vpn_gateways/v1/vpn_gateways_connection.h index fc01ddb738687..61e6c863690cf 100644 --- a/google/cloud/compute/vpn_gateways/v1/vpn_gateways_connection.h +++ b/google/cloud/compute/vpn_gateways/v1/vpn_gateways_connection.h @@ -22,8 +22,10 @@ #include "google/cloud/compute/vpn_gateways/v1/internal/vpn_gateways_retry_traits.h" #include "google/cloud/compute/vpn_gateways/v1/vpn_gateways_connection_idempotency_policy.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/internal/retry_policy_impl.h" +#include "google/cloud/no_await_tag.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" #include "google/cloud/status_or.h" @@ -192,6 +194,15 @@ class VpnGatewaysConnection { DeleteVpnGateway(google::cloud::cpp::compute::vpn_gateways::v1:: DeleteVpnGatewayRequest const& request); + virtual StatusOr DeleteVpnGateway( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::vpn_gateways::v1:: + DeleteVpnGatewayRequest const& request); + + virtual future> + DeleteVpnGateway(ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual StatusOr GetVpnGateway( google::cloud::cpp::compute::vpn_gateways::v1::GetVpnGatewayRequest const& request); @@ -206,6 +217,15 @@ class VpnGatewaysConnection { InsertVpnGateway(google::cloud::cpp::compute::vpn_gateways::v1:: InsertVpnGatewayRequest const& request); + virtual StatusOr InsertVpnGateway( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::vpn_gateways::v1:: + InsertVpnGatewayRequest const& request); + + virtual future> + InsertVpnGateway(ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual StreamRange ListVpnGateways( google::cloud::cpp::compute::vpn_gateways::v1::ListVpnGatewaysRequest @@ -216,6 +236,15 @@ class VpnGatewaysConnection { google::cloud::cpp::compute::vpn_gateways::v1::SetLabelsRequest const& request); + virtual StatusOr SetLabels( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::vpn_gateways::v1::SetLabelsRequest const& + request); + + virtual future> + SetLabels(ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual StatusOr TestIamPermissions(google::cloud::cpp::compute::vpn_gateways::v1:: TestIamPermissionsRequest const& request); diff --git a/google/cloud/compute/vpn_tunnels/v1/internal/vpn_tunnels_rest_connection_impl.cc b/google/cloud/compute/vpn_tunnels/v1/internal/vpn_tunnels_rest_connection_impl.cc index 30ed3c5ce4294..c3f66093e7b66 100644 --- a/google/cloud/compute/vpn_tunnels/v1/internal/vpn_tunnels_rest_connection_impl.cc +++ b/google/cloud/compute/vpn_tunnels/v1/internal/vpn_tunnels_rest_connection_impl.cc @@ -23,6 +23,7 @@ #include "google/cloud/internal/async_rest_long_running_operation_custom.h" #include "google/cloud/internal/extract_long_running_result.h" #include "google/cloud/internal/pagination_range.h" +#include "google/cloud/internal/rest_lro_helpers.h" #include "google/cloud/internal/rest_retry_loop.h" #include "google/cloud/rest_options.h" #include @@ -143,6 +144,79 @@ VpnTunnelsRestConnectionImpl::DeleteVpnTunnel( }); } +StatusOr +VpnTunnelsRestConnectionImpl::DeleteVpnTunnel( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::vpn_tunnels::v1::DeleteVpnTunnelRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteVpnTunnel(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::vpn_tunnels::v1:: + DeleteVpnTunnelRequest const& request) { + return stub_->DeleteVpnTunnel(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +VpnTunnelsRestConnectionImpl::DeleteVpnTunnel( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::region_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }); +} + StatusOr VpnTunnelsRestConnectionImpl::GetVpnTunnel( google::cloud::cpp::compute::vpn_tunnels::v1::GetVpnTunnelRequest const& @@ -219,6 +293,79 @@ VpnTunnelsRestConnectionImpl::InsertVpnTunnel( }); } +StatusOr +VpnTunnelsRestConnectionImpl::InsertVpnTunnel( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::vpn_tunnels::v1::InsertVpnTunnelRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->InsertVpnTunnel(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::vpn_tunnels::v1:: + InsertVpnTunnelRequest const& request) { + return stub_->InsertVpnTunnel(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +VpnTunnelsRestConnectionImpl::InsertVpnTunnel( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::region_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }); +} + StreamRange VpnTunnelsRestConnectionImpl::ListVpnTunnels( google::cloud::cpp::compute::vpn_tunnels::v1::ListVpnTunnelsRequest @@ -316,6 +463,80 @@ VpnTunnelsRestConnectionImpl::SetLabels( }); } +StatusOr +VpnTunnelsRestConnectionImpl::SetLabels( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::vpn_tunnels::v1::SetLabelsRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->SetLabels(request), + [this]( + rest_internal::RestContext& rest_context, Options const& options, + google::cloud::cpp::compute::vpn_tunnels::v1::SetLabelsRequest const& + request) { + return stub_->SetLabels(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +VpnTunnelsRestConnectionImpl::SetLabels( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::v1::Operation, + google::cloud::cpp::compute::region_operations::v1::GetOperationRequest, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + [](StatusOr op, + std::string const&) { return op; }, + polling_policy(*current), __func__, + [](google::cloud::cpp::compute::v1::Operation const& op) { + return op.status() == "DONE"; + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + GetOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }, + [operation](std::string const&, + google::cloud::cpp::compute::region_operations::v1:: + DeleteOperationRequest& r) { + auto info = google::cloud::rest_internal::ParseComputeOperationInfo( + operation.self_link()); + + r.set_project(info.project); + r.set_region(info.region); + r.set_operation(info.operation); + }); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace compute_vpn_tunnels_v1_internal } // namespace cloud diff --git a/google/cloud/compute/vpn_tunnels/v1/internal/vpn_tunnels_rest_connection_impl.h b/google/cloud/compute/vpn_tunnels/v1/internal/vpn_tunnels_rest_connection_impl.h index 47144726eb309..5ae02aa9bea1b 100644 --- a/google/cloud/compute/vpn_tunnels/v1/internal/vpn_tunnels_rest_connection_impl.h +++ b/google/cloud/compute/vpn_tunnels/v1/internal/vpn_tunnels_rest_connection_impl.h @@ -60,6 +60,15 @@ class VpnTunnelsRestConnectionImpl google::cloud::cpp::compute::vpn_tunnels::v1:: DeleteVpnTunnelRequest const& request) override; + StatusOr DeleteVpnTunnel( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::vpn_tunnels::v1:: + DeleteVpnTunnelRequest const& request) override; + + future> DeleteVpnTunnel( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StatusOr GetVpnTunnel( google::cloud::cpp::compute::vpn_tunnels::v1::GetVpnTunnelRequest const& request) override; @@ -68,6 +77,15 @@ class VpnTunnelsRestConnectionImpl google::cloud::cpp::compute::vpn_tunnels::v1:: InsertVpnTunnelRequest const& request) override; + StatusOr InsertVpnTunnel( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::vpn_tunnels::v1:: + InsertVpnTunnelRequest const& request) override; + + future> InsertVpnTunnel( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StreamRange ListVpnTunnels( google::cloud::cpp::compute::vpn_tunnels::v1::ListVpnTunnelsRequest request) override; @@ -76,6 +94,15 @@ class VpnTunnelsRestConnectionImpl google::cloud::cpp::compute::vpn_tunnels::v1::SetLabelsRequest const& request) override; + StatusOr SetLabels( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::vpn_tunnels::v1::SetLabelsRequest const& + request) override; + + future> SetLabels( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + private: static std::unique_ptr retry_policy(Options const& options) { diff --git a/google/cloud/compute/vpn_tunnels/v1/internal/vpn_tunnels_tracing_connection.cc b/google/cloud/compute/vpn_tunnels/v1/internal/vpn_tunnels_tracing_connection.cc index 5edd668f6cea7..ca44e041f6550 100644 --- a/google/cloud/compute/vpn_tunnels/v1/internal/vpn_tunnels_tracing_connection.cc +++ b/google/cloud/compute/vpn_tunnels/v1/internal/vpn_tunnels_tracing_connection.cc @@ -57,6 +57,29 @@ VpnTunnelsTracingConnection::DeleteVpnTunnel( return internal::EndSpan(std::move(span), child_->DeleteVpnTunnel(request)); } +StatusOr +VpnTunnelsTracingConnection::DeleteVpnTunnel( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::vpn_tunnels::v1::DeleteVpnTunnelRequest const& + request) { + auto span = internal::MakeSpan( + "compute_vpn_tunnels_v1::VpnTunnelsConnection::DeleteVpnTunnel"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->DeleteVpnTunnel(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +VpnTunnelsTracingConnection::DeleteVpnTunnel( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_vpn_tunnels_v1::VpnTunnelsConnection::DeleteVpnTunnel"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->DeleteVpnTunnel(ExperimentalTag{}, operation)); +} + StatusOr VpnTunnelsTracingConnection::GetVpnTunnel( google::cloud::cpp::compute::vpn_tunnels::v1::GetVpnTunnelRequest const& @@ -77,6 +100,29 @@ VpnTunnelsTracingConnection::InsertVpnTunnel( return internal::EndSpan(std::move(span), child_->InsertVpnTunnel(request)); } +StatusOr +VpnTunnelsTracingConnection::InsertVpnTunnel( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::vpn_tunnels::v1::InsertVpnTunnelRequest const& + request) { + auto span = internal::MakeSpan( + "compute_vpn_tunnels_v1::VpnTunnelsConnection::InsertVpnTunnel"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->InsertVpnTunnel(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +VpnTunnelsTracingConnection::InsertVpnTunnel( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_vpn_tunnels_v1::VpnTunnelsConnection::InsertVpnTunnel"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->InsertVpnTunnel(ExperimentalTag{}, operation)); +} + StreamRange VpnTunnelsTracingConnection::ListVpnTunnels( google::cloud::cpp::compute::vpn_tunnels::v1::ListVpnTunnelsRequest @@ -100,6 +146,29 @@ VpnTunnelsTracingConnection::SetLabels( return internal::EndSpan(std::move(span), child_->SetLabels(request)); } +StatusOr +VpnTunnelsTracingConnection::SetLabels( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::vpn_tunnels::v1::SetLabelsRequest const& + request) { + auto span = internal::MakeSpan( + "compute_vpn_tunnels_v1::VpnTunnelsConnection::SetLabels"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->SetLabels(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +VpnTunnelsTracingConnection::SetLabels( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) { + auto span = internal::MakeSpan( + "compute_vpn_tunnels_v1::VpnTunnelsConnection::SetLabels"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->SetLabels(ExperimentalTag{}, operation)); +} + #endif // GOOGLE_CLOUD_CPP_HAVE_OPENTELEMETRY std::shared_ptr diff --git a/google/cloud/compute/vpn_tunnels/v1/internal/vpn_tunnels_tracing_connection.h b/google/cloud/compute/vpn_tunnels/v1/internal/vpn_tunnels_tracing_connection.h index 7199e9176bc3d..f776a93a3d0c7 100644 --- a/google/cloud/compute/vpn_tunnels/v1/internal/vpn_tunnels_tracing_connection.h +++ b/google/cloud/compute/vpn_tunnels/v1/internal/vpn_tunnels_tracing_connection.h @@ -50,6 +50,15 @@ class VpnTunnelsTracingConnection google::cloud::cpp::compute::vpn_tunnels::v1:: DeleteVpnTunnelRequest const& request) override; + StatusOr DeleteVpnTunnel( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::vpn_tunnels::v1:: + DeleteVpnTunnelRequest const& request) override; + + future> DeleteVpnTunnel( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StatusOr GetVpnTunnel( google::cloud::cpp::compute::vpn_tunnels::v1::GetVpnTunnelRequest const& request) override; @@ -58,6 +67,15 @@ class VpnTunnelsTracingConnection google::cloud::cpp::compute::vpn_tunnels::v1:: InsertVpnTunnelRequest const& request) override; + StatusOr InsertVpnTunnel( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::vpn_tunnels::v1:: + InsertVpnTunnelRequest const& request) override; + + future> InsertVpnTunnel( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + StreamRange ListVpnTunnels( google::cloud::cpp::compute::vpn_tunnels::v1::ListVpnTunnelsRequest request) override; @@ -66,6 +84,15 @@ class VpnTunnelsTracingConnection google::cloud::cpp::compute::vpn_tunnels::v1::SetLabelsRequest const& request) override; + StatusOr SetLabels( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::vpn_tunnels::v1::SetLabelsRequest const& + request) override; + + future> SetLabels( + ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + private: std::shared_ptr child_; }; diff --git a/google/cloud/compute/vpn_tunnels/v1/mocks/mock_vpn_tunnels_connection.h b/google/cloud/compute/vpn_tunnels/v1/mocks/mock_vpn_tunnels_connection.h index 12fd48afd2d67..98d5d4a82b24f 100644 --- a/google/cloud/compute/vpn_tunnels/v1/mocks/mock_vpn_tunnels_connection.h +++ b/google/cloud/compute/vpn_tunnels/v1/mocks/mock_vpn_tunnels_connection.h @@ -62,6 +62,19 @@ class MockVpnTunnelsConnection DeleteVpnTunnelRequest const& request), (override)); + MOCK_METHOD(StatusOr, + DeleteVpnTunnel, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::vpn_tunnels::v1:: + DeleteVpnTunnelRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteVpnTunnel, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr, GetVpnTunnel, (google::cloud::cpp::compute::vpn_tunnels::v1::GetVpnTunnelRequest const& @@ -74,6 +87,19 @@ class MockVpnTunnelsConnection InsertVpnTunnelRequest const& request), (override)); + MOCK_METHOD(StatusOr, + InsertVpnTunnel, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::vpn_tunnels::v1:: + InsertVpnTunnelRequest const& request), + (override)); + + MOCK_METHOD(future>, + InsertVpnTunnel, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD( (StreamRange), ListVpnTunnels, (google::cloud::cpp::compute::vpn_tunnels::v1::ListVpnTunnelsRequest @@ -85,6 +111,19 @@ class MockVpnTunnelsConnection (google::cloud::cpp::compute::vpn_tunnels::v1::SetLabelsRequest const& request), (override)); + + MOCK_METHOD( + StatusOr, SetLabels, + (ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::vpn_tunnels::v1::SetLabelsRequest const& + request), + (override)); + + MOCK_METHOD(future>, + SetLabels, + (ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); }; GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END diff --git a/google/cloud/compute/vpn_tunnels/v1/vpn_tunnels_connection.cc b/google/cloud/compute/vpn_tunnels/v1/vpn_tunnels_connection.cc index 058de240a4b7b..54accd9a859c4 100644 --- a/google/cloud/compute/vpn_tunnels/v1/vpn_tunnels_connection.cc +++ b/google/cloud/compute/vpn_tunnels/v1/vpn_tunnels_connection.cc @@ -54,6 +54,22 @@ VpnTunnelsConnection::DeleteVpnTunnel(google::cloud::cpp::compute::vpn_tunnels:: Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +VpnTunnelsConnection::DeleteVpnTunnel(ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::vpn_tunnels:: + v1::DeleteVpnTunnelRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +VpnTunnelsConnection::DeleteVpnTunnel( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr VpnTunnelsConnection::GetVpnTunnel( google::cloud::cpp::compute::vpn_tunnels::v1::GetVpnTunnelRequest const&) { @@ -68,6 +84,22 @@ VpnTunnelsConnection::InsertVpnTunnel(google::cloud::cpp::compute::vpn_tunnels:: Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +VpnTunnelsConnection::InsertVpnTunnel(ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::vpn_tunnels:: + v1::InsertVpnTunnelRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +VpnTunnelsConnection::InsertVpnTunnel( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StreamRange VpnTunnelsConnection::ListVpnTunnels( google::cloud::cpp::compute::vpn_tunnels::v1:: @@ -84,6 +116,22 @@ VpnTunnelsConnection::SetLabels( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +VpnTunnelsConnection::SetLabels( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::vpn_tunnels::v1::SetLabelsRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +VpnTunnelsConnection::SetLabels( + ExperimentalTag, google::cloud::cpp::compute::v1::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace compute_vpn_tunnels_v1 } // namespace cloud diff --git a/google/cloud/compute/vpn_tunnels/v1/vpn_tunnels_connection.h b/google/cloud/compute/vpn_tunnels/v1/vpn_tunnels_connection.h index 08b7a816e29c1..872c3b1773f78 100644 --- a/google/cloud/compute/vpn_tunnels/v1/vpn_tunnels_connection.h +++ b/google/cloud/compute/vpn_tunnels/v1/vpn_tunnels_connection.h @@ -22,8 +22,10 @@ #include "google/cloud/compute/vpn_tunnels/v1/internal/vpn_tunnels_retry_traits.h" #include "google/cloud/compute/vpn_tunnels/v1/vpn_tunnels_connection_idempotency_policy.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/internal/retry_policy_impl.h" +#include "google/cloud/no_await_tag.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" #include "google/cloud/status_or.h" @@ -192,6 +194,15 @@ class VpnTunnelsConnection { DeleteVpnTunnel(google::cloud::cpp::compute::vpn_tunnels::v1:: DeleteVpnTunnelRequest const& request); + virtual StatusOr DeleteVpnTunnel( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::vpn_tunnels::v1:: + DeleteVpnTunnelRequest const& request); + + virtual future> + DeleteVpnTunnel(ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual StatusOr GetVpnTunnel( google::cloud::cpp::compute::vpn_tunnels::v1::GetVpnTunnelRequest const& request); @@ -200,6 +211,15 @@ class VpnTunnelsConnection { InsertVpnTunnel(google::cloud::cpp::compute::vpn_tunnels::v1:: InsertVpnTunnelRequest const& request); + virtual StatusOr InsertVpnTunnel( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::vpn_tunnels::v1:: + InsertVpnTunnelRequest const& request); + + virtual future> + InsertVpnTunnel(ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); + virtual StreamRange ListVpnTunnels( google::cloud::cpp::compute::vpn_tunnels::v1::ListVpnTunnelsRequest @@ -209,6 +229,15 @@ class VpnTunnelsConnection { SetLabels( google::cloud::cpp::compute::vpn_tunnels::v1::SetLabelsRequest const& request); + + virtual StatusOr SetLabels( + ExperimentalTag, NoAwaitTag, + google::cloud::cpp::compute::vpn_tunnels::v1::SetLabelsRequest const& + request); + + virtual future> + SetLabels(ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation); }; GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END diff --git a/google/cloud/compute/zone_operations/v1/zone_operations_connection.h b/google/cloud/compute/zone_operations/v1/zone_operations_connection.h index d4e8903e632f6..169988962d07f 100644 --- a/google/cloud/compute/zone_operations/v1/zone_operations_connection.h +++ b/google/cloud/compute/zone_operations/v1/zone_operations_connection.h @@ -22,6 +22,7 @@ #include "google/cloud/compute/zone_operations/v1/internal/zone_operations_retry_traits.h" #include "google/cloud/compute/zone_operations/v1/zone_operations_connection_idempotency_policy.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/internal/retry_policy_impl.h" #include "google/cloud/options.h" #include "google/cloud/status_or.h" diff --git a/google/cloud/compute/zones/v1/zones_connection.h b/google/cloud/compute/zones/v1/zones_connection.h index 326f8bfee0292..93577315d9a22 100644 --- a/google/cloud/compute/zones/v1/zones_connection.h +++ b/google/cloud/compute/zones/v1/zones_connection.h @@ -22,6 +22,7 @@ #include "google/cloud/compute/zones/v1/internal/zones_retry_traits.h" #include "google/cloud/compute/zones/v1/zones_connection_idempotency_policy.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/internal/retry_policy_impl.h" #include "google/cloud/options.h" #include "google/cloud/status_or.h" diff --git a/google/cloud/confidentialcomputing/v1/confidential_computing_connection.h b/google/cloud/confidentialcomputing/v1/confidential_computing_connection.h index 36f4a71d686ce..0dc89f2422436 100644 --- a/google/cloud/confidentialcomputing/v1/confidential_computing_connection.h +++ b/google/cloud/confidentialcomputing/v1/confidential_computing_connection.h @@ -22,6 +22,7 @@ #include "google/cloud/confidentialcomputing/v1/confidential_computing_connection_idempotency_policy.h" #include "google/cloud/confidentialcomputing/v1/internal/confidential_computing_retry_traits.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/internal/retry_policy_impl.h" #include "google/cloud/options.h" #include "google/cloud/status_or.h" diff --git a/google/cloud/config/v1/config_connection.cc b/google/cloud/config/v1/config_connection.cc index 85f2d007880a4..2873f29c107ec 100644 --- a/google/cloud/config/v1/config_connection.cc +++ b/google/cloud/config/v1/config_connection.cc @@ -59,6 +59,21 @@ ConfigConnection::CreateDeployment( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr ConfigConnection::CreateDeployment( + ExperimentalTag, NoAwaitTag, + google::cloud::config::v1::CreateDeploymentRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +ConfigConnection::CreateDeployment(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> ConfigConnection::UpdateDeployment( google::cloud::config::v1::UpdateDeploymentRequest const&) { @@ -67,6 +82,21 @@ ConfigConnection::UpdateDeployment( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr ConfigConnection::UpdateDeployment( + ExperimentalTag, NoAwaitTag, + google::cloud::config::v1::UpdateDeploymentRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +ConfigConnection::UpdateDeployment(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> ConfigConnection::DeleteDeployment( google::cloud::config::v1::DeleteDeploymentRequest const&) { @@ -75,6 +105,21 @@ ConfigConnection::DeleteDeployment( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr ConfigConnection::DeleteDeployment( + ExperimentalTag, NoAwaitTag, + google::cloud::config::v1::DeleteDeploymentRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +ConfigConnection::DeleteDeployment(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StreamRange ConfigConnection::ListRevisions( google::cloud::config::v1:: @@ -132,6 +177,21 @@ ConfigConnection::LockDeployment( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr ConfigConnection::LockDeployment( + ExperimentalTag, NoAwaitTag, + google::cloud::config::v1::LockDeploymentRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +ConfigConnection::LockDeployment(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> ConfigConnection::UnlockDeployment( google::cloud::config::v1::UnlockDeploymentRequest const&) { @@ -140,6 +200,21 @@ ConfigConnection::UnlockDeployment( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr ConfigConnection::UnlockDeployment( + ExperimentalTag, NoAwaitTag, + google::cloud::config::v1::UnlockDeploymentRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +ConfigConnection::UnlockDeployment(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr ConfigConnection::ExportLockInfo( google::cloud::config::v1::ExportLockInfoRequest const&) { return Status(StatusCode::kUnimplemented, "not implemented"); @@ -153,6 +228,21 @@ ConfigConnection::CreatePreview( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr ConfigConnection::CreatePreview( + ExperimentalTag, NoAwaitTag, + google::cloud::config::v1::CreatePreviewRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +ConfigConnection::CreatePreview(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr ConfigConnection::GetPreview( google::cloud::config::v1::GetPreviewRequest const&) { return Status(StatusCode::kUnimplemented, "not implemented"); @@ -173,6 +263,21 @@ ConfigConnection::DeletePreview( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr ConfigConnection::DeletePreview( + ExperimentalTag, NoAwaitTag, + google::cloud::config::v1::DeletePreviewRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +ConfigConnection::DeletePreview(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr ConfigConnection::ExportPreviewResult( google::cloud::config::v1::ExportPreviewResultRequest const&) { diff --git a/google/cloud/config/v1/config_connection.h b/google/cloud/config/v1/config_connection.h index 0fa9bfcdc5202..fde31fa95cb60 100644 --- a/google/cloud/config/v1/config_connection.h +++ b/google/cloud/config/v1/config_connection.h @@ -22,8 +22,10 @@ #include "google/cloud/config/v1/config_connection_idempotency_policy.h" #include "google/cloud/config/v1/internal/config_retry_traits.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/internal/retry_policy_impl.h" +#include "google/cloud/no_await_tag.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" #include "google/cloud/status_or.h" @@ -191,14 +193,38 @@ class ConfigConnection { CreateDeployment( google::cloud::config::v1::CreateDeploymentRequest const& request); + virtual StatusOr CreateDeployment( + ExperimentalTag, NoAwaitTag, + google::cloud::config::v1::CreateDeploymentRequest const& request); + + virtual future> + CreateDeployment(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> UpdateDeployment( google::cloud::config::v1::UpdateDeploymentRequest const& request); + virtual StatusOr UpdateDeployment( + ExperimentalTag, NoAwaitTag, + google::cloud::config::v1::UpdateDeploymentRequest const& request); + + virtual future> + UpdateDeployment(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> DeleteDeployment( google::cloud::config::v1::DeleteDeploymentRequest const& request); + virtual StatusOr DeleteDeployment( + ExperimentalTag, NoAwaitTag, + google::cloud::config::v1::DeleteDeploymentRequest const& request); + + virtual future> + DeleteDeployment(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StreamRange ListRevisions( google::cloud::config::v1::ListRevisionsRequest request); @@ -230,16 +256,39 @@ class ConfigConnection { LockDeployment( google::cloud::config::v1::LockDeploymentRequest const& request); + virtual StatusOr LockDeployment( + ExperimentalTag, NoAwaitTag, + google::cloud::config::v1::LockDeploymentRequest const& request); + + virtual future> + LockDeployment(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> UnlockDeployment( google::cloud::config::v1::UnlockDeploymentRequest const& request); + virtual StatusOr UnlockDeployment( + ExperimentalTag, NoAwaitTag, + google::cloud::config::v1::UnlockDeploymentRequest const& request); + + virtual future> + UnlockDeployment(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StatusOr ExportLockInfo( google::cloud::config::v1::ExportLockInfoRequest const& request); virtual future> CreatePreview( google::cloud::config::v1::CreatePreviewRequest const& request); + virtual StatusOr CreatePreview( + ExperimentalTag, NoAwaitTag, + google::cloud::config::v1::CreatePreviewRequest const& request); + + virtual future> CreatePreview( + ExperimentalTag, google::longrunning::Operation const& operation); + virtual StatusOr GetPreview( google::cloud::config::v1::GetPreviewRequest const& request); @@ -249,6 +298,13 @@ class ConfigConnection { virtual future> DeletePreview( google::cloud::config::v1::DeletePreviewRequest const& request); + virtual StatusOr DeletePreview( + ExperimentalTag, NoAwaitTag, + google::cloud::config::v1::DeletePreviewRequest const& request); + + virtual future> DeletePreview( + ExperimentalTag, google::longrunning::Operation const& operation); + virtual StatusOr ExportPreviewResult( google::cloud::config::v1::ExportPreviewResultRequest const& request); diff --git a/google/cloud/config/v1/internal/config_connection_impl.cc b/google/cloud/config/v1/internal/config_connection_impl.cc index 448b3d4eb1b6b..e9a4ce8c98a9e 100644 --- a/google/cloud/config/v1/internal/config_connection_impl.cc +++ b/google/cloud/config/v1/internal/config_connection_impl.cc @@ -149,6 +149,57 @@ ConfigConnectionImpl::CreateDeployment( polling_policy(*current), __func__); } +StatusOr ConfigConnectionImpl::CreateDeployment( + ExperimentalTag, NoAwaitTag, + google::cloud::config::v1::CreateDeploymentRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateDeployment(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::config::v1::CreateDeploymentRequest const& request) { + return stub_->CreateDeployment(context, options, request); + }, + *current, request, __func__); +} + +future> +ConfigConnectionImpl::CreateDeployment( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to CreateDeployment", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::config::v1::Deployment>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::config::v1::Deployment>, + polling_policy(*current), __func__); +} + future> ConfigConnectionImpl::UpdateDeployment( google::cloud::config::v1::UpdateDeploymentRequest const& request) { @@ -188,6 +239,57 @@ ConfigConnectionImpl::UpdateDeployment( polling_policy(*current), __func__); } +StatusOr ConfigConnectionImpl::UpdateDeployment( + ExperimentalTag, NoAwaitTag, + google::cloud::config::v1::UpdateDeploymentRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UpdateDeployment(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::config::v1::UpdateDeploymentRequest const& request) { + return stub_->UpdateDeployment(context, options, request); + }, + *current, request, __func__); +} + +future> +ConfigConnectionImpl::UpdateDeployment( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to UpdateDeployment", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::config::v1::Deployment>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::config::v1::Deployment>, + polling_policy(*current), __func__); +} + future> ConfigConnectionImpl::DeleteDeployment( google::cloud::config::v1::DeleteDeploymentRequest const& request) { @@ -227,6 +329,57 @@ ConfigConnectionImpl::DeleteDeployment( polling_policy(*current), __func__); } +StatusOr ConfigConnectionImpl::DeleteDeployment( + ExperimentalTag, NoAwaitTag, + google::cloud::config::v1::DeleteDeploymentRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteDeployment(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::config::v1::DeleteDeploymentRequest const& request) { + return stub_->DeleteDeployment(context, options, request); + }, + *current, request, __func__); +} + +future> +ConfigConnectionImpl::DeleteDeployment( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteDeployment", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::config::v1::Deployment>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::config::v1::Deployment>, + polling_policy(*current), __func__); +} + StreamRange ConfigConnectionImpl::ListRevisions( google::cloud::config::v1::ListRevisionsRequest request) { @@ -418,6 +571,56 @@ ConfigConnectionImpl::LockDeployment( polling_policy(*current), __func__); } +StatusOr ConfigConnectionImpl::LockDeployment( + ExperimentalTag, NoAwaitTag, + google::cloud::config::v1::LockDeploymentRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->LockDeployment(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::config::v1::LockDeploymentRequest const& request) { + return stub_->LockDeployment(context, options, request); + }, + *current, request, __func__); +} + +future> +ConfigConnectionImpl::LockDeployment( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to LockDeployment", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::config::v1::Deployment>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::config::v1::Deployment>, + polling_policy(*current), __func__); +} + future> ConfigConnectionImpl::UnlockDeployment( google::cloud::config::v1::UnlockDeploymentRequest const& request) { @@ -457,6 +660,57 @@ ConfigConnectionImpl::UnlockDeployment( polling_policy(*current), __func__); } +StatusOr ConfigConnectionImpl::UnlockDeployment( + ExperimentalTag, NoAwaitTag, + google::cloud::config::v1::UnlockDeploymentRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UnlockDeployment(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::config::v1::UnlockDeploymentRequest const& request) { + return stub_->UnlockDeployment(context, options, request); + }, + *current, request, __func__); +} + +future> +ConfigConnectionImpl::UnlockDeployment( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to UnlockDeployment", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::config::v1::Deployment>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::config::v1::Deployment>, + polling_policy(*current), __func__); +} + StatusOr ConfigConnectionImpl::ExportLockInfo( google::cloud::config::v1::ExportLockInfoRequest const& request) { @@ -510,6 +764,56 @@ ConfigConnectionImpl::CreatePreview( polling_policy(*current), __func__); } +StatusOr ConfigConnectionImpl::CreatePreview( + ExperimentalTag, NoAwaitTag, + google::cloud::config::v1::CreatePreviewRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreatePreview(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::config::v1::CreatePreviewRequest const& request) { + return stub_->CreatePreview(context, options, request); + }, + *current, request, __func__); +} + +future> +ConfigConnectionImpl::CreatePreview( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to CreatePreview", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::config::v1::Preview>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::config::v1::Preview>, + polling_policy(*current), __func__); +} + StatusOr ConfigConnectionImpl::GetPreview( google::cloud::config::v1::GetPreviewRequest const& request) { auto current = google::cloud::internal::SaveCurrentOptions(); @@ -596,6 +900,56 @@ ConfigConnectionImpl::DeletePreview( polling_policy(*current), __func__); } +StatusOr ConfigConnectionImpl::DeletePreview( + ExperimentalTag, NoAwaitTag, + google::cloud::config::v1::DeletePreviewRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeletePreview(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::config::v1::DeletePreviewRequest const& request) { + return stub_->DeletePreview(context, options, request); + }, + *current, request, __func__); +} + +future> +ConfigConnectionImpl::DeletePreview( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to DeletePreview", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::config::v1::Preview>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::config::v1::Preview>, + polling_policy(*current), __func__); +} + StatusOr ConfigConnectionImpl::ExportPreviewResult( google::cloud::config::v1::ExportPreviewResultRequest const& request) { diff --git a/google/cloud/config/v1/internal/config_connection_impl.h b/google/cloud/config/v1/internal/config_connection_impl.h index f0a316387d189..403a51cc7a5d9 100644 --- a/google/cloud/config/v1/internal/config_connection_impl.h +++ b/google/cloud/config/v1/internal/config_connection_impl.h @@ -60,14 +60,41 @@ class ConfigConnectionImpl : public config_v1::ConfigConnection { google::cloud::config::v1::CreateDeploymentRequest const& request) override; + StatusOr CreateDeployment( + ExperimentalTag, NoAwaitTag, + google::cloud::config::v1::CreateDeploymentRequest const& request) + override; + + future> CreateDeployment( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateDeployment( google::cloud::config::v1::UpdateDeploymentRequest const& request) override; + StatusOr UpdateDeployment( + ExperimentalTag, NoAwaitTag, + google::cloud::config::v1::UpdateDeploymentRequest const& request) + override; + + future> UpdateDeployment( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteDeployment( google::cloud::config::v1::DeleteDeploymentRequest const& request) override; + StatusOr DeleteDeployment( + ExperimentalTag, NoAwaitTag, + google::cloud::config::v1::DeleteDeploymentRequest const& request) + override; + + future> DeleteDeployment( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListRevisions( google::cloud::config::v1::ListRevisionsRequest request) override; @@ -99,16 +126,41 @@ class ConfigConnectionImpl : public config_v1::ConfigConnection { future> LockDeployment( google::cloud::config::v1::LockDeploymentRequest const& request) override; + StatusOr LockDeployment( + ExperimentalTag, NoAwaitTag, + google::cloud::config::v1::LockDeploymentRequest const& request) override; + + future> LockDeployment( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UnlockDeployment( google::cloud::config::v1::UnlockDeploymentRequest const& request) override; + StatusOr UnlockDeployment( + ExperimentalTag, NoAwaitTag, + google::cloud::config::v1::UnlockDeploymentRequest const& request) + override; + + future> UnlockDeployment( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr ExportLockInfo( google::cloud::config::v1::ExportLockInfoRequest const& request) override; future> CreatePreview( google::cloud::config::v1::CreatePreviewRequest const& request) override; + StatusOr CreatePreview( + ExperimentalTag, NoAwaitTag, + google::cloud::config::v1::CreatePreviewRequest const& request) override; + + future> CreatePreview( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetPreview( google::cloud::config::v1::GetPreviewRequest const& request) override; @@ -118,6 +170,14 @@ class ConfigConnectionImpl : public config_v1::ConfigConnection { future> DeletePreview( google::cloud::config::v1::DeletePreviewRequest const& request) override; + StatusOr DeletePreview( + ExperimentalTag, NoAwaitTag, + google::cloud::config::v1::DeletePreviewRequest const& request) override; + + future> DeletePreview( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr ExportPreviewResult( google::cloud::config::v1::ExportPreviewResultRequest const& request) diff --git a/google/cloud/config/v1/internal/config_tracing_connection.cc b/google/cloud/config/v1/internal/config_tracing_connection.cc index 04663725300a6..212a6beeb2c3c 100644 --- a/google/cloud/config/v1/internal/config_tracing_connection.cc +++ b/google/cloud/config/v1/internal/config_tracing_connection.cc @@ -61,6 +61,28 @@ ConfigTracingConnection::CreateDeployment( return internal::EndSpan(std::move(span), child_->CreateDeployment(request)); } +StatusOr +ConfigTracingConnection::CreateDeployment( + ExperimentalTag, NoAwaitTag, + google::cloud::config::v1::CreateDeploymentRequest const& request) { + auto span = + internal::MakeSpan("config_v1::ConfigConnection::CreateDeployment"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->CreateDeployment(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +ConfigTracingConnection::CreateDeployment( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = + internal::MakeSpan("config_v1::ConfigConnection::CreateDeployment"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->CreateDeployment(ExperimentalTag{}, operation)); +} + future> ConfigTracingConnection::UpdateDeployment( google::cloud::config::v1::UpdateDeploymentRequest const& request) { @@ -70,6 +92,28 @@ ConfigTracingConnection::UpdateDeployment( return internal::EndSpan(std::move(span), child_->UpdateDeployment(request)); } +StatusOr +ConfigTracingConnection::UpdateDeployment( + ExperimentalTag, NoAwaitTag, + google::cloud::config::v1::UpdateDeploymentRequest const& request) { + auto span = + internal::MakeSpan("config_v1::ConfigConnection::UpdateDeployment"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->UpdateDeployment(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +ConfigTracingConnection::UpdateDeployment( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = + internal::MakeSpan("config_v1::ConfigConnection::UpdateDeployment"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->UpdateDeployment(ExperimentalTag{}, operation)); +} + future> ConfigTracingConnection::DeleteDeployment( google::cloud::config::v1::DeleteDeploymentRequest const& request) { @@ -79,6 +123,28 @@ ConfigTracingConnection::DeleteDeployment( return internal::EndSpan(std::move(span), child_->DeleteDeployment(request)); } +StatusOr +ConfigTracingConnection::DeleteDeployment( + ExperimentalTag, NoAwaitTag, + google::cloud::config::v1::DeleteDeploymentRequest const& request) { + auto span = + internal::MakeSpan("config_v1::ConfigConnection::DeleteDeployment"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->DeleteDeployment(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +ConfigTracingConnection::DeleteDeployment( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = + internal::MakeSpan("config_v1::ConfigConnection::DeleteDeployment"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->DeleteDeployment(ExperimentalTag{}, operation)); +} + StreamRange ConfigTracingConnection::ListRevisions( google::cloud::config::v1::ListRevisionsRequest request) { @@ -159,6 +225,25 @@ ConfigTracingConnection::LockDeployment( return internal::EndSpan(std::move(span), child_->LockDeployment(request)); } +StatusOr +ConfigTracingConnection::LockDeployment( + ExperimentalTag, NoAwaitTag, + google::cloud::config::v1::LockDeploymentRequest const& request) { + auto span = internal::MakeSpan("config_v1::ConfigConnection::LockDeployment"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->LockDeployment(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +ConfigTracingConnection::LockDeployment( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan("config_v1::ConfigConnection::LockDeployment"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->LockDeployment(ExperimentalTag{}, operation)); +} + future> ConfigTracingConnection::UnlockDeployment( google::cloud::config::v1::UnlockDeploymentRequest const& request) { @@ -168,6 +253,28 @@ ConfigTracingConnection::UnlockDeployment( return internal::EndSpan(std::move(span), child_->UnlockDeployment(request)); } +StatusOr +ConfigTracingConnection::UnlockDeployment( + ExperimentalTag, NoAwaitTag, + google::cloud::config::v1::UnlockDeploymentRequest const& request) { + auto span = + internal::MakeSpan("config_v1::ConfigConnection::UnlockDeployment"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->UnlockDeployment(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +ConfigTracingConnection::UnlockDeployment( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = + internal::MakeSpan("config_v1::ConfigConnection::UnlockDeployment"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->UnlockDeployment(ExperimentalTag{}, operation)); +} + StatusOr ConfigTracingConnection::ExportLockInfo( google::cloud::config::v1::ExportLockInfoRequest const& request) { @@ -184,6 +291,24 @@ ConfigTracingConnection::CreatePreview( return internal::EndSpan(std::move(span), child_->CreatePreview(request)); } +StatusOr ConfigTracingConnection::CreatePreview( + ExperimentalTag, NoAwaitTag, + google::cloud::config::v1::CreatePreviewRequest const& request) { + auto span = internal::MakeSpan("config_v1::ConfigConnection::CreatePreview"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->CreatePreview(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +ConfigTracingConnection::CreatePreview( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan("config_v1::ConfigConnection::CreatePreview"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->CreatePreview(ExperimentalTag{}, operation)); +} + StatusOr ConfigTracingConnection::GetPreview( google::cloud::config::v1::GetPreviewRequest const& request) { @@ -210,6 +335,24 @@ ConfigTracingConnection::DeletePreview( return internal::EndSpan(std::move(span), child_->DeletePreview(request)); } +StatusOr ConfigTracingConnection::DeletePreview( + ExperimentalTag, NoAwaitTag, + google::cloud::config::v1::DeletePreviewRequest const& request) { + auto span = internal::MakeSpan("config_v1::ConfigConnection::DeletePreview"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->DeletePreview(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +ConfigTracingConnection::DeletePreview( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan("config_v1::ConfigConnection::DeletePreview"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->DeletePreview(ExperimentalTag{}, operation)); +} + StatusOr ConfigTracingConnection::ExportPreviewResult( google::cloud::config::v1::ExportPreviewResultRequest const& request) { diff --git a/google/cloud/config/v1/internal/config_tracing_connection.h b/google/cloud/config/v1/internal/config_tracing_connection.h index 2746513daa4df..adf2129923694 100644 --- a/google/cloud/config/v1/internal/config_tracing_connection.h +++ b/google/cloud/config/v1/internal/config_tracing_connection.h @@ -49,14 +49,41 @@ class ConfigTracingConnection : public config_v1::ConfigConnection { google::cloud::config::v1::CreateDeploymentRequest const& request) override; + StatusOr CreateDeployment( + ExperimentalTag, NoAwaitTag, + google::cloud::config::v1::CreateDeploymentRequest const& request) + override; + + future> CreateDeployment( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateDeployment( google::cloud::config::v1::UpdateDeploymentRequest const& request) override; + StatusOr UpdateDeployment( + ExperimentalTag, NoAwaitTag, + google::cloud::config::v1::UpdateDeploymentRequest const& request) + override; + + future> UpdateDeployment( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteDeployment( google::cloud::config::v1::DeleteDeploymentRequest const& request) override; + StatusOr DeleteDeployment( + ExperimentalTag, NoAwaitTag, + google::cloud::config::v1::DeleteDeploymentRequest const& request) + override; + + future> DeleteDeployment( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListRevisions( google::cloud::config::v1::ListRevisionsRequest request) override; @@ -88,16 +115,41 @@ class ConfigTracingConnection : public config_v1::ConfigConnection { future> LockDeployment( google::cloud::config::v1::LockDeploymentRequest const& request) override; + StatusOr LockDeployment( + ExperimentalTag, NoAwaitTag, + google::cloud::config::v1::LockDeploymentRequest const& request) override; + + future> LockDeployment( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UnlockDeployment( google::cloud::config::v1::UnlockDeploymentRequest const& request) override; + StatusOr UnlockDeployment( + ExperimentalTag, NoAwaitTag, + google::cloud::config::v1::UnlockDeploymentRequest const& request) + override; + + future> UnlockDeployment( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr ExportLockInfo( google::cloud::config::v1::ExportLockInfoRequest const& request) override; future> CreatePreview( google::cloud::config::v1::CreatePreviewRequest const& request) override; + StatusOr CreatePreview( + ExperimentalTag, NoAwaitTag, + google::cloud::config::v1::CreatePreviewRequest const& request) override; + + future> CreatePreview( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetPreview( google::cloud::config::v1::GetPreviewRequest const& request) override; @@ -107,6 +159,14 @@ class ConfigTracingConnection : public config_v1::ConfigConnection { future> DeletePreview( google::cloud::config::v1::DeletePreviewRequest const& request) override; + StatusOr DeletePreview( + ExperimentalTag, NoAwaitTag, + google::cloud::config::v1::DeletePreviewRequest const& request) override; + + future> DeletePreview( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr ExportPreviewResult( google::cloud::config::v1::ExportPreviewResultRequest const& request) diff --git a/google/cloud/config/v1/mocks/mock_config_connection.h b/google/cloud/config/v1/mocks/mock_config_connection.h index 6b43dd7a132de..9767f6a7bac41 100644 --- a/google/cloud/config/v1/mocks/mock_config_connection.h +++ b/google/cloud/config/v1/mocks/mock_config_connection.h @@ -60,16 +60,52 @@ class MockConfigConnection : public config_v1::ConfigConnection { (google::cloud::config::v1::CreateDeploymentRequest const& request), (override)); + MOCK_METHOD( + StatusOr, CreateDeployment, + (ExperimentalTag, NoAwaitTag, + google::cloud::config::v1::CreateDeploymentRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateDeployment, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, UpdateDeployment, (google::cloud::config::v1::UpdateDeploymentRequest const& request), (override)); + MOCK_METHOD( + StatusOr, UpdateDeployment, + (ExperimentalTag, NoAwaitTag, + google::cloud::config::v1::UpdateDeploymentRequest const& request), + (override)); + + MOCK_METHOD(future>, + UpdateDeployment, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteDeployment, (google::cloud::config::v1::DeleteDeploymentRequest const& request), (override)); + MOCK_METHOD( + StatusOr, DeleteDeployment, + (ExperimentalTag, NoAwaitTag, + google::cloud::config::v1::DeleteDeploymentRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteDeployment, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD((StreamRange), ListRevisions, (google::cloud::config::v1::ListRevisionsRequest request), (override)); @@ -113,11 +149,34 @@ class MockConfigConnection : public config_v1::ConfigConnection { (google::cloud::config::v1::LockDeploymentRequest const& request), (override)); + MOCK_METHOD(StatusOr, LockDeployment, + (ExperimentalTag, NoAwaitTag, + google::cloud::config::v1::LockDeploymentRequest const& request), + (override)); + + MOCK_METHOD(future>, + LockDeployment, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, UnlockDeployment, (google::cloud::config::v1::UnlockDeploymentRequest const& request), (override)); + MOCK_METHOD( + StatusOr, UnlockDeployment, + (ExperimentalTag, NoAwaitTag, + google::cloud::config::v1::UnlockDeploymentRequest const& request), + (override)); + + MOCK_METHOD(future>, + UnlockDeployment, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(StatusOr, ExportLockInfo, (google::cloud::config::v1::ExportLockInfoRequest const& request), (override)); @@ -127,6 +186,17 @@ class MockConfigConnection : public config_v1::ConfigConnection { (google::cloud::config::v1::CreatePreviewRequest const& request), (override)); + MOCK_METHOD(StatusOr, CreatePreview, + (ExperimentalTag, NoAwaitTag, + google::cloud::config::v1::CreatePreviewRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreatePreview, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(StatusOr, GetPreview, (google::cloud::config::v1::GetPreviewRequest const& request), (override)); @@ -140,6 +210,17 @@ class MockConfigConnection : public config_v1::ConfigConnection { (google::cloud::config::v1::DeletePreviewRequest const& request), (override)); + MOCK_METHOD(StatusOr, DeletePreview, + (ExperimentalTag, NoAwaitTag, + google::cloud::config::v1::DeletePreviewRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeletePreview, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr, ExportPreviewResult, diff --git a/google/cloud/connectors/v1/connectors_connection.cc b/google/cloud/connectors/v1/connectors_connection.cc index a8c9b3f8da5ab..56abcf5dacd50 100644 --- a/google/cloud/connectors/v1/connectors_connection.cc +++ b/google/cloud/connectors/v1/connectors_connection.cc @@ -60,6 +60,21 @@ ConnectorsConnection::CreateConnection( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr ConnectorsConnection::CreateConnection( + ExperimentalTag, NoAwaitTag, + google::cloud::connectors::v1::CreateConnectionRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +ConnectorsConnection::CreateConnection(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> ConnectorsConnection::UpdateConnection( google::cloud::connectors::v1::UpdateConnectionRequest const&) { @@ -68,6 +83,21 @@ ConnectorsConnection::UpdateConnection( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr ConnectorsConnection::UpdateConnection( + ExperimentalTag, NoAwaitTag, + google::cloud::connectors::v1::UpdateConnectionRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +ConnectorsConnection::UpdateConnection(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> ConnectorsConnection::DeleteConnection( google::cloud::connectors::v1::DeleteConnectionRequest const&) { @@ -76,6 +106,21 @@ ConnectorsConnection::DeleteConnection( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr ConnectorsConnection::DeleteConnection( + ExperimentalTag, NoAwaitTag, + google::cloud::connectors::v1::DeleteConnectionRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +ConnectorsConnection::DeleteConnection(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StreamRange ConnectorsConnection::ListProviders( google::cloud::connectors::v1:: @@ -133,6 +178,23 @@ ConnectorsConnection::RefreshConnectionSchemaMetadata( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +ConnectorsConnection::RefreshConnectionSchemaMetadata( + ExperimentalTag, NoAwaitTag, + google::cloud::connectors::v1:: + RefreshConnectionSchemaMetadataRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +ConnectorsConnection::RefreshConnectionSchemaMetadata( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StreamRange ConnectorsConnection::ListRuntimeEntitySchemas( google::cloud::connectors::v1:: diff --git a/google/cloud/connectors/v1/connectors_connection.h b/google/cloud/connectors/v1/connectors_connection.h index d545f74725a8a..fb10493aeb032 100644 --- a/google/cloud/connectors/v1/connectors_connection.h +++ b/google/cloud/connectors/v1/connectors_connection.h @@ -22,8 +22,10 @@ #include "google/cloud/connectors/v1/connectors_connection_idempotency_policy.h" #include "google/cloud/connectors/v1/internal/connectors_retry_traits.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/internal/retry_policy_impl.h" +#include "google/cloud/no_await_tag.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" #include "google/cloud/status_or.h" @@ -195,14 +197,38 @@ class ConnectorsConnection { CreateConnection( google::cloud::connectors::v1::CreateConnectionRequest const& request); + virtual StatusOr CreateConnection( + ExperimentalTag, NoAwaitTag, + google::cloud::connectors::v1::CreateConnectionRequest const& request); + + virtual future> + CreateConnection(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> UpdateConnection( google::cloud::connectors::v1::UpdateConnectionRequest const& request); + virtual StatusOr UpdateConnection( + ExperimentalTag, NoAwaitTag, + google::cloud::connectors::v1::UpdateConnectionRequest const& request); + + virtual future> + UpdateConnection(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> DeleteConnection( google::cloud::connectors::v1::DeleteConnectionRequest const& request); + virtual StatusOr DeleteConnection( + ExperimentalTag, NoAwaitTag, + google::cloud::connectors::v1::DeleteConnectionRequest const& request); + + virtual future> + DeleteConnection(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StreamRange ListProviders( google::cloud::connectors::v1::ListProvidersRequest request); @@ -234,6 +260,17 @@ class ConnectorsConnection { google::cloud::connectors::v1:: RefreshConnectionSchemaMetadataRequest const& request); + virtual StatusOr + RefreshConnectionSchemaMetadata( + ExperimentalTag, NoAwaitTag, + google::cloud::connectors::v1:: + RefreshConnectionSchemaMetadataRequest const& request); + + virtual future< + StatusOr> + RefreshConnectionSchemaMetadata( + ExperimentalTag, google::longrunning::Operation const& operation); + virtual StreamRange ListRuntimeEntitySchemas( google::cloud::connectors::v1::ListRuntimeEntitySchemasRequest request); diff --git a/google/cloud/connectors/v1/internal/connectors_connection_impl.cc b/google/cloud/connectors/v1/internal/connectors_connection_impl.cc index 772d24f646380..f1c5f4543d24a 100644 --- a/google/cloud/connectors/v1/internal/connectors_connection_impl.cc +++ b/google/cloud/connectors/v1/internal/connectors_connection_impl.cc @@ -153,6 +153,59 @@ ConnectorsConnectionImpl::CreateConnection( polling_policy(*current), __func__); } +StatusOr +ConnectorsConnectionImpl::CreateConnection( + ExperimentalTag, NoAwaitTag, + google::cloud::connectors::v1::CreateConnectionRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateConnection(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::connectors::v1::CreateConnectionRequest const& + request) { + return stub_->CreateConnection(context, options, request); + }, + *current, request, __func__); +} + +future> +ConnectorsConnectionImpl::CreateConnection( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to CreateConnection", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::connectors::v1::Connection>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::connectors::v1::Connection>, + polling_policy(*current), __func__); +} + future> ConnectorsConnectionImpl::UpdateConnection( google::cloud::connectors::v1::UpdateConnectionRequest const& request) { @@ -193,6 +246,59 @@ ConnectorsConnectionImpl::UpdateConnection( polling_policy(*current), __func__); } +StatusOr +ConnectorsConnectionImpl::UpdateConnection( + ExperimentalTag, NoAwaitTag, + google::cloud::connectors::v1::UpdateConnectionRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UpdateConnection(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::connectors::v1::UpdateConnectionRequest const& + request) { + return stub_->UpdateConnection(context, options, request); + }, + *current, request, __func__); +} + +future> +ConnectorsConnectionImpl::UpdateConnection( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to UpdateConnection", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::connectors::v1::Connection>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::connectors::v1::Connection>, + polling_policy(*current), __func__); +} + future> ConnectorsConnectionImpl::DeleteConnection( google::cloud::connectors::v1::DeleteConnectionRequest const& request) { @@ -233,6 +339,59 @@ ConnectorsConnectionImpl::DeleteConnection( polling_policy(*current), __func__); } +StatusOr +ConnectorsConnectionImpl::DeleteConnection( + ExperimentalTag, NoAwaitTag, + google::cloud::connectors::v1::DeleteConnectionRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteConnection(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::connectors::v1::DeleteConnectionRequest const& + request) { + return stub_->DeleteConnection(context, options, request); + }, + *current, request, __func__); +} + +future> +ConnectorsConnectionImpl::DeleteConnection( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteConnection", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::connectors::v1::OperationMetadata>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::cloud::connectors::v1::OperationMetadata>, + polling_policy(*current), __func__); +} + StreamRange ConnectorsConnectionImpl::ListProviders( google::cloud::connectors::v1::ListProvidersRequest request) { @@ -439,6 +598,61 @@ ConnectorsConnectionImpl::RefreshConnectionSchemaMetadata( polling_policy(*current), __func__); } +StatusOr +ConnectorsConnectionImpl::RefreshConnectionSchemaMetadata( + ExperimentalTag, NoAwaitTag, + google::cloud::connectors::v1::RefreshConnectionSchemaMetadataRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->RefreshConnectionSchemaMetadata(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::connectors::v1:: + RefreshConnectionSchemaMetadataRequest const& request) { + return stub_->RefreshConnectionSchemaMetadata(context, options, + request); + }, + *current, request, __func__); +} + +future> +ConnectorsConnectionImpl::RefreshConnectionSchemaMetadata( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to RefreshConnectionSchemaMetadata", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::connectors::v1::ConnectionSchemaMetadata>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::connectors::v1::ConnectionSchemaMetadata>, + polling_policy(*current), __func__); +} + StreamRange ConnectorsConnectionImpl::ListRuntimeEntitySchemas( google::cloud::connectors::v1::ListRuntimeEntitySchemasRequest request) { diff --git a/google/cloud/connectors/v1/internal/connectors_connection_impl.h b/google/cloud/connectors/v1/internal/connectors_connection_impl.h index 605f95968837b..89d904b3b03f5 100644 --- a/google/cloud/connectors/v1/internal/connectors_connection_impl.h +++ b/google/cloud/connectors/v1/internal/connectors_connection_impl.h @@ -62,14 +62,41 @@ class ConnectorsConnectionImpl : public connectors_v1::ConnectorsConnection { google::cloud::connectors::v1::CreateConnectionRequest const& request) override; + StatusOr CreateConnection( + ExperimentalTag, NoAwaitTag, + google::cloud::connectors::v1::CreateConnectionRequest const& request) + override; + + future> CreateConnection( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateConnection( google::cloud::connectors::v1::UpdateConnectionRequest const& request) override; + StatusOr UpdateConnection( + ExperimentalTag, NoAwaitTag, + google::cloud::connectors::v1::UpdateConnectionRequest const& request) + override; + + future> UpdateConnection( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteConnection(google::cloud::connectors::v1::DeleteConnectionRequest const& request) override; + StatusOr DeleteConnection( + ExperimentalTag, NoAwaitTag, + google::cloud::connectors::v1::DeleteConnectionRequest const& request) + override; + + future> + DeleteConnection(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListProviders( google::cloud::connectors::v1::ListProvidersRequest request) override; @@ -103,6 +130,16 @@ class ConnectorsConnectionImpl : public connectors_v1::ConnectorsConnection { google::cloud::connectors::v1:: RefreshConnectionSchemaMetadataRequest const& request) override; + StatusOr RefreshConnectionSchemaMetadata( + ExperimentalTag, NoAwaitTag, + google::cloud::connectors::v1:: + RefreshConnectionSchemaMetadataRequest const& request) override; + + future> + RefreshConnectionSchemaMetadata( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListRuntimeEntitySchemas( google::cloud::connectors::v1::ListRuntimeEntitySchemasRequest request) diff --git a/google/cloud/connectors/v1/internal/connectors_tracing_connection.cc b/google/cloud/connectors/v1/internal/connectors_tracing_connection.cc index 9e08e3b783177..66c0394e36f4a 100644 --- a/google/cloud/connectors/v1/internal/connectors_tracing_connection.cc +++ b/google/cloud/connectors/v1/internal/connectors_tracing_connection.cc @@ -63,6 +63,28 @@ ConnectorsTracingConnection::CreateConnection( return internal::EndSpan(std::move(span), child_->CreateConnection(request)); } +StatusOr +ConnectorsTracingConnection::CreateConnection( + ExperimentalTag, NoAwaitTag, + google::cloud::connectors::v1::CreateConnectionRequest const& request) { + auto span = internal::MakeSpan( + "connectors_v1::ConnectorsConnection::CreateConnection"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->CreateConnection(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +ConnectorsTracingConnection::CreateConnection( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "connectors_v1::ConnectorsConnection::CreateConnection"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->CreateConnection(ExperimentalTag{}, operation)); +} + future> ConnectorsTracingConnection::UpdateConnection( google::cloud::connectors::v1::UpdateConnectionRequest const& request) { @@ -72,6 +94,28 @@ ConnectorsTracingConnection::UpdateConnection( return internal::EndSpan(std::move(span), child_->UpdateConnection(request)); } +StatusOr +ConnectorsTracingConnection::UpdateConnection( + ExperimentalTag, NoAwaitTag, + google::cloud::connectors::v1::UpdateConnectionRequest const& request) { + auto span = internal::MakeSpan( + "connectors_v1::ConnectorsConnection::UpdateConnection"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->UpdateConnection(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +ConnectorsTracingConnection::UpdateConnection( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "connectors_v1::ConnectorsConnection::UpdateConnection"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->UpdateConnection(ExperimentalTag{}, operation)); +} + future> ConnectorsTracingConnection::DeleteConnection( google::cloud::connectors::v1::DeleteConnectionRequest const& request) { @@ -81,6 +125,28 @@ ConnectorsTracingConnection::DeleteConnection( return internal::EndSpan(std::move(span), child_->DeleteConnection(request)); } +StatusOr +ConnectorsTracingConnection::DeleteConnection( + ExperimentalTag, NoAwaitTag, + google::cloud::connectors::v1::DeleteConnectionRequest const& request) { + auto span = internal::MakeSpan( + "connectors_v1::ConnectorsConnection::DeleteConnection"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->DeleteConnection(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +ConnectorsTracingConnection::DeleteConnection( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "connectors_v1::ConnectorsConnection::DeleteConnection"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->DeleteConnection(ExperimentalTag{}, operation)); +} + StreamRange ConnectorsTracingConnection::ListProviders( google::cloud::connectors::v1::ListProvidersRequest request) { @@ -163,6 +229,30 @@ ConnectorsTracingConnection::RefreshConnectionSchemaMetadata( child_->RefreshConnectionSchemaMetadata(request)); } +StatusOr +ConnectorsTracingConnection::RefreshConnectionSchemaMetadata( + ExperimentalTag, NoAwaitTag, + google::cloud::connectors::v1::RefreshConnectionSchemaMetadataRequest const& + request) { + auto span = internal::MakeSpan( + "connectors_v1::ConnectorsConnection::RefreshConnectionSchemaMetadata"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->RefreshConnectionSchemaMetadata(ExperimentalTag{}, + NoAwaitTag{}, request)); +} + +future> +ConnectorsTracingConnection::RefreshConnectionSchemaMetadata( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "connectors_v1::ConnectorsConnection::RefreshConnectionSchemaMetadata"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), + child_->RefreshConnectionSchemaMetadata(ExperimentalTag{}, operation)); +} + StreamRange ConnectorsTracingConnection::ListRuntimeEntitySchemas( google::cloud::connectors::v1::ListRuntimeEntitySchemasRequest request) { diff --git a/google/cloud/connectors/v1/internal/connectors_tracing_connection.h b/google/cloud/connectors/v1/internal/connectors_tracing_connection.h index 17979b7664e96..6eafcbaf80d6a 100644 --- a/google/cloud/connectors/v1/internal/connectors_tracing_connection.h +++ b/google/cloud/connectors/v1/internal/connectors_tracing_connection.h @@ -50,14 +50,41 @@ class ConnectorsTracingConnection : public connectors_v1::ConnectorsConnection { google::cloud::connectors::v1::CreateConnectionRequest const& request) override; + StatusOr CreateConnection( + ExperimentalTag, NoAwaitTag, + google::cloud::connectors::v1::CreateConnectionRequest const& request) + override; + + future> CreateConnection( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateConnection( google::cloud::connectors::v1::UpdateConnectionRequest const& request) override; + StatusOr UpdateConnection( + ExperimentalTag, NoAwaitTag, + google::cloud::connectors::v1::UpdateConnectionRequest const& request) + override; + + future> UpdateConnection( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteConnection(google::cloud::connectors::v1::DeleteConnectionRequest const& request) override; + StatusOr DeleteConnection( + ExperimentalTag, NoAwaitTag, + google::cloud::connectors::v1::DeleteConnectionRequest const& request) + override; + + future> + DeleteConnection(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListProviders( google::cloud::connectors::v1::ListProvidersRequest request) override; @@ -91,6 +118,16 @@ class ConnectorsTracingConnection : public connectors_v1::ConnectorsConnection { google::cloud::connectors::v1:: RefreshConnectionSchemaMetadataRequest const& request) override; + StatusOr RefreshConnectionSchemaMetadata( + ExperimentalTag, NoAwaitTag, + google::cloud::connectors::v1:: + RefreshConnectionSchemaMetadataRequest const& request) override; + + future> + RefreshConnectionSchemaMetadata( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListRuntimeEntitySchemas( google::cloud::connectors::v1::ListRuntimeEntitySchemasRequest request) diff --git a/google/cloud/connectors/v1/mocks/mock_connectors_connection.h b/google/cloud/connectors/v1/mocks/mock_connectors_connection.h index 39ab7a135a498..4acb12b944fb9 100644 --- a/google/cloud/connectors/v1/mocks/mock_connectors_connection.h +++ b/google/cloud/connectors/v1/mocks/mock_connectors_connection.h @@ -62,18 +62,54 @@ class MockConnectorsConnection : public connectors_v1::ConnectorsConnection { (google::cloud::connectors::v1::CreateConnectionRequest const& request), (override)); + MOCK_METHOD( + StatusOr, CreateConnection, + (ExperimentalTag, NoAwaitTag, + google::cloud::connectors::v1::CreateConnectionRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateConnection, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, UpdateConnection, (google::cloud::connectors::v1::UpdateConnectionRequest const& request), (override)); + MOCK_METHOD( + StatusOr, UpdateConnection, + (ExperimentalTag, NoAwaitTag, + google::cloud::connectors::v1::UpdateConnectionRequest const& request), + (override)); + + MOCK_METHOD(future>, + UpdateConnection, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteConnection, (google::cloud::connectors::v1::DeleteConnectionRequest const& request), (override)); + MOCK_METHOD( + StatusOr, DeleteConnection, + (ExperimentalTag, NoAwaitTag, + google::cloud::connectors::v1::DeleteConnectionRequest const& request), + (override)); + + MOCK_METHOD( + future>, + DeleteConnection, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD((StreamRange), ListProviders, (google::cloud::connectors::v1::ListProvidersRequest request), @@ -120,6 +156,19 @@ class MockConnectorsConnection : public connectors_v1::ConnectorsConnection { RefreshConnectionSchemaMetadataRequest const& request), (override)); + MOCK_METHOD(StatusOr, + RefreshConnectionSchemaMetadata, + (ExperimentalTag, NoAwaitTag, + google::cloud::connectors::v1:: + RefreshConnectionSchemaMetadataRequest const& request), + (override)); + + MOCK_METHOD( + future>, + RefreshConnectionSchemaMetadata, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( (StreamRange), ListRuntimeEntitySchemas, diff --git a/google/cloud/contactcenterinsights/v1/contact_center_insights_connection.cc b/google/cloud/contactcenterinsights/v1/contact_center_insights_connection.cc index adfeec6dbfe39..5b003d1211c77 100644 --- a/google/cloud/contactcenterinsights/v1/contact_center_insights_connection.cc +++ b/google/cloud/contactcenterinsights/v1/contact_center_insights_connection.cc @@ -54,6 +54,23 @@ ContactCenterInsightsConnection::UploadConversation( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +ContactCenterInsightsConnection::UploadConversation( + ExperimentalTag, NoAwaitTag, + google::cloud::contactcenterinsights::v1:: + UploadConversationRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +ContactCenterInsightsConnection::UploadConversation( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr ContactCenterInsightsConnection::UpdateConversation( google::cloud::contactcenterinsights::v1:: @@ -89,6 +106,22 @@ ContactCenterInsightsConnection::CreateAnalysis( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +ContactCenterInsightsConnection::CreateAnalysis( + ExperimentalTag, NoAwaitTag, + google::cloud::contactcenterinsights::v1::CreateAnalysisRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +ContactCenterInsightsConnection::CreateAnalysis( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr ContactCenterInsightsConnection::GetAnalysis( google::cloud::contactcenterinsights::v1::GetAnalysisRequest const&) { @@ -119,6 +152,25 @@ ContactCenterInsightsConnection::BulkAnalyzeConversations( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +ContactCenterInsightsConnection::BulkAnalyzeConversations( + ExperimentalTag, NoAwaitTag, + google::cloud::contactcenterinsights::v1:: + BulkAnalyzeConversationsRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +ContactCenterInsightsConnection::BulkAnalyzeConversations( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> ContactCenterInsightsConnection::BulkDeleteConversations( @@ -130,6 +182,25 @@ ContactCenterInsightsConnection::BulkDeleteConversations( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +ContactCenterInsightsConnection::BulkDeleteConversations( + ExperimentalTag, NoAwaitTag, + google::cloud::contactcenterinsights::v1:: + BulkDeleteConversationsRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +ContactCenterInsightsConnection::BulkDeleteConversations( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> ContactCenterInsightsConnection::IngestConversations( @@ -140,6 +211,24 @@ ContactCenterInsightsConnection::IngestConversations( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +ContactCenterInsightsConnection::IngestConversations( + ExperimentalTag, NoAwaitTag, + google::cloud::contactcenterinsights::v1:: + IngestConversationsRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +ContactCenterInsightsConnection::IngestConversations( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> ContactCenterInsightsConnection::ExportInsightsData( @@ -150,6 +239,24 @@ ContactCenterInsightsConnection::ExportInsightsData( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +ContactCenterInsightsConnection::ExportInsightsData( + ExperimentalTag, NoAwaitTag, + google::cloud::contactcenterinsights::v1:: + ExportInsightsDataRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +ContactCenterInsightsConnection::ExportInsightsData( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> ContactCenterInsightsConnection::CreateIssueModel( google::cloud::contactcenterinsights::v1::CreateIssueModelRequest const&) { @@ -158,6 +265,22 @@ ContactCenterInsightsConnection::CreateIssueModel( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +ContactCenterInsightsConnection::CreateIssueModel( + ExperimentalTag, NoAwaitTag, + google::cloud::contactcenterinsights::v1::CreateIssueModelRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +ContactCenterInsightsConnection::CreateIssueModel( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr ContactCenterInsightsConnection::UpdateIssueModel( google::cloud::contactcenterinsights::v1::UpdateIssueModelRequest const&) { @@ -185,6 +308,23 @@ ContactCenterInsightsConnection::DeleteIssueModel( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +ContactCenterInsightsConnection::DeleteIssueModel( + ExperimentalTag, NoAwaitTag, + google::cloud::contactcenterinsights::v1::DeleteIssueModelRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +ContactCenterInsightsConnection::DeleteIssueModel( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> ContactCenterInsightsConnection::DeployIssueModel( @@ -194,6 +334,23 @@ ContactCenterInsightsConnection::DeployIssueModel( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +ContactCenterInsightsConnection::DeployIssueModel( + ExperimentalTag, NoAwaitTag, + google::cloud::contactcenterinsights::v1::DeployIssueModelRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +ContactCenterInsightsConnection::DeployIssueModel( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> ContactCenterInsightsConnection::UndeployIssueModel( @@ -204,6 +361,24 @@ ContactCenterInsightsConnection::UndeployIssueModel( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +ContactCenterInsightsConnection::UndeployIssueModel( + ExperimentalTag, NoAwaitTag, + google::cloud::contactcenterinsights::v1:: + UndeployIssueModelRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +ContactCenterInsightsConnection::UndeployIssueModel( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr ContactCenterInsightsConnection::GetIssue( google::cloud::contactcenterinsights::v1::GetIssueRequest const&) { diff --git a/google/cloud/contactcenterinsights/v1/contact_center_insights_connection.h b/google/cloud/contactcenterinsights/v1/contact_center_insights_connection.h index e7e028af97768..205943362ead9 100644 --- a/google/cloud/contactcenterinsights/v1/contact_center_insights_connection.h +++ b/google/cloud/contactcenterinsights/v1/contact_center_insights_connection.h @@ -22,8 +22,10 @@ #include "google/cloud/contactcenterinsights/v1/contact_center_insights_connection_idempotency_policy.h" #include "google/cloud/contactcenterinsights/v1/internal/contact_center_insights_retry_traits.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/internal/retry_policy_impl.h" +#include "google/cloud/no_await_tag.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" #include "google/cloud/status_or.h" @@ -203,6 +205,16 @@ class ContactCenterInsightsConnection { google::cloud::contactcenterinsights::v1::UploadConversationRequest const& request); + virtual StatusOr UploadConversation( + ExperimentalTag, NoAwaitTag, + google::cloud::contactcenterinsights::v1::UploadConversationRequest const& + request); + + virtual future< + StatusOr> + UploadConversation(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StatusOr UpdateConversation( google::cloud::contactcenterinsights::v1::UpdateConversationRequest const& @@ -227,6 +239,15 @@ class ContactCenterInsightsConnection { google::cloud::contactcenterinsights::v1::CreateAnalysisRequest const& request); + virtual StatusOr CreateAnalysis( + ExperimentalTag, NoAwaitTag, + google::cloud::contactcenterinsights::v1::CreateAnalysisRequest const& + request); + + virtual future> + CreateAnalysis(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StatusOr GetAnalysis( google::cloud::contactcenterinsights::v1::GetAnalysisRequest const& @@ -245,27 +266,76 @@ class ContactCenterInsightsConnection { BulkAnalyzeConversations(google::cloud::contactcenterinsights::v1:: BulkAnalyzeConversationsRequest const& request); + virtual StatusOr BulkAnalyzeConversations( + ExperimentalTag, NoAwaitTag, + google::cloud::contactcenterinsights::v1:: + BulkAnalyzeConversationsRequest const& request); + + virtual future> + BulkAnalyzeConversations(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> BulkDeleteConversations(google::cloud::contactcenterinsights::v1:: BulkDeleteConversationsRequest const& request); + virtual StatusOr BulkDeleteConversations( + ExperimentalTag, NoAwaitTag, + google::cloud::contactcenterinsights::v1:: + BulkDeleteConversationsRequest const& request); + + virtual future> + BulkDeleteConversations(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> IngestConversations(google::cloud::contactcenterinsights::v1:: IngestConversationsRequest const& request); + virtual StatusOr IngestConversations( + ExperimentalTag, NoAwaitTag, + google::cloud::contactcenterinsights::v1:: + IngestConversationsRequest const& request); + + virtual future> + IngestConversations(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> ExportInsightsData( google::cloud::contactcenterinsights::v1::ExportInsightsDataRequest const& request); + virtual StatusOr ExportInsightsData( + ExperimentalTag, NoAwaitTag, + google::cloud::contactcenterinsights::v1::ExportInsightsDataRequest const& + request); + + virtual future> + ExportInsightsData(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> CreateIssueModel( google::cloud::contactcenterinsights::v1::CreateIssueModelRequest const& request); + virtual StatusOr CreateIssueModel( + ExperimentalTag, NoAwaitTag, + google::cloud::contactcenterinsights::v1::CreateIssueModelRequest const& + request); + + virtual future> + CreateIssueModel(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StatusOr UpdateIssueModel( google::cloud::contactcenterinsights::v1::UpdateIssueModelRequest const& @@ -288,18 +358,48 @@ class ContactCenterInsightsConnection { google::cloud::contactcenterinsights::v1::DeleteIssueModelRequest const& request); + virtual StatusOr DeleteIssueModel( + ExperimentalTag, NoAwaitTag, + google::cloud::contactcenterinsights::v1::DeleteIssueModelRequest const& + request); + + virtual future> + DeleteIssueModel(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> DeployIssueModel( google::cloud::contactcenterinsights::v1::DeployIssueModelRequest const& request); + virtual StatusOr DeployIssueModel( + ExperimentalTag, NoAwaitTag, + google::cloud::contactcenterinsights::v1::DeployIssueModelRequest const& + request); + + virtual future> + DeployIssueModel(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> UndeployIssueModel( google::cloud::contactcenterinsights::v1::UndeployIssueModelRequest const& request); + virtual StatusOr UndeployIssueModel( + ExperimentalTag, NoAwaitTag, + google::cloud::contactcenterinsights::v1::UndeployIssueModelRequest const& + request); + + virtual future> + UndeployIssueModel(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StatusOr GetIssue( google::cloud::contactcenterinsights::v1::GetIssueRequest const& request); diff --git a/google/cloud/contactcenterinsights/v1/internal/contact_center_insights_connection_impl.cc b/google/cloud/contactcenterinsights/v1/internal/contact_center_insights_connection_impl.cc index 2dcb4f2ba7b81..f8a8efcf3f033 100644 --- a/google/cloud/contactcenterinsights/v1/internal/contact_center_insights_connection_impl.cc +++ b/google/cloud/contactcenterinsights/v1/internal/contact_center_insights_connection_impl.cc @@ -130,6 +130,61 @@ ContactCenterInsightsConnectionImpl::UploadConversation( polling_policy(*current), __func__); } +StatusOr +ContactCenterInsightsConnectionImpl::UploadConversation( + ExperimentalTag, NoAwaitTag, + google::cloud::contactcenterinsights::v1::UploadConversationRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UploadConversation(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::contactcenterinsights::v1:: + UploadConversationRequest const& request) { + return stub_->UploadConversation(context, options, request); + }, + *current, request, __func__); +} + +future> +ContactCenterInsightsConnectionImpl::UploadConversation( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to UploadConversation", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::contactcenterinsights::v1::Conversation>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::contactcenterinsights::v1::Conversation>, + polling_policy(*current), __func__); +} + StatusOr ContactCenterInsightsConnectionImpl::UpdateConversation( google::cloud::contactcenterinsights::v1::UpdateConversationRequest const& @@ -255,6 +310,62 @@ ContactCenterInsightsConnectionImpl::CreateAnalysis( polling_policy(*current), __func__); } +StatusOr +ContactCenterInsightsConnectionImpl::CreateAnalysis( + ExperimentalTag, NoAwaitTag, + google::cloud::contactcenterinsights::v1::CreateAnalysisRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateAnalysis(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::contactcenterinsights::v1::CreateAnalysisRequest const& + request) { + return stub_->CreateAnalysis(context, options, request); + }, + *current, request, __func__); +} + +future> +ContactCenterInsightsConnectionImpl::CreateAnalysis( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to CreateAnalysis", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::contactcenterinsights::v1::Analysis>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::contactcenterinsights::v1::Analysis>, + polling_policy(*current), __func__); +} + StatusOr ContactCenterInsightsConnectionImpl::GetAnalysis( google::cloud::contactcenterinsights::v1::GetAnalysisRequest const& @@ -366,6 +477,64 @@ ContactCenterInsightsConnectionImpl::BulkAnalyzeConversations( polling_policy(*current), __func__); } +StatusOr +ContactCenterInsightsConnectionImpl::BulkAnalyzeConversations( + ExperimentalTag, NoAwaitTag, + google::cloud::contactcenterinsights::v1:: + BulkAnalyzeConversationsRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->BulkAnalyzeConversations(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::contactcenterinsights::v1:: + BulkAnalyzeConversationsRequest const& request) { + return stub_->BulkAnalyzeConversations(context, options, request); + }, + *current, request, __func__); +} + +future> +ContactCenterInsightsConnectionImpl::BulkAnalyzeConversations( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to BulkAnalyzeConversations", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::contactcenterinsights::v1:: + BulkAnalyzeConversationsResponse>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::contactcenterinsights::v1:: + BulkAnalyzeConversationsResponse>, + polling_policy(*current), __func__); +} + future> ContactCenterInsightsConnectionImpl::BulkDeleteConversations( @@ -409,6 +578,64 @@ ContactCenterInsightsConnectionImpl::BulkDeleteConversations( polling_policy(*current), __func__); } +StatusOr +ContactCenterInsightsConnectionImpl::BulkDeleteConversations( + ExperimentalTag, NoAwaitTag, + google::cloud::contactcenterinsights::v1:: + BulkDeleteConversationsRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->BulkDeleteConversations(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::contactcenterinsights::v1:: + BulkDeleteConversationsRequest const& request) { + return stub_->BulkDeleteConversations(context, options, request); + }, + *current, request, __func__); +} + +future> +ContactCenterInsightsConnectionImpl::BulkDeleteConversations( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to BulkDeleteConversations", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::contactcenterinsights::v1:: + BulkDeleteConversationsResponse>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::contactcenterinsights::v1:: + BulkDeleteConversationsResponse>, + polling_policy(*current), __func__); +} + future> ContactCenterInsightsConnectionImpl::IngestConversations( @@ -451,6 +678,63 @@ ContactCenterInsightsConnectionImpl::IngestConversations( polling_policy(*current), __func__); } +StatusOr +ContactCenterInsightsConnectionImpl::IngestConversations( + ExperimentalTag, NoAwaitTag, + google::cloud::contactcenterinsights::v1::IngestConversationsRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->IngestConversations(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::contactcenterinsights::v1:: + IngestConversationsRequest const& request) { + return stub_->IngestConversations(context, options, request); + }, + *current, request, __func__); +} + +future> +ContactCenterInsightsConnectionImpl::IngestConversations( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to IngestConversations", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::contactcenterinsights::v1::IngestConversationsResponse>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::contactcenterinsights::v1:: + IngestConversationsResponse>, + polling_policy(*current), __func__); +} + future> ContactCenterInsightsConnectionImpl::ExportInsightsData( @@ -492,6 +776,62 @@ ContactCenterInsightsConnectionImpl::ExportInsightsData( polling_policy(*current), __func__); } +StatusOr +ContactCenterInsightsConnectionImpl::ExportInsightsData( + ExperimentalTag, NoAwaitTag, + google::cloud::contactcenterinsights::v1::ExportInsightsDataRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->ExportInsightsData(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::contactcenterinsights::v1:: + ExportInsightsDataRequest const& request) { + return stub_->ExportInsightsData(context, options, request); + }, + *current, request, __func__); +} + +future> +ContactCenterInsightsConnectionImpl::ExportInsightsData( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to ExportInsightsData", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::contactcenterinsights::v1::ExportInsightsDataResponse>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::contactcenterinsights::v1::ExportInsightsDataResponse>, + polling_policy(*current), __func__); +} + future> ContactCenterInsightsConnectionImpl::CreateIssueModel( google::cloud::contactcenterinsights::v1::CreateIssueModelRequest const& @@ -532,6 +872,61 @@ ContactCenterInsightsConnectionImpl::CreateIssueModel( polling_policy(*current), __func__); } +StatusOr +ContactCenterInsightsConnectionImpl::CreateIssueModel( + ExperimentalTag, NoAwaitTag, + google::cloud::contactcenterinsights::v1::CreateIssueModelRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateIssueModel(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::contactcenterinsights::v1:: + CreateIssueModelRequest const& request) { + return stub_->CreateIssueModel(context, options, request); + }, + *current, request, __func__); +} + +future> +ContactCenterInsightsConnectionImpl::CreateIssueModel( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to CreateIssueModel", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::contactcenterinsights::v1::IssueModel>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::contactcenterinsights::v1::IssueModel>, + polling_policy(*current), __func__); +} + StatusOr ContactCenterInsightsConnectionImpl::UpdateIssueModel( google::cloud::contactcenterinsights::v1::UpdateIssueModelRequest const& @@ -622,6 +1017,62 @@ ContactCenterInsightsConnectionImpl::DeleteIssueModel( polling_policy(*current), __func__); } +StatusOr +ContactCenterInsightsConnectionImpl::DeleteIssueModel( + ExperimentalTag, NoAwaitTag, + google::cloud::contactcenterinsights::v1::DeleteIssueModelRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteIssueModel(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::contactcenterinsights::v1:: + DeleteIssueModelRequest const& request) { + return stub_->DeleteIssueModel(context, options, request); + }, + *current, request, __func__); +} + +future> +ContactCenterInsightsConnectionImpl::DeleteIssueModel( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteIssueModel", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::contactcenterinsights::v1::DeleteIssueModelMetadata>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::cloud::contactcenterinsights::v1::DeleteIssueModelMetadata>, + polling_policy(*current), __func__); +} + future> ContactCenterInsightsConnectionImpl::DeployIssueModel( @@ -663,6 +1114,62 @@ ContactCenterInsightsConnectionImpl::DeployIssueModel( polling_policy(*current), __func__); } +StatusOr +ContactCenterInsightsConnectionImpl::DeployIssueModel( + ExperimentalTag, NoAwaitTag, + google::cloud::contactcenterinsights::v1::DeployIssueModelRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeployIssueModel(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::contactcenterinsights::v1:: + DeployIssueModelRequest const& request) { + return stub_->DeployIssueModel(context, options, request); + }, + *current, request, __func__); +} + +future> +ContactCenterInsightsConnectionImpl::DeployIssueModel( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to DeployIssueModel", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::contactcenterinsights::v1::DeployIssueModelResponse>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::contactcenterinsights::v1::DeployIssueModelResponse>, + polling_policy(*current), __func__); +} + future> ContactCenterInsightsConnectionImpl::UndeployIssueModel( @@ -704,6 +1211,62 @@ ContactCenterInsightsConnectionImpl::UndeployIssueModel( polling_policy(*current), __func__); } +StatusOr +ContactCenterInsightsConnectionImpl::UndeployIssueModel( + ExperimentalTag, NoAwaitTag, + google::cloud::contactcenterinsights::v1::UndeployIssueModelRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UndeployIssueModel(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::contactcenterinsights::v1:: + UndeployIssueModelRequest const& request) { + return stub_->UndeployIssueModel(context, options, request); + }, + *current, request, __func__); +} + +future> +ContactCenterInsightsConnectionImpl::UndeployIssueModel( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to UndeployIssueModel", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::contactcenterinsights::v1::UndeployIssueModelResponse>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::contactcenterinsights::v1::UndeployIssueModelResponse>, + polling_policy(*current), __func__); +} + StatusOr ContactCenterInsightsConnectionImpl::GetIssue( google::cloud::contactcenterinsights::v1::GetIssueRequest const& request) { diff --git a/google/cloud/contactcenterinsights/v1/internal/contact_center_insights_connection_impl.h b/google/cloud/contactcenterinsights/v1/internal/contact_center_insights_connection_impl.h index e47c8c9913c67..d5098faa21359 100644 --- a/google/cloud/contactcenterinsights/v1/internal/contact_center_insights_connection_impl.h +++ b/google/cloud/contactcenterinsights/v1/internal/contact_center_insights_connection_impl.h @@ -64,6 +64,15 @@ class ContactCenterInsightsConnectionImpl google::cloud::contactcenterinsights::v1::UploadConversationRequest const& request) override; + StatusOr UploadConversation( + ExperimentalTag, NoAwaitTag, + google::cloud::contactcenterinsights::v1::UploadConversationRequest const& + request) override; + + future> + UploadConversation(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr UpdateConversation( google::cloud::contactcenterinsights::v1::UpdateConversationRequest const& @@ -88,6 +97,15 @@ class ContactCenterInsightsConnectionImpl google::cloud::contactcenterinsights::v1::CreateAnalysisRequest const& request) override; + StatusOr CreateAnalysis( + ExperimentalTag, NoAwaitTag, + google::cloud::contactcenterinsights::v1::CreateAnalysisRequest const& + request) override; + + future> + CreateAnalysis(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetAnalysis( google::cloud::contactcenterinsights::v1::GetAnalysisRequest const& request) override; @@ -106,28 +124,79 @@ class ContactCenterInsightsConnectionImpl google::cloud::contactcenterinsights::v1:: BulkAnalyzeConversationsRequest const& request) override; + StatusOr BulkAnalyzeConversations( + ExperimentalTag, NoAwaitTag, + google::cloud::contactcenterinsights::v1:: + BulkAnalyzeConversationsRequest const& request) override; + + future> + BulkAnalyzeConversations( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> BulkDeleteConversations( google::cloud::contactcenterinsights::v1:: BulkDeleteConversationsRequest const& request) override; + StatusOr BulkDeleteConversations( + ExperimentalTag, NoAwaitTag, + google::cloud::contactcenterinsights::v1:: + BulkDeleteConversationsRequest const& request) override; + + future> + BulkDeleteConversations( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> IngestConversations(google::cloud::contactcenterinsights::v1:: IngestConversationsRequest const& request) override; + StatusOr IngestConversations( + ExperimentalTag, NoAwaitTag, + google::cloud::contactcenterinsights::v1:: + IngestConversationsRequest const& request) override; + + future> + IngestConversations(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ExportInsightsData( google::cloud::contactcenterinsights::v1::ExportInsightsDataRequest const& request) override; + StatusOr ExportInsightsData( + ExperimentalTag, NoAwaitTag, + google::cloud::contactcenterinsights::v1::ExportInsightsDataRequest const& + request) override; + + future> + ExportInsightsData(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> CreateIssueModel( google::cloud::contactcenterinsights::v1::CreateIssueModelRequest const& request) override; + StatusOr CreateIssueModel( + ExperimentalTag, NoAwaitTag, + google::cloud::contactcenterinsights::v1::CreateIssueModelRequest const& + request) override; + + future> + CreateIssueModel(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr UpdateIssueModel( google::cloud::contactcenterinsights::v1::UpdateIssueModelRequest const& @@ -148,18 +217,48 @@ class ContactCenterInsightsConnectionImpl google::cloud::contactcenterinsights::v1::DeleteIssueModelRequest const& request) override; + StatusOr DeleteIssueModel( + ExperimentalTag, NoAwaitTag, + google::cloud::contactcenterinsights::v1::DeleteIssueModelRequest const& + request) override; + + future> + DeleteIssueModel(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeployIssueModel( google::cloud::contactcenterinsights::v1::DeployIssueModelRequest const& request) override; + StatusOr DeployIssueModel( + ExperimentalTag, NoAwaitTag, + google::cloud::contactcenterinsights::v1::DeployIssueModelRequest const& + request) override; + + future> + DeployIssueModel(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UndeployIssueModel( google::cloud::contactcenterinsights::v1::UndeployIssueModelRequest const& request) override; + StatusOr UndeployIssueModel( + ExperimentalTag, NoAwaitTag, + google::cloud::contactcenterinsights::v1::UndeployIssueModelRequest const& + request) override; + + future> + UndeployIssueModel(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetIssue( google::cloud::contactcenterinsights::v1::GetIssueRequest const& request) override; diff --git a/google/cloud/contactcenterinsights/v1/internal/contact_center_insights_tracing_connection.cc b/google/cloud/contactcenterinsights/v1/internal/contact_center_insights_tracing_connection.cc index bfb62405900a2..30a142391c416 100644 --- a/google/cloud/contactcenterinsights/v1/internal/contact_center_insights_tracing_connection.cc +++ b/google/cloud/contactcenterinsights/v1/internal/contact_center_insights_tracing_connection.cc @@ -57,6 +57,31 @@ ContactCenterInsightsTracingConnection::UploadConversation( child_->UploadConversation(request)); } +StatusOr +ContactCenterInsightsTracingConnection::UploadConversation( + ExperimentalTag, NoAwaitTag, + google::cloud::contactcenterinsights::v1::UploadConversationRequest const& + request) { + auto span = internal::MakeSpan( + "contactcenterinsights_v1::ContactCenterInsightsConnection::" + "UploadConversation"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->UploadConversation(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +ContactCenterInsightsTracingConnection::UploadConversation( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "contactcenterinsights_v1::ContactCenterInsightsConnection::" + "UploadConversation"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->UploadConversation( + ExperimentalTag{}, operation)); +} + StatusOr ContactCenterInsightsTracingConnection::UpdateConversation( google::cloud::contactcenterinsights::v1::UpdateConversationRequest const& @@ -114,6 +139,30 @@ ContactCenterInsightsTracingConnection::CreateAnalysis( return internal::EndSpan(std::move(span), child_->CreateAnalysis(request)); } +StatusOr +ContactCenterInsightsTracingConnection::CreateAnalysis( + ExperimentalTag, NoAwaitTag, + google::cloud::contactcenterinsights::v1::CreateAnalysisRequest const& + request) { + auto span = internal::MakeSpan( + "contactcenterinsights_v1::ContactCenterInsightsConnection::" + "CreateAnalysis"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->CreateAnalysis(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +ContactCenterInsightsTracingConnection::CreateAnalysis( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "contactcenterinsights_v1::ContactCenterInsightsConnection::" + "CreateAnalysis"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->CreateAnalysis(ExperimentalTag{}, operation)); +} + StatusOr ContactCenterInsightsTracingConnection::GetAnalysis( google::cloud::contactcenterinsights::v1::GetAnalysisRequest const& @@ -160,6 +209,32 @@ ContactCenterInsightsTracingConnection::BulkAnalyzeConversations( child_->BulkAnalyzeConversations(request)); } +StatusOr +ContactCenterInsightsTracingConnection::BulkAnalyzeConversations( + ExperimentalTag, NoAwaitTag, + google::cloud::contactcenterinsights::v1:: + BulkAnalyzeConversationsRequest const& request) { + auto span = internal::MakeSpan( + "contactcenterinsights_v1::ContactCenterInsightsConnection::" + "BulkAnalyzeConversations"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->BulkAnalyzeConversations(ExperimentalTag{}, NoAwaitTag{}, + request)); +} + +future> +ContactCenterInsightsTracingConnection::BulkAnalyzeConversations( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "contactcenterinsights_v1::ContactCenterInsightsConnection::" + "BulkAnalyzeConversations"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->BulkAnalyzeConversations( + ExperimentalTag{}, operation)); +} + future> ContactCenterInsightsTracingConnection::BulkDeleteConversations( @@ -173,6 +248,32 @@ ContactCenterInsightsTracingConnection::BulkDeleteConversations( child_->BulkDeleteConversations(request)); } +StatusOr +ContactCenterInsightsTracingConnection::BulkDeleteConversations( + ExperimentalTag, NoAwaitTag, + google::cloud::contactcenterinsights::v1:: + BulkDeleteConversationsRequest const& request) { + auto span = internal::MakeSpan( + "contactcenterinsights_v1::ContactCenterInsightsConnection::" + "BulkDeleteConversations"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->BulkDeleteConversations(ExperimentalTag{}, NoAwaitTag{}, + request)); +} + +future> +ContactCenterInsightsTracingConnection::BulkDeleteConversations( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "contactcenterinsights_v1::ContactCenterInsightsConnection::" + "BulkDeleteConversations"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->BulkDeleteConversations( + ExperimentalTag{}, operation)); +} + future> ContactCenterInsightsTracingConnection::IngestConversations( @@ -186,6 +287,32 @@ ContactCenterInsightsTracingConnection::IngestConversations( child_->IngestConversations(request)); } +StatusOr +ContactCenterInsightsTracingConnection::IngestConversations( + ExperimentalTag, NoAwaitTag, + google::cloud::contactcenterinsights::v1::IngestConversationsRequest const& + request) { + auto span = internal::MakeSpan( + "contactcenterinsights_v1::ContactCenterInsightsConnection::" + "IngestConversations"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->IngestConversations(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +ContactCenterInsightsTracingConnection::IngestConversations( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "contactcenterinsights_v1::ContactCenterInsightsConnection::" + "IngestConversations"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->IngestConversations( + ExperimentalTag{}, operation)); +} + future> ContactCenterInsightsTracingConnection::ExportInsightsData( @@ -199,6 +326,32 @@ ContactCenterInsightsTracingConnection::ExportInsightsData( child_->ExportInsightsData(request)); } +StatusOr +ContactCenterInsightsTracingConnection::ExportInsightsData( + ExperimentalTag, NoAwaitTag, + google::cloud::contactcenterinsights::v1::ExportInsightsDataRequest const& + request) { + auto span = internal::MakeSpan( + "contactcenterinsights_v1::ContactCenterInsightsConnection::" + "ExportInsightsData"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->ExportInsightsData(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +ContactCenterInsightsTracingConnection::ExportInsightsData( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "contactcenterinsights_v1::ContactCenterInsightsConnection::" + "ExportInsightsData"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->ExportInsightsData( + ExperimentalTag{}, operation)); +} + future> ContactCenterInsightsTracingConnection::CreateIssueModel( google::cloud::contactcenterinsights::v1::CreateIssueModelRequest const& @@ -210,6 +363,31 @@ ContactCenterInsightsTracingConnection::CreateIssueModel( return internal::EndSpan(std::move(span), child_->CreateIssueModel(request)); } +StatusOr +ContactCenterInsightsTracingConnection::CreateIssueModel( + ExperimentalTag, NoAwaitTag, + google::cloud::contactcenterinsights::v1::CreateIssueModelRequest const& + request) { + auto span = internal::MakeSpan( + "contactcenterinsights_v1::ContactCenterInsightsConnection::" + "CreateIssueModel"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->CreateIssueModel(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +ContactCenterInsightsTracingConnection::CreateIssueModel( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "contactcenterinsights_v1::ContactCenterInsightsConnection::" + "CreateIssueModel"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->CreateIssueModel(ExperimentalTag{}, operation)); +} + StatusOr ContactCenterInsightsTracingConnection::UpdateIssueModel( google::cloud::contactcenterinsights::v1::UpdateIssueModelRequest const& @@ -255,6 +433,32 @@ ContactCenterInsightsTracingConnection::DeleteIssueModel( return internal::EndSpan(std::move(span), child_->DeleteIssueModel(request)); } +StatusOr +ContactCenterInsightsTracingConnection::DeleteIssueModel( + ExperimentalTag, NoAwaitTag, + google::cloud::contactcenterinsights::v1::DeleteIssueModelRequest const& + request) { + auto span = internal::MakeSpan( + "contactcenterinsights_v1::ContactCenterInsightsConnection::" + "DeleteIssueModel"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->DeleteIssueModel(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +ContactCenterInsightsTracingConnection::DeleteIssueModel( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "contactcenterinsights_v1::ContactCenterInsightsConnection::" + "DeleteIssueModel"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->DeleteIssueModel(ExperimentalTag{}, operation)); +} + future> ContactCenterInsightsTracingConnection::DeployIssueModel( @@ -267,6 +471,32 @@ ContactCenterInsightsTracingConnection::DeployIssueModel( return internal::EndSpan(std::move(span), child_->DeployIssueModel(request)); } +StatusOr +ContactCenterInsightsTracingConnection::DeployIssueModel( + ExperimentalTag, NoAwaitTag, + google::cloud::contactcenterinsights::v1::DeployIssueModelRequest const& + request) { + auto span = internal::MakeSpan( + "contactcenterinsights_v1::ContactCenterInsightsConnection::" + "DeployIssueModel"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->DeployIssueModel(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +ContactCenterInsightsTracingConnection::DeployIssueModel( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "contactcenterinsights_v1::ContactCenterInsightsConnection::" + "DeployIssueModel"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->DeployIssueModel(ExperimentalTag{}, operation)); +} + future> ContactCenterInsightsTracingConnection::UndeployIssueModel( @@ -280,6 +510,32 @@ ContactCenterInsightsTracingConnection::UndeployIssueModel( child_->UndeployIssueModel(request)); } +StatusOr +ContactCenterInsightsTracingConnection::UndeployIssueModel( + ExperimentalTag, NoAwaitTag, + google::cloud::contactcenterinsights::v1::UndeployIssueModelRequest const& + request) { + auto span = internal::MakeSpan( + "contactcenterinsights_v1::ContactCenterInsightsConnection::" + "UndeployIssueModel"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->UndeployIssueModel(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +ContactCenterInsightsTracingConnection::UndeployIssueModel( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "contactcenterinsights_v1::ContactCenterInsightsConnection::" + "UndeployIssueModel"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->UndeployIssueModel( + ExperimentalTag{}, operation)); +} + StatusOr ContactCenterInsightsTracingConnection::GetIssue( google::cloud::contactcenterinsights::v1::GetIssueRequest const& request) { diff --git a/google/cloud/contactcenterinsights/v1/internal/contact_center_insights_tracing_connection.h b/google/cloud/contactcenterinsights/v1/internal/contact_center_insights_tracing_connection.h index 7ba7ada9817a6..6826136bed294 100644 --- a/google/cloud/contactcenterinsights/v1/internal/contact_center_insights_tracing_connection.h +++ b/google/cloud/contactcenterinsights/v1/internal/contact_center_insights_tracing_connection.h @@ -51,6 +51,15 @@ class ContactCenterInsightsTracingConnection google::cloud::contactcenterinsights::v1::UploadConversationRequest const& request) override; + StatusOr UploadConversation( + ExperimentalTag, NoAwaitTag, + google::cloud::contactcenterinsights::v1::UploadConversationRequest const& + request) override; + + future> + UploadConversation(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr UpdateConversation( google::cloud::contactcenterinsights::v1::UpdateConversationRequest const& @@ -75,6 +84,15 @@ class ContactCenterInsightsTracingConnection google::cloud::contactcenterinsights::v1::CreateAnalysisRequest const& request) override; + StatusOr CreateAnalysis( + ExperimentalTag, NoAwaitTag, + google::cloud::contactcenterinsights::v1::CreateAnalysisRequest const& + request) override; + + future> + CreateAnalysis(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetAnalysis( google::cloud::contactcenterinsights::v1::GetAnalysisRequest const& request) override; @@ -93,28 +111,79 @@ class ContactCenterInsightsTracingConnection google::cloud::contactcenterinsights::v1:: BulkAnalyzeConversationsRequest const& request) override; + StatusOr BulkAnalyzeConversations( + ExperimentalTag, NoAwaitTag, + google::cloud::contactcenterinsights::v1:: + BulkAnalyzeConversationsRequest const& request) override; + + future> + BulkAnalyzeConversations( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> BulkDeleteConversations( google::cloud::contactcenterinsights::v1:: BulkDeleteConversationsRequest const& request) override; + StatusOr BulkDeleteConversations( + ExperimentalTag, NoAwaitTag, + google::cloud::contactcenterinsights::v1:: + BulkDeleteConversationsRequest const& request) override; + + future> + BulkDeleteConversations( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> IngestConversations(google::cloud::contactcenterinsights::v1:: IngestConversationsRequest const& request) override; + StatusOr IngestConversations( + ExperimentalTag, NoAwaitTag, + google::cloud::contactcenterinsights::v1:: + IngestConversationsRequest const& request) override; + + future> + IngestConversations(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ExportInsightsData( google::cloud::contactcenterinsights::v1::ExportInsightsDataRequest const& request) override; + StatusOr ExportInsightsData( + ExperimentalTag, NoAwaitTag, + google::cloud::contactcenterinsights::v1::ExportInsightsDataRequest const& + request) override; + + future> + ExportInsightsData(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> CreateIssueModel( google::cloud::contactcenterinsights::v1::CreateIssueModelRequest const& request) override; + StatusOr CreateIssueModel( + ExperimentalTag, NoAwaitTag, + google::cloud::contactcenterinsights::v1::CreateIssueModelRequest const& + request) override; + + future> + CreateIssueModel(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr UpdateIssueModel( google::cloud::contactcenterinsights::v1::UpdateIssueModelRequest const& @@ -135,18 +204,48 @@ class ContactCenterInsightsTracingConnection google::cloud::contactcenterinsights::v1::DeleteIssueModelRequest const& request) override; + StatusOr DeleteIssueModel( + ExperimentalTag, NoAwaitTag, + google::cloud::contactcenterinsights::v1::DeleteIssueModelRequest const& + request) override; + + future> + DeleteIssueModel(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeployIssueModel( google::cloud::contactcenterinsights::v1::DeployIssueModelRequest const& request) override; + StatusOr DeployIssueModel( + ExperimentalTag, NoAwaitTag, + google::cloud::contactcenterinsights::v1::DeployIssueModelRequest const& + request) override; + + future> + DeployIssueModel(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UndeployIssueModel( google::cloud::contactcenterinsights::v1::UndeployIssueModelRequest const& request) override; + StatusOr UndeployIssueModel( + ExperimentalTag, NoAwaitTag, + google::cloud::contactcenterinsights::v1::UndeployIssueModelRequest const& + request) override; + + future> + UndeployIssueModel(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetIssue( google::cloud::contactcenterinsights::v1::GetIssueRequest const& request) override; diff --git a/google/cloud/contactcenterinsights/v1/mocks/mock_contact_center_insights_connection.h b/google/cloud/contactcenterinsights/v1/mocks/mock_contact_center_insights_connection.h index 17450092fab9d..200694eecbd0b 100644 --- a/google/cloud/contactcenterinsights/v1/mocks/mock_contact_center_insights_connection.h +++ b/google/cloud/contactcenterinsights/v1/mocks/mock_contact_center_insights_connection.h @@ -60,6 +60,18 @@ class MockContactCenterInsightsConnection UploadConversationRequest const& request), (override)); + MOCK_METHOD(StatusOr, UploadConversation, + (ExperimentalTag, NoAwaitTag, + google::cloud::contactcenterinsights::v1:: + UploadConversationRequest const& request), + (override)); + + MOCK_METHOD( + future>, + UploadConversation, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(StatusOr, UpdateConversation, (google::cloud::contactcenterinsights::v1:: @@ -92,6 +104,19 @@ class MockContactCenterInsightsConnection request), (override)); + MOCK_METHOD( + StatusOr, CreateAnalysis, + (ExperimentalTag, NoAwaitTag, + google::cloud::contactcenterinsights::v1::CreateAnalysisRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + CreateAnalysis, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr, GetAnalysis, (google::cloud::contactcenterinsights::v1::GetAnalysisRequest const& @@ -117,6 +142,20 @@ class MockContactCenterInsightsConnection BulkAnalyzeConversationsRequest const& request), (override)); + MOCK_METHOD(StatusOr, + BulkAnalyzeConversations, + (ExperimentalTag, NoAwaitTag, + google::cloud::contactcenterinsights::v1:: + BulkAnalyzeConversationsRequest const& request), + (override)); + + MOCK_METHOD(future>, + BulkAnalyzeConversations, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, BulkDeleteConversations, @@ -124,6 +163,19 @@ class MockContactCenterInsightsConnection BulkDeleteConversationsRequest const& request), (override)); + MOCK_METHOD(StatusOr, BulkDeleteConversations, + (ExperimentalTag, NoAwaitTag, + google::cloud::contactcenterinsights::v1:: + BulkDeleteConversationsRequest const& request), + (override)); + + MOCK_METHOD(future>, + BulkDeleteConversations, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, IngestConversations, @@ -131,6 +183,19 @@ class MockContactCenterInsightsConnection IngestConversationsRequest const& request), (override)); + MOCK_METHOD(StatusOr, IngestConversations, + (ExperimentalTag, NoAwaitTag, + google::cloud::contactcenterinsights::v1:: + IngestConversationsRequest const& request), + (override)); + + MOCK_METHOD(future>, + IngestConversations, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, ExportInsightsData, @@ -138,6 +203,19 @@ class MockContactCenterInsightsConnection ExportInsightsDataRequest const& request), (override)); + MOCK_METHOD(StatusOr, ExportInsightsData, + (ExperimentalTag, NoAwaitTag, + google::cloud::contactcenterinsights::v1:: + ExportInsightsDataRequest const& request), + (override)); + + MOCK_METHOD(future>, + ExportInsightsData, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, CreateIssueModel, @@ -145,6 +223,19 @@ class MockContactCenterInsightsConnection request), (override)); + MOCK_METHOD( + StatusOr, CreateIssueModel, + (ExperimentalTag, NoAwaitTag, + google::cloud::contactcenterinsights::v1::CreateIssueModelRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + CreateIssueModel, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr, UpdateIssueModel, @@ -175,6 +266,20 @@ class MockContactCenterInsightsConnection request), (override)); + MOCK_METHOD( + StatusOr, DeleteIssueModel, + (ExperimentalTag, NoAwaitTag, + google::cloud::contactcenterinsights::v1::DeleteIssueModelRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + DeleteIssueModel, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, @@ -183,6 +288,20 @@ class MockContactCenterInsightsConnection request), (override)); + MOCK_METHOD( + StatusOr, DeployIssueModel, + (ExperimentalTag, NoAwaitTag, + google::cloud::contactcenterinsights::v1::DeployIssueModelRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + DeployIssueModel, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, UndeployIssueModel, @@ -190,6 +309,19 @@ class MockContactCenterInsightsConnection UndeployIssueModelRequest const& request), (override)); + MOCK_METHOD(StatusOr, UndeployIssueModel, + (ExperimentalTag, NoAwaitTag, + google::cloud::contactcenterinsights::v1:: + UndeployIssueModelRequest const& request), + (override)); + + MOCK_METHOD(future>, + UndeployIssueModel, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(StatusOr, GetIssue, (google::cloud::contactcenterinsights::v1::GetIssueRequest const& diff --git a/google/cloud/container/v1/cluster_manager_connection.h b/google/cloud/container/v1/cluster_manager_connection.h index 9697611e4838b..054224f2433cc 100644 --- a/google/cloud/container/v1/cluster_manager_connection.h +++ b/google/cloud/container/v1/cluster_manager_connection.h @@ -22,6 +22,7 @@ #include "google/cloud/container/v1/cluster_manager_connection_idempotency_policy.h" #include "google/cloud/container/v1/internal/cluster_manager_retry_traits.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/internal/retry_policy_impl.h" #include "google/cloud/options.h" #include "google/cloud/status_or.h" diff --git a/google/cloud/containeranalysis/v1/container_analysis_connection.h b/google/cloud/containeranalysis/v1/container_analysis_connection.h index 972f5ee22ab4c..4174f9009f827 100644 --- a/google/cloud/containeranalysis/v1/container_analysis_connection.h +++ b/google/cloud/containeranalysis/v1/container_analysis_connection.h @@ -22,6 +22,7 @@ #include "google/cloud/containeranalysis/v1/container_analysis_connection_idempotency_policy.h" #include "google/cloud/containeranalysis/v1/internal/container_analysis_retry_traits.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/internal/retry_policy_impl.h" #include "google/cloud/options.h" #include "google/cloud/status_or.h" diff --git a/google/cloud/containeranalysis/v1/grafeas_connection.h b/google/cloud/containeranalysis/v1/grafeas_connection.h index c5a86effc70f4..72efa54e279de 100644 --- a/google/cloud/containeranalysis/v1/grafeas_connection.h +++ b/google/cloud/containeranalysis/v1/grafeas_connection.h @@ -22,6 +22,7 @@ #include "google/cloud/containeranalysis/v1/grafeas_connection_idempotency_policy.h" #include "google/cloud/containeranalysis/v1/internal/grafeas_retry_traits.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/internal/retry_policy_impl.h" #include "google/cloud/options.h" #include "google/cloud/status_or.h" diff --git a/google/cloud/contentwarehouse/v1/document_connection.h b/google/cloud/contentwarehouse/v1/document_connection.h index 77b53c930ebfc..8194bcec3b481 100644 --- a/google/cloud/contentwarehouse/v1/document_connection.h +++ b/google/cloud/contentwarehouse/v1/document_connection.h @@ -22,6 +22,7 @@ #include "google/cloud/contentwarehouse/v1/document_connection_idempotency_policy.h" #include "google/cloud/contentwarehouse/v1/internal/document_retry_traits.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/internal/retry_policy_impl.h" #include "google/cloud/options.h" #include "google/cloud/status_or.h" diff --git a/google/cloud/contentwarehouse/v1/document_link_connection.h b/google/cloud/contentwarehouse/v1/document_link_connection.h index 60df6bb141413..0526e52dde962 100644 --- a/google/cloud/contentwarehouse/v1/document_link_connection.h +++ b/google/cloud/contentwarehouse/v1/document_link_connection.h @@ -22,6 +22,7 @@ #include "google/cloud/contentwarehouse/v1/document_link_connection_idempotency_policy.h" #include "google/cloud/contentwarehouse/v1/internal/document_link_retry_traits.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/internal/retry_policy_impl.h" #include "google/cloud/options.h" #include "google/cloud/status_or.h" diff --git a/google/cloud/contentwarehouse/v1/document_schema_connection.h b/google/cloud/contentwarehouse/v1/document_schema_connection.h index c0be62ed766c0..79ea6fab836cb 100644 --- a/google/cloud/contentwarehouse/v1/document_schema_connection.h +++ b/google/cloud/contentwarehouse/v1/document_schema_connection.h @@ -22,6 +22,7 @@ #include "google/cloud/contentwarehouse/v1/document_schema_connection_idempotency_policy.h" #include "google/cloud/contentwarehouse/v1/internal/document_schema_retry_traits.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/internal/retry_policy_impl.h" #include "google/cloud/options.h" #include "google/cloud/status_or.h" diff --git a/google/cloud/contentwarehouse/v1/internal/pipeline_connection_impl.cc b/google/cloud/contentwarehouse/v1/internal/pipeline_connection_impl.cc index daa71f0699131..384866ed62c85 100644 --- a/google/cloud/contentwarehouse/v1/internal/pipeline_connection_impl.cc +++ b/google/cloud/contentwarehouse/v1/internal/pipeline_connection_impl.cc @@ -107,6 +107,60 @@ PipelineServiceConnectionImpl::RunPipeline( polling_policy(*current), __func__); } +StatusOr +PipelineServiceConnectionImpl::RunPipeline( + ExperimentalTag, NoAwaitTag, + google::cloud::contentwarehouse::v1::RunPipelineRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->RunPipeline(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::contentwarehouse::v1::RunPipelineRequest const& + request) { + return stub_->RunPipeline(context, options, request); + }, + *current, request, __func__); +} + +future> +PipelineServiceConnectionImpl::RunPipeline( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to RunPipeline", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::contentwarehouse::v1::RunPipelineResponse>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::contentwarehouse::v1::RunPipelineResponse>, + polling_policy(*current), __func__); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace contentwarehouse_v1_internal } // namespace cloud diff --git a/google/cloud/contentwarehouse/v1/internal/pipeline_connection_impl.h b/google/cloud/contentwarehouse/v1/internal/pipeline_connection_impl.h index 61ec21b947b77..fd16b454e74ef 100644 --- a/google/cloud/contentwarehouse/v1/internal/pipeline_connection_impl.h +++ b/google/cloud/contentwarehouse/v1/internal/pipeline_connection_impl.h @@ -55,6 +55,15 @@ class PipelineServiceConnectionImpl RunPipeline(google::cloud::contentwarehouse::v1::RunPipelineRequest const& request) override; + StatusOr RunPipeline( + ExperimentalTag, NoAwaitTag, + google::cloud::contentwarehouse::v1::RunPipelineRequest const& request) + override; + + future> + RunPipeline(ExperimentalTag, + google::longrunning::Operation const& operation) override; + private: std::unique_ptr background_; std::shared_ptr stub_; diff --git a/google/cloud/contentwarehouse/v1/internal/pipeline_tracing_connection.cc b/google/cloud/contentwarehouse/v1/internal/pipeline_tracing_connection.cc index 55e6d8562af21..7b5c18eed0877 100644 --- a/google/cloud/contentwarehouse/v1/internal/pipeline_tracing_connection.cc +++ b/google/cloud/contentwarehouse/v1/internal/pipeline_tracing_connection.cc @@ -41,6 +41,27 @@ PipelineServiceTracingConnection::RunPipeline( return internal::EndSpan(std::move(span), child_->RunPipeline(request)); } +StatusOr +PipelineServiceTracingConnection::RunPipeline( + ExperimentalTag, NoAwaitTag, + google::cloud::contentwarehouse::v1::RunPipelineRequest const& request) { + auto span = internal::MakeSpan( + "contentwarehouse_v1::PipelineServiceConnection::RunPipeline"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->RunPipeline(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +PipelineServiceTracingConnection::RunPipeline( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "contentwarehouse_v1::PipelineServiceConnection::RunPipeline"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->RunPipeline(ExperimentalTag{}, operation)); +} + #endif // GOOGLE_CLOUD_CPP_HAVE_OPENTELEMETRY std::shared_ptr diff --git a/google/cloud/contentwarehouse/v1/internal/pipeline_tracing_connection.h b/google/cloud/contentwarehouse/v1/internal/pipeline_tracing_connection.h index 84d926c724f92..19d3a31b88cf4 100644 --- a/google/cloud/contentwarehouse/v1/internal/pipeline_tracing_connection.h +++ b/google/cloud/contentwarehouse/v1/internal/pipeline_tracing_connection.h @@ -44,6 +44,15 @@ class PipelineServiceTracingConnection RunPipeline(google::cloud::contentwarehouse::v1::RunPipelineRequest const& request) override; + StatusOr RunPipeline( + ExperimentalTag, NoAwaitTag, + google::cloud::contentwarehouse::v1::RunPipelineRequest const& request) + override; + + future> + RunPipeline(ExperimentalTag, + google::longrunning::Operation const& operation) override; + private: std::shared_ptr child_; }; diff --git a/google/cloud/contentwarehouse/v1/mocks/mock_pipeline_connection.h b/google/cloud/contentwarehouse/v1/mocks/mock_pipeline_connection.h index fe244d679edb3..b632b469c29b3 100644 --- a/google/cloud/contentwarehouse/v1/mocks/mock_pipeline_connection.h +++ b/google/cloud/contentwarehouse/v1/mocks/mock_pipeline_connection.h @@ -53,6 +53,19 @@ class MockPipelineServiceConnection RunPipeline, (google::cloud::contentwarehouse::v1::RunPipelineRequest const& request), (override)); + + MOCK_METHOD( + StatusOr, RunPipeline, + (ExperimentalTag, NoAwaitTag, + google::cloud::contentwarehouse::v1::RunPipelineRequest const& request), + (override)); + + MOCK_METHOD( + future< + StatusOr>, + RunPipeline, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); }; GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END diff --git a/google/cloud/contentwarehouse/v1/pipeline_connection.cc b/google/cloud/contentwarehouse/v1/pipeline_connection.cc index a0c2eddfb3d61..b078479fc475f 100644 --- a/google/cloud/contentwarehouse/v1/pipeline_connection.cc +++ b/google/cloud/contentwarehouse/v1/pipeline_connection.cc @@ -45,6 +45,21 @@ PipelineServiceConnection::RunPipeline( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr PipelineServiceConnection::RunPipeline( + ExperimentalTag, NoAwaitTag, + google::cloud::contentwarehouse::v1::RunPipelineRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +PipelineServiceConnection::RunPipeline(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + std::shared_ptr MakePipelineServiceConnection( Options options) { internal::CheckExpectedOptions> RunPipeline( google::cloud::contentwarehouse::v1::RunPipelineRequest const& request); + + virtual StatusOr RunPipeline( + ExperimentalTag, NoAwaitTag, + google::cloud::contentwarehouse::v1::RunPipelineRequest const& request); + + virtual future< + StatusOr> + RunPipeline(ExperimentalTag, google::longrunning::Operation const& operation); }; /** diff --git a/google/cloud/contentwarehouse/v1/rule_set_connection.h b/google/cloud/contentwarehouse/v1/rule_set_connection.h index 9413fb5d04040..8f1b6f100d7c0 100644 --- a/google/cloud/contentwarehouse/v1/rule_set_connection.h +++ b/google/cloud/contentwarehouse/v1/rule_set_connection.h @@ -22,6 +22,7 @@ #include "google/cloud/contentwarehouse/v1/internal/rule_set_retry_traits.h" #include "google/cloud/contentwarehouse/v1/rule_set_connection_idempotency_policy.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/internal/retry_policy_impl.h" #include "google/cloud/options.h" #include "google/cloud/status_or.h" diff --git a/google/cloud/contentwarehouse/v1/synonym_set_connection.h b/google/cloud/contentwarehouse/v1/synonym_set_connection.h index 73dcf8fac465e..f8abdc5b8f075 100644 --- a/google/cloud/contentwarehouse/v1/synonym_set_connection.h +++ b/google/cloud/contentwarehouse/v1/synonym_set_connection.h @@ -22,6 +22,7 @@ #include "google/cloud/contentwarehouse/v1/internal/synonym_set_retry_traits.h" #include "google/cloud/contentwarehouse/v1/synonym_set_connection_idempotency_policy.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/internal/retry_policy_impl.h" #include "google/cloud/options.h" #include "google/cloud/status_or.h" diff --git a/google/cloud/datacatalog/lineage/v1/internal/lineage_connection_impl.cc b/google/cloud/datacatalog/lineage/v1/internal/lineage_connection_impl.cc index 2d81c417a0bb7..034ba71db189c 100644 --- a/google/cloud/datacatalog/lineage/v1/internal/lineage_connection_impl.cc +++ b/google/cloud/datacatalog/lineage/v1/internal/lineage_connection_impl.cc @@ -209,6 +209,61 @@ LineageConnectionImpl::DeleteProcess( polling_policy(*current), __func__); } +StatusOr LineageConnectionImpl::DeleteProcess( + ExperimentalTag, NoAwaitTag, + google::cloud::datacatalog::lineage::v1::DeleteProcessRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteProcess(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::datacatalog::lineage::v1::DeleteProcessRequest const& + request) { + return stub_->DeleteProcess(context, options, request); + }, + *current, request, __func__); +} + +future> +LineageConnectionImpl::DeleteProcess( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteProcess", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::datacatalog::lineage::v1::OperationMetadata>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::cloud::datacatalog::lineage::v1::OperationMetadata>, + polling_policy(*current), __func__); +} + StatusOr LineageConnectionImpl::CreateRun( google::cloud::datacatalog::lineage::v1::CreateRunRequest const& request) { @@ -326,6 +381,59 @@ LineageConnectionImpl::DeleteRun( polling_policy(*current), __func__); } +StatusOr LineageConnectionImpl::DeleteRun( + ExperimentalTag, NoAwaitTag, + google::cloud::datacatalog::lineage::v1::DeleteRunRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteRun(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::datacatalog::lineage::v1::DeleteRunRequest const& + request) { + return stub_->DeleteRun(context, options, request); + }, + *current, request, __func__); +} + +future> +LineageConnectionImpl::DeleteRun( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteRun", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::datacatalog::lineage::v1::OperationMetadata>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::cloud::datacatalog::lineage::v1::OperationMetadata>, + polling_policy(*current), __func__); +} + StatusOr LineageConnectionImpl::CreateLineageEvent( google::cloud::datacatalog::lineage::v1::CreateLineageEventRequest const& diff --git a/google/cloud/datacatalog/lineage/v1/internal/lineage_connection_impl.h b/google/cloud/datacatalog/lineage/v1/internal/lineage_connection_impl.h index 13e26276b81aa..8257a74f87a36 100644 --- a/google/cloud/datacatalog/lineage/v1/internal/lineage_connection_impl.h +++ b/google/cloud/datacatalog/lineage/v1/internal/lineage_connection_impl.h @@ -78,6 +78,15 @@ class LineageConnectionImpl : public datacatalog_lineage_v1::LineageConnection { google::cloud::datacatalog::lineage::v1::DeleteProcessRequest const& request) override; + StatusOr DeleteProcess( + ExperimentalTag, NoAwaitTag, + google::cloud::datacatalog::lineage::v1::DeleteProcessRequest const& + request) override; + + future> + DeleteProcess(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr CreateRun( google::cloud::datacatalog::lineage::v1::CreateRunRequest const& request) override; @@ -98,6 +107,15 @@ class LineageConnectionImpl : public datacatalog_lineage_v1::LineageConnection { DeleteRun(google::cloud::datacatalog::lineage::v1::DeleteRunRequest const& request) override; + StatusOr DeleteRun( + ExperimentalTag, NoAwaitTag, + google::cloud::datacatalog::lineage::v1::DeleteRunRequest const& request) + override; + + future> + DeleteRun(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr CreateLineageEvent( google::cloud::datacatalog::lineage::v1::CreateLineageEventRequest const& diff --git a/google/cloud/datacatalog/lineage/v1/internal/lineage_tracing_connection.cc b/google/cloud/datacatalog/lineage/v1/internal/lineage_tracing_connection.cc index bd1e06a3570b0..0e29ca82ab204 100644 --- a/google/cloud/datacatalog/lineage/v1/internal/lineage_tracing_connection.cc +++ b/google/cloud/datacatalog/lineage/v1/internal/lineage_tracing_connection.cc @@ -95,6 +95,28 @@ LineageTracingConnection::DeleteProcess( return internal::EndSpan(std::move(span), child_->DeleteProcess(request)); } +StatusOr +LineageTracingConnection::DeleteProcess( + ExperimentalTag, NoAwaitTag, + google::cloud::datacatalog::lineage::v1::DeleteProcessRequest const& + request) { + auto span = internal::MakeSpan( + "datacatalog_lineage_v1::LineageConnection::DeleteProcess"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->DeleteProcess(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +LineageTracingConnection::DeleteProcess( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "datacatalog_lineage_v1::LineageConnection::DeleteProcess"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->DeleteProcess(ExperimentalTag{}, operation)); +} + StatusOr LineageTracingConnection::CreateRun( google::cloud::datacatalog::lineage::v1::CreateRunRequest const& request) { @@ -143,6 +165,26 @@ LineageTracingConnection::DeleteRun( return internal::EndSpan(std::move(span), child_->DeleteRun(request)); } +StatusOr LineageTracingConnection::DeleteRun( + ExperimentalTag, NoAwaitTag, + google::cloud::datacatalog::lineage::v1::DeleteRunRequest const& request) { + auto span = internal::MakeSpan( + "datacatalog_lineage_v1::LineageConnection::DeleteRun"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->DeleteRun(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +LineageTracingConnection::DeleteRun( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "datacatalog_lineage_v1::LineageConnection::DeleteRun"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->DeleteRun(ExperimentalTag{}, operation)); +} + StatusOr LineageTracingConnection::CreateLineageEvent( google::cloud::datacatalog::lineage::v1::CreateLineageEventRequest const& diff --git a/google/cloud/datacatalog/lineage/v1/internal/lineage_tracing_connection.h b/google/cloud/datacatalog/lineage/v1/internal/lineage_tracing_connection.h index 59c8aa72c1311..1c8339eceda4e 100644 --- a/google/cloud/datacatalog/lineage/v1/internal/lineage_tracing_connection.h +++ b/google/cloud/datacatalog/lineage/v1/internal/lineage_tracing_connection.h @@ -67,6 +67,15 @@ class LineageTracingConnection google::cloud::datacatalog::lineage::v1::DeleteProcessRequest const& request) override; + StatusOr DeleteProcess( + ExperimentalTag, NoAwaitTag, + google::cloud::datacatalog::lineage::v1::DeleteProcessRequest const& + request) override; + + future> + DeleteProcess(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr CreateRun( google::cloud::datacatalog::lineage::v1::CreateRunRequest const& request) override; @@ -87,6 +96,15 @@ class LineageTracingConnection DeleteRun(google::cloud::datacatalog::lineage::v1::DeleteRunRequest const& request) override; + StatusOr DeleteRun( + ExperimentalTag, NoAwaitTag, + google::cloud::datacatalog::lineage::v1::DeleteRunRequest const& request) + override; + + future> + DeleteRun(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr CreateLineageEvent( google::cloud::datacatalog::lineage::v1::CreateLineageEventRequest const& diff --git a/google/cloud/datacatalog/lineage/v1/lineage_connection.cc b/google/cloud/datacatalog/lineage/v1/lineage_connection.cc index 4e91304718cc2..74422aaf9db28 100644 --- a/google/cloud/datacatalog/lineage/v1/lineage_connection.cc +++ b/google/cloud/datacatalog/lineage/v1/lineage_connection.cc @@ -80,6 +80,21 @@ LineageConnection::DeleteProcess( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr LineageConnection::DeleteProcess( + ExperimentalTag, NoAwaitTag, + google::cloud::datacatalog::lineage::v1::DeleteProcessRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +LineageConnection::DeleteProcess(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr LineageConnection::CreateRun( google::cloud::datacatalog::lineage::v1::CreateRunRequest const&) { @@ -114,6 +129,21 @@ LineageConnection::DeleteRun( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr LineageConnection::DeleteRun( + ExperimentalTag, NoAwaitTag, + google::cloud::datacatalog::lineage::v1::DeleteRunRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +LineageConnection::DeleteRun(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr LineageConnection::CreateLineageEvent( google::cloud::datacatalog::lineage::v1::CreateLineageEventRequest const&) { diff --git a/google/cloud/datacatalog/lineage/v1/lineage_connection.h b/google/cloud/datacatalog/lineage/v1/lineage_connection.h index b49080a2907bc..bf88fb23f0ca1 100644 --- a/google/cloud/datacatalog/lineage/v1/lineage_connection.h +++ b/google/cloud/datacatalog/lineage/v1/lineage_connection.h @@ -22,8 +22,10 @@ #include "google/cloud/datacatalog/lineage/v1/internal/lineage_retry_traits.h" #include "google/cloud/datacatalog/lineage/v1/lineage_connection_idempotency_policy.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/internal/retry_policy_impl.h" +#include "google/cloud/no_await_tag.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" #include "google/cloud/status_or.h" @@ -212,6 +214,16 @@ class LineageConnection { google::cloud::datacatalog::lineage::v1::DeleteProcessRequest const& request); + virtual StatusOr DeleteProcess( + ExperimentalTag, NoAwaitTag, + google::cloud::datacatalog::lineage::v1::DeleteProcessRequest const& + request); + + virtual future< + StatusOr> + DeleteProcess(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StatusOr CreateRun( google::cloud::datacatalog::lineage::v1::CreateRunRequest const& request); @@ -229,6 +241,14 @@ class LineageConnection { DeleteRun( google::cloud::datacatalog::lineage::v1::DeleteRunRequest const& request); + virtual StatusOr DeleteRun( + ExperimentalTag, NoAwaitTag, + google::cloud::datacatalog::lineage::v1::DeleteRunRequest const& request); + + virtual future< + StatusOr> + DeleteRun(ExperimentalTag, google::longrunning::Operation const& operation); + virtual StatusOr CreateLineageEvent( google::cloud::datacatalog::lineage::v1::CreateLineageEventRequest const& diff --git a/google/cloud/datacatalog/lineage/v1/mocks/mock_lineage_connection.h b/google/cloud/datacatalog/lineage/v1/mocks/mock_lineage_connection.h index 9f43765b47647..5a766783219ba 100644 --- a/google/cloud/datacatalog/lineage/v1/mocks/mock_lineage_connection.h +++ b/google/cloud/datacatalog/lineage/v1/mocks/mock_lineage_connection.h @@ -85,6 +85,20 @@ class MockLineageConnection : public datacatalog_lineage_v1::LineageConnection { request), (override)); + MOCK_METHOD( + StatusOr, DeleteProcess, + (ExperimentalTag, NoAwaitTag, + google::cloud::datacatalog::lineage::v1::DeleteProcessRequest const& + request), + (override)); + + MOCK_METHOD( + future< + StatusOr>, + DeleteProcess, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(StatusOr, CreateRun, (google::cloud::datacatalog::lineage::v1::CreateRunRequest const& request), @@ -113,6 +127,19 @@ class MockLineageConnection : public datacatalog_lineage_v1::LineageConnection { request), (override)); + MOCK_METHOD(StatusOr, DeleteRun, + (ExperimentalTag, NoAwaitTag, + google::cloud::datacatalog::lineage::v1::DeleteRunRequest const& + request), + (override)); + + MOCK_METHOD( + future< + StatusOr>, + DeleteRun, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr, CreateLineageEvent, diff --git a/google/cloud/datacatalog/v1/data_catalog_connection.cc b/google/cloud/datacatalog/v1/data_catalog_connection.cc index a47bb14715be3..55e7ae28f2cf1 100644 --- a/google/cloud/datacatalog/v1/data_catalog_connection.cc +++ b/google/cloud/datacatalog/v1/data_catalog_connection.cc @@ -209,6 +209,21 @@ DataCatalogConnection::ReconcileTags( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr DataCatalogConnection::ReconcileTags( + ExperimentalTag, NoAwaitTag, + google::cloud::datacatalog::v1::ReconcileTagsRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +DataCatalogConnection::ReconcileTags(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr DataCatalogConnection::StarEntry( google::cloud::datacatalog::v1::StarEntryRequest const&) { @@ -245,6 +260,21 @@ DataCatalogConnection::ImportEntries( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr DataCatalogConnection::ImportEntries( + ExperimentalTag, NoAwaitTag, + google::cloud::datacatalog::v1::ImportEntriesRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +DataCatalogConnection::ImportEntries(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + std::shared_ptr MakeDataCatalogConnection( Options options) { internal::CheckExpectedOptions ReconcileTags( + ExperimentalTag, NoAwaitTag, + google::cloud::datacatalog::v1::ReconcileTagsRequest const& request); + + virtual future< + StatusOr> + ReconcileTags(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StatusOr StarEntry( google::cloud::datacatalog::v1::StarEntryRequest const& request); @@ -306,6 +317,15 @@ class DataCatalogConnection { StatusOr> ImportEntries( google::cloud::datacatalog::v1::ImportEntriesRequest const& request); + + virtual StatusOr ImportEntries( + ExperimentalTag, NoAwaitTag, + google::cloud::datacatalog::v1::ImportEntriesRequest const& request); + + virtual future< + StatusOr> + ImportEntries(ExperimentalTag, + google::longrunning::Operation const& operation); }; /** diff --git a/google/cloud/datacatalog/v1/internal/data_catalog_connection_impl.cc b/google/cloud/datacatalog/v1/internal/data_catalog_connection_impl.cc index 1410bf1e5908a..a9859f98c34b7 100644 --- a/google/cloud/datacatalog/v1/internal/data_catalog_connection_impl.cc +++ b/google/cloud/datacatalog/v1/internal/data_catalog_connection_impl.cc @@ -585,6 +585,60 @@ DataCatalogConnectionImpl::ReconcileTags( polling_policy(*current), __func__); } +StatusOr +DataCatalogConnectionImpl::ReconcileTags( + ExperimentalTag, NoAwaitTag, + google::cloud::datacatalog::v1::ReconcileTagsRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->ReconcileTags(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::datacatalog::v1::ReconcileTagsRequest const& request) { + return stub_->ReconcileTags(context, options, request); + }, + *current, request, __func__); +} + +future> +DataCatalogConnectionImpl::ReconcileTags( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to ReconcileTags", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::datacatalog::v1::ReconcileTagsResponse>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::datacatalog::v1::ReconcileTagsResponse>, + polling_policy(*current), __func__); +} + StatusOr DataCatalogConnectionImpl::StarEntry( google::cloud::datacatalog::v1::StarEntryRequest const& request) { @@ -693,6 +747,60 @@ DataCatalogConnectionImpl::ImportEntries( polling_policy(*current), __func__); } +StatusOr +DataCatalogConnectionImpl::ImportEntries( + ExperimentalTag, NoAwaitTag, + google::cloud::datacatalog::v1::ImportEntriesRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->ImportEntries(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::datacatalog::v1::ImportEntriesRequest const& request) { + return stub_->ImportEntries(context, options, request); + }, + *current, request, __func__); +} + +future> +DataCatalogConnectionImpl::ImportEntries( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to ImportEntries", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::datacatalog::v1::ImportEntriesResponse>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::datacatalog::v1::ImportEntriesResponse>, + polling_policy(*current), __func__); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace datacatalog_v1_internal } // namespace cloud diff --git a/google/cloud/datacatalog/v1/internal/data_catalog_connection_impl.h b/google/cloud/datacatalog/v1/internal/data_catalog_connection_impl.h index 04fa7b61c98a7..65d4a4f5ff806 100644 --- a/google/cloud/datacatalog/v1/internal/data_catalog_connection_impl.h +++ b/google/cloud/datacatalog/v1/internal/data_catalog_connection_impl.h @@ -159,6 +159,15 @@ class DataCatalogConnectionImpl : public datacatalog_v1::DataCatalogConnection { ReconcileTags(google::cloud::datacatalog::v1::ReconcileTagsRequest const& request) override; + StatusOr ReconcileTags( + ExperimentalTag, NoAwaitTag, + google::cloud::datacatalog::v1::ReconcileTagsRequest const& request) + override; + + future> + ReconcileTags(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr StarEntry( google::cloud::datacatalog::v1::StarEntryRequest const& request) override; @@ -179,6 +188,15 @@ class DataCatalogConnectionImpl : public datacatalog_v1::DataCatalogConnection { ImportEntries(google::cloud::datacatalog::v1::ImportEntriesRequest const& request) override; + StatusOr ImportEntries( + ExperimentalTag, NoAwaitTag, + google::cloud::datacatalog::v1::ImportEntriesRequest const& request) + override; + + future> + ImportEntries(ExperimentalTag, + google::longrunning::Operation const& operation) override; + private: std::unique_ptr background_; std::shared_ptr stub_; diff --git a/google/cloud/datacatalog/v1/internal/data_catalog_tracing_connection.cc b/google/cloud/datacatalog/v1/internal/data_catalog_tracing_connection.cc index b0d61f44dc471..e376c631248d8 100644 --- a/google/cloud/datacatalog/v1/internal/data_catalog_tracing_connection.cc +++ b/google/cloud/datacatalog/v1/internal/data_catalog_tracing_connection.cc @@ -296,6 +296,27 @@ DataCatalogTracingConnection::ReconcileTags( return internal::EndSpan(std::move(span), child_->ReconcileTags(request)); } +StatusOr +DataCatalogTracingConnection::ReconcileTags( + ExperimentalTag, NoAwaitTag, + google::cloud::datacatalog::v1::ReconcileTagsRequest const& request) { + auto span = internal::MakeSpan( + "datacatalog_v1::DataCatalogConnection::ReconcileTags"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->ReconcileTags(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +DataCatalogTracingConnection::ReconcileTags( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "datacatalog_v1::DataCatalogConnection::ReconcileTags"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->ReconcileTags(ExperimentalTag{}, operation)); +} + StatusOr DataCatalogTracingConnection::StarEntry( google::cloud::datacatalog::v1::StarEntryRequest const& request) { @@ -348,6 +369,27 @@ DataCatalogTracingConnection::ImportEntries( return internal::EndSpan(std::move(span), child_->ImportEntries(request)); } +StatusOr +DataCatalogTracingConnection::ImportEntries( + ExperimentalTag, NoAwaitTag, + google::cloud::datacatalog::v1::ImportEntriesRequest const& request) { + auto span = internal::MakeSpan( + "datacatalog_v1::DataCatalogConnection::ImportEntries"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->ImportEntries(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +DataCatalogTracingConnection::ImportEntries( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "datacatalog_v1::DataCatalogConnection::ImportEntries"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->ImportEntries(ExperimentalTag{}, operation)); +} + #endif // GOOGLE_CLOUD_CPP_HAVE_OPENTELEMETRY std::shared_ptr diff --git a/google/cloud/datacatalog/v1/internal/data_catalog_tracing_connection.h b/google/cloud/datacatalog/v1/internal/data_catalog_tracing_connection.h index d1dce7d1be4be..ba9235443de50 100644 --- a/google/cloud/datacatalog/v1/internal/data_catalog_tracing_connection.h +++ b/google/cloud/datacatalog/v1/internal/data_catalog_tracing_connection.h @@ -148,6 +148,15 @@ class DataCatalogTracingConnection ReconcileTags(google::cloud::datacatalog::v1::ReconcileTagsRequest const& request) override; + StatusOr ReconcileTags( + ExperimentalTag, NoAwaitTag, + google::cloud::datacatalog::v1::ReconcileTagsRequest const& request) + override; + + future> + ReconcileTags(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr StarEntry( google::cloud::datacatalog::v1::StarEntryRequest const& request) override; @@ -168,6 +177,15 @@ class DataCatalogTracingConnection ImportEntries(google::cloud::datacatalog::v1::ImportEntriesRequest const& request) override; + StatusOr ImportEntries( + ExperimentalTag, NoAwaitTag, + google::cloud::datacatalog::v1::ImportEntriesRequest const& request) + override; + + future> + ImportEntries(ExperimentalTag, + google::longrunning::Operation const& operation) override; + private: std::shared_ptr child_; }; diff --git a/google/cloud/datacatalog/v1/mocks/mock_data_catalog_connection.h b/google/cloud/datacatalog/v1/mocks/mock_data_catalog_connection.h index aee151e551e42..88604a506da57 100644 --- a/google/cloud/datacatalog/v1/mocks/mock_data_catalog_connection.h +++ b/google/cloud/datacatalog/v1/mocks/mock_data_catalog_connection.h @@ -192,6 +192,18 @@ class MockDataCatalogConnection : public datacatalog_v1::DataCatalogConnection { (google::cloud::datacatalog::v1::ReconcileTagsRequest const& request), (override)); + MOCK_METHOD( + StatusOr, ReconcileTags, + (ExperimentalTag, NoAwaitTag, + google::cloud::datacatalog::v1::ReconcileTagsRequest const& request), + (override)); + + MOCK_METHOD( + future>, + ReconcileTags, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(StatusOr, StarEntry, (google::cloud::datacatalog::v1::StarEntryRequest const& request), @@ -221,6 +233,18 @@ class MockDataCatalogConnection : public datacatalog_v1::DataCatalogConnection { ImportEntries, (google::cloud::datacatalog::v1::ImportEntriesRequest const& request), (override)); + + MOCK_METHOD( + StatusOr, ImportEntries, + (ExperimentalTag, NoAwaitTag, + google::cloud::datacatalog::v1::ImportEntriesRequest const& request), + (override)); + + MOCK_METHOD( + future>, + ImportEntries, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); }; GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END diff --git a/google/cloud/datacatalog/v1/policy_tag_manager_connection.h b/google/cloud/datacatalog/v1/policy_tag_manager_connection.h index 532a53b50332e..919db8697f98a 100644 --- a/google/cloud/datacatalog/v1/policy_tag_manager_connection.h +++ b/google/cloud/datacatalog/v1/policy_tag_manager_connection.h @@ -22,6 +22,7 @@ #include "google/cloud/datacatalog/v1/internal/policy_tag_manager_retry_traits.h" #include "google/cloud/datacatalog/v1/policy_tag_manager_connection_idempotency_policy.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/internal/retry_policy_impl.h" #include "google/cloud/options.h" #include "google/cloud/status_or.h" diff --git a/google/cloud/datacatalog/v1/policy_tag_manager_serialization_connection.h b/google/cloud/datacatalog/v1/policy_tag_manager_serialization_connection.h index 381416bbfe55d..8eb507766d4e7 100644 --- a/google/cloud/datacatalog/v1/policy_tag_manager_serialization_connection.h +++ b/google/cloud/datacatalog/v1/policy_tag_manager_serialization_connection.h @@ -22,6 +22,7 @@ #include "google/cloud/datacatalog/v1/internal/policy_tag_manager_serialization_retry_traits.h" #include "google/cloud/datacatalog/v1/policy_tag_manager_serialization_connection_idempotency_policy.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/internal/retry_policy_impl.h" #include "google/cloud/options.h" #include "google/cloud/status_or.h" diff --git a/google/cloud/datafusion/v1/data_fusion_connection.cc b/google/cloud/datafusion/v1/data_fusion_connection.cc index bb9d80cac39c3..0f70ea89a2ec3 100644 --- a/google/cloud/datafusion/v1/data_fusion_connection.cc +++ b/google/cloud/datafusion/v1/data_fusion_connection.cc @@ -68,6 +68,21 @@ DataFusionConnection::CreateInstance( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr DataFusionConnection::CreateInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::datafusion::v1::CreateInstanceRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +DataFusionConnection::CreateInstance(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> DataFusionConnection::DeleteInstance( google::cloud::datafusion::v1::DeleteInstanceRequest const&) { @@ -76,6 +91,21 @@ DataFusionConnection::DeleteInstance( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr DataFusionConnection::DeleteInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::datafusion::v1::DeleteInstanceRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +DataFusionConnection::DeleteInstance(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> DataFusionConnection::UpdateInstance( google::cloud::datafusion::v1::UpdateInstanceRequest const&) { @@ -84,6 +114,21 @@ DataFusionConnection::UpdateInstance( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr DataFusionConnection::UpdateInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::datafusion::v1::UpdateInstanceRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +DataFusionConnection::UpdateInstance(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> DataFusionConnection::RestartInstance( google::cloud::datafusion::v1::RestartInstanceRequest const&) { @@ -92,6 +137,21 @@ DataFusionConnection::RestartInstance( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr DataFusionConnection::RestartInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::datafusion::v1::RestartInstanceRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +DataFusionConnection::RestartInstance(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + std::shared_ptr MakeDataFusionConnection( Options options) { internal::CheckExpectedOptions CreateInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::datafusion::v1::CreateInstanceRequest const& request); + + virtual future> + CreateInstance(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> DeleteInstance( google::cloud::datafusion::v1::DeleteInstanceRequest const& request); + virtual StatusOr DeleteInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::datafusion::v1::DeleteInstanceRequest const& request); + + virtual future> + DeleteInstance(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> UpdateInstance( google::cloud::datafusion::v1::UpdateInstanceRequest const& request); + virtual StatusOr UpdateInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::datafusion::v1::UpdateInstanceRequest const& request); + + virtual future> + UpdateInstance(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> RestartInstance( google::cloud::datafusion::v1::RestartInstanceRequest const& request); + + virtual StatusOr RestartInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::datafusion::v1::RestartInstanceRequest const& request); + + virtual future> + RestartInstance(ExperimentalTag, + google::longrunning::Operation const& operation); }; /** diff --git a/google/cloud/datafusion/v1/internal/data_fusion_connection_impl.cc b/google/cloud/datafusion/v1/internal/data_fusion_connection_impl.cc index 2661c7497053c..66fe44036912c 100644 --- a/google/cloud/datafusion/v1/internal/data_fusion_connection_impl.cc +++ b/google/cloud/datafusion/v1/internal/data_fusion_connection_impl.cc @@ -187,6 +187,58 @@ DataFusionConnectionImpl::CreateInstance( polling_policy(*current), __func__); } +StatusOr +DataFusionConnectionImpl::CreateInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::datafusion::v1::CreateInstanceRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateInstance(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::datafusion::v1::CreateInstanceRequest const& request) { + return stub_->CreateInstance(context, options, request); + }, + *current, request, __func__); +} + +future> +DataFusionConnectionImpl::CreateInstance( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to CreateInstance", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::datafusion::v1::Instance>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::datafusion::v1::Instance>, + polling_policy(*current), __func__); +} + future> DataFusionConnectionImpl::DeleteInstance( google::cloud::datafusion::v1::DeleteInstanceRequest const& request) { @@ -226,6 +278,59 @@ DataFusionConnectionImpl::DeleteInstance( polling_policy(*current), __func__); } +StatusOr +DataFusionConnectionImpl::DeleteInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::datafusion::v1::DeleteInstanceRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteInstance(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::datafusion::v1::DeleteInstanceRequest const& request) { + return stub_->DeleteInstance(context, options, request); + }, + *current, request, __func__); +} + +future> +DataFusionConnectionImpl::DeleteInstance( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteInstance", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::datafusion::v1::OperationMetadata>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::cloud::datafusion::v1::OperationMetadata>, + polling_policy(*current), __func__); +} + future> DataFusionConnectionImpl::UpdateInstance( google::cloud::datafusion::v1::UpdateInstanceRequest const& request) { @@ -265,6 +370,58 @@ DataFusionConnectionImpl::UpdateInstance( polling_policy(*current), __func__); } +StatusOr +DataFusionConnectionImpl::UpdateInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::datafusion::v1::UpdateInstanceRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UpdateInstance(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::datafusion::v1::UpdateInstanceRequest const& request) { + return stub_->UpdateInstance(context, options, request); + }, + *current, request, __func__); +} + +future> +DataFusionConnectionImpl::UpdateInstance( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to UpdateInstance", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::datafusion::v1::Instance>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::datafusion::v1::Instance>, + polling_policy(*current), __func__); +} + future> DataFusionConnectionImpl::RestartInstance( google::cloud::datafusion::v1::RestartInstanceRequest const& request) { @@ -305,6 +462,58 @@ DataFusionConnectionImpl::RestartInstance( polling_policy(*current), __func__); } +StatusOr +DataFusionConnectionImpl::RestartInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::datafusion::v1::RestartInstanceRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->RestartInstance(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::datafusion::v1::RestartInstanceRequest const& + request) { + return stub_->RestartInstance(context, options, request); + }, + *current, request, __func__); +} + +future> +DataFusionConnectionImpl::RestartInstance( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to RestartInstance", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::datafusion::v1::Instance>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::datafusion::v1::Instance>, + polling_policy(*current), __func__); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace datafusion_v1_internal } // namespace cloud diff --git a/google/cloud/datafusion/v1/internal/data_fusion_connection_impl.h b/google/cloud/datafusion/v1/internal/data_fusion_connection_impl.h index 84f4d121ec16a..2f5b1d6fcec0e 100644 --- a/google/cloud/datafusion/v1/internal/data_fusion_connection_impl.h +++ b/google/cloud/datafusion/v1/internal/data_fusion_connection_impl.h @@ -66,18 +66,54 @@ class DataFusionConnectionImpl : public datafusion_v1::DataFusionConnection { google::cloud::datafusion::v1::CreateInstanceRequest const& request) override; + StatusOr CreateInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::datafusion::v1::CreateInstanceRequest const& request) + override; + + future> CreateInstance( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteInstance(google::cloud::datafusion::v1::DeleteInstanceRequest const& request) override; + StatusOr DeleteInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::datafusion::v1::DeleteInstanceRequest const& request) + override; + + future> + DeleteInstance(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateInstance( google::cloud::datafusion::v1::UpdateInstanceRequest const& request) override; + StatusOr UpdateInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::datafusion::v1::UpdateInstanceRequest const& request) + override; + + future> UpdateInstance( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> RestartInstance( google::cloud::datafusion::v1::RestartInstanceRequest const& request) override; + StatusOr RestartInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::datafusion::v1::RestartInstanceRequest const& request) + override; + + future> RestartInstance( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + private: std::unique_ptr background_; std::shared_ptr stub_; diff --git a/google/cloud/datafusion/v1/internal/data_fusion_tracing_connection.cc b/google/cloud/datafusion/v1/internal/data_fusion_tracing_connection.cc index c1fcf93dd67f1..a03f8bb48d61c 100644 --- a/google/cloud/datafusion/v1/internal/data_fusion_tracing_connection.cc +++ b/google/cloud/datafusion/v1/internal/data_fusion_tracing_connection.cc @@ -73,6 +73,27 @@ DataFusionTracingConnection::CreateInstance( return internal::EndSpan(std::move(span), child_->CreateInstance(request)); } +StatusOr +DataFusionTracingConnection::CreateInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::datafusion::v1::CreateInstanceRequest const& request) { + auto span = + internal::MakeSpan("datafusion_v1::DataFusionConnection::CreateInstance"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->CreateInstance(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +DataFusionTracingConnection::CreateInstance( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = + internal::MakeSpan("datafusion_v1::DataFusionConnection::CreateInstance"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->CreateInstance(ExperimentalTag{}, operation)); +} + future> DataFusionTracingConnection::DeleteInstance( google::cloud::datafusion::v1::DeleteInstanceRequest const& request) { @@ -82,6 +103,27 @@ DataFusionTracingConnection::DeleteInstance( return internal::EndSpan(std::move(span), child_->DeleteInstance(request)); } +StatusOr +DataFusionTracingConnection::DeleteInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::datafusion::v1::DeleteInstanceRequest const& request) { + auto span = + internal::MakeSpan("datafusion_v1::DataFusionConnection::DeleteInstance"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->DeleteInstance(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +DataFusionTracingConnection::DeleteInstance( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = + internal::MakeSpan("datafusion_v1::DataFusionConnection::DeleteInstance"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->DeleteInstance(ExperimentalTag{}, operation)); +} + future> DataFusionTracingConnection::UpdateInstance( google::cloud::datafusion::v1::UpdateInstanceRequest const& request) { @@ -91,6 +133,27 @@ DataFusionTracingConnection::UpdateInstance( return internal::EndSpan(std::move(span), child_->UpdateInstance(request)); } +StatusOr +DataFusionTracingConnection::UpdateInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::datafusion::v1::UpdateInstanceRequest const& request) { + auto span = + internal::MakeSpan("datafusion_v1::DataFusionConnection::UpdateInstance"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->UpdateInstance(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +DataFusionTracingConnection::UpdateInstance( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = + internal::MakeSpan("datafusion_v1::DataFusionConnection::UpdateInstance"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->UpdateInstance(ExperimentalTag{}, operation)); +} + future> DataFusionTracingConnection::RestartInstance( google::cloud::datafusion::v1::RestartInstanceRequest const& request) { @@ -100,6 +163,27 @@ DataFusionTracingConnection::RestartInstance( return internal::EndSpan(std::move(span), child_->RestartInstance(request)); } +StatusOr +DataFusionTracingConnection::RestartInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::datafusion::v1::RestartInstanceRequest const& request) { + auto span = internal::MakeSpan( + "datafusion_v1::DataFusionConnection::RestartInstance"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->RestartInstance(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +DataFusionTracingConnection::RestartInstance( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "datafusion_v1::DataFusionConnection::RestartInstance"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->RestartInstance(ExperimentalTag{}, operation)); +} + #endif // GOOGLE_CLOUD_CPP_HAVE_OPENTELEMETRY std::shared_ptr diff --git a/google/cloud/datafusion/v1/internal/data_fusion_tracing_connection.h b/google/cloud/datafusion/v1/internal/data_fusion_tracing_connection.h index f854ac884f049..24acdef8b598e 100644 --- a/google/cloud/datafusion/v1/internal/data_fusion_tracing_connection.h +++ b/google/cloud/datafusion/v1/internal/data_fusion_tracing_connection.h @@ -54,18 +54,54 @@ class DataFusionTracingConnection : public datafusion_v1::DataFusionConnection { google::cloud::datafusion::v1::CreateInstanceRequest const& request) override; + StatusOr CreateInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::datafusion::v1::CreateInstanceRequest const& request) + override; + + future> CreateInstance( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteInstance(google::cloud::datafusion::v1::DeleteInstanceRequest const& request) override; + StatusOr DeleteInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::datafusion::v1::DeleteInstanceRequest const& request) + override; + + future> + DeleteInstance(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateInstance( google::cloud::datafusion::v1::UpdateInstanceRequest const& request) override; + StatusOr UpdateInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::datafusion::v1::UpdateInstanceRequest const& request) + override; + + future> UpdateInstance( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> RestartInstance( google::cloud::datafusion::v1::RestartInstanceRequest const& request) override; + StatusOr RestartInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::datafusion::v1::RestartInstanceRequest const& request) + override; + + future> RestartInstance( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + private: std::shared_ptr child_; }; diff --git a/google/cloud/datafusion/v1/mocks/mock_data_fusion_connection.h b/google/cloud/datafusion/v1/mocks/mock_data_fusion_connection.h index 2851bfa1d100e..66273eca99bc2 100644 --- a/google/cloud/datafusion/v1/mocks/mock_data_fusion_connection.h +++ b/google/cloud/datafusion/v1/mocks/mock_data_fusion_connection.h @@ -67,22 +67,70 @@ class MockDataFusionConnection : public datafusion_v1::DataFusionConnection { (google::cloud::datafusion::v1::CreateInstanceRequest const& request), (override)); + MOCK_METHOD( + StatusOr, CreateInstance, + (ExperimentalTag, NoAwaitTag, + google::cloud::datafusion::v1::CreateInstanceRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateInstance, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteInstance, (google::cloud::datafusion::v1::DeleteInstanceRequest const& request), (override)); + MOCK_METHOD( + StatusOr, DeleteInstance, + (ExperimentalTag, NoAwaitTag, + google::cloud::datafusion::v1::DeleteInstanceRequest const& request), + (override)); + + MOCK_METHOD( + future>, + DeleteInstance, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, UpdateInstance, (google::cloud::datafusion::v1::UpdateInstanceRequest const& request), (override)); + MOCK_METHOD( + StatusOr, UpdateInstance, + (ExperimentalTag, NoAwaitTag, + google::cloud::datafusion::v1::UpdateInstanceRequest const& request), + (override)); + + MOCK_METHOD(future>, + UpdateInstance, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, RestartInstance, (google::cloud::datafusion::v1::RestartInstanceRequest const& request), (override)); + + MOCK_METHOD( + StatusOr, RestartInstance, + (ExperimentalTag, NoAwaitTag, + google::cloud::datafusion::v1::RestartInstanceRequest const& request), + (override)); + + MOCK_METHOD(future>, + RestartInstance, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); }; GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END diff --git a/google/cloud/datamigration/v1/data_migration_connection.cc b/google/cloud/datamigration/v1/data_migration_connection.cc index 57ae087b6522e..e517cbe86d405 100644 --- a/google/cloud/datamigration/v1/data_migration_connection.cc +++ b/google/cloud/datamigration/v1/data_migration_connection.cc @@ -60,6 +60,22 @@ DataMigrationServiceConnection::CreateMigrationJob( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +DataMigrationServiceConnection::CreateMigrationJob( + ExperimentalTag, NoAwaitTag, + google::cloud::clouddms::v1::CreateMigrationJobRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +DataMigrationServiceConnection::CreateMigrationJob( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> DataMigrationServiceConnection::UpdateMigrationJob( google::cloud::clouddms::v1::UpdateMigrationJobRequest const&) { @@ -68,6 +84,22 @@ DataMigrationServiceConnection::UpdateMigrationJob( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +DataMigrationServiceConnection::UpdateMigrationJob( + ExperimentalTag, NoAwaitTag, + google::cloud::clouddms::v1::UpdateMigrationJobRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +DataMigrationServiceConnection::UpdateMigrationJob( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> DataMigrationServiceConnection::DeleteMigrationJob( google::cloud::clouddms::v1::DeleteMigrationJobRequest const&) { @@ -76,6 +108,22 @@ DataMigrationServiceConnection::DeleteMigrationJob( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +DataMigrationServiceConnection::DeleteMigrationJob( + ExperimentalTag, NoAwaitTag, + google::cloud::clouddms::v1::DeleteMigrationJobRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +DataMigrationServiceConnection::DeleteMigrationJob( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> DataMigrationServiceConnection::StartMigrationJob( google::cloud::clouddms::v1::StartMigrationJobRequest const&) { @@ -84,9 +132,41 @@ DataMigrationServiceConnection::StartMigrationJob( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +DataMigrationServiceConnection::StartMigrationJob( + ExperimentalTag, NoAwaitTag, + google::cloud::clouddms::v1::StartMigrationJobRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> +DataMigrationServiceConnection::StartMigrationJob( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +DataMigrationServiceConnection::StopMigrationJob( + google::cloud::clouddms::v1::StopMigrationJobRequest const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +StatusOr DataMigrationServiceConnection::StopMigrationJob( + ExperimentalTag, NoAwaitTag, google::cloud::clouddms::v1::StopMigrationJobRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +DataMigrationServiceConnection::StopMigrationJob( + ExperimentalTag, google::longrunning::Operation const&) { return google::cloud::make_ready_future< StatusOr>( Status(StatusCode::kUnimplemented, "not implemented")); @@ -100,6 +180,22 @@ DataMigrationServiceConnection::ResumeMigrationJob( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +DataMigrationServiceConnection::ResumeMigrationJob( + ExperimentalTag, NoAwaitTag, + google::cloud::clouddms::v1::ResumeMigrationJobRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +DataMigrationServiceConnection::ResumeMigrationJob( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> DataMigrationServiceConnection::PromoteMigrationJob( google::cloud::clouddms::v1::PromoteMigrationJobRequest const&) { @@ -108,6 +204,22 @@ DataMigrationServiceConnection::PromoteMigrationJob( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +DataMigrationServiceConnection::PromoteMigrationJob( + ExperimentalTag, NoAwaitTag, + google::cloud::clouddms::v1::PromoteMigrationJobRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +DataMigrationServiceConnection::PromoteMigrationJob( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> DataMigrationServiceConnection::VerifyMigrationJob( google::cloud::clouddms::v1::VerifyMigrationJobRequest const&) { @@ -116,6 +228,22 @@ DataMigrationServiceConnection::VerifyMigrationJob( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +DataMigrationServiceConnection::VerifyMigrationJob( + ExperimentalTag, NoAwaitTag, + google::cloud::clouddms::v1::VerifyMigrationJobRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +DataMigrationServiceConnection::VerifyMigrationJob( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> DataMigrationServiceConnection::RestartMigrationJob( google::cloud::clouddms::v1::RestartMigrationJobRequest const&) { @@ -124,6 +252,22 @@ DataMigrationServiceConnection::RestartMigrationJob( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +DataMigrationServiceConnection::RestartMigrationJob( + ExperimentalTag, NoAwaitTag, + google::cloud::clouddms::v1::RestartMigrationJobRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +DataMigrationServiceConnection::RestartMigrationJob( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr DataMigrationServiceConnection::GenerateSshScript( google::cloud::clouddms::v1::GenerateSshScriptRequest const&) { @@ -158,9 +302,41 @@ DataMigrationServiceConnection::CreateConnectionProfile( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +DataMigrationServiceConnection::CreateConnectionProfile( + ExperimentalTag, NoAwaitTag, + google::cloud::clouddms::v1::CreateConnectionProfileRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> +DataMigrationServiceConnection::CreateConnectionProfile( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +DataMigrationServiceConnection::UpdateConnectionProfile( + google::cloud::clouddms::v1::UpdateConnectionProfileRequest const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +StatusOr DataMigrationServiceConnection::UpdateConnectionProfile( + ExperimentalTag, NoAwaitTag, google::cloud::clouddms::v1::UpdateConnectionProfileRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +DataMigrationServiceConnection::UpdateConnectionProfile( + ExperimentalTag, google::longrunning::Operation const&) { return google::cloud::make_ready_future< StatusOr>( Status(StatusCode::kUnimplemented, "not implemented")); @@ -174,6 +350,22 @@ DataMigrationServiceConnection::DeleteConnectionProfile( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +DataMigrationServiceConnection::DeleteConnectionProfile( + ExperimentalTag, NoAwaitTag, + google::cloud::clouddms::v1::DeleteConnectionProfileRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +DataMigrationServiceConnection::DeleteConnectionProfile( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> DataMigrationServiceConnection::CreatePrivateConnection( google::cloud::clouddms::v1::CreatePrivateConnectionRequest const&) { @@ -182,6 +374,22 @@ DataMigrationServiceConnection::CreatePrivateConnection( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +DataMigrationServiceConnection::CreatePrivateConnection( + ExperimentalTag, NoAwaitTag, + google::cloud::clouddms::v1::CreatePrivateConnectionRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +DataMigrationServiceConnection::CreatePrivateConnection( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr DataMigrationServiceConnection::GetPrivateConnection( google::cloud::clouddms::v1::GetPrivateConnectionRequest const&) { @@ -204,6 +412,22 @@ DataMigrationServiceConnection::DeletePrivateConnection( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +DataMigrationServiceConnection::DeletePrivateConnection( + ExperimentalTag, NoAwaitTag, + google::cloud::clouddms::v1::DeletePrivateConnectionRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +DataMigrationServiceConnection::DeletePrivateConnection( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr DataMigrationServiceConnection::GetConversionWorkspace( google::cloud::clouddms::v1::GetConversionWorkspaceRequest const&) { @@ -226,6 +450,22 @@ DataMigrationServiceConnection::CreateConversionWorkspace( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +DataMigrationServiceConnection::CreateConversionWorkspace( + ExperimentalTag, NoAwaitTag, + google::cloud::clouddms::v1::CreateConversionWorkspaceRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +DataMigrationServiceConnection::CreateConversionWorkspace( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> DataMigrationServiceConnection::UpdateConversionWorkspace( google::cloud::clouddms::v1::UpdateConversionWorkspaceRequest const&) { @@ -234,6 +474,22 @@ DataMigrationServiceConnection::UpdateConversionWorkspace( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +DataMigrationServiceConnection::UpdateConversionWorkspace( + ExperimentalTag, NoAwaitTag, + google::cloud::clouddms::v1::UpdateConversionWorkspaceRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +DataMigrationServiceConnection::UpdateConversionWorkspace( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> DataMigrationServiceConnection::DeleteConversionWorkspace( google::cloud::clouddms::v1::DeleteConversionWorkspaceRequest const&) { @@ -242,6 +498,22 @@ DataMigrationServiceConnection::DeleteConversionWorkspace( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +DataMigrationServiceConnection::DeleteConversionWorkspace( + ExperimentalTag, NoAwaitTag, + google::cloud::clouddms::v1::DeleteConversionWorkspaceRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +DataMigrationServiceConnection::DeleteConversionWorkspace( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr DataMigrationServiceConnection::CreateMappingRule( google::cloud::clouddms::v1::CreateMappingRuleRequest const&) { @@ -275,6 +547,22 @@ DataMigrationServiceConnection::SeedConversionWorkspace( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +DataMigrationServiceConnection::SeedConversionWorkspace( + ExperimentalTag, NoAwaitTag, + google::cloud::clouddms::v1::SeedConversionWorkspaceRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +DataMigrationServiceConnection::SeedConversionWorkspace( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> DataMigrationServiceConnection::ImportMappingRules( google::cloud::clouddms::v1::ImportMappingRulesRequest const&) { @@ -283,6 +571,22 @@ DataMigrationServiceConnection::ImportMappingRules( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +DataMigrationServiceConnection::ImportMappingRules( + ExperimentalTag, NoAwaitTag, + google::cloud::clouddms::v1::ImportMappingRulesRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +DataMigrationServiceConnection::ImportMappingRules( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> DataMigrationServiceConnection::ConvertConversionWorkspace( google::cloud::clouddms::v1::ConvertConversionWorkspaceRequest const&) { @@ -291,6 +595,22 @@ DataMigrationServiceConnection::ConvertConversionWorkspace( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +DataMigrationServiceConnection::ConvertConversionWorkspace( + ExperimentalTag, NoAwaitTag, + google::cloud::clouddms::v1::ConvertConversionWorkspaceRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +DataMigrationServiceConnection::ConvertConversionWorkspace( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> DataMigrationServiceConnection::CommitConversionWorkspace( google::cloud::clouddms::v1::CommitConversionWorkspaceRequest const&) { @@ -299,9 +619,41 @@ DataMigrationServiceConnection::CommitConversionWorkspace( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +DataMigrationServiceConnection::CommitConversionWorkspace( + ExperimentalTag, NoAwaitTag, + google::cloud::clouddms::v1::CommitConversionWorkspaceRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> +DataMigrationServiceConnection::CommitConversionWorkspace( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +DataMigrationServiceConnection::RollbackConversionWorkspace( + google::cloud::clouddms::v1::RollbackConversionWorkspaceRequest const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +StatusOr DataMigrationServiceConnection::RollbackConversionWorkspace( + ExperimentalTag, NoAwaitTag, google::cloud::clouddms::v1::RollbackConversionWorkspaceRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +DataMigrationServiceConnection::RollbackConversionWorkspace( + ExperimentalTag, google::longrunning::Operation const&) { return google::cloud::make_ready_future< StatusOr>( Status(StatusCode::kUnimplemented, "not implemented")); @@ -315,6 +667,22 @@ DataMigrationServiceConnection::ApplyConversionWorkspace( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +DataMigrationServiceConnection::ApplyConversionWorkspace( + ExperimentalTag, NoAwaitTag, + google::cloud::clouddms::v1::ApplyConversionWorkspaceRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +DataMigrationServiceConnection::ApplyConversionWorkspace( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StreamRange DataMigrationServiceConnection::DescribeDatabaseEntities( google::cloud::clouddms::v1:: diff --git a/google/cloud/datamigration/v1/data_migration_connection.h b/google/cloud/datamigration/v1/data_migration_connection.h index 2fd8cab34f130..989ef3a2dc73c 100644 --- a/google/cloud/datamigration/v1/data_migration_connection.h +++ b/google/cloud/datamigration/v1/data_migration_connection.h @@ -22,8 +22,10 @@ #include "google/cloud/datamigration/v1/data_migration_connection_idempotency_policy.h" #include "google/cloud/datamigration/v1/internal/data_migration_retry_traits.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/internal/retry_policy_impl.h" +#include "google/cloud/no_await_tag.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" #include "google/cloud/status_or.h" @@ -201,38 +203,110 @@ class DataMigrationServiceConnection { CreateMigrationJob( google::cloud::clouddms::v1::CreateMigrationJobRequest const& request); + virtual StatusOr CreateMigrationJob( + ExperimentalTag, NoAwaitTag, + google::cloud::clouddms::v1::CreateMigrationJobRequest const& request); + + virtual future> + CreateMigrationJob(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> UpdateMigrationJob( google::cloud::clouddms::v1::UpdateMigrationJobRequest const& request); + virtual StatusOr UpdateMigrationJob( + ExperimentalTag, NoAwaitTag, + google::cloud::clouddms::v1::UpdateMigrationJobRequest const& request); + + virtual future> + UpdateMigrationJob(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> DeleteMigrationJob( google::cloud::clouddms::v1::DeleteMigrationJobRequest const& request); + virtual StatusOr DeleteMigrationJob( + ExperimentalTag, NoAwaitTag, + google::cloud::clouddms::v1::DeleteMigrationJobRequest const& request); + + virtual future> + DeleteMigrationJob(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> StartMigrationJob( google::cloud::clouddms::v1::StartMigrationJobRequest const& request); + virtual StatusOr StartMigrationJob( + ExperimentalTag, NoAwaitTag, + google::cloud::clouddms::v1::StartMigrationJobRequest const& request); + + virtual future> + StartMigrationJob(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> StopMigrationJob( google::cloud::clouddms::v1::StopMigrationJobRequest const& request); + virtual StatusOr StopMigrationJob( + ExperimentalTag, NoAwaitTag, + google::cloud::clouddms::v1::StopMigrationJobRequest const& request); + + virtual future> + StopMigrationJob(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> ResumeMigrationJob( google::cloud::clouddms::v1::ResumeMigrationJobRequest const& request); + virtual StatusOr ResumeMigrationJob( + ExperimentalTag, NoAwaitTag, + google::cloud::clouddms::v1::ResumeMigrationJobRequest const& request); + + virtual future> + ResumeMigrationJob(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> PromoteMigrationJob( google::cloud::clouddms::v1::PromoteMigrationJobRequest const& request); + virtual StatusOr PromoteMigrationJob( + ExperimentalTag, NoAwaitTag, + google::cloud::clouddms::v1::PromoteMigrationJobRequest const& request); + + virtual future> + PromoteMigrationJob(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> VerifyMigrationJob( google::cloud::clouddms::v1::VerifyMigrationJobRequest const& request); + virtual StatusOr VerifyMigrationJob( + ExperimentalTag, NoAwaitTag, + google::cloud::clouddms::v1::VerifyMigrationJobRequest const& request); + + virtual future> + VerifyMigrationJob(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> RestartMigrationJob( google::cloud::clouddms::v1::RestartMigrationJobRequest const& request); + virtual StatusOr RestartMigrationJob( + ExperimentalTag, NoAwaitTag, + google::cloud::clouddms::v1::RestartMigrationJobRequest const& request); + + virtual future> + RestartMigrationJob(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StatusOr GenerateSshScript( google::cloud::clouddms::v1::GenerateSshScriptRequest const& request); @@ -254,21 +328,57 @@ class DataMigrationServiceConnection { google::cloud::clouddms::v1::CreateConnectionProfileRequest const& request); + virtual StatusOr CreateConnectionProfile( + ExperimentalTag, NoAwaitTag, + google::cloud::clouddms::v1::CreateConnectionProfileRequest const& + request); + + virtual future> + CreateConnectionProfile(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> UpdateConnectionProfile( google::cloud::clouddms::v1::UpdateConnectionProfileRequest const& request); + virtual StatusOr UpdateConnectionProfile( + ExperimentalTag, NoAwaitTag, + google::cloud::clouddms::v1::UpdateConnectionProfileRequest const& + request); + + virtual future> + UpdateConnectionProfile(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> DeleteConnectionProfile( google::cloud::clouddms::v1::DeleteConnectionProfileRequest const& request); + virtual StatusOr DeleteConnectionProfile( + ExperimentalTag, NoAwaitTag, + google::cloud::clouddms::v1::DeleteConnectionProfileRequest const& + request); + + virtual future> + DeleteConnectionProfile(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> CreatePrivateConnection( google::cloud::clouddms::v1::CreatePrivateConnectionRequest const& request); + virtual StatusOr CreatePrivateConnection( + ExperimentalTag, NoAwaitTag, + google::cloud::clouddms::v1::CreatePrivateConnectionRequest const& + request); + + virtual future> + CreatePrivateConnection(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StatusOr GetPrivateConnection( google::cloud::clouddms::v1::GetPrivateConnectionRequest const& request); @@ -282,6 +392,15 @@ class DataMigrationServiceConnection { google::cloud::clouddms::v1::DeletePrivateConnectionRequest const& request); + virtual StatusOr DeletePrivateConnection( + ExperimentalTag, NoAwaitTag, + google::cloud::clouddms::v1::DeletePrivateConnectionRequest const& + request); + + virtual future> + DeletePrivateConnection(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StatusOr GetConversionWorkspace( google::cloud::clouddms::v1::GetConversionWorkspaceRequest const& @@ -296,16 +415,43 @@ class DataMigrationServiceConnection { google::cloud::clouddms::v1::CreateConversionWorkspaceRequest const& request); + virtual StatusOr CreateConversionWorkspace( + ExperimentalTag, NoAwaitTag, + google::cloud::clouddms::v1::CreateConversionWorkspaceRequest const& + request); + + virtual future> + CreateConversionWorkspace(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> UpdateConversionWorkspace( google::cloud::clouddms::v1::UpdateConversionWorkspaceRequest const& request); + virtual StatusOr UpdateConversionWorkspace( + ExperimentalTag, NoAwaitTag, + google::cloud::clouddms::v1::UpdateConversionWorkspaceRequest const& + request); + + virtual future> + UpdateConversionWorkspace(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> DeleteConversionWorkspace( google::cloud::clouddms::v1::DeleteConversionWorkspaceRequest const& request); + virtual StatusOr DeleteConversionWorkspace( + ExperimentalTag, NoAwaitTag, + google::cloud::clouddms::v1::DeleteConversionWorkspaceRequest const& + request); + + virtual future> + DeleteConversionWorkspace(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StatusOr CreateMappingRule( google::cloud::clouddms::v1::CreateMappingRuleRequest const& request); @@ -324,30 +470,83 @@ class DataMigrationServiceConnection { google::cloud::clouddms::v1::SeedConversionWorkspaceRequest const& request); + virtual StatusOr SeedConversionWorkspace( + ExperimentalTag, NoAwaitTag, + google::cloud::clouddms::v1::SeedConversionWorkspaceRequest const& + request); + + virtual future> + SeedConversionWorkspace(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> ImportMappingRules( google::cloud::clouddms::v1::ImportMappingRulesRequest const& request); + virtual StatusOr ImportMappingRules( + ExperimentalTag, NoAwaitTag, + google::cloud::clouddms::v1::ImportMappingRulesRequest const& request); + + virtual future> + ImportMappingRules(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> ConvertConversionWorkspace( google::cloud::clouddms::v1::ConvertConversionWorkspaceRequest const& request); + virtual StatusOr ConvertConversionWorkspace( + ExperimentalTag, NoAwaitTag, + google::cloud::clouddms::v1::ConvertConversionWorkspaceRequest const& + request); + + virtual future> + ConvertConversionWorkspace(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> CommitConversionWorkspace( google::cloud::clouddms::v1::CommitConversionWorkspaceRequest const& request); + virtual StatusOr CommitConversionWorkspace( + ExperimentalTag, NoAwaitTag, + google::cloud::clouddms::v1::CommitConversionWorkspaceRequest const& + request); + + virtual future> + CommitConversionWorkspace(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> RollbackConversionWorkspace( google::cloud::clouddms::v1::RollbackConversionWorkspaceRequest const& request); + virtual StatusOr RollbackConversionWorkspace( + ExperimentalTag, NoAwaitTag, + google::cloud::clouddms::v1::RollbackConversionWorkspaceRequest const& + request); + + virtual future> + RollbackConversionWorkspace(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> ApplyConversionWorkspace( google::cloud::clouddms::v1::ApplyConversionWorkspaceRequest const& request); + virtual StatusOr ApplyConversionWorkspace( + ExperimentalTag, NoAwaitTag, + google::cloud::clouddms::v1::ApplyConversionWorkspaceRequest const& + request); + + virtual future> + ApplyConversionWorkspace(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StreamRange DescribeDatabaseEntities( google::cloud::clouddms::v1::DescribeDatabaseEntitiesRequest request); diff --git a/google/cloud/datamigration/v1/internal/data_migration_connection_impl.cc b/google/cloud/datamigration/v1/internal/data_migration_connection_impl.cc index 33f22f50a9820..bf993ca357d18 100644 --- a/google/cloud/datamigration/v1/internal/data_migration_connection_impl.cc +++ b/google/cloud/datamigration/v1/internal/data_migration_connection_impl.cc @@ -161,6 +161,59 @@ DataMigrationServiceConnectionImpl::CreateMigrationJob( polling_policy(*current), __func__); } +StatusOr +DataMigrationServiceConnectionImpl::CreateMigrationJob( + ExperimentalTag, NoAwaitTag, + google::cloud::clouddms::v1::CreateMigrationJobRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateMigrationJob(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::clouddms::v1::CreateMigrationJobRequest const& + request) { + return stub_->CreateMigrationJob(context, options, request); + }, + *current, request, __func__); +} + +future> +DataMigrationServiceConnectionImpl::CreateMigrationJob( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to CreateMigrationJob", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::clouddms::v1::MigrationJob>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::clouddms::v1::MigrationJob>, + polling_policy(*current), __func__); +} + future> DataMigrationServiceConnectionImpl::UpdateMigrationJob( google::cloud::clouddms::v1::UpdateMigrationJobRequest const& request) { @@ -201,6 +254,59 @@ DataMigrationServiceConnectionImpl::UpdateMigrationJob( polling_policy(*current), __func__); } +StatusOr +DataMigrationServiceConnectionImpl::UpdateMigrationJob( + ExperimentalTag, NoAwaitTag, + google::cloud::clouddms::v1::UpdateMigrationJobRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UpdateMigrationJob(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::clouddms::v1::UpdateMigrationJobRequest const& + request) { + return stub_->UpdateMigrationJob(context, options, request); + }, + *current, request, __func__); +} + +future> +DataMigrationServiceConnectionImpl::UpdateMigrationJob( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to UpdateMigrationJob", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::clouddms::v1::MigrationJob>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::clouddms::v1::MigrationJob>, + polling_policy(*current), __func__); +} + future> DataMigrationServiceConnectionImpl::DeleteMigrationJob( google::cloud::clouddms::v1::DeleteMigrationJobRequest const& request) { @@ -241,6 +347,59 @@ DataMigrationServiceConnectionImpl::DeleteMigrationJob( polling_policy(*current), __func__); } +StatusOr +DataMigrationServiceConnectionImpl::DeleteMigrationJob( + ExperimentalTag, NoAwaitTag, + google::cloud::clouddms::v1::DeleteMigrationJobRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteMigrationJob(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::clouddms::v1::DeleteMigrationJobRequest const& + request) { + return stub_->DeleteMigrationJob(context, options, request); + }, + *current, request, __func__); +} + +future> +DataMigrationServiceConnectionImpl::DeleteMigrationJob( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteMigrationJob", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::clouddms::v1::OperationMetadata>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::cloud::clouddms::v1::OperationMetadata>, + polling_policy(*current), __func__); +} + future> DataMigrationServiceConnectionImpl::StartMigrationJob( google::cloud::clouddms::v1::StartMigrationJobRequest const& request) { @@ -281,6 +440,59 @@ DataMigrationServiceConnectionImpl::StartMigrationJob( polling_policy(*current), __func__); } +StatusOr +DataMigrationServiceConnectionImpl::StartMigrationJob( + ExperimentalTag, NoAwaitTag, + google::cloud::clouddms::v1::StartMigrationJobRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->StartMigrationJob(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::clouddms::v1::StartMigrationJobRequest const& + request) { + return stub_->StartMigrationJob(context, options, request); + }, + *current, request, __func__); +} + +future> +DataMigrationServiceConnectionImpl::StartMigrationJob( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to StartMigrationJob", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::clouddms::v1::MigrationJob>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::clouddms::v1::MigrationJob>, + polling_policy(*current), __func__); +} + future> DataMigrationServiceConnectionImpl::StopMigrationJob( google::cloud::clouddms::v1::StopMigrationJobRequest const& request) { @@ -320,6 +532,59 @@ DataMigrationServiceConnectionImpl::StopMigrationJob( polling_policy(*current), __func__); } +StatusOr +DataMigrationServiceConnectionImpl::StopMigrationJob( + ExperimentalTag, NoAwaitTag, + google::cloud::clouddms::v1::StopMigrationJobRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->StopMigrationJob(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::clouddms::v1::StopMigrationJobRequest const& request) { + return stub_->StopMigrationJob(context, options, request); + }, + *current, request, __func__); +} + +future> +DataMigrationServiceConnectionImpl::StopMigrationJob( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to StopMigrationJob", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::clouddms::v1::MigrationJob>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::clouddms::v1::MigrationJob>, + polling_policy(*current), __func__); +} + future> DataMigrationServiceConnectionImpl::ResumeMigrationJob( google::cloud::clouddms::v1::ResumeMigrationJobRequest const& request) { @@ -360,6 +625,59 @@ DataMigrationServiceConnectionImpl::ResumeMigrationJob( polling_policy(*current), __func__); } +StatusOr +DataMigrationServiceConnectionImpl::ResumeMigrationJob( + ExperimentalTag, NoAwaitTag, + google::cloud::clouddms::v1::ResumeMigrationJobRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->ResumeMigrationJob(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::clouddms::v1::ResumeMigrationJobRequest const& + request) { + return stub_->ResumeMigrationJob(context, options, request); + }, + *current, request, __func__); +} + +future> +DataMigrationServiceConnectionImpl::ResumeMigrationJob( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to ResumeMigrationJob", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::clouddms::v1::MigrationJob>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::clouddms::v1::MigrationJob>, + polling_policy(*current), __func__); +} + future> DataMigrationServiceConnectionImpl::PromoteMigrationJob( google::cloud::clouddms::v1::PromoteMigrationJobRequest const& request) { @@ -400,6 +718,59 @@ DataMigrationServiceConnectionImpl::PromoteMigrationJob( polling_policy(*current), __func__); } +StatusOr +DataMigrationServiceConnectionImpl::PromoteMigrationJob( + ExperimentalTag, NoAwaitTag, + google::cloud::clouddms::v1::PromoteMigrationJobRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->PromoteMigrationJob(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::clouddms::v1::PromoteMigrationJobRequest const& + request) { + return stub_->PromoteMigrationJob(context, options, request); + }, + *current, request, __func__); +} + +future> +DataMigrationServiceConnectionImpl::PromoteMigrationJob( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to PromoteMigrationJob", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::clouddms::v1::MigrationJob>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::clouddms::v1::MigrationJob>, + polling_policy(*current), __func__); +} + future> DataMigrationServiceConnectionImpl::VerifyMigrationJob( google::cloud::clouddms::v1::VerifyMigrationJobRequest const& request) { @@ -440,6 +811,59 @@ DataMigrationServiceConnectionImpl::VerifyMigrationJob( polling_policy(*current), __func__); } +StatusOr +DataMigrationServiceConnectionImpl::VerifyMigrationJob( + ExperimentalTag, NoAwaitTag, + google::cloud::clouddms::v1::VerifyMigrationJobRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->VerifyMigrationJob(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::clouddms::v1::VerifyMigrationJobRequest const& + request) { + return stub_->VerifyMigrationJob(context, options, request); + }, + *current, request, __func__); +} + +future> +DataMigrationServiceConnectionImpl::VerifyMigrationJob( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to VerifyMigrationJob", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::clouddms::v1::MigrationJob>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::clouddms::v1::MigrationJob>, + polling_policy(*current), __func__); +} + future> DataMigrationServiceConnectionImpl::RestartMigrationJob( google::cloud::clouddms::v1::RestartMigrationJobRequest const& request) { @@ -480,6 +904,59 @@ DataMigrationServiceConnectionImpl::RestartMigrationJob( polling_policy(*current), __func__); } +StatusOr +DataMigrationServiceConnectionImpl::RestartMigrationJob( + ExperimentalTag, NoAwaitTag, + google::cloud::clouddms::v1::RestartMigrationJobRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->RestartMigrationJob(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::clouddms::v1::RestartMigrationJobRequest const& + request) { + return stub_->RestartMigrationJob(context, options, request); + }, + *current, request, __func__); +} + +future> +DataMigrationServiceConnectionImpl::RestartMigrationJob( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to RestartMigrationJob", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::clouddms::v1::MigrationJob>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::clouddms::v1::MigrationJob>, + polling_policy(*current), __func__); +} + StatusOr DataMigrationServiceConnectionImpl::GenerateSshScript( google::cloud::clouddms::v1::GenerateSshScriptRequest const& request) { @@ -602,26 +1079,135 @@ DataMigrationServiceConnectionImpl::CreateConnectionProfile( polling_policy(*current), __func__); } -future> +StatusOr +DataMigrationServiceConnectionImpl::CreateConnectionProfile( + ExperimentalTag, NoAwaitTag, + google::cloud::clouddms::v1::CreateConnectionProfileRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateConnectionProfile(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::clouddms::v1::CreateConnectionProfileRequest const& + request) { + return stub_->CreateConnectionProfile(context, options, request); + }, + *current, request, __func__); +} + +future> +DataMigrationServiceConnectionImpl::CreateConnectionProfile( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to CreateConnectionProfile", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::clouddms::v1::ConnectionProfile>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::clouddms::v1::ConnectionProfile>, + polling_policy(*current), __func__); +} + +future> +DataMigrationServiceConnectionImpl::UpdateConnectionProfile( + google::cloud::clouddms::v1::UpdateConnectionProfileRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + auto request_copy = request; + auto const idempotent = + idempotency_policy(*current)->UpdateConnectionProfile(request_copy); + return google::cloud::internal::AsyncLongRunningOperation< + google::cloud::clouddms::v1::ConnectionProfile>( + background_->cq(), current, std::move(request_copy), + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::clouddms::v1::UpdateConnectionProfileRequest const& + request) { + return stub->AsyncUpdateConnectionProfile(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::clouddms::v1::ConnectionProfile>, + retry_policy(*current), backoff_policy(*current), idempotent, + polling_policy(*current), __func__); +} + +StatusOr DataMigrationServiceConnectionImpl::UpdateConnectionProfile( + ExperimentalTag, NoAwaitTag, google::cloud::clouddms::v1::UpdateConnectionProfileRequest const& request) { auto current = google::cloud::internal::SaveCurrentOptions(); - auto request_copy = request; - auto const idempotent = - idempotency_policy(*current)->UpdateConnectionProfile(request_copy); - return google::cloud::internal::AsyncLongRunningOperation< - google::cloud::clouddms::v1::ConnectionProfile>( - background_->cq(), current, std::move(request_copy), - [stub = stub_]( - google::cloud::CompletionQueue& cq, - std::shared_ptr context, - google::cloud::internal::ImmutableOptions options, - google::cloud::clouddms::v1::UpdateConnectionProfileRequest const& - request) { - return stub->AsyncUpdateConnectionProfile(cq, std::move(context), - std::move(options), request); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UpdateConnectionProfile(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::clouddms::v1::UpdateConnectionProfileRequest const& + request) { + return stub_->UpdateConnectionProfile(context, options, request); }, + *current, request, __func__); +} + +future> +DataMigrationServiceConnectionImpl::UpdateConnectionProfile( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to UpdateConnectionProfile", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::clouddms::v1::ConnectionProfile>( + background_->cq(), current, operation, [stub = stub_](google::cloud::CompletionQueue& cq, std::shared_ptr context, google::cloud::internal::ImmutableOptions options, @@ -639,7 +1225,6 @@ DataMigrationServiceConnectionImpl::UpdateConnectionProfile( }, &google::cloud::internal::ExtractLongRunningResultResponse< google::cloud::clouddms::v1::ConnectionProfile>, - retry_policy(*current), backoff_policy(*current), idempotent, polling_policy(*current), __func__); } @@ -684,6 +1269,60 @@ DataMigrationServiceConnectionImpl::DeleteConnectionProfile( polling_policy(*current), __func__); } +StatusOr +DataMigrationServiceConnectionImpl::DeleteConnectionProfile( + ExperimentalTag, NoAwaitTag, + google::cloud::clouddms::v1::DeleteConnectionProfileRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteConnectionProfile(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::clouddms::v1::DeleteConnectionProfileRequest const& + request) { + return stub_->DeleteConnectionProfile(context, options, request); + }, + *current, request, __func__); +} + +future> +DataMigrationServiceConnectionImpl::DeleteConnectionProfile( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteConnectionProfile", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::clouddms::v1::OperationMetadata>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::cloud::clouddms::v1::OperationMetadata>, + polling_policy(*current), __func__); +} + future> DataMigrationServiceConnectionImpl::CreatePrivateConnection( google::cloud::clouddms::v1::CreatePrivateConnectionRequest const& @@ -725,6 +1364,60 @@ DataMigrationServiceConnectionImpl::CreatePrivateConnection( polling_policy(*current), __func__); } +StatusOr +DataMigrationServiceConnectionImpl::CreatePrivateConnection( + ExperimentalTag, NoAwaitTag, + google::cloud::clouddms::v1::CreatePrivateConnectionRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreatePrivateConnection(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::clouddms::v1::CreatePrivateConnectionRequest const& + request) { + return stub_->CreatePrivateConnection(context, options, request); + }, + *current, request, __func__); +} + +future> +DataMigrationServiceConnectionImpl::CreatePrivateConnection( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to CreatePrivateConnection", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::clouddms::v1::PrivateConnection>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::clouddms::v1::PrivateConnection>, + polling_policy(*current), __func__); +} + StatusOr DataMigrationServiceConnectionImpl::GetPrivateConnection( google::cloud::clouddms::v1::GetPrivateConnectionRequest const& request) { @@ -817,6 +1510,60 @@ DataMigrationServiceConnectionImpl::DeletePrivateConnection( polling_policy(*current), __func__); } +StatusOr +DataMigrationServiceConnectionImpl::DeletePrivateConnection( + ExperimentalTag, NoAwaitTag, + google::cloud::clouddms::v1::DeletePrivateConnectionRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeletePrivateConnection(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::clouddms::v1::DeletePrivateConnectionRequest const& + request) { + return stub_->DeletePrivateConnection(context, options, request); + }, + *current, request, __func__); +} + +future> +DataMigrationServiceConnectionImpl::DeletePrivateConnection( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DeletePrivateConnection", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::clouddms::v1::OperationMetadata>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::cloud::clouddms::v1::OperationMetadata>, + polling_policy(*current), __func__); +} + StatusOr DataMigrationServiceConnectionImpl::GetConversionWorkspace( google::cloud::clouddms::v1::GetConversionWorkspaceRequest const& request) { @@ -910,6 +1657,61 @@ DataMigrationServiceConnectionImpl::CreateConversionWorkspace( polling_policy(*current), __func__); } +StatusOr +DataMigrationServiceConnectionImpl::CreateConversionWorkspace( + ExperimentalTag, NoAwaitTag, + google::cloud::clouddms::v1::CreateConversionWorkspaceRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateConversionWorkspace(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::clouddms::v1::CreateConversionWorkspaceRequest const& + request) { + return stub_->CreateConversionWorkspace(context, options, request); + }, + *current, request, __func__); +} + +future> +DataMigrationServiceConnectionImpl::CreateConversionWorkspace( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to CreateConversionWorkspace", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::clouddms::v1::ConversionWorkspace>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::clouddms::v1::ConversionWorkspace>, + polling_policy(*current), __func__); +} + future> DataMigrationServiceConnectionImpl::UpdateConversionWorkspace( google::cloud::clouddms::v1::UpdateConversionWorkspaceRequest const& @@ -951,26 +1753,137 @@ DataMigrationServiceConnectionImpl::UpdateConversionWorkspace( polling_policy(*current), __func__); } -future> +StatusOr +DataMigrationServiceConnectionImpl::UpdateConversionWorkspace( + ExperimentalTag, NoAwaitTag, + google::cloud::clouddms::v1::UpdateConversionWorkspaceRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UpdateConversionWorkspace(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::clouddms::v1::UpdateConversionWorkspaceRequest const& + request) { + return stub_->UpdateConversionWorkspace(context, options, request); + }, + *current, request, __func__); +} + +future> +DataMigrationServiceConnectionImpl::UpdateConversionWorkspace( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to UpdateConversionWorkspace", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::clouddms::v1::ConversionWorkspace>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::clouddms::v1::ConversionWorkspace>, + polling_policy(*current), __func__); +} + +future> +DataMigrationServiceConnectionImpl::DeleteConversionWorkspace( + google::cloud::clouddms::v1::DeleteConversionWorkspaceRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + auto request_copy = request; + auto const idempotent = + idempotency_policy(*current)->DeleteConversionWorkspace(request_copy); + return google::cloud::internal::AsyncLongRunningOperation< + google::cloud::clouddms::v1::OperationMetadata>( + background_->cq(), current, std::move(request_copy), + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::clouddms::v1::DeleteConversionWorkspaceRequest const& + request) { + return stub->AsyncDeleteConversionWorkspace( + cq, std::move(context), std::move(options), request); + }, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::cloud::clouddms::v1::OperationMetadata>, + retry_policy(*current), backoff_policy(*current), idempotent, + polling_policy(*current), __func__); +} + +StatusOr DataMigrationServiceConnectionImpl::DeleteConversionWorkspace( + ExperimentalTag, NoAwaitTag, google::cloud::clouddms::v1::DeleteConversionWorkspaceRequest const& request) { auto current = google::cloud::internal::SaveCurrentOptions(); - auto request_copy = request; - auto const idempotent = - idempotency_policy(*current)->DeleteConversionWorkspace(request_copy); - return google::cloud::internal::AsyncLongRunningOperation< - google::cloud::clouddms::v1::OperationMetadata>( - background_->cq(), current, std::move(request_copy), - [stub = stub_]( - google::cloud::CompletionQueue& cq, - std::shared_ptr context, - google::cloud::internal::ImmutableOptions options, + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteConversionWorkspace(request), + [this]( + grpc::ClientContext& context, Options const& options, google::cloud::clouddms::v1::DeleteConversionWorkspaceRequest const& request) { - return stub->AsyncDeleteConversionWorkspace( - cq, std::move(context), std::move(options), request); + return stub_->DeleteConversionWorkspace(context, options, request); }, + *current, request, __func__); +} + +future> +DataMigrationServiceConnectionImpl::DeleteConversionWorkspace( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteConversionWorkspace", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::clouddms::v1::OperationMetadata>( + background_->cq(), current, operation, [stub = stub_](google::cloud::CompletionQueue& cq, std::shared_ptr context, google::cloud::internal::ImmutableOptions options, @@ -988,7 +1901,6 @@ DataMigrationServiceConnectionImpl::DeleteConversionWorkspace( }, &google::cloud::internal::ExtractLongRunningResultMetadata< google::cloud::clouddms::v1::OperationMetadata>, - retry_policy(*current), backoff_policy(*current), idempotent, polling_policy(*current), __func__); } @@ -1112,6 +2024,60 @@ DataMigrationServiceConnectionImpl::SeedConversionWorkspace( polling_policy(*current), __func__); } +StatusOr +DataMigrationServiceConnectionImpl::SeedConversionWorkspace( + ExperimentalTag, NoAwaitTag, + google::cloud::clouddms::v1::SeedConversionWorkspaceRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->SeedConversionWorkspace(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::clouddms::v1::SeedConversionWorkspaceRequest const& + request) { + return stub_->SeedConversionWorkspace(context, options, request); + }, + *current, request, __func__); +} + +future> +DataMigrationServiceConnectionImpl::SeedConversionWorkspace( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to SeedConversionWorkspace", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::clouddms::v1::ConversionWorkspace>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::clouddms::v1::ConversionWorkspace>, + polling_policy(*current), __func__); +} + future> DataMigrationServiceConnectionImpl::ImportMappingRules( google::cloud::clouddms::v1::ImportMappingRulesRequest const& request) { @@ -1152,6 +2118,59 @@ DataMigrationServiceConnectionImpl::ImportMappingRules( polling_policy(*current), __func__); } +StatusOr +DataMigrationServiceConnectionImpl::ImportMappingRules( + ExperimentalTag, NoAwaitTag, + google::cloud::clouddms::v1::ImportMappingRulesRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->ImportMappingRules(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::clouddms::v1::ImportMappingRulesRequest const& + request) { + return stub_->ImportMappingRules(context, options, request); + }, + *current, request, __func__); +} + +future> +DataMigrationServiceConnectionImpl::ImportMappingRules( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to ImportMappingRules", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::clouddms::v1::ConversionWorkspace>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::clouddms::v1::ConversionWorkspace>, + polling_policy(*current), __func__); +} + future> DataMigrationServiceConnectionImpl::ConvertConversionWorkspace( google::cloud::clouddms::v1::ConvertConversionWorkspaceRequest const& @@ -1193,6 +2212,61 @@ DataMigrationServiceConnectionImpl::ConvertConversionWorkspace( polling_policy(*current), __func__); } +StatusOr +DataMigrationServiceConnectionImpl::ConvertConversionWorkspace( + ExperimentalTag, NoAwaitTag, + google::cloud::clouddms::v1::ConvertConversionWorkspaceRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->ConvertConversionWorkspace(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::clouddms::v1::ConvertConversionWorkspaceRequest const& + request) { + return stub_->ConvertConversionWorkspace(context, options, request); + }, + *current, request, __func__); +} + +future> +DataMigrationServiceConnectionImpl::ConvertConversionWorkspace( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to ConvertConversionWorkspace", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::clouddms::v1::ConversionWorkspace>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::clouddms::v1::ConversionWorkspace>, + polling_policy(*current), __func__); +} + future> DataMigrationServiceConnectionImpl::CommitConversionWorkspace( google::cloud::clouddms::v1::CommitConversionWorkspaceRequest const& @@ -1234,6 +2308,61 @@ DataMigrationServiceConnectionImpl::CommitConversionWorkspace( polling_policy(*current), __func__); } +StatusOr +DataMigrationServiceConnectionImpl::CommitConversionWorkspace( + ExperimentalTag, NoAwaitTag, + google::cloud::clouddms::v1::CommitConversionWorkspaceRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CommitConversionWorkspace(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::clouddms::v1::CommitConversionWorkspaceRequest const& + request) { + return stub_->CommitConversionWorkspace(context, options, request); + }, + *current, request, __func__); +} + +future> +DataMigrationServiceConnectionImpl::CommitConversionWorkspace( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to CommitConversionWorkspace", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::clouddms::v1::ConversionWorkspace>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::clouddms::v1::ConversionWorkspace>, + polling_policy(*current), __func__); +} + future> DataMigrationServiceConnectionImpl::RollbackConversionWorkspace( google::cloud::clouddms::v1::RollbackConversionWorkspaceRequest const& @@ -1275,6 +2404,61 @@ DataMigrationServiceConnectionImpl::RollbackConversionWorkspace( polling_policy(*current), __func__); } +StatusOr +DataMigrationServiceConnectionImpl::RollbackConversionWorkspace( + ExperimentalTag, NoAwaitTag, + google::cloud::clouddms::v1::RollbackConversionWorkspaceRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->RollbackConversionWorkspace(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::clouddms::v1::RollbackConversionWorkspaceRequest const& + request) { + return stub_->RollbackConversionWorkspace(context, options, request); + }, + *current, request, __func__); +} + +future> +DataMigrationServiceConnectionImpl::RollbackConversionWorkspace( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to RollbackConversionWorkspace", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::clouddms::v1::ConversionWorkspace>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::clouddms::v1::ConversionWorkspace>, + polling_policy(*current), __func__); +} + future> DataMigrationServiceConnectionImpl::ApplyConversionWorkspace( google::cloud::clouddms::v1::ApplyConversionWorkspaceRequest const& @@ -1316,6 +2500,60 @@ DataMigrationServiceConnectionImpl::ApplyConversionWorkspace( polling_policy(*current), __func__); } +StatusOr +DataMigrationServiceConnectionImpl::ApplyConversionWorkspace( + ExperimentalTag, NoAwaitTag, + google::cloud::clouddms::v1::ApplyConversionWorkspaceRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->ApplyConversionWorkspace(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::clouddms::v1::ApplyConversionWorkspaceRequest const& + request) { + return stub_->ApplyConversionWorkspace(context, options, request); + }, + *current, request, __func__); +} + +future> +DataMigrationServiceConnectionImpl::ApplyConversionWorkspace( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to ApplyConversionWorkspace", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::clouddms::v1::ConversionWorkspace>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::clouddms::v1::ConversionWorkspace>, + polling_policy(*current), __func__); +} + StreamRange DataMigrationServiceConnectionImpl::DescribeDatabaseEntities( google::cloud::clouddms::v1::DescribeDatabaseEntitiesRequest request) { diff --git a/google/cloud/datamigration/v1/internal/data_migration_connection_impl.h b/google/cloud/datamigration/v1/internal/data_migration_connection_impl.h index 1af1e03e844cb..f71b7942060b7 100644 --- a/google/cloud/datamigration/v1/internal/data_migration_connection_impl.h +++ b/google/cloud/datamigration/v1/internal/data_migration_connection_impl.h @@ -64,44 +64,125 @@ class DataMigrationServiceConnectionImpl google::cloud::clouddms::v1::CreateMigrationJobRequest const& request) override; + StatusOr CreateMigrationJob( + ExperimentalTag, NoAwaitTag, + google::cloud::clouddms::v1::CreateMigrationJobRequest const& request) + override; + + future> + CreateMigrationJob(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateMigrationJob( google::cloud::clouddms::v1::UpdateMigrationJobRequest const& request) override; + StatusOr UpdateMigrationJob( + ExperimentalTag, NoAwaitTag, + google::cloud::clouddms::v1::UpdateMigrationJobRequest const& request) + override; + + future> + UpdateMigrationJob(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteMigrationJob( google::cloud::clouddms::v1::DeleteMigrationJobRequest const& request) override; + StatusOr DeleteMigrationJob( + ExperimentalTag, NoAwaitTag, + google::cloud::clouddms::v1::DeleteMigrationJobRequest const& request) + override; + + future> + DeleteMigrationJob(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> StartMigrationJob( google::cloud::clouddms::v1::StartMigrationJobRequest const& request) override; + StatusOr StartMigrationJob( + ExperimentalTag, NoAwaitTag, + google::cloud::clouddms::v1::StartMigrationJobRequest const& request) + override; + + future> StartMigrationJob( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> StopMigrationJob( google::cloud::clouddms::v1::StopMigrationJobRequest const& request) override; + StatusOr StopMigrationJob( + ExperimentalTag, NoAwaitTag, + google::cloud::clouddms::v1::StopMigrationJobRequest const& request) + override; + + future> StopMigrationJob( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ResumeMigrationJob( google::cloud::clouddms::v1::ResumeMigrationJobRequest const& request) override; + StatusOr ResumeMigrationJob( + ExperimentalTag, NoAwaitTag, + google::cloud::clouddms::v1::ResumeMigrationJobRequest const& request) + override; + + future> + ResumeMigrationJob(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> PromoteMigrationJob( google::cloud::clouddms::v1::PromoteMigrationJobRequest const& request) override; + StatusOr PromoteMigrationJob( + ExperimentalTag, NoAwaitTag, + google::cloud::clouddms::v1::PromoteMigrationJobRequest const& request) + override; + + future> + PromoteMigrationJob(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> VerifyMigrationJob( google::cloud::clouddms::v1::VerifyMigrationJobRequest const& request) override; + StatusOr VerifyMigrationJob( + ExperimentalTag, NoAwaitTag, + google::cloud::clouddms::v1::VerifyMigrationJobRequest const& request) + override; + + future> + VerifyMigrationJob(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> RestartMigrationJob( google::cloud::clouddms::v1::RestartMigrationJobRequest const& request) override; + StatusOr RestartMigrationJob( + ExperimentalTag, NoAwaitTag, + google::cloud::clouddms::v1::RestartMigrationJobRequest const& request) + override; + + future> + RestartMigrationJob(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GenerateSshScript( google::cloud::clouddms::v1::GenerateSshScriptRequest const& request) override; @@ -124,21 +205,61 @@ class DataMigrationServiceConnectionImpl google::cloud::clouddms::v1::CreateConnectionProfileRequest const& request) override; + StatusOr CreateConnectionProfile( + ExperimentalTag, NoAwaitTag, + google::cloud::clouddms::v1::CreateConnectionProfileRequest const& + request) override; + + future> + CreateConnectionProfile( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateConnectionProfile( google::cloud::clouddms::v1::UpdateConnectionProfileRequest const& request) override; + StatusOr UpdateConnectionProfile( + ExperimentalTag, NoAwaitTag, + google::cloud::clouddms::v1::UpdateConnectionProfileRequest const& + request) override; + + future> + UpdateConnectionProfile( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteConnectionProfile( google::cloud::clouddms::v1::DeleteConnectionProfileRequest const& request) override; + StatusOr DeleteConnectionProfile( + ExperimentalTag, NoAwaitTag, + google::cloud::clouddms::v1::DeleteConnectionProfileRequest const& + request) override; + + future> + DeleteConnectionProfile( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> CreatePrivateConnection( google::cloud::clouddms::v1::CreatePrivateConnectionRequest const& request) override; + StatusOr CreatePrivateConnection( + ExperimentalTag, NoAwaitTag, + google::cloud::clouddms::v1::CreatePrivateConnectionRequest const& + request) override; + + future> + CreatePrivateConnection( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetPrivateConnection( google::cloud::clouddms::v1::GetPrivateConnectionRequest const& request) override; @@ -153,6 +274,16 @@ class DataMigrationServiceConnectionImpl google::cloud::clouddms::v1::DeletePrivateConnectionRequest const& request) override; + StatusOr DeletePrivateConnection( + ExperimentalTag, NoAwaitTag, + google::cloud::clouddms::v1::DeletePrivateConnectionRequest const& + request) override; + + future> + DeletePrivateConnection( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetConversionWorkspace( google::cloud::clouddms::v1::GetConversionWorkspaceRequest const& request) @@ -168,16 +299,46 @@ class DataMigrationServiceConnectionImpl google::cloud::clouddms::v1::CreateConversionWorkspaceRequest const& request) override; + StatusOr CreateConversionWorkspace( + ExperimentalTag, NoAwaitTag, + google::cloud::clouddms::v1::CreateConversionWorkspaceRequest const& + request) override; + + future> + CreateConversionWorkspace( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateConversionWorkspace( google::cloud::clouddms::v1::UpdateConversionWorkspaceRequest const& request) override; + StatusOr UpdateConversionWorkspace( + ExperimentalTag, NoAwaitTag, + google::cloud::clouddms::v1::UpdateConversionWorkspaceRequest const& + request) override; + + future> + UpdateConversionWorkspace( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteConversionWorkspace( google::cloud::clouddms::v1::DeleteConversionWorkspaceRequest const& request) override; + StatusOr DeleteConversionWorkspace( + ExperimentalTag, NoAwaitTag, + google::cloud::clouddms::v1::DeleteConversionWorkspaceRequest const& + request) override; + + future> + DeleteConversionWorkspace( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr CreateMappingRule( google::cloud::clouddms::v1::CreateMappingRuleRequest const& request) override; @@ -198,31 +359,90 @@ class DataMigrationServiceConnectionImpl google::cloud::clouddms::v1::SeedConversionWorkspaceRequest const& request) override; + StatusOr SeedConversionWorkspace( + ExperimentalTag, NoAwaitTag, + google::cloud::clouddms::v1::SeedConversionWorkspaceRequest const& + request) override; + + future> + SeedConversionWorkspace( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ImportMappingRules( google::cloud::clouddms::v1::ImportMappingRulesRequest const& request) override; + StatusOr ImportMappingRules( + ExperimentalTag, NoAwaitTag, + google::cloud::clouddms::v1::ImportMappingRulesRequest const& request) + override; + + future> + ImportMappingRules(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ConvertConversionWorkspace( google::cloud::clouddms::v1::ConvertConversionWorkspaceRequest const& request) override; + StatusOr ConvertConversionWorkspace( + ExperimentalTag, NoAwaitTag, + google::cloud::clouddms::v1::ConvertConversionWorkspaceRequest const& + request) override; + + future> + ConvertConversionWorkspace( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> CommitConversionWorkspace( google::cloud::clouddms::v1::CommitConversionWorkspaceRequest const& request) override; + StatusOr CommitConversionWorkspace( + ExperimentalTag, NoAwaitTag, + google::cloud::clouddms::v1::CommitConversionWorkspaceRequest const& + request) override; + + future> + CommitConversionWorkspace( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> RollbackConversionWorkspace( google::cloud::clouddms::v1::RollbackConversionWorkspaceRequest const& request) override; + StatusOr RollbackConversionWorkspace( + ExperimentalTag, NoAwaitTag, + google::cloud::clouddms::v1::RollbackConversionWorkspaceRequest const& + request) override; + + future> + RollbackConversionWorkspace( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ApplyConversionWorkspace( google::cloud::clouddms::v1::ApplyConversionWorkspaceRequest const& request) override; + StatusOr ApplyConversionWorkspace( + ExperimentalTag, NoAwaitTag, + google::cloud::clouddms::v1::ApplyConversionWorkspaceRequest const& + request) override; + + future> + ApplyConversionWorkspace( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange DescribeDatabaseEntities( google::cloud::clouddms::v1::DescribeDatabaseEntitiesRequest request) diff --git a/google/cloud/datamigration/v1/internal/data_migration_tracing_connection.cc b/google/cloud/datamigration/v1/internal/data_migration_tracing_connection.cc index b3ef733147b59..58a0a5d3d9e7e 100644 --- a/google/cloud/datamigration/v1/internal/data_migration_tracing_connection.cc +++ b/google/cloud/datamigration/v1/internal/data_migration_tracing_connection.cc @@ -64,6 +64,28 @@ DataMigrationServiceTracingConnection::CreateMigrationJob( child_->CreateMigrationJob(request)); } +StatusOr +DataMigrationServiceTracingConnection::CreateMigrationJob( + ExperimentalTag, NoAwaitTag, + google::cloud::clouddms::v1::CreateMigrationJobRequest const& request) { + auto span = internal::MakeSpan( + "datamigration_v1::DataMigrationServiceConnection::CreateMigrationJob"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->CreateMigrationJob(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +DataMigrationServiceTracingConnection::CreateMigrationJob( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "datamigration_v1::DataMigrationServiceConnection::CreateMigrationJob"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->CreateMigrationJob( + ExperimentalTag{}, operation)); +} + future> DataMigrationServiceTracingConnection::UpdateMigrationJob( google::cloud::clouddms::v1::UpdateMigrationJobRequest const& request) { @@ -74,6 +96,28 @@ DataMigrationServiceTracingConnection::UpdateMigrationJob( child_->UpdateMigrationJob(request)); } +StatusOr +DataMigrationServiceTracingConnection::UpdateMigrationJob( + ExperimentalTag, NoAwaitTag, + google::cloud::clouddms::v1::UpdateMigrationJobRequest const& request) { + auto span = internal::MakeSpan( + "datamigration_v1::DataMigrationServiceConnection::UpdateMigrationJob"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->UpdateMigrationJob(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +DataMigrationServiceTracingConnection::UpdateMigrationJob( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "datamigration_v1::DataMigrationServiceConnection::UpdateMigrationJob"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->UpdateMigrationJob( + ExperimentalTag{}, operation)); +} + future> DataMigrationServiceTracingConnection::DeleteMigrationJob( google::cloud::clouddms::v1::DeleteMigrationJobRequest const& request) { @@ -84,6 +128,28 @@ DataMigrationServiceTracingConnection::DeleteMigrationJob( child_->DeleteMigrationJob(request)); } +StatusOr +DataMigrationServiceTracingConnection::DeleteMigrationJob( + ExperimentalTag, NoAwaitTag, + google::cloud::clouddms::v1::DeleteMigrationJobRequest const& request) { + auto span = internal::MakeSpan( + "datamigration_v1::DataMigrationServiceConnection::DeleteMigrationJob"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->DeleteMigrationJob(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +DataMigrationServiceTracingConnection::DeleteMigrationJob( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "datamigration_v1::DataMigrationServiceConnection::DeleteMigrationJob"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->DeleteMigrationJob( + ExperimentalTag{}, operation)); +} + future> DataMigrationServiceTracingConnection::StartMigrationJob( google::cloud::clouddms::v1::StartMigrationJobRequest const& request) { @@ -93,6 +159,28 @@ DataMigrationServiceTracingConnection::StartMigrationJob( return internal::EndSpan(std::move(span), child_->StartMigrationJob(request)); } +StatusOr +DataMigrationServiceTracingConnection::StartMigrationJob( + ExperimentalTag, NoAwaitTag, + google::cloud::clouddms::v1::StartMigrationJobRequest const& request) { + auto span = internal::MakeSpan( + "datamigration_v1::DataMigrationServiceConnection::StartMigrationJob"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->StartMigrationJob(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +DataMigrationServiceTracingConnection::StartMigrationJob( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "datamigration_v1::DataMigrationServiceConnection::StartMigrationJob"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->StartMigrationJob(ExperimentalTag{}, operation)); +} + future> DataMigrationServiceTracingConnection::StopMigrationJob( google::cloud::clouddms::v1::StopMigrationJobRequest const& request) { @@ -102,6 +190,28 @@ DataMigrationServiceTracingConnection::StopMigrationJob( return internal::EndSpan(std::move(span), child_->StopMigrationJob(request)); } +StatusOr +DataMigrationServiceTracingConnection::StopMigrationJob( + ExperimentalTag, NoAwaitTag, + google::cloud::clouddms::v1::StopMigrationJobRequest const& request) { + auto span = internal::MakeSpan( + "datamigration_v1::DataMigrationServiceConnection::StopMigrationJob"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->StopMigrationJob(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +DataMigrationServiceTracingConnection::StopMigrationJob( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "datamigration_v1::DataMigrationServiceConnection::StopMigrationJob"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->StopMigrationJob(ExperimentalTag{}, operation)); +} + future> DataMigrationServiceTracingConnection::ResumeMigrationJob( google::cloud::clouddms::v1::ResumeMigrationJobRequest const& request) { @@ -112,6 +222,28 @@ DataMigrationServiceTracingConnection::ResumeMigrationJob( child_->ResumeMigrationJob(request)); } +StatusOr +DataMigrationServiceTracingConnection::ResumeMigrationJob( + ExperimentalTag, NoAwaitTag, + google::cloud::clouddms::v1::ResumeMigrationJobRequest const& request) { + auto span = internal::MakeSpan( + "datamigration_v1::DataMigrationServiceConnection::ResumeMigrationJob"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->ResumeMigrationJob(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +DataMigrationServiceTracingConnection::ResumeMigrationJob( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "datamigration_v1::DataMigrationServiceConnection::ResumeMigrationJob"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->ResumeMigrationJob( + ExperimentalTag{}, operation)); +} + future> DataMigrationServiceTracingConnection::PromoteMigrationJob( google::cloud::clouddms::v1::PromoteMigrationJobRequest const& request) { @@ -122,6 +254,28 @@ DataMigrationServiceTracingConnection::PromoteMigrationJob( child_->PromoteMigrationJob(request)); } +StatusOr +DataMigrationServiceTracingConnection::PromoteMigrationJob( + ExperimentalTag, NoAwaitTag, + google::cloud::clouddms::v1::PromoteMigrationJobRequest const& request) { + auto span = internal::MakeSpan( + "datamigration_v1::DataMigrationServiceConnection::PromoteMigrationJob"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->PromoteMigrationJob(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +DataMigrationServiceTracingConnection::PromoteMigrationJob( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "datamigration_v1::DataMigrationServiceConnection::PromoteMigrationJob"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->PromoteMigrationJob( + ExperimentalTag{}, operation)); +} + future> DataMigrationServiceTracingConnection::VerifyMigrationJob( google::cloud::clouddms::v1::VerifyMigrationJobRequest const& request) { @@ -132,6 +286,28 @@ DataMigrationServiceTracingConnection::VerifyMigrationJob( child_->VerifyMigrationJob(request)); } +StatusOr +DataMigrationServiceTracingConnection::VerifyMigrationJob( + ExperimentalTag, NoAwaitTag, + google::cloud::clouddms::v1::VerifyMigrationJobRequest const& request) { + auto span = internal::MakeSpan( + "datamigration_v1::DataMigrationServiceConnection::VerifyMigrationJob"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->VerifyMigrationJob(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +DataMigrationServiceTracingConnection::VerifyMigrationJob( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "datamigration_v1::DataMigrationServiceConnection::VerifyMigrationJob"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->VerifyMigrationJob( + ExperimentalTag{}, operation)); +} + future> DataMigrationServiceTracingConnection::RestartMigrationJob( google::cloud::clouddms::v1::RestartMigrationJobRequest const& request) { @@ -142,6 +318,28 @@ DataMigrationServiceTracingConnection::RestartMigrationJob( child_->RestartMigrationJob(request)); } +StatusOr +DataMigrationServiceTracingConnection::RestartMigrationJob( + ExperimentalTag, NoAwaitTag, + google::cloud::clouddms::v1::RestartMigrationJobRequest const& request) { + auto span = internal::MakeSpan( + "datamigration_v1::DataMigrationServiceConnection::RestartMigrationJob"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->RestartMigrationJob(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +DataMigrationServiceTracingConnection::RestartMigrationJob( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "datamigration_v1::DataMigrationServiceConnection::RestartMigrationJob"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->RestartMigrationJob( + ExperimentalTag{}, operation)); +} + StatusOr DataMigrationServiceTracingConnection::GenerateSshScript( google::cloud::clouddms::v1::GenerateSshScriptRequest const& request) { @@ -195,6 +393,31 @@ DataMigrationServiceTracingConnection::CreateConnectionProfile( child_->CreateConnectionProfile(request)); } +StatusOr +DataMigrationServiceTracingConnection::CreateConnectionProfile( + ExperimentalTag, NoAwaitTag, + google::cloud::clouddms::v1::CreateConnectionProfileRequest const& + request) { + auto span = internal::MakeSpan( + "datamigration_v1::DataMigrationServiceConnection::" + "CreateConnectionProfile"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->CreateConnectionProfile(ExperimentalTag{}, NoAwaitTag{}, + request)); +} + +future> +DataMigrationServiceTracingConnection::CreateConnectionProfile( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "datamigration_v1::DataMigrationServiceConnection::" + "CreateConnectionProfile"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->CreateConnectionProfile( + ExperimentalTag{}, operation)); +} + future> DataMigrationServiceTracingConnection::UpdateConnectionProfile( google::cloud::clouddms::v1::UpdateConnectionProfileRequest const& @@ -207,6 +430,31 @@ DataMigrationServiceTracingConnection::UpdateConnectionProfile( child_->UpdateConnectionProfile(request)); } +StatusOr +DataMigrationServiceTracingConnection::UpdateConnectionProfile( + ExperimentalTag, NoAwaitTag, + google::cloud::clouddms::v1::UpdateConnectionProfileRequest const& + request) { + auto span = internal::MakeSpan( + "datamigration_v1::DataMigrationServiceConnection::" + "UpdateConnectionProfile"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->UpdateConnectionProfile(ExperimentalTag{}, NoAwaitTag{}, + request)); +} + +future> +DataMigrationServiceTracingConnection::UpdateConnectionProfile( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "datamigration_v1::DataMigrationServiceConnection::" + "UpdateConnectionProfile"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->UpdateConnectionProfile( + ExperimentalTag{}, operation)); +} + future> DataMigrationServiceTracingConnection::DeleteConnectionProfile( google::cloud::clouddms::v1::DeleteConnectionProfileRequest const& @@ -219,6 +467,31 @@ DataMigrationServiceTracingConnection::DeleteConnectionProfile( child_->DeleteConnectionProfile(request)); } +StatusOr +DataMigrationServiceTracingConnection::DeleteConnectionProfile( + ExperimentalTag, NoAwaitTag, + google::cloud::clouddms::v1::DeleteConnectionProfileRequest const& + request) { + auto span = internal::MakeSpan( + "datamigration_v1::DataMigrationServiceConnection::" + "DeleteConnectionProfile"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->DeleteConnectionProfile(ExperimentalTag{}, NoAwaitTag{}, + request)); +} + +future> +DataMigrationServiceTracingConnection::DeleteConnectionProfile( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "datamigration_v1::DataMigrationServiceConnection::" + "DeleteConnectionProfile"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->DeleteConnectionProfile( + ExperimentalTag{}, operation)); +} + future> DataMigrationServiceTracingConnection::CreatePrivateConnection( google::cloud::clouddms::v1::CreatePrivateConnectionRequest const& @@ -231,6 +504,31 @@ DataMigrationServiceTracingConnection::CreatePrivateConnection( child_->CreatePrivateConnection(request)); } +StatusOr +DataMigrationServiceTracingConnection::CreatePrivateConnection( + ExperimentalTag, NoAwaitTag, + google::cloud::clouddms::v1::CreatePrivateConnectionRequest const& + request) { + auto span = internal::MakeSpan( + "datamigration_v1::DataMigrationServiceConnection::" + "CreatePrivateConnection"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->CreatePrivateConnection(ExperimentalTag{}, NoAwaitTag{}, + request)); +} + +future> +DataMigrationServiceTracingConnection::CreatePrivateConnection( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "datamigration_v1::DataMigrationServiceConnection::" + "CreatePrivateConnection"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->CreatePrivateConnection( + ExperimentalTag{}, operation)); +} + StatusOr DataMigrationServiceTracingConnection::GetPrivateConnection( google::cloud::clouddms::v1::GetPrivateConnectionRequest const& request) { @@ -265,6 +563,31 @@ DataMigrationServiceTracingConnection::DeletePrivateConnection( child_->DeletePrivateConnection(request)); } +StatusOr +DataMigrationServiceTracingConnection::DeletePrivateConnection( + ExperimentalTag, NoAwaitTag, + google::cloud::clouddms::v1::DeletePrivateConnectionRequest const& + request) { + auto span = internal::MakeSpan( + "datamigration_v1::DataMigrationServiceConnection::" + "DeletePrivateConnection"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->DeletePrivateConnection(ExperimentalTag{}, NoAwaitTag{}, + request)); +} + +future> +DataMigrationServiceTracingConnection::DeletePrivateConnection( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "datamigration_v1::DataMigrationServiceConnection::" + "DeletePrivateConnection"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->DeletePrivateConnection( + ExperimentalTag{}, operation)); +} + StatusOr DataMigrationServiceTracingConnection::GetConversionWorkspace( google::cloud::clouddms::v1::GetConversionWorkspaceRequest const& request) { @@ -300,6 +623,31 @@ DataMigrationServiceTracingConnection::CreateConversionWorkspace( child_->CreateConversionWorkspace(request)); } +StatusOr +DataMigrationServiceTracingConnection::CreateConversionWorkspace( + ExperimentalTag, NoAwaitTag, + google::cloud::clouddms::v1::CreateConversionWorkspaceRequest const& + request) { + auto span = internal::MakeSpan( + "datamigration_v1::DataMigrationServiceConnection::" + "CreateConversionWorkspace"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->CreateConversionWorkspace(ExperimentalTag{}, NoAwaitTag{}, + request)); +} + +future> +DataMigrationServiceTracingConnection::CreateConversionWorkspace( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "datamigration_v1::DataMigrationServiceConnection::" + "CreateConversionWorkspace"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->CreateConversionWorkspace( + ExperimentalTag{}, operation)); +} + future> DataMigrationServiceTracingConnection::UpdateConversionWorkspace( google::cloud::clouddms::v1::UpdateConversionWorkspaceRequest const& @@ -312,6 +660,31 @@ DataMigrationServiceTracingConnection::UpdateConversionWorkspace( child_->UpdateConversionWorkspace(request)); } +StatusOr +DataMigrationServiceTracingConnection::UpdateConversionWorkspace( + ExperimentalTag, NoAwaitTag, + google::cloud::clouddms::v1::UpdateConversionWorkspaceRequest const& + request) { + auto span = internal::MakeSpan( + "datamigration_v1::DataMigrationServiceConnection::" + "UpdateConversionWorkspace"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->UpdateConversionWorkspace(ExperimentalTag{}, NoAwaitTag{}, + request)); +} + +future> +DataMigrationServiceTracingConnection::UpdateConversionWorkspace( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "datamigration_v1::DataMigrationServiceConnection::" + "UpdateConversionWorkspace"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->UpdateConversionWorkspace( + ExperimentalTag{}, operation)); +} + future> DataMigrationServiceTracingConnection::DeleteConversionWorkspace( google::cloud::clouddms::v1::DeleteConversionWorkspaceRequest const& @@ -324,6 +697,31 @@ DataMigrationServiceTracingConnection::DeleteConversionWorkspace( child_->DeleteConversionWorkspace(request)); } +StatusOr +DataMigrationServiceTracingConnection::DeleteConversionWorkspace( + ExperimentalTag, NoAwaitTag, + google::cloud::clouddms::v1::DeleteConversionWorkspaceRequest const& + request) { + auto span = internal::MakeSpan( + "datamigration_v1::DataMigrationServiceConnection::" + "DeleteConversionWorkspace"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->DeleteConversionWorkspace(ExperimentalTag{}, NoAwaitTag{}, + request)); +} + +future> +DataMigrationServiceTracingConnection::DeleteConversionWorkspace( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "datamigration_v1::DataMigrationServiceConnection::" + "DeleteConversionWorkspace"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->DeleteConversionWorkspace( + ExperimentalTag{}, operation)); +} + StatusOr DataMigrationServiceTracingConnection::CreateMappingRule( google::cloud::clouddms::v1::CreateMappingRuleRequest const& request) { @@ -373,6 +771,31 @@ DataMigrationServiceTracingConnection::SeedConversionWorkspace( child_->SeedConversionWorkspace(request)); } +StatusOr +DataMigrationServiceTracingConnection::SeedConversionWorkspace( + ExperimentalTag, NoAwaitTag, + google::cloud::clouddms::v1::SeedConversionWorkspaceRequest const& + request) { + auto span = internal::MakeSpan( + "datamigration_v1::DataMigrationServiceConnection::" + "SeedConversionWorkspace"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->SeedConversionWorkspace(ExperimentalTag{}, NoAwaitTag{}, + request)); +} + +future> +DataMigrationServiceTracingConnection::SeedConversionWorkspace( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "datamigration_v1::DataMigrationServiceConnection::" + "SeedConversionWorkspace"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->SeedConversionWorkspace( + ExperimentalTag{}, operation)); +} + future> DataMigrationServiceTracingConnection::ImportMappingRules( google::cloud::clouddms::v1::ImportMappingRulesRequest const& request) { @@ -383,6 +806,28 @@ DataMigrationServiceTracingConnection::ImportMappingRules( child_->ImportMappingRules(request)); } +StatusOr +DataMigrationServiceTracingConnection::ImportMappingRules( + ExperimentalTag, NoAwaitTag, + google::cloud::clouddms::v1::ImportMappingRulesRequest const& request) { + auto span = internal::MakeSpan( + "datamigration_v1::DataMigrationServiceConnection::ImportMappingRules"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->ImportMappingRules(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +DataMigrationServiceTracingConnection::ImportMappingRules( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "datamigration_v1::DataMigrationServiceConnection::ImportMappingRules"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->ImportMappingRules( + ExperimentalTag{}, operation)); +} + future> DataMigrationServiceTracingConnection::ConvertConversionWorkspace( google::cloud::clouddms::v1::ConvertConversionWorkspaceRequest const& @@ -395,6 +840,31 @@ DataMigrationServiceTracingConnection::ConvertConversionWorkspace( child_->ConvertConversionWorkspace(request)); } +StatusOr +DataMigrationServiceTracingConnection::ConvertConversionWorkspace( + ExperimentalTag, NoAwaitTag, + google::cloud::clouddms::v1::ConvertConversionWorkspaceRequest const& + request) { + auto span = internal::MakeSpan( + "datamigration_v1::DataMigrationServiceConnection::" + "ConvertConversionWorkspace"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->ConvertConversionWorkspace(ExperimentalTag{}, NoAwaitTag{}, + request)); +} + +future> +DataMigrationServiceTracingConnection::ConvertConversionWorkspace( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "datamigration_v1::DataMigrationServiceConnection::" + "ConvertConversionWorkspace"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->ConvertConversionWorkspace( + ExperimentalTag{}, operation)); +} + future> DataMigrationServiceTracingConnection::CommitConversionWorkspace( google::cloud::clouddms::v1::CommitConversionWorkspaceRequest const& @@ -407,6 +877,31 @@ DataMigrationServiceTracingConnection::CommitConversionWorkspace( child_->CommitConversionWorkspace(request)); } +StatusOr +DataMigrationServiceTracingConnection::CommitConversionWorkspace( + ExperimentalTag, NoAwaitTag, + google::cloud::clouddms::v1::CommitConversionWorkspaceRequest const& + request) { + auto span = internal::MakeSpan( + "datamigration_v1::DataMigrationServiceConnection::" + "CommitConversionWorkspace"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->CommitConversionWorkspace(ExperimentalTag{}, NoAwaitTag{}, + request)); +} + +future> +DataMigrationServiceTracingConnection::CommitConversionWorkspace( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "datamigration_v1::DataMigrationServiceConnection::" + "CommitConversionWorkspace"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->CommitConversionWorkspace( + ExperimentalTag{}, operation)); +} + future> DataMigrationServiceTracingConnection::RollbackConversionWorkspace( google::cloud::clouddms::v1::RollbackConversionWorkspaceRequest const& @@ -419,6 +914,31 @@ DataMigrationServiceTracingConnection::RollbackConversionWorkspace( child_->RollbackConversionWorkspace(request)); } +StatusOr +DataMigrationServiceTracingConnection::RollbackConversionWorkspace( + ExperimentalTag, NoAwaitTag, + google::cloud::clouddms::v1::RollbackConversionWorkspaceRequest const& + request) { + auto span = internal::MakeSpan( + "datamigration_v1::DataMigrationServiceConnection::" + "RollbackConversionWorkspace"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->RollbackConversionWorkspace(ExperimentalTag{}, + NoAwaitTag{}, request)); +} + +future> +DataMigrationServiceTracingConnection::RollbackConversionWorkspace( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "datamigration_v1::DataMigrationServiceConnection::" + "RollbackConversionWorkspace"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->RollbackConversionWorkspace( + ExperimentalTag{}, operation)); +} + future> DataMigrationServiceTracingConnection::ApplyConversionWorkspace( google::cloud::clouddms::v1::ApplyConversionWorkspaceRequest const& @@ -431,6 +951,31 @@ DataMigrationServiceTracingConnection::ApplyConversionWorkspace( child_->ApplyConversionWorkspace(request)); } +StatusOr +DataMigrationServiceTracingConnection::ApplyConversionWorkspace( + ExperimentalTag, NoAwaitTag, + google::cloud::clouddms::v1::ApplyConversionWorkspaceRequest const& + request) { + auto span = internal::MakeSpan( + "datamigration_v1::DataMigrationServiceConnection::" + "ApplyConversionWorkspace"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->ApplyConversionWorkspace(ExperimentalTag{}, NoAwaitTag{}, + request)); +} + +future> +DataMigrationServiceTracingConnection::ApplyConversionWorkspace( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "datamigration_v1::DataMigrationServiceConnection::" + "ApplyConversionWorkspace"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->ApplyConversionWorkspace( + ExperimentalTag{}, operation)); +} + StreamRange DataMigrationServiceTracingConnection::DescribeDatabaseEntities( google::cloud::clouddms::v1::DescribeDatabaseEntitiesRequest request) { diff --git a/google/cloud/datamigration/v1/internal/data_migration_tracing_connection.h b/google/cloud/datamigration/v1/internal/data_migration_tracing_connection.h index d2f5ce7c1cb5d..019c2a0ad33fb 100644 --- a/google/cloud/datamigration/v1/internal/data_migration_tracing_connection.h +++ b/google/cloud/datamigration/v1/internal/data_migration_tracing_connection.h @@ -52,44 +52,125 @@ class DataMigrationServiceTracingConnection google::cloud::clouddms::v1::CreateMigrationJobRequest const& request) override; + StatusOr CreateMigrationJob( + ExperimentalTag, NoAwaitTag, + google::cloud::clouddms::v1::CreateMigrationJobRequest const& request) + override; + + future> + CreateMigrationJob(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateMigrationJob( google::cloud::clouddms::v1::UpdateMigrationJobRequest const& request) override; + StatusOr UpdateMigrationJob( + ExperimentalTag, NoAwaitTag, + google::cloud::clouddms::v1::UpdateMigrationJobRequest const& request) + override; + + future> + UpdateMigrationJob(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteMigrationJob( google::cloud::clouddms::v1::DeleteMigrationJobRequest const& request) override; + StatusOr DeleteMigrationJob( + ExperimentalTag, NoAwaitTag, + google::cloud::clouddms::v1::DeleteMigrationJobRequest const& request) + override; + + future> + DeleteMigrationJob(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> StartMigrationJob( google::cloud::clouddms::v1::StartMigrationJobRequest const& request) override; + StatusOr StartMigrationJob( + ExperimentalTag, NoAwaitTag, + google::cloud::clouddms::v1::StartMigrationJobRequest const& request) + override; + + future> StartMigrationJob( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> StopMigrationJob( google::cloud::clouddms::v1::StopMigrationJobRequest const& request) override; + StatusOr StopMigrationJob( + ExperimentalTag, NoAwaitTag, + google::cloud::clouddms::v1::StopMigrationJobRequest const& request) + override; + + future> StopMigrationJob( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ResumeMigrationJob( google::cloud::clouddms::v1::ResumeMigrationJobRequest const& request) override; + StatusOr ResumeMigrationJob( + ExperimentalTag, NoAwaitTag, + google::cloud::clouddms::v1::ResumeMigrationJobRequest const& request) + override; + + future> + ResumeMigrationJob(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> PromoteMigrationJob( google::cloud::clouddms::v1::PromoteMigrationJobRequest const& request) override; + StatusOr PromoteMigrationJob( + ExperimentalTag, NoAwaitTag, + google::cloud::clouddms::v1::PromoteMigrationJobRequest const& request) + override; + + future> + PromoteMigrationJob(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> VerifyMigrationJob( google::cloud::clouddms::v1::VerifyMigrationJobRequest const& request) override; + StatusOr VerifyMigrationJob( + ExperimentalTag, NoAwaitTag, + google::cloud::clouddms::v1::VerifyMigrationJobRequest const& request) + override; + + future> + VerifyMigrationJob(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> RestartMigrationJob( google::cloud::clouddms::v1::RestartMigrationJobRequest const& request) override; + StatusOr RestartMigrationJob( + ExperimentalTag, NoAwaitTag, + google::cloud::clouddms::v1::RestartMigrationJobRequest const& request) + override; + + future> + RestartMigrationJob(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GenerateSshScript( google::cloud::clouddms::v1::GenerateSshScriptRequest const& request) override; @@ -112,21 +193,61 @@ class DataMigrationServiceTracingConnection google::cloud::clouddms::v1::CreateConnectionProfileRequest const& request) override; + StatusOr CreateConnectionProfile( + ExperimentalTag, NoAwaitTag, + google::cloud::clouddms::v1::CreateConnectionProfileRequest const& + request) override; + + future> + CreateConnectionProfile( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateConnectionProfile( google::cloud::clouddms::v1::UpdateConnectionProfileRequest const& request) override; + StatusOr UpdateConnectionProfile( + ExperimentalTag, NoAwaitTag, + google::cloud::clouddms::v1::UpdateConnectionProfileRequest const& + request) override; + + future> + UpdateConnectionProfile( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteConnectionProfile( google::cloud::clouddms::v1::DeleteConnectionProfileRequest const& request) override; + StatusOr DeleteConnectionProfile( + ExperimentalTag, NoAwaitTag, + google::cloud::clouddms::v1::DeleteConnectionProfileRequest const& + request) override; + + future> + DeleteConnectionProfile( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> CreatePrivateConnection( google::cloud::clouddms::v1::CreatePrivateConnectionRequest const& request) override; + StatusOr CreatePrivateConnection( + ExperimentalTag, NoAwaitTag, + google::cloud::clouddms::v1::CreatePrivateConnectionRequest const& + request) override; + + future> + CreatePrivateConnection( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetPrivateConnection( google::cloud::clouddms::v1::GetPrivateConnectionRequest const& request) override; @@ -141,6 +262,16 @@ class DataMigrationServiceTracingConnection google::cloud::clouddms::v1::DeletePrivateConnectionRequest const& request) override; + StatusOr DeletePrivateConnection( + ExperimentalTag, NoAwaitTag, + google::cloud::clouddms::v1::DeletePrivateConnectionRequest const& + request) override; + + future> + DeletePrivateConnection( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetConversionWorkspace( google::cloud::clouddms::v1::GetConversionWorkspaceRequest const& request) @@ -156,16 +287,46 @@ class DataMigrationServiceTracingConnection google::cloud::clouddms::v1::CreateConversionWorkspaceRequest const& request) override; + StatusOr CreateConversionWorkspace( + ExperimentalTag, NoAwaitTag, + google::cloud::clouddms::v1::CreateConversionWorkspaceRequest const& + request) override; + + future> + CreateConversionWorkspace( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateConversionWorkspace( google::cloud::clouddms::v1::UpdateConversionWorkspaceRequest const& request) override; + StatusOr UpdateConversionWorkspace( + ExperimentalTag, NoAwaitTag, + google::cloud::clouddms::v1::UpdateConversionWorkspaceRequest const& + request) override; + + future> + UpdateConversionWorkspace( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteConversionWorkspace( google::cloud::clouddms::v1::DeleteConversionWorkspaceRequest const& request) override; + StatusOr DeleteConversionWorkspace( + ExperimentalTag, NoAwaitTag, + google::cloud::clouddms::v1::DeleteConversionWorkspaceRequest const& + request) override; + + future> + DeleteConversionWorkspace( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr CreateMappingRule( google::cloud::clouddms::v1::CreateMappingRuleRequest const& request) override; @@ -186,31 +347,90 @@ class DataMigrationServiceTracingConnection google::cloud::clouddms::v1::SeedConversionWorkspaceRequest const& request) override; + StatusOr SeedConversionWorkspace( + ExperimentalTag, NoAwaitTag, + google::cloud::clouddms::v1::SeedConversionWorkspaceRequest const& + request) override; + + future> + SeedConversionWorkspace( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ImportMappingRules( google::cloud::clouddms::v1::ImportMappingRulesRequest const& request) override; + StatusOr ImportMappingRules( + ExperimentalTag, NoAwaitTag, + google::cloud::clouddms::v1::ImportMappingRulesRequest const& request) + override; + + future> + ImportMappingRules(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ConvertConversionWorkspace( google::cloud::clouddms::v1::ConvertConversionWorkspaceRequest const& request) override; + StatusOr ConvertConversionWorkspace( + ExperimentalTag, NoAwaitTag, + google::cloud::clouddms::v1::ConvertConversionWorkspaceRequest const& + request) override; + + future> + ConvertConversionWorkspace( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> CommitConversionWorkspace( google::cloud::clouddms::v1::CommitConversionWorkspaceRequest const& request) override; + StatusOr CommitConversionWorkspace( + ExperimentalTag, NoAwaitTag, + google::cloud::clouddms::v1::CommitConversionWorkspaceRequest const& + request) override; + + future> + CommitConversionWorkspace( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> RollbackConversionWorkspace( google::cloud::clouddms::v1::RollbackConversionWorkspaceRequest const& request) override; + StatusOr RollbackConversionWorkspace( + ExperimentalTag, NoAwaitTag, + google::cloud::clouddms::v1::RollbackConversionWorkspaceRequest const& + request) override; + + future> + RollbackConversionWorkspace( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ApplyConversionWorkspace( google::cloud::clouddms::v1::ApplyConversionWorkspaceRequest const& request) override; + StatusOr ApplyConversionWorkspace( + ExperimentalTag, NoAwaitTag, + google::cloud::clouddms::v1::ApplyConversionWorkspaceRequest const& + request) override; + + future> + ApplyConversionWorkspace( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange DescribeDatabaseEntities( google::cloud::clouddms::v1::DescribeDatabaseEntitiesRequest request) diff --git a/google/cloud/datamigration/v1/mocks/mock_data_migration_connection.h b/google/cloud/datamigration/v1/mocks/mock_data_migration_connection.h index 7de55a72b355b..c58951bd2fe2e 100644 --- a/google/cloud/datamigration/v1/mocks/mock_data_migration_connection.h +++ b/google/cloud/datamigration/v1/mocks/mock_data_migration_connection.h @@ -63,54 +63,162 @@ class MockDataMigrationServiceConnection (google::cloud::clouddms::v1::CreateMigrationJobRequest const& request), (override)); + MOCK_METHOD( + StatusOr, CreateMigrationJob, + (ExperimentalTag, NoAwaitTag, + google::cloud::clouddms::v1::CreateMigrationJobRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateMigrationJob, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, UpdateMigrationJob, (google::cloud::clouddms::v1::UpdateMigrationJobRequest const& request), (override)); + MOCK_METHOD( + StatusOr, UpdateMigrationJob, + (ExperimentalTag, NoAwaitTag, + google::cloud::clouddms::v1::UpdateMigrationJobRequest const& request), + (override)); + + MOCK_METHOD(future>, + UpdateMigrationJob, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteMigrationJob, (google::cloud::clouddms::v1::DeleteMigrationJobRequest const& request), (override)); + MOCK_METHOD( + StatusOr, DeleteMigrationJob, + (ExperimentalTag, NoAwaitTag, + google::cloud::clouddms::v1::DeleteMigrationJobRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteMigrationJob, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, StartMigrationJob, (google::cloud::clouddms::v1::StartMigrationJobRequest const& request), (override)); + MOCK_METHOD( + StatusOr, StartMigrationJob, + (ExperimentalTag, NoAwaitTag, + google::cloud::clouddms::v1::StartMigrationJobRequest const& request), + (override)); + + MOCK_METHOD(future>, + StartMigrationJob, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, StopMigrationJob, (google::cloud::clouddms::v1::StopMigrationJobRequest const& request), (override)); + MOCK_METHOD( + StatusOr, StopMigrationJob, + (ExperimentalTag, NoAwaitTag, + google::cloud::clouddms::v1::StopMigrationJobRequest const& request), + (override)); + + MOCK_METHOD(future>, + StopMigrationJob, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, ResumeMigrationJob, (google::cloud::clouddms::v1::ResumeMigrationJobRequest const& request), (override)); + MOCK_METHOD( + StatusOr, ResumeMigrationJob, + (ExperimentalTag, NoAwaitTag, + google::cloud::clouddms::v1::ResumeMigrationJobRequest const& request), + (override)); + + MOCK_METHOD(future>, + ResumeMigrationJob, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, PromoteMigrationJob, (google::cloud::clouddms::v1::PromoteMigrationJobRequest const& request), (override)); + MOCK_METHOD( + StatusOr, PromoteMigrationJob, + (ExperimentalTag, NoAwaitTag, + google::cloud::clouddms::v1::PromoteMigrationJobRequest const& request), + (override)); + + MOCK_METHOD(future>, + PromoteMigrationJob, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, VerifyMigrationJob, (google::cloud::clouddms::v1::VerifyMigrationJobRequest const& request), (override)); + MOCK_METHOD( + StatusOr, VerifyMigrationJob, + (ExperimentalTag, NoAwaitTag, + google::cloud::clouddms::v1::VerifyMigrationJobRequest const& request), + (override)); + + MOCK_METHOD(future>, + VerifyMigrationJob, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, RestartMigrationJob, (google::cloud::clouddms::v1::RestartMigrationJobRequest const& request), (override)); + MOCK_METHOD( + StatusOr, RestartMigrationJob, + (ExperimentalTag, NoAwaitTag, + google::cloud::clouddms::v1::RestartMigrationJobRequest const& request), + (override)); + + MOCK_METHOD(future>, + RestartMigrationJob, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr, GenerateSshScript, (google::cloud::clouddms::v1::GenerateSshScriptRequest const& request), @@ -141,6 +249,19 @@ class MockDataMigrationServiceConnection request), (override)); + MOCK_METHOD( + StatusOr, CreateConnectionProfile, + (ExperimentalTag, NoAwaitTag, + google::cloud::clouddms::v1::CreateConnectionProfileRequest const& + request), + (override)); + + MOCK_METHOD(future>, + CreateConnectionProfile, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, UpdateConnectionProfile, @@ -148,6 +269,19 @@ class MockDataMigrationServiceConnection request), (override)); + MOCK_METHOD( + StatusOr, UpdateConnectionProfile, + (ExperimentalTag, NoAwaitTag, + google::cloud::clouddms::v1::UpdateConnectionProfileRequest const& + request), + (override)); + + MOCK_METHOD(future>, + UpdateConnectionProfile, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteConnectionProfile, @@ -155,6 +289,19 @@ class MockDataMigrationServiceConnection request), (override)); + MOCK_METHOD( + StatusOr, DeleteConnectionProfile, + (ExperimentalTag, NoAwaitTag, + google::cloud::clouddms::v1::DeleteConnectionProfileRequest const& + request), + (override)); + + MOCK_METHOD(future>, + DeleteConnectionProfile, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, CreatePrivateConnection, @@ -162,6 +309,19 @@ class MockDataMigrationServiceConnection request), (override)); + MOCK_METHOD( + StatusOr, CreatePrivateConnection, + (ExperimentalTag, NoAwaitTag, + google::cloud::clouddms::v1::CreatePrivateConnectionRequest const& + request), + (override)); + + MOCK_METHOD(future>, + CreatePrivateConnection, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr, GetPrivateConnection, @@ -181,6 +341,19 @@ class MockDataMigrationServiceConnection request), (override)); + MOCK_METHOD( + StatusOr, DeletePrivateConnection, + (ExperimentalTag, NoAwaitTag, + google::cloud::clouddms::v1::DeletePrivateConnectionRequest const& + request), + (override)); + + MOCK_METHOD(future>, + DeletePrivateConnection, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(StatusOr, GetConversionWorkspace, (google::cloud::clouddms::v1::GetConversionWorkspaceRequest const& @@ -200,6 +373,19 @@ class MockDataMigrationServiceConnection request), (override)); + MOCK_METHOD( + StatusOr, CreateConversionWorkspace, + (ExperimentalTag, NoAwaitTag, + google::cloud::clouddms::v1::CreateConversionWorkspaceRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + CreateConversionWorkspace, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, UpdateConversionWorkspace, @@ -207,6 +393,19 @@ class MockDataMigrationServiceConnection request), (override)); + MOCK_METHOD( + StatusOr, UpdateConversionWorkspace, + (ExperimentalTag, NoAwaitTag, + google::cloud::clouddms::v1::UpdateConversionWorkspaceRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + UpdateConversionWorkspace, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteConversionWorkspace, @@ -214,6 +413,19 @@ class MockDataMigrationServiceConnection request), (override)); + MOCK_METHOD( + StatusOr, DeleteConversionWorkspace, + (ExperimentalTag, NoAwaitTag, + google::cloud::clouddms::v1::DeleteConversionWorkspaceRequest const& + request), + (override)); + + MOCK_METHOD(future>, + DeleteConversionWorkspace, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr, CreateMappingRule, (google::cloud::clouddms::v1::CreateMappingRuleRequest const& request), @@ -241,12 +453,37 @@ class MockDataMigrationServiceConnection request), (override)); + MOCK_METHOD( + StatusOr, SeedConversionWorkspace, + (ExperimentalTag, NoAwaitTag, + google::cloud::clouddms::v1::SeedConversionWorkspaceRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + SeedConversionWorkspace, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, ImportMappingRules, (google::cloud::clouddms::v1::ImportMappingRulesRequest const& request), (override)); + MOCK_METHOD( + StatusOr, ImportMappingRules, + (ExperimentalTag, NoAwaitTag, + google::cloud::clouddms::v1::ImportMappingRulesRequest const& request), + (override)); + + MOCK_METHOD( + future>, + ImportMappingRules, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, ConvertConversionWorkspace, @@ -254,6 +491,19 @@ class MockDataMigrationServiceConnection request), (override)); + MOCK_METHOD( + StatusOr, ConvertConversionWorkspace, + (ExperimentalTag, NoAwaitTag, + google::cloud::clouddms::v1::ConvertConversionWorkspaceRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + ConvertConversionWorkspace, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, CommitConversionWorkspace, @@ -261,6 +511,19 @@ class MockDataMigrationServiceConnection request), (override)); + MOCK_METHOD( + StatusOr, CommitConversionWorkspace, + (ExperimentalTag, NoAwaitTag, + google::cloud::clouddms::v1::CommitConversionWorkspaceRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + CommitConversionWorkspace, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, RollbackConversionWorkspace, @@ -268,6 +531,19 @@ class MockDataMigrationServiceConnection request), (override)); + MOCK_METHOD( + StatusOr, RollbackConversionWorkspace, + (ExperimentalTag, NoAwaitTag, + google::cloud::clouddms::v1::RollbackConversionWorkspaceRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + RollbackConversionWorkspace, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, ApplyConversionWorkspace, @@ -275,6 +551,19 @@ class MockDataMigrationServiceConnection request), (override)); + MOCK_METHOD( + StatusOr, ApplyConversionWorkspace, + (ExperimentalTag, NoAwaitTag, + google::cloud::clouddms::v1::ApplyConversionWorkspaceRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + ApplyConversionWorkspace, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( (StreamRange), DescribeDatabaseEntities, diff --git a/google/cloud/dataplex/v1/catalog_connection.cc b/google/cloud/dataplex/v1/catalog_connection.cc index aea55669eef55..7a5b0bd7bf9b7 100644 --- a/google/cloud/dataplex/v1/catalog_connection.cc +++ b/google/cloud/dataplex/v1/catalog_connection.cc @@ -46,6 +46,22 @@ CatalogServiceConnection::CreateEntryType( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +CatalogServiceConnection::CreateEntryType( + ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::CreateEntryTypeRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +CatalogServiceConnection::CreateEntryType( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> CatalogServiceConnection::UpdateEntryType( google::cloud::dataplex::v1::UpdateEntryTypeRequest const&) { @@ -54,6 +70,22 @@ CatalogServiceConnection::UpdateEntryType( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +CatalogServiceConnection::UpdateEntryType( + ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::UpdateEntryTypeRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +CatalogServiceConnection::UpdateEntryType( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> CatalogServiceConnection::DeleteEntryType( google::cloud::dataplex::v1::DeleteEntryTypeRequest const&) { @@ -62,6 +94,22 @@ CatalogServiceConnection::DeleteEntryType( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +CatalogServiceConnection::DeleteEntryType( + ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::DeleteEntryTypeRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +CatalogServiceConnection::DeleteEntryType( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StreamRange CatalogServiceConnection::ListEntryTypes( google::cloud::dataplex::v1:: @@ -84,9 +132,41 @@ CatalogServiceConnection::CreateAspectType( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +CatalogServiceConnection::CreateAspectType( + ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::CreateAspectTypeRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> +CatalogServiceConnection::CreateAspectType( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +CatalogServiceConnection::UpdateAspectType( + google::cloud::dataplex::v1::UpdateAspectTypeRequest const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +StatusOr CatalogServiceConnection::UpdateAspectType( + ExperimentalTag, NoAwaitTag, google::cloud::dataplex::v1::UpdateAspectTypeRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +CatalogServiceConnection::UpdateAspectType( + ExperimentalTag, google::longrunning::Operation const&) { return google::cloud::make_ready_future< StatusOr>( Status(StatusCode::kUnimplemented, "not implemented")); @@ -100,6 +180,22 @@ CatalogServiceConnection::DeleteAspectType( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +CatalogServiceConnection::DeleteAspectType( + ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::DeleteAspectTypeRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +CatalogServiceConnection::DeleteAspectType( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StreamRange CatalogServiceConnection::ListAspectTypes( google::cloud::dataplex::v1:: @@ -122,6 +218,22 @@ CatalogServiceConnection::CreateEntryGroup( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +CatalogServiceConnection::CreateEntryGroup( + ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::CreateEntryGroupRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +CatalogServiceConnection::CreateEntryGroup( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> CatalogServiceConnection::UpdateEntryGroup( google::cloud::dataplex::v1::UpdateEntryGroupRequest const&) { @@ -130,6 +242,22 @@ CatalogServiceConnection::UpdateEntryGroup( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +CatalogServiceConnection::UpdateEntryGroup( + ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::UpdateEntryGroupRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +CatalogServiceConnection::UpdateEntryGroup( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> CatalogServiceConnection::DeleteEntryGroup( google::cloud::dataplex::v1::DeleteEntryGroupRequest const&) { @@ -138,6 +266,22 @@ CatalogServiceConnection::DeleteEntryGroup( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +CatalogServiceConnection::DeleteEntryGroup( + ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::DeleteEntryGroupRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +CatalogServiceConnection::DeleteEntryGroup( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StreamRange CatalogServiceConnection::ListEntryGroups( google::cloud::dataplex::v1:: diff --git a/google/cloud/dataplex/v1/catalog_connection.h b/google/cloud/dataplex/v1/catalog_connection.h index 0e2f9fb68b785..cc6ed28021f40 100644 --- a/google/cloud/dataplex/v1/catalog_connection.h +++ b/google/cloud/dataplex/v1/catalog_connection.h @@ -22,8 +22,10 @@ #include "google/cloud/dataplex/v1/catalog_connection_idempotency_policy.h" #include "google/cloud/dataplex/v1/internal/catalog_retry_traits.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/internal/retry_policy_impl.h" +#include "google/cloud/no_await_tag.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" #include "google/cloud/status_or.h" @@ -189,14 +191,38 @@ class CatalogServiceConnection { CreateEntryType( google::cloud::dataplex::v1::CreateEntryTypeRequest const& request); + virtual StatusOr CreateEntryType( + ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::CreateEntryTypeRequest const& request); + + virtual future> + CreateEntryType(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> UpdateEntryType( google::cloud::dataplex::v1::UpdateEntryTypeRequest const& request); + virtual StatusOr UpdateEntryType( + ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::UpdateEntryTypeRequest const& request); + + virtual future> + UpdateEntryType(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> DeleteEntryType( google::cloud::dataplex::v1::DeleteEntryTypeRequest const& request); + virtual StatusOr DeleteEntryType( + ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::DeleteEntryTypeRequest const& request); + + virtual future> + DeleteEntryType(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StreamRange ListEntryTypes( google::cloud::dataplex::v1::ListEntryTypesRequest request); @@ -207,14 +233,38 @@ class CatalogServiceConnection { CreateAspectType( google::cloud::dataplex::v1::CreateAspectTypeRequest const& request); + virtual StatusOr CreateAspectType( + ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::CreateAspectTypeRequest const& request); + + virtual future> + CreateAspectType(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> UpdateAspectType( google::cloud::dataplex::v1::UpdateAspectTypeRequest const& request); + virtual StatusOr UpdateAspectType( + ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::UpdateAspectTypeRequest const& request); + + virtual future> + UpdateAspectType(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> DeleteAspectType( google::cloud::dataplex::v1::DeleteAspectTypeRequest const& request); + virtual StatusOr DeleteAspectType( + ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::DeleteAspectTypeRequest const& request); + + virtual future> + DeleteAspectType(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StreamRange ListAspectTypes( google::cloud::dataplex::v1::ListAspectTypesRequest request); @@ -225,14 +275,38 @@ class CatalogServiceConnection { CreateEntryGroup( google::cloud::dataplex::v1::CreateEntryGroupRequest const& request); + virtual StatusOr CreateEntryGroup( + ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::CreateEntryGroupRequest const& request); + + virtual future> + CreateEntryGroup(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> UpdateEntryGroup( google::cloud::dataplex::v1::UpdateEntryGroupRequest const& request); + virtual StatusOr UpdateEntryGroup( + ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::UpdateEntryGroupRequest const& request); + + virtual future> + UpdateEntryGroup(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> DeleteEntryGroup( google::cloud::dataplex::v1::DeleteEntryGroupRequest const& request); + virtual StatusOr DeleteEntryGroup( + ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::DeleteEntryGroupRequest const& request); + + virtual future> + DeleteEntryGroup(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StreamRange ListEntryGroups( google::cloud::dataplex::v1::ListEntryGroupsRequest request); diff --git a/google/cloud/dataplex/v1/content_connection.h b/google/cloud/dataplex/v1/content_connection.h index 1cf961ce482b8..63ace970ceaa7 100644 --- a/google/cloud/dataplex/v1/content_connection.h +++ b/google/cloud/dataplex/v1/content_connection.h @@ -22,6 +22,7 @@ #include "google/cloud/dataplex/v1/content_connection_idempotency_policy.h" #include "google/cloud/dataplex/v1/internal/content_retry_traits.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/internal/retry_policy_impl.h" #include "google/cloud/options.h" #include "google/cloud/status_or.h" diff --git a/google/cloud/dataplex/v1/data_scan_connection.cc b/google/cloud/dataplex/v1/data_scan_connection.cc index e7be894ee5538..c9df873c9fd55 100644 --- a/google/cloud/dataplex/v1/data_scan_connection.cc +++ b/google/cloud/dataplex/v1/data_scan_connection.cc @@ -46,6 +46,22 @@ DataScanServiceConnection::CreateDataScan( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +DataScanServiceConnection::CreateDataScan( + ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::CreateDataScanRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +DataScanServiceConnection::CreateDataScan( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> DataScanServiceConnection::UpdateDataScan( google::cloud::dataplex::v1::UpdateDataScanRequest const&) { @@ -54,6 +70,22 @@ DataScanServiceConnection::UpdateDataScan( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +DataScanServiceConnection::UpdateDataScan( + ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::UpdateDataScanRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +DataScanServiceConnection::UpdateDataScan( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> DataScanServiceConnection::DeleteDataScan( google::cloud::dataplex::v1::DeleteDataScanRequest const&) { @@ -62,6 +94,22 @@ DataScanServiceConnection::DeleteDataScan( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +DataScanServiceConnection::DeleteDataScan( + ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::DeleteDataScanRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +DataScanServiceConnection::DeleteDataScan( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr DataScanServiceConnection::GetDataScan( google::cloud::dataplex::v1::GetDataScanRequest const&) { diff --git a/google/cloud/dataplex/v1/data_scan_connection.h b/google/cloud/dataplex/v1/data_scan_connection.h index 2f9c107cba44f..1e801c2d6f299 100644 --- a/google/cloud/dataplex/v1/data_scan_connection.h +++ b/google/cloud/dataplex/v1/data_scan_connection.h @@ -22,8 +22,10 @@ #include "google/cloud/dataplex/v1/data_scan_connection_idempotency_policy.h" #include "google/cloud/dataplex/v1/internal/data_scan_retry_traits.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/internal/retry_policy_impl.h" +#include "google/cloud/no_await_tag.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" #include "google/cloud/status_or.h" @@ -190,14 +192,38 @@ class DataScanServiceConnection { CreateDataScan( google::cloud::dataplex::v1::CreateDataScanRequest const& request); + virtual StatusOr CreateDataScan( + ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::CreateDataScanRequest const& request); + + virtual future> + CreateDataScan(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> UpdateDataScan( google::cloud::dataplex::v1::UpdateDataScanRequest const& request); + virtual StatusOr UpdateDataScan( + ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::UpdateDataScanRequest const& request); + + virtual future> + UpdateDataScan(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> DeleteDataScan( google::cloud::dataplex::v1::DeleteDataScanRequest const& request); + virtual StatusOr DeleteDataScan( + ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::DeleteDataScanRequest const& request); + + virtual future> + DeleteDataScan(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StatusOr GetDataScan( google::cloud::dataplex::v1::GetDataScanRequest const& request); diff --git a/google/cloud/dataplex/v1/data_taxonomy_connection.cc b/google/cloud/dataplex/v1/data_taxonomy_connection.cc index 3482a94ec01cc..ff52bb39f63f1 100644 --- a/google/cloud/dataplex/v1/data_taxonomy_connection.cc +++ b/google/cloud/dataplex/v1/data_taxonomy_connection.cc @@ -46,6 +46,22 @@ DataTaxonomyServiceConnection::CreateDataTaxonomy( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +DataTaxonomyServiceConnection::CreateDataTaxonomy( + ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::CreateDataTaxonomyRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +DataTaxonomyServiceConnection::CreateDataTaxonomy( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> DataTaxonomyServiceConnection::UpdateDataTaxonomy( google::cloud::dataplex::v1::UpdateDataTaxonomyRequest const&) { @@ -54,6 +70,22 @@ DataTaxonomyServiceConnection::UpdateDataTaxonomy( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +DataTaxonomyServiceConnection::UpdateDataTaxonomy( + ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::UpdateDataTaxonomyRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +DataTaxonomyServiceConnection::UpdateDataTaxonomy( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> DataTaxonomyServiceConnection::DeleteDataTaxonomy( google::cloud::dataplex::v1::DeleteDataTaxonomyRequest const&) { @@ -62,6 +94,22 @@ DataTaxonomyServiceConnection::DeleteDataTaxonomy( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +DataTaxonomyServiceConnection::DeleteDataTaxonomy( + ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::DeleteDataTaxonomyRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +DataTaxonomyServiceConnection::DeleteDataTaxonomy( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StreamRange DataTaxonomyServiceConnection::ListDataTaxonomies( google::cloud::dataplex::v1:: @@ -84,9 +132,41 @@ DataTaxonomyServiceConnection::CreateDataAttributeBinding( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +DataTaxonomyServiceConnection::CreateDataAttributeBinding( + ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::CreateDataAttributeBindingRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> +DataTaxonomyServiceConnection::CreateDataAttributeBinding( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +DataTaxonomyServiceConnection::UpdateDataAttributeBinding( + google::cloud::dataplex::v1::UpdateDataAttributeBindingRequest const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +StatusOr DataTaxonomyServiceConnection::UpdateDataAttributeBinding( + ExperimentalTag, NoAwaitTag, google::cloud::dataplex::v1::UpdateDataAttributeBindingRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +DataTaxonomyServiceConnection::UpdateDataAttributeBinding( + ExperimentalTag, google::longrunning::Operation const&) { return google::cloud::make_ready_future< StatusOr>( Status(StatusCode::kUnimplemented, "not implemented")); @@ -100,6 +180,22 @@ DataTaxonomyServiceConnection::DeleteDataAttributeBinding( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +DataTaxonomyServiceConnection::DeleteDataAttributeBinding( + ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::DeleteDataAttributeBindingRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +DataTaxonomyServiceConnection::DeleteDataAttributeBinding( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StreamRange DataTaxonomyServiceConnection::ListDataAttributeBindings( google::cloud::dataplex::v1:: @@ -122,6 +218,22 @@ DataTaxonomyServiceConnection::CreateDataAttribute( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +DataTaxonomyServiceConnection::CreateDataAttribute( + ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::CreateDataAttributeRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +DataTaxonomyServiceConnection::CreateDataAttribute( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> DataTaxonomyServiceConnection::UpdateDataAttribute( google::cloud::dataplex::v1::UpdateDataAttributeRequest const&) { @@ -130,6 +242,22 @@ DataTaxonomyServiceConnection::UpdateDataAttribute( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +DataTaxonomyServiceConnection::UpdateDataAttribute( + ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::UpdateDataAttributeRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +DataTaxonomyServiceConnection::UpdateDataAttribute( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> DataTaxonomyServiceConnection::DeleteDataAttribute( google::cloud::dataplex::v1::DeleteDataAttributeRequest const&) { @@ -138,6 +266,22 @@ DataTaxonomyServiceConnection::DeleteDataAttribute( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +DataTaxonomyServiceConnection::DeleteDataAttribute( + ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::DeleteDataAttributeRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +DataTaxonomyServiceConnection::DeleteDataAttribute( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StreamRange DataTaxonomyServiceConnection::ListDataAttributes( google::cloud::dataplex::v1:: diff --git a/google/cloud/dataplex/v1/data_taxonomy_connection.h b/google/cloud/dataplex/v1/data_taxonomy_connection.h index 04dcef0e7c8dd..d06391679349d 100644 --- a/google/cloud/dataplex/v1/data_taxonomy_connection.h +++ b/google/cloud/dataplex/v1/data_taxonomy_connection.h @@ -22,8 +22,10 @@ #include "google/cloud/dataplex/v1/data_taxonomy_connection_idempotency_policy.h" #include "google/cloud/dataplex/v1/internal/data_taxonomy_retry_traits.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/internal/retry_policy_impl.h" +#include "google/cloud/no_await_tag.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" #include "google/cloud/status_or.h" @@ -192,14 +194,38 @@ class DataTaxonomyServiceConnection { CreateDataTaxonomy( google::cloud::dataplex::v1::CreateDataTaxonomyRequest const& request); + virtual StatusOr CreateDataTaxonomy( + ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::CreateDataTaxonomyRequest const& request); + + virtual future> + CreateDataTaxonomy(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> UpdateDataTaxonomy( google::cloud::dataplex::v1::UpdateDataTaxonomyRequest const& request); + virtual StatusOr UpdateDataTaxonomy( + ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::UpdateDataTaxonomyRequest const& request); + + virtual future> + UpdateDataTaxonomy(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> DeleteDataTaxonomy( google::cloud::dataplex::v1::DeleteDataTaxonomyRequest const& request); + virtual StatusOr DeleteDataTaxonomy( + ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::DeleteDataTaxonomyRequest const& request); + + virtual future> + DeleteDataTaxonomy(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StreamRange ListDataTaxonomies( google::cloud::dataplex::v1::ListDataTaxonomiesRequest request); @@ -212,16 +238,43 @@ class DataTaxonomyServiceConnection { google::cloud::dataplex::v1::CreateDataAttributeBindingRequest const& request); + virtual StatusOr CreateDataAttributeBinding( + ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::CreateDataAttributeBindingRequest const& + request); + + virtual future> + CreateDataAttributeBinding(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> UpdateDataAttributeBinding( google::cloud::dataplex::v1::UpdateDataAttributeBindingRequest const& request); + virtual StatusOr UpdateDataAttributeBinding( + ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::UpdateDataAttributeBindingRequest const& + request); + + virtual future> + UpdateDataAttributeBinding(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> DeleteDataAttributeBinding( google::cloud::dataplex::v1::DeleteDataAttributeBindingRequest const& request); + virtual StatusOr DeleteDataAttributeBinding( + ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::DeleteDataAttributeBindingRequest const& + request); + + virtual future> + DeleteDataAttributeBinding(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StreamRange ListDataAttributeBindings( google::cloud::dataplex::v1::ListDataAttributeBindingsRequest request); @@ -235,14 +288,38 @@ class DataTaxonomyServiceConnection { CreateDataAttribute( google::cloud::dataplex::v1::CreateDataAttributeRequest const& request); + virtual StatusOr CreateDataAttribute( + ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::CreateDataAttributeRequest const& request); + + virtual future> + CreateDataAttribute(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> UpdateDataAttribute( google::cloud::dataplex::v1::UpdateDataAttributeRequest const& request); + virtual StatusOr UpdateDataAttribute( + ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::UpdateDataAttributeRequest const& request); + + virtual future> + UpdateDataAttribute(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> DeleteDataAttribute( google::cloud::dataplex::v1::DeleteDataAttributeRequest const& request); + virtual StatusOr DeleteDataAttribute( + ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::DeleteDataAttributeRequest const& request); + + virtual future> + DeleteDataAttribute(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StreamRange ListDataAttributes( google::cloud::dataplex::v1::ListDataAttributesRequest request); diff --git a/google/cloud/dataplex/v1/dataplex_connection.cc b/google/cloud/dataplex/v1/dataplex_connection.cc index 4d4b6c2dedd43..5d20b9768345b 100644 --- a/google/cloud/dataplex/v1/dataplex_connection.cc +++ b/google/cloud/dataplex/v1/dataplex_connection.cc @@ -46,6 +46,21 @@ DataplexServiceConnection::CreateLake( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr DataplexServiceConnection::CreateLake( + ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::CreateLakeRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +DataplexServiceConnection::CreateLake(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> DataplexServiceConnection::UpdateLake( google::cloud::dataplex::v1::UpdateLakeRequest const&) { @@ -54,6 +69,21 @@ DataplexServiceConnection::UpdateLake( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr DataplexServiceConnection::UpdateLake( + ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::UpdateLakeRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +DataplexServiceConnection::UpdateLake(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> DataplexServiceConnection::DeleteLake( google::cloud::dataplex::v1::DeleteLakeRequest const&) { @@ -62,6 +92,21 @@ DataplexServiceConnection::DeleteLake( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr DataplexServiceConnection::DeleteLake( + ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::DeleteLakeRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +DataplexServiceConnection::DeleteLake(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StreamRange DataplexServiceConnection::ListLakes( google::cloud::dataplex::v1:: @@ -91,6 +136,21 @@ DataplexServiceConnection::CreateZone( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr DataplexServiceConnection::CreateZone( + ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::CreateZoneRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +DataplexServiceConnection::CreateZone(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> DataplexServiceConnection::UpdateZone( google::cloud::dataplex::v1::UpdateZoneRequest const&) { @@ -99,6 +159,21 @@ DataplexServiceConnection::UpdateZone( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr DataplexServiceConnection::UpdateZone( + ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::UpdateZoneRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +DataplexServiceConnection::UpdateZone(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> DataplexServiceConnection::DeleteZone( google::cloud::dataplex::v1::DeleteZoneRequest const&) { @@ -107,6 +182,21 @@ DataplexServiceConnection::DeleteZone( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr DataplexServiceConnection::DeleteZone( + ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::DeleteZoneRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +DataplexServiceConnection::DeleteZone(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StreamRange DataplexServiceConnection::ListZones( google::cloud::dataplex::v1:: @@ -136,6 +226,21 @@ DataplexServiceConnection::CreateAsset( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr DataplexServiceConnection::CreateAsset( + ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::CreateAssetRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +DataplexServiceConnection::CreateAsset(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> DataplexServiceConnection::UpdateAsset( google::cloud::dataplex::v1::UpdateAssetRequest const&) { @@ -144,6 +249,21 @@ DataplexServiceConnection::UpdateAsset( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr DataplexServiceConnection::UpdateAsset( + ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::UpdateAssetRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +DataplexServiceConnection::UpdateAsset(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> DataplexServiceConnection::DeleteAsset( google::cloud::dataplex::v1::DeleteAssetRequest const&) { @@ -152,6 +272,21 @@ DataplexServiceConnection::DeleteAsset( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr DataplexServiceConnection::DeleteAsset( + ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::DeleteAssetRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +DataplexServiceConnection::DeleteAsset(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StreamRange DataplexServiceConnection::ListAssets( google::cloud::dataplex::v1:: @@ -182,6 +317,21 @@ DataplexServiceConnection::CreateTask( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr DataplexServiceConnection::CreateTask( + ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::CreateTaskRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +DataplexServiceConnection::CreateTask(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> DataplexServiceConnection::UpdateTask( google::cloud::dataplex::v1::UpdateTaskRequest const&) { @@ -190,6 +340,21 @@ DataplexServiceConnection::UpdateTask( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr DataplexServiceConnection::UpdateTask( + ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::UpdateTaskRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +DataplexServiceConnection::UpdateTask(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> DataplexServiceConnection::DeleteTask( google::cloud::dataplex::v1::DeleteTaskRequest const&) { @@ -198,6 +363,21 @@ DataplexServiceConnection::DeleteTask( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr DataplexServiceConnection::DeleteTask( + ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::DeleteTaskRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +DataplexServiceConnection::DeleteTask(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StreamRange DataplexServiceConnection::ListTasks( google::cloud::dataplex::v1:: @@ -243,6 +423,22 @@ DataplexServiceConnection::CreateEnvironment( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +DataplexServiceConnection::CreateEnvironment( + ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::CreateEnvironmentRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +DataplexServiceConnection::CreateEnvironment( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> DataplexServiceConnection::UpdateEnvironment( google::cloud::dataplex::v1::UpdateEnvironmentRequest const&) { @@ -251,6 +447,22 @@ DataplexServiceConnection::UpdateEnvironment( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +DataplexServiceConnection::UpdateEnvironment( + ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::UpdateEnvironmentRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +DataplexServiceConnection::UpdateEnvironment( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> DataplexServiceConnection::DeleteEnvironment( google::cloud::dataplex::v1::DeleteEnvironmentRequest const&) { @@ -259,6 +471,22 @@ DataplexServiceConnection::DeleteEnvironment( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +DataplexServiceConnection::DeleteEnvironment( + ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::DeleteEnvironmentRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +DataplexServiceConnection::DeleteEnvironment( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StreamRange DataplexServiceConnection::ListEnvironments( google::cloud::dataplex::v1:: diff --git a/google/cloud/dataplex/v1/dataplex_connection.h b/google/cloud/dataplex/v1/dataplex_connection.h index 3b8a6336cbf6c..db3718f819df0 100644 --- a/google/cloud/dataplex/v1/dataplex_connection.h +++ b/google/cloud/dataplex/v1/dataplex_connection.h @@ -22,8 +22,10 @@ #include "google/cloud/dataplex/v1/dataplex_connection_idempotency_policy.h" #include "google/cloud/dataplex/v1/internal/dataplex_retry_traits.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/internal/retry_policy_impl.h" +#include "google/cloud/no_await_tag.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" #include "google/cloud/status_or.h" @@ -189,12 +191,33 @@ class DataplexServiceConnection { virtual future> CreateLake( google::cloud::dataplex::v1::CreateLakeRequest const& request); + virtual StatusOr CreateLake( + ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::CreateLakeRequest const& request); + + virtual future> CreateLake( + ExperimentalTag, google::longrunning::Operation const& operation); + virtual future> UpdateLake( google::cloud::dataplex::v1::UpdateLakeRequest const& request); + virtual StatusOr UpdateLake( + ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::UpdateLakeRequest const& request); + + virtual future> UpdateLake( + ExperimentalTag, google::longrunning::Operation const& operation); + virtual future> DeleteLake(google::cloud::dataplex::v1::DeleteLakeRequest const& request); + virtual StatusOr DeleteLake( + ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::DeleteLakeRequest const& request); + + virtual future> + DeleteLake(ExperimentalTag, google::longrunning::Operation const& operation); + virtual StreamRange ListLakes( google::cloud::dataplex::v1::ListLakesRequest request); @@ -207,12 +230,33 @@ class DataplexServiceConnection { virtual future> CreateZone( google::cloud::dataplex::v1::CreateZoneRequest const& request); + virtual StatusOr CreateZone( + ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::CreateZoneRequest const& request); + + virtual future> CreateZone( + ExperimentalTag, google::longrunning::Operation const& operation); + virtual future> UpdateZone( google::cloud::dataplex::v1::UpdateZoneRequest const& request); + virtual StatusOr UpdateZone( + ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::UpdateZoneRequest const& request); + + virtual future> UpdateZone( + ExperimentalTag, google::longrunning::Operation const& operation); + virtual future> DeleteZone(google::cloud::dataplex::v1::DeleteZoneRequest const& request); + virtual StatusOr DeleteZone( + ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::DeleteZoneRequest const& request); + + virtual future> + DeleteZone(ExperimentalTag, google::longrunning::Operation const& operation); + virtual StreamRange ListZones( google::cloud::dataplex::v1::ListZonesRequest request); @@ -225,12 +269,33 @@ class DataplexServiceConnection { virtual future> CreateAsset( google::cloud::dataplex::v1::CreateAssetRequest const& request); + virtual StatusOr CreateAsset( + ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::CreateAssetRequest const& request); + + virtual future> CreateAsset( + ExperimentalTag, google::longrunning::Operation const& operation); + virtual future> UpdateAsset( google::cloud::dataplex::v1::UpdateAssetRequest const& request); + virtual StatusOr UpdateAsset( + ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::UpdateAssetRequest const& request); + + virtual future> UpdateAsset( + ExperimentalTag, google::longrunning::Operation const& operation); + virtual future> DeleteAsset(google::cloud::dataplex::v1::DeleteAssetRequest const& request); + virtual StatusOr DeleteAsset( + ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::DeleteAssetRequest const& request); + + virtual future> + DeleteAsset(ExperimentalTag, google::longrunning::Operation const& operation); + virtual StreamRange ListAssets( google::cloud::dataplex::v1::ListAssetsRequest request); @@ -243,12 +308,33 @@ class DataplexServiceConnection { virtual future> CreateTask( google::cloud::dataplex::v1::CreateTaskRequest const& request); + virtual StatusOr CreateTask( + ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::CreateTaskRequest const& request); + + virtual future> CreateTask( + ExperimentalTag, google::longrunning::Operation const& operation); + virtual future> UpdateTask( google::cloud::dataplex::v1::UpdateTaskRequest const& request); + virtual StatusOr UpdateTask( + ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::UpdateTaskRequest const& request); + + virtual future> UpdateTask( + ExperimentalTag, google::longrunning::Operation const& operation); + virtual future> DeleteTask(google::cloud::dataplex::v1::DeleteTaskRequest const& request); + virtual StatusOr DeleteTask( + ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::DeleteTaskRequest const& request); + + virtual future> + DeleteTask(ExperimentalTag, google::longrunning::Operation const& operation); + virtual StreamRange ListTasks( google::cloud::dataplex::v1::ListTasksRequest request); @@ -271,14 +357,38 @@ class DataplexServiceConnection { CreateEnvironment( google::cloud::dataplex::v1::CreateEnvironmentRequest const& request); + virtual StatusOr CreateEnvironment( + ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::CreateEnvironmentRequest const& request); + + virtual future> + CreateEnvironment(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> UpdateEnvironment( google::cloud::dataplex::v1::UpdateEnvironmentRequest const& request); + virtual StatusOr UpdateEnvironment( + ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::UpdateEnvironmentRequest const& request); + + virtual future> + UpdateEnvironment(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> DeleteEnvironment( google::cloud::dataplex::v1::DeleteEnvironmentRequest const& request); + virtual StatusOr DeleteEnvironment( + ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::DeleteEnvironmentRequest const& request); + + virtual future> + DeleteEnvironment(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StreamRange ListEnvironments( google::cloud::dataplex::v1::ListEnvironmentsRequest request); diff --git a/google/cloud/dataplex/v1/internal/catalog_connection_impl.cc b/google/cloud/dataplex/v1/internal/catalog_connection_impl.cc index d0a4269fac9d8..88ab9d06ea423 100644 --- a/google/cloud/dataplex/v1/internal/catalog_connection_impl.cc +++ b/google/cloud/dataplex/v1/internal/catalog_connection_impl.cc @@ -103,6 +103,58 @@ CatalogServiceConnectionImpl::CreateEntryType( polling_policy(*current), __func__); } +StatusOr +CatalogServiceConnectionImpl::CreateEntryType( + ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::CreateEntryTypeRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateEntryType(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::dataplex::v1::CreateEntryTypeRequest const& request) { + return stub_->CreateEntryType(context, options, request); + }, + *current, request, __func__); +} + +future> +CatalogServiceConnectionImpl::CreateEntryType( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to CreateEntryType", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::dataplex::v1::EntryType>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::dataplex::v1::EntryType>, + polling_policy(*current), __func__); +} + future> CatalogServiceConnectionImpl::UpdateEntryType( google::cloud::dataplex::v1::UpdateEntryTypeRequest const& request) { @@ -142,6 +194,58 @@ CatalogServiceConnectionImpl::UpdateEntryType( polling_policy(*current), __func__); } +StatusOr +CatalogServiceConnectionImpl::UpdateEntryType( + ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::UpdateEntryTypeRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UpdateEntryType(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::dataplex::v1::UpdateEntryTypeRequest const& request) { + return stub_->UpdateEntryType(context, options, request); + }, + *current, request, __func__); +} + +future> +CatalogServiceConnectionImpl::UpdateEntryType( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to UpdateEntryType", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::dataplex::v1::EntryType>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::dataplex::v1::EntryType>, + polling_policy(*current), __func__); +} + future> CatalogServiceConnectionImpl::DeleteEntryType( google::cloud::dataplex::v1::DeleteEntryTypeRequest const& request) { @@ -181,6 +285,59 @@ CatalogServiceConnectionImpl::DeleteEntryType( polling_policy(*current), __func__); } +StatusOr +CatalogServiceConnectionImpl::DeleteEntryType( + ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::DeleteEntryTypeRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteEntryType(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::dataplex::v1::DeleteEntryTypeRequest const& request) { + return stub_->DeleteEntryType(context, options, request); + }, + *current, request, __func__); +} + +future> +CatalogServiceConnectionImpl::DeleteEntryType( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteEntryType", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::dataplex::v1::OperationMetadata>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::cloud::dataplex::v1::OperationMetadata>, + polling_policy(*current), __func__); +} + StreamRange CatalogServiceConnectionImpl::ListEntryTypes( google::cloud::dataplex::v1::ListEntryTypesRequest request) { @@ -268,6 +425,58 @@ CatalogServiceConnectionImpl::CreateAspectType( polling_policy(*current), __func__); } +StatusOr +CatalogServiceConnectionImpl::CreateAspectType( + ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::CreateAspectTypeRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateAspectType(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::dataplex::v1::CreateAspectTypeRequest const& request) { + return stub_->CreateAspectType(context, options, request); + }, + *current, request, __func__); +} + +future> +CatalogServiceConnectionImpl::CreateAspectType( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to CreateAspectType", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::dataplex::v1::AspectType>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::dataplex::v1::AspectType>, + polling_policy(*current), __func__); +} + future> CatalogServiceConnectionImpl::UpdateAspectType( google::cloud::dataplex::v1::UpdateAspectTypeRequest const& request) { @@ -307,6 +516,58 @@ CatalogServiceConnectionImpl::UpdateAspectType( polling_policy(*current), __func__); } +StatusOr +CatalogServiceConnectionImpl::UpdateAspectType( + ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::UpdateAspectTypeRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UpdateAspectType(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::dataplex::v1::UpdateAspectTypeRequest const& request) { + return stub_->UpdateAspectType(context, options, request); + }, + *current, request, __func__); +} + +future> +CatalogServiceConnectionImpl::UpdateAspectType( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to UpdateAspectType", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::dataplex::v1::AspectType>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::dataplex::v1::AspectType>, + polling_policy(*current), __func__); +} + future> CatalogServiceConnectionImpl::DeleteAspectType( google::cloud::dataplex::v1::DeleteAspectTypeRequest const& request) { @@ -346,6 +607,59 @@ CatalogServiceConnectionImpl::DeleteAspectType( polling_policy(*current), __func__); } +StatusOr +CatalogServiceConnectionImpl::DeleteAspectType( + ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::DeleteAspectTypeRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteAspectType(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::dataplex::v1::DeleteAspectTypeRequest const& request) { + return stub_->DeleteAspectType(context, options, request); + }, + *current, request, __func__); +} + +future> +CatalogServiceConnectionImpl::DeleteAspectType( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteAspectType", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::dataplex::v1::OperationMetadata>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::cloud::dataplex::v1::OperationMetadata>, + polling_policy(*current), __func__); +} + StreamRange CatalogServiceConnectionImpl::ListAspectTypes( google::cloud::dataplex::v1::ListAspectTypesRequest request) { @@ -433,6 +747,58 @@ CatalogServiceConnectionImpl::CreateEntryGroup( polling_policy(*current), __func__); } +StatusOr +CatalogServiceConnectionImpl::CreateEntryGroup( + ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::CreateEntryGroupRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateEntryGroup(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::dataplex::v1::CreateEntryGroupRequest const& request) { + return stub_->CreateEntryGroup(context, options, request); + }, + *current, request, __func__); +} + +future> +CatalogServiceConnectionImpl::CreateEntryGroup( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to CreateEntryGroup", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::dataplex::v1::EntryGroup>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::dataplex::v1::EntryGroup>, + polling_policy(*current), __func__); +} + future> CatalogServiceConnectionImpl::UpdateEntryGroup( google::cloud::dataplex::v1::UpdateEntryGroupRequest const& request) { @@ -472,6 +838,58 @@ CatalogServiceConnectionImpl::UpdateEntryGroup( polling_policy(*current), __func__); } +StatusOr +CatalogServiceConnectionImpl::UpdateEntryGroup( + ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::UpdateEntryGroupRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UpdateEntryGroup(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::dataplex::v1::UpdateEntryGroupRequest const& request) { + return stub_->UpdateEntryGroup(context, options, request); + }, + *current, request, __func__); +} + +future> +CatalogServiceConnectionImpl::UpdateEntryGroup( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to UpdateEntryGroup", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::dataplex::v1::EntryGroup>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::dataplex::v1::EntryGroup>, + polling_policy(*current), __func__); +} + future> CatalogServiceConnectionImpl::DeleteEntryGroup( google::cloud::dataplex::v1::DeleteEntryGroupRequest const& request) { @@ -511,6 +929,59 @@ CatalogServiceConnectionImpl::DeleteEntryGroup( polling_policy(*current), __func__); } +StatusOr +CatalogServiceConnectionImpl::DeleteEntryGroup( + ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::DeleteEntryGroupRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteEntryGroup(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::dataplex::v1::DeleteEntryGroupRequest const& request) { + return stub_->DeleteEntryGroup(context, options, request); + }, + *current, request, __func__); +} + +future> +CatalogServiceConnectionImpl::DeleteEntryGroup( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteEntryGroup", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::dataplex::v1::OperationMetadata>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::cloud::dataplex::v1::OperationMetadata>, + polling_policy(*current), __func__); +} + StreamRange CatalogServiceConnectionImpl::ListEntryGroups( google::cloud::dataplex::v1::ListEntryGroupsRequest request) { diff --git a/google/cloud/dataplex/v1/internal/catalog_connection_impl.h b/google/cloud/dataplex/v1/internal/catalog_connection_impl.h index 4e200545265ff..b9fc42282b025 100644 --- a/google/cloud/dataplex/v1/internal/catalog_connection_impl.h +++ b/google/cloud/dataplex/v1/internal/catalog_connection_impl.h @@ -56,14 +56,41 @@ class CatalogServiceConnectionImpl google::cloud::dataplex::v1::CreateEntryTypeRequest const& request) override; + StatusOr CreateEntryType( + ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::CreateEntryTypeRequest const& request) + override; + + future> CreateEntryType( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateEntryType( google::cloud::dataplex::v1::UpdateEntryTypeRequest const& request) override; + StatusOr UpdateEntryType( + ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::UpdateEntryTypeRequest const& request) + override; + + future> UpdateEntryType( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteEntryType(google::cloud::dataplex::v1::DeleteEntryTypeRequest const& request) override; + StatusOr DeleteEntryType( + ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::DeleteEntryTypeRequest const& request) + override; + + future> + DeleteEntryType(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListEntryTypes( google::cloud::dataplex::v1::ListEntryTypesRequest request) override; @@ -74,14 +101,41 @@ class CatalogServiceConnectionImpl google::cloud::dataplex::v1::CreateAspectTypeRequest const& request) override; + StatusOr CreateAspectType( + ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::CreateAspectTypeRequest const& request) + override; + + future> CreateAspectType( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateAspectType( google::cloud::dataplex::v1::UpdateAspectTypeRequest const& request) override; + StatusOr UpdateAspectType( + ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::UpdateAspectTypeRequest const& request) + override; + + future> UpdateAspectType( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteAspectType(google::cloud::dataplex::v1::DeleteAspectTypeRequest const& request) override; + StatusOr DeleteAspectType( + ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::DeleteAspectTypeRequest const& request) + override; + + future> + DeleteAspectType(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListAspectTypes( google::cloud::dataplex::v1::ListAspectTypesRequest request) override; @@ -93,14 +147,41 @@ class CatalogServiceConnectionImpl google::cloud::dataplex::v1::CreateEntryGroupRequest const& request) override; + StatusOr CreateEntryGroup( + ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::CreateEntryGroupRequest const& request) + override; + + future> CreateEntryGroup( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateEntryGroup( google::cloud::dataplex::v1::UpdateEntryGroupRequest const& request) override; + StatusOr UpdateEntryGroup( + ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::UpdateEntryGroupRequest const& request) + override; + + future> UpdateEntryGroup( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteEntryGroup(google::cloud::dataplex::v1::DeleteEntryGroupRequest const& request) override; + StatusOr DeleteEntryGroup( + ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::DeleteEntryGroupRequest const& request) + override; + + future> + DeleteEntryGroup(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListEntryGroups( google::cloud::dataplex::v1::ListEntryGroupsRequest request) override; diff --git a/google/cloud/dataplex/v1/internal/catalog_tracing_connection.cc b/google/cloud/dataplex/v1/internal/catalog_tracing_connection.cc index 31234dc2d3eee..de9186c0275f0 100644 --- a/google/cloud/dataplex/v1/internal/catalog_tracing_connection.cc +++ b/google/cloud/dataplex/v1/internal/catalog_tracing_connection.cc @@ -42,6 +42,27 @@ CatalogServiceTracingConnection::CreateEntryType( return internal::EndSpan(std::move(span), child_->CreateEntryType(request)); } +StatusOr +CatalogServiceTracingConnection::CreateEntryType( + ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::CreateEntryTypeRequest const& request) { + auto span = internal::MakeSpan( + "dataplex_v1::CatalogServiceConnection::CreateEntryType"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->CreateEntryType(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +CatalogServiceTracingConnection::CreateEntryType( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "dataplex_v1::CatalogServiceConnection::CreateEntryType"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->CreateEntryType(ExperimentalTag{}, operation)); +} + future> CatalogServiceTracingConnection::UpdateEntryType( google::cloud::dataplex::v1::UpdateEntryTypeRequest const& request) { @@ -51,6 +72,27 @@ CatalogServiceTracingConnection::UpdateEntryType( return internal::EndSpan(std::move(span), child_->UpdateEntryType(request)); } +StatusOr +CatalogServiceTracingConnection::UpdateEntryType( + ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::UpdateEntryTypeRequest const& request) { + auto span = internal::MakeSpan( + "dataplex_v1::CatalogServiceConnection::UpdateEntryType"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->UpdateEntryType(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +CatalogServiceTracingConnection::UpdateEntryType( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "dataplex_v1::CatalogServiceConnection::UpdateEntryType"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->UpdateEntryType(ExperimentalTag{}, operation)); +} + future> CatalogServiceTracingConnection::DeleteEntryType( google::cloud::dataplex::v1::DeleteEntryTypeRequest const& request) { @@ -60,6 +102,27 @@ CatalogServiceTracingConnection::DeleteEntryType( return internal::EndSpan(std::move(span), child_->DeleteEntryType(request)); } +StatusOr +CatalogServiceTracingConnection::DeleteEntryType( + ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::DeleteEntryTypeRequest const& request) { + auto span = internal::MakeSpan( + "dataplex_v1::CatalogServiceConnection::DeleteEntryType"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->DeleteEntryType(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +CatalogServiceTracingConnection::DeleteEntryType( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "dataplex_v1::CatalogServiceConnection::DeleteEntryType"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->DeleteEntryType(ExperimentalTag{}, operation)); +} + StreamRange CatalogServiceTracingConnection::ListEntryTypes( google::cloud::dataplex::v1::ListEntryTypesRequest request) { @@ -89,6 +152,28 @@ CatalogServiceTracingConnection::CreateAspectType( return internal::EndSpan(std::move(span), child_->CreateAspectType(request)); } +StatusOr +CatalogServiceTracingConnection::CreateAspectType( + ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::CreateAspectTypeRequest const& request) { + auto span = internal::MakeSpan( + "dataplex_v1::CatalogServiceConnection::CreateAspectType"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->CreateAspectType(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +CatalogServiceTracingConnection::CreateAspectType( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "dataplex_v1::CatalogServiceConnection::CreateAspectType"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->CreateAspectType(ExperimentalTag{}, operation)); +} + future> CatalogServiceTracingConnection::UpdateAspectType( google::cloud::dataplex::v1::UpdateAspectTypeRequest const& request) { @@ -98,6 +183,28 @@ CatalogServiceTracingConnection::UpdateAspectType( return internal::EndSpan(std::move(span), child_->UpdateAspectType(request)); } +StatusOr +CatalogServiceTracingConnection::UpdateAspectType( + ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::UpdateAspectTypeRequest const& request) { + auto span = internal::MakeSpan( + "dataplex_v1::CatalogServiceConnection::UpdateAspectType"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->UpdateAspectType(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +CatalogServiceTracingConnection::UpdateAspectType( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "dataplex_v1::CatalogServiceConnection::UpdateAspectType"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->UpdateAspectType(ExperimentalTag{}, operation)); +} + future> CatalogServiceTracingConnection::DeleteAspectType( google::cloud::dataplex::v1::DeleteAspectTypeRequest const& request) { @@ -107,6 +214,28 @@ CatalogServiceTracingConnection::DeleteAspectType( return internal::EndSpan(std::move(span), child_->DeleteAspectType(request)); } +StatusOr +CatalogServiceTracingConnection::DeleteAspectType( + ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::DeleteAspectTypeRequest const& request) { + auto span = internal::MakeSpan( + "dataplex_v1::CatalogServiceConnection::DeleteAspectType"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->DeleteAspectType(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +CatalogServiceTracingConnection::DeleteAspectType( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "dataplex_v1::CatalogServiceConnection::DeleteAspectType"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->DeleteAspectType(ExperimentalTag{}, operation)); +} + StreamRange CatalogServiceTracingConnection::ListAspectTypes( google::cloud::dataplex::v1::ListAspectTypesRequest request) { @@ -136,6 +265,28 @@ CatalogServiceTracingConnection::CreateEntryGroup( return internal::EndSpan(std::move(span), child_->CreateEntryGroup(request)); } +StatusOr +CatalogServiceTracingConnection::CreateEntryGroup( + ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::CreateEntryGroupRequest const& request) { + auto span = internal::MakeSpan( + "dataplex_v1::CatalogServiceConnection::CreateEntryGroup"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->CreateEntryGroup(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +CatalogServiceTracingConnection::CreateEntryGroup( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "dataplex_v1::CatalogServiceConnection::CreateEntryGroup"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->CreateEntryGroup(ExperimentalTag{}, operation)); +} + future> CatalogServiceTracingConnection::UpdateEntryGroup( google::cloud::dataplex::v1::UpdateEntryGroupRequest const& request) { @@ -145,6 +296,28 @@ CatalogServiceTracingConnection::UpdateEntryGroup( return internal::EndSpan(std::move(span), child_->UpdateEntryGroup(request)); } +StatusOr +CatalogServiceTracingConnection::UpdateEntryGroup( + ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::UpdateEntryGroupRequest const& request) { + auto span = internal::MakeSpan( + "dataplex_v1::CatalogServiceConnection::UpdateEntryGroup"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->UpdateEntryGroup(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +CatalogServiceTracingConnection::UpdateEntryGroup( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "dataplex_v1::CatalogServiceConnection::UpdateEntryGroup"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->UpdateEntryGroup(ExperimentalTag{}, operation)); +} + future> CatalogServiceTracingConnection::DeleteEntryGroup( google::cloud::dataplex::v1::DeleteEntryGroupRequest const& request) { @@ -154,6 +327,28 @@ CatalogServiceTracingConnection::DeleteEntryGroup( return internal::EndSpan(std::move(span), child_->DeleteEntryGroup(request)); } +StatusOr +CatalogServiceTracingConnection::DeleteEntryGroup( + ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::DeleteEntryGroupRequest const& request) { + auto span = internal::MakeSpan( + "dataplex_v1::CatalogServiceConnection::DeleteEntryGroup"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->DeleteEntryGroup(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +CatalogServiceTracingConnection::DeleteEntryGroup( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "dataplex_v1::CatalogServiceConnection::DeleteEntryGroup"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->DeleteEntryGroup(ExperimentalTag{}, operation)); +} + StreamRange CatalogServiceTracingConnection::ListEntryGroups( google::cloud::dataplex::v1::ListEntryGroupsRequest request) { diff --git a/google/cloud/dataplex/v1/internal/catalog_tracing_connection.h b/google/cloud/dataplex/v1/internal/catalog_tracing_connection.h index cb1e2a8924a00..73a95851a5805 100644 --- a/google/cloud/dataplex/v1/internal/catalog_tracing_connection.h +++ b/google/cloud/dataplex/v1/internal/catalog_tracing_connection.h @@ -44,14 +44,41 @@ class CatalogServiceTracingConnection google::cloud::dataplex::v1::CreateEntryTypeRequest const& request) override; + StatusOr CreateEntryType( + ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::CreateEntryTypeRequest const& request) + override; + + future> CreateEntryType( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateEntryType( google::cloud::dataplex::v1::UpdateEntryTypeRequest const& request) override; + StatusOr UpdateEntryType( + ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::UpdateEntryTypeRequest const& request) + override; + + future> UpdateEntryType( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteEntryType(google::cloud::dataplex::v1::DeleteEntryTypeRequest const& request) override; + StatusOr DeleteEntryType( + ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::DeleteEntryTypeRequest const& request) + override; + + future> + DeleteEntryType(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListEntryTypes( google::cloud::dataplex::v1::ListEntryTypesRequest request) override; @@ -62,14 +89,41 @@ class CatalogServiceTracingConnection google::cloud::dataplex::v1::CreateAspectTypeRequest const& request) override; + StatusOr CreateAspectType( + ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::CreateAspectTypeRequest const& request) + override; + + future> CreateAspectType( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateAspectType( google::cloud::dataplex::v1::UpdateAspectTypeRequest const& request) override; + StatusOr UpdateAspectType( + ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::UpdateAspectTypeRequest const& request) + override; + + future> UpdateAspectType( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteAspectType(google::cloud::dataplex::v1::DeleteAspectTypeRequest const& request) override; + StatusOr DeleteAspectType( + ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::DeleteAspectTypeRequest const& request) + override; + + future> + DeleteAspectType(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListAspectTypes( google::cloud::dataplex::v1::ListAspectTypesRequest request) override; @@ -81,14 +135,41 @@ class CatalogServiceTracingConnection google::cloud::dataplex::v1::CreateEntryGroupRequest const& request) override; + StatusOr CreateEntryGroup( + ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::CreateEntryGroupRequest const& request) + override; + + future> CreateEntryGroup( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateEntryGroup( google::cloud::dataplex::v1::UpdateEntryGroupRequest const& request) override; + StatusOr UpdateEntryGroup( + ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::UpdateEntryGroupRequest const& request) + override; + + future> UpdateEntryGroup( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteEntryGroup(google::cloud::dataplex::v1::DeleteEntryGroupRequest const& request) override; + StatusOr DeleteEntryGroup( + ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::DeleteEntryGroupRequest const& request) + override; + + future> + DeleteEntryGroup(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListEntryGroups( google::cloud::dataplex::v1::ListEntryGroupsRequest request) override; diff --git a/google/cloud/dataplex/v1/internal/data_scan_connection_impl.cc b/google/cloud/dataplex/v1/internal/data_scan_connection_impl.cc index 6d8e67fd02caf..6c3c66aad77f4 100644 --- a/google/cloud/dataplex/v1/internal/data_scan_connection_impl.cc +++ b/google/cloud/dataplex/v1/internal/data_scan_connection_impl.cc @@ -105,6 +105,58 @@ DataScanServiceConnectionImpl::CreateDataScan( polling_policy(*current), __func__); } +StatusOr +DataScanServiceConnectionImpl::CreateDataScan( + ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::CreateDataScanRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateDataScan(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::dataplex::v1::CreateDataScanRequest const& request) { + return stub_->CreateDataScan(context, options, request); + }, + *current, request, __func__); +} + +future> +DataScanServiceConnectionImpl::CreateDataScan( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to CreateDataScan", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::dataplex::v1::DataScan>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::dataplex::v1::DataScan>, + polling_policy(*current), __func__); +} + future> DataScanServiceConnectionImpl::UpdateDataScan( google::cloud::dataplex::v1::UpdateDataScanRequest const& request) { @@ -144,6 +196,58 @@ DataScanServiceConnectionImpl::UpdateDataScan( polling_policy(*current), __func__); } +StatusOr +DataScanServiceConnectionImpl::UpdateDataScan( + ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::UpdateDataScanRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UpdateDataScan(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::dataplex::v1::UpdateDataScanRequest const& request) { + return stub_->UpdateDataScan(context, options, request); + }, + *current, request, __func__); +} + +future> +DataScanServiceConnectionImpl::UpdateDataScan( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to UpdateDataScan", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::dataplex::v1::DataScan>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::dataplex::v1::DataScan>, + polling_policy(*current), __func__); +} + future> DataScanServiceConnectionImpl::DeleteDataScan( google::cloud::dataplex::v1::DeleteDataScanRequest const& request) { @@ -183,6 +287,59 @@ DataScanServiceConnectionImpl::DeleteDataScan( polling_policy(*current), __func__); } +StatusOr +DataScanServiceConnectionImpl::DeleteDataScan( + ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::DeleteDataScanRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteDataScan(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::dataplex::v1::DeleteDataScanRequest const& request) { + return stub_->DeleteDataScan(context, options, request); + }, + *current, request, __func__); +} + +future> +DataScanServiceConnectionImpl::DeleteDataScan( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteDataScan", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::dataplex::v1::OperationMetadata>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::cloud::dataplex::v1::OperationMetadata>, + polling_policy(*current), __func__); +} + StatusOr DataScanServiceConnectionImpl::GetDataScan( google::cloud::dataplex::v1::GetDataScanRequest const& request) { diff --git a/google/cloud/dataplex/v1/internal/data_scan_connection_impl.h b/google/cloud/dataplex/v1/internal/data_scan_connection_impl.h index dffd04cd78053..1ecf982094f5a 100644 --- a/google/cloud/dataplex/v1/internal/data_scan_connection_impl.h +++ b/google/cloud/dataplex/v1/internal/data_scan_connection_impl.h @@ -56,14 +56,41 @@ class DataScanServiceConnectionImpl google::cloud::dataplex::v1::CreateDataScanRequest const& request) override; + StatusOr CreateDataScan( + ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::CreateDataScanRequest const& request) + override; + + future> CreateDataScan( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateDataScan( google::cloud::dataplex::v1::UpdateDataScanRequest const& request) override; + StatusOr UpdateDataScan( + ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::UpdateDataScanRequest const& request) + override; + + future> UpdateDataScan( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteDataScan(google::cloud::dataplex::v1::DeleteDataScanRequest const& request) override; + StatusOr DeleteDataScan( + ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::DeleteDataScanRequest const& request) + override; + + future> + DeleteDataScan(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetDataScan( google::cloud::dataplex::v1::GetDataScanRequest const& request) override; diff --git a/google/cloud/dataplex/v1/internal/data_scan_tracing_connection.cc b/google/cloud/dataplex/v1/internal/data_scan_tracing_connection.cc index 789f69dc95830..4bede380be683 100644 --- a/google/cloud/dataplex/v1/internal/data_scan_tracing_connection.cc +++ b/google/cloud/dataplex/v1/internal/data_scan_tracing_connection.cc @@ -42,6 +42,27 @@ DataScanServiceTracingConnection::CreateDataScan( return internal::EndSpan(std::move(span), child_->CreateDataScan(request)); } +StatusOr +DataScanServiceTracingConnection::CreateDataScan( + ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::CreateDataScanRequest const& request) { + auto span = internal::MakeSpan( + "dataplex_v1::DataScanServiceConnection::CreateDataScan"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->CreateDataScan(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +DataScanServiceTracingConnection::CreateDataScan( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "dataplex_v1::DataScanServiceConnection::CreateDataScan"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->CreateDataScan(ExperimentalTag{}, operation)); +} + future> DataScanServiceTracingConnection::UpdateDataScan( google::cloud::dataplex::v1::UpdateDataScanRequest const& request) { @@ -51,6 +72,27 @@ DataScanServiceTracingConnection::UpdateDataScan( return internal::EndSpan(std::move(span), child_->UpdateDataScan(request)); } +StatusOr +DataScanServiceTracingConnection::UpdateDataScan( + ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::UpdateDataScanRequest const& request) { + auto span = internal::MakeSpan( + "dataplex_v1::DataScanServiceConnection::UpdateDataScan"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->UpdateDataScan(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +DataScanServiceTracingConnection::UpdateDataScan( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "dataplex_v1::DataScanServiceConnection::UpdateDataScan"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->UpdateDataScan(ExperimentalTag{}, operation)); +} + future> DataScanServiceTracingConnection::DeleteDataScan( google::cloud::dataplex::v1::DeleteDataScanRequest const& request) { @@ -60,6 +102,27 @@ DataScanServiceTracingConnection::DeleteDataScan( return internal::EndSpan(std::move(span), child_->DeleteDataScan(request)); } +StatusOr +DataScanServiceTracingConnection::DeleteDataScan( + ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::DeleteDataScanRequest const& request) { + auto span = internal::MakeSpan( + "dataplex_v1::DataScanServiceConnection::DeleteDataScan"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->DeleteDataScan(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +DataScanServiceTracingConnection::DeleteDataScan( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "dataplex_v1::DataScanServiceConnection::DeleteDataScan"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->DeleteDataScan(ExperimentalTag{}, operation)); +} + StatusOr DataScanServiceTracingConnection::GetDataScan( google::cloud::dataplex::v1::GetDataScanRequest const& request) { diff --git a/google/cloud/dataplex/v1/internal/data_scan_tracing_connection.h b/google/cloud/dataplex/v1/internal/data_scan_tracing_connection.h index 840ffb0352166..cafc03ff37f5e 100644 --- a/google/cloud/dataplex/v1/internal/data_scan_tracing_connection.h +++ b/google/cloud/dataplex/v1/internal/data_scan_tracing_connection.h @@ -44,14 +44,41 @@ class DataScanServiceTracingConnection google::cloud::dataplex::v1::CreateDataScanRequest const& request) override; + StatusOr CreateDataScan( + ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::CreateDataScanRequest const& request) + override; + + future> CreateDataScan( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateDataScan( google::cloud::dataplex::v1::UpdateDataScanRequest const& request) override; + StatusOr UpdateDataScan( + ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::UpdateDataScanRequest const& request) + override; + + future> UpdateDataScan( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteDataScan(google::cloud::dataplex::v1::DeleteDataScanRequest const& request) override; + StatusOr DeleteDataScan( + ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::DeleteDataScanRequest const& request) + override; + + future> + DeleteDataScan(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetDataScan( google::cloud::dataplex::v1::GetDataScanRequest const& request) override; diff --git a/google/cloud/dataplex/v1/internal/data_taxonomy_connection_impl.cc b/google/cloud/dataplex/v1/internal/data_taxonomy_connection_impl.cc index bc86bd2d6f64b..ce58df1fab25f 100644 --- a/google/cloud/dataplex/v1/internal/data_taxonomy_connection_impl.cc +++ b/google/cloud/dataplex/v1/internal/data_taxonomy_connection_impl.cc @@ -107,6 +107,59 @@ DataTaxonomyServiceConnectionImpl::CreateDataTaxonomy( polling_policy(*current), __func__); } +StatusOr +DataTaxonomyServiceConnectionImpl::CreateDataTaxonomy( + ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::CreateDataTaxonomyRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateDataTaxonomy(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::dataplex::v1::CreateDataTaxonomyRequest const& + request) { + return stub_->CreateDataTaxonomy(context, options, request); + }, + *current, request, __func__); +} + +future> +DataTaxonomyServiceConnectionImpl::CreateDataTaxonomy( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to CreateDataTaxonomy", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::dataplex::v1::DataTaxonomy>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::dataplex::v1::DataTaxonomy>, + polling_policy(*current), __func__); +} + future> DataTaxonomyServiceConnectionImpl::UpdateDataTaxonomy( google::cloud::dataplex::v1::UpdateDataTaxonomyRequest const& request) { @@ -147,6 +200,59 @@ DataTaxonomyServiceConnectionImpl::UpdateDataTaxonomy( polling_policy(*current), __func__); } +StatusOr +DataTaxonomyServiceConnectionImpl::UpdateDataTaxonomy( + ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::UpdateDataTaxonomyRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UpdateDataTaxonomy(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::dataplex::v1::UpdateDataTaxonomyRequest const& + request) { + return stub_->UpdateDataTaxonomy(context, options, request); + }, + *current, request, __func__); +} + +future> +DataTaxonomyServiceConnectionImpl::UpdateDataTaxonomy( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to UpdateDataTaxonomy", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::dataplex::v1::DataTaxonomy>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::dataplex::v1::DataTaxonomy>, + polling_policy(*current), __func__); +} + future> DataTaxonomyServiceConnectionImpl::DeleteDataTaxonomy( google::cloud::dataplex::v1::DeleteDataTaxonomyRequest const& request) { @@ -187,6 +293,59 @@ DataTaxonomyServiceConnectionImpl::DeleteDataTaxonomy( polling_policy(*current), __func__); } +StatusOr +DataTaxonomyServiceConnectionImpl::DeleteDataTaxonomy( + ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::DeleteDataTaxonomyRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteDataTaxonomy(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::dataplex::v1::DeleteDataTaxonomyRequest const& + request) { + return stub_->DeleteDataTaxonomy(context, options, request); + }, + *current, request, __func__); +} + +future> +DataTaxonomyServiceConnectionImpl::DeleteDataTaxonomy( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteDataTaxonomy", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::dataplex::v1::OperationMetadata>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::cloud::dataplex::v1::OperationMetadata>, + polling_policy(*current), __func__); +} + StreamRange DataTaxonomyServiceConnectionImpl::ListDataTaxonomies( google::cloud::dataplex::v1::ListDataTaxonomiesRequest request) { @@ -277,6 +436,61 @@ DataTaxonomyServiceConnectionImpl::CreateDataAttributeBinding( polling_policy(*current), __func__); } +StatusOr +DataTaxonomyServiceConnectionImpl::CreateDataAttributeBinding( + ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::CreateDataAttributeBindingRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateDataAttributeBinding(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::dataplex::v1::CreateDataAttributeBindingRequest const& + request) { + return stub_->CreateDataAttributeBinding(context, options, request); + }, + *current, request, __func__); +} + +future> +DataTaxonomyServiceConnectionImpl::CreateDataAttributeBinding( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to CreateDataAttributeBinding", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::dataplex::v1::DataAttributeBinding>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::dataplex::v1::DataAttributeBinding>, + polling_policy(*current), __func__); +} + future> DataTaxonomyServiceConnectionImpl::UpdateDataAttributeBinding( google::cloud::dataplex::v1::UpdateDataAttributeBindingRequest const& @@ -318,6 +532,61 @@ DataTaxonomyServiceConnectionImpl::UpdateDataAttributeBinding( polling_policy(*current), __func__); } +StatusOr +DataTaxonomyServiceConnectionImpl::UpdateDataAttributeBinding( + ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::UpdateDataAttributeBindingRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UpdateDataAttributeBinding(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::dataplex::v1::UpdateDataAttributeBindingRequest const& + request) { + return stub_->UpdateDataAttributeBinding(context, options, request); + }, + *current, request, __func__); +} + +future> +DataTaxonomyServiceConnectionImpl::UpdateDataAttributeBinding( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to UpdateDataAttributeBinding", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::dataplex::v1::DataAttributeBinding>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::dataplex::v1::DataAttributeBinding>, + polling_policy(*current), __func__); +} + future> DataTaxonomyServiceConnectionImpl::DeleteDataAttributeBinding( google::cloud::dataplex::v1::DeleteDataAttributeBindingRequest const& @@ -359,6 +628,61 @@ DataTaxonomyServiceConnectionImpl::DeleteDataAttributeBinding( polling_policy(*current), __func__); } +StatusOr +DataTaxonomyServiceConnectionImpl::DeleteDataAttributeBinding( + ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::DeleteDataAttributeBindingRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteDataAttributeBinding(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::dataplex::v1::DeleteDataAttributeBindingRequest const& + request) { + return stub_->DeleteDataAttributeBinding(context, options, request); + }, + *current, request, __func__); +} + +future> +DataTaxonomyServiceConnectionImpl::DeleteDataAttributeBinding( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteDataAttributeBinding", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::dataplex::v1::OperationMetadata>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::cloud::dataplex::v1::OperationMetadata>, + polling_policy(*current), __func__); +} + StreamRange DataTaxonomyServiceConnectionImpl::ListDataAttributeBindings( google::cloud::dataplex::v1::ListDataAttributeBindingsRequest request) { @@ -451,6 +775,59 @@ DataTaxonomyServiceConnectionImpl::CreateDataAttribute( polling_policy(*current), __func__); } +StatusOr +DataTaxonomyServiceConnectionImpl::CreateDataAttribute( + ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::CreateDataAttributeRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateDataAttribute(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::dataplex::v1::CreateDataAttributeRequest const& + request) { + return stub_->CreateDataAttribute(context, options, request); + }, + *current, request, __func__); +} + +future> +DataTaxonomyServiceConnectionImpl::CreateDataAttribute( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to CreateDataAttribute", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::dataplex::v1::DataAttribute>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::dataplex::v1::DataAttribute>, + polling_policy(*current), __func__); +} + future> DataTaxonomyServiceConnectionImpl::UpdateDataAttribute( google::cloud::dataplex::v1::UpdateDataAttributeRequest const& request) { @@ -491,6 +868,59 @@ DataTaxonomyServiceConnectionImpl::UpdateDataAttribute( polling_policy(*current), __func__); } +StatusOr +DataTaxonomyServiceConnectionImpl::UpdateDataAttribute( + ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::UpdateDataAttributeRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UpdateDataAttribute(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::dataplex::v1::UpdateDataAttributeRequest const& + request) { + return stub_->UpdateDataAttribute(context, options, request); + }, + *current, request, __func__); +} + +future> +DataTaxonomyServiceConnectionImpl::UpdateDataAttribute( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to UpdateDataAttribute", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::dataplex::v1::DataAttribute>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::dataplex::v1::DataAttribute>, + polling_policy(*current), __func__); +} + future> DataTaxonomyServiceConnectionImpl::DeleteDataAttribute( google::cloud::dataplex::v1::DeleteDataAttributeRequest const& request) { @@ -531,6 +961,59 @@ DataTaxonomyServiceConnectionImpl::DeleteDataAttribute( polling_policy(*current), __func__); } +StatusOr +DataTaxonomyServiceConnectionImpl::DeleteDataAttribute( + ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::DeleteDataAttributeRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteDataAttribute(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::dataplex::v1::DeleteDataAttributeRequest const& + request) { + return stub_->DeleteDataAttribute(context, options, request); + }, + *current, request, __func__); +} + +future> +DataTaxonomyServiceConnectionImpl::DeleteDataAttribute( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteDataAttribute", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::dataplex::v1::OperationMetadata>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::cloud::dataplex::v1::OperationMetadata>, + polling_policy(*current), __func__); +} + StreamRange DataTaxonomyServiceConnectionImpl::ListDataAttributes( google::cloud::dataplex::v1::ListDataAttributesRequest request) { diff --git a/google/cloud/dataplex/v1/internal/data_taxonomy_connection_impl.h b/google/cloud/dataplex/v1/internal/data_taxonomy_connection_impl.h index bcef1823744a5..19ab066217d7a 100644 --- a/google/cloud/dataplex/v1/internal/data_taxonomy_connection_impl.h +++ b/google/cloud/dataplex/v1/internal/data_taxonomy_connection_impl.h @@ -57,16 +57,43 @@ class DataTaxonomyServiceConnectionImpl google::cloud::dataplex::v1::CreateDataTaxonomyRequest const& request) override; + StatusOr CreateDataTaxonomy( + ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::CreateDataTaxonomyRequest const& request) + override; + + future> + CreateDataTaxonomy(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateDataTaxonomy( google::cloud::dataplex::v1::UpdateDataTaxonomyRequest const& request) override; + StatusOr UpdateDataTaxonomy( + ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::UpdateDataTaxonomyRequest const& request) + override; + + future> + UpdateDataTaxonomy(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteDataTaxonomy( google::cloud::dataplex::v1::DeleteDataTaxonomyRequest const& request) override; + StatusOr DeleteDataTaxonomy( + ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::DeleteDataTaxonomyRequest const& request) + override; + + future> + DeleteDataTaxonomy(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListDataTaxonomies( google::cloud::dataplex::v1::ListDataTaxonomiesRequest request) override; @@ -79,16 +106,46 @@ class DataTaxonomyServiceConnectionImpl google::cloud::dataplex::v1::CreateDataAttributeBindingRequest const& request) override; + StatusOr CreateDataAttributeBinding( + ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::CreateDataAttributeBindingRequest const& + request) override; + + future> + CreateDataAttributeBinding( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateDataAttributeBinding( google::cloud::dataplex::v1::UpdateDataAttributeBindingRequest const& request) override; + StatusOr UpdateDataAttributeBinding( + ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::UpdateDataAttributeBindingRequest const& + request) override; + + future> + UpdateDataAttributeBinding( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteDataAttributeBinding( google::cloud::dataplex::v1::DeleteDataAttributeBindingRequest const& request) override; + StatusOr DeleteDataAttributeBinding( + ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::DeleteDataAttributeBindingRequest const& + request) override; + + future> + DeleteDataAttributeBinding( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListDataAttributeBindings( google::cloud::dataplex::v1::ListDataAttributeBindingsRequest request) @@ -104,16 +161,43 @@ class DataTaxonomyServiceConnectionImpl google::cloud::dataplex::v1::CreateDataAttributeRequest const& request) override; + StatusOr CreateDataAttribute( + ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::CreateDataAttributeRequest const& request) + override; + + future> + CreateDataAttribute(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateDataAttribute( google::cloud::dataplex::v1::UpdateDataAttributeRequest const& request) override; + StatusOr UpdateDataAttribute( + ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::UpdateDataAttributeRequest const& request) + override; + + future> + UpdateDataAttribute(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteDataAttribute( google::cloud::dataplex::v1::DeleteDataAttributeRequest const& request) override; + StatusOr DeleteDataAttribute( + ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::DeleteDataAttributeRequest const& request) + override; + + future> + DeleteDataAttribute(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListDataAttributes( google::cloud::dataplex::v1::ListDataAttributesRequest request) override; diff --git a/google/cloud/dataplex/v1/internal/data_taxonomy_tracing_connection.cc b/google/cloud/dataplex/v1/internal/data_taxonomy_tracing_connection.cc index 1b7f2db9666a8..70f341a2612a8 100644 --- a/google/cloud/dataplex/v1/internal/data_taxonomy_tracing_connection.cc +++ b/google/cloud/dataplex/v1/internal/data_taxonomy_tracing_connection.cc @@ -43,6 +43,28 @@ DataTaxonomyServiceTracingConnection::CreateDataTaxonomy( child_->CreateDataTaxonomy(request)); } +StatusOr +DataTaxonomyServiceTracingConnection::CreateDataTaxonomy( + ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::CreateDataTaxonomyRequest const& request) { + auto span = internal::MakeSpan( + "dataplex_v1::DataTaxonomyServiceConnection::CreateDataTaxonomy"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->CreateDataTaxonomy(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +DataTaxonomyServiceTracingConnection::CreateDataTaxonomy( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "dataplex_v1::DataTaxonomyServiceConnection::CreateDataTaxonomy"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->CreateDataTaxonomy( + ExperimentalTag{}, operation)); +} + future> DataTaxonomyServiceTracingConnection::UpdateDataTaxonomy( google::cloud::dataplex::v1::UpdateDataTaxonomyRequest const& request) { @@ -53,6 +75,28 @@ DataTaxonomyServiceTracingConnection::UpdateDataTaxonomy( child_->UpdateDataTaxonomy(request)); } +StatusOr +DataTaxonomyServiceTracingConnection::UpdateDataTaxonomy( + ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::UpdateDataTaxonomyRequest const& request) { + auto span = internal::MakeSpan( + "dataplex_v1::DataTaxonomyServiceConnection::UpdateDataTaxonomy"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->UpdateDataTaxonomy(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +DataTaxonomyServiceTracingConnection::UpdateDataTaxonomy( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "dataplex_v1::DataTaxonomyServiceConnection::UpdateDataTaxonomy"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->UpdateDataTaxonomy( + ExperimentalTag{}, operation)); +} + future> DataTaxonomyServiceTracingConnection::DeleteDataTaxonomy( google::cloud::dataplex::v1::DeleteDataTaxonomyRequest const& request) { @@ -63,6 +107,28 @@ DataTaxonomyServiceTracingConnection::DeleteDataTaxonomy( child_->DeleteDataTaxonomy(request)); } +StatusOr +DataTaxonomyServiceTracingConnection::DeleteDataTaxonomy( + ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::DeleteDataTaxonomyRequest const& request) { + auto span = internal::MakeSpan( + "dataplex_v1::DataTaxonomyServiceConnection::DeleteDataTaxonomy"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->DeleteDataTaxonomy(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +DataTaxonomyServiceTracingConnection::DeleteDataTaxonomy( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "dataplex_v1::DataTaxonomyServiceConnection::DeleteDataTaxonomy"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->DeleteDataTaxonomy( + ExperimentalTag{}, operation)); +} + StreamRange DataTaxonomyServiceTracingConnection::ListDataTaxonomies( google::cloud::dataplex::v1::ListDataTaxonomiesRequest request) { @@ -95,6 +161,29 @@ DataTaxonomyServiceTracingConnection::CreateDataAttributeBinding( child_->CreateDataAttributeBinding(request)); } +StatusOr +DataTaxonomyServiceTracingConnection::CreateDataAttributeBinding( + ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::CreateDataAttributeBindingRequest const& + request) { + auto span = internal::MakeSpan( + "dataplex_v1::DataTaxonomyServiceConnection::CreateDataAttributeBinding"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->CreateDataAttributeBinding(ExperimentalTag{}, NoAwaitTag{}, + request)); +} + +future> +DataTaxonomyServiceTracingConnection::CreateDataAttributeBinding( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "dataplex_v1::DataTaxonomyServiceConnection::CreateDataAttributeBinding"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->CreateDataAttributeBinding( + ExperimentalTag{}, operation)); +} + future> DataTaxonomyServiceTracingConnection::UpdateDataAttributeBinding( google::cloud::dataplex::v1::UpdateDataAttributeBindingRequest const& @@ -106,6 +195,29 @@ DataTaxonomyServiceTracingConnection::UpdateDataAttributeBinding( child_->UpdateDataAttributeBinding(request)); } +StatusOr +DataTaxonomyServiceTracingConnection::UpdateDataAttributeBinding( + ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::UpdateDataAttributeBindingRequest const& + request) { + auto span = internal::MakeSpan( + "dataplex_v1::DataTaxonomyServiceConnection::UpdateDataAttributeBinding"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->UpdateDataAttributeBinding(ExperimentalTag{}, NoAwaitTag{}, + request)); +} + +future> +DataTaxonomyServiceTracingConnection::UpdateDataAttributeBinding( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "dataplex_v1::DataTaxonomyServiceConnection::UpdateDataAttributeBinding"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->UpdateDataAttributeBinding( + ExperimentalTag{}, operation)); +} + future> DataTaxonomyServiceTracingConnection::DeleteDataAttributeBinding( google::cloud::dataplex::v1::DeleteDataAttributeBindingRequest const& @@ -117,6 +229,29 @@ DataTaxonomyServiceTracingConnection::DeleteDataAttributeBinding( child_->DeleteDataAttributeBinding(request)); } +StatusOr +DataTaxonomyServiceTracingConnection::DeleteDataAttributeBinding( + ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::DeleteDataAttributeBindingRequest const& + request) { + auto span = internal::MakeSpan( + "dataplex_v1::DataTaxonomyServiceConnection::DeleteDataAttributeBinding"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->DeleteDataAttributeBinding(ExperimentalTag{}, NoAwaitTag{}, + request)); +} + +future> +DataTaxonomyServiceTracingConnection::DeleteDataAttributeBinding( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "dataplex_v1::DataTaxonomyServiceConnection::DeleteDataAttributeBinding"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->DeleteDataAttributeBinding( + ExperimentalTag{}, operation)); +} + StreamRange DataTaxonomyServiceTracingConnection::ListDataAttributeBindings( google::cloud::dataplex::v1::ListDataAttributeBindingsRequest request) { @@ -149,6 +284,28 @@ DataTaxonomyServiceTracingConnection::CreateDataAttribute( child_->CreateDataAttribute(request)); } +StatusOr +DataTaxonomyServiceTracingConnection::CreateDataAttribute( + ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::CreateDataAttributeRequest const& request) { + auto span = internal::MakeSpan( + "dataplex_v1::DataTaxonomyServiceConnection::CreateDataAttribute"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->CreateDataAttribute(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +DataTaxonomyServiceTracingConnection::CreateDataAttribute( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "dataplex_v1::DataTaxonomyServiceConnection::CreateDataAttribute"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->CreateDataAttribute( + ExperimentalTag{}, operation)); +} + future> DataTaxonomyServiceTracingConnection::UpdateDataAttribute( google::cloud::dataplex::v1::UpdateDataAttributeRequest const& request) { @@ -159,6 +316,28 @@ DataTaxonomyServiceTracingConnection::UpdateDataAttribute( child_->UpdateDataAttribute(request)); } +StatusOr +DataTaxonomyServiceTracingConnection::UpdateDataAttribute( + ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::UpdateDataAttributeRequest const& request) { + auto span = internal::MakeSpan( + "dataplex_v1::DataTaxonomyServiceConnection::UpdateDataAttribute"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->UpdateDataAttribute(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +DataTaxonomyServiceTracingConnection::UpdateDataAttribute( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "dataplex_v1::DataTaxonomyServiceConnection::UpdateDataAttribute"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->UpdateDataAttribute( + ExperimentalTag{}, operation)); +} + future> DataTaxonomyServiceTracingConnection::DeleteDataAttribute( google::cloud::dataplex::v1::DeleteDataAttributeRequest const& request) { @@ -169,6 +348,28 @@ DataTaxonomyServiceTracingConnection::DeleteDataAttribute( child_->DeleteDataAttribute(request)); } +StatusOr +DataTaxonomyServiceTracingConnection::DeleteDataAttribute( + ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::DeleteDataAttributeRequest const& request) { + auto span = internal::MakeSpan( + "dataplex_v1::DataTaxonomyServiceConnection::DeleteDataAttribute"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->DeleteDataAttribute(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +DataTaxonomyServiceTracingConnection::DeleteDataAttribute( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "dataplex_v1::DataTaxonomyServiceConnection::DeleteDataAttribute"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->DeleteDataAttribute( + ExperimentalTag{}, operation)); +} + StreamRange DataTaxonomyServiceTracingConnection::ListDataAttributes( google::cloud::dataplex::v1::ListDataAttributesRequest request) { diff --git a/google/cloud/dataplex/v1/internal/data_taxonomy_tracing_connection.h b/google/cloud/dataplex/v1/internal/data_taxonomy_tracing_connection.h index eed7ea3a1f886..0e8aa3965e82f 100644 --- a/google/cloud/dataplex/v1/internal/data_taxonomy_tracing_connection.h +++ b/google/cloud/dataplex/v1/internal/data_taxonomy_tracing_connection.h @@ -45,16 +45,43 @@ class DataTaxonomyServiceTracingConnection google::cloud::dataplex::v1::CreateDataTaxonomyRequest const& request) override; + StatusOr CreateDataTaxonomy( + ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::CreateDataTaxonomyRequest const& request) + override; + + future> + CreateDataTaxonomy(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateDataTaxonomy( google::cloud::dataplex::v1::UpdateDataTaxonomyRequest const& request) override; + StatusOr UpdateDataTaxonomy( + ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::UpdateDataTaxonomyRequest const& request) + override; + + future> + UpdateDataTaxonomy(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteDataTaxonomy( google::cloud::dataplex::v1::DeleteDataTaxonomyRequest const& request) override; + StatusOr DeleteDataTaxonomy( + ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::DeleteDataTaxonomyRequest const& request) + override; + + future> + DeleteDataTaxonomy(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListDataTaxonomies( google::cloud::dataplex::v1::ListDataTaxonomiesRequest request) override; @@ -67,16 +94,46 @@ class DataTaxonomyServiceTracingConnection google::cloud::dataplex::v1::CreateDataAttributeBindingRequest const& request) override; + StatusOr CreateDataAttributeBinding( + ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::CreateDataAttributeBindingRequest const& + request) override; + + future> + CreateDataAttributeBinding( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateDataAttributeBinding( google::cloud::dataplex::v1::UpdateDataAttributeBindingRequest const& request) override; + StatusOr UpdateDataAttributeBinding( + ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::UpdateDataAttributeBindingRequest const& + request) override; + + future> + UpdateDataAttributeBinding( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteDataAttributeBinding( google::cloud::dataplex::v1::DeleteDataAttributeBindingRequest const& request) override; + StatusOr DeleteDataAttributeBinding( + ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::DeleteDataAttributeBindingRequest const& + request) override; + + future> + DeleteDataAttributeBinding( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListDataAttributeBindings( google::cloud::dataplex::v1::ListDataAttributeBindingsRequest request) @@ -92,16 +149,43 @@ class DataTaxonomyServiceTracingConnection google::cloud::dataplex::v1::CreateDataAttributeRequest const& request) override; + StatusOr CreateDataAttribute( + ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::CreateDataAttributeRequest const& request) + override; + + future> + CreateDataAttribute(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateDataAttribute( google::cloud::dataplex::v1::UpdateDataAttributeRequest const& request) override; + StatusOr UpdateDataAttribute( + ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::UpdateDataAttributeRequest const& request) + override; + + future> + UpdateDataAttribute(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteDataAttribute( google::cloud::dataplex::v1::DeleteDataAttributeRequest const& request) override; + StatusOr DeleteDataAttribute( + ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::DeleteDataAttributeRequest const& request) + override; + + future> + DeleteDataAttribute(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListDataAttributes( google::cloud::dataplex::v1::ListDataAttributesRequest request) override; diff --git a/google/cloud/dataplex/v1/internal/dataplex_connection_impl.cc b/google/cloud/dataplex/v1/internal/dataplex_connection_impl.cc index 7a42e91d7a5b2..ff54f8600055a 100644 --- a/google/cloud/dataplex/v1/internal/dataplex_connection_impl.cc +++ b/google/cloud/dataplex/v1/internal/dataplex_connection_impl.cc @@ -105,6 +105,57 @@ DataplexServiceConnectionImpl::CreateLake( polling_policy(*current), __func__); } +StatusOr +DataplexServiceConnectionImpl::CreateLake( + ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::CreateLakeRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateLake(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::dataplex::v1::CreateLakeRequest const& request) { + return stub_->CreateLake(context, options, request); + }, + *current, request, __func__); +} + +future> +DataplexServiceConnectionImpl::CreateLake( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to CreateLake", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::dataplex::v1::Lake>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::dataplex::v1::Lake>, + polling_policy(*current), __func__); +} + future> DataplexServiceConnectionImpl::UpdateLake( google::cloud::dataplex::v1::UpdateLakeRequest const& request) { @@ -144,6 +195,57 @@ DataplexServiceConnectionImpl::UpdateLake( polling_policy(*current), __func__); } +StatusOr +DataplexServiceConnectionImpl::UpdateLake( + ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::UpdateLakeRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UpdateLake(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::dataplex::v1::UpdateLakeRequest const& request) { + return stub_->UpdateLake(context, options, request); + }, + *current, request, __func__); +} + +future> +DataplexServiceConnectionImpl::UpdateLake( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to UpdateLake", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::dataplex::v1::Lake>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::dataplex::v1::Lake>, + polling_policy(*current), __func__); +} + future> DataplexServiceConnectionImpl::DeleteLake( google::cloud::dataplex::v1::DeleteLakeRequest const& request) { @@ -183,6 +285,58 @@ DataplexServiceConnectionImpl::DeleteLake( polling_policy(*current), __func__); } +StatusOr +DataplexServiceConnectionImpl::DeleteLake( + ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::DeleteLakeRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteLake(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::dataplex::v1::DeleteLakeRequest const& request) { + return stub_->DeleteLake(context, options, request); + }, + *current, request, __func__); +} + +future> +DataplexServiceConnectionImpl::DeleteLake( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteLake", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::dataplex::v1::OperationMetadata>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::cloud::dataplex::v1::OperationMetadata>, + polling_policy(*current), __func__); +} + StreamRange DataplexServiceConnectionImpl::ListLakes( google::cloud::dataplex::v1::ListLakesRequest request) { @@ -303,6 +457,57 @@ DataplexServiceConnectionImpl::CreateZone( polling_policy(*current), __func__); } +StatusOr +DataplexServiceConnectionImpl::CreateZone( + ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::CreateZoneRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateZone(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::dataplex::v1::CreateZoneRequest const& request) { + return stub_->CreateZone(context, options, request); + }, + *current, request, __func__); +} + +future> +DataplexServiceConnectionImpl::CreateZone( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to CreateZone", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::dataplex::v1::Zone>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::dataplex::v1::Zone>, + polling_policy(*current), __func__); +} + future> DataplexServiceConnectionImpl::UpdateZone( google::cloud::dataplex::v1::UpdateZoneRequest const& request) { @@ -342,6 +547,57 @@ DataplexServiceConnectionImpl::UpdateZone( polling_policy(*current), __func__); } +StatusOr +DataplexServiceConnectionImpl::UpdateZone( + ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::UpdateZoneRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UpdateZone(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::dataplex::v1::UpdateZoneRequest const& request) { + return stub_->UpdateZone(context, options, request); + }, + *current, request, __func__); +} + +future> +DataplexServiceConnectionImpl::UpdateZone( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to UpdateZone", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::dataplex::v1::Zone>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::dataplex::v1::Zone>, + polling_policy(*current), __func__); +} + future> DataplexServiceConnectionImpl::DeleteZone( google::cloud::dataplex::v1::DeleteZoneRequest const& request) { @@ -381,6 +637,58 @@ DataplexServiceConnectionImpl::DeleteZone( polling_policy(*current), __func__); } +StatusOr +DataplexServiceConnectionImpl::DeleteZone( + ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::DeleteZoneRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteZone(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::dataplex::v1::DeleteZoneRequest const& request) { + return stub_->DeleteZone(context, options, request); + }, + *current, request, __func__); +} + +future> +DataplexServiceConnectionImpl::DeleteZone( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteZone", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::dataplex::v1::OperationMetadata>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::cloud::dataplex::v1::OperationMetadata>, + polling_policy(*current), __func__); +} + StreamRange DataplexServiceConnectionImpl::ListZones( google::cloud::dataplex::v1::ListZonesRequest request) { @@ -497,26 +805,167 @@ DataplexServiceConnectionImpl::CreateAsset( }, &google::cloud::internal::ExtractLongRunningResultResponse< google::cloud::dataplex::v1::Asset>, - retry_policy(*current), backoff_policy(*current), idempotent, + retry_policy(*current), backoff_policy(*current), idempotent, + polling_policy(*current), __func__); +} + +StatusOr +DataplexServiceConnectionImpl::CreateAsset( + ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::CreateAssetRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateAsset(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::dataplex::v1::CreateAssetRequest const& request) { + return stub_->CreateAsset(context, options, request); + }, + *current, request, __func__); +} + +future> +DataplexServiceConnectionImpl::CreateAsset( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to CreateAsset", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::dataplex::v1::Asset>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::dataplex::v1::Asset>, + polling_policy(*current), __func__); +} + +future> +DataplexServiceConnectionImpl::UpdateAsset( + google::cloud::dataplex::v1::UpdateAssetRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + auto request_copy = request; + auto const idempotent = + idempotency_policy(*current)->UpdateAsset(request_copy); + return google::cloud::internal::AsyncLongRunningOperation< + google::cloud::dataplex::v1::Asset>( + background_->cq(), current, std::move(request_copy), + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::dataplex::v1::UpdateAssetRequest const& request) { + return stub->AsyncUpdateAsset(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::dataplex::v1::Asset>, + retry_policy(*current), backoff_policy(*current), idempotent, + polling_policy(*current), __func__); +} + +StatusOr +DataplexServiceConnectionImpl::UpdateAsset( + ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::UpdateAssetRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UpdateAsset(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::dataplex::v1::UpdateAssetRequest const& request) { + return stub_->UpdateAsset(context, options, request); + }, + *current, request, __func__); +} + +future> +DataplexServiceConnectionImpl::UpdateAsset( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to UpdateAsset", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::dataplex::v1::Asset>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::dataplex::v1::Asset>, polling_policy(*current), __func__); } -future> -DataplexServiceConnectionImpl::UpdateAsset( - google::cloud::dataplex::v1::UpdateAssetRequest const& request) { +future> +DataplexServiceConnectionImpl::DeleteAsset( + google::cloud::dataplex::v1::DeleteAssetRequest const& request) { auto current = google::cloud::internal::SaveCurrentOptions(); auto request_copy = request; auto const idempotent = - idempotency_policy(*current)->UpdateAsset(request_copy); + idempotency_policy(*current)->DeleteAsset(request_copy); return google::cloud::internal::AsyncLongRunningOperation< - google::cloud::dataplex::v1::Asset>( + google::cloud::dataplex::v1::OperationMetadata>( background_->cq(), current, std::move(request_copy), [stub = stub_]( google::cloud::CompletionQueue& cq, std::shared_ptr context, google::cloud::internal::ImmutableOptions options, - google::cloud::dataplex::v1::UpdateAssetRequest const& request) { - return stub->AsyncUpdateAsset(cq, std::move(context), + google::cloud::dataplex::v1::DeleteAssetRequest const& request) { + return stub->AsyncDeleteAsset(cq, std::move(context), std::move(options), request); }, [stub = stub_](google::cloud::CompletionQueue& cq, @@ -534,30 +983,44 @@ DataplexServiceConnectionImpl::UpdateAsset( return stub->AsyncCancelOperation(cq, std::move(context), std::move(options), request); }, - &google::cloud::internal::ExtractLongRunningResultResponse< - google::cloud::dataplex::v1::Asset>, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::cloud::dataplex::v1::OperationMetadata>, retry_policy(*current), backoff_policy(*current), idempotent, polling_policy(*current), __func__); } -future> +StatusOr DataplexServiceConnectionImpl::DeleteAsset( + ExperimentalTag, NoAwaitTag, google::cloud::dataplex::v1::DeleteAssetRequest const& request) { auto current = google::cloud::internal::SaveCurrentOptions(); - auto request_copy = request; - auto const idempotent = - idempotency_policy(*current)->DeleteAsset(request_copy); - return google::cloud::internal::AsyncLongRunningOperation< - google::cloud::dataplex::v1::OperationMetadata>( - background_->cq(), current, std::move(request_copy), - [stub = stub_]( - google::cloud::CompletionQueue& cq, - std::shared_ptr context, - google::cloud::internal::ImmutableOptions options, - google::cloud::dataplex::v1::DeleteAssetRequest const& request) { - return stub->AsyncDeleteAsset(cq, std::move(context), - std::move(options), request); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteAsset(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::dataplex::v1::DeleteAssetRequest const& request) { + return stub_->DeleteAsset(context, options, request); }, + *current, request, __func__); +} + +future> +DataplexServiceConnectionImpl::DeleteAsset( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteAsset", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::dataplex::v1::OperationMetadata>( + background_->cq(), current, operation, [stub = stub_](google::cloud::CompletionQueue& cq, std::shared_ptr context, google::cloud::internal::ImmutableOptions options, @@ -575,7 +1038,6 @@ DataplexServiceConnectionImpl::DeleteAsset( }, &google::cloud::internal::ExtractLongRunningResultMetadata< google::cloud::dataplex::v1::OperationMetadata>, - retry_policy(*current), backoff_policy(*current), idempotent, polling_policy(*current), __func__); } @@ -700,6 +1162,57 @@ DataplexServiceConnectionImpl::CreateTask( polling_policy(*current), __func__); } +StatusOr +DataplexServiceConnectionImpl::CreateTask( + ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::CreateTaskRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateTask(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::dataplex::v1::CreateTaskRequest const& request) { + return stub_->CreateTask(context, options, request); + }, + *current, request, __func__); +} + +future> +DataplexServiceConnectionImpl::CreateTask( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to CreateTask", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::dataplex::v1::Task>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::dataplex::v1::Task>, + polling_policy(*current), __func__); +} + future> DataplexServiceConnectionImpl::UpdateTask( google::cloud::dataplex::v1::UpdateTaskRequest const& request) { @@ -739,6 +1252,57 @@ DataplexServiceConnectionImpl::UpdateTask( polling_policy(*current), __func__); } +StatusOr +DataplexServiceConnectionImpl::UpdateTask( + ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::UpdateTaskRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UpdateTask(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::dataplex::v1::UpdateTaskRequest const& request) { + return stub_->UpdateTask(context, options, request); + }, + *current, request, __func__); +} + +future> +DataplexServiceConnectionImpl::UpdateTask( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to UpdateTask", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::dataplex::v1::Task>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::dataplex::v1::Task>, + polling_policy(*current), __func__); +} + future> DataplexServiceConnectionImpl::DeleteTask( google::cloud::dataplex::v1::DeleteTaskRequest const& request) { @@ -778,6 +1342,58 @@ DataplexServiceConnectionImpl::DeleteTask( polling_policy(*current), __func__); } +StatusOr +DataplexServiceConnectionImpl::DeleteTask( + ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::DeleteTaskRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteTask(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::dataplex::v1::DeleteTaskRequest const& request) { + return stub_->DeleteTask(context, options, request); + }, + *current, request, __func__); +} + +future> +DataplexServiceConnectionImpl::DeleteTask( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteTask", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::dataplex::v1::OperationMetadata>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::cloud::dataplex::v1::OperationMetadata>, + polling_policy(*current), __func__); +} + StreamRange DataplexServiceConnectionImpl::ListTasks( google::cloud::dataplex::v1::ListTasksRequest request) { @@ -939,6 +1555,59 @@ DataplexServiceConnectionImpl::CreateEnvironment( polling_policy(*current), __func__); } +StatusOr +DataplexServiceConnectionImpl::CreateEnvironment( + ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::CreateEnvironmentRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateEnvironment(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::dataplex::v1::CreateEnvironmentRequest const& + request) { + return stub_->CreateEnvironment(context, options, request); + }, + *current, request, __func__); +} + +future> +DataplexServiceConnectionImpl::CreateEnvironment( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to CreateEnvironment", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::dataplex::v1::Environment>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::dataplex::v1::Environment>, + polling_policy(*current), __func__); +} + future> DataplexServiceConnectionImpl::UpdateEnvironment( google::cloud::dataplex::v1::UpdateEnvironmentRequest const& request) { @@ -979,6 +1648,59 @@ DataplexServiceConnectionImpl::UpdateEnvironment( polling_policy(*current), __func__); } +StatusOr +DataplexServiceConnectionImpl::UpdateEnvironment( + ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::UpdateEnvironmentRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UpdateEnvironment(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::dataplex::v1::UpdateEnvironmentRequest const& + request) { + return stub_->UpdateEnvironment(context, options, request); + }, + *current, request, __func__); +} + +future> +DataplexServiceConnectionImpl::UpdateEnvironment( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to UpdateEnvironment", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::dataplex::v1::Environment>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::dataplex::v1::Environment>, + polling_policy(*current), __func__); +} + future> DataplexServiceConnectionImpl::DeleteEnvironment( google::cloud::dataplex::v1::DeleteEnvironmentRequest const& request) { @@ -1019,6 +1741,59 @@ DataplexServiceConnectionImpl::DeleteEnvironment( polling_policy(*current), __func__); } +StatusOr +DataplexServiceConnectionImpl::DeleteEnvironment( + ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::DeleteEnvironmentRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteEnvironment(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::dataplex::v1::DeleteEnvironmentRequest const& + request) { + return stub_->DeleteEnvironment(context, options, request); + }, + *current, request, __func__); +} + +future> +DataplexServiceConnectionImpl::DeleteEnvironment( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteEnvironment", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::dataplex::v1::OperationMetadata>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::cloud::dataplex::v1::OperationMetadata>, + polling_policy(*current), __func__); +} + StreamRange DataplexServiceConnectionImpl::ListEnvironments( google::cloud::dataplex::v1::ListEnvironmentsRequest request) { diff --git a/google/cloud/dataplex/v1/internal/dataplex_connection_impl.h b/google/cloud/dataplex/v1/internal/dataplex_connection_impl.h index 9e5b8d18243ee..6bc45d7f31488 100644 --- a/google/cloud/dataplex/v1/internal/dataplex_connection_impl.h +++ b/google/cloud/dataplex/v1/internal/dataplex_connection_impl.h @@ -55,12 +55,36 @@ class DataplexServiceConnectionImpl future> CreateLake( google::cloud::dataplex::v1::CreateLakeRequest const& request) override; + StatusOr CreateLake( + ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::CreateLakeRequest const& request) override; + + future> CreateLake( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateLake( google::cloud::dataplex::v1::UpdateLakeRequest const& request) override; + StatusOr UpdateLake( + ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::UpdateLakeRequest const& request) override; + + future> UpdateLake( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteLake( google::cloud::dataplex::v1::DeleteLakeRequest const& request) override; + StatusOr DeleteLake( + ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::DeleteLakeRequest const& request) override; + + future> DeleteLake( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListLakes( google::cloud::dataplex::v1::ListLakesRequest request) override; @@ -73,12 +97,36 @@ class DataplexServiceConnectionImpl future> CreateZone( google::cloud::dataplex::v1::CreateZoneRequest const& request) override; + StatusOr CreateZone( + ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::CreateZoneRequest const& request) override; + + future> CreateZone( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateZone( google::cloud::dataplex::v1::UpdateZoneRequest const& request) override; + StatusOr UpdateZone( + ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::UpdateZoneRequest const& request) override; + + future> UpdateZone( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteZone( google::cloud::dataplex::v1::DeleteZoneRequest const& request) override; + StatusOr DeleteZone( + ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::DeleteZoneRequest const& request) override; + + future> DeleteZone( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListZones( google::cloud::dataplex::v1::ListZonesRequest request) override; @@ -91,12 +139,36 @@ class DataplexServiceConnectionImpl future> CreateAsset( google::cloud::dataplex::v1::CreateAssetRequest const& request) override; + StatusOr CreateAsset( + ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::CreateAssetRequest const& request) override; + + future> CreateAsset( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateAsset( google::cloud::dataplex::v1::UpdateAssetRequest const& request) override; + StatusOr UpdateAsset( + ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::UpdateAssetRequest const& request) override; + + future> UpdateAsset( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteAsset( google::cloud::dataplex::v1::DeleteAssetRequest const& request) override; + StatusOr DeleteAsset( + ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::DeleteAssetRequest const& request) override; + + future> DeleteAsset( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListAssets( google::cloud::dataplex::v1::ListAssetsRequest request) override; @@ -109,12 +181,36 @@ class DataplexServiceConnectionImpl future> CreateTask( google::cloud::dataplex::v1::CreateTaskRequest const& request) override; + StatusOr CreateTask( + ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::CreateTaskRequest const& request) override; + + future> CreateTask( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateTask( google::cloud::dataplex::v1::UpdateTaskRequest const& request) override; + StatusOr UpdateTask( + ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::UpdateTaskRequest const& request) override; + + future> UpdateTask( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteTask( google::cloud::dataplex::v1::DeleteTaskRequest const& request) override; + StatusOr DeleteTask( + ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::DeleteTaskRequest const& request) override; + + future> DeleteTask( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListTasks( google::cloud::dataplex::v1::ListTasksRequest request) override; @@ -137,14 +233,41 @@ class DataplexServiceConnectionImpl google::cloud::dataplex::v1::CreateEnvironmentRequest const& request) override; + StatusOr CreateEnvironment( + ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::CreateEnvironmentRequest const& request) + override; + + future> CreateEnvironment( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateEnvironment( google::cloud::dataplex::v1::UpdateEnvironmentRequest const& request) override; + StatusOr UpdateEnvironment( + ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::UpdateEnvironmentRequest const& request) + override; + + future> UpdateEnvironment( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteEnvironment(google::cloud::dataplex::v1::DeleteEnvironmentRequest const& request) override; + StatusOr DeleteEnvironment( + ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::DeleteEnvironmentRequest const& request) + override; + + future> + DeleteEnvironment(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListEnvironments( google::cloud::dataplex::v1::ListEnvironmentsRequest request) override; diff --git a/google/cloud/dataplex/v1/internal/dataplex_tracing_connection.cc b/google/cloud/dataplex/v1/internal/dataplex_tracing_connection.cc index f72fb54c9764d..231132271743c 100644 --- a/google/cloud/dataplex/v1/internal/dataplex_tracing_connection.cc +++ b/google/cloud/dataplex/v1/internal/dataplex_tracing_connection.cc @@ -42,6 +42,27 @@ DataplexServiceTracingConnection::CreateLake( return internal::EndSpan(std::move(span), child_->CreateLake(request)); } +StatusOr +DataplexServiceTracingConnection::CreateLake( + ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::CreateLakeRequest const& request) { + auto span = + internal::MakeSpan("dataplex_v1::DataplexServiceConnection::CreateLake"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->CreateLake(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +DataplexServiceTracingConnection::CreateLake( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = + internal::MakeSpan("dataplex_v1::DataplexServiceConnection::CreateLake"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->CreateLake(ExperimentalTag{}, operation)); +} + future> DataplexServiceTracingConnection::UpdateLake( google::cloud::dataplex::v1::UpdateLakeRequest const& request) { @@ -51,6 +72,27 @@ DataplexServiceTracingConnection::UpdateLake( return internal::EndSpan(std::move(span), child_->UpdateLake(request)); } +StatusOr +DataplexServiceTracingConnection::UpdateLake( + ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::UpdateLakeRequest const& request) { + auto span = + internal::MakeSpan("dataplex_v1::DataplexServiceConnection::UpdateLake"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->UpdateLake(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +DataplexServiceTracingConnection::UpdateLake( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = + internal::MakeSpan("dataplex_v1::DataplexServiceConnection::UpdateLake"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->UpdateLake(ExperimentalTag{}, operation)); +} + future> DataplexServiceTracingConnection::DeleteLake( google::cloud::dataplex::v1::DeleteLakeRequest const& request) { @@ -60,6 +102,27 @@ DataplexServiceTracingConnection::DeleteLake( return internal::EndSpan(std::move(span), child_->DeleteLake(request)); } +StatusOr +DataplexServiceTracingConnection::DeleteLake( + ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::DeleteLakeRequest const& request) { + auto span = + internal::MakeSpan("dataplex_v1::DataplexServiceConnection::DeleteLake"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->DeleteLake(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +DataplexServiceTracingConnection::DeleteLake( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = + internal::MakeSpan("dataplex_v1::DataplexServiceConnection::DeleteLake"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->DeleteLake(ExperimentalTag{}, operation)); +} + StreamRange DataplexServiceTracingConnection::ListLakes( google::cloud::dataplex::v1::ListLakesRequest request) { @@ -100,6 +163,27 @@ DataplexServiceTracingConnection::CreateZone( return internal::EndSpan(std::move(span), child_->CreateZone(request)); } +StatusOr +DataplexServiceTracingConnection::CreateZone( + ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::CreateZoneRequest const& request) { + auto span = + internal::MakeSpan("dataplex_v1::DataplexServiceConnection::CreateZone"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->CreateZone(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +DataplexServiceTracingConnection::CreateZone( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = + internal::MakeSpan("dataplex_v1::DataplexServiceConnection::CreateZone"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->CreateZone(ExperimentalTag{}, operation)); +} + future> DataplexServiceTracingConnection::UpdateZone( google::cloud::dataplex::v1::UpdateZoneRequest const& request) { @@ -109,6 +193,27 @@ DataplexServiceTracingConnection::UpdateZone( return internal::EndSpan(std::move(span), child_->UpdateZone(request)); } +StatusOr +DataplexServiceTracingConnection::UpdateZone( + ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::UpdateZoneRequest const& request) { + auto span = + internal::MakeSpan("dataplex_v1::DataplexServiceConnection::UpdateZone"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->UpdateZone(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +DataplexServiceTracingConnection::UpdateZone( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = + internal::MakeSpan("dataplex_v1::DataplexServiceConnection::UpdateZone"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->UpdateZone(ExperimentalTag{}, operation)); +} + future> DataplexServiceTracingConnection::DeleteZone( google::cloud::dataplex::v1::DeleteZoneRequest const& request) { @@ -118,6 +223,27 @@ DataplexServiceTracingConnection::DeleteZone( return internal::EndSpan(std::move(span), child_->DeleteZone(request)); } +StatusOr +DataplexServiceTracingConnection::DeleteZone( + ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::DeleteZoneRequest const& request) { + auto span = + internal::MakeSpan("dataplex_v1::DataplexServiceConnection::DeleteZone"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->DeleteZone(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +DataplexServiceTracingConnection::DeleteZone( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = + internal::MakeSpan("dataplex_v1::DataplexServiceConnection::DeleteZone"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->DeleteZone(ExperimentalTag{}, operation)); +} + StreamRange DataplexServiceTracingConnection::ListZones( google::cloud::dataplex::v1::ListZonesRequest request) { @@ -158,6 +284,27 @@ DataplexServiceTracingConnection::CreateAsset( return internal::EndSpan(std::move(span), child_->CreateAsset(request)); } +StatusOr +DataplexServiceTracingConnection::CreateAsset( + ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::CreateAssetRequest const& request) { + auto span = + internal::MakeSpan("dataplex_v1::DataplexServiceConnection::CreateAsset"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->CreateAsset(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +DataplexServiceTracingConnection::CreateAsset( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = + internal::MakeSpan("dataplex_v1::DataplexServiceConnection::CreateAsset"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->CreateAsset(ExperimentalTag{}, operation)); +} + future> DataplexServiceTracingConnection::UpdateAsset( google::cloud::dataplex::v1::UpdateAssetRequest const& request) { @@ -167,6 +314,27 @@ DataplexServiceTracingConnection::UpdateAsset( return internal::EndSpan(std::move(span), child_->UpdateAsset(request)); } +StatusOr +DataplexServiceTracingConnection::UpdateAsset( + ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::UpdateAssetRequest const& request) { + auto span = + internal::MakeSpan("dataplex_v1::DataplexServiceConnection::UpdateAsset"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->UpdateAsset(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +DataplexServiceTracingConnection::UpdateAsset( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = + internal::MakeSpan("dataplex_v1::DataplexServiceConnection::UpdateAsset"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->UpdateAsset(ExperimentalTag{}, operation)); +} + future> DataplexServiceTracingConnection::DeleteAsset( google::cloud::dataplex::v1::DeleteAssetRequest const& request) { @@ -176,6 +344,27 @@ DataplexServiceTracingConnection::DeleteAsset( return internal::EndSpan(std::move(span), child_->DeleteAsset(request)); } +StatusOr +DataplexServiceTracingConnection::DeleteAsset( + ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::DeleteAssetRequest const& request) { + auto span = + internal::MakeSpan("dataplex_v1::DataplexServiceConnection::DeleteAsset"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->DeleteAsset(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +DataplexServiceTracingConnection::DeleteAsset( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = + internal::MakeSpan("dataplex_v1::DataplexServiceConnection::DeleteAsset"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->DeleteAsset(ExperimentalTag{}, operation)); +} + StreamRange DataplexServiceTracingConnection::ListAssets( google::cloud::dataplex::v1::ListAssetsRequest request) { @@ -216,6 +405,27 @@ DataplexServiceTracingConnection::CreateTask( return internal::EndSpan(std::move(span), child_->CreateTask(request)); } +StatusOr +DataplexServiceTracingConnection::CreateTask( + ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::CreateTaskRequest const& request) { + auto span = + internal::MakeSpan("dataplex_v1::DataplexServiceConnection::CreateTask"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->CreateTask(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +DataplexServiceTracingConnection::CreateTask( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = + internal::MakeSpan("dataplex_v1::DataplexServiceConnection::CreateTask"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->CreateTask(ExperimentalTag{}, operation)); +} + future> DataplexServiceTracingConnection::UpdateTask( google::cloud::dataplex::v1::UpdateTaskRequest const& request) { @@ -225,6 +435,27 @@ DataplexServiceTracingConnection::UpdateTask( return internal::EndSpan(std::move(span), child_->UpdateTask(request)); } +StatusOr +DataplexServiceTracingConnection::UpdateTask( + ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::UpdateTaskRequest const& request) { + auto span = + internal::MakeSpan("dataplex_v1::DataplexServiceConnection::UpdateTask"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->UpdateTask(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +DataplexServiceTracingConnection::UpdateTask( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = + internal::MakeSpan("dataplex_v1::DataplexServiceConnection::UpdateTask"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->UpdateTask(ExperimentalTag{}, operation)); +} + future> DataplexServiceTracingConnection::DeleteTask( google::cloud::dataplex::v1::DeleteTaskRequest const& request) { @@ -234,6 +465,27 @@ DataplexServiceTracingConnection::DeleteTask( return internal::EndSpan(std::move(span), child_->DeleteTask(request)); } +StatusOr +DataplexServiceTracingConnection::DeleteTask( + ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::DeleteTaskRequest const& request) { + auto span = + internal::MakeSpan("dataplex_v1::DataplexServiceConnection::DeleteTask"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->DeleteTask(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +DataplexServiceTracingConnection::DeleteTask( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = + internal::MakeSpan("dataplex_v1::DataplexServiceConnection::DeleteTask"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->DeleteTask(ExperimentalTag{}, operation)); +} + StreamRange DataplexServiceTracingConnection::ListTasks( google::cloud::dataplex::v1::ListTasksRequest request) { @@ -300,6 +552,28 @@ DataplexServiceTracingConnection::CreateEnvironment( return internal::EndSpan(std::move(span), child_->CreateEnvironment(request)); } +StatusOr +DataplexServiceTracingConnection::CreateEnvironment( + ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::CreateEnvironmentRequest const& request) { + auto span = internal::MakeSpan( + "dataplex_v1::DataplexServiceConnection::CreateEnvironment"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->CreateEnvironment(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +DataplexServiceTracingConnection::CreateEnvironment( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "dataplex_v1::DataplexServiceConnection::CreateEnvironment"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->CreateEnvironment(ExperimentalTag{}, operation)); +} + future> DataplexServiceTracingConnection::UpdateEnvironment( google::cloud::dataplex::v1::UpdateEnvironmentRequest const& request) { @@ -309,6 +583,28 @@ DataplexServiceTracingConnection::UpdateEnvironment( return internal::EndSpan(std::move(span), child_->UpdateEnvironment(request)); } +StatusOr +DataplexServiceTracingConnection::UpdateEnvironment( + ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::UpdateEnvironmentRequest const& request) { + auto span = internal::MakeSpan( + "dataplex_v1::DataplexServiceConnection::UpdateEnvironment"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->UpdateEnvironment(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +DataplexServiceTracingConnection::UpdateEnvironment( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "dataplex_v1::DataplexServiceConnection::UpdateEnvironment"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->UpdateEnvironment(ExperimentalTag{}, operation)); +} + future> DataplexServiceTracingConnection::DeleteEnvironment( google::cloud::dataplex::v1::DeleteEnvironmentRequest const& request) { @@ -318,6 +614,28 @@ DataplexServiceTracingConnection::DeleteEnvironment( return internal::EndSpan(std::move(span), child_->DeleteEnvironment(request)); } +StatusOr +DataplexServiceTracingConnection::DeleteEnvironment( + ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::DeleteEnvironmentRequest const& request) { + auto span = internal::MakeSpan( + "dataplex_v1::DataplexServiceConnection::DeleteEnvironment"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->DeleteEnvironment(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +DataplexServiceTracingConnection::DeleteEnvironment( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "dataplex_v1::DataplexServiceConnection::DeleteEnvironment"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->DeleteEnvironment(ExperimentalTag{}, operation)); +} + StreamRange DataplexServiceTracingConnection::ListEnvironments( google::cloud::dataplex::v1::ListEnvironmentsRequest request) { diff --git a/google/cloud/dataplex/v1/internal/dataplex_tracing_connection.h b/google/cloud/dataplex/v1/internal/dataplex_tracing_connection.h index ca8dd6c436551..e0c93e25fa0e4 100644 --- a/google/cloud/dataplex/v1/internal/dataplex_tracing_connection.h +++ b/google/cloud/dataplex/v1/internal/dataplex_tracing_connection.h @@ -43,12 +43,36 @@ class DataplexServiceTracingConnection future> CreateLake( google::cloud::dataplex::v1::CreateLakeRequest const& request) override; + StatusOr CreateLake( + ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::CreateLakeRequest const& request) override; + + future> CreateLake( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateLake( google::cloud::dataplex::v1::UpdateLakeRequest const& request) override; + StatusOr UpdateLake( + ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::UpdateLakeRequest const& request) override; + + future> UpdateLake( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteLake( google::cloud::dataplex::v1::DeleteLakeRequest const& request) override; + StatusOr DeleteLake( + ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::DeleteLakeRequest const& request) override; + + future> DeleteLake( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListLakes( google::cloud::dataplex::v1::ListLakesRequest request) override; @@ -61,12 +85,36 @@ class DataplexServiceTracingConnection future> CreateZone( google::cloud::dataplex::v1::CreateZoneRequest const& request) override; + StatusOr CreateZone( + ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::CreateZoneRequest const& request) override; + + future> CreateZone( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateZone( google::cloud::dataplex::v1::UpdateZoneRequest const& request) override; + StatusOr UpdateZone( + ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::UpdateZoneRequest const& request) override; + + future> UpdateZone( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteZone( google::cloud::dataplex::v1::DeleteZoneRequest const& request) override; + StatusOr DeleteZone( + ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::DeleteZoneRequest const& request) override; + + future> DeleteZone( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListZones( google::cloud::dataplex::v1::ListZonesRequest request) override; @@ -79,12 +127,36 @@ class DataplexServiceTracingConnection future> CreateAsset( google::cloud::dataplex::v1::CreateAssetRequest const& request) override; + StatusOr CreateAsset( + ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::CreateAssetRequest const& request) override; + + future> CreateAsset( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateAsset( google::cloud::dataplex::v1::UpdateAssetRequest const& request) override; + StatusOr UpdateAsset( + ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::UpdateAssetRequest const& request) override; + + future> UpdateAsset( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteAsset( google::cloud::dataplex::v1::DeleteAssetRequest const& request) override; + StatusOr DeleteAsset( + ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::DeleteAssetRequest const& request) override; + + future> DeleteAsset( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListAssets( google::cloud::dataplex::v1::ListAssetsRequest request) override; @@ -97,12 +169,36 @@ class DataplexServiceTracingConnection future> CreateTask( google::cloud::dataplex::v1::CreateTaskRequest const& request) override; + StatusOr CreateTask( + ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::CreateTaskRequest const& request) override; + + future> CreateTask( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateTask( google::cloud::dataplex::v1::UpdateTaskRequest const& request) override; + StatusOr UpdateTask( + ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::UpdateTaskRequest const& request) override; + + future> UpdateTask( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteTask( google::cloud::dataplex::v1::DeleteTaskRequest const& request) override; + StatusOr DeleteTask( + ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::DeleteTaskRequest const& request) override; + + future> DeleteTask( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListTasks( google::cloud::dataplex::v1::ListTasksRequest request) override; @@ -125,14 +221,41 @@ class DataplexServiceTracingConnection google::cloud::dataplex::v1::CreateEnvironmentRequest const& request) override; + StatusOr CreateEnvironment( + ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::CreateEnvironmentRequest const& request) + override; + + future> CreateEnvironment( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateEnvironment( google::cloud::dataplex::v1::UpdateEnvironmentRequest const& request) override; + StatusOr UpdateEnvironment( + ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::UpdateEnvironmentRequest const& request) + override; + + future> UpdateEnvironment( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteEnvironment(google::cloud::dataplex::v1::DeleteEnvironmentRequest const& request) override; + StatusOr DeleteEnvironment( + ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::DeleteEnvironmentRequest const& request) + override; + + future> + DeleteEnvironment(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListEnvironments( google::cloud::dataplex::v1::ListEnvironmentsRequest request) override; diff --git a/google/cloud/dataplex/v1/metadata_connection.h b/google/cloud/dataplex/v1/metadata_connection.h index 9838e701e1670..5268ede100db6 100644 --- a/google/cloud/dataplex/v1/metadata_connection.h +++ b/google/cloud/dataplex/v1/metadata_connection.h @@ -22,6 +22,7 @@ #include "google/cloud/dataplex/v1/internal/metadata_retry_traits.h" #include "google/cloud/dataplex/v1/metadata_connection_idempotency_policy.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/internal/retry_policy_impl.h" #include "google/cloud/options.h" #include "google/cloud/status_or.h" diff --git a/google/cloud/dataplex/v1/mocks/mock_catalog_connection.h b/google/cloud/dataplex/v1/mocks/mock_catalog_connection.h index 14e7647df3b56..716f3a63f440e 100644 --- a/google/cloud/dataplex/v1/mocks/mock_catalog_connection.h +++ b/google/cloud/dataplex/v1/mocks/mock_catalog_connection.h @@ -52,17 +52,53 @@ class MockCatalogServiceConnection (google::cloud::dataplex::v1::CreateEntryTypeRequest const& request), (override)); + MOCK_METHOD( + StatusOr, CreateEntryType, + (ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::CreateEntryTypeRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateEntryType, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, UpdateEntryType, (google::cloud::dataplex::v1::UpdateEntryTypeRequest const& request), (override)); + MOCK_METHOD( + StatusOr, UpdateEntryType, + (ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::UpdateEntryTypeRequest const& request), + (override)); + + MOCK_METHOD(future>, + UpdateEntryType, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteEntryType, (google::cloud::dataplex::v1::DeleteEntryTypeRequest const& request), (override)); + MOCK_METHOD( + StatusOr, DeleteEntryType, + (ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::DeleteEntryTypeRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteEntryType, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD((StreamRange), ListEntryTypes, (google::cloud::dataplex::v1::ListEntryTypesRequest request), @@ -78,18 +114,54 @@ class MockCatalogServiceConnection (google::cloud::dataplex::v1::CreateAspectTypeRequest const& request), (override)); + MOCK_METHOD( + StatusOr, CreateAspectType, + (ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::CreateAspectTypeRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateAspectType, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, UpdateAspectType, (google::cloud::dataplex::v1::UpdateAspectTypeRequest const& request), (override)); + MOCK_METHOD( + StatusOr, UpdateAspectType, + (ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::UpdateAspectTypeRequest const& request), + (override)); + + MOCK_METHOD(future>, + UpdateAspectType, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteAspectType, (google::cloud::dataplex::v1::DeleteAspectTypeRequest const& request), (override)); + MOCK_METHOD( + StatusOr, DeleteAspectType, + (ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::DeleteAspectTypeRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteAspectType, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD((StreamRange), ListAspectTypes, (google::cloud::dataplex::v1::ListAspectTypesRequest request), @@ -106,18 +178,54 @@ class MockCatalogServiceConnection (google::cloud::dataplex::v1::CreateEntryGroupRequest const& request), (override)); + MOCK_METHOD( + StatusOr, CreateEntryGroup, + (ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::CreateEntryGroupRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateEntryGroup, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, UpdateEntryGroup, (google::cloud::dataplex::v1::UpdateEntryGroupRequest const& request), (override)); + MOCK_METHOD( + StatusOr, UpdateEntryGroup, + (ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::UpdateEntryGroupRequest const& request), + (override)); + + MOCK_METHOD(future>, + UpdateEntryGroup, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteEntryGroup, (google::cloud::dataplex::v1::DeleteEntryGroupRequest const& request), (override)); + MOCK_METHOD( + StatusOr, DeleteEntryGroup, + (ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::DeleteEntryGroupRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteEntryGroup, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD((StreamRange), ListEntryGroups, (google::cloud::dataplex::v1::ListEntryGroupsRequest request), diff --git a/google/cloud/dataplex/v1/mocks/mock_data_scan_connection.h b/google/cloud/dataplex/v1/mocks/mock_data_scan_connection.h index 626a037f4aeef..47f0f32873742 100644 --- a/google/cloud/dataplex/v1/mocks/mock_data_scan_connection.h +++ b/google/cloud/dataplex/v1/mocks/mock_data_scan_connection.h @@ -52,17 +52,53 @@ class MockDataScanServiceConnection (google::cloud::dataplex::v1::CreateDataScanRequest const& request), (override)); + MOCK_METHOD( + StatusOr, CreateDataScan, + (ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::CreateDataScanRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateDataScan, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, UpdateDataScan, (google::cloud::dataplex::v1::UpdateDataScanRequest const& request), (override)); + MOCK_METHOD( + StatusOr, UpdateDataScan, + (ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::UpdateDataScanRequest const& request), + (override)); + + MOCK_METHOD(future>, + UpdateDataScan, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteDataScan, (google::cloud::dataplex::v1::DeleteDataScanRequest const& request), (override)); + MOCK_METHOD( + StatusOr, DeleteDataScan, + (ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::DeleteDataScanRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteDataScan, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(StatusOr, GetDataScan, (google::cloud::dataplex::v1::GetDataScanRequest const& request), (override)); diff --git a/google/cloud/dataplex/v1/mocks/mock_data_taxonomy_connection.h b/google/cloud/dataplex/v1/mocks/mock_data_taxonomy_connection.h index ae8569cef6b60..082fc1bab0016 100644 --- a/google/cloud/dataplex/v1/mocks/mock_data_taxonomy_connection.h +++ b/google/cloud/dataplex/v1/mocks/mock_data_taxonomy_connection.h @@ -53,18 +53,54 @@ class MockDataTaxonomyServiceConnection (google::cloud::dataplex::v1::CreateDataTaxonomyRequest const& request), (override)); + MOCK_METHOD( + StatusOr, CreateDataTaxonomy, + (ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::CreateDataTaxonomyRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateDataTaxonomy, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, UpdateDataTaxonomy, (google::cloud::dataplex::v1::UpdateDataTaxonomyRequest const& request), (override)); + MOCK_METHOD( + StatusOr, UpdateDataTaxonomy, + (ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::UpdateDataTaxonomyRequest const& request), + (override)); + + MOCK_METHOD(future>, + UpdateDataTaxonomy, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteDataTaxonomy, (google::cloud::dataplex::v1::DeleteDataTaxonomyRequest const& request), (override)); + MOCK_METHOD( + StatusOr, DeleteDataTaxonomy, + (ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::DeleteDataTaxonomyRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteDataTaxonomy, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD((StreamRange), ListDataTaxonomies, (google::cloud::dataplex::v1::ListDataTaxonomiesRequest request), @@ -82,6 +118,19 @@ class MockDataTaxonomyServiceConnection request), (override)); + MOCK_METHOD( + StatusOr, CreateDataAttributeBinding, + (ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::CreateDataAttributeBindingRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + CreateDataAttributeBinding, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, UpdateDataAttributeBinding, @@ -89,6 +138,19 @@ class MockDataTaxonomyServiceConnection request), (override)); + MOCK_METHOD( + StatusOr, UpdateDataAttributeBinding, + (ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::UpdateDataAttributeBindingRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + UpdateDataAttributeBinding, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteDataAttributeBinding, @@ -96,6 +158,19 @@ class MockDataTaxonomyServiceConnection request), (override)); + MOCK_METHOD( + StatusOr, DeleteDataAttributeBinding, + (ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::DeleteDataAttributeBindingRequest const& + request), + (override)); + + MOCK_METHOD(future>, + DeleteDataAttributeBinding, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( (StreamRange), ListDataAttributeBindings, @@ -115,18 +190,54 @@ class MockDataTaxonomyServiceConnection (google::cloud::dataplex::v1::CreateDataAttributeRequest const& request), (override)); + MOCK_METHOD( + StatusOr, CreateDataAttribute, + (ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::CreateDataAttributeRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateDataAttribute, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, UpdateDataAttribute, (google::cloud::dataplex::v1::UpdateDataAttributeRequest const& request), (override)); + MOCK_METHOD( + StatusOr, UpdateDataAttribute, + (ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::UpdateDataAttributeRequest const& request), + (override)); + + MOCK_METHOD(future>, + UpdateDataAttribute, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteDataAttribute, (google::cloud::dataplex::v1::DeleteDataAttributeRequest const& request), (override)); + MOCK_METHOD( + StatusOr, DeleteDataAttribute, + (ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::DeleteDataAttributeRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteDataAttribute, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD((StreamRange), ListDataAttributes, (google::cloud::dataplex::v1::ListDataAttributesRequest request), diff --git a/google/cloud/dataplex/v1/mocks/mock_dataplex_connection.h b/google/cloud/dataplex/v1/mocks/mock_dataplex_connection.h index ce793b5ea387d..b2dfaccafadba 100644 --- a/google/cloud/dataplex/v1/mocks/mock_dataplex_connection.h +++ b/google/cloud/dataplex/v1/mocks/mock_dataplex_connection.h @@ -51,15 +51,46 @@ class MockDataplexServiceConnection (google::cloud::dataplex::v1::CreateLakeRequest const& request), (override)); + MOCK_METHOD(StatusOr, CreateLake, + (ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::CreateLakeRequest const& request), + (override)); + + MOCK_METHOD(future>, CreateLake, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, UpdateLake, (google::cloud::dataplex::v1::UpdateLakeRequest const& request), (override)); + MOCK_METHOD(StatusOr, UpdateLake, + (ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::UpdateLakeRequest const& request), + (override)); + + MOCK_METHOD(future>, UpdateLake, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, DeleteLake, (google::cloud::dataplex::v1::DeleteLakeRequest const& request), (override)); + MOCK_METHOD(StatusOr, DeleteLake, + (ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::DeleteLakeRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteLake, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD((StreamRange), ListLakes, (google::cloud::dataplex::v1::ListLakesRequest request), (override)); @@ -77,15 +108,46 @@ class MockDataplexServiceConnection (google::cloud::dataplex::v1::CreateZoneRequest const& request), (override)); + MOCK_METHOD(StatusOr, CreateZone, + (ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::CreateZoneRequest const& request), + (override)); + + MOCK_METHOD(future>, CreateZone, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, UpdateZone, (google::cloud::dataplex::v1::UpdateZoneRequest const& request), (override)); + MOCK_METHOD(StatusOr, UpdateZone, + (ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::UpdateZoneRequest const& request), + (override)); + + MOCK_METHOD(future>, UpdateZone, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, DeleteZone, (google::cloud::dataplex::v1::DeleteZoneRequest const& request), (override)); + MOCK_METHOD(StatusOr, DeleteZone, + (ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::DeleteZoneRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteZone, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD((StreamRange), ListZones, (google::cloud::dataplex::v1::ListZonesRequest request), (override)); @@ -103,15 +165,46 @@ class MockDataplexServiceConnection (google::cloud::dataplex::v1::CreateAssetRequest const& request), (override)); + MOCK_METHOD(StatusOr, CreateAsset, + (ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::CreateAssetRequest const& request), + (override)); + + MOCK_METHOD(future>, CreateAsset, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, UpdateAsset, (google::cloud::dataplex::v1::UpdateAssetRequest const& request), (override)); + MOCK_METHOD(StatusOr, UpdateAsset, + (ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::UpdateAssetRequest const& request), + (override)); + + MOCK_METHOD(future>, UpdateAsset, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, DeleteAsset, (google::cloud::dataplex::v1::DeleteAssetRequest const& request), (override)); + MOCK_METHOD(StatusOr, DeleteAsset, + (ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::DeleteAssetRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteAsset, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD((StreamRange), ListAssets, (google::cloud::dataplex::v1::ListAssetsRequest request), (override)); @@ -129,15 +222,46 @@ class MockDataplexServiceConnection (google::cloud::dataplex::v1::CreateTaskRequest const& request), (override)); + MOCK_METHOD(StatusOr, CreateTask, + (ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::CreateTaskRequest const& request), + (override)); + + MOCK_METHOD(future>, CreateTask, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, UpdateTask, (google::cloud::dataplex::v1::UpdateTaskRequest const& request), (override)); + MOCK_METHOD(StatusOr, UpdateTask, + (ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::UpdateTaskRequest const& request), + (override)); + + MOCK_METHOD(future>, UpdateTask, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, DeleteTask, (google::cloud::dataplex::v1::DeleteTaskRequest const& request), (override)); + MOCK_METHOD(StatusOr, DeleteTask, + (ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::DeleteTaskRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteTask, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD((StreamRange), ListTasks, (google::cloud::dataplex::v1::ListTasksRequest request), (override)); @@ -168,18 +292,54 @@ class MockDataplexServiceConnection (google::cloud::dataplex::v1::CreateEnvironmentRequest const& request), (override)); + MOCK_METHOD( + StatusOr, CreateEnvironment, + (ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::CreateEnvironmentRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateEnvironment, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, UpdateEnvironment, (google::cloud::dataplex::v1::UpdateEnvironmentRequest const& request), (override)); + MOCK_METHOD( + StatusOr, UpdateEnvironment, + (ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::UpdateEnvironmentRequest const& request), + (override)); + + MOCK_METHOD(future>, + UpdateEnvironment, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteEnvironment, (google::cloud::dataplex::v1::DeleteEnvironmentRequest const& request), (override)); + MOCK_METHOD( + StatusOr, DeleteEnvironment, + (ExperimentalTag, NoAwaitTag, + google::cloud::dataplex::v1::DeleteEnvironmentRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteEnvironment, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD((StreamRange), ListEnvironments, (google::cloud::dataplex::v1::ListEnvironmentsRequest request), diff --git a/google/cloud/dataproc/v1/autoscaling_policy_connection.h b/google/cloud/dataproc/v1/autoscaling_policy_connection.h index 84d4b14706311..f85427b218570 100644 --- a/google/cloud/dataproc/v1/autoscaling_policy_connection.h +++ b/google/cloud/dataproc/v1/autoscaling_policy_connection.h @@ -22,6 +22,7 @@ #include "google/cloud/dataproc/v1/autoscaling_policy_connection_idempotency_policy.h" #include "google/cloud/dataproc/v1/internal/autoscaling_policy_retry_traits.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/internal/retry_policy_impl.h" #include "google/cloud/options.h" #include "google/cloud/status_or.h" diff --git a/google/cloud/dataproc/v1/batch_controller_connection.cc b/google/cloud/dataproc/v1/batch_controller_connection.cc index 3adf855c8001e..4db38a1203a94 100644 --- a/google/cloud/dataproc/v1/batch_controller_connection.cc +++ b/google/cloud/dataproc/v1/batch_controller_connection.cc @@ -46,6 +46,21 @@ BatchControllerConnection::CreateBatch( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr BatchControllerConnection::CreateBatch( + ExperimentalTag, NoAwaitTag, + google::cloud::dataproc::v1::CreateBatchRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +BatchControllerConnection::CreateBatch(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr BatchControllerConnection::GetBatch( google::cloud::dataproc::v1::GetBatchRequest const&) { diff --git a/google/cloud/dataproc/v1/batch_controller_connection.h b/google/cloud/dataproc/v1/batch_controller_connection.h index 1540addc2f57c..eb9b1bd134b49 100644 --- a/google/cloud/dataproc/v1/batch_controller_connection.h +++ b/google/cloud/dataproc/v1/batch_controller_connection.h @@ -22,8 +22,10 @@ #include "google/cloud/dataproc/v1/batch_controller_connection_idempotency_policy.h" #include "google/cloud/dataproc/v1/internal/batch_controller_retry_traits.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/internal/retry_policy_impl.h" +#include "google/cloud/no_await_tag.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" #include "google/cloud/status_or.h" @@ -191,6 +193,13 @@ class BatchControllerConnection { virtual future> CreateBatch( google::cloud::dataproc::v1::CreateBatchRequest const& request); + virtual StatusOr CreateBatch( + ExperimentalTag, NoAwaitTag, + google::cloud::dataproc::v1::CreateBatchRequest const& request); + + virtual future> CreateBatch( + ExperimentalTag, google::longrunning::Operation const& operation); + virtual StatusOr GetBatch( google::cloud::dataproc::v1::GetBatchRequest const& request); diff --git a/google/cloud/dataproc/v1/cluster_controller_connection.cc b/google/cloud/dataproc/v1/cluster_controller_connection.cc index ff7c5d5231129..abec4328aeeb4 100644 --- a/google/cloud/dataproc/v1/cluster_controller_connection.cc +++ b/google/cloud/dataproc/v1/cluster_controller_connection.cc @@ -46,6 +46,22 @@ ClusterControllerConnection::CreateCluster( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +ClusterControllerConnection::CreateCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::dataproc::v1::CreateClusterRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +ClusterControllerConnection::CreateCluster( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> ClusterControllerConnection::UpdateCluster( google::cloud::dataproc::v1::UpdateClusterRequest const&) { @@ -54,6 +70,22 @@ ClusterControllerConnection::UpdateCluster( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +ClusterControllerConnection::UpdateCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::dataproc::v1::UpdateClusterRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +ClusterControllerConnection::UpdateCluster( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> ClusterControllerConnection::StopCluster( google::cloud::dataproc::v1::StopClusterRequest const&) { @@ -62,6 +94,22 @@ ClusterControllerConnection::StopCluster( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +ClusterControllerConnection::StopCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::dataproc::v1::StopClusterRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +ClusterControllerConnection::StopCluster( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> ClusterControllerConnection::StartCluster( google::cloud::dataproc::v1::StartClusterRequest const&) { @@ -70,6 +118,22 @@ ClusterControllerConnection::StartCluster( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +ClusterControllerConnection::StartCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::dataproc::v1::StartClusterRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +ClusterControllerConnection::StartCluster( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> ClusterControllerConnection::DeleteCluster( google::cloud::dataproc::v1::DeleteClusterRequest const&) { @@ -78,6 +142,22 @@ ClusterControllerConnection::DeleteCluster( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +ClusterControllerConnection::DeleteCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::dataproc::v1::DeleteClusterRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +ClusterControllerConnection::DeleteCluster( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr ClusterControllerConnection::GetCluster( google::cloud::dataproc::v1::GetClusterRequest const&) { @@ -100,6 +180,22 @@ ClusterControllerConnection::DiagnoseCluster( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +ClusterControllerConnection::DiagnoseCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::dataproc::v1::DiagnoseClusterRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +ClusterControllerConnection::DiagnoseCluster( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + std::shared_ptr MakeClusterControllerConnection( std::string const& location, Options options) { internal::CheckExpectedOptions> CreateCluster( google::cloud::dataproc::v1::CreateClusterRequest const& request); + virtual StatusOr CreateCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::dataproc::v1::CreateClusterRequest const& request); + + virtual future> CreateCluster( + ExperimentalTag, google::longrunning::Operation const& operation); + virtual future> UpdateCluster( google::cloud::dataproc::v1::UpdateClusterRequest const& request); + virtual StatusOr UpdateCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::dataproc::v1::UpdateClusterRequest const& request); + + virtual future> UpdateCluster( + ExperimentalTag, google::longrunning::Operation const& operation); + virtual future> StopCluster( google::cloud::dataproc::v1::StopClusterRequest const& request); + virtual StatusOr StopCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::dataproc::v1::StopClusterRequest const& request); + + virtual future> StopCluster( + ExperimentalTag, google::longrunning::Operation const& operation); + virtual future> StartCluster( google::cloud::dataproc::v1::StartClusterRequest const& request); + virtual StatusOr StartCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::dataproc::v1::StartClusterRequest const& request); + + virtual future> StartCluster( + ExperimentalTag, google::longrunning::Operation const& operation); + virtual future< StatusOr> DeleteCluster( google::cloud::dataproc::v1::DeleteClusterRequest const& request); + virtual StatusOr DeleteCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::dataproc::v1::DeleteClusterRequest const& request); + + virtual future< + StatusOr> + DeleteCluster(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StatusOr GetCluster( google::cloud::dataproc::v1::GetClusterRequest const& request); @@ -214,6 +253,14 @@ class ClusterControllerConnection { virtual future> DiagnoseCluster( google::cloud::dataproc::v1::DiagnoseClusterRequest const& request); + + virtual StatusOr DiagnoseCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::dataproc::v1::DiagnoseClusterRequest const& request); + + virtual future> + DiagnoseCluster(ExperimentalTag, + google::longrunning::Operation const& operation); }; /** diff --git a/google/cloud/dataproc/v1/internal/batch_controller_connection_impl.cc b/google/cloud/dataproc/v1/internal/batch_controller_connection_impl.cc index c828c545ace07..0fb3616f3574d 100644 --- a/google/cloud/dataproc/v1/internal/batch_controller_connection_impl.cc +++ b/google/cloud/dataproc/v1/internal/batch_controller_connection_impl.cc @@ -105,6 +105,58 @@ BatchControllerConnectionImpl::CreateBatch( polling_policy(*current), __func__); } +StatusOr +BatchControllerConnectionImpl::CreateBatch( + ExperimentalTag, NoAwaitTag, + google::cloud::dataproc::v1::CreateBatchRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateBatch(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::dataproc::v1::CreateBatchRequest const& request) { + return stub_->CreateBatch(context, options, request); + }, + *current, request, __func__); +} + +future> +BatchControllerConnectionImpl::CreateBatch( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to CreateBatch", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::dataproc::v1::Batch>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::dataproc::v1::Batch>, + polling_policy(*current), __func__); +} + StatusOr BatchControllerConnectionImpl::GetBatch( google::cloud::dataproc::v1::GetBatchRequest const& request) { diff --git a/google/cloud/dataproc/v1/internal/batch_controller_connection_impl.h b/google/cloud/dataproc/v1/internal/batch_controller_connection_impl.h index f050e52df68cc..ad524a0ce73ef 100644 --- a/google/cloud/dataproc/v1/internal/batch_controller_connection_impl.h +++ b/google/cloud/dataproc/v1/internal/batch_controller_connection_impl.h @@ -55,6 +55,14 @@ class BatchControllerConnectionImpl future> CreateBatch( google::cloud::dataproc::v1::CreateBatchRequest const& request) override; + StatusOr CreateBatch( + ExperimentalTag, NoAwaitTag, + google::cloud::dataproc::v1::CreateBatchRequest const& request) override; + + future> CreateBatch( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetBatch( google::cloud::dataproc::v1::GetBatchRequest const& request) override; diff --git a/google/cloud/dataproc/v1/internal/batch_controller_tracing_connection.cc b/google/cloud/dataproc/v1/internal/batch_controller_tracing_connection.cc index 3bace45943950..56a3a6e7c41b4 100644 --- a/google/cloud/dataproc/v1/internal/batch_controller_tracing_connection.cc +++ b/google/cloud/dataproc/v1/internal/batch_controller_tracing_connection.cc @@ -42,6 +42,27 @@ BatchControllerTracingConnection::CreateBatch( return internal::EndSpan(std::move(span), child_->CreateBatch(request)); } +StatusOr +BatchControllerTracingConnection::CreateBatch( + ExperimentalTag, NoAwaitTag, + google::cloud::dataproc::v1::CreateBatchRequest const& request) { + auto span = + internal::MakeSpan("dataproc_v1::BatchControllerConnection::CreateBatch"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->CreateBatch(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +BatchControllerTracingConnection::CreateBatch( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = + internal::MakeSpan("dataproc_v1::BatchControllerConnection::CreateBatch"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->CreateBatch(ExperimentalTag{}, operation)); +} + StatusOr BatchControllerTracingConnection::GetBatch( google::cloud::dataproc::v1::GetBatchRequest const& request) { diff --git a/google/cloud/dataproc/v1/internal/batch_controller_tracing_connection.h b/google/cloud/dataproc/v1/internal/batch_controller_tracing_connection.h index 79f0260997608..8a3f224488f8f 100644 --- a/google/cloud/dataproc/v1/internal/batch_controller_tracing_connection.h +++ b/google/cloud/dataproc/v1/internal/batch_controller_tracing_connection.h @@ -43,6 +43,14 @@ class BatchControllerTracingConnection future> CreateBatch( google::cloud::dataproc::v1::CreateBatchRequest const& request) override; + StatusOr CreateBatch( + ExperimentalTag, NoAwaitTag, + google::cloud::dataproc::v1::CreateBatchRequest const& request) override; + + future> CreateBatch( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetBatch( google::cloud::dataproc::v1::GetBatchRequest const& request) override; diff --git a/google/cloud/dataproc/v1/internal/cluster_controller_connection_impl.cc b/google/cloud/dataproc/v1/internal/cluster_controller_connection_impl.cc index 0969e5ab93b73..9864d3f4237c6 100644 --- a/google/cloud/dataproc/v1/internal/cluster_controller_connection_impl.cc +++ b/google/cloud/dataproc/v1/internal/cluster_controller_connection_impl.cc @@ -106,6 +106,58 @@ ClusterControllerConnectionImpl::CreateCluster( polling_policy(*current), __func__); } +StatusOr +ClusterControllerConnectionImpl::CreateCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::dataproc::v1::CreateClusterRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateCluster(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::dataproc::v1::CreateClusterRequest const& request) { + return stub_->CreateCluster(context, options, request); + }, + *current, request, __func__); +} + +future> +ClusterControllerConnectionImpl::CreateCluster( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to CreateCluster", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::dataproc::v1::Cluster>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::dataproc::v1::Cluster>, + polling_policy(*current), __func__); +} + future> ClusterControllerConnectionImpl::UpdateCluster( google::cloud::dataproc::v1::UpdateClusterRequest const& request) { @@ -145,6 +197,58 @@ ClusterControllerConnectionImpl::UpdateCluster( polling_policy(*current), __func__); } +StatusOr +ClusterControllerConnectionImpl::UpdateCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::dataproc::v1::UpdateClusterRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UpdateCluster(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::dataproc::v1::UpdateClusterRequest const& request) { + return stub_->UpdateCluster(context, options, request); + }, + *current, request, __func__); +} + +future> +ClusterControllerConnectionImpl::UpdateCluster( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to UpdateCluster", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::dataproc::v1::Cluster>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::dataproc::v1::Cluster>, + polling_policy(*current), __func__); +} + future> ClusterControllerConnectionImpl::StopCluster( google::cloud::dataproc::v1::StopClusterRequest const& request) { @@ -184,6 +288,58 @@ ClusterControllerConnectionImpl::StopCluster( polling_policy(*current), __func__); } +StatusOr +ClusterControllerConnectionImpl::StopCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::dataproc::v1::StopClusterRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->StopCluster(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::dataproc::v1::StopClusterRequest const& request) { + return stub_->StopCluster(context, options, request); + }, + *current, request, __func__); +} + +future> +ClusterControllerConnectionImpl::StopCluster( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to StopCluster", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::dataproc::v1::Cluster>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::dataproc::v1::Cluster>, + polling_policy(*current), __func__); +} + future> ClusterControllerConnectionImpl::StartCluster( google::cloud::dataproc::v1::StartClusterRequest const& request) { @@ -223,6 +379,58 @@ ClusterControllerConnectionImpl::StartCluster( polling_policy(*current), __func__); } +StatusOr +ClusterControllerConnectionImpl::StartCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::dataproc::v1::StartClusterRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->StartCluster(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::dataproc::v1::StartClusterRequest const& request) { + return stub_->StartCluster(context, options, request); + }, + *current, request, __func__); +} + +future> +ClusterControllerConnectionImpl::StartCluster( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to StartCluster", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::dataproc::v1::Cluster>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::dataproc::v1::Cluster>, + polling_policy(*current), __func__); +} + future> ClusterControllerConnectionImpl::DeleteCluster( google::cloud::dataproc::v1::DeleteClusterRequest const& request) { @@ -262,6 +470,59 @@ ClusterControllerConnectionImpl::DeleteCluster( polling_policy(*current), __func__); } +StatusOr +ClusterControllerConnectionImpl::DeleteCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::dataproc::v1::DeleteClusterRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteCluster(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::dataproc::v1::DeleteClusterRequest const& request) { + return stub_->DeleteCluster(context, options, request); + }, + *current, request, __func__); +} + +future> +ClusterControllerConnectionImpl::DeleteCluster( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteCluster", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::dataproc::v1::ClusterOperationMetadata>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::cloud::dataproc::v1::ClusterOperationMetadata>, + polling_policy(*current), __func__); +} + StatusOr ClusterControllerConnectionImpl::GetCluster( google::cloud::dataproc::v1::GetClusterRequest const& request) { @@ -349,6 +610,60 @@ ClusterControllerConnectionImpl::DiagnoseCluster( polling_policy(*current), __func__); } +StatusOr +ClusterControllerConnectionImpl::DiagnoseCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::dataproc::v1::DiagnoseClusterRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DiagnoseCluster(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::dataproc::v1::DiagnoseClusterRequest const& request) { + return stub_->DiagnoseCluster(context, options, request); + }, + *current, request, __func__); +} + +future> +ClusterControllerConnectionImpl::DiagnoseCluster( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DiagnoseCluster", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::dataproc::v1::DiagnoseClusterResults>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::dataproc::v1::DiagnoseClusterResults>, + polling_policy(*current), __func__); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace dataproc_v1_internal } // namespace cloud diff --git a/google/cloud/dataproc/v1/internal/cluster_controller_connection_impl.h b/google/cloud/dataproc/v1/internal/cluster_controller_connection_impl.h index 18f73fbb7b001..e725ce98d9a55 100644 --- a/google/cloud/dataproc/v1/internal/cluster_controller_connection_impl.h +++ b/google/cloud/dataproc/v1/internal/cluster_controller_connection_impl.h @@ -56,20 +56,63 @@ class ClusterControllerConnectionImpl google::cloud::dataproc::v1::CreateClusterRequest const& request) override; + StatusOr CreateCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::dataproc::v1::CreateClusterRequest const& request) + override; + + future> CreateCluster( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateCluster( google::cloud::dataproc::v1::UpdateClusterRequest const& request) override; + StatusOr UpdateCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::dataproc::v1::UpdateClusterRequest const& request) + override; + + future> UpdateCluster( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> StopCluster( google::cloud::dataproc::v1::StopClusterRequest const& request) override; + StatusOr StopCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::dataproc::v1::StopClusterRequest const& request) override; + + future> StopCluster( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> StartCluster( google::cloud::dataproc::v1::StartClusterRequest const& request) override; + StatusOr StartCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::dataproc::v1::StartClusterRequest const& request) override; + + future> StartCluster( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteCluster(google::cloud::dataproc::v1::DeleteClusterRequest const& request) override; + StatusOr DeleteCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::dataproc::v1::DeleteClusterRequest const& request) + override; + + future> + DeleteCluster(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetCluster( google::cloud::dataproc::v1::GetClusterRequest const& request) override; @@ -80,6 +123,15 @@ class ClusterControllerConnectionImpl DiagnoseCluster(google::cloud::dataproc::v1::DiagnoseClusterRequest const& request) override; + StatusOr DiagnoseCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::dataproc::v1::DiagnoseClusterRequest const& request) + override; + + future> + DiagnoseCluster(ExperimentalTag, + google::longrunning::Operation const& operation) override; + private: std::unique_ptr background_; std::shared_ptr stub_; diff --git a/google/cloud/dataproc/v1/internal/cluster_controller_tracing_connection.cc b/google/cloud/dataproc/v1/internal/cluster_controller_tracing_connection.cc index ea473b84e6ef8..1a6202f885f90 100644 --- a/google/cloud/dataproc/v1/internal/cluster_controller_tracing_connection.cc +++ b/google/cloud/dataproc/v1/internal/cluster_controller_tracing_connection.cc @@ -42,6 +42,27 @@ ClusterControllerTracingConnection::CreateCluster( return internal::EndSpan(std::move(span), child_->CreateCluster(request)); } +StatusOr +ClusterControllerTracingConnection::CreateCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::dataproc::v1::CreateClusterRequest const& request) { + auto span = internal::MakeSpan( + "dataproc_v1::ClusterControllerConnection::CreateCluster"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->CreateCluster(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +ClusterControllerTracingConnection::CreateCluster( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "dataproc_v1::ClusterControllerConnection::CreateCluster"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->CreateCluster(ExperimentalTag{}, operation)); +} + future> ClusterControllerTracingConnection::UpdateCluster( google::cloud::dataproc::v1::UpdateClusterRequest const& request) { @@ -51,6 +72,27 @@ ClusterControllerTracingConnection::UpdateCluster( return internal::EndSpan(std::move(span), child_->UpdateCluster(request)); } +StatusOr +ClusterControllerTracingConnection::UpdateCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::dataproc::v1::UpdateClusterRequest const& request) { + auto span = internal::MakeSpan( + "dataproc_v1::ClusterControllerConnection::UpdateCluster"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->UpdateCluster(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +ClusterControllerTracingConnection::UpdateCluster( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "dataproc_v1::ClusterControllerConnection::UpdateCluster"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->UpdateCluster(ExperimentalTag{}, operation)); +} + future> ClusterControllerTracingConnection::StopCluster( google::cloud::dataproc::v1::StopClusterRequest const& request) { @@ -60,6 +102,27 @@ ClusterControllerTracingConnection::StopCluster( return internal::EndSpan(std::move(span), child_->StopCluster(request)); } +StatusOr +ClusterControllerTracingConnection::StopCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::dataproc::v1::StopClusterRequest const& request) { + auto span = internal::MakeSpan( + "dataproc_v1::ClusterControllerConnection::StopCluster"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->StopCluster(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +ClusterControllerTracingConnection::StopCluster( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "dataproc_v1::ClusterControllerConnection::StopCluster"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->StopCluster(ExperimentalTag{}, operation)); +} + future> ClusterControllerTracingConnection::StartCluster( google::cloud::dataproc::v1::StartClusterRequest const& request) { @@ -69,6 +132,27 @@ ClusterControllerTracingConnection::StartCluster( return internal::EndSpan(std::move(span), child_->StartCluster(request)); } +StatusOr +ClusterControllerTracingConnection::StartCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::dataproc::v1::StartClusterRequest const& request) { + auto span = internal::MakeSpan( + "dataproc_v1::ClusterControllerConnection::StartCluster"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->StartCluster(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +ClusterControllerTracingConnection::StartCluster( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "dataproc_v1::ClusterControllerConnection::StartCluster"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->StartCluster(ExperimentalTag{}, operation)); +} + future> ClusterControllerTracingConnection::DeleteCluster( google::cloud::dataproc::v1::DeleteClusterRequest const& request) { @@ -78,6 +162,27 @@ ClusterControllerTracingConnection::DeleteCluster( return internal::EndSpan(std::move(span), child_->DeleteCluster(request)); } +StatusOr +ClusterControllerTracingConnection::DeleteCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::dataproc::v1::DeleteClusterRequest const& request) { + auto span = internal::MakeSpan( + "dataproc_v1::ClusterControllerConnection::DeleteCluster"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->DeleteCluster(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +ClusterControllerTracingConnection::DeleteCluster( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "dataproc_v1::ClusterControllerConnection::DeleteCluster"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->DeleteCluster(ExperimentalTag{}, operation)); +} + StatusOr ClusterControllerTracingConnection::GetCluster( google::cloud::dataproc::v1::GetClusterRequest const& request) { @@ -107,6 +212,27 @@ ClusterControllerTracingConnection::DiagnoseCluster( return internal::EndSpan(std::move(span), child_->DiagnoseCluster(request)); } +StatusOr +ClusterControllerTracingConnection::DiagnoseCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::dataproc::v1::DiagnoseClusterRequest const& request) { + auto span = internal::MakeSpan( + "dataproc_v1::ClusterControllerConnection::DiagnoseCluster"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->DiagnoseCluster(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +ClusterControllerTracingConnection::DiagnoseCluster( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "dataproc_v1::ClusterControllerConnection::DiagnoseCluster"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->DiagnoseCluster(ExperimentalTag{}, operation)); +} + #endif // GOOGLE_CLOUD_CPP_HAVE_OPENTELEMETRY std::shared_ptr diff --git a/google/cloud/dataproc/v1/internal/cluster_controller_tracing_connection.h b/google/cloud/dataproc/v1/internal/cluster_controller_tracing_connection.h index ee455ec01a704..6573b61facf6f 100644 --- a/google/cloud/dataproc/v1/internal/cluster_controller_tracing_connection.h +++ b/google/cloud/dataproc/v1/internal/cluster_controller_tracing_connection.h @@ -44,20 +44,63 @@ class ClusterControllerTracingConnection google::cloud::dataproc::v1::CreateClusterRequest const& request) override; + StatusOr CreateCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::dataproc::v1::CreateClusterRequest const& request) + override; + + future> CreateCluster( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateCluster( google::cloud::dataproc::v1::UpdateClusterRequest const& request) override; + StatusOr UpdateCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::dataproc::v1::UpdateClusterRequest const& request) + override; + + future> UpdateCluster( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> StopCluster( google::cloud::dataproc::v1::StopClusterRequest const& request) override; + StatusOr StopCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::dataproc::v1::StopClusterRequest const& request) override; + + future> StopCluster( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> StartCluster( google::cloud::dataproc::v1::StartClusterRequest const& request) override; + StatusOr StartCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::dataproc::v1::StartClusterRequest const& request) override; + + future> StartCluster( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteCluster(google::cloud::dataproc::v1::DeleteClusterRequest const& request) override; + StatusOr DeleteCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::dataproc::v1::DeleteClusterRequest const& request) + override; + + future> + DeleteCluster(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetCluster( google::cloud::dataproc::v1::GetClusterRequest const& request) override; @@ -68,6 +111,15 @@ class ClusterControllerTracingConnection DiagnoseCluster(google::cloud::dataproc::v1::DiagnoseClusterRequest const& request) override; + StatusOr DiagnoseCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::dataproc::v1::DiagnoseClusterRequest const& request) + override; + + future> + DiagnoseCluster(ExperimentalTag, + google::longrunning::Operation const& operation) override; + private: std::shared_ptr child_; }; diff --git a/google/cloud/dataproc/v1/internal/job_controller_connection_impl.cc b/google/cloud/dataproc/v1/internal/job_controller_connection_impl.cc index 81c7de014f3be..84885cb2f2cf1 100644 --- a/google/cloud/dataproc/v1/internal/job_controller_connection_impl.cc +++ b/google/cloud/dataproc/v1/internal/job_controller_connection_impl.cc @@ -117,6 +117,57 @@ JobControllerConnectionImpl::SubmitJobAsOperation( polling_policy(*current), __func__); } +StatusOr +JobControllerConnectionImpl::SubmitJobAsOperation( + ExperimentalTag, NoAwaitTag, + google::cloud::dataproc::v1::SubmitJobRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->SubmitJobAsOperation(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::dataproc::v1::SubmitJobRequest const& request) { + return stub_->SubmitJobAsOperation(context, options, request); + }, + *current, request, __func__); +} + +future> +JobControllerConnectionImpl::SubmitJobAsOperation( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to SubmitJobAsOperation", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::dataproc::v1::Job>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::dataproc::v1::Job>, + polling_policy(*current), __func__); +} + StatusOr JobControllerConnectionImpl::GetJob( google::cloud::dataproc::v1::GetJobRequest const& request) { auto current = google::cloud::internal::SaveCurrentOptions(); diff --git a/google/cloud/dataproc/v1/internal/job_controller_connection_impl.h b/google/cloud/dataproc/v1/internal/job_controller_connection_impl.h index b5fb58d819377..515152248c5e3 100644 --- a/google/cloud/dataproc/v1/internal/job_controller_connection_impl.h +++ b/google/cloud/dataproc/v1/internal/job_controller_connection_impl.h @@ -58,6 +58,14 @@ class JobControllerConnectionImpl future> SubmitJobAsOperation( google::cloud::dataproc::v1::SubmitJobRequest const& request) override; + StatusOr SubmitJobAsOperation( + ExperimentalTag, NoAwaitTag, + google::cloud::dataproc::v1::SubmitJobRequest const& request) override; + + future> SubmitJobAsOperation( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetJob( google::cloud::dataproc::v1::GetJobRequest const& request) override; diff --git a/google/cloud/dataproc/v1/internal/job_controller_tracing_connection.cc b/google/cloud/dataproc/v1/internal/job_controller_tracing_connection.cc index 0213caf353f0a..ba00438570504 100644 --- a/google/cloud/dataproc/v1/internal/job_controller_tracing_connection.cc +++ b/google/cloud/dataproc/v1/internal/job_controller_tracing_connection.cc @@ -52,6 +52,28 @@ JobControllerTracingConnection::SubmitJobAsOperation( child_->SubmitJobAsOperation(request)); } +StatusOr +JobControllerTracingConnection::SubmitJobAsOperation( + ExperimentalTag, NoAwaitTag, + google::cloud::dataproc::v1::SubmitJobRequest const& request) { + auto span = internal::MakeSpan( + "dataproc_v1::JobControllerConnection::SubmitJobAsOperation"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->SubmitJobAsOperation(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +JobControllerTracingConnection::SubmitJobAsOperation( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "dataproc_v1::JobControllerConnection::SubmitJobAsOperation"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->SubmitJobAsOperation( + ExperimentalTag{}, operation)); +} + StatusOr JobControllerTracingConnection::GetJob( google::cloud::dataproc::v1::GetJobRequest const& request) { diff --git a/google/cloud/dataproc/v1/internal/job_controller_tracing_connection.h b/google/cloud/dataproc/v1/internal/job_controller_tracing_connection.h index 4d1f6a71ca1f4..5e62a558a87e7 100644 --- a/google/cloud/dataproc/v1/internal/job_controller_tracing_connection.h +++ b/google/cloud/dataproc/v1/internal/job_controller_tracing_connection.h @@ -46,6 +46,14 @@ class JobControllerTracingConnection future> SubmitJobAsOperation( google::cloud::dataproc::v1::SubmitJobRequest const& request) override; + StatusOr SubmitJobAsOperation( + ExperimentalTag, NoAwaitTag, + google::cloud::dataproc::v1::SubmitJobRequest const& request) override; + + future> SubmitJobAsOperation( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetJob( google::cloud::dataproc::v1::GetJobRequest const& request) override; diff --git a/google/cloud/dataproc/v1/internal/node_group_controller_connection_impl.cc b/google/cloud/dataproc/v1/internal/node_group_controller_connection_impl.cc index 61526acbecbac..4af8d2cc85444 100644 --- a/google/cloud/dataproc/v1/internal/node_group_controller_connection_impl.cc +++ b/google/cloud/dataproc/v1/internal/node_group_controller_connection_impl.cc @@ -105,6 +105,59 @@ NodeGroupControllerConnectionImpl::CreateNodeGroup( polling_policy(*current), __func__); } +StatusOr +NodeGroupControllerConnectionImpl::CreateNodeGroup( + ExperimentalTag, NoAwaitTag, + google::cloud::dataproc::v1::CreateNodeGroupRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateNodeGroup(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::dataproc::v1::CreateNodeGroupRequest const& request) { + return stub_->CreateNodeGroup(context, options, request); + }, + *current, request, __func__); +} + +future> +NodeGroupControllerConnectionImpl::CreateNodeGroup( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to CreateNodeGroup", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::dataproc::v1::NodeGroup>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::dataproc::v1::NodeGroup>, + polling_policy(*current), __func__); +} + future> NodeGroupControllerConnectionImpl::ResizeNodeGroup( google::cloud::dataproc::v1::ResizeNodeGroupRequest const& request) { @@ -144,6 +197,59 @@ NodeGroupControllerConnectionImpl::ResizeNodeGroup( polling_policy(*current), __func__); } +StatusOr +NodeGroupControllerConnectionImpl::ResizeNodeGroup( + ExperimentalTag, NoAwaitTag, + google::cloud::dataproc::v1::ResizeNodeGroupRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->ResizeNodeGroup(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::dataproc::v1::ResizeNodeGroupRequest const& request) { + return stub_->ResizeNodeGroup(context, options, request); + }, + *current, request, __func__); +} + +future> +NodeGroupControllerConnectionImpl::ResizeNodeGroup( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to ResizeNodeGroup", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::dataproc::v1::NodeGroup>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::dataproc::v1::NodeGroup>, + polling_policy(*current), __func__); +} + StatusOr NodeGroupControllerConnectionImpl::GetNodeGroup( google::cloud::dataproc::v1::GetNodeGroupRequest const& request) { diff --git a/google/cloud/dataproc/v1/internal/node_group_controller_connection_impl.h b/google/cloud/dataproc/v1/internal/node_group_controller_connection_impl.h index b20d845a01506..57689ce8a7bfc 100644 --- a/google/cloud/dataproc/v1/internal/node_group_controller_connection_impl.h +++ b/google/cloud/dataproc/v1/internal/node_group_controller_connection_impl.h @@ -55,10 +55,28 @@ class NodeGroupControllerConnectionImpl google::cloud::dataproc::v1::CreateNodeGroupRequest const& request) override; + StatusOr CreateNodeGroup( + ExperimentalTag, NoAwaitTag, + google::cloud::dataproc::v1::CreateNodeGroupRequest const& request) + override; + + future> CreateNodeGroup( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ResizeNodeGroup( google::cloud::dataproc::v1::ResizeNodeGroupRequest const& request) override; + StatusOr ResizeNodeGroup( + ExperimentalTag, NoAwaitTag, + google::cloud::dataproc::v1::ResizeNodeGroupRequest const& request) + override; + + future> ResizeNodeGroup( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetNodeGroup( google::cloud::dataproc::v1::GetNodeGroupRequest const& request) override; diff --git a/google/cloud/dataproc/v1/internal/node_group_controller_tracing_connection.cc b/google/cloud/dataproc/v1/internal/node_group_controller_tracing_connection.cc index a3a89d340b6ee..5ed99d6ed166e 100644 --- a/google/cloud/dataproc/v1/internal/node_group_controller_tracing_connection.cc +++ b/google/cloud/dataproc/v1/internal/node_group_controller_tracing_connection.cc @@ -41,6 +41,27 @@ NodeGroupControllerTracingConnection::CreateNodeGroup( return internal::EndSpan(std::move(span), child_->CreateNodeGroup(request)); } +StatusOr +NodeGroupControllerTracingConnection::CreateNodeGroup( + ExperimentalTag, NoAwaitTag, + google::cloud::dataproc::v1::CreateNodeGroupRequest const& request) { + auto span = internal::MakeSpan( + "dataproc_v1::NodeGroupControllerConnection::CreateNodeGroup"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->CreateNodeGroup(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +NodeGroupControllerTracingConnection::CreateNodeGroup( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "dataproc_v1::NodeGroupControllerConnection::CreateNodeGroup"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->CreateNodeGroup(ExperimentalTag{}, operation)); +} + future> NodeGroupControllerTracingConnection::ResizeNodeGroup( google::cloud::dataproc::v1::ResizeNodeGroupRequest const& request) { @@ -50,6 +71,27 @@ NodeGroupControllerTracingConnection::ResizeNodeGroup( return internal::EndSpan(std::move(span), child_->ResizeNodeGroup(request)); } +StatusOr +NodeGroupControllerTracingConnection::ResizeNodeGroup( + ExperimentalTag, NoAwaitTag, + google::cloud::dataproc::v1::ResizeNodeGroupRequest const& request) { + auto span = internal::MakeSpan( + "dataproc_v1::NodeGroupControllerConnection::ResizeNodeGroup"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->ResizeNodeGroup(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +NodeGroupControllerTracingConnection::ResizeNodeGroup( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "dataproc_v1::NodeGroupControllerConnection::ResizeNodeGroup"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->ResizeNodeGroup(ExperimentalTag{}, operation)); +} + StatusOr NodeGroupControllerTracingConnection::GetNodeGroup( google::cloud::dataproc::v1::GetNodeGroupRequest const& request) { diff --git a/google/cloud/dataproc/v1/internal/node_group_controller_tracing_connection.h b/google/cloud/dataproc/v1/internal/node_group_controller_tracing_connection.h index 68a068052c8a9..1b120bda1b6c1 100644 --- a/google/cloud/dataproc/v1/internal/node_group_controller_tracing_connection.h +++ b/google/cloud/dataproc/v1/internal/node_group_controller_tracing_connection.h @@ -44,10 +44,28 @@ class NodeGroupControllerTracingConnection google::cloud::dataproc::v1::CreateNodeGroupRequest const& request) override; + StatusOr CreateNodeGroup( + ExperimentalTag, NoAwaitTag, + google::cloud::dataproc::v1::CreateNodeGroupRequest const& request) + override; + + future> CreateNodeGroup( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ResizeNodeGroup( google::cloud::dataproc::v1::ResizeNodeGroupRequest const& request) override; + StatusOr ResizeNodeGroup( + ExperimentalTag, NoAwaitTag, + google::cloud::dataproc::v1::ResizeNodeGroupRequest const& request) + override; + + future> ResizeNodeGroup( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetNodeGroup( google::cloud::dataproc::v1::GetNodeGroupRequest const& request) override; diff --git a/google/cloud/dataproc/v1/internal/session_controller_connection_impl.cc b/google/cloud/dataproc/v1/internal/session_controller_connection_impl.cc index 0e2a6e5019db0..fd97fd735788e 100644 --- a/google/cloud/dataproc/v1/internal/session_controller_connection_impl.cc +++ b/google/cloud/dataproc/v1/internal/session_controller_connection_impl.cc @@ -106,6 +106,58 @@ SessionControllerConnectionImpl::CreateSession( polling_policy(*current), __func__); } +StatusOr +SessionControllerConnectionImpl::CreateSession( + ExperimentalTag, NoAwaitTag, + google::cloud::dataproc::v1::CreateSessionRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateSession(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::dataproc::v1::CreateSessionRequest const& request) { + return stub_->CreateSession(context, options, request); + }, + *current, request, __func__); +} + +future> +SessionControllerConnectionImpl::CreateSession( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to CreateSession", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::dataproc::v1::Session>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::dataproc::v1::Session>, + polling_policy(*current), __func__); +} + StatusOr SessionControllerConnectionImpl::GetSession( google::cloud::dataproc::v1::GetSessionRequest const& request) { @@ -193,6 +245,59 @@ SessionControllerConnectionImpl::TerminateSession( polling_policy(*current), __func__); } +StatusOr +SessionControllerConnectionImpl::TerminateSession( + ExperimentalTag, NoAwaitTag, + google::cloud::dataproc::v1::TerminateSessionRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->TerminateSession(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::dataproc::v1::TerminateSessionRequest const& request) { + return stub_->TerminateSession(context, options, request); + }, + *current, request, __func__); +} + +future> +SessionControllerConnectionImpl::TerminateSession( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to TerminateSession", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::dataproc::v1::Session>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::dataproc::v1::Session>, + polling_policy(*current), __func__); +} + future> SessionControllerConnectionImpl::DeleteSession( google::cloud::dataproc::v1::DeleteSessionRequest const& request) { @@ -232,6 +337,58 @@ SessionControllerConnectionImpl::DeleteSession( polling_policy(*current), __func__); } +StatusOr +SessionControllerConnectionImpl::DeleteSession( + ExperimentalTag, NoAwaitTag, + google::cloud::dataproc::v1::DeleteSessionRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteSession(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::dataproc::v1::DeleteSessionRequest const& request) { + return stub_->DeleteSession(context, options, request); + }, + *current, request, __func__); +} + +future> +SessionControllerConnectionImpl::DeleteSession( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteSession", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::dataproc::v1::Session>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::dataproc::v1::Session>, + polling_policy(*current), __func__); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace dataproc_v1_internal } // namespace cloud diff --git a/google/cloud/dataproc/v1/internal/session_controller_connection_impl.h b/google/cloud/dataproc/v1/internal/session_controller_connection_impl.h index 6df3f4af76dd6..977217e472e78 100644 --- a/google/cloud/dataproc/v1/internal/session_controller_connection_impl.h +++ b/google/cloud/dataproc/v1/internal/session_controller_connection_impl.h @@ -56,6 +56,15 @@ class SessionControllerConnectionImpl google::cloud::dataproc::v1::CreateSessionRequest const& request) override; + StatusOr CreateSession( + ExperimentalTag, NoAwaitTag, + google::cloud::dataproc::v1::CreateSessionRequest const& request) + override; + + future> CreateSession( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetSession( google::cloud::dataproc::v1::GetSessionRequest const& request) override; @@ -66,10 +75,28 @@ class SessionControllerConnectionImpl google::cloud::dataproc::v1::TerminateSessionRequest const& request) override; + StatusOr TerminateSession( + ExperimentalTag, NoAwaitTag, + google::cloud::dataproc::v1::TerminateSessionRequest const& request) + override; + + future> TerminateSession( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteSession( google::cloud::dataproc::v1::DeleteSessionRequest const& request) override; + StatusOr DeleteSession( + ExperimentalTag, NoAwaitTag, + google::cloud::dataproc::v1::DeleteSessionRequest const& request) + override; + + future> DeleteSession( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + private: std::unique_ptr background_; std::shared_ptr stub_; diff --git a/google/cloud/dataproc/v1/internal/session_controller_tracing_connection.cc b/google/cloud/dataproc/v1/internal/session_controller_tracing_connection.cc index b833999e981f7..ed5445fd7fd7a 100644 --- a/google/cloud/dataproc/v1/internal/session_controller_tracing_connection.cc +++ b/google/cloud/dataproc/v1/internal/session_controller_tracing_connection.cc @@ -42,6 +42,27 @@ SessionControllerTracingConnection::CreateSession( return internal::EndSpan(std::move(span), child_->CreateSession(request)); } +StatusOr +SessionControllerTracingConnection::CreateSession( + ExperimentalTag, NoAwaitTag, + google::cloud::dataproc::v1::CreateSessionRequest const& request) { + auto span = internal::MakeSpan( + "dataproc_v1::SessionControllerConnection::CreateSession"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->CreateSession(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +SessionControllerTracingConnection::CreateSession( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "dataproc_v1::SessionControllerConnection::CreateSession"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->CreateSession(ExperimentalTag{}, operation)); +} + StatusOr SessionControllerTracingConnection::GetSession( google::cloud::dataproc::v1::GetSessionRequest const& request) { @@ -71,6 +92,28 @@ SessionControllerTracingConnection::TerminateSession( return internal::EndSpan(std::move(span), child_->TerminateSession(request)); } +StatusOr +SessionControllerTracingConnection::TerminateSession( + ExperimentalTag, NoAwaitTag, + google::cloud::dataproc::v1::TerminateSessionRequest const& request) { + auto span = internal::MakeSpan( + "dataproc_v1::SessionControllerConnection::TerminateSession"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->TerminateSession(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +SessionControllerTracingConnection::TerminateSession( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "dataproc_v1::SessionControllerConnection::TerminateSession"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->TerminateSession(ExperimentalTag{}, operation)); +} + future> SessionControllerTracingConnection::DeleteSession( google::cloud::dataproc::v1::DeleteSessionRequest const& request) { @@ -80,6 +123,27 @@ SessionControllerTracingConnection::DeleteSession( return internal::EndSpan(std::move(span), child_->DeleteSession(request)); } +StatusOr +SessionControllerTracingConnection::DeleteSession( + ExperimentalTag, NoAwaitTag, + google::cloud::dataproc::v1::DeleteSessionRequest const& request) { + auto span = internal::MakeSpan( + "dataproc_v1::SessionControllerConnection::DeleteSession"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->DeleteSession(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +SessionControllerTracingConnection::DeleteSession( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "dataproc_v1::SessionControllerConnection::DeleteSession"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->DeleteSession(ExperimentalTag{}, operation)); +} + #endif // GOOGLE_CLOUD_CPP_HAVE_OPENTELEMETRY std::shared_ptr diff --git a/google/cloud/dataproc/v1/internal/session_controller_tracing_connection.h b/google/cloud/dataproc/v1/internal/session_controller_tracing_connection.h index 5a9d61b726c4e..e279793463f5c 100644 --- a/google/cloud/dataproc/v1/internal/session_controller_tracing_connection.h +++ b/google/cloud/dataproc/v1/internal/session_controller_tracing_connection.h @@ -44,6 +44,15 @@ class SessionControllerTracingConnection google::cloud::dataproc::v1::CreateSessionRequest const& request) override; + StatusOr CreateSession( + ExperimentalTag, NoAwaitTag, + google::cloud::dataproc::v1::CreateSessionRequest const& request) + override; + + future> CreateSession( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetSession( google::cloud::dataproc::v1::GetSessionRequest const& request) override; @@ -54,10 +63,28 @@ class SessionControllerTracingConnection google::cloud::dataproc::v1::TerminateSessionRequest const& request) override; + StatusOr TerminateSession( + ExperimentalTag, NoAwaitTag, + google::cloud::dataproc::v1::TerminateSessionRequest const& request) + override; + + future> TerminateSession( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteSession( google::cloud::dataproc::v1::DeleteSessionRequest const& request) override; + StatusOr DeleteSession( + ExperimentalTag, NoAwaitTag, + google::cloud::dataproc::v1::DeleteSessionRequest const& request) + override; + + future> DeleteSession( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + private: std::shared_ptr child_; }; diff --git a/google/cloud/dataproc/v1/internal/workflow_template_connection_impl.cc b/google/cloud/dataproc/v1/internal/workflow_template_connection_impl.cc index 275c8df667fdf..3838cc0e192cc 100644 --- a/google/cloud/dataproc/v1/internal/workflow_template_connection_impl.cc +++ b/google/cloud/dataproc/v1/internal/workflow_template_connection_impl.cc @@ -139,6 +139,61 @@ WorkflowTemplateServiceConnectionImpl::InstantiateWorkflowTemplate( polling_policy(*current), __func__); } +StatusOr +WorkflowTemplateServiceConnectionImpl::InstantiateWorkflowTemplate( + ExperimentalTag, NoAwaitTag, + google::cloud::dataproc::v1::InstantiateWorkflowTemplateRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->InstantiateWorkflowTemplate(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::dataproc::v1::InstantiateWorkflowTemplateRequest const& + request) { + return stub_->InstantiateWorkflowTemplate(context, options, request); + }, + *current, request, __func__); +} + +future> +WorkflowTemplateServiceConnectionImpl::InstantiateWorkflowTemplate( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to InstantiateWorkflowTemplate", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::dataproc::v1::WorkflowMetadata>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::cloud::dataproc::v1::WorkflowMetadata>, + polling_policy(*current), __func__); +} + future> WorkflowTemplateServiceConnectionImpl::InstantiateInlineWorkflowTemplate( google::cloud::dataproc::v1::InstantiateInlineWorkflowTemplateRequest const& @@ -181,6 +236,62 @@ WorkflowTemplateServiceConnectionImpl::InstantiateInlineWorkflowTemplate( polling_policy(*current), __func__); } +StatusOr +WorkflowTemplateServiceConnectionImpl::InstantiateInlineWorkflowTemplate( + ExperimentalTag, NoAwaitTag, + google::cloud::dataproc::v1::InstantiateInlineWorkflowTemplateRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->InstantiateInlineWorkflowTemplate(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::dataproc::v1:: + InstantiateInlineWorkflowTemplateRequest const& request) { + return stub_->InstantiateInlineWorkflowTemplate(context, options, + request); + }, + *current, request, __func__); +} + +future> +WorkflowTemplateServiceConnectionImpl::InstantiateInlineWorkflowTemplate( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to " + "InstantiateInlineWorkflowTemplate", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::dataproc::v1::WorkflowMetadata>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::cloud::dataproc::v1::WorkflowMetadata>, + polling_policy(*current), __func__); +} + StatusOr WorkflowTemplateServiceConnectionImpl::UpdateWorkflowTemplate( google::cloud::dataproc::v1::UpdateWorkflowTemplateRequest const& request) { diff --git a/google/cloud/dataproc/v1/internal/workflow_template_connection_impl.h b/google/cloud/dataproc/v1/internal/workflow_template_connection_impl.h index 43b4bc0dc4cbb..db0107080d64c 100644 --- a/google/cloud/dataproc/v1/internal/workflow_template_connection_impl.h +++ b/google/cloud/dataproc/v1/internal/workflow_template_connection_impl.h @@ -66,11 +66,31 @@ class WorkflowTemplateServiceConnectionImpl google::cloud::dataproc::v1::InstantiateWorkflowTemplateRequest const& request) override; + StatusOr InstantiateWorkflowTemplate( + ExperimentalTag, NoAwaitTag, + google::cloud::dataproc::v1::InstantiateWorkflowTemplateRequest const& + request) override; + + future> + InstantiateWorkflowTemplate( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> InstantiateInlineWorkflowTemplate( google::cloud::dataproc::v1:: InstantiateInlineWorkflowTemplateRequest const& request) override; + StatusOr InstantiateInlineWorkflowTemplate( + ExperimentalTag, NoAwaitTag, + google::cloud::dataproc::v1:: + InstantiateInlineWorkflowTemplateRequest const& request) override; + + future> + InstantiateInlineWorkflowTemplate( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr UpdateWorkflowTemplate( google::cloud::dataproc::v1::UpdateWorkflowTemplateRequest const& request) diff --git a/google/cloud/dataproc/v1/internal/workflow_template_tracing_connection.cc b/google/cloud/dataproc/v1/internal/workflow_template_tracing_connection.cc index d41046e5bfa58..55ba3d799aabc 100644 --- a/google/cloud/dataproc/v1/internal/workflow_template_tracing_connection.cc +++ b/google/cloud/dataproc/v1/internal/workflow_template_tracing_connection.cc @@ -64,6 +64,31 @@ WorkflowTemplateServiceTracingConnection::InstantiateWorkflowTemplate( child_->InstantiateWorkflowTemplate(request)); } +StatusOr +WorkflowTemplateServiceTracingConnection::InstantiateWorkflowTemplate( + ExperimentalTag, NoAwaitTag, + google::cloud::dataproc::v1::InstantiateWorkflowTemplateRequest const& + request) { + auto span = internal::MakeSpan( + "dataproc_v1::WorkflowTemplateServiceConnection::" + "InstantiateWorkflowTemplate"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->InstantiateWorkflowTemplate(ExperimentalTag{}, + NoAwaitTag{}, request)); +} + +future> +WorkflowTemplateServiceTracingConnection::InstantiateWorkflowTemplate( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "dataproc_v1::WorkflowTemplateServiceConnection::" + "InstantiateWorkflowTemplate"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->InstantiateWorkflowTemplate( + ExperimentalTag{}, operation)); +} + future> WorkflowTemplateServiceTracingConnection::InstantiateInlineWorkflowTemplate( google::cloud::dataproc::v1::InstantiateInlineWorkflowTemplateRequest const& @@ -76,6 +101,32 @@ WorkflowTemplateServiceTracingConnection::InstantiateInlineWorkflowTemplate( child_->InstantiateInlineWorkflowTemplate(request)); } +StatusOr +WorkflowTemplateServiceTracingConnection::InstantiateInlineWorkflowTemplate( + ExperimentalTag, NoAwaitTag, + google::cloud::dataproc::v1::InstantiateInlineWorkflowTemplateRequest const& + request) { + auto span = internal::MakeSpan( + "dataproc_v1::WorkflowTemplateServiceConnection::" + "InstantiateInlineWorkflowTemplate"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->InstantiateInlineWorkflowTemplate(ExperimentalTag{}, + NoAwaitTag{}, request)); +} + +future> +WorkflowTemplateServiceTracingConnection::InstantiateInlineWorkflowTemplate( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "dataproc_v1::WorkflowTemplateServiceConnection::" + "InstantiateInlineWorkflowTemplate"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), + child_->InstantiateInlineWorkflowTemplate(ExperimentalTag{}, operation)); +} + StatusOr WorkflowTemplateServiceTracingConnection::UpdateWorkflowTemplate( google::cloud::dataproc::v1::UpdateWorkflowTemplateRequest const& request) { diff --git a/google/cloud/dataproc/v1/internal/workflow_template_tracing_connection.h b/google/cloud/dataproc/v1/internal/workflow_template_tracing_connection.h index f4dc57ad02092..cfac2f0a5fb4a 100644 --- a/google/cloud/dataproc/v1/internal/workflow_template_tracing_connection.h +++ b/google/cloud/dataproc/v1/internal/workflow_template_tracing_connection.h @@ -54,11 +54,31 @@ class WorkflowTemplateServiceTracingConnection google::cloud::dataproc::v1::InstantiateWorkflowTemplateRequest const& request) override; + StatusOr InstantiateWorkflowTemplate( + ExperimentalTag, NoAwaitTag, + google::cloud::dataproc::v1::InstantiateWorkflowTemplateRequest const& + request) override; + + future> + InstantiateWorkflowTemplate( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> InstantiateInlineWorkflowTemplate( google::cloud::dataproc::v1:: InstantiateInlineWorkflowTemplateRequest const& request) override; + StatusOr InstantiateInlineWorkflowTemplate( + ExperimentalTag, NoAwaitTag, + google::cloud::dataproc::v1:: + InstantiateInlineWorkflowTemplateRequest const& request) override; + + future> + InstantiateInlineWorkflowTemplate( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr UpdateWorkflowTemplate( google::cloud::dataproc::v1::UpdateWorkflowTemplateRequest const& request) diff --git a/google/cloud/dataproc/v1/job_controller_connection.cc b/google/cloud/dataproc/v1/job_controller_connection.cc index b70ecb663e678..41288a1662a3d 100644 --- a/google/cloud/dataproc/v1/job_controller_connection.cc +++ b/google/cloud/dataproc/v1/job_controller_connection.cc @@ -51,6 +51,22 @@ JobControllerConnection::SubmitJobAsOperation( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +JobControllerConnection::SubmitJobAsOperation( + ExperimentalTag, NoAwaitTag, + google::cloud::dataproc::v1::SubmitJobRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +JobControllerConnection::SubmitJobAsOperation( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr JobControllerConnection::GetJob( google::cloud::dataproc::v1::GetJobRequest const&) { return Status(StatusCode::kUnimplemented, "not implemented"); diff --git a/google/cloud/dataproc/v1/job_controller_connection.h b/google/cloud/dataproc/v1/job_controller_connection.h index 7eec132fe5022..0e1d06d12612e 100644 --- a/google/cloud/dataproc/v1/job_controller_connection.h +++ b/google/cloud/dataproc/v1/job_controller_connection.h @@ -22,8 +22,10 @@ #include "google/cloud/dataproc/v1/internal/job_controller_retry_traits.h" #include "google/cloud/dataproc/v1/job_controller_connection_idempotency_policy.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/internal/retry_policy_impl.h" +#include "google/cloud/no_await_tag.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" #include "google/cloud/status_or.h" @@ -193,6 +195,14 @@ class JobControllerConnection { SubmitJobAsOperation( google::cloud::dataproc::v1::SubmitJobRequest const& request); + virtual StatusOr SubmitJobAsOperation( + ExperimentalTag, NoAwaitTag, + google::cloud::dataproc::v1::SubmitJobRequest const& request); + + virtual future> + SubmitJobAsOperation(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StatusOr GetJob( google::cloud::dataproc::v1::GetJobRequest const& request); diff --git a/google/cloud/dataproc/v1/mocks/mock_batch_controller_connection.h b/google/cloud/dataproc/v1/mocks/mock_batch_controller_connection.h index 9da45fed8129c..4a0c8787ce09b 100644 --- a/google/cloud/dataproc/v1/mocks/mock_batch_controller_connection.h +++ b/google/cloud/dataproc/v1/mocks/mock_batch_controller_connection.h @@ -51,6 +51,16 @@ class MockBatchControllerConnection (google::cloud::dataproc::v1::CreateBatchRequest const& request), (override)); + MOCK_METHOD(StatusOr, CreateBatch, + (ExperimentalTag, NoAwaitTag, + google::cloud::dataproc::v1::CreateBatchRequest const& request), + (override)); + + MOCK_METHOD(future>, CreateBatch, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(StatusOr, GetBatch, (google::cloud::dataproc::v1::GetBatchRequest const& request), (override)); diff --git a/google/cloud/dataproc/v1/mocks/mock_cluster_controller_connection.h b/google/cloud/dataproc/v1/mocks/mock_cluster_controller_connection.h index 38962112d5717..478f4ef42cbcb 100644 --- a/google/cloud/dataproc/v1/mocks/mock_cluster_controller_connection.h +++ b/google/cloud/dataproc/v1/mocks/mock_cluster_controller_connection.h @@ -52,27 +52,85 @@ class MockClusterControllerConnection (google::cloud::dataproc::v1::CreateClusterRequest const& request), (override)); + MOCK_METHOD( + StatusOr, CreateCluster, + (ExperimentalTag, NoAwaitTag, + google::cloud::dataproc::v1::CreateClusterRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateCluster, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, UpdateCluster, (google::cloud::dataproc::v1::UpdateClusterRequest const& request), (override)); + MOCK_METHOD( + StatusOr, UpdateCluster, + (ExperimentalTag, NoAwaitTag, + google::cloud::dataproc::v1::UpdateClusterRequest const& request), + (override)); + + MOCK_METHOD(future>, + UpdateCluster, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, StopCluster, (google::cloud::dataproc::v1::StopClusterRequest const& request), (override)); + MOCK_METHOD(StatusOr, StopCluster, + (ExperimentalTag, NoAwaitTag, + google::cloud::dataproc::v1::StopClusterRequest const& request), + (override)); + + MOCK_METHOD(future>, + StopCluster, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, StartCluster, (google::cloud::dataproc::v1::StartClusterRequest const& request), (override)); + MOCK_METHOD(StatusOr, StartCluster, + (ExperimentalTag, NoAwaitTag, + google::cloud::dataproc::v1::StartClusterRequest const& request), + (override)); + + MOCK_METHOD(future>, + StartCluster, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteCluster, (google::cloud::dataproc::v1::DeleteClusterRequest const& request), (override)); + MOCK_METHOD( + StatusOr, DeleteCluster, + (ExperimentalTag, NoAwaitTag, + google::cloud::dataproc::v1::DeleteClusterRequest const& request), + (override)); + + MOCK_METHOD( + future>, + DeleteCluster, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(StatusOr, GetCluster, (google::cloud::dataproc::v1::GetClusterRequest const& request), (override)); @@ -86,6 +144,18 @@ class MockClusterControllerConnection DiagnoseCluster, (google::cloud::dataproc::v1::DiagnoseClusterRequest const& request), (override)); + + MOCK_METHOD( + StatusOr, DiagnoseCluster, + (ExperimentalTag, NoAwaitTag, + google::cloud::dataproc::v1::DiagnoseClusterRequest const& request), + (override)); + + MOCK_METHOD( + future>, + DiagnoseCluster, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); }; GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END diff --git a/google/cloud/dataproc/v1/mocks/mock_job_controller_connection.h b/google/cloud/dataproc/v1/mocks/mock_job_controller_connection.h index af9c03f26a960..e608faeb9dbc3 100644 --- a/google/cloud/dataproc/v1/mocks/mock_job_controller_connection.h +++ b/google/cloud/dataproc/v1/mocks/mock_job_controller_connection.h @@ -56,6 +56,17 @@ class MockJobControllerConnection (google::cloud::dataproc::v1::SubmitJobRequest const& request), (override)); + MOCK_METHOD(StatusOr, SubmitJobAsOperation, + (ExperimentalTag, NoAwaitTag, + google::cloud::dataproc::v1::SubmitJobRequest const& request), + (override)); + + MOCK_METHOD(future>, + SubmitJobAsOperation, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(StatusOr, GetJob, (google::cloud::dataproc::v1::GetJobRequest const& request), (override)); diff --git a/google/cloud/dataproc/v1/mocks/mock_node_group_controller_connection.h b/google/cloud/dataproc/v1/mocks/mock_node_group_controller_connection.h index 15e1113791316..37dd46e8dc153 100644 --- a/google/cloud/dataproc/v1/mocks/mock_node_group_controller_connection.h +++ b/google/cloud/dataproc/v1/mocks/mock_node_group_controller_connection.h @@ -52,11 +52,35 @@ class MockNodeGroupControllerConnection (google::cloud::dataproc::v1::CreateNodeGroupRequest const& request), (override)); + MOCK_METHOD( + StatusOr, CreateNodeGroup, + (ExperimentalTag, NoAwaitTag, + google::cloud::dataproc::v1::CreateNodeGroupRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateNodeGroup, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, ResizeNodeGroup, (google::cloud::dataproc::v1::ResizeNodeGroupRequest const& request), (override)); + MOCK_METHOD( + StatusOr, ResizeNodeGroup, + (ExperimentalTag, NoAwaitTag, + google::cloud::dataproc::v1::ResizeNodeGroupRequest const& request), + (override)); + + MOCK_METHOD(future>, + ResizeNodeGroup, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(StatusOr, GetNodeGroup, (google::cloud::dataproc::v1::GetNodeGroupRequest const& request), (override)); diff --git a/google/cloud/dataproc/v1/mocks/mock_session_controller_connection.h b/google/cloud/dataproc/v1/mocks/mock_session_controller_connection.h index 5822778bb38cc..971ff8be57d2f 100644 --- a/google/cloud/dataproc/v1/mocks/mock_session_controller_connection.h +++ b/google/cloud/dataproc/v1/mocks/mock_session_controller_connection.h @@ -52,6 +52,18 @@ class MockSessionControllerConnection (google::cloud::dataproc::v1::CreateSessionRequest const& request), (override)); + MOCK_METHOD( + StatusOr, CreateSession, + (ExperimentalTag, NoAwaitTag, + google::cloud::dataproc::v1::CreateSessionRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateSession, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(StatusOr, GetSession, (google::cloud::dataproc::v1::GetSessionRequest const& request), (override)); @@ -65,10 +77,34 @@ class MockSessionControllerConnection (google::cloud::dataproc::v1::TerminateSessionRequest const& request), (override)); + MOCK_METHOD( + StatusOr, TerminateSession, + (ExperimentalTag, NoAwaitTag, + google::cloud::dataproc::v1::TerminateSessionRequest const& request), + (override)); + + MOCK_METHOD(future>, + TerminateSession, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteSession, (google::cloud::dataproc::v1::DeleteSessionRequest const& request), (override)); + + MOCK_METHOD( + StatusOr, DeleteSession, + (ExperimentalTag, NoAwaitTag, + google::cloud::dataproc::v1::DeleteSessionRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteSession, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); }; GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END diff --git a/google/cloud/dataproc/v1/mocks/mock_workflow_template_connection.h b/google/cloud/dataproc/v1/mocks/mock_workflow_template_connection.h index cadf0cd86f1cd..57325980e1cf7 100644 --- a/google/cloud/dataproc/v1/mocks/mock_workflow_template_connection.h +++ b/google/cloud/dataproc/v1/mocks/mock_workflow_template_connection.h @@ -66,12 +66,38 @@ class MockWorkflowTemplateServiceConnection request), (override)); + MOCK_METHOD( + StatusOr, InstantiateWorkflowTemplate, + (ExperimentalTag, NoAwaitTag, + google::cloud::dataproc::v1::InstantiateWorkflowTemplateRequest const& + request), + (override)); + + MOCK_METHOD(future>, + InstantiateWorkflowTemplate, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, InstantiateInlineWorkflowTemplate, (google::cloud::dataproc::v1:: InstantiateInlineWorkflowTemplateRequest const& request), (override)); + MOCK_METHOD(StatusOr, + InstantiateInlineWorkflowTemplate, + (ExperimentalTag, NoAwaitTag, + google::cloud::dataproc::v1:: + InstantiateInlineWorkflowTemplateRequest const& request), + (override)); + + MOCK_METHOD(future>, + InstantiateInlineWorkflowTemplate, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(StatusOr, UpdateWorkflowTemplate, (google::cloud::dataproc::v1::UpdateWorkflowTemplateRequest const& diff --git a/google/cloud/dataproc/v1/node_group_controller_connection.cc b/google/cloud/dataproc/v1/node_group_controller_connection.cc index 1b5871beaf1d7..e2cb28f7af353 100644 --- a/google/cloud/dataproc/v1/node_group_controller_connection.cc +++ b/google/cloud/dataproc/v1/node_group_controller_connection.cc @@ -45,6 +45,22 @@ NodeGroupControllerConnection::CreateNodeGroup( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +NodeGroupControllerConnection::CreateNodeGroup( + ExperimentalTag, NoAwaitTag, + google::cloud::dataproc::v1::CreateNodeGroupRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +NodeGroupControllerConnection::CreateNodeGroup( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> NodeGroupControllerConnection::ResizeNodeGroup( google::cloud::dataproc::v1::ResizeNodeGroupRequest const&) { @@ -53,6 +69,22 @@ NodeGroupControllerConnection::ResizeNodeGroup( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +NodeGroupControllerConnection::ResizeNodeGroup( + ExperimentalTag, NoAwaitTag, + google::cloud::dataproc::v1::ResizeNodeGroupRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +NodeGroupControllerConnection::ResizeNodeGroup( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr NodeGroupControllerConnection::GetNodeGroup( google::cloud::dataproc::v1::GetNodeGroupRequest const&) { diff --git a/google/cloud/dataproc/v1/node_group_controller_connection.h b/google/cloud/dataproc/v1/node_group_controller_connection.h index 3a38f3d1042bd..93f7ae75085a1 100644 --- a/google/cloud/dataproc/v1/node_group_controller_connection.h +++ b/google/cloud/dataproc/v1/node_group_controller_connection.h @@ -22,8 +22,10 @@ #include "google/cloud/dataproc/v1/internal/node_group_controller_retry_traits.h" #include "google/cloud/dataproc/v1/node_group_controller_connection_idempotency_policy.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/internal/retry_policy_impl.h" +#include "google/cloud/no_await_tag.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" #include "google/cloud/status_or.h" @@ -192,10 +194,26 @@ class NodeGroupControllerConnection { CreateNodeGroup( google::cloud::dataproc::v1::CreateNodeGroupRequest const& request); + virtual StatusOr CreateNodeGroup( + ExperimentalTag, NoAwaitTag, + google::cloud::dataproc::v1::CreateNodeGroupRequest const& request); + + virtual future> + CreateNodeGroup(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> ResizeNodeGroup( google::cloud::dataproc::v1::ResizeNodeGroupRequest const& request); + virtual StatusOr ResizeNodeGroup( + ExperimentalTag, NoAwaitTag, + google::cloud::dataproc::v1::ResizeNodeGroupRequest const& request); + + virtual future> + ResizeNodeGroup(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StatusOr GetNodeGroup( google::cloud::dataproc::v1::GetNodeGroupRequest const& request); }; diff --git a/google/cloud/dataproc/v1/session_controller_connection.cc b/google/cloud/dataproc/v1/session_controller_connection.cc index 7f547d2024e32..6dc763ab7fb46 100644 --- a/google/cloud/dataproc/v1/session_controller_connection.cc +++ b/google/cloud/dataproc/v1/session_controller_connection.cc @@ -46,6 +46,22 @@ SessionControllerConnection::CreateSession( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +SessionControllerConnection::CreateSession( + ExperimentalTag, NoAwaitTag, + google::cloud::dataproc::v1::CreateSessionRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +SessionControllerConnection::CreateSession( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr SessionControllerConnection::GetSession( google::cloud::dataproc::v1::GetSessionRequest const&) { @@ -68,6 +84,22 @@ SessionControllerConnection::TerminateSession( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +SessionControllerConnection::TerminateSession( + ExperimentalTag, NoAwaitTag, + google::cloud::dataproc::v1::TerminateSessionRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +SessionControllerConnection::TerminateSession( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> SessionControllerConnection::DeleteSession( google::cloud::dataproc::v1::DeleteSessionRequest const&) { @@ -76,6 +108,22 @@ SessionControllerConnection::DeleteSession( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +SessionControllerConnection::DeleteSession( + ExperimentalTag, NoAwaitTag, + google::cloud::dataproc::v1::DeleteSessionRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +SessionControllerConnection::DeleteSession( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + std::shared_ptr MakeSessionControllerConnection( std::string const& location, Options options) { internal::CheckExpectedOptions> CreateSession( google::cloud::dataproc::v1::CreateSessionRequest const& request); + virtual StatusOr CreateSession( + ExperimentalTag, NoAwaitTag, + google::cloud::dataproc::v1::CreateSessionRequest const& request); + + virtual future> CreateSession( + ExperimentalTag, google::longrunning::Operation const& operation); + virtual StatusOr GetSession( google::cloud::dataproc::v1::GetSessionRequest const& request); @@ -201,8 +210,23 @@ class SessionControllerConnection { TerminateSession( google::cloud::dataproc::v1::TerminateSessionRequest const& request); + virtual StatusOr TerminateSession( + ExperimentalTag, NoAwaitTag, + google::cloud::dataproc::v1::TerminateSessionRequest const& request); + + virtual future> + TerminateSession(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> DeleteSession( google::cloud::dataproc::v1::DeleteSessionRequest const& request); + + virtual StatusOr DeleteSession( + ExperimentalTag, NoAwaitTag, + google::cloud::dataproc::v1::DeleteSessionRequest const& request); + + virtual future> DeleteSession( + ExperimentalTag, google::longrunning::Operation const& operation); }; /** diff --git a/google/cloud/dataproc/v1/session_template_controller_connection.h b/google/cloud/dataproc/v1/session_template_controller_connection.h index 91714189f594b..4607c6dd96db7 100644 --- a/google/cloud/dataproc/v1/session_template_controller_connection.h +++ b/google/cloud/dataproc/v1/session_template_controller_connection.h @@ -22,6 +22,7 @@ #include "google/cloud/dataproc/v1/internal/session_template_controller_retry_traits.h" #include "google/cloud/dataproc/v1/session_template_controller_connection_idempotency_policy.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/internal/retry_policy_impl.h" #include "google/cloud/options.h" #include "google/cloud/status_or.h" diff --git a/google/cloud/dataproc/v1/workflow_template_connection.cc b/google/cloud/dataproc/v1/workflow_template_connection.cc index 2ff4b2595c4da..a307ed255803a 100644 --- a/google/cloud/dataproc/v1/workflow_template_connection.cc +++ b/google/cloud/dataproc/v1/workflow_template_connection.cc @@ -59,6 +59,22 @@ WorkflowTemplateServiceConnection::InstantiateWorkflowTemplate( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +WorkflowTemplateServiceConnection::InstantiateWorkflowTemplate( + ExperimentalTag, NoAwaitTag, + google::cloud::dataproc::v1::InstantiateWorkflowTemplateRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +WorkflowTemplateServiceConnection::InstantiateWorkflowTemplate( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> WorkflowTemplateServiceConnection::InstantiateInlineWorkflowTemplate( google::cloud::dataproc::v1:: @@ -68,6 +84,23 @@ WorkflowTemplateServiceConnection::InstantiateInlineWorkflowTemplate( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +WorkflowTemplateServiceConnection::InstantiateInlineWorkflowTemplate( + ExperimentalTag, NoAwaitTag, + google::cloud::dataproc::v1:: + InstantiateInlineWorkflowTemplateRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +WorkflowTemplateServiceConnection::InstantiateInlineWorkflowTemplate( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr WorkflowTemplateServiceConnection::UpdateWorkflowTemplate( google::cloud::dataproc::v1::UpdateWorkflowTemplateRequest const&) { diff --git a/google/cloud/dataproc/v1/workflow_template_connection.h b/google/cloud/dataproc/v1/workflow_template_connection.h index ac458dc98c819..9b595da231c3a 100644 --- a/google/cloud/dataproc/v1/workflow_template_connection.h +++ b/google/cloud/dataproc/v1/workflow_template_connection.h @@ -22,8 +22,10 @@ #include "google/cloud/dataproc/v1/internal/workflow_template_retry_traits.h" #include "google/cloud/dataproc/v1/workflow_template_connection_idempotency_policy.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/internal/retry_policy_impl.h" +#include "google/cloud/no_await_tag.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" #include "google/cloud/status_or.h" @@ -207,11 +209,30 @@ class WorkflowTemplateServiceConnection { google::cloud::dataproc::v1::InstantiateWorkflowTemplateRequest const& request); + virtual StatusOr InstantiateWorkflowTemplate( + ExperimentalTag, NoAwaitTag, + google::cloud::dataproc::v1::InstantiateWorkflowTemplateRequest const& + request); + virtual future> + InstantiateWorkflowTemplate(ExperimentalTag, + google::longrunning::Operation const& operation); + + virtual future> + InstantiateInlineWorkflowTemplate( + google::cloud::dataproc::v1:: + InstantiateInlineWorkflowTemplateRequest const& request); + + virtual StatusOr InstantiateInlineWorkflowTemplate( + ExperimentalTag, NoAwaitTag, google::cloud::dataproc::v1:: InstantiateInlineWorkflowTemplateRequest const& request); + virtual future> + InstantiateInlineWorkflowTemplate( + ExperimentalTag, google::longrunning::Operation const& operation); + virtual StatusOr UpdateWorkflowTemplate( google::cloud::dataproc::v1::UpdateWorkflowTemplateRequest const& diff --git a/google/cloud/datastore/admin/v1/datastore_admin_connection.cc b/google/cloud/datastore/admin/v1/datastore_admin_connection.cc index be2bd2b039ad7..26aea4568c25d 100644 --- a/google/cloud/datastore/admin/v1/datastore_admin_connection.cc +++ b/google/cloud/datastore/admin/v1/datastore_admin_connection.cc @@ -46,6 +46,22 @@ DatastoreAdminConnection::ExportEntities( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +DatastoreAdminConnection::ExportEntities( + ExperimentalTag, NoAwaitTag, + google::datastore::admin::v1::ExportEntitiesRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +DatastoreAdminConnection::ExportEntities( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> DatastoreAdminConnection::ImportEntities( google::datastore::admin::v1::ImportEntitiesRequest const&) { @@ -54,6 +70,22 @@ DatastoreAdminConnection::ImportEntities( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +DatastoreAdminConnection::ImportEntities( + ExperimentalTag, NoAwaitTag, + google::datastore::admin::v1::ImportEntitiesRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +DatastoreAdminConnection::ImportEntities( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> DatastoreAdminConnection::CreateIndex( google::datastore::admin::v1::CreateIndexRequest const&) { @@ -62,6 +94,21 @@ DatastoreAdminConnection::CreateIndex( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr DatastoreAdminConnection::CreateIndex( + ExperimentalTag, NoAwaitTag, + google::datastore::admin::v1::CreateIndexRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +DatastoreAdminConnection::CreateIndex(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> DatastoreAdminConnection::DeleteIndex( google::datastore::admin::v1::DeleteIndexRequest const&) { @@ -70,6 +117,21 @@ DatastoreAdminConnection::DeleteIndex( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr DatastoreAdminConnection::DeleteIndex( + ExperimentalTag, NoAwaitTag, + google::datastore::admin::v1::DeleteIndexRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +DatastoreAdminConnection::DeleteIndex(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr DatastoreAdminConnection::GetIndex( google::datastore::admin::v1::GetIndexRequest const&) { diff --git a/google/cloud/datastore/admin/v1/datastore_admin_connection.h b/google/cloud/datastore/admin/v1/datastore_admin_connection.h index c8c235e1851b7..72f0a7cb05f15 100644 --- a/google/cloud/datastore/admin/v1/datastore_admin_connection.h +++ b/google/cloud/datastore/admin/v1/datastore_admin_connection.h @@ -22,8 +22,10 @@ #include "google/cloud/datastore/admin/v1/datastore_admin_connection_idempotency_policy.h" #include "google/cloud/datastore/admin/v1/internal/datastore_admin_retry_traits.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/internal/retry_policy_impl.h" +#include "google/cloud/no_await_tag.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" #include "google/cloud/status_or.h" @@ -189,16 +191,46 @@ class DatastoreAdminConnection { ExportEntities( google::datastore::admin::v1::ExportEntitiesRequest const& request); + virtual StatusOr ExportEntities( + ExperimentalTag, NoAwaitTag, + google::datastore::admin::v1::ExportEntitiesRequest const& request); + + virtual future> + ExportEntities(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> ImportEntities( google::datastore::admin::v1::ImportEntitiesRequest const& request); + virtual StatusOr ImportEntities( + ExperimentalTag, NoAwaitTag, + google::datastore::admin::v1::ImportEntitiesRequest const& request); + + virtual future> + ImportEntities(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> CreateIndex( google::datastore::admin::v1::CreateIndexRequest const& request); + virtual StatusOr CreateIndex( + ExperimentalTag, NoAwaitTag, + google::datastore::admin::v1::CreateIndexRequest const& request); + + virtual future> CreateIndex( + ExperimentalTag, google::longrunning::Operation const& operation); + virtual future> DeleteIndex( google::datastore::admin::v1::DeleteIndexRequest const& request); + virtual StatusOr DeleteIndex( + ExperimentalTag, NoAwaitTag, + google::datastore::admin::v1::DeleteIndexRequest const& request); + + virtual future> DeleteIndex( + ExperimentalTag, google::longrunning::Operation const& operation); + virtual StatusOr GetIndex( google::datastore::admin::v1::GetIndexRequest const& request); diff --git a/google/cloud/datastore/admin/v1/internal/datastore_admin_connection_impl.cc b/google/cloud/datastore/admin/v1/internal/datastore_admin_connection_impl.cc index fb1a4be4a2cd9..d98371a374230 100644 --- a/google/cloud/datastore/admin/v1/internal/datastore_admin_connection_impl.cc +++ b/google/cloud/datastore/admin/v1/internal/datastore_admin_connection_impl.cc @@ -107,6 +107,60 @@ DatastoreAdminConnectionImpl::ExportEntities( polling_policy(*current), __func__); } +StatusOr +DatastoreAdminConnectionImpl::ExportEntities( + ExperimentalTag, NoAwaitTag, + google::datastore::admin::v1::ExportEntitiesRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->ExportEntities(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::datastore::admin::v1::ExportEntitiesRequest const& request) { + return stub_->ExportEntities(context, options, request); + }, + *current, request, __func__); +} + +future> +DatastoreAdminConnectionImpl::ExportEntities( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to ExportEntities", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::datastore::admin::v1::ExportEntitiesResponse>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::datastore::admin::v1::ExportEntitiesResponse>, + polling_policy(*current), __func__); +} + future> DatastoreAdminConnectionImpl::ImportEntities( google::datastore::admin::v1::ImportEntitiesRequest const& request) { @@ -146,6 +200,60 @@ DatastoreAdminConnectionImpl::ImportEntities( polling_policy(*current), __func__); } +StatusOr +DatastoreAdminConnectionImpl::ImportEntities( + ExperimentalTag, NoAwaitTag, + google::datastore::admin::v1::ImportEntitiesRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->ImportEntities(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::datastore::admin::v1::ImportEntitiesRequest const& request) { + return stub_->ImportEntities(context, options, request); + }, + *current, request, __func__); +} + +future> +DatastoreAdminConnectionImpl::ImportEntities( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to ImportEntities", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::datastore::admin::v1::ImportEntitiesMetadata>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::datastore::admin::v1::ImportEntitiesMetadata>, + polling_policy(*current), __func__); +} + future> DatastoreAdminConnectionImpl::CreateIndex( google::datastore::admin::v1::CreateIndexRequest const& request) { @@ -185,6 +293,58 @@ DatastoreAdminConnectionImpl::CreateIndex( polling_policy(*current), __func__); } +StatusOr +DatastoreAdminConnectionImpl::CreateIndex( + ExperimentalTag, NoAwaitTag, + google::datastore::admin::v1::CreateIndexRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateIndex(request), + [this](grpc::ClientContext& context, Options const& options, + google::datastore::admin::v1::CreateIndexRequest const& request) { + return stub_->CreateIndex(context, options, request); + }, + *current, request, __func__); +} + +future> +DatastoreAdminConnectionImpl::CreateIndex( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to CreateIndex", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::datastore::admin::v1::Index>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::datastore::admin::v1::Index>, + polling_policy(*current), __func__); +} + future> DatastoreAdminConnectionImpl::DeleteIndex( google::datastore::admin::v1::DeleteIndexRequest const& request) { @@ -224,6 +384,58 @@ DatastoreAdminConnectionImpl::DeleteIndex( polling_policy(*current), __func__); } +StatusOr +DatastoreAdminConnectionImpl::DeleteIndex( + ExperimentalTag, NoAwaitTag, + google::datastore::admin::v1::DeleteIndexRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteIndex(request), + [this](grpc::ClientContext& context, Options const& options, + google::datastore::admin::v1::DeleteIndexRequest const& request) { + return stub_->DeleteIndex(context, options, request); + }, + *current, request, __func__); +} + +future> +DatastoreAdminConnectionImpl::DeleteIndex( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteIndex", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::datastore::admin::v1::Index>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::datastore::admin::v1::Index>, + polling_policy(*current), __func__); +} + StatusOr DatastoreAdminConnectionImpl::GetIndex( google::datastore::admin::v1::GetIndexRequest const& request) { diff --git a/google/cloud/datastore/admin/v1/internal/datastore_admin_connection_impl.h b/google/cloud/datastore/admin/v1/internal/datastore_admin_connection_impl.h index 2b5176d8f52ec..23bb5997005f3 100644 --- a/google/cloud/datastore/admin/v1/internal/datastore_admin_connection_impl.h +++ b/google/cloud/datastore/admin/v1/internal/datastore_admin_connection_impl.h @@ -56,16 +56,50 @@ class DatastoreAdminConnectionImpl ExportEntities(google::datastore::admin::v1::ExportEntitiesRequest const& request) override; + StatusOr ExportEntities( + ExperimentalTag, NoAwaitTag, + google::datastore::admin::v1::ExportEntitiesRequest const& request) + override; + + future> + ExportEntities(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ImportEntities(google::datastore::admin::v1::ImportEntitiesRequest const& request) override; + StatusOr ImportEntities( + ExperimentalTag, NoAwaitTag, + google::datastore::admin::v1::ImportEntitiesRequest const& request) + override; + + future> + ImportEntities(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> CreateIndex( google::datastore::admin::v1::CreateIndexRequest const& request) override; + StatusOr CreateIndex( + ExperimentalTag, NoAwaitTag, + google::datastore::admin::v1::CreateIndexRequest const& request) override; + + future> CreateIndex( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteIndex( google::datastore::admin::v1::DeleteIndexRequest const& request) override; + StatusOr DeleteIndex( + ExperimentalTag, NoAwaitTag, + google::datastore::admin::v1::DeleteIndexRequest const& request) override; + + future> DeleteIndex( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetIndex( google::datastore::admin::v1::GetIndexRequest const& request) override; diff --git a/google/cloud/datastore/admin/v1/internal/datastore_admin_tracing_connection.cc b/google/cloud/datastore/admin/v1/internal/datastore_admin_tracing_connection.cc index 2787cb7f8900b..729605e1da333 100644 --- a/google/cloud/datastore/admin/v1/internal/datastore_admin_tracing_connection.cc +++ b/google/cloud/datastore/admin/v1/internal/datastore_admin_tracing_connection.cc @@ -42,6 +42,27 @@ DatastoreAdminTracingConnection::ExportEntities( return internal::EndSpan(std::move(span), child_->ExportEntities(request)); } +StatusOr +DatastoreAdminTracingConnection::ExportEntities( + ExperimentalTag, NoAwaitTag, + google::datastore::admin::v1::ExportEntitiesRequest const& request) { + auto span = internal::MakeSpan( + "datastore_admin_v1::DatastoreAdminConnection::ExportEntities"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->ExportEntities(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +DatastoreAdminTracingConnection::ExportEntities( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "datastore_admin_v1::DatastoreAdminConnection::ExportEntities"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->ExportEntities(ExperimentalTag{}, operation)); +} + future> DatastoreAdminTracingConnection::ImportEntities( google::datastore::admin::v1::ImportEntitiesRequest const& request) { @@ -51,6 +72,27 @@ DatastoreAdminTracingConnection::ImportEntities( return internal::EndSpan(std::move(span), child_->ImportEntities(request)); } +StatusOr +DatastoreAdminTracingConnection::ImportEntities( + ExperimentalTag, NoAwaitTag, + google::datastore::admin::v1::ImportEntitiesRequest const& request) { + auto span = internal::MakeSpan( + "datastore_admin_v1::DatastoreAdminConnection::ImportEntities"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->ImportEntities(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +DatastoreAdminTracingConnection::ImportEntities( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "datastore_admin_v1::DatastoreAdminConnection::ImportEntities"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->ImportEntities(ExperimentalTag{}, operation)); +} + future> DatastoreAdminTracingConnection::CreateIndex( google::datastore::admin::v1::CreateIndexRequest const& request) { @@ -60,6 +102,27 @@ DatastoreAdminTracingConnection::CreateIndex( return internal::EndSpan(std::move(span), child_->CreateIndex(request)); } +StatusOr +DatastoreAdminTracingConnection::CreateIndex( + ExperimentalTag, NoAwaitTag, + google::datastore::admin::v1::CreateIndexRequest const& request) { + auto span = internal::MakeSpan( + "datastore_admin_v1::DatastoreAdminConnection::CreateIndex"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->CreateIndex(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +DatastoreAdminTracingConnection::CreateIndex( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "datastore_admin_v1::DatastoreAdminConnection::CreateIndex"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->CreateIndex(ExperimentalTag{}, operation)); +} + future> DatastoreAdminTracingConnection::DeleteIndex( google::datastore::admin::v1::DeleteIndexRequest const& request) { @@ -69,6 +132,27 @@ DatastoreAdminTracingConnection::DeleteIndex( return internal::EndSpan(std::move(span), child_->DeleteIndex(request)); } +StatusOr +DatastoreAdminTracingConnection::DeleteIndex( + ExperimentalTag, NoAwaitTag, + google::datastore::admin::v1::DeleteIndexRequest const& request) { + auto span = internal::MakeSpan( + "datastore_admin_v1::DatastoreAdminConnection::DeleteIndex"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->DeleteIndex(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +DatastoreAdminTracingConnection::DeleteIndex( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "datastore_admin_v1::DatastoreAdminConnection::DeleteIndex"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->DeleteIndex(ExperimentalTag{}, operation)); +} + StatusOr DatastoreAdminTracingConnection::GetIndex( google::datastore::admin::v1::GetIndexRequest const& request) { diff --git a/google/cloud/datastore/admin/v1/internal/datastore_admin_tracing_connection.h b/google/cloud/datastore/admin/v1/internal/datastore_admin_tracing_connection.h index ffc34dd2f667a..939d9e9bbe387 100644 --- a/google/cloud/datastore/admin/v1/internal/datastore_admin_tracing_connection.h +++ b/google/cloud/datastore/admin/v1/internal/datastore_admin_tracing_connection.h @@ -44,16 +44,50 @@ class DatastoreAdminTracingConnection ExportEntities(google::datastore::admin::v1::ExportEntitiesRequest const& request) override; + StatusOr ExportEntities( + ExperimentalTag, NoAwaitTag, + google::datastore::admin::v1::ExportEntitiesRequest const& request) + override; + + future> + ExportEntities(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ImportEntities(google::datastore::admin::v1::ImportEntitiesRequest const& request) override; + StatusOr ImportEntities( + ExperimentalTag, NoAwaitTag, + google::datastore::admin::v1::ImportEntitiesRequest const& request) + override; + + future> + ImportEntities(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> CreateIndex( google::datastore::admin::v1::CreateIndexRequest const& request) override; + StatusOr CreateIndex( + ExperimentalTag, NoAwaitTag, + google::datastore::admin::v1::CreateIndexRequest const& request) override; + + future> CreateIndex( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteIndex( google::datastore::admin::v1::DeleteIndexRequest const& request) override; + StatusOr DeleteIndex( + ExperimentalTag, NoAwaitTag, + google::datastore::admin::v1::DeleteIndexRequest const& request) override; + + future> DeleteIndex( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetIndex( google::datastore::admin::v1::GetIndexRequest const& request) override; diff --git a/google/cloud/datastore/admin/v1/mocks/mock_datastore_admin_connection.h b/google/cloud/datastore/admin/v1/mocks/mock_datastore_admin_connection.h index db68901f72b80..a5ab048f548db 100644 --- a/google/cloud/datastore/admin/v1/mocks/mock_datastore_admin_connection.h +++ b/google/cloud/datastore/admin/v1/mocks/mock_datastore_admin_connection.h @@ -53,22 +53,68 @@ class MockDatastoreAdminConnection (google::datastore::admin::v1::ExportEntitiesRequest const& request), (override)); + MOCK_METHOD( + StatusOr, ExportEntities, + (ExperimentalTag, NoAwaitTag, + google::datastore::admin::v1::ExportEntitiesRequest const& request), + (override)); + + MOCK_METHOD( + future>, + ExportEntities, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, ImportEntities, (google::datastore::admin::v1::ImportEntitiesRequest const& request), (override)); + MOCK_METHOD( + StatusOr, ImportEntities, + (ExperimentalTag, NoAwaitTag, + google::datastore::admin::v1::ImportEntitiesRequest const& request), + (override)); + + MOCK_METHOD( + future>, + ImportEntities, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, CreateIndex, (google::datastore::admin::v1::CreateIndexRequest const& request), (override)); + MOCK_METHOD(StatusOr, CreateIndex, + (ExperimentalTag, NoAwaitTag, + google::datastore::admin::v1::CreateIndexRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateIndex, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, DeleteIndex, (google::datastore::admin::v1::DeleteIndexRequest const& request), (override)); + MOCK_METHOD(StatusOr, DeleteIndex, + (ExperimentalTag, NoAwaitTag, + google::datastore::admin::v1::DeleteIndexRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteIndex, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(StatusOr, GetIndex, (google::datastore::admin::v1::GetIndexRequest const& request), (override)); diff --git a/google/cloud/datastore/v1/datastore_connection.h b/google/cloud/datastore/v1/datastore_connection.h index bacabe33d911c..2e7b4594090d6 100644 --- a/google/cloud/datastore/v1/datastore_connection.h +++ b/google/cloud/datastore/v1/datastore_connection.h @@ -22,6 +22,7 @@ #include "google/cloud/datastore/v1/datastore_connection_idempotency_policy.h" #include "google/cloud/datastore/v1/internal/datastore_retry_traits.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/internal/retry_policy_impl.h" #include "google/cloud/options.h" #include "google/cloud/status_or.h" diff --git a/google/cloud/datastream/v1/datastream_connection.cc b/google/cloud/datastream/v1/datastream_connection.cc index 9d3bfe6a1c9ee..1960efdcf26dd 100644 --- a/google/cloud/datastream/v1/datastream_connection.cc +++ b/google/cloud/datastream/v1/datastream_connection.cc @@ -60,6 +60,22 @@ DatastreamConnection::CreateConnectionProfile( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +DatastreamConnection::CreateConnectionProfile( + ExperimentalTag, NoAwaitTag, + google::cloud::datastream::v1::CreateConnectionProfileRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +DatastreamConnection::CreateConnectionProfile( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> DatastreamConnection::UpdateConnectionProfile( google::cloud::datastream::v1::UpdateConnectionProfileRequest const&) { @@ -68,6 +84,22 @@ DatastreamConnection::UpdateConnectionProfile( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +DatastreamConnection::UpdateConnectionProfile( + ExperimentalTag, NoAwaitTag, + google::cloud::datastream::v1::UpdateConnectionProfileRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +DatastreamConnection::UpdateConnectionProfile( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> DatastreamConnection::DeleteConnectionProfile( google::cloud::datastream::v1::DeleteConnectionProfileRequest const&) { @@ -76,6 +108,22 @@ DatastreamConnection::DeleteConnectionProfile( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +DatastreamConnection::DeleteConnectionProfile( + ExperimentalTag, NoAwaitTag, + google::cloud::datastream::v1::DeleteConnectionProfileRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +DatastreamConnection::DeleteConnectionProfile( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr DatastreamConnection::DiscoverConnectionProfile( google::cloud::datastream::v1::DiscoverConnectionProfileRequest const&) { @@ -103,6 +151,21 @@ DatastreamConnection::CreateStream( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr DatastreamConnection::CreateStream( + ExperimentalTag, NoAwaitTag, + google::cloud::datastream::v1::CreateStreamRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +DatastreamConnection::CreateStream(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> DatastreamConnection::UpdateStream( google::cloud::datastream::v1::UpdateStreamRequest const&) { @@ -111,6 +174,21 @@ DatastreamConnection::UpdateStream( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr DatastreamConnection::UpdateStream( + ExperimentalTag, NoAwaitTag, + google::cloud::datastream::v1::UpdateStreamRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +DatastreamConnection::UpdateStream(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> DatastreamConnection::DeleteStream( google::cloud::datastream::v1::DeleteStreamRequest const&) { @@ -119,6 +197,21 @@ DatastreamConnection::DeleteStream( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr DatastreamConnection::DeleteStream( + ExperimentalTag, NoAwaitTag, + google::cloud::datastream::v1::DeleteStreamRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +DatastreamConnection::DeleteStream(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr DatastreamConnection::GetStreamObject( google::cloud::datastream::v1::GetStreamObjectRequest const&) { @@ -166,6 +259,22 @@ DatastreamConnection::CreatePrivateConnection( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +DatastreamConnection::CreatePrivateConnection( + ExperimentalTag, NoAwaitTag, + google::cloud::datastream::v1::CreatePrivateConnectionRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +DatastreamConnection::CreatePrivateConnection( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr DatastreamConnection::GetPrivateConnection( google::cloud::datastream::v1::GetPrivateConnectionRequest const&) { @@ -188,6 +297,22 @@ DatastreamConnection::DeletePrivateConnection( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +DatastreamConnection::DeletePrivateConnection( + ExperimentalTag, NoAwaitTag, + google::cloud::datastream::v1::DeletePrivateConnectionRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +DatastreamConnection::DeletePrivateConnection( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> DatastreamConnection::CreateRoute( google::cloud::datastream::v1::CreateRouteRequest const&) { @@ -196,6 +321,21 @@ DatastreamConnection::CreateRoute( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr DatastreamConnection::CreateRoute( + ExperimentalTag, NoAwaitTag, + google::cloud::datastream::v1::CreateRouteRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +DatastreamConnection::CreateRoute(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr DatastreamConnection::GetRoute( google::cloud::datastream::v1::GetRouteRequest const&) { return Status(StatusCode::kUnimplemented, "not implemented"); @@ -217,6 +357,21 @@ DatastreamConnection::DeleteRoute( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr DatastreamConnection::DeleteRoute( + ExperimentalTag, NoAwaitTag, + google::cloud::datastream::v1::DeleteRouteRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +DatastreamConnection::DeleteRoute(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + std::shared_ptr MakeDatastreamConnection( Options options) { internal::CheckExpectedOptions CreateConnectionProfile( + ExperimentalTag, NoAwaitTag, + google::cloud::datastream::v1::CreateConnectionProfileRequest const& + request); + + virtual future> + CreateConnectionProfile(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> UpdateConnectionProfile( google::cloud::datastream::v1::UpdateConnectionProfileRequest const& request); + virtual StatusOr UpdateConnectionProfile( + ExperimentalTag, NoAwaitTag, + google::cloud::datastream::v1::UpdateConnectionProfileRequest const& + request); + + virtual future> + UpdateConnectionProfile(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> DeleteConnectionProfile( google::cloud::datastream::v1::DeleteConnectionProfileRequest const& request); + virtual StatusOr DeleteConnectionProfile( + ExperimentalTag, NoAwaitTag, + google::cloud::datastream::v1::DeleteConnectionProfileRequest const& + request); + + virtual future> + DeleteConnectionProfile(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StatusOr< google::cloud::datastream::v1::DiscoverConnectionProfileResponse> DiscoverConnectionProfile( @@ -223,13 +252,35 @@ class DatastreamConnection { virtual future> CreateStream( google::cloud::datastream::v1::CreateStreamRequest const& request); + virtual StatusOr CreateStream( + ExperimentalTag, NoAwaitTag, + google::cloud::datastream::v1::CreateStreamRequest const& request); + + virtual future> CreateStream( + ExperimentalTag, google::longrunning::Operation const& operation); + virtual future> UpdateStream( google::cloud::datastream::v1::UpdateStreamRequest const& request); + virtual StatusOr UpdateStream( + ExperimentalTag, NoAwaitTag, + google::cloud::datastream::v1::UpdateStreamRequest const& request); + + virtual future> UpdateStream( + ExperimentalTag, google::longrunning::Operation const& operation); + virtual future> DeleteStream( google::cloud::datastream::v1::DeleteStreamRequest const& request); + virtual StatusOr DeleteStream( + ExperimentalTag, NoAwaitTag, + google::cloud::datastream::v1::DeleteStreamRequest const& request); + + virtual future> + DeleteStream(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StatusOr GetStreamObject( google::cloud::datastream::v1::GetStreamObjectRequest const& request); @@ -257,6 +308,15 @@ class DatastreamConnection { google::cloud::datastream::v1::CreatePrivateConnectionRequest const& request); + virtual StatusOr CreatePrivateConnection( + ExperimentalTag, NoAwaitTag, + google::cloud::datastream::v1::CreatePrivateConnectionRequest const& + request); + + virtual future> + CreatePrivateConnection(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StatusOr GetPrivateConnection( google::cloud::datastream::v1::GetPrivateConnectionRequest const& @@ -271,9 +331,25 @@ class DatastreamConnection { google::cloud::datastream::v1::DeletePrivateConnectionRequest const& request); + virtual StatusOr DeletePrivateConnection( + ExperimentalTag, NoAwaitTag, + google::cloud::datastream::v1::DeletePrivateConnectionRequest const& + request); + + virtual future> + DeletePrivateConnection(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> CreateRoute( google::cloud::datastream::v1::CreateRouteRequest const& request); + virtual StatusOr CreateRoute( + ExperimentalTag, NoAwaitTag, + google::cloud::datastream::v1::CreateRouteRequest const& request); + + virtual future> CreateRoute( + ExperimentalTag, google::longrunning::Operation const& operation); + virtual StatusOr GetRoute( google::cloud::datastream::v1::GetRouteRequest const& request); @@ -282,6 +358,13 @@ class DatastreamConnection { virtual future> DeleteRoute(google::cloud::datastream::v1::DeleteRouteRequest const& request); + + virtual StatusOr DeleteRoute( + ExperimentalTag, NoAwaitTag, + google::cloud::datastream::v1::DeleteRouteRequest const& request); + + virtual future> + DeleteRoute(ExperimentalTag, google::longrunning::Operation const& operation); }; /** diff --git a/google/cloud/datastream/v1/internal/datastream_connection_impl.cc b/google/cloud/datastream/v1/internal/datastream_connection_impl.cc index a5cf733e56b17..f59b6b3728c1c 100644 --- a/google/cloud/datastream/v1/internal/datastream_connection_impl.cc +++ b/google/cloud/datastream/v1/internal/datastream_connection_impl.cc @@ -156,6 +156,61 @@ DatastreamConnectionImpl::CreateConnectionProfile( polling_policy(*current), __func__); } +StatusOr +DatastreamConnectionImpl::CreateConnectionProfile( + ExperimentalTag, NoAwaitTag, + google::cloud::datastream::v1::CreateConnectionProfileRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateConnectionProfile(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::datastream::v1::CreateConnectionProfileRequest const& + request) { + return stub_->CreateConnectionProfile(context, options, request); + }, + *current, request, __func__); +} + +future> +DatastreamConnectionImpl::CreateConnectionProfile( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to CreateConnectionProfile", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::datastream::v1::ConnectionProfile>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::datastream::v1::ConnectionProfile>, + polling_policy(*current), __func__); +} + future> DatastreamConnectionImpl::UpdateConnectionProfile( google::cloud::datastream::v1::UpdateConnectionProfileRequest const& @@ -197,6 +252,61 @@ DatastreamConnectionImpl::UpdateConnectionProfile( polling_policy(*current), __func__); } +StatusOr +DatastreamConnectionImpl::UpdateConnectionProfile( + ExperimentalTag, NoAwaitTag, + google::cloud::datastream::v1::UpdateConnectionProfileRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UpdateConnectionProfile(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::datastream::v1::UpdateConnectionProfileRequest const& + request) { + return stub_->UpdateConnectionProfile(context, options, request); + }, + *current, request, __func__); +} + +future> +DatastreamConnectionImpl::UpdateConnectionProfile( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to UpdateConnectionProfile", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::datastream::v1::ConnectionProfile>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::datastream::v1::ConnectionProfile>, + polling_policy(*current), __func__); +} + future> DatastreamConnectionImpl::DeleteConnectionProfile( google::cloud::datastream::v1::DeleteConnectionProfileRequest const& @@ -238,6 +348,61 @@ DatastreamConnectionImpl::DeleteConnectionProfile( polling_policy(*current), __func__); } +StatusOr +DatastreamConnectionImpl::DeleteConnectionProfile( + ExperimentalTag, NoAwaitTag, + google::cloud::datastream::v1::DeleteConnectionProfileRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteConnectionProfile(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::datastream::v1::DeleteConnectionProfileRequest const& + request) { + return stub_->DeleteConnectionProfile(context, options, request); + }, + *current, request, __func__); +} + +future> +DatastreamConnectionImpl::DeleteConnectionProfile( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteConnectionProfile", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::datastream::v1::OperationMetadata>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::cloud::datastream::v1::OperationMetadata>, + polling_policy(*current), __func__); +} + StatusOr DatastreamConnectionImpl::DiscoverConnectionProfile( google::cloud::datastream::v1::DiscoverConnectionProfileRequest const& @@ -342,6 +507,57 @@ DatastreamConnectionImpl::CreateStream( polling_policy(*current), __func__); } +StatusOr DatastreamConnectionImpl::CreateStream( + ExperimentalTag, NoAwaitTag, + google::cloud::datastream::v1::CreateStreamRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateStream(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::datastream::v1::CreateStreamRequest const& request) { + return stub_->CreateStream(context, options, request); + }, + *current, request, __func__); +} + +future> +DatastreamConnectionImpl::CreateStream( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to CreateStream", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::datastream::v1::Stream>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::datastream::v1::Stream>, + polling_policy(*current), __func__); +} + future> DatastreamConnectionImpl::UpdateStream( google::cloud::datastream::v1::UpdateStreamRequest const& request) { @@ -381,6 +597,57 @@ DatastreamConnectionImpl::UpdateStream( polling_policy(*current), __func__); } +StatusOr DatastreamConnectionImpl::UpdateStream( + ExperimentalTag, NoAwaitTag, + google::cloud::datastream::v1::UpdateStreamRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UpdateStream(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::datastream::v1::UpdateStreamRequest const& request) { + return stub_->UpdateStream(context, options, request); + }, + *current, request, __func__); +} + +future> +DatastreamConnectionImpl::UpdateStream( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to UpdateStream", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::datastream::v1::Stream>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::datastream::v1::Stream>, + polling_policy(*current), __func__); +} + future> DatastreamConnectionImpl::DeleteStream( google::cloud::datastream::v1::DeleteStreamRequest const& request) { @@ -420,6 +687,58 @@ DatastreamConnectionImpl::DeleteStream( polling_policy(*current), __func__); } +StatusOr DatastreamConnectionImpl::DeleteStream( + ExperimentalTag, NoAwaitTag, + google::cloud::datastream::v1::DeleteStreamRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteStream(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::datastream::v1::DeleteStreamRequest const& request) { + return stub_->DeleteStream(context, options, request); + }, + *current, request, __func__); +} + +future> +DatastreamConnectionImpl::DeleteStream( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteStream", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::datastream::v1::OperationMetadata>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::cloud::datastream::v1::OperationMetadata>, + polling_policy(*current), __func__); +} + StatusOr DatastreamConnectionImpl::GetStreamObject( google::cloud::datastream::v1::GetStreamObjectRequest const& request) { @@ -587,6 +906,61 @@ DatastreamConnectionImpl::CreatePrivateConnection( polling_policy(*current), __func__); } +StatusOr +DatastreamConnectionImpl::CreatePrivateConnection( + ExperimentalTag, NoAwaitTag, + google::cloud::datastream::v1::CreatePrivateConnectionRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreatePrivateConnection(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::datastream::v1::CreatePrivateConnectionRequest const& + request) { + return stub_->CreatePrivateConnection(context, options, request); + }, + *current, request, __func__); +} + +future> +DatastreamConnectionImpl::CreatePrivateConnection( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to CreatePrivateConnection", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::datastream::v1::PrivateConnection>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::datastream::v1::PrivateConnection>, + polling_policy(*current), __func__); +} + StatusOr DatastreamConnectionImpl::GetPrivateConnection( google::cloud::datastream::v1::GetPrivateConnectionRequest const& request) { @@ -679,6 +1053,61 @@ DatastreamConnectionImpl::DeletePrivateConnection( polling_policy(*current), __func__); } +StatusOr +DatastreamConnectionImpl::DeletePrivateConnection( + ExperimentalTag, NoAwaitTag, + google::cloud::datastream::v1::DeletePrivateConnectionRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeletePrivateConnection(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::datastream::v1::DeletePrivateConnectionRequest const& + request) { + return stub_->DeletePrivateConnection(context, options, request); + }, + *current, request, __func__); +} + +future> +DatastreamConnectionImpl::DeletePrivateConnection( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DeletePrivateConnection", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::datastream::v1::OperationMetadata>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::cloud::datastream::v1::OperationMetadata>, + polling_policy(*current), __func__); +} + future> DatastreamConnectionImpl::CreateRoute( google::cloud::datastream::v1::CreateRouteRequest const& request) { @@ -718,6 +1147,56 @@ DatastreamConnectionImpl::CreateRoute( polling_policy(*current), __func__); } +StatusOr DatastreamConnectionImpl::CreateRoute( + ExperimentalTag, NoAwaitTag, + google::cloud::datastream::v1::CreateRouteRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateRoute(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::datastream::v1::CreateRouteRequest const& request) { + return stub_->CreateRoute(context, options, request); + }, + *current, request, __func__); +} + +future> +DatastreamConnectionImpl::CreateRoute( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to CreateRoute", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::datastream::v1::Route>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::datastream::v1::Route>, + polling_policy(*current), __func__); +} + StatusOr DatastreamConnectionImpl::GetRoute( google::cloud::datastream::v1::GetRouteRequest const& request) { @@ -805,6 +1284,57 @@ DatastreamConnectionImpl::DeleteRoute( polling_policy(*current), __func__); } +StatusOr DatastreamConnectionImpl::DeleteRoute( + ExperimentalTag, NoAwaitTag, + google::cloud::datastream::v1::DeleteRouteRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteRoute(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::datastream::v1::DeleteRouteRequest const& request) { + return stub_->DeleteRoute(context, options, request); + }, + *current, request, __func__); +} + +future> +DatastreamConnectionImpl::DeleteRoute( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteRoute", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::datastream::v1::OperationMetadata>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::cloud::datastream::v1::OperationMetadata>, + polling_policy(*current), __func__); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace datastream_v1_internal } // namespace cloud diff --git a/google/cloud/datastream/v1/internal/datastream_connection_impl.h b/google/cloud/datastream/v1/internal/datastream_connection_impl.h index 58715ad342158..bf3875cce87fb 100644 --- a/google/cloud/datastream/v1/internal/datastream_connection_impl.h +++ b/google/cloud/datastream/v1/internal/datastream_connection_impl.h @@ -66,16 +66,46 @@ class DatastreamConnectionImpl : public datastream_v1::DatastreamConnection { google::cloud::datastream::v1::CreateConnectionProfileRequest const& request) override; + StatusOr CreateConnectionProfile( + ExperimentalTag, NoAwaitTag, + google::cloud::datastream::v1::CreateConnectionProfileRequest const& + request) override; + + future> + CreateConnectionProfile( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateConnectionProfile( google::cloud::datastream::v1::UpdateConnectionProfileRequest const& request) override; + StatusOr UpdateConnectionProfile( + ExperimentalTag, NoAwaitTag, + google::cloud::datastream::v1::UpdateConnectionProfileRequest const& + request) override; + + future> + UpdateConnectionProfile( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteConnectionProfile( google::cloud::datastream::v1::DeleteConnectionProfileRequest const& request) override; + StatusOr DeleteConnectionProfile( + ExperimentalTag, NoAwaitTag, + google::cloud::datastream::v1::DeleteConnectionProfileRequest const& + request) override; + + future> + DeleteConnectionProfile( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr DiscoverConnectionProfile( google::cloud::datastream::v1::DiscoverConnectionProfileRequest const& @@ -91,14 +121,41 @@ class DatastreamConnectionImpl : public datastream_v1::DatastreamConnection { google::cloud::datastream::v1::CreateStreamRequest const& request) override; + StatusOr CreateStream( + ExperimentalTag, NoAwaitTag, + google::cloud::datastream::v1::CreateStreamRequest const& request) + override; + + future> CreateStream( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateStream( google::cloud::datastream::v1::UpdateStreamRequest const& request) override; + StatusOr UpdateStream( + ExperimentalTag, NoAwaitTag, + google::cloud::datastream::v1::UpdateStreamRequest const& request) + override; + + future> UpdateStream( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteStream(google::cloud::datastream::v1::DeleteStreamRequest const& request) override; + StatusOr DeleteStream( + ExperimentalTag, NoAwaitTag, + google::cloud::datastream::v1::DeleteStreamRequest const& request) + override; + + future> + DeleteStream(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetStreamObject( google::cloud::datastream::v1::GetStreamObjectRequest const& request) override; @@ -126,6 +183,16 @@ class DatastreamConnectionImpl : public datastream_v1::DatastreamConnection { google::cloud::datastream::v1::CreatePrivateConnectionRequest const& request) override; + StatusOr CreatePrivateConnection( + ExperimentalTag, NoAwaitTag, + google::cloud::datastream::v1::CreatePrivateConnectionRequest const& + request) override; + + future> + CreatePrivateConnection( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetPrivateConnection( google::cloud::datastream::v1::GetPrivateConnectionRequest const& request) @@ -141,10 +208,29 @@ class DatastreamConnectionImpl : public datastream_v1::DatastreamConnection { google::cloud::datastream::v1::DeletePrivateConnectionRequest const& request) override; + StatusOr DeletePrivateConnection( + ExperimentalTag, NoAwaitTag, + google::cloud::datastream::v1::DeletePrivateConnectionRequest const& + request) override; + + future> + DeletePrivateConnection( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> CreateRoute( google::cloud::datastream::v1::CreateRouteRequest const& request) override; + StatusOr CreateRoute( + ExperimentalTag, NoAwaitTag, + google::cloud::datastream::v1::CreateRouteRequest const& request) + override; + + future> CreateRoute( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetRoute( google::cloud::datastream::v1::GetRouteRequest const& request) override; @@ -155,6 +241,15 @@ class DatastreamConnectionImpl : public datastream_v1::DatastreamConnection { DeleteRoute(google::cloud::datastream::v1::DeleteRouteRequest const& request) override; + StatusOr DeleteRoute( + ExperimentalTag, NoAwaitTag, + google::cloud::datastream::v1::DeleteRouteRequest const& request) + override; + + future> + DeleteRoute(ExperimentalTag, + google::longrunning::Operation const& operation) override; + private: std::unique_ptr background_; std::shared_ptr stub_; diff --git a/google/cloud/datastream/v1/internal/datastream_tracing_connection.cc b/google/cloud/datastream/v1/internal/datastream_tracing_connection.cc index a06301d55397e..63e90ec7db886 100644 --- a/google/cloud/datastream/v1/internal/datastream_tracing_connection.cc +++ b/google/cloud/datastream/v1/internal/datastream_tracing_connection.cc @@ -65,6 +65,29 @@ DatastreamTracingConnection::CreateConnectionProfile( child_->CreateConnectionProfile(request)); } +StatusOr +DatastreamTracingConnection::CreateConnectionProfile( + ExperimentalTag, NoAwaitTag, + google::cloud::datastream::v1::CreateConnectionProfileRequest const& + request) { + auto span = internal::MakeSpan( + "datastream_v1::DatastreamConnection::CreateConnectionProfile"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->CreateConnectionProfile(ExperimentalTag{}, NoAwaitTag{}, + request)); +} + +future> +DatastreamTracingConnection::CreateConnectionProfile( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "datastream_v1::DatastreamConnection::CreateConnectionProfile"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->CreateConnectionProfile( + ExperimentalTag{}, operation)); +} + future> DatastreamTracingConnection::UpdateConnectionProfile( google::cloud::datastream::v1::UpdateConnectionProfileRequest const& @@ -76,6 +99,29 @@ DatastreamTracingConnection::UpdateConnectionProfile( child_->UpdateConnectionProfile(request)); } +StatusOr +DatastreamTracingConnection::UpdateConnectionProfile( + ExperimentalTag, NoAwaitTag, + google::cloud::datastream::v1::UpdateConnectionProfileRequest const& + request) { + auto span = internal::MakeSpan( + "datastream_v1::DatastreamConnection::UpdateConnectionProfile"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->UpdateConnectionProfile(ExperimentalTag{}, NoAwaitTag{}, + request)); +} + +future> +DatastreamTracingConnection::UpdateConnectionProfile( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "datastream_v1::DatastreamConnection::UpdateConnectionProfile"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->UpdateConnectionProfile( + ExperimentalTag{}, operation)); +} + future> DatastreamTracingConnection::DeleteConnectionProfile( google::cloud::datastream::v1::DeleteConnectionProfileRequest const& @@ -87,6 +133,29 @@ DatastreamTracingConnection::DeleteConnectionProfile( child_->DeleteConnectionProfile(request)); } +StatusOr +DatastreamTracingConnection::DeleteConnectionProfile( + ExperimentalTag, NoAwaitTag, + google::cloud::datastream::v1::DeleteConnectionProfileRequest const& + request) { + auto span = internal::MakeSpan( + "datastream_v1::DatastreamConnection::DeleteConnectionProfile"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->DeleteConnectionProfile(ExperimentalTag{}, NoAwaitTag{}, + request)); +} + +future> +DatastreamTracingConnection::DeleteConnectionProfile( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "datastream_v1::DatastreamConnection::DeleteConnectionProfile"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->DeleteConnectionProfile( + ExperimentalTag{}, operation)); +} + StatusOr DatastreamTracingConnection::DiscoverConnectionProfile( google::cloud::datastream::v1::DiscoverConnectionProfileRequest const& @@ -126,6 +195,27 @@ DatastreamTracingConnection::CreateStream( return internal::EndSpan(std::move(span), child_->CreateStream(request)); } +StatusOr +DatastreamTracingConnection::CreateStream( + ExperimentalTag, NoAwaitTag, + google::cloud::datastream::v1::CreateStreamRequest const& request) { + auto span = + internal::MakeSpan("datastream_v1::DatastreamConnection::CreateStream"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->CreateStream(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +DatastreamTracingConnection::CreateStream( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = + internal::MakeSpan("datastream_v1::DatastreamConnection::CreateStream"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->CreateStream(ExperimentalTag{}, operation)); +} + future> DatastreamTracingConnection::UpdateStream( google::cloud::datastream::v1::UpdateStreamRequest const& request) { @@ -135,6 +225,27 @@ DatastreamTracingConnection::UpdateStream( return internal::EndSpan(std::move(span), child_->UpdateStream(request)); } +StatusOr +DatastreamTracingConnection::UpdateStream( + ExperimentalTag, NoAwaitTag, + google::cloud::datastream::v1::UpdateStreamRequest const& request) { + auto span = + internal::MakeSpan("datastream_v1::DatastreamConnection::UpdateStream"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->UpdateStream(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +DatastreamTracingConnection::UpdateStream( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = + internal::MakeSpan("datastream_v1::DatastreamConnection::UpdateStream"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->UpdateStream(ExperimentalTag{}, operation)); +} + future> DatastreamTracingConnection::DeleteStream( google::cloud::datastream::v1::DeleteStreamRequest const& request) { @@ -144,6 +255,27 @@ DatastreamTracingConnection::DeleteStream( return internal::EndSpan(std::move(span), child_->DeleteStream(request)); } +StatusOr +DatastreamTracingConnection::DeleteStream( + ExperimentalTag, NoAwaitTag, + google::cloud::datastream::v1::DeleteStreamRequest const& request) { + auto span = + internal::MakeSpan("datastream_v1::DatastreamConnection::DeleteStream"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->DeleteStream(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +DatastreamTracingConnection::DeleteStream( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = + internal::MakeSpan("datastream_v1::DatastreamConnection::DeleteStream"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->DeleteStream(ExperimentalTag{}, operation)); +} + StatusOr DatastreamTracingConnection::GetStreamObject( google::cloud::datastream::v1::GetStreamObjectRequest const& request) { @@ -213,6 +345,29 @@ DatastreamTracingConnection::CreatePrivateConnection( child_->CreatePrivateConnection(request)); } +StatusOr +DatastreamTracingConnection::CreatePrivateConnection( + ExperimentalTag, NoAwaitTag, + google::cloud::datastream::v1::CreatePrivateConnectionRequest const& + request) { + auto span = internal::MakeSpan( + "datastream_v1::DatastreamConnection::CreatePrivateConnection"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->CreatePrivateConnection(ExperimentalTag{}, NoAwaitTag{}, + request)); +} + +future> +DatastreamTracingConnection::CreatePrivateConnection( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "datastream_v1::DatastreamConnection::CreatePrivateConnection"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->CreatePrivateConnection( + ExperimentalTag{}, operation)); +} + StatusOr DatastreamTracingConnection::GetPrivateConnection( google::cloud::datastream::v1::GetPrivateConnectionRequest const& request) { @@ -245,6 +400,29 @@ DatastreamTracingConnection::DeletePrivateConnection( child_->DeletePrivateConnection(request)); } +StatusOr +DatastreamTracingConnection::DeletePrivateConnection( + ExperimentalTag, NoAwaitTag, + google::cloud::datastream::v1::DeletePrivateConnectionRequest const& + request) { + auto span = internal::MakeSpan( + "datastream_v1::DatastreamConnection::DeletePrivateConnection"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->DeletePrivateConnection(ExperimentalTag{}, NoAwaitTag{}, + request)); +} + +future> +DatastreamTracingConnection::DeletePrivateConnection( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "datastream_v1::DatastreamConnection::DeletePrivateConnection"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->DeletePrivateConnection( + ExperimentalTag{}, operation)); +} + future> DatastreamTracingConnection::CreateRoute( google::cloud::datastream::v1::CreateRouteRequest const& request) { @@ -254,6 +432,27 @@ DatastreamTracingConnection::CreateRoute( return internal::EndSpan(std::move(span), child_->CreateRoute(request)); } +StatusOr +DatastreamTracingConnection::CreateRoute( + ExperimentalTag, NoAwaitTag, + google::cloud::datastream::v1::CreateRouteRequest const& request) { + auto span = + internal::MakeSpan("datastream_v1::DatastreamConnection::CreateRoute"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->CreateRoute(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +DatastreamTracingConnection::CreateRoute( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = + internal::MakeSpan("datastream_v1::DatastreamConnection::CreateRoute"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->CreateRoute(ExperimentalTag{}, operation)); +} + StatusOr DatastreamTracingConnection::GetRoute( google::cloud::datastream::v1::GetRouteRequest const& request) { @@ -283,6 +482,27 @@ DatastreamTracingConnection::DeleteRoute( return internal::EndSpan(std::move(span), child_->DeleteRoute(request)); } +StatusOr +DatastreamTracingConnection::DeleteRoute( + ExperimentalTag, NoAwaitTag, + google::cloud::datastream::v1::DeleteRouteRequest const& request) { + auto span = + internal::MakeSpan("datastream_v1::DatastreamConnection::DeleteRoute"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->DeleteRoute(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +DatastreamTracingConnection::DeleteRoute( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = + internal::MakeSpan("datastream_v1::DatastreamConnection::DeleteRoute"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->DeleteRoute(ExperimentalTag{}, operation)); +} + #endif // GOOGLE_CLOUD_CPP_HAVE_OPENTELEMETRY std::shared_ptr diff --git a/google/cloud/datastream/v1/internal/datastream_tracing_connection.h b/google/cloud/datastream/v1/internal/datastream_tracing_connection.h index fdac55c958f40..56ad7647bb200 100644 --- a/google/cloud/datastream/v1/internal/datastream_tracing_connection.h +++ b/google/cloud/datastream/v1/internal/datastream_tracing_connection.h @@ -54,16 +54,46 @@ class DatastreamTracingConnection : public datastream_v1::DatastreamConnection { google::cloud::datastream::v1::CreateConnectionProfileRequest const& request) override; + StatusOr CreateConnectionProfile( + ExperimentalTag, NoAwaitTag, + google::cloud::datastream::v1::CreateConnectionProfileRequest const& + request) override; + + future> + CreateConnectionProfile( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateConnectionProfile( google::cloud::datastream::v1::UpdateConnectionProfileRequest const& request) override; + StatusOr UpdateConnectionProfile( + ExperimentalTag, NoAwaitTag, + google::cloud::datastream::v1::UpdateConnectionProfileRequest const& + request) override; + + future> + UpdateConnectionProfile( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteConnectionProfile( google::cloud::datastream::v1::DeleteConnectionProfileRequest const& request) override; + StatusOr DeleteConnectionProfile( + ExperimentalTag, NoAwaitTag, + google::cloud::datastream::v1::DeleteConnectionProfileRequest const& + request) override; + + future> + DeleteConnectionProfile( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr DiscoverConnectionProfile( google::cloud::datastream::v1::DiscoverConnectionProfileRequest const& @@ -79,14 +109,41 @@ class DatastreamTracingConnection : public datastream_v1::DatastreamConnection { google::cloud::datastream::v1::CreateStreamRequest const& request) override; + StatusOr CreateStream( + ExperimentalTag, NoAwaitTag, + google::cloud::datastream::v1::CreateStreamRequest const& request) + override; + + future> CreateStream( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateStream( google::cloud::datastream::v1::UpdateStreamRequest const& request) override; + StatusOr UpdateStream( + ExperimentalTag, NoAwaitTag, + google::cloud::datastream::v1::UpdateStreamRequest const& request) + override; + + future> UpdateStream( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteStream(google::cloud::datastream::v1::DeleteStreamRequest const& request) override; + StatusOr DeleteStream( + ExperimentalTag, NoAwaitTag, + google::cloud::datastream::v1::DeleteStreamRequest const& request) + override; + + future> + DeleteStream(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetStreamObject( google::cloud::datastream::v1::GetStreamObjectRequest const& request) override; @@ -114,6 +171,16 @@ class DatastreamTracingConnection : public datastream_v1::DatastreamConnection { google::cloud::datastream::v1::CreatePrivateConnectionRequest const& request) override; + StatusOr CreatePrivateConnection( + ExperimentalTag, NoAwaitTag, + google::cloud::datastream::v1::CreatePrivateConnectionRequest const& + request) override; + + future> + CreatePrivateConnection( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetPrivateConnection( google::cloud::datastream::v1::GetPrivateConnectionRequest const& request) @@ -129,10 +196,29 @@ class DatastreamTracingConnection : public datastream_v1::DatastreamConnection { google::cloud::datastream::v1::DeletePrivateConnectionRequest const& request) override; + StatusOr DeletePrivateConnection( + ExperimentalTag, NoAwaitTag, + google::cloud::datastream::v1::DeletePrivateConnectionRequest const& + request) override; + + future> + DeletePrivateConnection( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> CreateRoute( google::cloud::datastream::v1::CreateRouteRequest const& request) override; + StatusOr CreateRoute( + ExperimentalTag, NoAwaitTag, + google::cloud::datastream::v1::CreateRouteRequest const& request) + override; + + future> CreateRoute( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetRoute( google::cloud::datastream::v1::GetRouteRequest const& request) override; @@ -143,6 +229,15 @@ class DatastreamTracingConnection : public datastream_v1::DatastreamConnection { DeleteRoute(google::cloud::datastream::v1::DeleteRouteRequest const& request) override; + StatusOr DeleteRoute( + ExperimentalTag, NoAwaitTag, + google::cloud::datastream::v1::DeleteRouteRequest const& request) + override; + + future> + DeleteRoute(ExperimentalTag, + google::longrunning::Operation const& operation) override; + private: std::shared_ptr child_; }; diff --git a/google/cloud/datastream/v1/mocks/mock_datastream_connection.h b/google/cloud/datastream/v1/mocks/mock_datastream_connection.h index 430f4cc1267d6..380a94ade1073 100644 --- a/google/cloud/datastream/v1/mocks/mock_datastream_connection.h +++ b/google/cloud/datastream/v1/mocks/mock_datastream_connection.h @@ -65,6 +65,19 @@ class MockDatastreamConnection : public datastream_v1::DatastreamConnection { request), (override)); + MOCK_METHOD( + StatusOr, CreateConnectionProfile, + (ExperimentalTag, NoAwaitTag, + google::cloud::datastream::v1::CreateConnectionProfileRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + CreateConnectionProfile, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, UpdateConnectionProfile, @@ -72,6 +85,19 @@ class MockDatastreamConnection : public datastream_v1::DatastreamConnection { request), (override)); + MOCK_METHOD( + StatusOr, UpdateConnectionProfile, + (ExperimentalTag, NoAwaitTag, + google::cloud::datastream::v1::UpdateConnectionProfileRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + UpdateConnectionProfile, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteConnectionProfile, @@ -79,6 +105,19 @@ class MockDatastreamConnection : public datastream_v1::DatastreamConnection { request), (override)); + MOCK_METHOD( + StatusOr, DeleteConnectionProfile, + (ExperimentalTag, NoAwaitTag, + google::cloud::datastream::v1::DeleteConnectionProfileRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + DeleteConnectionProfile, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr< google::cloud::datastream::v1::DiscoverConnectionProfileResponse>, @@ -100,17 +139,53 @@ class MockDatastreamConnection : public datastream_v1::DatastreamConnection { (google::cloud::datastream::v1::CreateStreamRequest const& request), (override)); + MOCK_METHOD( + StatusOr, CreateStream, + (ExperimentalTag, NoAwaitTag, + google::cloud::datastream::v1::CreateStreamRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateStream, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, UpdateStream, (google::cloud::datastream::v1::UpdateStreamRequest const& request), (override)); + MOCK_METHOD( + StatusOr, UpdateStream, + (ExperimentalTag, NoAwaitTag, + google::cloud::datastream::v1::UpdateStreamRequest const& request), + (override)); + + MOCK_METHOD(future>, + UpdateStream, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteStream, (google::cloud::datastream::v1::DeleteStreamRequest const& request), (override)); + MOCK_METHOD( + StatusOr, DeleteStream, + (ExperimentalTag, NoAwaitTag, + google::cloud::datastream::v1::DeleteStreamRequest const& request), + (override)); + + MOCK_METHOD( + future>, + DeleteStream, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr, GetStreamObject, (google::cloud::datastream::v1::GetStreamObjectRequest const& request), @@ -149,6 +224,19 @@ class MockDatastreamConnection : public datastream_v1::DatastreamConnection { request), (override)); + MOCK_METHOD( + StatusOr, CreatePrivateConnection, + (ExperimentalTag, NoAwaitTag, + google::cloud::datastream::v1::CreatePrivateConnectionRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + CreatePrivateConnection, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(StatusOr, GetPrivateConnection, (google::cloud::datastream::v1::GetPrivateConnectionRequest const& @@ -168,11 +256,36 @@ class MockDatastreamConnection : public datastream_v1::DatastreamConnection { request), (override)); + MOCK_METHOD( + StatusOr, DeletePrivateConnection, + (ExperimentalTag, NoAwaitTag, + google::cloud::datastream::v1::DeletePrivateConnectionRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + DeletePrivateConnection, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, CreateRoute, (google::cloud::datastream::v1::CreateRouteRequest const& request), (override)); + MOCK_METHOD( + StatusOr, CreateRoute, + (ExperimentalTag, NoAwaitTag, + google::cloud::datastream::v1::CreateRouteRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateRoute, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(StatusOr, GetRoute, (google::cloud::datastream::v1::GetRouteRequest const& request), (override)); @@ -186,6 +299,18 @@ class MockDatastreamConnection : public datastream_v1::DatastreamConnection { DeleteRoute, (google::cloud::datastream::v1::DeleteRouteRequest const& request), (override)); + + MOCK_METHOD( + StatusOr, DeleteRoute, + (ExperimentalTag, NoAwaitTag, + google::cloud::datastream::v1::DeleteRouteRequest const& request), + (override)); + + MOCK_METHOD( + future>, + DeleteRoute, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); }; GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END diff --git a/google/cloud/deploy/v1/cloud_deploy_connection.cc b/google/cloud/deploy/v1/cloud_deploy_connection.cc index b1c9249b75391..9e2dc1b3f3f0c 100644 --- a/google/cloud/deploy/v1/cloud_deploy_connection.cc +++ b/google/cloud/deploy/v1/cloud_deploy_connection.cc @@ -60,6 +60,22 @@ CloudDeployConnection::CreateDeliveryPipeline( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +CloudDeployConnection::CreateDeliveryPipeline( + ExperimentalTag, NoAwaitTag, + google::cloud::deploy::v1::CreateDeliveryPipelineRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +CloudDeployConnection::CreateDeliveryPipeline( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> CloudDeployConnection::UpdateDeliveryPipeline( google::cloud::deploy::v1::UpdateDeliveryPipelineRequest const&) { @@ -68,6 +84,22 @@ CloudDeployConnection::UpdateDeliveryPipeline( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +CloudDeployConnection::UpdateDeliveryPipeline( + ExperimentalTag, NoAwaitTag, + google::cloud::deploy::v1::UpdateDeliveryPipelineRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +CloudDeployConnection::UpdateDeliveryPipeline( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> CloudDeployConnection::DeleteDeliveryPipeline( google::cloud::deploy::v1::DeleteDeliveryPipelineRequest const&) { @@ -76,6 +108,22 @@ CloudDeployConnection::DeleteDeliveryPipeline( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +CloudDeployConnection::DeleteDeliveryPipeline( + ExperimentalTag, NoAwaitTag, + google::cloud::deploy::v1::DeleteDeliveryPipelineRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +CloudDeployConnection::DeleteDeliveryPipeline( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StreamRange CloudDeployConnection::ListTargets( google::cloud::deploy::v1:: @@ -103,6 +151,21 @@ CloudDeployConnection::CreateTarget( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr CloudDeployConnection::CreateTarget( + ExperimentalTag, NoAwaitTag, + google::cloud::deploy::v1::CreateTargetRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +CloudDeployConnection::CreateTarget(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> CloudDeployConnection::UpdateTarget( google::cloud::deploy::v1::UpdateTargetRequest const&) { @@ -111,6 +174,21 @@ CloudDeployConnection::UpdateTarget( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr CloudDeployConnection::UpdateTarget( + ExperimentalTag, NoAwaitTag, + google::cloud::deploy::v1::UpdateTargetRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +CloudDeployConnection::UpdateTarget(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> CloudDeployConnection::DeleteTarget( google::cloud::deploy::v1::DeleteTargetRequest const&) { @@ -119,6 +197,21 @@ CloudDeployConnection::DeleteTarget( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr CloudDeployConnection::DeleteTarget( + ExperimentalTag, NoAwaitTag, + google::cloud::deploy::v1::DeleteTargetRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +CloudDeployConnection::DeleteTarget(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StreamRange CloudDeployConnection::ListCustomTargetTypes( google::cloud::deploy::v1:: @@ -141,6 +234,22 @@ CloudDeployConnection::CreateCustomTargetType( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +CloudDeployConnection::CreateCustomTargetType( + ExperimentalTag, NoAwaitTag, + google::cloud::deploy::v1::CreateCustomTargetTypeRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +CloudDeployConnection::CreateCustomTargetType( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> CloudDeployConnection::UpdateCustomTargetType( google::cloud::deploy::v1::UpdateCustomTargetTypeRequest const&) { @@ -149,6 +258,22 @@ CloudDeployConnection::UpdateCustomTargetType( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +CloudDeployConnection::UpdateCustomTargetType( + ExperimentalTag, NoAwaitTag, + google::cloud::deploy::v1::UpdateCustomTargetTypeRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +CloudDeployConnection::UpdateCustomTargetType( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> CloudDeployConnection::DeleteCustomTargetType( google::cloud::deploy::v1::DeleteCustomTargetTypeRequest const&) { @@ -157,6 +282,22 @@ CloudDeployConnection::DeleteCustomTargetType( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +CloudDeployConnection::DeleteCustomTargetType( + ExperimentalTag, NoAwaitTag, + google::cloud::deploy::v1::DeleteCustomTargetTypeRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +CloudDeployConnection::DeleteCustomTargetType( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StreamRange CloudDeployConnection::ListReleases( google::cloud::deploy::v1:: @@ -178,6 +319,21 @@ CloudDeployConnection::CreateRelease( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr CloudDeployConnection::CreateRelease( + ExperimentalTag, NoAwaitTag, + google::cloud::deploy::v1::CreateReleaseRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +CloudDeployConnection::CreateRelease(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr CloudDeployConnection::AbandonRelease( google::cloud::deploy::v1::AbandonReleaseRequest const&) { @@ -223,6 +379,21 @@ CloudDeployConnection::CreateRollout( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr CloudDeployConnection::CreateRollout( + ExperimentalTag, NoAwaitTag, + google::cloud::deploy::v1::CreateRolloutRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +CloudDeployConnection::CreateRollout(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr CloudDeployConnection::IgnoreJob( google::cloud::deploy::v1::IgnoreJobRequest const&) { @@ -267,9 +438,41 @@ CloudDeployConnection::CreateAutomation( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +CloudDeployConnection::CreateAutomation( + ExperimentalTag, NoAwaitTag, + google::cloud::deploy::v1::CreateAutomationRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> +CloudDeployConnection::CreateAutomation(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +CloudDeployConnection::UpdateAutomation( + google::cloud::deploy::v1::UpdateAutomationRequest const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +StatusOr CloudDeployConnection::UpdateAutomation( + ExperimentalTag, NoAwaitTag, google::cloud::deploy::v1::UpdateAutomationRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +CloudDeployConnection::UpdateAutomation(ExperimentalTag, + google::longrunning::Operation const&) { return google::cloud::make_ready_future< StatusOr>( Status(StatusCode::kUnimplemented, "not implemented")); @@ -283,6 +486,22 @@ CloudDeployConnection::DeleteAutomation( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +CloudDeployConnection::DeleteAutomation( + ExperimentalTag, NoAwaitTag, + google::cloud::deploy::v1::DeleteAutomationRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +CloudDeployConnection::DeleteAutomation(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr CloudDeployConnection::GetAutomation( google::cloud::deploy::v1::GetAutomationRequest const&) { diff --git a/google/cloud/deploy/v1/cloud_deploy_connection.h b/google/cloud/deploy/v1/cloud_deploy_connection.h index 89f93a7c99255..8d945f9f6bc91 100644 --- a/google/cloud/deploy/v1/cloud_deploy_connection.h +++ b/google/cloud/deploy/v1/cloud_deploy_connection.h @@ -22,8 +22,10 @@ #include "google/cloud/deploy/v1/cloud_deploy_connection_idempotency_policy.h" #include "google/cloud/deploy/v1/internal/cloud_deploy_retry_traits.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/internal/retry_policy_impl.h" +#include "google/cloud/no_await_tag.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" #include "google/cloud/status_or.h" @@ -196,14 +198,38 @@ class CloudDeployConnection { CreateDeliveryPipeline( google::cloud::deploy::v1::CreateDeliveryPipelineRequest const& request); + virtual StatusOr CreateDeliveryPipeline( + ExperimentalTag, NoAwaitTag, + google::cloud::deploy::v1::CreateDeliveryPipelineRequest const& request); + + virtual future> + CreateDeliveryPipeline(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> UpdateDeliveryPipeline( google::cloud::deploy::v1::UpdateDeliveryPipelineRequest const& request); + virtual StatusOr UpdateDeliveryPipeline( + ExperimentalTag, NoAwaitTag, + google::cloud::deploy::v1::UpdateDeliveryPipelineRequest const& request); + + virtual future> + UpdateDeliveryPipeline(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> DeleteDeliveryPipeline( google::cloud::deploy::v1::DeleteDeliveryPipelineRequest const& request); + virtual StatusOr DeleteDeliveryPipeline( + ExperimentalTag, NoAwaitTag, + google::cloud::deploy::v1::DeleteDeliveryPipelineRequest const& request); + + virtual future> + DeleteDeliveryPipeline(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StreamRange ListTargets( google::cloud::deploy::v1::ListTargetsRequest request); @@ -217,12 +243,34 @@ class CloudDeployConnection { virtual future> CreateTarget( google::cloud::deploy::v1::CreateTargetRequest const& request); + virtual StatusOr CreateTarget( + ExperimentalTag, NoAwaitTag, + google::cloud::deploy::v1::CreateTargetRequest const& request); + + virtual future> CreateTarget( + ExperimentalTag, google::longrunning::Operation const& operation); + virtual future> UpdateTarget( google::cloud::deploy::v1::UpdateTargetRequest const& request); + virtual StatusOr UpdateTarget( + ExperimentalTag, NoAwaitTag, + google::cloud::deploy::v1::UpdateTargetRequest const& request); + + virtual future> UpdateTarget( + ExperimentalTag, google::longrunning::Operation const& operation); + virtual future> DeleteTarget(google::cloud::deploy::v1::DeleteTargetRequest const& request); + virtual StatusOr DeleteTarget( + ExperimentalTag, NoAwaitTag, + google::cloud::deploy::v1::DeleteTargetRequest const& request); + + virtual future> + DeleteTarget(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StreamRange ListCustomTargetTypes( google::cloud::deploy::v1::ListCustomTargetTypesRequest request); @@ -235,14 +283,38 @@ class CloudDeployConnection { CreateCustomTargetType( google::cloud::deploy::v1::CreateCustomTargetTypeRequest const& request); + virtual StatusOr CreateCustomTargetType( + ExperimentalTag, NoAwaitTag, + google::cloud::deploy::v1::CreateCustomTargetTypeRequest const& request); + + virtual future> + CreateCustomTargetType(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> UpdateCustomTargetType( google::cloud::deploy::v1::UpdateCustomTargetTypeRequest const& request); + virtual StatusOr UpdateCustomTargetType( + ExperimentalTag, NoAwaitTag, + google::cloud::deploy::v1::UpdateCustomTargetTypeRequest const& request); + + virtual future> + UpdateCustomTargetType(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> DeleteCustomTargetType( google::cloud::deploy::v1::DeleteCustomTargetTypeRequest const& request); + virtual StatusOr DeleteCustomTargetType( + ExperimentalTag, NoAwaitTag, + google::cloud::deploy::v1::DeleteCustomTargetTypeRequest const& request); + + virtual future> + DeleteCustomTargetType(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StreamRange ListReleases( google::cloud::deploy::v1::ListReleasesRequest request); @@ -252,6 +324,13 @@ class CloudDeployConnection { virtual future> CreateRelease( google::cloud::deploy::v1::CreateReleaseRequest const& request); + virtual StatusOr CreateRelease( + ExperimentalTag, NoAwaitTag, + google::cloud::deploy::v1::CreateReleaseRequest const& request); + + virtual future> CreateRelease( + ExperimentalTag, google::longrunning::Operation const& operation); + virtual StatusOr AbandonRelease( google::cloud::deploy::v1::AbandonReleaseRequest const& request); @@ -276,6 +355,13 @@ class CloudDeployConnection { virtual future> CreateRollout( google::cloud::deploy::v1::CreateRolloutRequest const& request); + virtual StatusOr CreateRollout( + ExperimentalTag, NoAwaitTag, + google::cloud::deploy::v1::CreateRolloutRequest const& request); + + virtual future> CreateRollout( + ExperimentalTag, google::longrunning::Operation const& operation); + virtual StatusOr IgnoreJob( google::cloud::deploy::v1::IgnoreJobRequest const& request); @@ -299,14 +385,38 @@ class CloudDeployConnection { CreateAutomation( google::cloud::deploy::v1::CreateAutomationRequest const& request); + virtual StatusOr CreateAutomation( + ExperimentalTag, NoAwaitTag, + google::cloud::deploy::v1::CreateAutomationRequest const& request); + + virtual future> + CreateAutomation(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> UpdateAutomation( google::cloud::deploy::v1::UpdateAutomationRequest const& request); + virtual StatusOr UpdateAutomation( + ExperimentalTag, NoAwaitTag, + google::cloud::deploy::v1::UpdateAutomationRequest const& request); + + virtual future> + UpdateAutomation(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> DeleteAutomation( google::cloud::deploy::v1::DeleteAutomationRequest const& request); + virtual StatusOr DeleteAutomation( + ExperimentalTag, NoAwaitTag, + google::cloud::deploy::v1::DeleteAutomationRequest const& request); + + virtual future> + DeleteAutomation(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StatusOr GetAutomation( google::cloud::deploy::v1::GetAutomationRequest const& request); diff --git a/google/cloud/deploy/v1/internal/cloud_deploy_connection_impl.cc b/google/cloud/deploy/v1/internal/cloud_deploy_connection_impl.cc index fe34d967cdf98..79b869d2685bb 100644 --- a/google/cloud/deploy/v1/internal/cloud_deploy_connection_impl.cc +++ b/google/cloud/deploy/v1/internal/cloud_deploy_connection_impl.cc @@ -153,6 +153,59 @@ CloudDeployConnectionImpl::CreateDeliveryPipeline( polling_policy(*current), __func__); } +StatusOr +CloudDeployConnectionImpl::CreateDeliveryPipeline( + ExperimentalTag, NoAwaitTag, + google::cloud::deploy::v1::CreateDeliveryPipelineRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateDeliveryPipeline(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::deploy::v1::CreateDeliveryPipelineRequest const& + request) { + return stub_->CreateDeliveryPipeline(context, options, request); + }, + *current, request, __func__); +} + +future> +CloudDeployConnectionImpl::CreateDeliveryPipeline( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to CreateDeliveryPipeline", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::deploy::v1::DeliveryPipeline>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::deploy::v1::DeliveryPipeline>, + polling_policy(*current), __func__); +} + future> CloudDeployConnectionImpl::UpdateDeliveryPipeline( google::cloud::deploy::v1::UpdateDeliveryPipelineRequest const& request) { @@ -193,6 +246,59 @@ CloudDeployConnectionImpl::UpdateDeliveryPipeline( polling_policy(*current), __func__); } +StatusOr +CloudDeployConnectionImpl::UpdateDeliveryPipeline( + ExperimentalTag, NoAwaitTag, + google::cloud::deploy::v1::UpdateDeliveryPipelineRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UpdateDeliveryPipeline(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::deploy::v1::UpdateDeliveryPipelineRequest const& + request) { + return stub_->UpdateDeliveryPipeline(context, options, request); + }, + *current, request, __func__); +} + +future> +CloudDeployConnectionImpl::UpdateDeliveryPipeline( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to UpdateDeliveryPipeline", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::deploy::v1::DeliveryPipeline>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::deploy::v1::DeliveryPipeline>, + polling_policy(*current), __func__); +} + future> CloudDeployConnectionImpl::DeleteDeliveryPipeline( google::cloud::deploy::v1::DeleteDeliveryPipelineRequest const& request) { @@ -233,6 +339,59 @@ CloudDeployConnectionImpl::DeleteDeliveryPipeline( polling_policy(*current), __func__); } +StatusOr +CloudDeployConnectionImpl::DeleteDeliveryPipeline( + ExperimentalTag, NoAwaitTag, + google::cloud::deploy::v1::DeleteDeliveryPipelineRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteDeliveryPipeline(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::deploy::v1::DeleteDeliveryPipelineRequest const& + request) { + return stub_->DeleteDeliveryPipeline(context, options, request); + }, + *current, request, __func__); +} + +future> +CloudDeployConnectionImpl::DeleteDeliveryPipeline( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteDeliveryPipeline", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::deploy::v1::OperationMetadata>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::cloud::deploy::v1::OperationMetadata>, + polling_policy(*current), __func__); +} + StreamRange CloudDeployConnectionImpl::ListTargets( google::cloud::deploy::v1::ListTargetsRequest request) { @@ -334,6 +493,57 @@ CloudDeployConnectionImpl::CreateTarget( polling_policy(*current), __func__); } +StatusOr +CloudDeployConnectionImpl::CreateTarget( + ExperimentalTag, NoAwaitTag, + google::cloud::deploy::v1::CreateTargetRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateTarget(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::deploy::v1::CreateTargetRequest const& request) { + return stub_->CreateTarget(context, options, request); + }, + *current, request, __func__); +} + +future> +CloudDeployConnectionImpl::CreateTarget( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to CreateTarget", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::deploy::v1::Target>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::deploy::v1::Target>, + polling_policy(*current), __func__); +} + future> CloudDeployConnectionImpl::UpdateTarget( google::cloud::deploy::v1::UpdateTargetRequest const& request) { @@ -373,6 +583,57 @@ CloudDeployConnectionImpl::UpdateTarget( polling_policy(*current), __func__); } +StatusOr +CloudDeployConnectionImpl::UpdateTarget( + ExperimentalTag, NoAwaitTag, + google::cloud::deploy::v1::UpdateTargetRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UpdateTarget(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::deploy::v1::UpdateTargetRequest const& request) { + return stub_->UpdateTarget(context, options, request); + }, + *current, request, __func__); +} + +future> +CloudDeployConnectionImpl::UpdateTarget( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to UpdateTarget", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::deploy::v1::Target>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::deploy::v1::Target>, + polling_policy(*current), __func__); +} + future> CloudDeployConnectionImpl::DeleteTarget( google::cloud::deploy::v1::DeleteTargetRequest const& request) { @@ -412,6 +673,58 @@ CloudDeployConnectionImpl::DeleteTarget( polling_policy(*current), __func__); } +StatusOr +CloudDeployConnectionImpl::DeleteTarget( + ExperimentalTag, NoAwaitTag, + google::cloud::deploy::v1::DeleteTargetRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteTarget(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::deploy::v1::DeleteTargetRequest const& request) { + return stub_->DeleteTarget(context, options, request); + }, + *current, request, __func__); +} + +future> +CloudDeployConnectionImpl::DeleteTarget( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteTarget", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::deploy::v1::OperationMetadata>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::cloud::deploy::v1::OperationMetadata>, + polling_policy(*current), __func__); +} + StreamRange CloudDeployConnectionImpl::ListCustomTargetTypes( google::cloud::deploy::v1::ListCustomTargetTypesRequest request) { @@ -503,6 +816,59 @@ CloudDeployConnectionImpl::CreateCustomTargetType( polling_policy(*current), __func__); } +StatusOr +CloudDeployConnectionImpl::CreateCustomTargetType( + ExperimentalTag, NoAwaitTag, + google::cloud::deploy::v1::CreateCustomTargetTypeRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateCustomTargetType(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::deploy::v1::CreateCustomTargetTypeRequest const& + request) { + return stub_->CreateCustomTargetType(context, options, request); + }, + *current, request, __func__); +} + +future> +CloudDeployConnectionImpl::CreateCustomTargetType( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to CreateCustomTargetType", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::deploy::v1::CustomTargetType>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::deploy::v1::CustomTargetType>, + polling_policy(*current), __func__); +} + future> CloudDeployConnectionImpl::UpdateCustomTargetType( google::cloud::deploy::v1::UpdateCustomTargetTypeRequest const& request) { @@ -543,6 +909,59 @@ CloudDeployConnectionImpl::UpdateCustomTargetType( polling_policy(*current), __func__); } +StatusOr +CloudDeployConnectionImpl::UpdateCustomTargetType( + ExperimentalTag, NoAwaitTag, + google::cloud::deploy::v1::UpdateCustomTargetTypeRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UpdateCustomTargetType(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::deploy::v1::UpdateCustomTargetTypeRequest const& + request) { + return stub_->UpdateCustomTargetType(context, options, request); + }, + *current, request, __func__); +} + +future> +CloudDeployConnectionImpl::UpdateCustomTargetType( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to UpdateCustomTargetType", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::deploy::v1::CustomTargetType>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::deploy::v1::CustomTargetType>, + polling_policy(*current), __func__); +} + future> CloudDeployConnectionImpl::DeleteCustomTargetType( google::cloud::deploy::v1::DeleteCustomTargetTypeRequest const& request) { @@ -583,6 +1002,59 @@ CloudDeployConnectionImpl::DeleteCustomTargetType( polling_policy(*current), __func__); } +StatusOr +CloudDeployConnectionImpl::DeleteCustomTargetType( + ExperimentalTag, NoAwaitTag, + google::cloud::deploy::v1::DeleteCustomTargetTypeRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteCustomTargetType(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::deploy::v1::DeleteCustomTargetTypeRequest const& + request) { + return stub_->DeleteCustomTargetType(context, options, request); + }, + *current, request, __func__); +} + +future> +CloudDeployConnectionImpl::DeleteCustomTargetType( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteCustomTargetType", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::deploy::v1::OperationMetadata>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::cloud::deploy::v1::OperationMetadata>, + polling_policy(*current), __func__); +} + StreamRange CloudDeployConnectionImpl::ListReleases( google::cloud::deploy::v1::ListReleasesRequest request) { @@ -670,6 +1142,57 @@ CloudDeployConnectionImpl::CreateRelease( polling_policy(*current), __func__); } +StatusOr +CloudDeployConnectionImpl::CreateRelease( + ExperimentalTag, NoAwaitTag, + google::cloud::deploy::v1::CreateReleaseRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateRelease(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::deploy::v1::CreateReleaseRequest const& request) { + return stub_->CreateRelease(context, options, request); + }, + *current, request, __func__); +} + +future> +CloudDeployConnectionImpl::CreateRelease( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to CreateRelease", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::deploy::v1::Release>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::deploy::v1::Release>, + polling_policy(*current), __func__); +} + StatusOr CloudDeployConnectionImpl::AbandonRelease( google::cloud::deploy::v1::AbandonReleaseRequest const& request) { @@ -813,6 +1336,57 @@ CloudDeployConnectionImpl::CreateRollout( polling_policy(*current), __func__); } +StatusOr +CloudDeployConnectionImpl::CreateRollout( + ExperimentalTag, NoAwaitTag, + google::cloud::deploy::v1::CreateRolloutRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateRollout(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::deploy::v1::CreateRolloutRequest const& request) { + return stub_->CreateRollout(context, options, request); + }, + *current, request, __func__); +} + +future> +CloudDeployConnectionImpl::CreateRollout( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to CreateRollout", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::deploy::v1::Rollout>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::deploy::v1::Rollout>, + polling_policy(*current), __func__); +} + StatusOr CloudDeployConnectionImpl::IgnoreJob( google::cloud::deploy::v1::IgnoreJobRequest const& request) { @@ -956,6 +1530,58 @@ CloudDeployConnectionImpl::CreateAutomation( polling_policy(*current), __func__); } +StatusOr +CloudDeployConnectionImpl::CreateAutomation( + ExperimentalTag, NoAwaitTag, + google::cloud::deploy::v1::CreateAutomationRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateAutomation(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::deploy::v1::CreateAutomationRequest const& request) { + return stub_->CreateAutomation(context, options, request); + }, + *current, request, __func__); +} + +future> +CloudDeployConnectionImpl::CreateAutomation( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to CreateAutomation", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::deploy::v1::Automation>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::deploy::v1::Automation>, + polling_policy(*current), __func__); +} + future> CloudDeployConnectionImpl::UpdateAutomation( google::cloud::deploy::v1::UpdateAutomationRequest const& request) { @@ -995,6 +1621,58 @@ CloudDeployConnectionImpl::UpdateAutomation( polling_policy(*current), __func__); } +StatusOr +CloudDeployConnectionImpl::UpdateAutomation( + ExperimentalTag, NoAwaitTag, + google::cloud::deploy::v1::UpdateAutomationRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UpdateAutomation(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::deploy::v1::UpdateAutomationRequest const& request) { + return stub_->UpdateAutomation(context, options, request); + }, + *current, request, __func__); +} + +future> +CloudDeployConnectionImpl::UpdateAutomation( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to UpdateAutomation", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::deploy::v1::Automation>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::deploy::v1::Automation>, + polling_policy(*current), __func__); +} + future> CloudDeployConnectionImpl::DeleteAutomation( google::cloud::deploy::v1::DeleteAutomationRequest const& request) { @@ -1034,6 +1712,59 @@ CloudDeployConnectionImpl::DeleteAutomation( polling_policy(*current), __func__); } +StatusOr +CloudDeployConnectionImpl::DeleteAutomation( + ExperimentalTag, NoAwaitTag, + google::cloud::deploy::v1::DeleteAutomationRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteAutomation(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::deploy::v1::DeleteAutomationRequest const& request) { + return stub_->DeleteAutomation(context, options, request); + }, + *current, request, __func__); +} + +future> +CloudDeployConnectionImpl::DeleteAutomation( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteAutomation", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::deploy::v1::OperationMetadata>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::cloud::deploy::v1::OperationMetadata>, + polling_policy(*current), __func__); +} + StatusOr CloudDeployConnectionImpl::GetAutomation( google::cloud::deploy::v1::GetAutomationRequest const& request) { diff --git a/google/cloud/deploy/v1/internal/cloud_deploy_connection_impl.h b/google/cloud/deploy/v1/internal/cloud_deploy_connection_impl.h index 97a35679f8bae..f686b81197ded 100644 --- a/google/cloud/deploy/v1/internal/cloud_deploy_connection_impl.h +++ b/google/cloud/deploy/v1/internal/cloud_deploy_connection_impl.h @@ -64,16 +64,46 @@ class CloudDeployConnectionImpl : public deploy_v1::CloudDeployConnection { google::cloud::deploy::v1::CreateDeliveryPipelineRequest const& request) override; + StatusOr CreateDeliveryPipeline( + ExperimentalTag, NoAwaitTag, + google::cloud::deploy::v1::CreateDeliveryPipelineRequest const& request) + override; + + future> + CreateDeliveryPipeline( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateDeliveryPipeline( google::cloud::deploy::v1::UpdateDeliveryPipelineRequest const& request) override; + StatusOr UpdateDeliveryPipeline( + ExperimentalTag, NoAwaitTag, + google::cloud::deploy::v1::UpdateDeliveryPipelineRequest const& request) + override; + + future> + UpdateDeliveryPipeline( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteDeliveryPipeline( google::cloud::deploy::v1::DeleteDeliveryPipelineRequest const& request) override; + StatusOr DeleteDeliveryPipeline( + ExperimentalTag, NoAwaitTag, + google::cloud::deploy::v1::DeleteDeliveryPipelineRequest const& request) + override; + + future> + DeleteDeliveryPipeline( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListTargets( google::cloud::deploy::v1::ListTargetsRequest request) override; @@ -86,12 +116,36 @@ class CloudDeployConnectionImpl : public deploy_v1::CloudDeployConnection { future> CreateTarget( google::cloud::deploy::v1::CreateTargetRequest const& request) override; + StatusOr CreateTarget( + ExperimentalTag, NoAwaitTag, + google::cloud::deploy::v1::CreateTargetRequest const& request) override; + + future> CreateTarget( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateTarget( google::cloud::deploy::v1::UpdateTargetRequest const& request) override; + StatusOr UpdateTarget( + ExperimentalTag, NoAwaitTag, + google::cloud::deploy::v1::UpdateTargetRequest const& request) override; + + future> UpdateTarget( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteTarget( google::cloud::deploy::v1::DeleteTargetRequest const& request) override; + StatusOr DeleteTarget( + ExperimentalTag, NoAwaitTag, + google::cloud::deploy::v1::DeleteTargetRequest const& request) override; + + future> DeleteTarget( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListCustomTargetTypes( google::cloud::deploy::v1::ListCustomTargetTypesRequest request) override; @@ -105,16 +159,46 @@ class CloudDeployConnectionImpl : public deploy_v1::CloudDeployConnection { google::cloud::deploy::v1::CreateCustomTargetTypeRequest const& request) override; + StatusOr CreateCustomTargetType( + ExperimentalTag, NoAwaitTag, + google::cloud::deploy::v1::CreateCustomTargetTypeRequest const& request) + override; + + future> + CreateCustomTargetType( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateCustomTargetType( google::cloud::deploy::v1::UpdateCustomTargetTypeRequest const& request) override; + StatusOr UpdateCustomTargetType( + ExperimentalTag, NoAwaitTag, + google::cloud::deploy::v1::UpdateCustomTargetTypeRequest const& request) + override; + + future> + UpdateCustomTargetType( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteCustomTargetType( google::cloud::deploy::v1::DeleteCustomTargetTypeRequest const& request) override; + StatusOr DeleteCustomTargetType( + ExperimentalTag, NoAwaitTag, + google::cloud::deploy::v1::DeleteCustomTargetTypeRequest const& request) + override; + + future> + DeleteCustomTargetType( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListReleases( google::cloud::deploy::v1::ListReleasesRequest request) override; @@ -124,6 +208,14 @@ class CloudDeployConnectionImpl : public deploy_v1::CloudDeployConnection { future> CreateRelease( google::cloud::deploy::v1::CreateReleaseRequest const& request) override; + StatusOr CreateRelease( + ExperimentalTag, NoAwaitTag, + google::cloud::deploy::v1::CreateReleaseRequest const& request) override; + + future> CreateRelease( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr AbandonRelease( google::cloud::deploy::v1::AbandonReleaseRequest const& request) override; @@ -145,6 +237,14 @@ class CloudDeployConnectionImpl : public deploy_v1::CloudDeployConnection { future> CreateRollout( google::cloud::deploy::v1::CreateRolloutRequest const& request) override; + StatusOr CreateRollout( + ExperimentalTag, NoAwaitTag, + google::cloud::deploy::v1::CreateRolloutRequest const& request) override; + + future> CreateRollout( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr IgnoreJob( google::cloud::deploy::v1::IgnoreJobRequest const& request) override; @@ -168,14 +268,41 @@ class CloudDeployConnectionImpl : public deploy_v1::CloudDeployConnection { google::cloud::deploy::v1::CreateAutomationRequest const& request) override; + StatusOr CreateAutomation( + ExperimentalTag, NoAwaitTag, + google::cloud::deploy::v1::CreateAutomationRequest const& request) + override; + + future> CreateAutomation( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateAutomation( google::cloud::deploy::v1::UpdateAutomationRequest const& request) override; + StatusOr UpdateAutomation( + ExperimentalTag, NoAwaitTag, + google::cloud::deploy::v1::UpdateAutomationRequest const& request) + override; + + future> UpdateAutomation( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteAutomation(google::cloud::deploy::v1::DeleteAutomationRequest const& request) override; + StatusOr DeleteAutomation( + ExperimentalTag, NoAwaitTag, + google::cloud::deploy::v1::DeleteAutomationRequest const& request) + override; + + future> + DeleteAutomation(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetAutomation( google::cloud::deploy::v1::GetAutomationRequest const& request) override; diff --git a/google/cloud/deploy/v1/internal/cloud_deploy_tracing_connection.cc b/google/cloud/deploy/v1/internal/cloud_deploy_tracing_connection.cc index b6a84c75f623e..65a59f57175ab 100644 --- a/google/cloud/deploy/v1/internal/cloud_deploy_tracing_connection.cc +++ b/google/cloud/deploy/v1/internal/cloud_deploy_tracing_connection.cc @@ -64,6 +64,28 @@ CloudDeployTracingConnection::CreateDeliveryPipeline( child_->CreateDeliveryPipeline(request)); } +StatusOr +CloudDeployTracingConnection::CreateDeliveryPipeline( + ExperimentalTag, NoAwaitTag, + google::cloud::deploy::v1::CreateDeliveryPipelineRequest const& request) { + auto span = internal::MakeSpan( + "deploy_v1::CloudDeployConnection::CreateDeliveryPipeline"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->CreateDeliveryPipeline(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +CloudDeployTracingConnection::CreateDeliveryPipeline( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "deploy_v1::CloudDeployConnection::CreateDeliveryPipeline"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->CreateDeliveryPipeline( + ExperimentalTag{}, operation)); +} + future> CloudDeployTracingConnection::UpdateDeliveryPipeline( google::cloud::deploy::v1::UpdateDeliveryPipelineRequest const& request) { @@ -74,6 +96,28 @@ CloudDeployTracingConnection::UpdateDeliveryPipeline( child_->UpdateDeliveryPipeline(request)); } +StatusOr +CloudDeployTracingConnection::UpdateDeliveryPipeline( + ExperimentalTag, NoAwaitTag, + google::cloud::deploy::v1::UpdateDeliveryPipelineRequest const& request) { + auto span = internal::MakeSpan( + "deploy_v1::CloudDeployConnection::UpdateDeliveryPipeline"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->UpdateDeliveryPipeline(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +CloudDeployTracingConnection::UpdateDeliveryPipeline( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "deploy_v1::CloudDeployConnection::UpdateDeliveryPipeline"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->UpdateDeliveryPipeline( + ExperimentalTag{}, operation)); +} + future> CloudDeployTracingConnection::DeleteDeliveryPipeline( google::cloud::deploy::v1::DeleteDeliveryPipelineRequest const& request) { @@ -84,6 +128,28 @@ CloudDeployTracingConnection::DeleteDeliveryPipeline( child_->DeleteDeliveryPipeline(request)); } +StatusOr +CloudDeployTracingConnection::DeleteDeliveryPipeline( + ExperimentalTag, NoAwaitTag, + google::cloud::deploy::v1::DeleteDeliveryPipelineRequest const& request) { + auto span = internal::MakeSpan( + "deploy_v1::CloudDeployConnection::DeleteDeliveryPipeline"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->DeleteDeliveryPipeline(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +CloudDeployTracingConnection::DeleteDeliveryPipeline( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "deploy_v1::CloudDeployConnection::DeleteDeliveryPipeline"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->DeleteDeliveryPipeline( + ExperimentalTag{}, operation)); +} + StreamRange CloudDeployTracingConnection::ListTargets( google::cloud::deploy::v1::ListTargetsRequest request) { @@ -121,6 +187,27 @@ CloudDeployTracingConnection::CreateTarget( return internal::EndSpan(std::move(span), child_->CreateTarget(request)); } +StatusOr +CloudDeployTracingConnection::CreateTarget( + ExperimentalTag, NoAwaitTag, + google::cloud::deploy::v1::CreateTargetRequest const& request) { + auto span = + internal::MakeSpan("deploy_v1::CloudDeployConnection::CreateTarget"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->CreateTarget(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +CloudDeployTracingConnection::CreateTarget( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = + internal::MakeSpan("deploy_v1::CloudDeployConnection::CreateTarget"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->CreateTarget(ExperimentalTag{}, operation)); +} + future> CloudDeployTracingConnection::UpdateTarget( google::cloud::deploy::v1::UpdateTargetRequest const& request) { @@ -130,6 +217,27 @@ CloudDeployTracingConnection::UpdateTarget( return internal::EndSpan(std::move(span), child_->UpdateTarget(request)); } +StatusOr +CloudDeployTracingConnection::UpdateTarget( + ExperimentalTag, NoAwaitTag, + google::cloud::deploy::v1::UpdateTargetRequest const& request) { + auto span = + internal::MakeSpan("deploy_v1::CloudDeployConnection::UpdateTarget"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->UpdateTarget(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +CloudDeployTracingConnection::UpdateTarget( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = + internal::MakeSpan("deploy_v1::CloudDeployConnection::UpdateTarget"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->UpdateTarget(ExperimentalTag{}, operation)); +} + future> CloudDeployTracingConnection::DeleteTarget( google::cloud::deploy::v1::DeleteTargetRequest const& request) { @@ -139,6 +247,27 @@ CloudDeployTracingConnection::DeleteTarget( return internal::EndSpan(std::move(span), child_->DeleteTarget(request)); } +StatusOr +CloudDeployTracingConnection::DeleteTarget( + ExperimentalTag, NoAwaitTag, + google::cloud::deploy::v1::DeleteTargetRequest const& request) { + auto span = + internal::MakeSpan("deploy_v1::CloudDeployConnection::DeleteTarget"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->DeleteTarget(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +CloudDeployTracingConnection::DeleteTarget( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = + internal::MakeSpan("deploy_v1::CloudDeployConnection::DeleteTarget"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->DeleteTarget(ExperimentalTag{}, operation)); +} + StreamRange CloudDeployTracingConnection::ListCustomTargetTypes( google::cloud::deploy::v1::ListCustomTargetTypesRequest request) { @@ -170,6 +299,28 @@ CloudDeployTracingConnection::CreateCustomTargetType( child_->CreateCustomTargetType(request)); } +StatusOr +CloudDeployTracingConnection::CreateCustomTargetType( + ExperimentalTag, NoAwaitTag, + google::cloud::deploy::v1::CreateCustomTargetTypeRequest const& request) { + auto span = internal::MakeSpan( + "deploy_v1::CloudDeployConnection::CreateCustomTargetType"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->CreateCustomTargetType(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +CloudDeployTracingConnection::CreateCustomTargetType( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "deploy_v1::CloudDeployConnection::CreateCustomTargetType"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->CreateCustomTargetType( + ExperimentalTag{}, operation)); +} + future> CloudDeployTracingConnection::UpdateCustomTargetType( google::cloud::deploy::v1::UpdateCustomTargetTypeRequest const& request) { @@ -180,6 +331,28 @@ CloudDeployTracingConnection::UpdateCustomTargetType( child_->UpdateCustomTargetType(request)); } +StatusOr +CloudDeployTracingConnection::UpdateCustomTargetType( + ExperimentalTag, NoAwaitTag, + google::cloud::deploy::v1::UpdateCustomTargetTypeRequest const& request) { + auto span = internal::MakeSpan( + "deploy_v1::CloudDeployConnection::UpdateCustomTargetType"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->UpdateCustomTargetType(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +CloudDeployTracingConnection::UpdateCustomTargetType( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "deploy_v1::CloudDeployConnection::UpdateCustomTargetType"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->UpdateCustomTargetType( + ExperimentalTag{}, operation)); +} + future> CloudDeployTracingConnection::DeleteCustomTargetType( google::cloud::deploy::v1::DeleteCustomTargetTypeRequest const& request) { @@ -190,6 +363,28 @@ CloudDeployTracingConnection::DeleteCustomTargetType( child_->DeleteCustomTargetType(request)); } +StatusOr +CloudDeployTracingConnection::DeleteCustomTargetType( + ExperimentalTag, NoAwaitTag, + google::cloud::deploy::v1::DeleteCustomTargetTypeRequest const& request) { + auto span = internal::MakeSpan( + "deploy_v1::CloudDeployConnection::DeleteCustomTargetType"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->DeleteCustomTargetType(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +CloudDeployTracingConnection::DeleteCustomTargetType( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "deploy_v1::CloudDeployConnection::DeleteCustomTargetType"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->DeleteCustomTargetType( + ExperimentalTag{}, operation)); +} + StreamRange CloudDeployTracingConnection::ListReleases( google::cloud::deploy::v1::ListReleasesRequest request) { @@ -219,6 +414,27 @@ CloudDeployTracingConnection::CreateRelease( return internal::EndSpan(std::move(span), child_->CreateRelease(request)); } +StatusOr +CloudDeployTracingConnection::CreateRelease( + ExperimentalTag, NoAwaitTag, + google::cloud::deploy::v1::CreateReleaseRequest const& request) { + auto span = + internal::MakeSpan("deploy_v1::CloudDeployConnection::CreateRelease"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->CreateRelease(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +CloudDeployTracingConnection::CreateRelease( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = + internal::MakeSpan("deploy_v1::CloudDeployConnection::CreateRelease"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->CreateRelease(ExperimentalTag{}, operation)); +} + StatusOr CloudDeployTracingConnection::AbandonRelease( google::cloud::deploy::v1::AbandonReleaseRequest const& request) { @@ -284,6 +500,27 @@ CloudDeployTracingConnection::CreateRollout( return internal::EndSpan(std::move(span), child_->CreateRollout(request)); } +StatusOr +CloudDeployTracingConnection::CreateRollout( + ExperimentalTag, NoAwaitTag, + google::cloud::deploy::v1::CreateRolloutRequest const& request) { + auto span = + internal::MakeSpan("deploy_v1::CloudDeployConnection::CreateRollout"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->CreateRollout(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +CloudDeployTracingConnection::CreateRollout( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = + internal::MakeSpan("deploy_v1::CloudDeployConnection::CreateRollout"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->CreateRollout(ExperimentalTag{}, operation)); +} + StatusOr CloudDeployTracingConnection::IgnoreJob( google::cloud::deploy::v1::IgnoreJobRequest const& request) { @@ -345,6 +582,28 @@ CloudDeployTracingConnection::CreateAutomation( return internal::EndSpan(std::move(span), child_->CreateAutomation(request)); } +StatusOr +CloudDeployTracingConnection::CreateAutomation( + ExperimentalTag, NoAwaitTag, + google::cloud::deploy::v1::CreateAutomationRequest const& request) { + auto span = + internal::MakeSpan("deploy_v1::CloudDeployConnection::CreateAutomation"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->CreateAutomation(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +CloudDeployTracingConnection::CreateAutomation( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = + internal::MakeSpan("deploy_v1::CloudDeployConnection::CreateAutomation"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->CreateAutomation(ExperimentalTag{}, operation)); +} + future> CloudDeployTracingConnection::UpdateAutomation( google::cloud::deploy::v1::UpdateAutomationRequest const& request) { @@ -354,6 +613,28 @@ CloudDeployTracingConnection::UpdateAutomation( return internal::EndSpan(std::move(span), child_->UpdateAutomation(request)); } +StatusOr +CloudDeployTracingConnection::UpdateAutomation( + ExperimentalTag, NoAwaitTag, + google::cloud::deploy::v1::UpdateAutomationRequest const& request) { + auto span = + internal::MakeSpan("deploy_v1::CloudDeployConnection::UpdateAutomation"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->UpdateAutomation(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +CloudDeployTracingConnection::UpdateAutomation( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = + internal::MakeSpan("deploy_v1::CloudDeployConnection::UpdateAutomation"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->UpdateAutomation(ExperimentalTag{}, operation)); +} + future> CloudDeployTracingConnection::DeleteAutomation( google::cloud::deploy::v1::DeleteAutomationRequest const& request) { @@ -363,6 +644,28 @@ CloudDeployTracingConnection::DeleteAutomation( return internal::EndSpan(std::move(span), child_->DeleteAutomation(request)); } +StatusOr +CloudDeployTracingConnection::DeleteAutomation( + ExperimentalTag, NoAwaitTag, + google::cloud::deploy::v1::DeleteAutomationRequest const& request) { + auto span = + internal::MakeSpan("deploy_v1::CloudDeployConnection::DeleteAutomation"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->DeleteAutomation(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +CloudDeployTracingConnection::DeleteAutomation( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = + internal::MakeSpan("deploy_v1::CloudDeployConnection::DeleteAutomation"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->DeleteAutomation(ExperimentalTag{}, operation)); +} + StatusOr CloudDeployTracingConnection::GetAutomation( google::cloud::deploy::v1::GetAutomationRequest const& request) { diff --git a/google/cloud/deploy/v1/internal/cloud_deploy_tracing_connection.h b/google/cloud/deploy/v1/internal/cloud_deploy_tracing_connection.h index 6ae80e3b775e3..f05e23b6894c2 100644 --- a/google/cloud/deploy/v1/internal/cloud_deploy_tracing_connection.h +++ b/google/cloud/deploy/v1/internal/cloud_deploy_tracing_connection.h @@ -52,16 +52,46 @@ class CloudDeployTracingConnection : public deploy_v1::CloudDeployConnection { google::cloud::deploy::v1::CreateDeliveryPipelineRequest const& request) override; + StatusOr CreateDeliveryPipeline( + ExperimentalTag, NoAwaitTag, + google::cloud::deploy::v1::CreateDeliveryPipelineRequest const& request) + override; + + future> + CreateDeliveryPipeline( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateDeliveryPipeline( google::cloud::deploy::v1::UpdateDeliveryPipelineRequest const& request) override; + StatusOr UpdateDeliveryPipeline( + ExperimentalTag, NoAwaitTag, + google::cloud::deploy::v1::UpdateDeliveryPipelineRequest const& request) + override; + + future> + UpdateDeliveryPipeline( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteDeliveryPipeline( google::cloud::deploy::v1::DeleteDeliveryPipelineRequest const& request) override; + StatusOr DeleteDeliveryPipeline( + ExperimentalTag, NoAwaitTag, + google::cloud::deploy::v1::DeleteDeliveryPipelineRequest const& request) + override; + + future> + DeleteDeliveryPipeline( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListTargets( google::cloud::deploy::v1::ListTargetsRequest request) override; @@ -74,12 +104,36 @@ class CloudDeployTracingConnection : public deploy_v1::CloudDeployConnection { future> CreateTarget( google::cloud::deploy::v1::CreateTargetRequest const& request) override; + StatusOr CreateTarget( + ExperimentalTag, NoAwaitTag, + google::cloud::deploy::v1::CreateTargetRequest const& request) override; + + future> CreateTarget( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateTarget( google::cloud::deploy::v1::UpdateTargetRequest const& request) override; + StatusOr UpdateTarget( + ExperimentalTag, NoAwaitTag, + google::cloud::deploy::v1::UpdateTargetRequest const& request) override; + + future> UpdateTarget( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteTarget( google::cloud::deploy::v1::DeleteTargetRequest const& request) override; + StatusOr DeleteTarget( + ExperimentalTag, NoAwaitTag, + google::cloud::deploy::v1::DeleteTargetRequest const& request) override; + + future> DeleteTarget( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListCustomTargetTypes( google::cloud::deploy::v1::ListCustomTargetTypesRequest request) override; @@ -93,16 +147,46 @@ class CloudDeployTracingConnection : public deploy_v1::CloudDeployConnection { google::cloud::deploy::v1::CreateCustomTargetTypeRequest const& request) override; + StatusOr CreateCustomTargetType( + ExperimentalTag, NoAwaitTag, + google::cloud::deploy::v1::CreateCustomTargetTypeRequest const& request) + override; + + future> + CreateCustomTargetType( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateCustomTargetType( google::cloud::deploy::v1::UpdateCustomTargetTypeRequest const& request) override; + StatusOr UpdateCustomTargetType( + ExperimentalTag, NoAwaitTag, + google::cloud::deploy::v1::UpdateCustomTargetTypeRequest const& request) + override; + + future> + UpdateCustomTargetType( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteCustomTargetType( google::cloud::deploy::v1::DeleteCustomTargetTypeRequest const& request) override; + StatusOr DeleteCustomTargetType( + ExperimentalTag, NoAwaitTag, + google::cloud::deploy::v1::DeleteCustomTargetTypeRequest const& request) + override; + + future> + DeleteCustomTargetType( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListReleases( google::cloud::deploy::v1::ListReleasesRequest request) override; @@ -112,6 +196,14 @@ class CloudDeployTracingConnection : public deploy_v1::CloudDeployConnection { future> CreateRelease( google::cloud::deploy::v1::CreateReleaseRequest const& request) override; + StatusOr CreateRelease( + ExperimentalTag, NoAwaitTag, + google::cloud::deploy::v1::CreateReleaseRequest const& request) override; + + future> CreateRelease( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr AbandonRelease( google::cloud::deploy::v1::AbandonReleaseRequest const& request) override; @@ -133,6 +225,14 @@ class CloudDeployTracingConnection : public deploy_v1::CloudDeployConnection { future> CreateRollout( google::cloud::deploy::v1::CreateRolloutRequest const& request) override; + StatusOr CreateRollout( + ExperimentalTag, NoAwaitTag, + google::cloud::deploy::v1::CreateRolloutRequest const& request) override; + + future> CreateRollout( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr IgnoreJob( google::cloud::deploy::v1::IgnoreJobRequest const& request) override; @@ -156,14 +256,41 @@ class CloudDeployTracingConnection : public deploy_v1::CloudDeployConnection { google::cloud::deploy::v1::CreateAutomationRequest const& request) override; + StatusOr CreateAutomation( + ExperimentalTag, NoAwaitTag, + google::cloud::deploy::v1::CreateAutomationRequest const& request) + override; + + future> CreateAutomation( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateAutomation( google::cloud::deploy::v1::UpdateAutomationRequest const& request) override; + StatusOr UpdateAutomation( + ExperimentalTag, NoAwaitTag, + google::cloud::deploy::v1::UpdateAutomationRequest const& request) + override; + + future> UpdateAutomation( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteAutomation(google::cloud::deploy::v1::DeleteAutomationRequest const& request) override; + StatusOr DeleteAutomation( + ExperimentalTag, NoAwaitTag, + google::cloud::deploy::v1::DeleteAutomationRequest const& request) + override; + + future> + DeleteAutomation(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetAutomation( google::cloud::deploy::v1::GetAutomationRequest const& request) override; diff --git a/google/cloud/deploy/v1/mocks/mock_cloud_deploy_connection.h b/google/cloud/deploy/v1/mocks/mock_cloud_deploy_connection.h index 515141579defc..2934cbbc73d05 100644 --- a/google/cloud/deploy/v1/mocks/mock_cloud_deploy_connection.h +++ b/google/cloud/deploy/v1/mocks/mock_cloud_deploy_connection.h @@ -63,18 +63,54 @@ class MockCloudDeployConnection : public deploy_v1::CloudDeployConnection { (google::cloud::deploy::v1::CreateDeliveryPipelineRequest const& request), (override)); + MOCK_METHOD( + StatusOr, CreateDeliveryPipeline, + (ExperimentalTag, NoAwaitTag, + google::cloud::deploy::v1::CreateDeliveryPipelineRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateDeliveryPipeline, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, UpdateDeliveryPipeline, (google::cloud::deploy::v1::UpdateDeliveryPipelineRequest const& request), (override)); + MOCK_METHOD( + StatusOr, UpdateDeliveryPipeline, + (ExperimentalTag, NoAwaitTag, + google::cloud::deploy::v1::UpdateDeliveryPipelineRequest const& request), + (override)); + + MOCK_METHOD(future>, + UpdateDeliveryPipeline, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteDeliveryPipeline, (google::cloud::deploy::v1::DeleteDeliveryPipelineRequest const& request), (override)); + MOCK_METHOD( + StatusOr, DeleteDeliveryPipeline, + (ExperimentalTag, NoAwaitTag, + google::cloud::deploy::v1::DeleteDeliveryPipelineRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteDeliveryPipeline, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD((StreamRange), ListTargets, (google::cloud::deploy::v1::ListTargetsRequest request), (override)); @@ -92,15 +128,46 @@ class MockCloudDeployConnection : public deploy_v1::CloudDeployConnection { (google::cloud::deploy::v1::CreateTargetRequest const& request), (override)); + MOCK_METHOD(StatusOr, CreateTarget, + (ExperimentalTag, NoAwaitTag, + google::cloud::deploy::v1::CreateTargetRequest const& request), + (override)); + + MOCK_METHOD(future>, CreateTarget, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, UpdateTarget, (google::cloud::deploy::v1::UpdateTargetRequest const& request), (override)); + MOCK_METHOD(StatusOr, UpdateTarget, + (ExperimentalTag, NoAwaitTag, + google::cloud::deploy::v1::UpdateTargetRequest const& request), + (override)); + + MOCK_METHOD(future>, UpdateTarget, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, DeleteTarget, (google::cloud::deploy::v1::DeleteTargetRequest const& request), (override)); + MOCK_METHOD(StatusOr, DeleteTarget, + (ExperimentalTag, NoAwaitTag, + google::cloud::deploy::v1::DeleteTargetRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteTarget, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD((StreamRange), ListCustomTargetTypes, (google::cloud::deploy::v1::ListCustomTargetTypesRequest request), @@ -118,18 +185,54 @@ class MockCloudDeployConnection : public deploy_v1::CloudDeployConnection { (google::cloud::deploy::v1::CreateCustomTargetTypeRequest const& request), (override)); + MOCK_METHOD( + StatusOr, CreateCustomTargetType, + (ExperimentalTag, NoAwaitTag, + google::cloud::deploy::v1::CreateCustomTargetTypeRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateCustomTargetType, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, UpdateCustomTargetType, (google::cloud::deploy::v1::UpdateCustomTargetTypeRequest const& request), (override)); + MOCK_METHOD( + StatusOr, UpdateCustomTargetType, + (ExperimentalTag, NoAwaitTag, + google::cloud::deploy::v1::UpdateCustomTargetTypeRequest const& request), + (override)); + + MOCK_METHOD(future>, + UpdateCustomTargetType, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteCustomTargetType, (google::cloud::deploy::v1::DeleteCustomTargetTypeRequest const& request), (override)); + MOCK_METHOD( + StatusOr, DeleteCustomTargetType, + (ExperimentalTag, NoAwaitTag, + google::cloud::deploy::v1::DeleteCustomTargetTypeRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteCustomTargetType, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD((StreamRange), ListReleases, (google::cloud::deploy::v1::ListReleasesRequest request), (override)); @@ -143,6 +246,17 @@ class MockCloudDeployConnection : public deploy_v1::CloudDeployConnection { (google::cloud::deploy::v1::CreateReleaseRequest const& request), (override)); + MOCK_METHOD(StatusOr, CreateRelease, + (ExperimentalTag, NoAwaitTag, + google::cloud::deploy::v1::CreateReleaseRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateRelease, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(StatusOr, AbandonRelease, (google::cloud::deploy::v1::AbandonReleaseRequest const& request), @@ -176,6 +290,17 @@ class MockCloudDeployConnection : public deploy_v1::CloudDeployConnection { (google::cloud::deploy::v1::CreateRolloutRequest const& request), (override)); + MOCK_METHOD(StatusOr, CreateRollout, + (ExperimentalTag, NoAwaitTag, + google::cloud::deploy::v1::CreateRolloutRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateRollout, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(StatusOr, IgnoreJob, (google::cloud::deploy::v1::IgnoreJobRequest const& request), (override)); @@ -207,17 +332,53 @@ class MockCloudDeployConnection : public deploy_v1::CloudDeployConnection { (google::cloud::deploy::v1::CreateAutomationRequest const& request), (override)); + MOCK_METHOD( + StatusOr, CreateAutomation, + (ExperimentalTag, NoAwaitTag, + google::cloud::deploy::v1::CreateAutomationRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateAutomation, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, UpdateAutomation, (google::cloud::deploy::v1::UpdateAutomationRequest const& request), (override)); + MOCK_METHOD( + StatusOr, UpdateAutomation, + (ExperimentalTag, NoAwaitTag, + google::cloud::deploy::v1::UpdateAutomationRequest const& request), + (override)); + + MOCK_METHOD(future>, + UpdateAutomation, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteAutomation, (google::cloud::deploy::v1::DeleteAutomationRequest const& request), (override)); + MOCK_METHOD( + StatusOr, DeleteAutomation, + (ExperimentalTag, NoAwaitTag, + google::cloud::deploy::v1::DeleteAutomationRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteAutomation, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(StatusOr, GetAutomation, (google::cloud::deploy::v1::GetAutomationRequest const& request), (override)); diff --git a/google/cloud/dialogflow_cx/agents_connection.cc b/google/cloud/dialogflow_cx/agents_connection.cc index d1b43bcd3a9b4..2218fc2acb4b6 100644 --- a/google/cloud/dialogflow_cx/agents_connection.cc +++ b/google/cloud/dialogflow_cx/agents_connection.cc @@ -76,12 +76,40 @@ AgentsConnection::ExportAgent( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr AgentsConnection::ExportAgent( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::cx::v3::ExportAgentRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +AgentsConnection::ExportAgent(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> AgentsConnection::RestoreAgent( google::cloud::dialogflow::cx::v3::RestoreAgentRequest const&) { return google::cloud::make_ready_future>( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr AgentsConnection::RestoreAgent( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::cx::v3::RestoreAgentRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> AgentsConnection::RestoreAgent( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr AgentsConnection::ValidateAgent( google::cloud::dialogflow::cx::v3::ValidateAgentRequest const&) { diff --git a/google/cloud/dialogflow_cx/agents_connection.h b/google/cloud/dialogflow_cx/agents_connection.h index 2441ab609334a..ca4c63e33719a 100644 --- a/google/cloud/dialogflow_cx/agents_connection.h +++ b/google/cloud/dialogflow_cx/agents_connection.h @@ -22,8 +22,10 @@ #include "google/cloud/dialogflow_cx/agents_connection_idempotency_policy.h" #include "google/cloud/dialogflow_cx/internal/agents_retry_traits.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/internal/retry_policy_impl.h" +#include "google/cloud/no_await_tag.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" #include "google/cloud/status_or.h" @@ -203,9 +205,24 @@ class AgentsConnection { ExportAgent( google::cloud::dialogflow::cx::v3::ExportAgentRequest const& request); + virtual StatusOr ExportAgent( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::cx::v3::ExportAgentRequest const& request); + + virtual future< + StatusOr> + ExportAgent(ExperimentalTag, google::longrunning::Operation const& operation); + virtual future> RestoreAgent( google::cloud::dialogflow::cx::v3::RestoreAgentRequest const& request); + virtual StatusOr RestoreAgent( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::cx::v3::RestoreAgentRequest const& request); + + virtual future> RestoreAgent( + ExperimentalTag, google::longrunning::Operation const& operation); + virtual StatusOr ValidateAgent( google::cloud::dialogflow::cx::v3::ValidateAgentRequest const& request); diff --git a/google/cloud/dialogflow_cx/changelogs_connection.h b/google/cloud/dialogflow_cx/changelogs_connection.h index 1d594efccdca8..02bab89039526 100644 --- a/google/cloud/dialogflow_cx/changelogs_connection.h +++ b/google/cloud/dialogflow_cx/changelogs_connection.h @@ -22,6 +22,7 @@ #include "google/cloud/dialogflow_cx/changelogs_connection_idempotency_policy.h" #include "google/cloud/dialogflow_cx/internal/changelogs_retry_traits.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/internal/retry_policy_impl.h" #include "google/cloud/options.h" #include "google/cloud/status_or.h" diff --git a/google/cloud/dialogflow_cx/deployments_connection.h b/google/cloud/dialogflow_cx/deployments_connection.h index a92b6cb310413..7e200a621915a 100644 --- a/google/cloud/dialogflow_cx/deployments_connection.h +++ b/google/cloud/dialogflow_cx/deployments_connection.h @@ -22,6 +22,7 @@ #include "google/cloud/dialogflow_cx/deployments_connection_idempotency_policy.h" #include "google/cloud/dialogflow_cx/internal/deployments_retry_traits.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/internal/retry_policy_impl.h" #include "google/cloud/options.h" #include "google/cloud/status_or.h" diff --git a/google/cloud/dialogflow_cx/entity_types_connection.cc b/google/cloud/dialogflow_cx/entity_types_connection.cc index 7588a857fea46..3d4ca1f483054 100644 --- a/google/cloud/dialogflow_cx/entity_types_connection.cc +++ b/google/cloud/dialogflow_cx/entity_types_connection.cc @@ -77,6 +77,22 @@ EntityTypesConnection::ExportEntityTypes( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +EntityTypesConnection::ExportEntityTypes( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::cx::v3::ExportEntityTypesRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +EntityTypesConnection::ExportEntityTypes( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> EntityTypesConnection::ImportEntityTypes( google::cloud::dialogflow::cx::v3::ImportEntityTypesRequest const&) { @@ -85,6 +101,22 @@ EntityTypesConnection::ImportEntityTypes( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +EntityTypesConnection::ImportEntityTypes( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::cx::v3::ImportEntityTypesRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +EntityTypesConnection::ImportEntityTypes( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + std::shared_ptr MakeEntityTypesConnection( std::string const& location, Options options) { internal::CheckExpectedOptions ExportEntityTypes( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::cx::v3::ExportEntityTypesRequest const& + request); + + virtual future< + StatusOr> + ExportEntityTypes(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future< StatusOr> ImportEntityTypes( google::cloud::dialogflow::cx::v3::ImportEntityTypesRequest const& request); + + virtual StatusOr ImportEntityTypes( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::cx::v3::ImportEntityTypesRequest const& + request); + + virtual future< + StatusOr> + ImportEntityTypes(ExperimentalTag, + google::longrunning::Operation const& operation); }; /** diff --git a/google/cloud/dialogflow_cx/environments_connection.cc b/google/cloud/dialogflow_cx/environments_connection.cc index 27c55fd67290e..48ff116fb5509 100644 --- a/google/cloud/dialogflow_cx/environments_connection.cc +++ b/google/cloud/dialogflow_cx/environments_connection.cc @@ -60,6 +60,22 @@ EnvironmentsConnection::CreateEnvironment( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +EnvironmentsConnection::CreateEnvironment( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::cx::v3::CreateEnvironmentRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +EnvironmentsConnection::CreateEnvironment( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> EnvironmentsConnection::UpdateEnvironment( google::cloud::dialogflow::cx::v3::UpdateEnvironmentRequest const&) { @@ -68,6 +84,22 @@ EnvironmentsConnection::UpdateEnvironment( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +EnvironmentsConnection::UpdateEnvironment( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::cx::v3::UpdateEnvironmentRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +EnvironmentsConnection::UpdateEnvironment( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + Status EnvironmentsConnection::DeleteEnvironment( google::cloud::dialogflow::cx::v3::DeleteEnvironmentRequest const&) { return Status(StatusCode::kUnimplemented, "not implemented"); @@ -89,6 +121,22 @@ EnvironmentsConnection::RunContinuousTest( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +EnvironmentsConnection::RunContinuousTest( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::cx::v3::RunContinuousTestRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +EnvironmentsConnection::RunContinuousTest( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StreamRange EnvironmentsConnection::ListContinuousTestResults( google::cloud::dialogflow::cx::v3:: @@ -105,6 +153,21 @@ EnvironmentsConnection::DeployFlow( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr EnvironmentsConnection::DeployFlow( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::cx::v3::DeployFlowRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +EnvironmentsConnection::DeployFlow(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + std::shared_ptr MakeEnvironmentsConnection( std::string const& location, Options options) { internal::CheckExpectedOptions CreateEnvironment( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::cx::v3::CreateEnvironmentRequest const& + request); + + virtual future> + CreateEnvironment(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> UpdateEnvironment( google::cloud::dialogflow::cx::v3::UpdateEnvironmentRequest const& request); + virtual StatusOr UpdateEnvironment( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::cx::v3::UpdateEnvironmentRequest const& + request); + + virtual future> + UpdateEnvironment(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual Status DeleteEnvironment( google::cloud::dialogflow::cx::v3::DeleteEnvironmentRequest const& request); @@ -220,6 +240,16 @@ class EnvironmentsConnection { google::cloud::dialogflow::cx::v3::RunContinuousTestRequest const& request); + virtual StatusOr RunContinuousTest( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::cx::v3::RunContinuousTestRequest const& + request); + + virtual future< + StatusOr> + RunContinuousTest(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StreamRange ListContinuousTestResults( google::cloud::dialogflow::cx::v3::ListContinuousTestResultsRequest @@ -229,6 +259,14 @@ class EnvironmentsConnection { StatusOr> DeployFlow( google::cloud::dialogflow::cx::v3::DeployFlowRequest const& request); + + virtual StatusOr DeployFlow( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::cx::v3::DeployFlowRequest const& request); + + virtual future< + StatusOr> + DeployFlow(ExperimentalTag, google::longrunning::Operation const& operation); }; /** diff --git a/google/cloud/dialogflow_cx/experiments_connection.h b/google/cloud/dialogflow_cx/experiments_connection.h index 681dc6804f690..248e6f59dd648 100644 --- a/google/cloud/dialogflow_cx/experiments_connection.h +++ b/google/cloud/dialogflow_cx/experiments_connection.h @@ -22,6 +22,7 @@ #include "google/cloud/dialogflow_cx/experiments_connection_idempotency_policy.h" #include "google/cloud/dialogflow_cx/internal/experiments_retry_traits.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/internal/retry_policy_impl.h" #include "google/cloud/options.h" #include "google/cloud/status_or.h" diff --git a/google/cloud/dialogflow_cx/flows_connection.cc b/google/cloud/dialogflow_cx/flows_connection.cc index d95ef688e4d9e..19d68e1cf0dc3 100644 --- a/google/cloud/dialogflow_cx/flows_connection.cc +++ b/google/cloud/dialogflow_cx/flows_connection.cc @@ -71,6 +71,19 @@ future> FlowsConnection::TrainFlow( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr FlowsConnection::TrainFlow( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::cx::v3::TrainFlowRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> FlowsConnection::TrainFlow( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr FlowsConnection::ValidateFlow( google::cloud::dialogflow::cx::v3::ValidateFlowRequest const&) { @@ -91,6 +104,21 @@ FlowsConnection::ImportFlow( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr FlowsConnection::ImportFlow( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::cx::v3::ImportFlowRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +FlowsConnection::ImportFlow(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> FlowsConnection::ExportFlow( google::cloud::dialogflow::cx::v3::ExportFlowRequest const&) { @@ -99,6 +127,21 @@ FlowsConnection::ExportFlow( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr FlowsConnection::ExportFlow( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::cx::v3::ExportFlowRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +FlowsConnection::ExportFlow(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + std::shared_ptr MakeFlowsConnection( std::string const& location, Options options) { internal::CheckExpectedOptions> TrainFlow( google::cloud::dialogflow::cx::v3::TrainFlowRequest const& request); + virtual StatusOr TrainFlow( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::cx::v3::TrainFlowRequest const& request); + + virtual future> TrainFlow( + ExperimentalTag, google::longrunning::Operation const& operation); + virtual StatusOr ValidateFlow( google::cloud::dialogflow::cx::v3::ValidateFlowRequest const& request); @@ -215,10 +224,26 @@ class FlowsConnection { ImportFlow( google::cloud::dialogflow::cx::v3::ImportFlowRequest const& request); + virtual StatusOr ImportFlow( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::cx::v3::ImportFlowRequest const& request); + + virtual future< + StatusOr> + ImportFlow(ExperimentalTag, google::longrunning::Operation const& operation); + virtual future< StatusOr> ExportFlow( google::cloud::dialogflow::cx::v3::ExportFlowRequest const& request); + + virtual StatusOr ExportFlow( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::cx::v3::ExportFlowRequest const& request); + + virtual future< + StatusOr> + ExportFlow(ExperimentalTag, google::longrunning::Operation const& operation); }; /** diff --git a/google/cloud/dialogflow_cx/generators_connection.h b/google/cloud/dialogflow_cx/generators_connection.h index 2384012e09c07..08c78800a3f3e 100644 --- a/google/cloud/dialogflow_cx/generators_connection.h +++ b/google/cloud/dialogflow_cx/generators_connection.h @@ -22,6 +22,7 @@ #include "google/cloud/dialogflow_cx/generators_connection_idempotency_policy.h" #include "google/cloud/dialogflow_cx/internal/generators_retry_traits.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/internal/retry_policy_impl.h" #include "google/cloud/options.h" #include "google/cloud/status_or.h" diff --git a/google/cloud/dialogflow_cx/intents_connection.cc b/google/cloud/dialogflow_cx/intents_connection.cc index c2b6109b1fa68..c447892088bcb 100644 --- a/google/cloud/dialogflow_cx/intents_connection.cc +++ b/google/cloud/dialogflow_cx/intents_connection.cc @@ -77,6 +77,21 @@ IntentsConnection::ImportIntents( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr IntentsConnection::ImportIntents( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::cx::v3::ImportIntentsRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +IntentsConnection::ImportIntents(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> IntentsConnection::ExportIntents( google::cloud::dialogflow::cx::v3::ExportIntentsRequest const&) { @@ -85,6 +100,21 @@ IntentsConnection::ExportIntents( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr IntentsConnection::ExportIntents( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::cx::v3::ExportIntentsRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +IntentsConnection::ExportIntents(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + std::shared_ptr MakeIntentsConnection( std::string const& location, Options options) { internal::CheckExpectedOptions ImportIntents( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::cx::v3::ImportIntentsRequest const& request); + + virtual future< + StatusOr> + ImportIntents(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future< StatusOr> ExportIntents( google::cloud::dialogflow::cx::v3::ExportIntentsRequest const& request); + + virtual StatusOr ExportIntents( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::cx::v3::ExportIntentsRequest const& request); + + virtual future< + StatusOr> + ExportIntents(ExperimentalTag, + google::longrunning::Operation const& operation); }; /** diff --git a/google/cloud/dialogflow_cx/internal/agents_connection_impl.cc b/google/cloud/dialogflow_cx/internal/agents_connection_impl.cc index 1b34089bc6fdc..40a23e7c102cf 100644 --- a/google/cloud/dialogflow_cx/internal/agents_connection_impl.cc +++ b/google/cloud/dialogflow_cx/internal/agents_connection_impl.cc @@ -195,6 +195,57 @@ AgentsConnectionImpl::ExportAgent( polling_policy(*current), __func__); } +StatusOr AgentsConnectionImpl::ExportAgent( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::cx::v3::ExportAgentRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->ExportAgent(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::dialogflow::cx::v3::ExportAgentRequest const& + request) { + return stub_->ExportAgent(context, options, request); + }, + *current, request, __func__); +} + +future> +AgentsConnectionImpl::ExportAgent( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata().Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to ExportAgent", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::dialogflow::cx::v3::ExportAgentResponse>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::dialogflow::cx::v3::ExportAgentResponse>, + polling_policy(*current), __func__); +} + future> AgentsConnectionImpl::RestoreAgent( google::cloud::dialogflow::cx::v3::RestoreAgentRequest const& request) { auto current = google::cloud::internal::SaveCurrentOptions(); @@ -234,6 +285,55 @@ future> AgentsConnectionImpl::RestoreAgent( polling_policy(*current), __func__); } +StatusOr AgentsConnectionImpl::RestoreAgent( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::cx::v3::RestoreAgentRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->RestoreAgent(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::dialogflow::cx::v3::RestoreAgentRequest const& + request) { + return stub_->RestoreAgent(context, options, request); + }, + *current, request, __func__); +} + +future> AgentsConnectionImpl::RestoreAgent( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata().Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to RestoreAgent", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::protobuf::Struct>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::protobuf::Struct>, + polling_policy(*current), __func__); +} + StatusOr AgentsConnectionImpl::ValidateAgent( google::cloud::dialogflow::cx::v3::ValidateAgentRequest const& request) { diff --git a/google/cloud/dialogflow_cx/internal/agents_connection_impl.h b/google/cloud/dialogflow_cx/internal/agents_connection_impl.h index 989b045519495..d6ba3e56df2b7 100644 --- a/google/cloud/dialogflow_cx/internal/agents_connection_impl.h +++ b/google/cloud/dialogflow_cx/internal/agents_connection_impl.h @@ -74,10 +74,28 @@ class AgentsConnectionImpl : public dialogflow_cx::AgentsConnection { ExportAgent(google::cloud::dialogflow::cx::v3::ExportAgentRequest const& request) override; + StatusOr ExportAgent( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::cx::v3::ExportAgentRequest const& request) + override; + + future> + ExportAgent(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> RestoreAgent( google::cloud::dialogflow::cx::v3::RestoreAgentRequest const& request) override; + StatusOr RestoreAgent( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::cx::v3::RestoreAgentRequest const& request) + override; + + future> RestoreAgent( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr ValidateAgent(google::cloud::dialogflow::cx::v3::ValidateAgentRequest const& request) override; diff --git a/google/cloud/dialogflow_cx/internal/agents_tracing_connection.cc b/google/cloud/dialogflow_cx/internal/agents_tracing_connection.cc index f319cd25f80dd..9321fbc1edca0 100644 --- a/google/cloud/dialogflow_cx/internal/agents_tracing_connection.cc +++ b/google/cloud/dialogflow_cx/internal/agents_tracing_connection.cc @@ -86,6 +86,26 @@ AgentsTracingConnection::ExportAgent( return internal::EndSpan(std::move(span), child_->ExportAgent(request)); } +StatusOr AgentsTracingConnection::ExportAgent( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::cx::v3::ExportAgentRequest const& request) { + auto span = + internal::MakeSpan("dialogflow_cx::AgentsConnection::ExportAgent"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->ExportAgent(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +AgentsTracingConnection::ExportAgent( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = + internal::MakeSpan("dialogflow_cx::AgentsConnection::ExportAgent"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->ExportAgent(ExperimentalTag{}, operation)); +} + future> AgentsTracingConnection::RestoreAgent( google::cloud::dialogflow::cx::v3::RestoreAgentRequest const& request) { @@ -95,6 +115,26 @@ AgentsTracingConnection::RestoreAgent( return internal::EndSpan(std::move(span), child_->RestoreAgent(request)); } +StatusOr AgentsTracingConnection::RestoreAgent( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::cx::v3::RestoreAgentRequest const& request) { + auto span = + internal::MakeSpan("dialogflow_cx::AgentsConnection::RestoreAgent"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->RestoreAgent(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +AgentsTracingConnection::RestoreAgent( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = + internal::MakeSpan("dialogflow_cx::AgentsConnection::RestoreAgent"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->RestoreAgent(ExperimentalTag{}, operation)); +} + StatusOr AgentsTracingConnection::ValidateAgent( google::cloud::dialogflow::cx::v3::ValidateAgentRequest const& request) { diff --git a/google/cloud/dialogflow_cx/internal/agents_tracing_connection.h b/google/cloud/dialogflow_cx/internal/agents_tracing_connection.h index 92e4da8f4cc83..0c20c7a205092 100644 --- a/google/cloud/dialogflow_cx/internal/agents_tracing_connection.h +++ b/google/cloud/dialogflow_cx/internal/agents_tracing_connection.h @@ -62,10 +62,28 @@ class AgentsTracingConnection : public dialogflow_cx::AgentsConnection { ExportAgent(google::cloud::dialogflow::cx::v3::ExportAgentRequest const& request) override; + StatusOr ExportAgent( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::cx::v3::ExportAgentRequest const& request) + override; + + future> + ExportAgent(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> RestoreAgent( google::cloud::dialogflow::cx::v3::RestoreAgentRequest const& request) override; + StatusOr RestoreAgent( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::cx::v3::RestoreAgentRequest const& request) + override; + + future> RestoreAgent( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr ValidateAgent(google::cloud::dialogflow::cx::v3::ValidateAgentRequest const& request) override; diff --git a/google/cloud/dialogflow_cx/internal/entity_types_connection_impl.cc b/google/cloud/dialogflow_cx/internal/entity_types_connection_impl.cc index b3e96595e17eb..771ad766f4213 100644 --- a/google/cloud/dialogflow_cx/internal/entity_types_connection_impl.cc +++ b/google/cloud/dialogflow_cx/internal/entity_types_connection_impl.cc @@ -199,6 +199,61 @@ EntityTypesConnectionImpl::ExportEntityTypes( polling_policy(*current), __func__); } +StatusOr +EntityTypesConnectionImpl::ExportEntityTypes( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::cx::v3::ExportEntityTypesRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->ExportEntityTypes(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::dialogflow::cx::v3::ExportEntityTypesRequest const& + request) { + return stub_->ExportEntityTypes(context, options, request); + }, + *current, request, __func__); +} + +future> +EntityTypesConnectionImpl::ExportEntityTypes( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to ExportEntityTypes", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::dialogflow::cx::v3::ExportEntityTypesResponse>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::dialogflow::cx::v3::ExportEntityTypesResponse>, + polling_policy(*current), __func__); +} + future> EntityTypesConnectionImpl::ImportEntityTypes( google::cloud::dialogflow::cx::v3::ImportEntityTypesRequest const& @@ -240,6 +295,61 @@ EntityTypesConnectionImpl::ImportEntityTypes( polling_policy(*current), __func__); } +StatusOr +EntityTypesConnectionImpl::ImportEntityTypes( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::cx::v3::ImportEntityTypesRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->ImportEntityTypes(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::dialogflow::cx::v3::ImportEntityTypesRequest const& + request) { + return stub_->ImportEntityTypes(context, options, request); + }, + *current, request, __func__); +} + +future> +EntityTypesConnectionImpl::ImportEntityTypes( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to ImportEntityTypes", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::dialogflow::cx::v3::ImportEntityTypesResponse>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::dialogflow::cx::v3::ImportEntityTypesResponse>, + polling_policy(*current), __func__); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace dialogflow_cx_internal } // namespace cloud diff --git a/google/cloud/dialogflow_cx/internal/entity_types_connection_impl.h b/google/cloud/dialogflow_cx/internal/entity_types_connection_impl.h index 2169feb164b65..176be8a5d05de 100644 --- a/google/cloud/dialogflow_cx/internal/entity_types_connection_impl.h +++ b/google/cloud/dialogflow_cx/internal/entity_types_connection_impl.h @@ -76,11 +76,29 @@ class EntityTypesConnectionImpl : public dialogflow_cx::EntityTypesConnection { google::cloud::dialogflow::cx::v3::ExportEntityTypesRequest const& request) override; + StatusOr ExportEntityTypes( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::cx::v3::ExportEntityTypesRequest const& + request) override; + + future> + ExportEntityTypes(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ImportEntityTypes( google::cloud::dialogflow::cx::v3::ImportEntityTypesRequest const& request) override; + StatusOr ImportEntityTypes( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::cx::v3::ImportEntityTypesRequest const& + request) override; + + future> + ImportEntityTypes(ExperimentalTag, + google::longrunning::Operation const& operation) override; + private: std::unique_ptr background_; std::shared_ptr stub_; diff --git a/google/cloud/dialogflow_cx/internal/entity_types_tracing_connection.cc b/google/cloud/dialogflow_cx/internal/entity_types_tracing_connection.cc index 60e853cd45ba3..80abca167a625 100644 --- a/google/cloud/dialogflow_cx/internal/entity_types_tracing_connection.cc +++ b/google/cloud/dialogflow_cx/internal/entity_types_tracing_connection.cc @@ -90,6 +90,29 @@ EntityTypesTracingConnection::ExportEntityTypes( return internal::EndSpan(std::move(span), child_->ExportEntityTypes(request)); } +StatusOr +EntityTypesTracingConnection::ExportEntityTypes( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::cx::v3::ExportEntityTypesRequest const& + request) { + auto span = internal::MakeSpan( + "dialogflow_cx::EntityTypesConnection::ExportEntityTypes"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->ExportEntityTypes(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +EntityTypesTracingConnection::ExportEntityTypes( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "dialogflow_cx::EntityTypesConnection::ExportEntityTypes"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->ExportEntityTypes(ExperimentalTag{}, operation)); +} + future> EntityTypesTracingConnection::ImportEntityTypes( google::cloud::dialogflow::cx::v3::ImportEntityTypesRequest const& @@ -100,6 +123,29 @@ EntityTypesTracingConnection::ImportEntityTypes( return internal::EndSpan(std::move(span), child_->ImportEntityTypes(request)); } +StatusOr +EntityTypesTracingConnection::ImportEntityTypes( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::cx::v3::ImportEntityTypesRequest const& + request) { + auto span = internal::MakeSpan( + "dialogflow_cx::EntityTypesConnection::ImportEntityTypes"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->ImportEntityTypes(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +EntityTypesTracingConnection::ImportEntityTypes( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "dialogflow_cx::EntityTypesConnection::ImportEntityTypes"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->ImportEntityTypes(ExperimentalTag{}, operation)); +} + #endif // GOOGLE_CLOUD_CPP_HAVE_OPENTELEMETRY std::shared_ptr diff --git a/google/cloud/dialogflow_cx/internal/entity_types_tracing_connection.h b/google/cloud/dialogflow_cx/internal/entity_types_tracing_connection.h index 95c0837757fc3..ac517497fa1f4 100644 --- a/google/cloud/dialogflow_cx/internal/entity_types_tracing_connection.h +++ b/google/cloud/dialogflow_cx/internal/entity_types_tracing_connection.h @@ -65,11 +65,29 @@ class EntityTypesTracingConnection google::cloud::dialogflow::cx::v3::ExportEntityTypesRequest const& request) override; + StatusOr ExportEntityTypes( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::cx::v3::ExportEntityTypesRequest const& + request) override; + + future> + ExportEntityTypes(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ImportEntityTypes( google::cloud::dialogflow::cx::v3::ImportEntityTypesRequest const& request) override; + StatusOr ImportEntityTypes( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::cx::v3::ImportEntityTypesRequest const& + request) override; + + future> + ImportEntityTypes(ExperimentalTag, + google::longrunning::Operation const& operation) override; + private: std::shared_ptr child_; }; diff --git a/google/cloud/dialogflow_cx/internal/environments_connection_impl.cc b/google/cloud/dialogflow_cx/internal/environments_connection_impl.cc index b4072ef1c614a..baea3b9c23519 100644 --- a/google/cloud/dialogflow_cx/internal/environments_connection_impl.cc +++ b/google/cloud/dialogflow_cx/internal/environments_connection_impl.cc @@ -154,6 +154,59 @@ EnvironmentsConnectionImpl::CreateEnvironment( polling_policy(*current), __func__); } +StatusOr +EnvironmentsConnectionImpl::CreateEnvironment( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::cx::v3::CreateEnvironmentRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateEnvironment(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::dialogflow::cx::v3::CreateEnvironmentRequest const& + request) { + return stub_->CreateEnvironment(context, options, request); + }, + *current, request, __func__); +} + +future> +EnvironmentsConnectionImpl::CreateEnvironment( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata().Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to CreateEnvironment", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::dialogflow::cx::v3::Environment>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::dialogflow::cx::v3::Environment>, + polling_policy(*current), __func__); +} + future> EnvironmentsConnectionImpl::UpdateEnvironment( google::cloud::dialogflow::cx::v3::UpdateEnvironmentRequest const& @@ -195,6 +248,59 @@ EnvironmentsConnectionImpl::UpdateEnvironment( polling_policy(*current), __func__); } +StatusOr +EnvironmentsConnectionImpl::UpdateEnvironment( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::cx::v3::UpdateEnvironmentRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UpdateEnvironment(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::dialogflow::cx::v3::UpdateEnvironmentRequest const& + request) { + return stub_->UpdateEnvironment(context, options, request); + }, + *current, request, __func__); +} + +future> +EnvironmentsConnectionImpl::UpdateEnvironment( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata().Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to UpdateEnvironment", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::dialogflow::cx::v3::Environment>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::dialogflow::cx::v3::Environment>, + polling_policy(*current), __func__); +} + Status EnvironmentsConnectionImpl::DeleteEnvironment( google::cloud::dialogflow::cx::v3::DeleteEnvironmentRequest const& request) { @@ -289,6 +395,61 @@ EnvironmentsConnectionImpl::RunContinuousTest( polling_policy(*current), __func__); } +StatusOr +EnvironmentsConnectionImpl::RunContinuousTest( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::cx::v3::RunContinuousTestRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->RunContinuousTest(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::dialogflow::cx::v3::RunContinuousTestRequest const& + request) { + return stub_->RunContinuousTest(context, options, request); + }, + *current, request, __func__); +} + +future> +EnvironmentsConnectionImpl::RunContinuousTest( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to RunContinuousTest", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::dialogflow::cx::v3::RunContinuousTestResponse>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::dialogflow::cx::v3::RunContinuousTestResponse>, + polling_policy(*current), __func__); +} + StreamRange EnvironmentsConnectionImpl::ListContinuousTestResults( google::cloud::dialogflow::cx::v3::ListContinuousTestResultsRequest @@ -366,6 +527,59 @@ EnvironmentsConnectionImpl::DeployFlow( polling_policy(*current), __func__); } +StatusOr EnvironmentsConnectionImpl::DeployFlow( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::cx::v3::DeployFlowRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeployFlow(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::dialogflow::cx::v3::DeployFlowRequest const& request) { + return stub_->DeployFlow(context, options, request); + }, + *current, request, __func__); +} + +future> +EnvironmentsConnectionImpl::DeployFlow( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DeployFlow", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::dialogflow::cx::v3::DeployFlowResponse>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::dialogflow::cx::v3::DeployFlowResponse>, + polling_policy(*current), __func__); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace dialogflow_cx_internal } // namespace cloud diff --git a/google/cloud/dialogflow_cx/internal/environments_connection_impl.h b/google/cloud/dialogflow_cx/internal/environments_connection_impl.h index 89493037e7c19..abd50ea409a25 100644 --- a/google/cloud/dialogflow_cx/internal/environments_connection_impl.h +++ b/google/cloud/dialogflow_cx/internal/environments_connection_impl.h @@ -65,11 +65,29 @@ class EnvironmentsConnectionImpl google::cloud::dialogflow::cx::v3::CreateEnvironmentRequest const& request) override; + StatusOr CreateEnvironment( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::cx::v3::CreateEnvironmentRequest const& + request) override; + + future> + CreateEnvironment(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateEnvironment( google::cloud::dialogflow::cx::v3::UpdateEnvironmentRequest const& request) override; + StatusOr UpdateEnvironment( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::cx::v3::UpdateEnvironmentRequest const& + request) override; + + future> + UpdateEnvironment(ExperimentalTag, + google::longrunning::Operation const& operation) override; + Status DeleteEnvironment( google::cloud::dialogflow::cx::v3::DeleteEnvironmentRequest const& request) override; @@ -84,6 +102,15 @@ class EnvironmentsConnectionImpl google::cloud::dialogflow::cx::v3::RunContinuousTestRequest const& request) override; + StatusOr RunContinuousTest( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::cx::v3::RunContinuousTestRequest const& + request) override; + + future> + RunContinuousTest(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListContinuousTestResults( google::cloud::dialogflow::cx::v3::ListContinuousTestResultsRequest @@ -93,6 +120,15 @@ class EnvironmentsConnectionImpl DeployFlow(google::cloud::dialogflow::cx::v3::DeployFlowRequest const& request) override; + StatusOr DeployFlow( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::cx::v3::DeployFlowRequest const& request) + override; + + future> + DeployFlow(ExperimentalTag, + google::longrunning::Operation const& operation) override; + private: std::unique_ptr background_; std::shared_ptr stub_; diff --git a/google/cloud/dialogflow_cx/internal/environments_tracing_connection.cc b/google/cloud/dialogflow_cx/internal/environments_tracing_connection.cc index 1fd5bbaad6e05..373024222f091 100644 --- a/google/cloud/dialogflow_cx/internal/environments_tracing_connection.cc +++ b/google/cloud/dialogflow_cx/internal/environments_tracing_connection.cc @@ -64,6 +64,29 @@ EnvironmentsTracingConnection::CreateEnvironment( return internal::EndSpan(std::move(span), child_->CreateEnvironment(request)); } +StatusOr +EnvironmentsTracingConnection::CreateEnvironment( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::cx::v3::CreateEnvironmentRequest const& + request) { + auto span = internal::MakeSpan( + "dialogflow_cx::EnvironmentsConnection::CreateEnvironment"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->CreateEnvironment(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +EnvironmentsTracingConnection::CreateEnvironment( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "dialogflow_cx::EnvironmentsConnection::CreateEnvironment"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->CreateEnvironment(ExperimentalTag{}, operation)); +} + future> EnvironmentsTracingConnection::UpdateEnvironment( google::cloud::dialogflow::cx::v3::UpdateEnvironmentRequest const& @@ -74,6 +97,29 @@ EnvironmentsTracingConnection::UpdateEnvironment( return internal::EndSpan(std::move(span), child_->UpdateEnvironment(request)); } +StatusOr +EnvironmentsTracingConnection::UpdateEnvironment( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::cx::v3::UpdateEnvironmentRequest const& + request) { + auto span = internal::MakeSpan( + "dialogflow_cx::EnvironmentsConnection::UpdateEnvironment"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->UpdateEnvironment(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +EnvironmentsTracingConnection::UpdateEnvironment( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "dialogflow_cx::EnvironmentsConnection::UpdateEnvironment"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->UpdateEnvironment(ExperimentalTag{}, operation)); +} + Status EnvironmentsTracingConnection::DeleteEnvironment( google::cloud::dialogflow::cx::v3::DeleteEnvironmentRequest const& request) { @@ -106,6 +152,29 @@ EnvironmentsTracingConnection::RunContinuousTest( return internal::EndSpan(std::move(span), child_->RunContinuousTest(request)); } +StatusOr +EnvironmentsTracingConnection::RunContinuousTest( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::cx::v3::RunContinuousTestRequest const& + request) { + auto span = internal::MakeSpan( + "dialogflow_cx::EnvironmentsConnection::RunContinuousTest"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->RunContinuousTest(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +EnvironmentsTracingConnection::RunContinuousTest( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "dialogflow_cx::EnvironmentsConnection::RunContinuousTest"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->RunContinuousTest(ExperimentalTag{}, operation)); +} + StreamRange EnvironmentsTracingConnection::ListContinuousTestResults( google::cloud::dialogflow::cx::v3::ListContinuousTestResultsRequest @@ -128,6 +197,27 @@ EnvironmentsTracingConnection::DeployFlow( return internal::EndSpan(std::move(span), child_->DeployFlow(request)); } +StatusOr +EnvironmentsTracingConnection::DeployFlow( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::cx::v3::DeployFlowRequest const& request) { + auto span = + internal::MakeSpan("dialogflow_cx::EnvironmentsConnection::DeployFlow"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->DeployFlow(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +EnvironmentsTracingConnection::DeployFlow( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = + internal::MakeSpan("dialogflow_cx::EnvironmentsConnection::DeployFlow"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->DeployFlow(ExperimentalTag{}, operation)); +} + #endif // GOOGLE_CLOUD_CPP_HAVE_OPENTELEMETRY std::shared_ptr diff --git a/google/cloud/dialogflow_cx/internal/environments_tracing_connection.h b/google/cloud/dialogflow_cx/internal/environments_tracing_connection.h index eceff78707962..8017c2dbd17d2 100644 --- a/google/cloud/dialogflow_cx/internal/environments_tracing_connection.h +++ b/google/cloud/dialogflow_cx/internal/environments_tracing_connection.h @@ -53,11 +53,29 @@ class EnvironmentsTracingConnection google::cloud::dialogflow::cx::v3::CreateEnvironmentRequest const& request) override; + StatusOr CreateEnvironment( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::cx::v3::CreateEnvironmentRequest const& + request) override; + + future> + CreateEnvironment(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateEnvironment( google::cloud::dialogflow::cx::v3::UpdateEnvironmentRequest const& request) override; + StatusOr UpdateEnvironment( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::cx::v3::UpdateEnvironmentRequest const& + request) override; + + future> + UpdateEnvironment(ExperimentalTag, + google::longrunning::Operation const& operation) override; + Status DeleteEnvironment( google::cloud::dialogflow::cx::v3::DeleteEnvironmentRequest const& request) override; @@ -72,6 +90,15 @@ class EnvironmentsTracingConnection google::cloud::dialogflow::cx::v3::RunContinuousTestRequest const& request) override; + StatusOr RunContinuousTest( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::cx::v3::RunContinuousTestRequest const& + request) override; + + future> + RunContinuousTest(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListContinuousTestResults( google::cloud::dialogflow::cx::v3::ListContinuousTestResultsRequest @@ -81,6 +108,15 @@ class EnvironmentsTracingConnection DeployFlow(google::cloud::dialogflow::cx::v3::DeployFlowRequest const& request) override; + StatusOr DeployFlow( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::cx::v3::DeployFlowRequest const& request) + override; + + future> + DeployFlow(ExperimentalTag, + google::longrunning::Operation const& operation) override; + private: std::shared_ptr child_; }; diff --git a/google/cloud/dialogflow_cx/internal/flows_connection_impl.cc b/google/cloud/dialogflow_cx/internal/flows_connection_impl.cc index 46cf013e6bb39..f21783202a55b 100644 --- a/google/cloud/dialogflow_cx/internal/flows_connection_impl.cc +++ b/google/cloud/dialogflow_cx/internal/flows_connection_impl.cc @@ -190,6 +190,55 @@ future> FlowsConnectionImpl::TrainFlow( polling_policy(*current), __func__); } +StatusOr FlowsConnectionImpl::TrainFlow( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::cx::v3::TrainFlowRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->TrainFlow(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::dialogflow::cx::v3::TrainFlowRequest const& request) { + return stub_->TrainFlow(context, options, request); + }, + *current, request, __func__); +} + +future> FlowsConnectionImpl::TrainFlow( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata().Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to TrainFlow", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::protobuf::Struct>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::protobuf::Struct>, + polling_policy(*current), __func__); +} + StatusOr FlowsConnectionImpl::ValidateFlow( google::cloud::dialogflow::cx::v3::ValidateFlowRequest const& request) { @@ -260,6 +309,57 @@ FlowsConnectionImpl::ImportFlow( polling_policy(*current), __func__); } +StatusOr FlowsConnectionImpl::ImportFlow( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::cx::v3::ImportFlowRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->ImportFlow(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::dialogflow::cx::v3::ImportFlowRequest const& request) { + return stub_->ImportFlow(context, options, request); + }, + *current, request, __func__); +} + +future> +FlowsConnectionImpl::ImportFlow( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata().Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to ImportFlow", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::dialogflow::cx::v3::ImportFlowResponse>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::dialogflow::cx::v3::ImportFlowResponse>, + polling_policy(*current), __func__); +} + future> FlowsConnectionImpl::ExportFlow( google::cloud::dialogflow::cx::v3::ExportFlowRequest const& request) { @@ -299,6 +399,57 @@ FlowsConnectionImpl::ExportFlow( polling_policy(*current), __func__); } +StatusOr FlowsConnectionImpl::ExportFlow( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::cx::v3::ExportFlowRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->ExportFlow(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::dialogflow::cx::v3::ExportFlowRequest const& request) { + return stub_->ExportFlow(context, options, request); + }, + *current, request, __func__); +} + +future> +FlowsConnectionImpl::ExportFlow( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata().Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to ExportFlow", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::dialogflow::cx::v3::ExportFlowResponse>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::dialogflow::cx::v3::ExportFlowResponse>, + polling_policy(*current), __func__); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace dialogflow_cx_internal } // namespace cloud diff --git a/google/cloud/dialogflow_cx/internal/flows_connection_impl.h b/google/cloud/dialogflow_cx/internal/flows_connection_impl.h index 27ba686031de8..f73eb06250523 100644 --- a/google/cloud/dialogflow_cx/internal/flows_connection_impl.h +++ b/google/cloud/dialogflow_cx/internal/flows_connection_impl.h @@ -72,6 +72,15 @@ class FlowsConnectionImpl : public dialogflow_cx::FlowsConnection { google::cloud::dialogflow::cx::v3::TrainFlowRequest const& request) override; + StatusOr TrainFlow( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::cx::v3::TrainFlowRequest const& request) + override; + + future> TrainFlow( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr ValidateFlow(google::cloud::dialogflow::cx::v3::ValidateFlowRequest const& request) override; @@ -85,10 +94,28 @@ class FlowsConnectionImpl : public dialogflow_cx::FlowsConnection { ImportFlow(google::cloud::dialogflow::cx::v3::ImportFlowRequest const& request) override; + StatusOr ImportFlow( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::cx::v3::ImportFlowRequest const& request) + override; + + future> + ImportFlow(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ExportFlow(google::cloud::dialogflow::cx::v3::ExportFlowRequest const& request) override; + StatusOr ExportFlow( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::cx::v3::ExportFlowRequest const& request) + override; + + future> + ExportFlow(ExperimentalTag, + google::longrunning::Operation const& operation) override; + private: std::unique_ptr background_; std::shared_ptr stub_; diff --git a/google/cloud/dialogflow_cx/internal/flows_tracing_connection.cc b/google/cloud/dialogflow_cx/internal/flows_tracing_connection.cc index 10ae5f02d22a1..d4e9abe3a3af4 100644 --- a/google/cloud/dialogflow_cx/internal/flows_tracing_connection.cc +++ b/google/cloud/dialogflow_cx/internal/flows_tracing_connection.cc @@ -81,6 +81,23 @@ future> FlowsTracingConnection::TrainFlow( return internal::EndSpan(std::move(span), child_->TrainFlow(request)); } +StatusOr FlowsTracingConnection::TrainFlow( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::cx::v3::TrainFlowRequest const& request) { + auto span = internal::MakeSpan("dialogflow_cx::FlowsConnection::TrainFlow"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->TrainFlow(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> FlowsTracingConnection::TrainFlow( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan("dialogflow_cx::FlowsConnection::TrainFlow"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->TrainFlow(ExperimentalTag{}, operation)); +} + StatusOr FlowsTracingConnection::ValidateFlow( google::cloud::dialogflow::cx::v3::ValidateFlowRequest const& request) { @@ -108,6 +125,24 @@ FlowsTracingConnection::ImportFlow( return internal::EndSpan(std::move(span), child_->ImportFlow(request)); } +StatusOr FlowsTracingConnection::ImportFlow( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::cx::v3::ImportFlowRequest const& request) { + auto span = internal::MakeSpan("dialogflow_cx::FlowsConnection::ImportFlow"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->ImportFlow(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +FlowsTracingConnection::ImportFlow( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan("dialogflow_cx::FlowsConnection::ImportFlow"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->ImportFlow(ExperimentalTag{}, operation)); +} + future> FlowsTracingConnection::ExportFlow( google::cloud::dialogflow::cx::v3::ExportFlowRequest const& request) { @@ -116,6 +151,24 @@ FlowsTracingConnection::ExportFlow( return internal::EndSpan(std::move(span), child_->ExportFlow(request)); } +StatusOr FlowsTracingConnection::ExportFlow( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::cx::v3::ExportFlowRequest const& request) { + auto span = internal::MakeSpan("dialogflow_cx::FlowsConnection::ExportFlow"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->ExportFlow(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +FlowsTracingConnection::ExportFlow( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan("dialogflow_cx::FlowsConnection::ExportFlow"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->ExportFlow(ExperimentalTag{}, operation)); +} + #endif // GOOGLE_CLOUD_CPP_HAVE_OPENTELEMETRY std::shared_ptr MakeFlowsTracingConnection( diff --git a/google/cloud/dialogflow_cx/internal/flows_tracing_connection.h b/google/cloud/dialogflow_cx/internal/flows_tracing_connection.h index ecdeb5425037f..9e9d4b5a22efd 100644 --- a/google/cloud/dialogflow_cx/internal/flows_tracing_connection.h +++ b/google/cloud/dialogflow_cx/internal/flows_tracing_connection.h @@ -61,6 +61,15 @@ class FlowsTracingConnection : public dialogflow_cx::FlowsConnection { google::cloud::dialogflow::cx::v3::TrainFlowRequest const& request) override; + StatusOr TrainFlow( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::cx::v3::TrainFlowRequest const& request) + override; + + future> TrainFlow( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr ValidateFlow(google::cloud::dialogflow::cx::v3::ValidateFlowRequest const& request) override; @@ -74,10 +83,28 @@ class FlowsTracingConnection : public dialogflow_cx::FlowsConnection { ImportFlow(google::cloud::dialogflow::cx::v3::ImportFlowRequest const& request) override; + StatusOr ImportFlow( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::cx::v3::ImportFlowRequest const& request) + override; + + future> + ImportFlow(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ExportFlow(google::cloud::dialogflow::cx::v3::ExportFlowRequest const& request) override; + StatusOr ExportFlow( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::cx::v3::ExportFlowRequest const& request) + override; + + future> + ExportFlow(ExperimentalTag, + google::longrunning::Operation const& operation) override; + private: std::shared_ptr child_; }; diff --git a/google/cloud/dialogflow_cx/internal/intents_connection_impl.cc b/google/cloud/dialogflow_cx/internal/intents_connection_impl.cc index 1a95fe058b477..8d025452ac318 100644 --- a/google/cloud/dialogflow_cx/internal/intents_connection_impl.cc +++ b/google/cloud/dialogflow_cx/internal/intents_connection_impl.cc @@ -195,6 +195,59 @@ IntentsConnectionImpl::ImportIntents( polling_policy(*current), __func__); } +StatusOr IntentsConnectionImpl::ImportIntents( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::cx::v3::ImportIntentsRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->ImportIntents(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::dialogflow::cx::v3::ImportIntentsRequest const& + request) { + return stub_->ImportIntents(context, options, request); + }, + *current, request, __func__); +} + +future> +IntentsConnectionImpl::ImportIntents( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to ImportIntents", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::dialogflow::cx::v3::ImportIntentsResponse>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::dialogflow::cx::v3::ImportIntentsResponse>, + polling_policy(*current), __func__); +} + future> IntentsConnectionImpl::ExportIntents( google::cloud::dialogflow::cx::v3::ExportIntentsRequest const& request) { @@ -235,6 +288,59 @@ IntentsConnectionImpl::ExportIntents( polling_policy(*current), __func__); } +StatusOr IntentsConnectionImpl::ExportIntents( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::cx::v3::ExportIntentsRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->ExportIntents(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::dialogflow::cx::v3::ExportIntentsRequest const& + request) { + return stub_->ExportIntents(context, options, request); + }, + *current, request, __func__); +} + +future> +IntentsConnectionImpl::ExportIntents( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to ExportIntents", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::dialogflow::cx::v3::ExportIntentsResponse>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::dialogflow::cx::v3::ExportIntentsResponse>, + polling_policy(*current), __func__); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace dialogflow_cx_internal } // namespace cloud diff --git a/google/cloud/dialogflow_cx/internal/intents_connection_impl.h b/google/cloud/dialogflow_cx/internal/intents_connection_impl.h index c02b0d41c13bf..c265a1136dbca 100644 --- a/google/cloud/dialogflow_cx/internal/intents_connection_impl.h +++ b/google/cloud/dialogflow_cx/internal/intents_connection_impl.h @@ -74,10 +74,28 @@ class IntentsConnectionImpl : public dialogflow_cx::IntentsConnection { ImportIntents(google::cloud::dialogflow::cx::v3::ImportIntentsRequest const& request) override; + StatusOr ImportIntents( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::cx::v3::ImportIntentsRequest const& request) + override; + + future> + ImportIntents(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ExportIntents(google::cloud::dialogflow::cx::v3::ExportIntentsRequest const& request) override; + StatusOr ExportIntents( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::cx::v3::ExportIntentsRequest const& request) + override; + + future> + ExportIntents(ExperimentalTag, + google::longrunning::Operation const& operation) override; + private: std::unique_ptr background_; std::shared_ptr stub_; diff --git a/google/cloud/dialogflow_cx/internal/intents_tracing_connection.cc b/google/cloud/dialogflow_cx/internal/intents_tracing_connection.cc index 2c9d0dea8ace0..e6f3d9c53ff65 100644 --- a/google/cloud/dialogflow_cx/internal/intents_tracing_connection.cc +++ b/google/cloud/dialogflow_cx/internal/intents_tracing_connection.cc @@ -88,6 +88,27 @@ IntentsTracingConnection::ImportIntents( return internal::EndSpan(std::move(span), child_->ImportIntents(request)); } +StatusOr +IntentsTracingConnection::ImportIntents( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::cx::v3::ImportIntentsRequest const& request) { + auto span = + internal::MakeSpan("dialogflow_cx::IntentsConnection::ImportIntents"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->ImportIntents(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +IntentsTracingConnection::ImportIntents( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = + internal::MakeSpan("dialogflow_cx::IntentsConnection::ImportIntents"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->ImportIntents(ExperimentalTag{}, operation)); +} + future> IntentsTracingConnection::ExportIntents( google::cloud::dialogflow::cx::v3::ExportIntentsRequest const& request) { @@ -97,6 +118,27 @@ IntentsTracingConnection::ExportIntents( return internal::EndSpan(std::move(span), child_->ExportIntents(request)); } +StatusOr +IntentsTracingConnection::ExportIntents( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::cx::v3::ExportIntentsRequest const& request) { + auto span = + internal::MakeSpan("dialogflow_cx::IntentsConnection::ExportIntents"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->ExportIntents(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +IntentsTracingConnection::ExportIntents( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = + internal::MakeSpan("dialogflow_cx::IntentsConnection::ExportIntents"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->ExportIntents(ExperimentalTag{}, operation)); +} + #endif // GOOGLE_CLOUD_CPP_HAVE_OPENTELEMETRY std::shared_ptr MakeIntentsTracingConnection( diff --git a/google/cloud/dialogflow_cx/internal/intents_tracing_connection.h b/google/cloud/dialogflow_cx/internal/intents_tracing_connection.h index b702b23634dbd..6d6473e9a9728 100644 --- a/google/cloud/dialogflow_cx/internal/intents_tracing_connection.h +++ b/google/cloud/dialogflow_cx/internal/intents_tracing_connection.h @@ -62,10 +62,28 @@ class IntentsTracingConnection : public dialogflow_cx::IntentsConnection { ImportIntents(google::cloud::dialogflow::cx::v3::ImportIntentsRequest const& request) override; + StatusOr ImportIntents( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::cx::v3::ImportIntentsRequest const& request) + override; + + future> + ImportIntents(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ExportIntents(google::cloud::dialogflow::cx::v3::ExportIntentsRequest const& request) override; + StatusOr ExportIntents( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::cx::v3::ExportIntentsRequest const& request) + override; + + future> + ExportIntents(ExperimentalTag, + google::longrunning::Operation const& operation) override; + private: std::shared_ptr child_; }; diff --git a/google/cloud/dialogflow_cx/internal/test_cases_connection_impl.cc b/google/cloud/dialogflow_cx/internal/test_cases_connection_impl.cc index 88de9304841a0..f23c3a1fb6055 100644 --- a/google/cloud/dialogflow_cx/internal/test_cases_connection_impl.cc +++ b/google/cloud/dialogflow_cx/internal/test_cases_connection_impl.cc @@ -200,6 +200,59 @@ TestCasesConnectionImpl::RunTestCase( polling_policy(*current), __func__); } +StatusOr TestCasesConnectionImpl::RunTestCase( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::cx::v3::RunTestCaseRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->RunTestCase(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::dialogflow::cx::v3::RunTestCaseRequest const& + request) { + return stub_->RunTestCase(context, options, request); + }, + *current, request, __func__); +} + +future> +TestCasesConnectionImpl::RunTestCase( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to RunTestCase", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::dialogflow::cx::v3::RunTestCaseResponse>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::dialogflow::cx::v3::RunTestCaseResponse>, + polling_policy(*current), __func__); +} + future> TestCasesConnectionImpl::BatchRunTestCases( google::cloud::dialogflow::cx::v3::BatchRunTestCasesRequest const& @@ -241,6 +294,61 @@ TestCasesConnectionImpl::BatchRunTestCases( polling_policy(*current), __func__); } +StatusOr +TestCasesConnectionImpl::BatchRunTestCases( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::cx::v3::BatchRunTestCasesRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->BatchRunTestCases(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::dialogflow::cx::v3::BatchRunTestCasesRequest const& + request) { + return stub_->BatchRunTestCases(context, options, request); + }, + *current, request, __func__); +} + +future> +TestCasesConnectionImpl::BatchRunTestCases( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to BatchRunTestCases", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::dialogflow::cx::v3::BatchRunTestCasesResponse>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::dialogflow::cx::v3::BatchRunTestCasesResponse>, + polling_policy(*current), __func__); +} + StatusOr TestCasesConnectionImpl::CalculateCoverage( google::cloud::dialogflow::cx::v3::CalculateCoverageRequest const& @@ -297,6 +405,60 @@ TestCasesConnectionImpl::ImportTestCases( polling_policy(*current), __func__); } +StatusOr +TestCasesConnectionImpl::ImportTestCases( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::cx::v3::ImportTestCasesRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->ImportTestCases(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::dialogflow::cx::v3::ImportTestCasesRequest const& + request) { + return stub_->ImportTestCases(context, options, request); + }, + *current, request, __func__); +} + +future> +TestCasesConnectionImpl::ImportTestCases( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to ImportTestCases", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::dialogflow::cx::v3::ImportTestCasesResponse>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::dialogflow::cx::v3::ImportTestCasesResponse>, + polling_policy(*current), __func__); +} + future> TestCasesConnectionImpl::ExportTestCases( google::cloud::dialogflow::cx::v3::ExportTestCasesRequest const& request) { @@ -337,6 +499,60 @@ TestCasesConnectionImpl::ExportTestCases( polling_policy(*current), __func__); } +StatusOr +TestCasesConnectionImpl::ExportTestCases( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::cx::v3::ExportTestCasesRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->ExportTestCases(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::dialogflow::cx::v3::ExportTestCasesRequest const& + request) { + return stub_->ExportTestCases(context, options, request); + }, + *current, request, __func__); +} + +future> +TestCasesConnectionImpl::ExportTestCases( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to ExportTestCases", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::dialogflow::cx::v3::ExportTestCasesResponse>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::dialogflow::cx::v3::ExportTestCasesResponse>, + polling_policy(*current), __func__); +} + StreamRange TestCasesConnectionImpl::ListTestCaseResults( google::cloud::dialogflow::cx::v3::ListTestCaseResultsRequest request) { diff --git a/google/cloud/dialogflow_cx/internal/test_cases_connection_impl.h b/google/cloud/dialogflow_cx/internal/test_cases_connection_impl.h index 679547aa64501..ae6f89724546c 100644 --- a/google/cloud/dialogflow_cx/internal/test_cases_connection_impl.h +++ b/google/cloud/dialogflow_cx/internal/test_cases_connection_impl.h @@ -74,11 +74,29 @@ class TestCasesConnectionImpl : public dialogflow_cx::TestCasesConnection { RunTestCase(google::cloud::dialogflow::cx::v3::RunTestCaseRequest const& request) override; + StatusOr RunTestCase( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::cx::v3::RunTestCaseRequest const& request) + override; + + future> + RunTestCase(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> BatchRunTestCases( google::cloud::dialogflow::cx::v3::BatchRunTestCasesRequest const& request) override; + StatusOr BatchRunTestCases( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::cx::v3::BatchRunTestCasesRequest const& + request) override; + + future> + BatchRunTestCases(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr CalculateCoverage( google::cloud::dialogflow::cx::v3::CalculateCoverageRequest const& @@ -89,11 +107,29 @@ class TestCasesConnectionImpl : public dialogflow_cx::TestCasesConnection { google::cloud::dialogflow::cx::v3::ImportTestCasesRequest const& request) override; + StatusOr ImportTestCases( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::cx::v3::ImportTestCasesRequest const& request) + override; + + future> + ImportTestCases(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ExportTestCases( google::cloud::dialogflow::cx::v3::ExportTestCasesRequest const& request) override; + StatusOr ExportTestCases( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::cx::v3::ExportTestCasesRequest const& request) + override; + + future> + ExportTestCases(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListTestCaseResults( google::cloud::dialogflow::cx::v3::ListTestCaseResultsRequest request) diff --git a/google/cloud/dialogflow_cx/internal/test_cases_tracing_connection.cc b/google/cloud/dialogflow_cx/internal/test_cases_tracing_connection.cc index 56047141bfb7f..322d3d1b625be 100644 --- a/google/cloud/dialogflow_cx/internal/test_cases_tracing_connection.cc +++ b/google/cloud/dialogflow_cx/internal/test_cases_tracing_connection.cc @@ -90,6 +90,27 @@ TestCasesTracingConnection::RunTestCase( return internal::EndSpan(std::move(span), child_->RunTestCase(request)); } +StatusOr +TestCasesTracingConnection::RunTestCase( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::cx::v3::RunTestCaseRequest const& request) { + auto span = + internal::MakeSpan("dialogflow_cx::TestCasesConnection::RunTestCase"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->RunTestCase(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +TestCasesTracingConnection::RunTestCase( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = + internal::MakeSpan("dialogflow_cx::TestCasesConnection::RunTestCase"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->RunTestCase(ExperimentalTag{}, operation)); +} + future> TestCasesTracingConnection::BatchRunTestCases( google::cloud::dialogflow::cx::v3::BatchRunTestCasesRequest const& @@ -100,6 +121,29 @@ TestCasesTracingConnection::BatchRunTestCases( return internal::EndSpan(std::move(span), child_->BatchRunTestCases(request)); } +StatusOr +TestCasesTracingConnection::BatchRunTestCases( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::cx::v3::BatchRunTestCasesRequest const& + request) { + auto span = internal::MakeSpan( + "dialogflow_cx::TestCasesConnection::BatchRunTestCases"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->BatchRunTestCases(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +TestCasesTracingConnection::BatchRunTestCases( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "dialogflow_cx::TestCasesConnection::BatchRunTestCases"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->BatchRunTestCases(ExperimentalTag{}, operation)); +} + StatusOr TestCasesTracingConnection::CalculateCoverage( google::cloud::dialogflow::cx::v3::CalculateCoverageRequest const& @@ -119,6 +163,27 @@ TestCasesTracingConnection::ImportTestCases( return internal::EndSpan(std::move(span), child_->ImportTestCases(request)); } +StatusOr +TestCasesTracingConnection::ImportTestCases( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::cx::v3::ImportTestCasesRequest const& request) { + auto span = + internal::MakeSpan("dialogflow_cx::TestCasesConnection::ImportTestCases"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->ImportTestCases(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +TestCasesTracingConnection::ImportTestCases( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = + internal::MakeSpan("dialogflow_cx::TestCasesConnection::ImportTestCases"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->ImportTestCases(ExperimentalTag{}, operation)); +} + future> TestCasesTracingConnection::ExportTestCases( google::cloud::dialogflow::cx::v3::ExportTestCasesRequest const& request) { @@ -128,6 +193,27 @@ TestCasesTracingConnection::ExportTestCases( return internal::EndSpan(std::move(span), child_->ExportTestCases(request)); } +StatusOr +TestCasesTracingConnection::ExportTestCases( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::cx::v3::ExportTestCasesRequest const& request) { + auto span = + internal::MakeSpan("dialogflow_cx::TestCasesConnection::ExportTestCases"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->ExportTestCases(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +TestCasesTracingConnection::ExportTestCases( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = + internal::MakeSpan("dialogflow_cx::TestCasesConnection::ExportTestCases"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->ExportTestCases(ExperimentalTag{}, operation)); +} + StreamRange TestCasesTracingConnection::ListTestCaseResults( google::cloud::dialogflow::cx::v3::ListTestCaseResultsRequest request) { diff --git a/google/cloud/dialogflow_cx/internal/test_cases_tracing_connection.h b/google/cloud/dialogflow_cx/internal/test_cases_tracing_connection.h index 78dc18f211bd2..77a4c597f508f 100644 --- a/google/cloud/dialogflow_cx/internal/test_cases_tracing_connection.h +++ b/google/cloud/dialogflow_cx/internal/test_cases_tracing_connection.h @@ -62,11 +62,29 @@ class TestCasesTracingConnection : public dialogflow_cx::TestCasesConnection { RunTestCase(google::cloud::dialogflow::cx::v3::RunTestCaseRequest const& request) override; + StatusOr RunTestCase( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::cx::v3::RunTestCaseRequest const& request) + override; + + future> + RunTestCase(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> BatchRunTestCases( google::cloud::dialogflow::cx::v3::BatchRunTestCasesRequest const& request) override; + StatusOr BatchRunTestCases( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::cx::v3::BatchRunTestCasesRequest const& + request) override; + + future> + BatchRunTestCases(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr CalculateCoverage( google::cloud::dialogflow::cx::v3::CalculateCoverageRequest const& @@ -77,11 +95,29 @@ class TestCasesTracingConnection : public dialogflow_cx::TestCasesConnection { google::cloud::dialogflow::cx::v3::ImportTestCasesRequest const& request) override; + StatusOr ImportTestCases( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::cx::v3::ImportTestCasesRequest const& request) + override; + + future> + ImportTestCases(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ExportTestCases( google::cloud::dialogflow::cx::v3::ExportTestCasesRequest const& request) override; + StatusOr ExportTestCases( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::cx::v3::ExportTestCasesRequest const& request) + override; + + future> + ExportTestCases(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListTestCaseResults( google::cloud::dialogflow::cx::v3::ListTestCaseResultsRequest request) diff --git a/google/cloud/dialogflow_cx/internal/versions_connection_impl.cc b/google/cloud/dialogflow_cx/internal/versions_connection_impl.cc index c7d92a2321bf5..0b2ef751ed92d 100644 --- a/google/cloud/dialogflow_cx/internal/versions_connection_impl.cc +++ b/google/cloud/dialogflow_cx/internal/versions_connection_impl.cc @@ -152,6 +152,59 @@ VersionsConnectionImpl::CreateVersion( polling_policy(*current), __func__); } +StatusOr VersionsConnectionImpl::CreateVersion( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::cx::v3::CreateVersionRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateVersion(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::dialogflow::cx::v3::CreateVersionRequest const& + request) { + return stub_->CreateVersion(context, options, request); + }, + *current, request, __func__); +} + +future> +VersionsConnectionImpl::CreateVersion( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to CreateVersion", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::dialogflow::cx::v3::Version>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::dialogflow::cx::v3::Version>, + polling_policy(*current), __func__); +} + StatusOr VersionsConnectionImpl::UpdateVersion( google::cloud::dialogflow::cx::v3::UpdateVersionRequest const& request) { @@ -220,6 +273,55 @@ future> VersionsConnectionImpl::LoadVersion( polling_policy(*current), __func__); } +StatusOr VersionsConnectionImpl::LoadVersion( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::cx::v3::LoadVersionRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->LoadVersion(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::dialogflow::cx::v3::LoadVersionRequest const& + request) { + return stub_->LoadVersion(context, options, request); + }, + *current, request, __func__); +} + +future> VersionsConnectionImpl::LoadVersion( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata().Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to LoadVersion", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::protobuf::Struct>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::protobuf::Struct>, + polling_policy(*current), __func__); +} + StatusOr VersionsConnectionImpl::CompareVersions( google::cloud::dialogflow::cx::v3::CompareVersionsRequest const& request) { diff --git a/google/cloud/dialogflow_cx/internal/versions_connection_impl.h b/google/cloud/dialogflow_cx/internal/versions_connection_impl.h index 54be3c14c7bee..0c4a66f8fe98c 100644 --- a/google/cloud/dialogflow_cx/internal/versions_connection_impl.h +++ b/google/cloud/dialogflow_cx/internal/versions_connection_impl.h @@ -62,6 +62,15 @@ class VersionsConnectionImpl : public dialogflow_cx::VersionsConnection { google::cloud::dialogflow::cx::v3::CreateVersionRequest const& request) override; + StatusOr CreateVersion( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::cx::v3::CreateVersionRequest const& request) + override; + + future> CreateVersion( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr UpdateVersion( google::cloud::dialogflow::cx::v3::UpdateVersionRequest const& request) override; @@ -74,6 +83,15 @@ class VersionsConnectionImpl : public dialogflow_cx::VersionsConnection { google::cloud::dialogflow::cx::v3::LoadVersionRequest const& request) override; + StatusOr LoadVersion( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::cx::v3::LoadVersionRequest const& request) + override; + + future> LoadVersion( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr CompareVersions( google::cloud::dialogflow::cx::v3::CompareVersionsRequest const& request) diff --git a/google/cloud/dialogflow_cx/internal/versions_tracing_connection.cc b/google/cloud/dialogflow_cx/internal/versions_tracing_connection.cc index 66404dcc90bfb..86ca51bdd0374 100644 --- a/google/cloud/dialogflow_cx/internal/versions_tracing_connection.cc +++ b/google/cloud/dialogflow_cx/internal/versions_tracing_connection.cc @@ -63,6 +63,27 @@ VersionsTracingConnection::CreateVersion( return internal::EndSpan(std::move(span), child_->CreateVersion(request)); } +StatusOr +VersionsTracingConnection::CreateVersion( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::cx::v3::CreateVersionRequest const& request) { + auto span = + internal::MakeSpan("dialogflow_cx::VersionsConnection::CreateVersion"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->CreateVersion(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +VersionsTracingConnection::CreateVersion( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = + internal::MakeSpan("dialogflow_cx::VersionsConnection::CreateVersion"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->CreateVersion(ExperimentalTag{}, operation)); +} + StatusOr VersionsTracingConnection::UpdateVersion( google::cloud::dialogflow::cx::v3::UpdateVersionRequest const& request) { @@ -89,6 +110,26 @@ VersionsTracingConnection::LoadVersion( return internal::EndSpan(std::move(span), child_->LoadVersion(request)); } +StatusOr VersionsTracingConnection::LoadVersion( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::cx::v3::LoadVersionRequest const& request) { + auto span = + internal::MakeSpan("dialogflow_cx::VersionsConnection::LoadVersion"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->LoadVersion(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +VersionsTracingConnection::LoadVersion( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = + internal::MakeSpan("dialogflow_cx::VersionsConnection::LoadVersion"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->LoadVersion(ExperimentalTag{}, operation)); +} + StatusOr VersionsTracingConnection::CompareVersions( google::cloud::dialogflow::cx::v3::CompareVersionsRequest const& request) { diff --git a/google/cloud/dialogflow_cx/internal/versions_tracing_connection.h b/google/cloud/dialogflow_cx/internal/versions_tracing_connection.h index 1a15d78f641e4..1e3d13a05dea4 100644 --- a/google/cloud/dialogflow_cx/internal/versions_tracing_connection.h +++ b/google/cloud/dialogflow_cx/internal/versions_tracing_connection.h @@ -50,6 +50,15 @@ class VersionsTracingConnection : public dialogflow_cx::VersionsConnection { google::cloud::dialogflow::cx::v3::CreateVersionRequest const& request) override; + StatusOr CreateVersion( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::cx::v3::CreateVersionRequest const& request) + override; + + future> CreateVersion( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr UpdateVersion( google::cloud::dialogflow::cx::v3::UpdateVersionRequest const& request) override; @@ -62,6 +71,15 @@ class VersionsTracingConnection : public dialogflow_cx::VersionsConnection { google::cloud::dialogflow::cx::v3::LoadVersionRequest const& request) override; + StatusOr LoadVersion( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::cx::v3::LoadVersionRequest const& request) + override; + + future> LoadVersion( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr CompareVersions( google::cloud::dialogflow::cx::v3::CompareVersionsRequest const& request) diff --git a/google/cloud/dialogflow_cx/mocks/mock_agents_connection.h b/google/cloud/dialogflow_cx/mocks/mock_agents_connection.h index 734ec0139b0b5..9c8fba14edabc 100644 --- a/google/cloud/dialogflow_cx/mocks/mock_agents_connection.h +++ b/google/cloud/dialogflow_cx/mocks/mock_agents_connection.h @@ -77,11 +77,34 @@ class MockAgentsConnection : public dialogflow_cx::AgentsConnection { (google::cloud::dialogflow::cx::v3::ExportAgentRequest const& request), (override)); + MOCK_METHOD( + StatusOr, ExportAgent, + (ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::cx::v3::ExportAgentRequest const& request), + (override)); + + MOCK_METHOD( + future>, + ExportAgent, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, RestoreAgent, (google::cloud::dialogflow::cx::v3::RestoreAgentRequest const& request), (override)); + MOCK_METHOD( + StatusOr, RestoreAgent, + (ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::cx::v3::RestoreAgentRequest const& request), + (override)); + + MOCK_METHOD(future>, RestoreAgent, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr, ValidateAgent, diff --git a/google/cloud/dialogflow_cx/mocks/mock_entity_types_connection.h b/google/cloud/dialogflow_cx/mocks/mock_entity_types_connection.h index 64fda64596aa0..29cafcc592e32 100644 --- a/google/cloud/dialogflow_cx/mocks/mock_entity_types_connection.h +++ b/google/cloud/dialogflow_cx/mocks/mock_entity_types_connection.h @@ -82,6 +82,20 @@ class MockEntityTypesConnection : public dialogflow_cx::EntityTypesConnection { request), (override)); + MOCK_METHOD( + StatusOr, ExportEntityTypes, + (ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::cx::v3::ExportEntityTypesRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + ExportEntityTypes, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, @@ -89,6 +103,20 @@ class MockEntityTypesConnection : public dialogflow_cx::EntityTypesConnection { (google::cloud::dialogflow::cx::v3::ImportEntityTypesRequest const& request), (override)); + + MOCK_METHOD( + StatusOr, ImportEntityTypes, + (ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::cx::v3::ImportEntityTypesRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + ImportEntityTypes, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); }; GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END diff --git a/google/cloud/dialogflow_cx/mocks/mock_environments_connection.h b/google/cloud/dialogflow_cx/mocks/mock_environments_connection.h index 8d4df7b1fdb25..d5015ebdead73 100644 --- a/google/cloud/dialogflow_cx/mocks/mock_environments_connection.h +++ b/google/cloud/dialogflow_cx/mocks/mock_environments_connection.h @@ -65,6 +65,19 @@ class MockEnvironmentsConnection request), (override)); + MOCK_METHOD( + StatusOr, CreateEnvironment, + (ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::cx::v3::CreateEnvironmentRequest const& + request), + (override)); + + MOCK_METHOD(future>, + CreateEnvironment, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, UpdateEnvironment, @@ -72,6 +85,19 @@ class MockEnvironmentsConnection request), (override)); + MOCK_METHOD( + StatusOr, UpdateEnvironment, + (ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::cx::v3::UpdateEnvironmentRequest const& + request), + (override)); + + MOCK_METHOD(future>, + UpdateEnvironment, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( Status, DeleteEnvironment, (google::cloud::dialogflow::cx::v3::DeleteEnvironmentRequest const& @@ -93,6 +119,20 @@ class MockEnvironmentsConnection request), (override)); + MOCK_METHOD( + StatusOr, RunContinuousTest, + (ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::cx::v3::RunContinuousTestRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + RunContinuousTest, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( (StreamRange), ListContinuousTestResults, @@ -105,6 +145,18 @@ class MockEnvironmentsConnection DeployFlow, (google::cloud::dialogflow::cx::v3::DeployFlowRequest const& request), (override)); + + MOCK_METHOD( + StatusOr, DeployFlow, + (ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::cx::v3::DeployFlowRequest const& request), + (override)); + + MOCK_METHOD( + future>, + DeployFlow, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); }; GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END diff --git a/google/cloud/dialogflow_cx/mocks/mock_flows_connection.h b/google/cloud/dialogflow_cx/mocks/mock_flows_connection.h index 383bb495cbf9e..d382c1b93d54f 100644 --- a/google/cloud/dialogflow_cx/mocks/mock_flows_connection.h +++ b/google/cloud/dialogflow_cx/mocks/mock_flows_connection.h @@ -75,6 +75,17 @@ class MockFlowsConnection : public dialogflow_cx::FlowsConnection { (google::cloud::dialogflow::cx::v3::TrainFlowRequest const& request), (override)); + MOCK_METHOD( + StatusOr, TrainFlow, + (ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::cx::v3::TrainFlowRequest const& request), + (override)); + + MOCK_METHOD(future>, TrainFlow, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr, ValidateFlow, @@ -94,11 +105,35 @@ class MockFlowsConnection : public dialogflow_cx::FlowsConnection { (google::cloud::dialogflow::cx::v3::ImportFlowRequest const& request), (override)); + MOCK_METHOD( + StatusOr, ImportFlow, + (ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::cx::v3::ImportFlowRequest const& request), + (override)); + + MOCK_METHOD( + future>, + ImportFlow, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, ExportFlow, (google::cloud::dialogflow::cx::v3::ExportFlowRequest const& request), (override)); + + MOCK_METHOD( + StatusOr, ExportFlow, + (ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::cx::v3::ExportFlowRequest const& request), + (override)); + + MOCK_METHOD( + future>, + ExportFlow, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); }; GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END diff --git a/google/cloud/dialogflow_cx/mocks/mock_intents_connection.h b/google/cloud/dialogflow_cx/mocks/mock_intents_connection.h index ff9c9296f6ad1..a796674f3564d 100644 --- a/google/cloud/dialogflow_cx/mocks/mock_intents_connection.h +++ b/google/cloud/dialogflow_cx/mocks/mock_intents_connection.h @@ -78,12 +78,38 @@ class MockIntentsConnection : public dialogflow_cx::IntentsConnection { (google::cloud::dialogflow::cx::v3::ImportIntentsRequest const& request), (override)); + MOCK_METHOD( + StatusOr, ImportIntents, + (ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::cx::v3::ImportIntentsRequest const& request), + (override)); + + MOCK_METHOD( + future< + StatusOr>, + ImportIntents, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future< StatusOr>, ExportIntents, (google::cloud::dialogflow::cx::v3::ExportIntentsRequest const& request), (override)); + + MOCK_METHOD( + StatusOr, ExportIntents, + (ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::cx::v3::ExportIntentsRequest const& request), + (override)); + + MOCK_METHOD( + future< + StatusOr>, + ExportIntents, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); }; GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END diff --git a/google/cloud/dialogflow_cx/mocks/mock_test_cases_connection.h b/google/cloud/dialogflow_cx/mocks/mock_test_cases_connection.h index 58daf86975d29..441e5058bacbf 100644 --- a/google/cloud/dialogflow_cx/mocks/mock_test_cases_connection.h +++ b/google/cloud/dialogflow_cx/mocks/mock_test_cases_connection.h @@ -78,6 +78,18 @@ class MockTestCasesConnection : public dialogflow_cx::TestCasesConnection { (google::cloud::dialogflow::cx::v3::RunTestCaseRequest const& request), (override)); + MOCK_METHOD( + StatusOr, RunTestCase, + (ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::cx::v3::RunTestCaseRequest const& request), + (override)); + + MOCK_METHOD( + future>, + RunTestCase, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, @@ -86,6 +98,20 @@ class MockTestCasesConnection : public dialogflow_cx::TestCasesConnection { request), (override)); + MOCK_METHOD( + StatusOr, BatchRunTestCases, + (ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::cx::v3::BatchRunTestCasesRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + BatchRunTestCases, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr, CalculateCoverage, @@ -101,6 +127,19 @@ class MockTestCasesConnection : public dialogflow_cx::TestCasesConnection { request), (override)); + MOCK_METHOD(StatusOr, ImportTestCases, + (ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::cx::v3::ImportTestCasesRequest const& + request), + (override)); + + MOCK_METHOD( + future< + StatusOr>, + ImportTestCases, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future< StatusOr>, @@ -109,6 +148,19 @@ class MockTestCasesConnection : public dialogflow_cx::TestCasesConnection { request), (override)); + MOCK_METHOD(StatusOr, ExportTestCases, + (ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::cx::v3::ExportTestCasesRequest const& + request), + (override)); + + MOCK_METHOD( + future< + StatusOr>, + ExportTestCases, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( (StreamRange), ListTestCaseResults, diff --git a/google/cloud/dialogflow_cx/mocks/mock_versions_connection.h b/google/cloud/dialogflow_cx/mocks/mock_versions_connection.h index 4ebc93f460bf1..95d481e9f4dd4 100644 --- a/google/cloud/dialogflow_cx/mocks/mock_versions_connection.h +++ b/google/cloud/dialogflow_cx/mocks/mock_versions_connection.h @@ -62,6 +62,18 @@ class MockVersionsConnection : public dialogflow_cx::VersionsConnection { (google::cloud::dialogflow::cx::v3::CreateVersionRequest const& request), (override)); + MOCK_METHOD( + StatusOr, CreateVersion, + (ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::cx::v3::CreateVersionRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateVersion, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr, UpdateVersion, (google::cloud::dialogflow::cx::v3::UpdateVersionRequest const& request), @@ -77,6 +89,17 @@ class MockVersionsConnection : public dialogflow_cx::VersionsConnection { (google::cloud::dialogflow::cx::v3::LoadVersionRequest const& request), (override)); + MOCK_METHOD( + StatusOr, LoadVersion, + (ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::cx::v3::LoadVersionRequest const& request), + (override)); + + MOCK_METHOD(future>, LoadVersion, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr, CompareVersions, diff --git a/google/cloud/dialogflow_cx/pages_connection.h b/google/cloud/dialogflow_cx/pages_connection.h index eaa72ef1aa03f..cde1a72279c31 100644 --- a/google/cloud/dialogflow_cx/pages_connection.h +++ b/google/cloud/dialogflow_cx/pages_connection.h @@ -22,6 +22,7 @@ #include "google/cloud/dialogflow_cx/internal/pages_retry_traits.h" #include "google/cloud/dialogflow_cx/pages_connection_idempotency_policy.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/internal/retry_policy_impl.h" #include "google/cloud/options.h" #include "google/cloud/status_or.h" diff --git a/google/cloud/dialogflow_cx/security_settings_connection.h b/google/cloud/dialogflow_cx/security_settings_connection.h index 283e05e7874d0..9c0333c36a2df 100644 --- a/google/cloud/dialogflow_cx/security_settings_connection.h +++ b/google/cloud/dialogflow_cx/security_settings_connection.h @@ -22,6 +22,7 @@ #include "google/cloud/dialogflow_cx/internal/security_settings_retry_traits.h" #include "google/cloud/dialogflow_cx/security_settings_connection_idempotency_policy.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/internal/retry_policy_impl.h" #include "google/cloud/options.h" #include "google/cloud/status_or.h" diff --git a/google/cloud/dialogflow_cx/session_entity_types_connection.h b/google/cloud/dialogflow_cx/session_entity_types_connection.h index 352c04b3a2dc4..7c407514c3540 100644 --- a/google/cloud/dialogflow_cx/session_entity_types_connection.h +++ b/google/cloud/dialogflow_cx/session_entity_types_connection.h @@ -22,6 +22,7 @@ #include "google/cloud/dialogflow_cx/internal/session_entity_types_retry_traits.h" #include "google/cloud/dialogflow_cx/session_entity_types_connection_idempotency_policy.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/internal/retry_policy_impl.h" #include "google/cloud/options.h" #include "google/cloud/status_or.h" diff --git a/google/cloud/dialogflow_cx/sessions_connection.h b/google/cloud/dialogflow_cx/sessions_connection.h index 63f01e44cd0ed..2cb9a48dd4945 100644 --- a/google/cloud/dialogflow_cx/sessions_connection.h +++ b/google/cloud/dialogflow_cx/sessions_connection.h @@ -22,6 +22,7 @@ #include "google/cloud/dialogflow_cx/internal/sessions_retry_traits.h" #include "google/cloud/dialogflow_cx/sessions_connection_idempotency_policy.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/internal/async_read_write_stream_impl.h" #include "google/cloud/internal/retry_policy_impl.h" #include "google/cloud/options.h" diff --git a/google/cloud/dialogflow_cx/test_cases_connection.cc b/google/cloud/dialogflow_cx/test_cases_connection.cc index e177249263b0d..2774d1a176674 100644 --- a/google/cloud/dialogflow_cx/test_cases_connection.cc +++ b/google/cloud/dialogflow_cx/test_cases_connection.cc @@ -77,6 +77,21 @@ TestCasesConnection::RunTestCase( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr TestCasesConnection::RunTestCase( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::cx::v3::RunTestCaseRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +TestCasesConnection::RunTestCase(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> TestCasesConnection::BatchRunTestCases( google::cloud::dialogflow::cx::v3::BatchRunTestCasesRequest const&) { @@ -85,6 +100,21 @@ TestCasesConnection::BatchRunTestCases( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr TestCasesConnection::BatchRunTestCases( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::cx::v3::BatchRunTestCasesRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +TestCasesConnection::BatchRunTestCases(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr TestCasesConnection::CalculateCoverage( google::cloud::dialogflow::cx::v3::CalculateCoverageRequest const&) { @@ -99,6 +129,21 @@ TestCasesConnection::ImportTestCases( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr TestCasesConnection::ImportTestCases( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::cx::v3::ImportTestCasesRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +TestCasesConnection::ImportTestCases(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> TestCasesConnection::ExportTestCases( google::cloud::dialogflow::cx::v3::ExportTestCasesRequest const&) { @@ -107,6 +152,21 @@ TestCasesConnection::ExportTestCases( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr TestCasesConnection::ExportTestCases( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::cx::v3::ExportTestCasesRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +TestCasesConnection::ExportTestCases(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StreamRange TestCasesConnection::ListTestCaseResults( google::cloud::dialogflow::cx::v3:: diff --git a/google/cloud/dialogflow_cx/test_cases_connection.h b/google/cloud/dialogflow_cx/test_cases_connection.h index 753e92275090c..cb5f06688a009 100644 --- a/google/cloud/dialogflow_cx/test_cases_connection.h +++ b/google/cloud/dialogflow_cx/test_cases_connection.h @@ -22,8 +22,10 @@ #include "google/cloud/dialogflow_cx/internal/test_cases_retry_traits.h" #include "google/cloud/dialogflow_cx/test_cases_connection_idempotency_policy.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/internal/retry_policy_impl.h" +#include "google/cloud/no_await_tag.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" #include "google/cloud/status_or.h" @@ -207,12 +209,30 @@ class TestCasesConnection { RunTestCase( google::cloud::dialogflow::cx::v3::RunTestCaseRequest const& request); + virtual StatusOr RunTestCase( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::cx::v3::RunTestCaseRequest const& request); + + virtual future< + StatusOr> + RunTestCase(ExperimentalTag, google::longrunning::Operation const& operation); + virtual future< StatusOr> BatchRunTestCases( google::cloud::dialogflow::cx::v3::BatchRunTestCasesRequest const& request); + virtual StatusOr BatchRunTestCases( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::cx::v3::BatchRunTestCasesRequest const& + request); + + virtual future< + StatusOr> + BatchRunTestCases(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StatusOr CalculateCoverage( google::cloud::dialogflow::cx::v3::CalculateCoverageRequest const& @@ -223,11 +243,29 @@ class TestCasesConnection { ImportTestCases( google::cloud::dialogflow::cx::v3::ImportTestCasesRequest const& request); + virtual StatusOr ImportTestCases( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::cx::v3::ImportTestCasesRequest const& request); + + virtual future< + StatusOr> + ImportTestCases(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future< StatusOr> ExportTestCases( google::cloud::dialogflow::cx::v3::ExportTestCasesRequest const& request); + virtual StatusOr ExportTestCases( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::cx::v3::ExportTestCasesRequest const& request); + + virtual future< + StatusOr> + ExportTestCases(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StreamRange ListTestCaseResults( google::cloud::dialogflow::cx::v3::ListTestCaseResultsRequest request); diff --git a/google/cloud/dialogflow_cx/transition_route_groups_connection.h b/google/cloud/dialogflow_cx/transition_route_groups_connection.h index bf86c676c35c5..395295fb6a831 100644 --- a/google/cloud/dialogflow_cx/transition_route_groups_connection.h +++ b/google/cloud/dialogflow_cx/transition_route_groups_connection.h @@ -22,6 +22,7 @@ #include "google/cloud/dialogflow_cx/internal/transition_route_groups_retry_traits.h" #include "google/cloud/dialogflow_cx/transition_route_groups_connection_idempotency_policy.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/internal/retry_policy_impl.h" #include "google/cloud/options.h" #include "google/cloud/status_or.h" diff --git a/google/cloud/dialogflow_cx/versions_connection.cc b/google/cloud/dialogflow_cx/versions_connection.cc index 646e145ccbb54..4aaf61bda93e0 100644 --- a/google/cloud/dialogflow_cx/versions_connection.cc +++ b/google/cloud/dialogflow_cx/versions_connection.cc @@ -60,6 +60,21 @@ VersionsConnection::CreateVersion( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr VersionsConnection::CreateVersion( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::cx::v3::CreateVersionRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +VersionsConnection::CreateVersion(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr VersionsConnection::UpdateVersion( google::cloud::dialogflow::cx::v3::UpdateVersionRequest const&) { @@ -77,6 +92,19 @@ future> VersionsConnection::LoadVersion( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr VersionsConnection::LoadVersion( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::cx::v3::LoadVersionRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> VersionsConnection::LoadVersion( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr VersionsConnection::CompareVersions( google::cloud::dialogflow::cx::v3::CompareVersionsRequest const&) { diff --git a/google/cloud/dialogflow_cx/versions_connection.h b/google/cloud/dialogflow_cx/versions_connection.h index 5332971451d66..b0d7b9a62ac0c 100644 --- a/google/cloud/dialogflow_cx/versions_connection.h +++ b/google/cloud/dialogflow_cx/versions_connection.h @@ -22,8 +22,10 @@ #include "google/cloud/dialogflow_cx/internal/versions_retry_traits.h" #include "google/cloud/dialogflow_cx/versions_connection_idempotency_policy.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/internal/retry_policy_impl.h" +#include "google/cloud/no_await_tag.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" #include "google/cloud/status_or.h" @@ -194,6 +196,14 @@ class VersionsConnection { CreateVersion( google::cloud::dialogflow::cx::v3::CreateVersionRequest const& request); + virtual StatusOr CreateVersion( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::cx::v3::CreateVersionRequest const& request); + + virtual future> + CreateVersion(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StatusOr UpdateVersion( google::cloud::dialogflow::cx::v3::UpdateVersionRequest const& request); @@ -203,6 +213,13 @@ class VersionsConnection { virtual future> LoadVersion( google::cloud::dialogflow::cx::v3::LoadVersionRequest const& request); + virtual StatusOr LoadVersion( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::cx::v3::LoadVersionRequest const& request); + + virtual future> LoadVersion( + ExperimentalTag, google::longrunning::Operation const& operation); + virtual StatusOr CompareVersions( google::cloud::dialogflow::cx::v3::CompareVersionsRequest const& request); diff --git a/google/cloud/dialogflow_cx/webhooks_connection.h b/google/cloud/dialogflow_cx/webhooks_connection.h index c02f7da6c323a..7da57cf689219 100644 --- a/google/cloud/dialogflow_cx/webhooks_connection.h +++ b/google/cloud/dialogflow_cx/webhooks_connection.h @@ -22,6 +22,7 @@ #include "google/cloud/dialogflow_cx/internal/webhooks_retry_traits.h" #include "google/cloud/dialogflow_cx/webhooks_connection_idempotency_policy.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/internal/retry_policy_impl.h" #include "google/cloud/options.h" #include "google/cloud/status_or.h" diff --git a/google/cloud/dialogflow_es/agents_connection.cc b/google/cloud/dialogflow_es/agents_connection.cc index aae2dae19903f..9a81664b132f6 100644 --- a/google/cloud/dialogflow_es/agents_connection.cc +++ b/google/cloud/dialogflow_es/agents_connection.cc @@ -67,6 +67,19 @@ future> AgentsConnection::TrainAgent( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr AgentsConnection::TrainAgent( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::v2::TrainAgentRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> AgentsConnection::TrainAgent( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> AgentsConnection::ExportAgent( google::cloud::dialogflow::v2::ExportAgentRequest const&) { @@ -75,18 +88,59 @@ AgentsConnection::ExportAgent( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr AgentsConnection::ExportAgent( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::v2::ExportAgentRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +AgentsConnection::ExportAgent(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> AgentsConnection::ImportAgent( google::cloud::dialogflow::v2::ImportAgentRequest const&) { return google::cloud::make_ready_future>( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr AgentsConnection::ImportAgent( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::v2::ImportAgentRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> AgentsConnection::ImportAgent( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> AgentsConnection::RestoreAgent( google::cloud::dialogflow::v2::RestoreAgentRequest const&) { return google::cloud::make_ready_future>( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr AgentsConnection::RestoreAgent( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::v2::RestoreAgentRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> AgentsConnection::RestoreAgent( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr AgentsConnection::GetValidationResult( google::cloud::dialogflow::v2::GetValidationResultRequest const&) { diff --git a/google/cloud/dialogflow_es/agents_connection.h b/google/cloud/dialogflow_es/agents_connection.h index a2694532f5bf8..d8dd6be80b5f5 100644 --- a/google/cloud/dialogflow_es/agents_connection.h +++ b/google/cloud/dialogflow_es/agents_connection.h @@ -22,8 +22,10 @@ #include "google/cloud/dialogflow_es/agents_connection_idempotency_policy.h" #include "google/cloud/dialogflow_es/internal/agents_retry_traits.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/internal/retry_policy_impl.h" +#include "google/cloud/no_await_tag.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" #include "google/cloud/status_or.h" @@ -198,15 +200,43 @@ class AgentsConnection { virtual future> TrainAgent( google::cloud::dialogflow::v2::TrainAgentRequest const& request); + virtual StatusOr TrainAgent( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::v2::TrainAgentRequest const& request); + + virtual future> TrainAgent( + ExperimentalTag, google::longrunning::Operation const& operation); + virtual future> ExportAgent(google::cloud::dialogflow::v2::ExportAgentRequest const& request); + virtual StatusOr ExportAgent( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::v2::ExportAgentRequest const& request); + + virtual future> + ExportAgent(ExperimentalTag, google::longrunning::Operation const& operation); + virtual future> ImportAgent( google::cloud::dialogflow::v2::ImportAgentRequest const& request); + virtual StatusOr ImportAgent( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::v2::ImportAgentRequest const& request); + + virtual future> ImportAgent( + ExperimentalTag, google::longrunning::Operation const& operation); + virtual future> RestoreAgent( google::cloud::dialogflow::v2::RestoreAgentRequest const& request); + virtual StatusOr RestoreAgent( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::v2::RestoreAgentRequest const& request); + + virtual future> RestoreAgent( + ExperimentalTag, google::longrunning::Operation const& operation); + virtual StatusOr GetValidationResult( google::cloud::dialogflow::v2::GetValidationResultRequest const& request); diff --git a/google/cloud/dialogflow_es/answer_records_connection.h b/google/cloud/dialogflow_es/answer_records_connection.h index b7eeccdb48a09..11168386108fd 100644 --- a/google/cloud/dialogflow_es/answer_records_connection.h +++ b/google/cloud/dialogflow_es/answer_records_connection.h @@ -22,6 +22,7 @@ #include "google/cloud/dialogflow_es/answer_records_connection_idempotency_policy.h" #include "google/cloud/dialogflow_es/internal/answer_records_retry_traits.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/internal/retry_policy_impl.h" #include "google/cloud/options.h" #include "google/cloud/status_or.h" diff --git a/google/cloud/dialogflow_es/contexts_connection.h b/google/cloud/dialogflow_es/contexts_connection.h index bac57adb46b87..ccd4af9f8c51a 100644 --- a/google/cloud/dialogflow_es/contexts_connection.h +++ b/google/cloud/dialogflow_es/contexts_connection.h @@ -22,6 +22,7 @@ #include "google/cloud/dialogflow_es/contexts_connection_idempotency_policy.h" #include "google/cloud/dialogflow_es/internal/contexts_retry_traits.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/internal/retry_policy_impl.h" #include "google/cloud/options.h" #include "google/cloud/status_or.h" diff --git a/google/cloud/dialogflow_es/conversation_datasets_connection.cc b/google/cloud/dialogflow_es/conversation_datasets_connection.cc index 1b116a8517889..281b41214e0c1 100644 --- a/google/cloud/dialogflow_es/conversation_datasets_connection.cc +++ b/google/cloud/dialogflow_es/conversation_datasets_connection.cc @@ -46,6 +46,22 @@ ConversationDatasetsConnection::CreateConversationDataset( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +ConversationDatasetsConnection::CreateConversationDataset( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::v2::CreateConversationDatasetRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +ConversationDatasetsConnection::CreateConversationDataset( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr ConversationDatasetsConnection::GetConversationDataset( google::cloud::dialogflow::v2::GetConversationDatasetRequest const&) { @@ -70,6 +86,24 @@ ConversationDatasetsConnection::DeleteConversationDataset( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +ConversationDatasetsConnection::DeleteConversationDataset( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::v2::DeleteConversationDatasetRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +ConversationDatasetsConnection::DeleteConversationDataset( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> ConversationDatasetsConnection::ImportConversationData( @@ -79,6 +113,23 @@ ConversationDatasetsConnection::ImportConversationData( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +ConversationDatasetsConnection::ImportConversationData( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::v2::ImportConversationDataRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +ConversationDatasetsConnection::ImportConversationData( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + std::shared_ptr MakeConversationDatasetsConnection(std::string const& location, Options options) { diff --git a/google/cloud/dialogflow_es/conversation_datasets_connection.h b/google/cloud/dialogflow_es/conversation_datasets_connection.h index b05623fc4a246..b5930bdbd1f63 100644 --- a/google/cloud/dialogflow_es/conversation_datasets_connection.h +++ b/google/cloud/dialogflow_es/conversation_datasets_connection.h @@ -22,8 +22,10 @@ #include "google/cloud/dialogflow_es/conversation_datasets_connection_idempotency_policy.h" #include "google/cloud/dialogflow_es/internal/conversation_datasets_retry_traits.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/internal/retry_policy_impl.h" +#include "google/cloud/no_await_tag.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" #include "google/cloud/status_or.h" @@ -195,6 +197,15 @@ class ConversationDatasetsConnection { google::cloud::dialogflow::v2::CreateConversationDatasetRequest const& request); + virtual StatusOr CreateConversationDataset( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::v2::CreateConversationDatasetRequest const& + request); + + virtual future> + CreateConversationDataset(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StatusOr GetConversationDataset( google::cloud::dialogflow::v2::GetConversationDatasetRequest const& @@ -210,11 +221,31 @@ class ConversationDatasetsConnection { google::cloud::dialogflow::v2::DeleteConversationDatasetRequest const& request); + virtual StatusOr DeleteConversationDataset( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::v2::DeleteConversationDatasetRequest const& + request); + + virtual future> + DeleteConversationDataset(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> ImportConversationData( google::cloud::dialogflow::v2::ImportConversationDataRequest const& request); + + virtual StatusOr ImportConversationData( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::v2::ImportConversationDataRequest const& + request); + + virtual future> + ImportConversationData(ExperimentalTag, + google::longrunning::Operation const& operation); }; /** diff --git a/google/cloud/dialogflow_es/conversation_models_connection.cc b/google/cloud/dialogflow_es/conversation_models_connection.cc index cdfb16facdd8f..d437fc2d7891c 100644 --- a/google/cloud/dialogflow_es/conversation_models_connection.cc +++ b/google/cloud/dialogflow_es/conversation_models_connection.cc @@ -46,6 +46,22 @@ ConversationModelsConnection::CreateConversationModel( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +ConversationModelsConnection::CreateConversationModel( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::v2::CreateConversationModelRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +ConversationModelsConnection::CreateConversationModel( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr ConversationModelsConnection::GetConversationModel( google::cloud::dialogflow::v2::GetConversationModelRequest const&) { @@ -69,6 +85,23 @@ ConversationModelsConnection::DeleteConversationModel( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +ConversationModelsConnection::DeleteConversationModel( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::v2::DeleteConversationModelRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +ConversationModelsConnection::DeleteConversationModel( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> ConversationModelsConnection::DeployConversationModel( @@ -78,6 +111,23 @@ ConversationModelsConnection::DeployConversationModel( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +ConversationModelsConnection::DeployConversationModel( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::v2::DeployConversationModelRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +ConversationModelsConnection::DeployConversationModel( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> ConversationModelsConnection::UndeployConversationModel( @@ -88,6 +138,24 @@ ConversationModelsConnection::UndeployConversationModel( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +ConversationModelsConnection::UndeployConversationModel( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::v2::UndeployConversationModelRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +ConversationModelsConnection::UndeployConversationModel( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr ConversationModelsConnection::GetConversationModelEvaluation( google::cloud::dialogflow::v2:: @@ -112,6 +180,23 @@ ConversationModelsConnection::CreateConversationModelEvaluation( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +ConversationModelsConnection::CreateConversationModelEvaluation( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::v2:: + CreateConversationModelEvaluationRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +ConversationModelsConnection::CreateConversationModelEvaluation( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + std::shared_ptr MakeConversationModelsConnection( std::string const& location, Options options) { internal::CheckExpectedOptions CreateConversationModel( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::v2::CreateConversationModelRequest const& + request); + + virtual future> + CreateConversationModel(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StatusOr GetConversationModel( google::cloud::dialogflow::v2::GetConversationModelRequest const& @@ -209,18 +220,48 @@ class ConversationModelsConnection { google::cloud::dialogflow::v2::DeleteConversationModelRequest const& request); + virtual StatusOr DeleteConversationModel( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::v2::DeleteConversationModelRequest const& + request); + + virtual future> + DeleteConversationModel(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> DeployConversationModel( google::cloud::dialogflow::v2::DeployConversationModelRequest const& request); + virtual StatusOr DeployConversationModel( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::v2::DeployConversationModelRequest const& + request); + + virtual future> + DeployConversationModel(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> UndeployConversationModel( google::cloud::dialogflow::v2::UndeployConversationModelRequest const& request); + virtual StatusOr UndeployConversationModel( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::v2::UndeployConversationModelRequest const& + request); + + virtual future> + UndeployConversationModel(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StatusOr GetConversationModelEvaluation( google::cloud::dialogflow::v2:: @@ -237,6 +278,17 @@ class ConversationModelsConnection { CreateConversationModelEvaluation( google::cloud::dialogflow::v2:: CreateConversationModelEvaluationRequest const& request); + + virtual StatusOr + CreateConversationModelEvaluation( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::v2:: + CreateConversationModelEvaluationRequest const& request); + + virtual future< + StatusOr> + CreateConversationModelEvaluation( + ExperimentalTag, google::longrunning::Operation const& operation); }; /** diff --git a/google/cloud/dialogflow_es/conversation_profiles_connection.cc b/google/cloud/dialogflow_es/conversation_profiles_connection.cc index 9cae5fb568921..0169b4002df82 100644 --- a/google/cloud/dialogflow_es/conversation_profiles_connection.cc +++ b/google/cloud/dialogflow_es/conversation_profiles_connection.cc @@ -77,6 +77,22 @@ ConversationProfilesConnection::SetSuggestionFeatureConfig( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +ConversationProfilesConnection::SetSuggestionFeatureConfig( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::v2::SetSuggestionFeatureConfigRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +ConversationProfilesConnection::SetSuggestionFeatureConfig( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> ConversationProfilesConnection::ClearSuggestionFeatureConfig( google::cloud::dialogflow::v2::ClearSuggestionFeatureConfigRequest const&) { @@ -85,6 +101,22 @@ ConversationProfilesConnection::ClearSuggestionFeatureConfig( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +ConversationProfilesConnection::ClearSuggestionFeatureConfig( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::v2::ClearSuggestionFeatureConfigRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +ConversationProfilesConnection::ClearSuggestionFeatureConfig( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + std::shared_ptr MakeConversationProfilesConnection(std::string const& location, Options options) { diff --git a/google/cloud/dialogflow_es/conversation_profiles_connection.h b/google/cloud/dialogflow_es/conversation_profiles_connection.h index 3d42e57bd4ddb..8f9bc9456a469 100644 --- a/google/cloud/dialogflow_es/conversation_profiles_connection.h +++ b/google/cloud/dialogflow_es/conversation_profiles_connection.h @@ -22,8 +22,10 @@ #include "google/cloud/dialogflow_es/conversation_profiles_connection_idempotency_policy.h" #include "google/cloud/dialogflow_es/internal/conversation_profiles_retry_traits.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/internal/retry_policy_impl.h" +#include "google/cloud/no_await_tag.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" #include "google/cloud/status_or.h" @@ -218,10 +220,28 @@ class ConversationProfilesConnection { google::cloud::dialogflow::v2::SetSuggestionFeatureConfigRequest const& request); + virtual StatusOr SetSuggestionFeatureConfig( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::v2::SetSuggestionFeatureConfigRequest const& + request); + + virtual future> + SetSuggestionFeatureConfig(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> ClearSuggestionFeatureConfig( google::cloud::dialogflow::v2::ClearSuggestionFeatureConfigRequest const& request); + + virtual StatusOr ClearSuggestionFeatureConfig( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::v2::ClearSuggestionFeatureConfigRequest const& + request); + + virtual future> + ClearSuggestionFeatureConfig(ExperimentalTag, + google::longrunning::Operation const& operation); }; /** diff --git a/google/cloud/dialogflow_es/conversations_connection.h b/google/cloud/dialogflow_es/conversations_connection.h index a43e839082c13..1c394196a2730 100644 --- a/google/cloud/dialogflow_es/conversations_connection.h +++ b/google/cloud/dialogflow_es/conversations_connection.h @@ -22,6 +22,7 @@ #include "google/cloud/dialogflow_es/conversations_connection_idempotency_policy.h" #include "google/cloud/dialogflow_es/internal/conversations_retry_traits.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/internal/retry_policy_impl.h" #include "google/cloud/options.h" #include "google/cloud/status_or.h" diff --git a/google/cloud/dialogflow_es/documents_connection.cc b/google/cloud/dialogflow_es/documents_connection.cc index f84c0728b9c9d..d5bf383b87808 100644 --- a/google/cloud/dialogflow_es/documents_connection.cc +++ b/google/cloud/dialogflow_es/documents_connection.cc @@ -60,6 +60,21 @@ DocumentsConnection::CreateDocument( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr DocumentsConnection::CreateDocument( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::v2::CreateDocumentRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +DocumentsConnection::CreateDocument(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> DocumentsConnection::ImportDocuments( google::cloud::dialogflow::v2::ImportDocumentsRequest const&) { @@ -68,6 +83,21 @@ DocumentsConnection::ImportDocuments( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr DocumentsConnection::ImportDocuments( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::v2::ImportDocumentsRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +DocumentsConnection::ImportDocuments(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> DocumentsConnection::DeleteDocument( google::cloud::dialogflow::v2::DeleteDocumentRequest const&) { @@ -76,6 +106,21 @@ DocumentsConnection::DeleteDocument( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr DocumentsConnection::DeleteDocument( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::v2::DeleteDocumentRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +DocumentsConnection::DeleteDocument(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> DocumentsConnection::UpdateDocument( google::cloud::dialogflow::v2::UpdateDocumentRequest const&) { @@ -84,6 +129,21 @@ DocumentsConnection::UpdateDocument( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr DocumentsConnection::UpdateDocument( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::v2::UpdateDocumentRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +DocumentsConnection::UpdateDocument(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> DocumentsConnection::ReloadDocument( google::cloud::dialogflow::v2::ReloadDocumentRequest const&) { @@ -92,6 +152,21 @@ DocumentsConnection::ReloadDocument( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr DocumentsConnection::ReloadDocument( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::v2::ReloadDocumentRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +DocumentsConnection::ReloadDocument(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> DocumentsConnection::ExportDocument( google::cloud::dialogflow::v2::ExportDocumentRequest const&) { @@ -100,6 +175,21 @@ DocumentsConnection::ExportDocument( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr DocumentsConnection::ExportDocument( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::v2::ExportDocumentRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +DocumentsConnection::ExportDocument(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + std::shared_ptr MakeDocumentsConnection( std::string const& location, Options options) { internal::CheckExpectedOptions CreateDocument( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::v2::CreateDocumentRequest const& request); + + virtual future> + CreateDocument(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future< StatusOr> ImportDocuments( google::cloud::dialogflow::v2::ImportDocumentsRequest const& request); + virtual StatusOr ImportDocuments( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::v2::ImportDocumentsRequest const& request); + + virtual future< + StatusOr> + ImportDocuments(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future< StatusOr> DeleteDocument( google::cloud::dialogflow::v2::DeleteDocumentRequest const& request); + virtual StatusOr DeleteDocument( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::v2::DeleteDocumentRequest const& request); + + virtual future< + StatusOr> + DeleteDocument(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> UpdateDocument( google::cloud::dialogflow::v2::UpdateDocumentRequest const& request); + virtual StatusOr UpdateDocument( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::v2::UpdateDocumentRequest const& request); + + virtual future> + UpdateDocument(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> ReloadDocument( google::cloud::dialogflow::v2::ReloadDocumentRequest const& request); + virtual StatusOr ReloadDocument( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::v2::ReloadDocumentRequest const& request); + + virtual future> + ReloadDocument(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> ExportDocument( google::cloud::dialogflow::v2::ExportDocumentRequest const& request); + + virtual StatusOr ExportDocument( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::v2::ExportDocumentRequest const& request); + + virtual future> + ExportDocument(ExperimentalTag, + google::longrunning::Operation const& operation); }; /** diff --git a/google/cloud/dialogflow_es/entity_types_connection.cc b/google/cloud/dialogflow_es/entity_types_connection.cc index b2f442900a9b2..661007a432ba5 100644 --- a/google/cloud/dialogflow_es/entity_types_connection.cc +++ b/google/cloud/dialogflow_es/entity_types_connection.cc @@ -77,6 +77,22 @@ EntityTypesConnection::BatchUpdateEntityTypes( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +EntityTypesConnection::BatchUpdateEntityTypes( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::v2::BatchUpdateEntityTypesRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +EntityTypesConnection::BatchUpdateEntityTypes( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> EntityTypesConnection::BatchDeleteEntityTypes( google::cloud::dialogflow::v2::BatchDeleteEntityTypesRequest const&) { @@ -84,6 +100,21 @@ EntityTypesConnection::BatchDeleteEntityTypes( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +EntityTypesConnection::BatchDeleteEntityTypes( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::v2::BatchDeleteEntityTypesRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +EntityTypesConnection::BatchDeleteEntityTypes( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> EntityTypesConnection::BatchCreateEntities( google::cloud::dialogflow::v2::BatchCreateEntitiesRequest const&) { @@ -91,6 +122,21 @@ EntityTypesConnection::BatchCreateEntities( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +EntityTypesConnection::BatchCreateEntities( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::v2::BatchCreateEntitiesRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +EntityTypesConnection::BatchCreateEntities( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> EntityTypesConnection::BatchUpdateEntities( google::cloud::dialogflow::v2::BatchUpdateEntitiesRequest const&) { @@ -98,6 +144,21 @@ EntityTypesConnection::BatchUpdateEntities( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +EntityTypesConnection::BatchUpdateEntities( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::v2::BatchUpdateEntitiesRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +EntityTypesConnection::BatchUpdateEntities( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> EntityTypesConnection::BatchDeleteEntities( google::cloud::dialogflow::v2::BatchDeleteEntitiesRequest const&) { @@ -105,6 +166,21 @@ EntityTypesConnection::BatchDeleteEntities( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +EntityTypesConnection::BatchDeleteEntities( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::v2::BatchDeleteEntitiesRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +EntityTypesConnection::BatchDeleteEntities( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + std::shared_ptr MakeEntityTypesConnection( std::string const& location, Options options) { internal::CheckExpectedOptions BatchUpdateEntityTypes( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::v2::BatchUpdateEntityTypesRequest const& + request); + + virtual future< + StatusOr> + BatchUpdateEntityTypes(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> BatchDeleteEntityTypes( google::cloud::dialogflow::v2::BatchDeleteEntityTypesRequest const& request); + virtual StatusOr BatchDeleteEntityTypes( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::v2::BatchDeleteEntityTypesRequest const& + request); + + virtual future> BatchDeleteEntityTypes( + ExperimentalTag, google::longrunning::Operation const& operation); + virtual future> BatchCreateEntities( google::cloud::dialogflow::v2::BatchCreateEntitiesRequest const& request); + virtual StatusOr BatchCreateEntities( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::v2::BatchCreateEntitiesRequest const& request); + + virtual future> BatchCreateEntities( + ExperimentalTag, google::longrunning::Operation const& operation); + virtual future> BatchUpdateEntities( google::cloud::dialogflow::v2::BatchUpdateEntitiesRequest const& request); + virtual StatusOr BatchUpdateEntities( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::v2::BatchUpdateEntitiesRequest const& request); + + virtual future> BatchUpdateEntities( + ExperimentalTag, google::longrunning::Operation const& operation); + virtual future> BatchDeleteEntities( google::cloud::dialogflow::v2::BatchDeleteEntitiesRequest const& request); + + virtual StatusOr BatchDeleteEntities( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::v2::BatchDeleteEntitiesRequest const& request); + + virtual future> BatchDeleteEntities( + ExperimentalTag, google::longrunning::Operation const& operation); }; /** diff --git a/google/cloud/dialogflow_es/environments_connection.h b/google/cloud/dialogflow_es/environments_connection.h index 4fdd7a0282244..662042a93249c 100644 --- a/google/cloud/dialogflow_es/environments_connection.h +++ b/google/cloud/dialogflow_es/environments_connection.h @@ -22,6 +22,7 @@ #include "google/cloud/dialogflow_es/environments_connection_idempotency_policy.h" #include "google/cloud/dialogflow_es/internal/environments_retry_traits.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/internal/retry_policy_impl.h" #include "google/cloud/options.h" #include "google/cloud/status_or.h" diff --git a/google/cloud/dialogflow_es/fulfillments_connection.h b/google/cloud/dialogflow_es/fulfillments_connection.h index c501b35263f52..e92cc99a31dab 100644 --- a/google/cloud/dialogflow_es/fulfillments_connection.h +++ b/google/cloud/dialogflow_es/fulfillments_connection.h @@ -22,6 +22,7 @@ #include "google/cloud/dialogflow_es/fulfillments_connection_idempotency_policy.h" #include "google/cloud/dialogflow_es/internal/fulfillments_retry_traits.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/internal/retry_policy_impl.h" #include "google/cloud/options.h" #include "google/cloud/status_or.h" diff --git a/google/cloud/dialogflow_es/intents_connection.cc b/google/cloud/dialogflow_es/intents_connection.cc index 4b8dd8be0fd48..c6e5cfc2cc3e9 100644 --- a/google/cloud/dialogflow_es/intents_connection.cc +++ b/google/cloud/dialogflow_es/intents_connection.cc @@ -74,6 +74,21 @@ IntentsConnection::BatchUpdateIntents( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr IntentsConnection::BatchUpdateIntents( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::v2::BatchUpdateIntentsRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +IntentsConnection::BatchUpdateIntents(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> IntentsConnection::BatchDeleteIntents( google::cloud::dialogflow::v2::BatchDeleteIntentsRequest const&) { @@ -81,6 +96,20 @@ IntentsConnection::BatchDeleteIntents( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr IntentsConnection::BatchDeleteIntents( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::v2::BatchDeleteIntentsRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +IntentsConnection::BatchDeleteIntents(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + std::shared_ptr MakeIntentsConnection( std::string const& location, Options options) { internal::CheckExpectedOptions BatchUpdateIntents( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::v2::BatchUpdateIntentsRequest const& request); + + virtual future< + StatusOr> + BatchUpdateIntents(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> BatchDeleteIntents( google::cloud::dialogflow::v2::BatchDeleteIntentsRequest const& request); + + virtual StatusOr BatchDeleteIntents( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::v2::BatchDeleteIntentsRequest const& request); + + virtual future> BatchDeleteIntents( + ExperimentalTag, google::longrunning::Operation const& operation); }; /** diff --git a/google/cloud/dialogflow_es/internal/agents_connection_impl.cc b/google/cloud/dialogflow_es/internal/agents_connection_impl.cc index d72c086c5473c..c85267e5f2abb 100644 --- a/google/cloud/dialogflow_es/internal/agents_connection_impl.cc +++ b/google/cloud/dialogflow_es/internal/agents_connection_impl.cc @@ -173,6 +173,54 @@ future> AgentsConnectionImpl::TrainAgent( polling_policy(*current), __func__); } +StatusOr AgentsConnectionImpl::TrainAgent( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::v2::TrainAgentRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->TrainAgent(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::dialogflow::v2::TrainAgentRequest const& request) { + return stub_->TrainAgent(context, options, request); + }, + *current, request, __func__); +} + +future> AgentsConnectionImpl::TrainAgent( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata().Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to TrainAgent", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::protobuf::Struct>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::protobuf::Struct>, + polling_policy(*current), __func__); +} + future> AgentsConnectionImpl::ExportAgent( google::cloud::dialogflow::v2::ExportAgentRequest const& request) { @@ -212,6 +260,56 @@ AgentsConnectionImpl::ExportAgent( polling_policy(*current), __func__); } +StatusOr AgentsConnectionImpl::ExportAgent( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::v2::ExportAgentRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->ExportAgent(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::dialogflow::v2::ExportAgentRequest const& request) { + return stub_->ExportAgent(context, options, request); + }, + *current, request, __func__); +} + +future> +AgentsConnectionImpl::ExportAgent( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata().Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to ExportAgent", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::dialogflow::v2::ExportAgentResponse>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::dialogflow::v2::ExportAgentResponse>, + polling_policy(*current), __func__); +} + future> AgentsConnectionImpl::ImportAgent( google::cloud::dialogflow::v2::ImportAgentRequest const& request) { auto current = google::cloud::internal::SaveCurrentOptions(); @@ -250,6 +348,54 @@ future> AgentsConnectionImpl::ImportAgent( polling_policy(*current), __func__); } +StatusOr AgentsConnectionImpl::ImportAgent( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::v2::ImportAgentRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->ImportAgent(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::dialogflow::v2::ImportAgentRequest const& request) { + return stub_->ImportAgent(context, options, request); + }, + *current, request, __func__); +} + +future> AgentsConnectionImpl::ImportAgent( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata().Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to ImportAgent", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::protobuf::Struct>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::protobuf::Struct>, + polling_policy(*current), __func__); +} + future> AgentsConnectionImpl::RestoreAgent( google::cloud::dialogflow::v2::RestoreAgentRequest const& request) { auto current = google::cloud::internal::SaveCurrentOptions(); @@ -288,6 +434,55 @@ future> AgentsConnectionImpl::RestoreAgent( polling_policy(*current), __func__); } +StatusOr AgentsConnectionImpl::RestoreAgent( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::v2::RestoreAgentRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->RestoreAgent(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::dialogflow::v2::RestoreAgentRequest const& request) { + return stub_->RestoreAgent(context, options, request); + }, + *current, request, __func__); +} + +future> AgentsConnectionImpl::RestoreAgent( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata().Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to RestoreAgent", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::protobuf::Struct>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::protobuf::Struct>, + polling_policy(*current), __func__); +} + StatusOr AgentsConnectionImpl::GetValidationResult( google::cloud::dialogflow::v2::GetValidationResultRequest const& request) { diff --git a/google/cloud/dialogflow_es/internal/agents_connection_impl.h b/google/cloud/dialogflow_es/internal/agents_connection_impl.h index 45aa65d7f7bad..9896f08a8b660 100644 --- a/google/cloud/dialogflow_es/internal/agents_connection_impl.h +++ b/google/cloud/dialogflow_es/internal/agents_connection_impl.h @@ -66,18 +66,53 @@ class AgentsConnectionImpl : public dialogflow_es::AgentsConnection { future> TrainAgent( google::cloud::dialogflow::v2::TrainAgentRequest const& request) override; + StatusOr TrainAgent( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::v2::TrainAgentRequest const& request) override; + + future> TrainAgent( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ExportAgent(google::cloud::dialogflow::v2::ExportAgentRequest const& request) override; + StatusOr ExportAgent( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::v2::ExportAgentRequest const& request) + override; + + future> + ExportAgent(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ImportAgent( google::cloud::dialogflow::v2::ImportAgentRequest const& request) override; + StatusOr ImportAgent( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::v2::ImportAgentRequest const& request) + override; + + future> ImportAgent( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> RestoreAgent( google::cloud::dialogflow::v2::RestoreAgentRequest const& request) override; + StatusOr RestoreAgent( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::v2::RestoreAgentRequest const& request) + override; + + future> RestoreAgent( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetValidationResult( google::cloud::dialogflow::v2::GetValidationResultRequest const& request) override; diff --git a/google/cloud/dialogflow_es/internal/agents_tracing_connection.cc b/google/cloud/dialogflow_es/internal/agents_tracing_connection.cc index 21055efb175ef..2de2782b2569a 100644 --- a/google/cloud/dialogflow_es/internal/agents_tracing_connection.cc +++ b/google/cloud/dialogflow_es/internal/agents_tracing_connection.cc @@ -75,6 +75,23 @@ future> AgentsTracingConnection::TrainAgent( return internal::EndSpan(std::move(span), child_->TrainAgent(request)); } +StatusOr AgentsTracingConnection::TrainAgent( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::v2::TrainAgentRequest const& request) { + auto span = internal::MakeSpan("dialogflow_es::AgentsConnection::TrainAgent"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->TrainAgent(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> AgentsTracingConnection::TrainAgent( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan("dialogflow_es::AgentsConnection::TrainAgent"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->TrainAgent(ExperimentalTag{}, operation)); +} + future> AgentsTracingConnection::ExportAgent( google::cloud::dialogflow::v2::ExportAgentRequest const& request) { @@ -84,6 +101,26 @@ AgentsTracingConnection::ExportAgent( return internal::EndSpan(std::move(span), child_->ExportAgent(request)); } +StatusOr AgentsTracingConnection::ExportAgent( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::v2::ExportAgentRequest const& request) { + auto span = + internal::MakeSpan("dialogflow_es::AgentsConnection::ExportAgent"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->ExportAgent(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +AgentsTracingConnection::ExportAgent( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = + internal::MakeSpan("dialogflow_es::AgentsConnection::ExportAgent"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->ExportAgent(ExperimentalTag{}, operation)); +} + future> AgentsTracingConnection::ImportAgent( google::cloud::dialogflow::v2::ImportAgentRequest const& request) { auto span = @@ -92,6 +129,25 @@ future> AgentsTracingConnection::ImportAgent( return internal::EndSpan(std::move(span), child_->ImportAgent(request)); } +StatusOr AgentsTracingConnection::ImportAgent( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::v2::ImportAgentRequest const& request) { + auto span = + internal::MakeSpan("dialogflow_es::AgentsConnection::ImportAgent"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->ImportAgent(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> AgentsTracingConnection::ImportAgent( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = + internal::MakeSpan("dialogflow_es::AgentsConnection::ImportAgent"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->ImportAgent(ExperimentalTag{}, operation)); +} + future> AgentsTracingConnection::RestoreAgent( google::cloud::dialogflow::v2::RestoreAgentRequest const& request) { @@ -101,6 +157,26 @@ AgentsTracingConnection::RestoreAgent( return internal::EndSpan(std::move(span), child_->RestoreAgent(request)); } +StatusOr AgentsTracingConnection::RestoreAgent( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::v2::RestoreAgentRequest const& request) { + auto span = + internal::MakeSpan("dialogflow_es::AgentsConnection::RestoreAgent"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->RestoreAgent(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +AgentsTracingConnection::RestoreAgent( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = + internal::MakeSpan("dialogflow_es::AgentsConnection::RestoreAgent"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->RestoreAgent(ExperimentalTag{}, operation)); +} + StatusOr AgentsTracingConnection::GetValidationResult( google::cloud::dialogflow::v2::GetValidationResultRequest const& request) { diff --git a/google/cloud/dialogflow_es/internal/agents_tracing_connection.h b/google/cloud/dialogflow_es/internal/agents_tracing_connection.h index 615c5a17ea510..851a245b4aa10 100644 --- a/google/cloud/dialogflow_es/internal/agents_tracing_connection.h +++ b/google/cloud/dialogflow_es/internal/agents_tracing_connection.h @@ -54,18 +54,53 @@ class AgentsTracingConnection : public dialogflow_es::AgentsConnection { future> TrainAgent( google::cloud::dialogflow::v2::TrainAgentRequest const& request) override; + StatusOr TrainAgent( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::v2::TrainAgentRequest const& request) override; + + future> TrainAgent( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ExportAgent(google::cloud::dialogflow::v2::ExportAgentRequest const& request) override; + StatusOr ExportAgent( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::v2::ExportAgentRequest const& request) + override; + + future> + ExportAgent(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ImportAgent( google::cloud::dialogflow::v2::ImportAgentRequest const& request) override; + StatusOr ImportAgent( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::v2::ImportAgentRequest const& request) + override; + + future> ImportAgent( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> RestoreAgent( google::cloud::dialogflow::v2::RestoreAgentRequest const& request) override; + StatusOr RestoreAgent( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::v2::RestoreAgentRequest const& request) + override; + + future> RestoreAgent( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetValidationResult( google::cloud::dialogflow::v2::GetValidationResultRequest const& request) override; diff --git a/google/cloud/dialogflow_es/internal/conversation_datasets_connection_impl.cc b/google/cloud/dialogflow_es/internal/conversation_datasets_connection_impl.cc index 22bcd242493bf..c6f74b61bd3d5 100644 --- a/google/cloud/dialogflow_es/internal/conversation_datasets_connection_impl.cc +++ b/google/cloud/dialogflow_es/internal/conversation_datasets_connection_impl.cc @@ -109,6 +109,62 @@ ConversationDatasetsConnectionImpl::CreateConversationDataset( polling_policy(*current), __func__); } +StatusOr +ConversationDatasetsConnectionImpl::CreateConversationDataset( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::v2::CreateConversationDatasetRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateConversationDataset(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::dialogflow::v2::CreateConversationDatasetRequest const& + request) { + return stub_->CreateConversationDataset(context, options, request); + }, + *current, request, __func__); +} + +future> +ConversationDatasetsConnectionImpl::CreateConversationDataset( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to CreateConversationDataset", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::dialogflow::v2::ConversationDataset>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::dialogflow::v2::ConversationDataset>, + polling_policy(*current), __func__); +} + StatusOr ConversationDatasetsConnectionImpl::GetConversationDataset( google::cloud::dialogflow::v2::GetConversationDatasetRequest const& @@ -205,6 +261,66 @@ ConversationDatasetsConnectionImpl::DeleteConversationDataset( polling_policy(*current), __func__); } +StatusOr +ConversationDatasetsConnectionImpl::DeleteConversationDataset( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::v2::DeleteConversationDatasetRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteConversationDataset(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::dialogflow::v2::DeleteConversationDatasetRequest const& + request) { + return stub_->DeleteConversationDataset(context, options, request); + }, + *current, request, __func__); +} + +future> +ConversationDatasetsConnectionImpl::DeleteConversationDataset( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteConversationDataset", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::dialogflow::v2:: + DeleteConversationDatasetOperationMetadata>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::cloud::dialogflow::v2:: + DeleteConversationDatasetOperationMetadata>, + polling_policy(*current), __func__); +} + future> ConversationDatasetsConnectionImpl::ImportConversationData( @@ -248,6 +364,64 @@ ConversationDatasetsConnectionImpl::ImportConversationData( polling_policy(*current), __func__); } +StatusOr +ConversationDatasetsConnectionImpl::ImportConversationData( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::v2::ImportConversationDataRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->ImportConversationData(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::dialogflow::v2::ImportConversationDataRequest const& + request) { + return stub_->ImportConversationData(context, options, request); + }, + *current, request, __func__); +} + +future> +ConversationDatasetsConnectionImpl::ImportConversationData( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to ImportConversationData", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::dialogflow::v2::ImportConversationDataOperationResponse>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::dialogflow::v2:: + ImportConversationDataOperationResponse>, + polling_policy(*current), __func__); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace dialogflow_es_internal } // namespace cloud diff --git a/google/cloud/dialogflow_es/internal/conversation_datasets_connection_impl.h b/google/cloud/dialogflow_es/internal/conversation_datasets_connection_impl.h index 28b5e4583a535..68c5acf2726ed 100644 --- a/google/cloud/dialogflow_es/internal/conversation_datasets_connection_impl.h +++ b/google/cloud/dialogflow_es/internal/conversation_datasets_connection_impl.h @@ -57,6 +57,16 @@ class ConversationDatasetsConnectionImpl google::cloud::dialogflow::v2::CreateConversationDatasetRequest const& request) override; + StatusOr CreateConversationDataset( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::v2::CreateConversationDatasetRequest const& + request) override; + + future> + CreateConversationDataset( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetConversationDataset( google::cloud::dialogflow::v2::GetConversationDatasetRequest const& @@ -73,12 +83,34 @@ class ConversationDatasetsConnectionImpl google::cloud::dialogflow::v2::DeleteConversationDatasetRequest const& request) override; + StatusOr DeleteConversationDataset( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::v2::DeleteConversationDatasetRequest const& + request) override; + + future> + DeleteConversationDataset( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ImportConversationData( google::cloud::dialogflow::v2::ImportConversationDataRequest const& request) override; + StatusOr ImportConversationData( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::v2::ImportConversationDataRequest const& + request) override; + + future> + ImportConversationData( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + private: std::unique_ptr background_; std::shared_ptr stub_; diff --git a/google/cloud/dialogflow_es/internal/conversation_datasets_tracing_connection.cc b/google/cloud/dialogflow_es/internal/conversation_datasets_tracing_connection.cc index 0139581172199..2cf8e593f058d 100644 --- a/google/cloud/dialogflow_es/internal/conversation_datasets_tracing_connection.cc +++ b/google/cloud/dialogflow_es/internal/conversation_datasets_tracing_connection.cc @@ -45,6 +45,31 @@ ConversationDatasetsTracingConnection::CreateConversationDataset( child_->CreateConversationDataset(request)); } +StatusOr +ConversationDatasetsTracingConnection::CreateConversationDataset( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::v2::CreateConversationDatasetRequest const& + request) { + auto span = internal::MakeSpan( + "dialogflow_es::ConversationDatasetsConnection::" + "CreateConversationDataset"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->CreateConversationDataset(ExperimentalTag{}, NoAwaitTag{}, + request)); +} + +future> +ConversationDatasetsTracingConnection::CreateConversationDataset( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "dialogflow_es::ConversationDatasetsConnection::" + "CreateConversationDataset"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->CreateConversationDataset( + ExperimentalTag{}, operation)); +} + StatusOr ConversationDatasetsTracingConnection::GetConversationDataset( google::cloud::dialogflow::v2::GetConversationDatasetRequest const& @@ -81,6 +106,32 @@ ConversationDatasetsTracingConnection::DeleteConversationDataset( child_->DeleteConversationDataset(request)); } +StatusOr +ConversationDatasetsTracingConnection::DeleteConversationDataset( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::v2::DeleteConversationDatasetRequest const& + request) { + auto span = internal::MakeSpan( + "dialogflow_es::ConversationDatasetsConnection::" + "DeleteConversationDataset"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->DeleteConversationDataset(ExperimentalTag{}, NoAwaitTag{}, + request)); +} + +future> +ConversationDatasetsTracingConnection::DeleteConversationDataset( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "dialogflow_es::ConversationDatasetsConnection::" + "DeleteConversationDataset"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->DeleteConversationDataset( + ExperimentalTag{}, operation)); +} + future> ConversationDatasetsTracingConnection::ImportConversationData( @@ -93,6 +144,30 @@ ConversationDatasetsTracingConnection::ImportConversationData( child_->ImportConversationData(request)); } +StatusOr +ConversationDatasetsTracingConnection::ImportConversationData( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::v2::ImportConversationDataRequest const& + request) { + auto span = internal::MakeSpan( + "dialogflow_es::ConversationDatasetsConnection::ImportConversationData"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->ImportConversationData(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +ConversationDatasetsTracingConnection::ImportConversationData( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "dialogflow_es::ConversationDatasetsConnection::ImportConversationData"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->ImportConversationData( + ExperimentalTag{}, operation)); +} + #endif // GOOGLE_CLOUD_CPP_HAVE_OPENTELEMETRY std::shared_ptr diff --git a/google/cloud/dialogflow_es/internal/conversation_datasets_tracing_connection.h b/google/cloud/dialogflow_es/internal/conversation_datasets_tracing_connection.h index 00999ebbf0273..7c3bb7d20de6e 100644 --- a/google/cloud/dialogflow_es/internal/conversation_datasets_tracing_connection.h +++ b/google/cloud/dialogflow_es/internal/conversation_datasets_tracing_connection.h @@ -45,6 +45,16 @@ class ConversationDatasetsTracingConnection google::cloud::dialogflow::v2::CreateConversationDatasetRequest const& request) override; + StatusOr CreateConversationDataset( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::v2::CreateConversationDatasetRequest const& + request) override; + + future> + CreateConversationDataset( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetConversationDataset( google::cloud::dialogflow::v2::GetConversationDatasetRequest const& @@ -61,12 +71,34 @@ class ConversationDatasetsTracingConnection google::cloud::dialogflow::v2::DeleteConversationDatasetRequest const& request) override; + StatusOr DeleteConversationDataset( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::v2::DeleteConversationDatasetRequest const& + request) override; + + future> + DeleteConversationDataset( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ImportConversationData( google::cloud::dialogflow::v2::ImportConversationDataRequest const& request) override; + StatusOr ImportConversationData( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::v2::ImportConversationDataRequest const& + request) override; + + future> + ImportConversationData( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + private: std::shared_ptr child_; }; diff --git a/google/cloud/dialogflow_es/internal/conversation_models_connection_impl.cc b/google/cloud/dialogflow_es/internal/conversation_models_connection_impl.cc index d3c555244c7d1..c97e054bc844d 100644 --- a/google/cloud/dialogflow_es/internal/conversation_models_connection_impl.cc +++ b/google/cloud/dialogflow_es/internal/conversation_models_connection_impl.cc @@ -108,6 +108,62 @@ ConversationModelsConnectionImpl::CreateConversationModel( polling_policy(*current), __func__); } +StatusOr +ConversationModelsConnectionImpl::CreateConversationModel( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::v2::CreateConversationModelRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateConversationModel(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::dialogflow::v2::CreateConversationModelRequest const& + request) { + return stub_->CreateConversationModel(context, options, request); + }, + *current, request, __func__); +} + +future> +ConversationModelsConnectionImpl::CreateConversationModel( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to CreateConversationModel", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::dialogflow::v2::ConversationModel>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::dialogflow::v2::ConversationModel>, + polling_policy(*current), __func__); +} + StatusOr ConversationModelsConnectionImpl::GetConversationModel( google::cloud::dialogflow::v2::GetConversationModelRequest const& request) { @@ -202,6 +258,65 @@ ConversationModelsConnectionImpl::DeleteConversationModel( polling_policy(*current), __func__); } +StatusOr +ConversationModelsConnectionImpl::DeleteConversationModel( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::v2::DeleteConversationModelRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteConversationModel(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::dialogflow::v2::DeleteConversationModelRequest const& + request) { + return stub_->DeleteConversationModel(context, options, request); + }, + *current, request, __func__); +} + +future> +ConversationModelsConnectionImpl::DeleteConversationModel( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteConversationModel", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::dialogflow::v2::DeleteConversationModelOperationMetadata>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::cloud::dialogflow::v2:: + DeleteConversationModelOperationMetadata>, + polling_policy(*current), __func__); +} + future> ConversationModelsConnectionImpl::DeployConversationModel( @@ -245,6 +360,65 @@ ConversationModelsConnectionImpl::DeployConversationModel( polling_policy(*current), __func__); } +StatusOr +ConversationModelsConnectionImpl::DeployConversationModel( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::v2::DeployConversationModelRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeployConversationModel(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::dialogflow::v2::DeployConversationModelRequest const& + request) { + return stub_->DeployConversationModel(context, options, request); + }, + *current, request, __func__); +} + +future> +ConversationModelsConnectionImpl::DeployConversationModel( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DeployConversationModel", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::dialogflow::v2::DeployConversationModelOperationMetadata>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::cloud::dialogflow::v2:: + DeployConversationModelOperationMetadata>, + polling_policy(*current), __func__); +} + future> ConversationModelsConnectionImpl::UndeployConversationModel( @@ -289,6 +463,66 @@ ConversationModelsConnectionImpl::UndeployConversationModel( polling_policy(*current), __func__); } +StatusOr +ConversationModelsConnectionImpl::UndeployConversationModel( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::v2::UndeployConversationModelRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UndeployConversationModel(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::dialogflow::v2::UndeployConversationModelRequest const& + request) { + return stub_->UndeployConversationModel(context, options, request); + }, + *current, request, __func__); +} + +future> +ConversationModelsConnectionImpl::UndeployConversationModel( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to UndeployConversationModel", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::dialogflow::v2:: + UndeployConversationModelOperationMetadata>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::cloud::dialogflow::v2:: + UndeployConversationModelOperationMetadata>, + polling_policy(*current), __func__); +} + StatusOr ConversationModelsConnectionImpl::GetConversationModelEvaluation( google::cloud::dialogflow::v2::GetConversationModelEvaluationRequest const& @@ -386,6 +620,63 @@ ConversationModelsConnectionImpl::CreateConversationModelEvaluation( polling_policy(*current), __func__); } +StatusOr +ConversationModelsConnectionImpl::CreateConversationModelEvaluation( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::v2:: + CreateConversationModelEvaluationRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateConversationModelEvaluation(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::dialogflow::v2:: + CreateConversationModelEvaluationRequest const& request) { + return stub_->CreateConversationModelEvaluation(context, options, + request); + }, + *current, request, __func__); +} + +future> +ConversationModelsConnectionImpl::CreateConversationModelEvaluation( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to " + "CreateConversationModelEvaluation", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::dialogflow::v2::ConversationModelEvaluation>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::dialogflow::v2::ConversationModelEvaluation>, + polling_policy(*current), __func__); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace dialogflow_es_internal } // namespace cloud diff --git a/google/cloud/dialogflow_es/internal/conversation_models_connection_impl.h b/google/cloud/dialogflow_es/internal/conversation_models_connection_impl.h index 45e70547bc051..eece83e6b13a1 100644 --- a/google/cloud/dialogflow_es/internal/conversation_models_connection_impl.h +++ b/google/cloud/dialogflow_es/internal/conversation_models_connection_impl.h @@ -57,6 +57,16 @@ class ConversationModelsConnectionImpl google::cloud::dialogflow::v2::CreateConversationModelRequest const& request) override; + StatusOr CreateConversationModel( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::v2::CreateConversationModelRequest const& + request) override; + + future> + CreateConversationModel( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetConversationModel( google::cloud::dialogflow::v2::GetConversationModelRequest const& request) @@ -73,18 +83,51 @@ class ConversationModelsConnectionImpl google::cloud::dialogflow::v2::DeleteConversationModelRequest const& request) override; + StatusOr DeleteConversationModel( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::v2::DeleteConversationModelRequest const& + request) override; + + future> + DeleteConversationModel( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeployConversationModel( google::cloud::dialogflow::v2::DeployConversationModelRequest const& request) override; + StatusOr DeployConversationModel( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::v2::DeployConversationModelRequest const& + request) override; + + future> + DeployConversationModel( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UndeployConversationModel( google::cloud::dialogflow::v2::UndeployConversationModelRequest const& request) override; + StatusOr UndeployConversationModel( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::v2::UndeployConversationModelRequest const& + request) override; + + future> + UndeployConversationModel( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetConversationModelEvaluation( google::cloud::dialogflow::v2:: @@ -100,6 +143,16 @@ class ConversationModelsConnectionImpl google::cloud::dialogflow::v2:: CreateConversationModelEvaluationRequest const& request) override; + StatusOr CreateConversationModelEvaluation( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::v2:: + CreateConversationModelEvaluationRequest const& request) override; + + future> + CreateConversationModelEvaluation( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + private: std::unique_ptr background_; std::shared_ptr stub_; diff --git a/google/cloud/dialogflow_es/internal/conversation_models_tracing_connection.cc b/google/cloud/dialogflow_es/internal/conversation_models_tracing_connection.cc index b0d9c22eaf9fb..624d2c033a515 100644 --- a/google/cloud/dialogflow_es/internal/conversation_models_tracing_connection.cc +++ b/google/cloud/dialogflow_es/internal/conversation_models_tracing_connection.cc @@ -44,6 +44,29 @@ ConversationModelsTracingConnection::CreateConversationModel( child_->CreateConversationModel(request)); } +StatusOr +ConversationModelsTracingConnection::CreateConversationModel( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::v2::CreateConversationModelRequest const& + request) { + auto span = internal::MakeSpan( + "dialogflow_es::ConversationModelsConnection::CreateConversationModel"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->CreateConversationModel(ExperimentalTag{}, NoAwaitTag{}, + request)); +} + +future> +ConversationModelsTracingConnection::CreateConversationModel( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "dialogflow_es::ConversationModelsConnection::CreateConversationModel"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->CreateConversationModel( + ExperimentalTag{}, operation)); +} + StatusOr ConversationModelsTracingConnection::GetConversationModel( google::cloud::dialogflow::v2::GetConversationModelRequest const& request) { @@ -77,6 +100,30 @@ ConversationModelsTracingConnection::DeleteConversationModel( child_->DeleteConversationModel(request)); } +StatusOr +ConversationModelsTracingConnection::DeleteConversationModel( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::v2::DeleteConversationModelRequest const& + request) { + auto span = internal::MakeSpan( + "dialogflow_es::ConversationModelsConnection::DeleteConversationModel"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->DeleteConversationModel(ExperimentalTag{}, NoAwaitTag{}, + request)); +} + +future> +ConversationModelsTracingConnection::DeleteConversationModel( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "dialogflow_es::ConversationModelsConnection::DeleteConversationModel"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->DeleteConversationModel( + ExperimentalTag{}, operation)); +} + future> ConversationModelsTracingConnection::DeployConversationModel( @@ -89,6 +136,30 @@ ConversationModelsTracingConnection::DeployConversationModel( child_->DeployConversationModel(request)); } +StatusOr +ConversationModelsTracingConnection::DeployConversationModel( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::v2::DeployConversationModelRequest const& + request) { + auto span = internal::MakeSpan( + "dialogflow_es::ConversationModelsConnection::DeployConversationModel"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->DeployConversationModel(ExperimentalTag{}, NoAwaitTag{}, + request)); +} + +future> +ConversationModelsTracingConnection::DeployConversationModel( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "dialogflow_es::ConversationModelsConnection::DeployConversationModel"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->DeployConversationModel( + ExperimentalTag{}, operation)); +} + future> ConversationModelsTracingConnection::UndeployConversationModel( @@ -101,6 +172,30 @@ ConversationModelsTracingConnection::UndeployConversationModel( child_->UndeployConversationModel(request)); } +StatusOr +ConversationModelsTracingConnection::UndeployConversationModel( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::v2::UndeployConversationModelRequest const& + request) { + auto span = internal::MakeSpan( + "dialogflow_es::ConversationModelsConnection::UndeployConversationModel"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->UndeployConversationModel(ExperimentalTag{}, NoAwaitTag{}, + request)); +} + +future> +ConversationModelsTracingConnection::UndeployConversationModel( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "dialogflow_es::ConversationModelsConnection::UndeployConversationModel"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->UndeployConversationModel( + ExperimentalTag{}, operation)); +} + StatusOr ConversationModelsTracingConnection::GetConversationModelEvaluation( google::cloud::dialogflow::v2::GetConversationModelEvaluationRequest const& @@ -139,6 +234,32 @@ ConversationModelsTracingConnection::CreateConversationModelEvaluation( child_->CreateConversationModelEvaluation(request)); } +StatusOr +ConversationModelsTracingConnection::CreateConversationModelEvaluation( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::v2:: + CreateConversationModelEvaluationRequest const& request) { + auto span = internal::MakeSpan( + "dialogflow_es::ConversationModelsConnection::" + "CreateConversationModelEvaluation"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->CreateConversationModelEvaluation(ExperimentalTag{}, + NoAwaitTag{}, request)); +} + +future> +ConversationModelsTracingConnection::CreateConversationModelEvaluation( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "dialogflow_es::ConversationModelsConnection::" + "CreateConversationModelEvaluation"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), + child_->CreateConversationModelEvaluation(ExperimentalTag{}, operation)); +} + #endif // GOOGLE_CLOUD_CPP_HAVE_OPENTELEMETRY std::shared_ptr diff --git a/google/cloud/dialogflow_es/internal/conversation_models_tracing_connection.h b/google/cloud/dialogflow_es/internal/conversation_models_tracing_connection.h index ee63f2ca01b34..d51b5a605d64b 100644 --- a/google/cloud/dialogflow_es/internal/conversation_models_tracing_connection.h +++ b/google/cloud/dialogflow_es/internal/conversation_models_tracing_connection.h @@ -45,6 +45,16 @@ class ConversationModelsTracingConnection google::cloud::dialogflow::v2::CreateConversationModelRequest const& request) override; + StatusOr CreateConversationModel( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::v2::CreateConversationModelRequest const& + request) override; + + future> + CreateConversationModel( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetConversationModel( google::cloud::dialogflow::v2::GetConversationModelRequest const& request) @@ -61,18 +71,51 @@ class ConversationModelsTracingConnection google::cloud::dialogflow::v2::DeleteConversationModelRequest const& request) override; + StatusOr DeleteConversationModel( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::v2::DeleteConversationModelRequest const& + request) override; + + future> + DeleteConversationModel( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeployConversationModel( google::cloud::dialogflow::v2::DeployConversationModelRequest const& request) override; + StatusOr DeployConversationModel( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::v2::DeployConversationModelRequest const& + request) override; + + future> + DeployConversationModel( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UndeployConversationModel( google::cloud::dialogflow::v2::UndeployConversationModelRequest const& request) override; + StatusOr UndeployConversationModel( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::v2::UndeployConversationModelRequest const& + request) override; + + future> + UndeployConversationModel( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetConversationModelEvaluation( google::cloud::dialogflow::v2:: @@ -88,6 +131,16 @@ class ConversationModelsTracingConnection google::cloud::dialogflow::v2:: CreateConversationModelEvaluationRequest const& request) override; + StatusOr CreateConversationModelEvaluation( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::v2:: + CreateConversationModelEvaluationRequest const& request) override; + + future> + CreateConversationModelEvaluation( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + private: std::shared_ptr child_; }; diff --git a/google/cloud/dialogflow_es/internal/conversation_profiles_connection_impl.cc b/google/cloud/dialogflow_es/internal/conversation_profiles_connection_impl.cc index 738f980e219f7..e16809e90e570 100644 --- a/google/cloud/dialogflow_es/internal/conversation_profiles_connection_impl.cc +++ b/google/cloud/dialogflow_es/internal/conversation_profiles_connection_impl.cc @@ -210,6 +210,61 @@ ConversationProfilesConnectionImpl::SetSuggestionFeatureConfig( polling_policy(*current), __func__); } +StatusOr +ConversationProfilesConnectionImpl::SetSuggestionFeatureConfig( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::v2::SetSuggestionFeatureConfigRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->SetSuggestionFeatureConfig(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::dialogflow::v2:: + SetSuggestionFeatureConfigRequest const& request) { + return stub_->SetSuggestionFeatureConfig(context, options, request); + }, + *current, request, __func__); +} + +future> +ConversationProfilesConnectionImpl::SetSuggestionFeatureConfig( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to SetSuggestionFeatureConfig", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::dialogflow::v2::ConversationProfile>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::dialogflow::v2::ConversationProfile>, + polling_policy(*current), __func__); +} + future> ConversationProfilesConnectionImpl::ClearSuggestionFeatureConfig( google::cloud::dialogflow::v2::ClearSuggestionFeatureConfigRequest const& @@ -250,6 +305,61 @@ ConversationProfilesConnectionImpl::ClearSuggestionFeatureConfig( polling_policy(*current), __func__); } +StatusOr +ConversationProfilesConnectionImpl::ClearSuggestionFeatureConfig( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::v2::ClearSuggestionFeatureConfigRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->ClearSuggestionFeatureConfig(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::dialogflow::v2:: + ClearSuggestionFeatureConfigRequest const& request) { + return stub_->ClearSuggestionFeatureConfig(context, options, request); + }, + *current, request, __func__); +} + +future> +ConversationProfilesConnectionImpl::ClearSuggestionFeatureConfig( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to ClearSuggestionFeatureConfig", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::dialogflow::v2::ConversationProfile>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::dialogflow::v2::ConversationProfile>, + polling_policy(*current), __func__); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace dialogflow_es_internal } // namespace cloud diff --git a/google/cloud/dialogflow_es/internal/conversation_profiles_connection_impl.h b/google/cloud/dialogflow_es/internal/conversation_profiles_connection_impl.h index a9678cc3c7449..fd66be9268e98 100644 --- a/google/cloud/dialogflow_es/internal/conversation_profiles_connection_impl.h +++ b/google/cloud/dialogflow_es/internal/conversation_profiles_connection_impl.h @@ -81,11 +81,31 @@ class ConversationProfilesConnectionImpl google::cloud::dialogflow::v2::SetSuggestionFeatureConfigRequest const& request) override; + StatusOr SetSuggestionFeatureConfig( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::v2::SetSuggestionFeatureConfigRequest const& + request) override; + + future> + SetSuggestionFeatureConfig( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ClearSuggestionFeatureConfig( google::cloud::dialogflow::v2::ClearSuggestionFeatureConfigRequest const& request) override; + StatusOr ClearSuggestionFeatureConfig( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::v2::ClearSuggestionFeatureConfigRequest const& + request) override; + + future> + ClearSuggestionFeatureConfig( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + private: std::unique_ptr background_; std::shared_ptr stub_; diff --git a/google/cloud/dialogflow_es/internal/conversation_profiles_tracing_connection.cc b/google/cloud/dialogflow_es/internal/conversation_profiles_tracing_connection.cc index a4c610432db41..961e8648dd78b 100644 --- a/google/cloud/dialogflow_es/internal/conversation_profiles_tracing_connection.cc +++ b/google/cloud/dialogflow_es/internal/conversation_profiles_tracing_connection.cc @@ -100,6 +100,31 @@ ConversationProfilesTracingConnection::SetSuggestionFeatureConfig( child_->SetSuggestionFeatureConfig(request)); } +StatusOr +ConversationProfilesTracingConnection::SetSuggestionFeatureConfig( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::v2::SetSuggestionFeatureConfigRequest const& + request) { + auto span = internal::MakeSpan( + "dialogflow_es::ConversationProfilesConnection::" + "SetSuggestionFeatureConfig"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->SetSuggestionFeatureConfig(ExperimentalTag{}, NoAwaitTag{}, + request)); +} + +future> +ConversationProfilesTracingConnection::SetSuggestionFeatureConfig( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "dialogflow_es::ConversationProfilesConnection::" + "SetSuggestionFeatureConfig"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->SetSuggestionFeatureConfig( + ExperimentalTag{}, operation)); +} + future> ConversationProfilesTracingConnection::ClearSuggestionFeatureConfig( google::cloud::dialogflow::v2::ClearSuggestionFeatureConfigRequest const& @@ -112,6 +137,32 @@ ConversationProfilesTracingConnection::ClearSuggestionFeatureConfig( child_->ClearSuggestionFeatureConfig(request)); } +StatusOr +ConversationProfilesTracingConnection::ClearSuggestionFeatureConfig( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::v2::ClearSuggestionFeatureConfigRequest const& + request) { + auto span = internal::MakeSpan( + "dialogflow_es::ConversationProfilesConnection::" + "ClearSuggestionFeatureConfig"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->ClearSuggestionFeatureConfig(ExperimentalTag{}, + NoAwaitTag{}, request)); +} + +future> +ConversationProfilesTracingConnection::ClearSuggestionFeatureConfig( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "dialogflow_es::ConversationProfilesConnection::" + "ClearSuggestionFeatureConfig"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), + child_->ClearSuggestionFeatureConfig(ExperimentalTag{}, operation)); +} + #endif // GOOGLE_CLOUD_CPP_HAVE_OPENTELEMETRY std::shared_ptr diff --git a/google/cloud/dialogflow_es/internal/conversation_profiles_tracing_connection.h b/google/cloud/dialogflow_es/internal/conversation_profiles_tracing_connection.h index ad07fecfb3425..e10035ad01992 100644 --- a/google/cloud/dialogflow_es/internal/conversation_profiles_tracing_connection.h +++ b/google/cloud/dialogflow_es/internal/conversation_profiles_tracing_connection.h @@ -69,11 +69,31 @@ class ConversationProfilesTracingConnection google::cloud::dialogflow::v2::SetSuggestionFeatureConfigRequest const& request) override; + StatusOr SetSuggestionFeatureConfig( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::v2::SetSuggestionFeatureConfigRequest const& + request) override; + + future> + SetSuggestionFeatureConfig( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ClearSuggestionFeatureConfig( google::cloud::dialogflow::v2::ClearSuggestionFeatureConfigRequest const& request) override; + StatusOr ClearSuggestionFeatureConfig( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::v2::ClearSuggestionFeatureConfigRequest const& + request) override; + + future> + ClearSuggestionFeatureConfig( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + private: std::shared_ptr child_; }; diff --git a/google/cloud/dialogflow_es/internal/documents_connection_impl.cc b/google/cloud/dialogflow_es/internal/documents_connection_impl.cc index 29a12de6e012f..b6e2bc74f001c 100644 --- a/google/cloud/dialogflow_es/internal/documents_connection_impl.cc +++ b/google/cloud/dialogflow_es/internal/documents_connection_impl.cc @@ -151,6 +151,59 @@ DocumentsConnectionImpl::CreateDocument( polling_policy(*current), __func__); } +StatusOr +DocumentsConnectionImpl::CreateDocument( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::v2::CreateDocumentRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateDocument(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::dialogflow::v2::CreateDocumentRequest const& request) { + return stub_->CreateDocument(context, options, request); + }, + *current, request, __func__); +} + +future> +DocumentsConnectionImpl::CreateDocument( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to CreateDocument", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::dialogflow::v2::Document>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::dialogflow::v2::Document>, + polling_policy(*current), __func__); +} + future> DocumentsConnectionImpl::ImportDocuments( google::cloud::dialogflow::v2::ImportDocumentsRequest const& request) { @@ -191,6 +244,60 @@ DocumentsConnectionImpl::ImportDocuments( polling_policy(*current), __func__); } +StatusOr +DocumentsConnectionImpl::ImportDocuments( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::v2::ImportDocumentsRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->ImportDocuments(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::dialogflow::v2::ImportDocumentsRequest const& + request) { + return stub_->ImportDocuments(context, options, request); + }, + *current, request, __func__); +} + +future> +DocumentsConnectionImpl::ImportDocuments( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to ImportDocuments", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::dialogflow::v2::ImportDocumentsResponse>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::dialogflow::v2::ImportDocumentsResponse>, + polling_policy(*current), __func__); +} + future> DocumentsConnectionImpl::DeleteDocument( google::cloud::dialogflow::v2::DeleteDocumentRequest const& request) { @@ -230,6 +337,60 @@ DocumentsConnectionImpl::DeleteDocument( polling_policy(*current), __func__); } +StatusOr +DocumentsConnectionImpl::DeleteDocument( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::v2::DeleteDocumentRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteDocument(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::dialogflow::v2::DeleteDocumentRequest const& request) { + return stub_->DeleteDocument(context, options, request); + }, + *current, request, __func__); +} + +future> +DocumentsConnectionImpl::DeleteDocument( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteDocument", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::dialogflow::v2::KnowledgeOperationMetadata>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::cloud::dialogflow::v2::KnowledgeOperationMetadata>, + polling_policy(*current), __func__); +} + future> DocumentsConnectionImpl::UpdateDocument( google::cloud::dialogflow::v2::UpdateDocumentRequest const& request) { @@ -269,6 +430,59 @@ DocumentsConnectionImpl::UpdateDocument( polling_policy(*current), __func__); } +StatusOr +DocumentsConnectionImpl::UpdateDocument( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::v2::UpdateDocumentRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UpdateDocument(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::dialogflow::v2::UpdateDocumentRequest const& request) { + return stub_->UpdateDocument(context, options, request); + }, + *current, request, __func__); +} + +future> +DocumentsConnectionImpl::UpdateDocument( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to UpdateDocument", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::dialogflow::v2::Document>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::dialogflow::v2::Document>, + polling_policy(*current), __func__); +} + future> DocumentsConnectionImpl::ReloadDocument( google::cloud::dialogflow::v2::ReloadDocumentRequest const& request) { @@ -308,6 +522,59 @@ DocumentsConnectionImpl::ReloadDocument( polling_policy(*current), __func__); } +StatusOr +DocumentsConnectionImpl::ReloadDocument( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::v2::ReloadDocumentRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->ReloadDocument(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::dialogflow::v2::ReloadDocumentRequest const& request) { + return stub_->ReloadDocument(context, options, request); + }, + *current, request, __func__); +} + +future> +DocumentsConnectionImpl::ReloadDocument( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to ReloadDocument", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::dialogflow::v2::Document>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::dialogflow::v2::Document>, + polling_policy(*current), __func__); +} + future> DocumentsConnectionImpl::ExportDocument( google::cloud::dialogflow::v2::ExportDocumentRequest const& request) { @@ -347,6 +614,59 @@ DocumentsConnectionImpl::ExportDocument( polling_policy(*current), __func__); } +StatusOr +DocumentsConnectionImpl::ExportDocument( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::v2::ExportDocumentRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->ExportDocument(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::dialogflow::v2::ExportDocumentRequest const& request) { + return stub_->ExportDocument(context, options, request); + }, + *current, request, __func__); +} + +future> +DocumentsConnectionImpl::ExportDocument( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to ExportDocument", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::dialogflow::v2::Document>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::dialogflow::v2::Document>, + polling_policy(*current), __func__); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace dialogflow_es_internal } // namespace cloud diff --git a/google/cloud/dialogflow_es/internal/documents_connection_impl.h b/google/cloud/dialogflow_es/internal/documents_connection_impl.h index 9e3d599c9fab7..91268309f5119 100644 --- a/google/cloud/dialogflow_es/internal/documents_connection_impl.h +++ b/google/cloud/dialogflow_es/internal/documents_connection_impl.h @@ -62,26 +62,80 @@ class DocumentsConnectionImpl : public dialogflow_es::DocumentsConnection { google::cloud::dialogflow::v2::CreateDocumentRequest const& request) override; + StatusOr CreateDocument( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::v2::CreateDocumentRequest const& request) + override; + + future> CreateDocument( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ImportDocuments(google::cloud::dialogflow::v2::ImportDocumentsRequest const& request) override; + StatusOr ImportDocuments( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::v2::ImportDocumentsRequest const& request) + override; + + future> + ImportDocuments(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteDocument(google::cloud::dialogflow::v2::DeleteDocumentRequest const& request) override; + StatusOr DeleteDocument( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::v2::DeleteDocumentRequest const& request) + override; + + future> + DeleteDocument(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateDocument( google::cloud::dialogflow::v2::UpdateDocumentRequest const& request) override; + StatusOr UpdateDocument( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::v2::UpdateDocumentRequest const& request) + override; + + future> UpdateDocument( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ReloadDocument( google::cloud::dialogflow::v2::ReloadDocumentRequest const& request) override; + StatusOr ReloadDocument( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::v2::ReloadDocumentRequest const& request) + override; + + future> ReloadDocument( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ExportDocument( google::cloud::dialogflow::v2::ExportDocumentRequest const& request) override; + StatusOr ExportDocument( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::v2::ExportDocumentRequest const& request) + override; + + future> ExportDocument( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + private: std::unique_ptr background_; std::shared_ptr stub_; diff --git a/google/cloud/dialogflow_es/internal/documents_tracing_connection.cc b/google/cloud/dialogflow_es/internal/documents_tracing_connection.cc index 7283647b14885..8f3e4b61bc323 100644 --- a/google/cloud/dialogflow_es/internal/documents_tracing_connection.cc +++ b/google/cloud/dialogflow_es/internal/documents_tracing_connection.cc @@ -62,6 +62,27 @@ DocumentsTracingConnection::CreateDocument( return internal::EndSpan(std::move(span), child_->CreateDocument(request)); } +StatusOr +DocumentsTracingConnection::CreateDocument( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::v2::CreateDocumentRequest const& request) { + auto span = + internal::MakeSpan("dialogflow_es::DocumentsConnection::CreateDocument"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->CreateDocument(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +DocumentsTracingConnection::CreateDocument( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = + internal::MakeSpan("dialogflow_es::DocumentsConnection::CreateDocument"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->CreateDocument(ExperimentalTag{}, operation)); +} + future> DocumentsTracingConnection::ImportDocuments( google::cloud::dialogflow::v2::ImportDocumentsRequest const& request) { @@ -71,6 +92,27 @@ DocumentsTracingConnection::ImportDocuments( return internal::EndSpan(std::move(span), child_->ImportDocuments(request)); } +StatusOr +DocumentsTracingConnection::ImportDocuments( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::v2::ImportDocumentsRequest const& request) { + auto span = + internal::MakeSpan("dialogflow_es::DocumentsConnection::ImportDocuments"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->ImportDocuments(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +DocumentsTracingConnection::ImportDocuments( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = + internal::MakeSpan("dialogflow_es::DocumentsConnection::ImportDocuments"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->ImportDocuments(ExperimentalTag{}, operation)); +} + future> DocumentsTracingConnection::DeleteDocument( google::cloud::dialogflow::v2::DeleteDocumentRequest const& request) { @@ -80,6 +122,27 @@ DocumentsTracingConnection::DeleteDocument( return internal::EndSpan(std::move(span), child_->DeleteDocument(request)); } +StatusOr +DocumentsTracingConnection::DeleteDocument( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::v2::DeleteDocumentRequest const& request) { + auto span = + internal::MakeSpan("dialogflow_es::DocumentsConnection::DeleteDocument"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->DeleteDocument(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +DocumentsTracingConnection::DeleteDocument( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = + internal::MakeSpan("dialogflow_es::DocumentsConnection::DeleteDocument"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->DeleteDocument(ExperimentalTag{}, operation)); +} + future> DocumentsTracingConnection::UpdateDocument( google::cloud::dialogflow::v2::UpdateDocumentRequest const& request) { @@ -89,6 +152,27 @@ DocumentsTracingConnection::UpdateDocument( return internal::EndSpan(std::move(span), child_->UpdateDocument(request)); } +StatusOr +DocumentsTracingConnection::UpdateDocument( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::v2::UpdateDocumentRequest const& request) { + auto span = + internal::MakeSpan("dialogflow_es::DocumentsConnection::UpdateDocument"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->UpdateDocument(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +DocumentsTracingConnection::UpdateDocument( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = + internal::MakeSpan("dialogflow_es::DocumentsConnection::UpdateDocument"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->UpdateDocument(ExperimentalTag{}, operation)); +} + future> DocumentsTracingConnection::ReloadDocument( google::cloud::dialogflow::v2::ReloadDocumentRequest const& request) { @@ -98,6 +182,27 @@ DocumentsTracingConnection::ReloadDocument( return internal::EndSpan(std::move(span), child_->ReloadDocument(request)); } +StatusOr +DocumentsTracingConnection::ReloadDocument( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::v2::ReloadDocumentRequest const& request) { + auto span = + internal::MakeSpan("dialogflow_es::DocumentsConnection::ReloadDocument"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->ReloadDocument(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +DocumentsTracingConnection::ReloadDocument( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = + internal::MakeSpan("dialogflow_es::DocumentsConnection::ReloadDocument"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->ReloadDocument(ExperimentalTag{}, operation)); +} + future> DocumentsTracingConnection::ExportDocument( google::cloud::dialogflow::v2::ExportDocumentRequest const& request) { @@ -107,6 +212,27 @@ DocumentsTracingConnection::ExportDocument( return internal::EndSpan(std::move(span), child_->ExportDocument(request)); } +StatusOr +DocumentsTracingConnection::ExportDocument( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::v2::ExportDocumentRequest const& request) { + auto span = + internal::MakeSpan("dialogflow_es::DocumentsConnection::ExportDocument"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->ExportDocument(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +DocumentsTracingConnection::ExportDocument( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = + internal::MakeSpan("dialogflow_es::DocumentsConnection::ExportDocument"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->ExportDocument(ExperimentalTag{}, operation)); +} + #endif // GOOGLE_CLOUD_CPP_HAVE_OPENTELEMETRY std::shared_ptr diff --git a/google/cloud/dialogflow_es/internal/documents_tracing_connection.h b/google/cloud/dialogflow_es/internal/documents_tracing_connection.h index 1a5c78aa4f7be..5e0cee3ba755b 100644 --- a/google/cloud/dialogflow_es/internal/documents_tracing_connection.h +++ b/google/cloud/dialogflow_es/internal/documents_tracing_connection.h @@ -50,26 +50,80 @@ class DocumentsTracingConnection : public dialogflow_es::DocumentsConnection { google::cloud::dialogflow::v2::CreateDocumentRequest const& request) override; + StatusOr CreateDocument( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::v2::CreateDocumentRequest const& request) + override; + + future> CreateDocument( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ImportDocuments(google::cloud::dialogflow::v2::ImportDocumentsRequest const& request) override; + StatusOr ImportDocuments( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::v2::ImportDocumentsRequest const& request) + override; + + future> + ImportDocuments(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteDocument(google::cloud::dialogflow::v2::DeleteDocumentRequest const& request) override; + StatusOr DeleteDocument( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::v2::DeleteDocumentRequest const& request) + override; + + future> + DeleteDocument(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateDocument( google::cloud::dialogflow::v2::UpdateDocumentRequest const& request) override; + StatusOr UpdateDocument( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::v2::UpdateDocumentRequest const& request) + override; + + future> UpdateDocument( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ReloadDocument( google::cloud::dialogflow::v2::ReloadDocumentRequest const& request) override; + StatusOr ReloadDocument( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::v2::ReloadDocumentRequest const& request) + override; + + future> ReloadDocument( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ExportDocument( google::cloud::dialogflow::v2::ExportDocumentRequest const& request) override; + StatusOr ExportDocument( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::v2::ExportDocumentRequest const& request) + override; + + future> ExportDocument( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + private: std::shared_ptr child_; }; diff --git a/google/cloud/dialogflow_es/internal/entity_types_connection_impl.cc b/google/cloud/dialogflow_es/internal/entity_types_connection_impl.cc index e7ae9074cb4cf..538976f19fe5e 100644 --- a/google/cloud/dialogflow_es/internal/entity_types_connection_impl.cc +++ b/google/cloud/dialogflow_es/internal/entity_types_connection_impl.cc @@ -198,6 +198,59 @@ EntityTypesConnectionImpl::BatchUpdateEntityTypes( polling_policy(*current), __func__); } +StatusOr +EntityTypesConnectionImpl::BatchUpdateEntityTypes( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::v2::BatchUpdateEntityTypesRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->BatchUpdateEntityTypes(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::dialogflow::v2::BatchUpdateEntityTypesRequest const& + request) { + return stub_->BatchUpdateEntityTypes(context, options, request); + }, + *current, request, __func__); +} + +future> +EntityTypesConnectionImpl::BatchUpdateEntityTypes( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata().Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to BatchUpdateEntityTypes", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::dialogflow::v2::BatchUpdateEntityTypesResponse>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::dialogflow::v2::BatchUpdateEntityTypesResponse>, + polling_policy(*current), __func__); +} + future> EntityTypesConnectionImpl::BatchDeleteEntityTypes( google::cloud::dialogflow::v2::BatchDeleteEntityTypesRequest const& @@ -239,6 +292,58 @@ EntityTypesConnectionImpl::BatchDeleteEntityTypes( polling_policy(*current), __func__); } +StatusOr +EntityTypesConnectionImpl::BatchDeleteEntityTypes( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::v2::BatchDeleteEntityTypesRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->BatchDeleteEntityTypes(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::dialogflow::v2::BatchDeleteEntityTypesRequest const& + request) { + return stub_->BatchDeleteEntityTypes(context, options, request); + }, + *current, request, __func__); +} + +future> +EntityTypesConnectionImpl::BatchDeleteEntityTypes( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata().Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to BatchDeleteEntityTypes", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::protobuf::Struct>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::protobuf::Struct>, + polling_policy(*current), __func__); +} + future> EntityTypesConnectionImpl::BatchCreateEntities( google::cloud::dialogflow::v2::BatchCreateEntitiesRequest const& request) { @@ -279,6 +384,57 @@ EntityTypesConnectionImpl::BatchCreateEntities( polling_policy(*current), __func__); } +StatusOr +EntityTypesConnectionImpl::BatchCreateEntities( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::v2::BatchCreateEntitiesRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->BatchCreateEntities(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::dialogflow::v2::BatchCreateEntitiesRequest const& + request) { + return stub_->BatchCreateEntities(context, options, request); + }, + *current, request, __func__); +} + +future> +EntityTypesConnectionImpl::BatchCreateEntities( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata().Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to BatchCreateEntities", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::protobuf::Struct>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::protobuf::Struct>, + polling_policy(*current), __func__); +} + future> EntityTypesConnectionImpl::BatchUpdateEntities( google::cloud::dialogflow::v2::BatchUpdateEntitiesRequest const& request) { @@ -319,6 +475,57 @@ EntityTypesConnectionImpl::BatchUpdateEntities( polling_policy(*current), __func__); } +StatusOr +EntityTypesConnectionImpl::BatchUpdateEntities( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::v2::BatchUpdateEntitiesRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->BatchUpdateEntities(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::dialogflow::v2::BatchUpdateEntitiesRequest const& + request) { + return stub_->BatchUpdateEntities(context, options, request); + }, + *current, request, __func__); +} + +future> +EntityTypesConnectionImpl::BatchUpdateEntities( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata().Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to BatchUpdateEntities", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::protobuf::Struct>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::protobuf::Struct>, + polling_policy(*current), __func__); +} + future> EntityTypesConnectionImpl::BatchDeleteEntities( google::cloud::dialogflow::v2::BatchDeleteEntitiesRequest const& request) { @@ -359,6 +566,57 @@ EntityTypesConnectionImpl::BatchDeleteEntities( polling_policy(*current), __func__); } +StatusOr +EntityTypesConnectionImpl::BatchDeleteEntities( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::v2::BatchDeleteEntitiesRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->BatchDeleteEntities(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::dialogflow::v2::BatchDeleteEntitiesRequest const& + request) { + return stub_->BatchDeleteEntities(context, options, request); + }, + *current, request, __func__); +} + +future> +EntityTypesConnectionImpl::BatchDeleteEntities( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata().Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to BatchDeleteEntities", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::protobuf::Struct>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::protobuf::Struct>, + polling_policy(*current), __func__); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace dialogflow_es_internal } // namespace cloud diff --git a/google/cloud/dialogflow_es/internal/entity_types_connection_impl.h b/google/cloud/dialogflow_es/internal/entity_types_connection_impl.h index 41fcd71e39e12..449c8fade7e2e 100644 --- a/google/cloud/dialogflow_es/internal/entity_types_connection_impl.h +++ b/google/cloud/dialogflow_es/internal/entity_types_connection_impl.h @@ -76,22 +76,69 @@ class EntityTypesConnectionImpl : public dialogflow_es::EntityTypesConnection { google::cloud::dialogflow::v2::BatchUpdateEntityTypesRequest const& request) override; + StatusOr BatchUpdateEntityTypes( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::v2::BatchUpdateEntityTypesRequest const& + request) override; + + future< + StatusOr> + BatchUpdateEntityTypes( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> BatchDeleteEntityTypes( google::cloud::dialogflow::v2::BatchDeleteEntityTypesRequest const& request) override; + StatusOr BatchDeleteEntityTypes( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::v2::BatchDeleteEntityTypesRequest const& + request) override; + + future> BatchDeleteEntityTypes( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> BatchCreateEntities( google::cloud::dialogflow::v2::BatchCreateEntitiesRequest const& request) override; + StatusOr BatchCreateEntities( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::v2::BatchCreateEntitiesRequest const& request) + override; + + future> BatchCreateEntities( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> BatchUpdateEntities( google::cloud::dialogflow::v2::BatchUpdateEntitiesRequest const& request) override; + StatusOr BatchUpdateEntities( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::v2::BatchUpdateEntitiesRequest const& request) + override; + + future> BatchUpdateEntities( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> BatchDeleteEntities( google::cloud::dialogflow::v2::BatchDeleteEntitiesRequest const& request) override; + StatusOr BatchDeleteEntities( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::v2::BatchDeleteEntitiesRequest const& request) + override; + + future> BatchDeleteEntities( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + private: std::unique_ptr background_; std::shared_ptr stub_; diff --git a/google/cloud/dialogflow_es/internal/entity_types_tracing_connection.cc b/google/cloud/dialogflow_es/internal/entity_types_tracing_connection.cc index 13e22163432f4..9c7b217d8a4ec 100644 --- a/google/cloud/dialogflow_es/internal/entity_types_tracing_connection.cc +++ b/google/cloud/dialogflow_es/internal/entity_types_tracing_connection.cc @@ -91,6 +91,29 @@ EntityTypesTracingConnection::BatchUpdateEntityTypes( child_->BatchUpdateEntityTypes(request)); } +StatusOr +EntityTypesTracingConnection::BatchUpdateEntityTypes( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::v2::BatchUpdateEntityTypesRequest const& + request) { + auto span = internal::MakeSpan( + "dialogflow_es::EntityTypesConnection::BatchUpdateEntityTypes"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->BatchUpdateEntityTypes(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +EntityTypesTracingConnection::BatchUpdateEntityTypes( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "dialogflow_es::EntityTypesConnection::BatchUpdateEntityTypes"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->BatchUpdateEntityTypes( + ExperimentalTag{}, operation)); +} + future> EntityTypesTracingConnection::BatchDeleteEntityTypes( google::cloud::dialogflow::v2::BatchDeleteEntityTypesRequest const& @@ -102,6 +125,29 @@ EntityTypesTracingConnection::BatchDeleteEntityTypes( child_->BatchDeleteEntityTypes(request)); } +StatusOr +EntityTypesTracingConnection::BatchDeleteEntityTypes( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::v2::BatchDeleteEntityTypesRequest const& + request) { + auto span = internal::MakeSpan( + "dialogflow_es::EntityTypesConnection::BatchDeleteEntityTypes"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->BatchDeleteEntityTypes(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +EntityTypesTracingConnection::BatchDeleteEntityTypes( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "dialogflow_es::EntityTypesConnection::BatchDeleteEntityTypes"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->BatchDeleteEntityTypes( + ExperimentalTag{}, operation)); +} + future> EntityTypesTracingConnection::BatchCreateEntities( google::cloud::dialogflow::v2::BatchCreateEntitiesRequest const& request) { @@ -112,6 +158,28 @@ EntityTypesTracingConnection::BatchCreateEntities( child_->BatchCreateEntities(request)); } +StatusOr +EntityTypesTracingConnection::BatchCreateEntities( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::v2::BatchCreateEntitiesRequest const& request) { + auto span = internal::MakeSpan( + "dialogflow_es::EntityTypesConnection::BatchCreateEntities"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->BatchCreateEntities(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +EntityTypesTracingConnection::BatchCreateEntities( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "dialogflow_es::EntityTypesConnection::BatchCreateEntities"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->BatchCreateEntities( + ExperimentalTag{}, operation)); +} + future> EntityTypesTracingConnection::BatchUpdateEntities( google::cloud::dialogflow::v2::BatchUpdateEntitiesRequest const& request) { @@ -122,6 +190,28 @@ EntityTypesTracingConnection::BatchUpdateEntities( child_->BatchUpdateEntities(request)); } +StatusOr +EntityTypesTracingConnection::BatchUpdateEntities( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::v2::BatchUpdateEntitiesRequest const& request) { + auto span = internal::MakeSpan( + "dialogflow_es::EntityTypesConnection::BatchUpdateEntities"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->BatchUpdateEntities(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +EntityTypesTracingConnection::BatchUpdateEntities( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "dialogflow_es::EntityTypesConnection::BatchUpdateEntities"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->BatchUpdateEntities( + ExperimentalTag{}, operation)); +} + future> EntityTypesTracingConnection::BatchDeleteEntities( google::cloud::dialogflow::v2::BatchDeleteEntitiesRequest const& request) { @@ -132,6 +222,28 @@ EntityTypesTracingConnection::BatchDeleteEntities( child_->BatchDeleteEntities(request)); } +StatusOr +EntityTypesTracingConnection::BatchDeleteEntities( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::v2::BatchDeleteEntitiesRequest const& request) { + auto span = internal::MakeSpan( + "dialogflow_es::EntityTypesConnection::BatchDeleteEntities"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->BatchDeleteEntities(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +EntityTypesTracingConnection::BatchDeleteEntities( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "dialogflow_es::EntityTypesConnection::BatchDeleteEntities"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->BatchDeleteEntities( + ExperimentalTag{}, operation)); +} + #endif // GOOGLE_CLOUD_CPP_HAVE_OPENTELEMETRY std::shared_ptr diff --git a/google/cloud/dialogflow_es/internal/entity_types_tracing_connection.h b/google/cloud/dialogflow_es/internal/entity_types_tracing_connection.h index 70f63e6737cbb..4d90903a2777b 100644 --- a/google/cloud/dialogflow_es/internal/entity_types_tracing_connection.h +++ b/google/cloud/dialogflow_es/internal/entity_types_tracing_connection.h @@ -65,22 +65,69 @@ class EntityTypesTracingConnection google::cloud::dialogflow::v2::BatchUpdateEntityTypesRequest const& request) override; + StatusOr BatchUpdateEntityTypes( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::v2::BatchUpdateEntityTypesRequest const& + request) override; + + future< + StatusOr> + BatchUpdateEntityTypes( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> BatchDeleteEntityTypes( google::cloud::dialogflow::v2::BatchDeleteEntityTypesRequest const& request) override; + StatusOr BatchDeleteEntityTypes( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::v2::BatchDeleteEntityTypesRequest const& + request) override; + + future> BatchDeleteEntityTypes( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> BatchCreateEntities( google::cloud::dialogflow::v2::BatchCreateEntitiesRequest const& request) override; + StatusOr BatchCreateEntities( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::v2::BatchCreateEntitiesRequest const& request) + override; + + future> BatchCreateEntities( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> BatchUpdateEntities( google::cloud::dialogflow::v2::BatchUpdateEntitiesRequest const& request) override; + StatusOr BatchUpdateEntities( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::v2::BatchUpdateEntitiesRequest const& request) + override; + + future> BatchUpdateEntities( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> BatchDeleteEntities( google::cloud::dialogflow::v2::BatchDeleteEntitiesRequest const& request) override; + StatusOr BatchDeleteEntities( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::v2::BatchDeleteEntitiesRequest const& request) + override; + + future> BatchDeleteEntities( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + private: std::shared_ptr child_; }; diff --git a/google/cloud/dialogflow_es/internal/intents_connection_impl.cc b/google/cloud/dialogflow_es/internal/intents_connection_impl.cc index 076b6af77e11c..ceb150c5a92bd 100644 --- a/google/cloud/dialogflow_es/internal/intents_connection_impl.cc +++ b/google/cloud/dialogflow_es/internal/intents_connection_impl.cc @@ -194,6 +194,58 @@ IntentsConnectionImpl::BatchUpdateIntents( polling_policy(*current), __func__); } +StatusOr +IntentsConnectionImpl::BatchUpdateIntents( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::v2::BatchUpdateIntentsRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->BatchUpdateIntents(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::dialogflow::v2::BatchUpdateIntentsRequest const& + request) { + return stub_->BatchUpdateIntents(context, options, request); + }, + *current, request, __func__); +} + +future> +IntentsConnectionImpl::BatchUpdateIntents( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata().Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to BatchUpdateIntents", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::dialogflow::v2::BatchUpdateIntentsResponse>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::dialogflow::v2::BatchUpdateIntentsResponse>, + polling_policy(*current), __func__); +} + future> IntentsConnectionImpl::BatchDeleteIntents( google::cloud::dialogflow::v2::BatchDeleteIntentsRequest const& request) { @@ -234,6 +286,57 @@ IntentsConnectionImpl::BatchDeleteIntents( polling_policy(*current), __func__); } +StatusOr +IntentsConnectionImpl::BatchDeleteIntents( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::v2::BatchDeleteIntentsRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->BatchDeleteIntents(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::dialogflow::v2::BatchDeleteIntentsRequest const& + request) { + return stub_->BatchDeleteIntents(context, options, request); + }, + *current, request, __func__); +} + +future> +IntentsConnectionImpl::BatchDeleteIntents( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata().Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to BatchDeleteIntents", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::protobuf::Struct>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::protobuf::Struct>, + polling_policy(*current), __func__); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace dialogflow_es_internal } // namespace cloud diff --git a/google/cloud/dialogflow_es/internal/intents_connection_impl.h b/google/cloud/dialogflow_es/internal/intents_connection_impl.h index 03898e060649a..9dd1f6740553b 100644 --- a/google/cloud/dialogflow_es/internal/intents_connection_impl.h +++ b/google/cloud/dialogflow_es/internal/intents_connection_impl.h @@ -73,10 +73,28 @@ class IntentsConnectionImpl : public dialogflow_es::IntentsConnection { google::cloud::dialogflow::v2::BatchUpdateIntentsRequest const& request) override; + StatusOr BatchUpdateIntents( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::v2::BatchUpdateIntentsRequest const& request) + override; + + future> + BatchUpdateIntents(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> BatchDeleteIntents( google::cloud::dialogflow::v2::BatchDeleteIntentsRequest const& request) override; + StatusOr BatchDeleteIntents( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::v2::BatchDeleteIntentsRequest const& request) + override; + + future> BatchDeleteIntents( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + private: std::unique_ptr background_; std::shared_ptr stub_; diff --git a/google/cloud/dialogflow_es/internal/intents_tracing_connection.cc b/google/cloud/dialogflow_es/internal/intents_tracing_connection.cc index 50eacdf1541f9..d8dccf420d788 100644 --- a/google/cloud/dialogflow_es/internal/intents_tracing_connection.cc +++ b/google/cloud/dialogflow_es/internal/intents_tracing_connection.cc @@ -88,6 +88,28 @@ IntentsTracingConnection::BatchUpdateIntents( child_->BatchUpdateIntents(request)); } +StatusOr +IntentsTracingConnection::BatchUpdateIntents( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::v2::BatchUpdateIntentsRequest const& request) { + auto span = internal::MakeSpan( + "dialogflow_es::IntentsConnection::BatchUpdateIntents"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->BatchUpdateIntents(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +IntentsTracingConnection::BatchUpdateIntents( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "dialogflow_es::IntentsConnection::BatchUpdateIntents"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->BatchUpdateIntents( + ExperimentalTag{}, operation)); +} + future> IntentsTracingConnection::BatchDeleteIntents( google::cloud::dialogflow::v2::BatchDeleteIntentsRequest const& request) { @@ -98,6 +120,28 @@ IntentsTracingConnection::BatchDeleteIntents( child_->BatchDeleteIntents(request)); } +StatusOr +IntentsTracingConnection::BatchDeleteIntents( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::v2::BatchDeleteIntentsRequest const& request) { + auto span = internal::MakeSpan( + "dialogflow_es::IntentsConnection::BatchDeleteIntents"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->BatchDeleteIntents(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +IntentsTracingConnection::BatchDeleteIntents( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "dialogflow_es::IntentsConnection::BatchDeleteIntents"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->BatchDeleteIntents( + ExperimentalTag{}, operation)); +} + #endif // GOOGLE_CLOUD_CPP_HAVE_OPENTELEMETRY std::shared_ptr MakeIntentsTracingConnection( diff --git a/google/cloud/dialogflow_es/internal/intents_tracing_connection.h b/google/cloud/dialogflow_es/internal/intents_tracing_connection.h index 0637b0db368d6..e9a315f6d44f0 100644 --- a/google/cloud/dialogflow_es/internal/intents_tracing_connection.h +++ b/google/cloud/dialogflow_es/internal/intents_tracing_connection.h @@ -61,10 +61,28 @@ class IntentsTracingConnection : public dialogflow_es::IntentsConnection { google::cloud::dialogflow::v2::BatchUpdateIntentsRequest const& request) override; + StatusOr BatchUpdateIntents( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::v2::BatchUpdateIntentsRequest const& request) + override; + + future> + BatchUpdateIntents(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> BatchDeleteIntents( google::cloud::dialogflow::v2::BatchDeleteIntentsRequest const& request) override; + StatusOr BatchDeleteIntents( + ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::v2::BatchDeleteIntentsRequest const& request) + override; + + future> BatchDeleteIntents( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + private: std::shared_ptr child_; }; diff --git a/google/cloud/dialogflow_es/knowledge_bases_connection.h b/google/cloud/dialogflow_es/knowledge_bases_connection.h index 0d628d8ca65ad..89e8d3ee1b5fb 100644 --- a/google/cloud/dialogflow_es/knowledge_bases_connection.h +++ b/google/cloud/dialogflow_es/knowledge_bases_connection.h @@ -22,6 +22,7 @@ #include "google/cloud/dialogflow_es/internal/knowledge_bases_retry_traits.h" #include "google/cloud/dialogflow_es/knowledge_bases_connection_idempotency_policy.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/internal/retry_policy_impl.h" #include "google/cloud/options.h" #include "google/cloud/status_or.h" diff --git a/google/cloud/dialogflow_es/mocks/mock_agents_connection.h b/google/cloud/dialogflow_es/mocks/mock_agents_connection.h index 60ac939da4548..f21d8f862ae07 100644 --- a/google/cloud/dialogflow_es/mocks/mock_agents_connection.h +++ b/google/cloud/dialogflow_es/mocks/mock_agents_connection.h @@ -67,22 +67,66 @@ class MockAgentsConnection : public dialogflow_es::AgentsConnection { (google::cloud::dialogflow::v2::TrainAgentRequest const& request), (override)); + MOCK_METHOD(StatusOr, TrainAgent, + (ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::v2::TrainAgentRequest const& request), + (override)); + + MOCK_METHOD(future>, TrainAgent, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, ExportAgent, (google::cloud::dialogflow::v2::ExportAgentRequest const& request), (override)); + MOCK_METHOD( + StatusOr, ExportAgent, + (ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::v2::ExportAgentRequest const& request), + (override)); + + MOCK_METHOD( + future>, + ExportAgent, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, ImportAgent, (google::cloud::dialogflow::v2::ImportAgentRequest const& request), (override)); + MOCK_METHOD( + StatusOr, ImportAgent, + (ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::v2::ImportAgentRequest const& request), + (override)); + + MOCK_METHOD(future>, ImportAgent, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, RestoreAgent, (google::cloud::dialogflow::v2::RestoreAgentRequest const& request), (override)); + MOCK_METHOD( + StatusOr, RestoreAgent, + (ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::v2::RestoreAgentRequest const& request), + (override)); + + MOCK_METHOD(future>, RestoreAgent, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(StatusOr, GetValidationResult, (google::cloud::dialogflow::v2::GetValidationResultRequest const& diff --git a/google/cloud/dialogflow_es/mocks/mock_conversation_datasets_connection.h b/google/cloud/dialogflow_es/mocks/mock_conversation_datasets_connection.h index 4ec6fd46d8c3a..9b80beaf7acd9 100644 --- a/google/cloud/dialogflow_es/mocks/mock_conversation_datasets_connection.h +++ b/google/cloud/dialogflow_es/mocks/mock_conversation_datasets_connection.h @@ -54,6 +54,19 @@ class MockConversationDatasetsConnection request), (override)); + MOCK_METHOD( + StatusOr, CreateConversationDataset, + (ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::v2::CreateConversationDatasetRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + CreateConversationDataset, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr, GetConversationDataset, @@ -75,6 +88,20 @@ class MockConversationDatasetsConnection request), (override)); + MOCK_METHOD( + StatusOr, DeleteConversationDataset, + (ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::v2::DeleteConversationDatasetRequest const& + request), + (override)); + + MOCK_METHOD(future>, + DeleteConversationDataset, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, @@ -82,6 +109,20 @@ class MockConversationDatasetsConnection (google::cloud::dialogflow::v2::ImportConversationDataRequest const& request), (override)); + + MOCK_METHOD( + StatusOr, ImportConversationData, + (ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::v2::ImportConversationDataRequest const& + request), + (override)); + + MOCK_METHOD(future>, + ImportConversationData, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); }; GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END diff --git a/google/cloud/dialogflow_es/mocks/mock_conversation_models_connection.h b/google/cloud/dialogflow_es/mocks/mock_conversation_models_connection.h index 0fec9aacf9b38..b2366254aa7c5 100644 --- a/google/cloud/dialogflow_es/mocks/mock_conversation_models_connection.h +++ b/google/cloud/dialogflow_es/mocks/mock_conversation_models_connection.h @@ -54,6 +54,19 @@ class MockConversationModelsConnection request), (override)); + MOCK_METHOD( + StatusOr, CreateConversationModel, + (ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::v2::CreateConversationModelRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + CreateConversationModel, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(StatusOr, GetConversationModel, (google::cloud::dialogflow::v2::GetConversationModelRequest const& @@ -74,6 +87,20 @@ class MockConversationModelsConnection request), (override)); + MOCK_METHOD( + StatusOr, DeleteConversationModel, + (ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::v2::DeleteConversationModelRequest const& + request), + (override)); + + MOCK_METHOD(future>, + DeleteConversationModel, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, @@ -82,6 +109,20 @@ class MockConversationModelsConnection request), (override)); + MOCK_METHOD( + StatusOr, DeployConversationModel, + (ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::v2::DeployConversationModelRequest const& + request), + (override)); + + MOCK_METHOD(future>, + DeployConversationModel, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, @@ -90,6 +131,20 @@ class MockConversationModelsConnection request), (override)); + MOCK_METHOD( + StatusOr, UndeployConversationModel, + (ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::v2::UndeployConversationModelRequest const& + request), + (override)); + + MOCK_METHOD(future>, + UndeployConversationModel, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr, GetConversationModelEvaluation, @@ -111,6 +166,20 @@ class MockConversationModelsConnection (google::cloud::dialogflow::v2:: CreateConversationModelEvaluationRequest const& request), (override)); + + MOCK_METHOD(StatusOr, + CreateConversationModelEvaluation, + (ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::v2:: + CreateConversationModelEvaluationRequest const& request), + (override)); + + MOCK_METHOD( + future< + StatusOr>, + CreateConversationModelEvaluation, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); }; GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END diff --git a/google/cloud/dialogflow_es/mocks/mock_conversation_profiles_connection.h b/google/cloud/dialogflow_es/mocks/mock_conversation_profiles_connection.h index d7186b7e143e0..c7eb4a17b1bff 100644 --- a/google/cloud/dialogflow_es/mocks/mock_conversation_profiles_connection.h +++ b/google/cloud/dialogflow_es/mocks/mock_conversation_profiles_connection.h @@ -87,12 +87,38 @@ class MockConversationProfilesConnection request), (override)); + MOCK_METHOD( + StatusOr, SetSuggestionFeatureConfig, + (ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::v2::SetSuggestionFeatureConfigRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + SetSuggestionFeatureConfig, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, ClearSuggestionFeatureConfig, (google::cloud::dialogflow::v2::ClearSuggestionFeatureConfigRequest const& request), (override)); + + MOCK_METHOD( + StatusOr, ClearSuggestionFeatureConfig, + (ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::v2::ClearSuggestionFeatureConfigRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + ClearSuggestionFeatureConfig, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); }; GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END diff --git a/google/cloud/dialogflow_es/mocks/mock_documents_connection.h b/google/cloud/dialogflow_es/mocks/mock_documents_connection.h index 49cc34aee385a..c163f8d4a0e10 100644 --- a/google/cloud/dialogflow_es/mocks/mock_documents_connection.h +++ b/google/cloud/dialogflow_es/mocks/mock_documents_connection.h @@ -61,12 +61,36 @@ class MockDocumentsConnection : public dialogflow_es::DocumentsConnection { (google::cloud::dialogflow::v2::CreateDocumentRequest const& request), (override)); + MOCK_METHOD( + StatusOr, CreateDocument, + (ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::v2::CreateDocumentRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateDocument, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, ImportDocuments, (google::cloud::dialogflow::v2::ImportDocumentsRequest const& request), (override)); + MOCK_METHOD( + StatusOr, ImportDocuments, + (ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::v2::ImportDocumentsRequest const& request), + (override)); + + MOCK_METHOD( + future>, + ImportDocuments, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future< StatusOr>, @@ -74,20 +98,69 @@ class MockDocumentsConnection : public dialogflow_es::DocumentsConnection { (google::cloud::dialogflow::v2::DeleteDocumentRequest const& request), (override)); + MOCK_METHOD( + StatusOr, DeleteDocument, + (ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::v2::DeleteDocumentRequest const& request), + (override)); + + MOCK_METHOD( + future< + StatusOr>, + DeleteDocument, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, UpdateDocument, (google::cloud::dialogflow::v2::UpdateDocumentRequest const& request), (override)); + MOCK_METHOD( + StatusOr, UpdateDocument, + (ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::v2::UpdateDocumentRequest const& request), + (override)); + + MOCK_METHOD(future>, + UpdateDocument, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, ReloadDocument, (google::cloud::dialogflow::v2::ReloadDocumentRequest const& request), (override)); + MOCK_METHOD( + StatusOr, ReloadDocument, + (ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::v2::ReloadDocumentRequest const& request), + (override)); + + MOCK_METHOD(future>, + ReloadDocument, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, ExportDocument, (google::cloud::dialogflow::v2::ExportDocumentRequest const& request), (override)); + + MOCK_METHOD( + StatusOr, ExportDocument, + (ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::v2::ExportDocumentRequest const& request), + (override)); + + MOCK_METHOD(future>, + ExportDocument, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); }; GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END diff --git a/google/cloud/dialogflow_es/mocks/mock_entity_types_connection.h b/google/cloud/dialogflow_es/mocks/mock_entity_types_connection.h index 1461b5ea04bbe..b1a8bb66d3a9f 100644 --- a/google/cloud/dialogflow_es/mocks/mock_entity_types_connection.h +++ b/google/cloud/dialogflow_es/mocks/mock_entity_types_connection.h @@ -79,26 +79,86 @@ class MockEntityTypesConnection : public dialogflow_es::EntityTypesConnection { request), (override)); + MOCK_METHOD( + StatusOr, BatchUpdateEntityTypes, + (ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::v2::BatchUpdateEntityTypesRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + BatchUpdateEntityTypes, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, BatchDeleteEntityTypes, (google::cloud::dialogflow::v2::BatchDeleteEntityTypesRequest const& request), (override)); + MOCK_METHOD( + StatusOr, BatchDeleteEntityTypes, + (ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::v2::BatchDeleteEntityTypesRequest const& + request), + (override)); + + MOCK_METHOD(future>, + BatchDeleteEntityTypes, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, BatchCreateEntities, (google::cloud::dialogflow::v2::BatchCreateEntitiesRequest const& request), (override)); + MOCK_METHOD(StatusOr, BatchCreateEntities, + (ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::v2::BatchCreateEntitiesRequest const& + request), + (override)); + + MOCK_METHOD(future>, BatchCreateEntities, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, BatchUpdateEntities, (google::cloud::dialogflow::v2::BatchUpdateEntitiesRequest const& request), (override)); + MOCK_METHOD(StatusOr, BatchUpdateEntities, + (ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::v2::BatchUpdateEntitiesRequest const& + request), + (override)); + + MOCK_METHOD(future>, BatchUpdateEntities, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, BatchDeleteEntities, (google::cloud::dialogflow::v2::BatchDeleteEntitiesRequest const& request), (override)); + + MOCK_METHOD(StatusOr, BatchDeleteEntities, + (ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::v2::BatchDeleteEntitiesRequest const& + request), + (override)); + + MOCK_METHOD(future>, BatchDeleteEntities, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); }; GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END diff --git a/google/cloud/dialogflow_es/mocks/mock_intents_connection.h b/google/cloud/dialogflow_es/mocks/mock_intents_connection.h index 86cb0bf1c7e2e..ae7a71e1aaef2 100644 --- a/google/cloud/dialogflow_es/mocks/mock_intents_connection.h +++ b/google/cloud/dialogflow_es/mocks/mock_intents_connection.h @@ -76,10 +76,34 @@ class MockIntentsConnection : public dialogflow_es::IntentsConnection { (google::cloud::dialogflow::v2::BatchUpdateIntentsRequest const& request), (override)); + MOCK_METHOD( + StatusOr, BatchUpdateIntents, + (ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::v2::BatchUpdateIntentsRequest const& request), + (override)); + + MOCK_METHOD( + future< + StatusOr>, + BatchUpdateIntents, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, BatchDeleteIntents, (google::cloud::dialogflow::v2::BatchDeleteIntentsRequest const& request), (override)); + + MOCK_METHOD( + StatusOr, BatchDeleteIntents, + (ExperimentalTag, NoAwaitTag, + google::cloud::dialogflow::v2::BatchDeleteIntentsRequest const& request), + (override)); + + MOCK_METHOD(future>, BatchDeleteIntents, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); }; GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END diff --git a/google/cloud/dialogflow_es/participants_connection.h b/google/cloud/dialogflow_es/participants_connection.h index a87ef70bb0fd8..34a398106175e 100644 --- a/google/cloud/dialogflow_es/participants_connection.h +++ b/google/cloud/dialogflow_es/participants_connection.h @@ -22,6 +22,7 @@ #include "google/cloud/dialogflow_es/internal/participants_retry_traits.h" #include "google/cloud/dialogflow_es/participants_connection_idempotency_policy.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/internal/async_read_write_stream_impl.h" #include "google/cloud/internal/retry_policy_impl.h" #include "google/cloud/options.h" diff --git a/google/cloud/dialogflow_es/session_entity_types_connection.h b/google/cloud/dialogflow_es/session_entity_types_connection.h index 77c1559d6763d..894fd5e7d4987 100644 --- a/google/cloud/dialogflow_es/session_entity_types_connection.h +++ b/google/cloud/dialogflow_es/session_entity_types_connection.h @@ -22,6 +22,7 @@ #include "google/cloud/dialogflow_es/internal/session_entity_types_retry_traits.h" #include "google/cloud/dialogflow_es/session_entity_types_connection_idempotency_policy.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/internal/retry_policy_impl.h" #include "google/cloud/options.h" #include "google/cloud/status_or.h" diff --git a/google/cloud/dialogflow_es/sessions_connection.h b/google/cloud/dialogflow_es/sessions_connection.h index d217e3bcbefed..9b6b45e0881e0 100644 --- a/google/cloud/dialogflow_es/sessions_connection.h +++ b/google/cloud/dialogflow_es/sessions_connection.h @@ -22,6 +22,7 @@ #include "google/cloud/dialogflow_es/internal/sessions_retry_traits.h" #include "google/cloud/dialogflow_es/sessions_connection_idempotency_policy.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/internal/async_read_write_stream_impl.h" #include "google/cloud/internal/retry_policy_impl.h" #include "google/cloud/options.h" diff --git a/google/cloud/dialogflow_es/versions_connection.h b/google/cloud/dialogflow_es/versions_connection.h index 3250742045d4a..9a3f8616ad18c 100644 --- a/google/cloud/dialogflow_es/versions_connection.h +++ b/google/cloud/dialogflow_es/versions_connection.h @@ -22,6 +22,7 @@ #include "google/cloud/dialogflow_es/internal/versions_retry_traits.h" #include "google/cloud/dialogflow_es/versions_connection_idempotency_policy.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/internal/retry_policy_impl.h" #include "google/cloud/options.h" #include "google/cloud/status_or.h" diff --git a/google/cloud/discoveryengine/v1/completion_connection.cc b/google/cloud/discoveryengine/v1/completion_connection.cc index 683e2c2f12d0b..33a8e52cdc97e 100644 --- a/google/cloud/discoveryengine/v1/completion_connection.cc +++ b/google/cloud/discoveryengine/v1/completion_connection.cc @@ -54,6 +54,25 @@ CompletionServiceConnection::ImportSuggestionDenyListEntries( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +CompletionServiceConnection::ImportSuggestionDenyListEntries( + ExperimentalTag, NoAwaitTag, + google::cloud::discoveryengine::v1:: + ImportSuggestionDenyListEntriesRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +CompletionServiceConnection::ImportSuggestionDenyListEntries( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> CompletionServiceConnection::PurgeSuggestionDenyListEntries( @@ -65,6 +84,25 @@ CompletionServiceConnection::PurgeSuggestionDenyListEntries( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +CompletionServiceConnection::PurgeSuggestionDenyListEntries( + ExperimentalTag, NoAwaitTag, + google::cloud::discoveryengine::v1:: + PurgeSuggestionDenyListEntriesRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +CompletionServiceConnection::PurgeSuggestionDenyListEntries( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + std::shared_ptr MakeCompletionServiceConnection( Options options) { internal::CheckExpectedOptions + ImportSuggestionDenyListEntries( + ExperimentalTag, NoAwaitTag, + google::cloud::discoveryengine::v1:: + ImportSuggestionDenyListEntriesRequest const& request); + + virtual future> + ImportSuggestionDenyListEntries( + ExperimentalTag, google::longrunning::Operation const& operation); + virtual future> PurgeSuggestionDenyListEntries( google::cloud::discoveryengine::v1:: PurgeSuggestionDenyListEntriesRequest const& request); + + virtual StatusOr + PurgeSuggestionDenyListEntries( + ExperimentalTag, NoAwaitTag, + google::cloud::discoveryengine::v1:: + PurgeSuggestionDenyListEntriesRequest const& request); + + virtual future> + PurgeSuggestionDenyListEntries( + ExperimentalTag, google::longrunning::Operation const& operation); }; /** diff --git a/google/cloud/discoveryengine/v1/control_connection.h b/google/cloud/discoveryengine/v1/control_connection.h index 11e0605b4c482..a6b7b75d8d6c7 100644 --- a/google/cloud/discoveryengine/v1/control_connection.h +++ b/google/cloud/discoveryengine/v1/control_connection.h @@ -22,6 +22,7 @@ #include "google/cloud/discoveryengine/v1/control_connection_idempotency_policy.h" #include "google/cloud/discoveryengine/v1/internal/control_retry_traits.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/internal/retry_policy_impl.h" #include "google/cloud/options.h" #include "google/cloud/status_or.h" diff --git a/google/cloud/discoveryengine/v1/conversational_search_connection.h b/google/cloud/discoveryengine/v1/conversational_search_connection.h index 26650950cff14..0baa30748b17b 100644 --- a/google/cloud/discoveryengine/v1/conversational_search_connection.h +++ b/google/cloud/discoveryengine/v1/conversational_search_connection.h @@ -22,6 +22,7 @@ #include "google/cloud/discoveryengine/v1/conversational_search_connection_idempotency_policy.h" #include "google/cloud/discoveryengine/v1/internal/conversational_search_retry_traits.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/internal/retry_policy_impl.h" #include "google/cloud/options.h" #include "google/cloud/status_or.h" diff --git a/google/cloud/discoveryengine/v1/data_store_connection.cc b/google/cloud/discoveryengine/v1/data_store_connection.cc index 34abd992a6a8d..744ab3dae638c 100644 --- a/google/cloud/discoveryengine/v1/data_store_connection.cc +++ b/google/cloud/discoveryengine/v1/data_store_connection.cc @@ -46,6 +46,22 @@ DataStoreServiceConnection::CreateDataStore( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +DataStoreServiceConnection::CreateDataStore( + ExperimentalTag, NoAwaitTag, + google::cloud::discoveryengine::v1::CreateDataStoreRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +DataStoreServiceConnection::CreateDataStore( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr DataStoreServiceConnection::GetDataStore( google::cloud::discoveryengine::v1::GetDataStoreRequest const&) { @@ -68,6 +84,22 @@ DataStoreServiceConnection::DeleteDataStore( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +DataStoreServiceConnection::DeleteDataStore( + ExperimentalTag, NoAwaitTag, + google::cloud::discoveryengine::v1::DeleteDataStoreRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +DataStoreServiceConnection::DeleteDataStore( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr DataStoreServiceConnection::UpdateDataStore( google::cloud::discoveryengine::v1::UpdateDataStoreRequest const&) { diff --git a/google/cloud/discoveryengine/v1/data_store_connection.h b/google/cloud/discoveryengine/v1/data_store_connection.h index f2ef73d0e6a78..ee93794914aec 100644 --- a/google/cloud/discoveryengine/v1/data_store_connection.h +++ b/google/cloud/discoveryengine/v1/data_store_connection.h @@ -22,8 +22,10 @@ #include "google/cloud/discoveryengine/v1/data_store_connection_idempotency_policy.h" #include "google/cloud/discoveryengine/v1/internal/data_store_retry_traits.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/internal/retry_policy_impl.h" +#include "google/cloud/no_await_tag.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" #include "google/cloud/status_or.h" @@ -191,6 +193,15 @@ class DataStoreServiceConnection { google::cloud::discoveryengine::v1::CreateDataStoreRequest const& request); + virtual StatusOr CreateDataStore( + ExperimentalTag, NoAwaitTag, + google::cloud::discoveryengine::v1::CreateDataStoreRequest const& + request); + + virtual future> + CreateDataStore(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StatusOr GetDataStore( google::cloud::discoveryengine::v1::GetDataStoreRequest const& request); @@ -204,6 +215,16 @@ class DataStoreServiceConnection { google::cloud::discoveryengine::v1::DeleteDataStoreRequest const& request); + virtual StatusOr DeleteDataStore( + ExperimentalTag, NoAwaitTag, + google::cloud::discoveryengine::v1::DeleteDataStoreRequest const& + request); + + virtual future< + StatusOr> + DeleteDataStore(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StatusOr UpdateDataStore( google::cloud::discoveryengine::v1::UpdateDataStoreRequest const& diff --git a/google/cloud/discoveryengine/v1/document_connection.cc b/google/cloud/discoveryengine/v1/document_connection.cc index 6cfdb7de0a9c3..73305a279a371 100644 --- a/google/cloud/discoveryengine/v1/document_connection.cc +++ b/google/cloud/discoveryengine/v1/document_connection.cc @@ -77,6 +77,22 @@ DocumentServiceConnection::ImportDocuments( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +DocumentServiceConnection::ImportDocuments( + ExperimentalTag, NoAwaitTag, + google::cloud::discoveryengine::v1::ImportDocumentsRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +DocumentServiceConnection::ImportDocuments( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> DocumentServiceConnection::PurgeDocuments( google::cloud::discoveryengine::v1::PurgeDocumentsRequest const&) { @@ -85,6 +101,22 @@ DocumentServiceConnection::PurgeDocuments( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +DocumentServiceConnection::PurgeDocuments( + ExperimentalTag, NoAwaitTag, + google::cloud::discoveryengine::v1::PurgeDocumentsRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +DocumentServiceConnection::PurgeDocuments( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + std::shared_ptr MakeDocumentServiceConnection( Options options) { internal::CheckExpectedOptions ImportDocuments( + ExperimentalTag, NoAwaitTag, + google::cloud::discoveryengine::v1::ImportDocumentsRequest const& + request); + + virtual future< + StatusOr> + ImportDocuments(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future< StatusOr> PurgeDocuments( google::cloud::discoveryengine::v1::PurgeDocumentsRequest const& request); + + virtual StatusOr PurgeDocuments( + ExperimentalTag, NoAwaitTag, + google::cloud::discoveryengine::v1::PurgeDocumentsRequest const& request); + + virtual future< + StatusOr> + PurgeDocuments(ExperimentalTag, + google::longrunning::Operation const& operation); }; /** diff --git a/google/cloud/discoveryengine/v1/engine_connection.cc b/google/cloud/discoveryengine/v1/engine_connection.cc index 0a8390292fd61..7717d7aef78ac 100644 --- a/google/cloud/discoveryengine/v1/engine_connection.cc +++ b/google/cloud/discoveryengine/v1/engine_connection.cc @@ -46,6 +46,21 @@ EngineServiceConnection::CreateEngine( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr EngineServiceConnection::CreateEngine( + ExperimentalTag, NoAwaitTag, + google::cloud::discoveryengine::v1::CreateEngineRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +EngineServiceConnection::CreateEngine(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> EngineServiceConnection::DeleteEngine( google::cloud::discoveryengine::v1::DeleteEngineRequest const&) { @@ -54,6 +69,21 @@ EngineServiceConnection::DeleteEngine( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr EngineServiceConnection::DeleteEngine( + ExperimentalTag, NoAwaitTag, + google::cloud::discoveryengine::v1::DeleteEngineRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +EngineServiceConnection::DeleteEngine(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr EngineServiceConnection::UpdateEngine( google::cloud::discoveryengine::v1::UpdateEngineRequest const&) { diff --git a/google/cloud/discoveryengine/v1/engine_connection.h b/google/cloud/discoveryengine/v1/engine_connection.h index 7ad139e37f33f..df317048b19e4 100644 --- a/google/cloud/discoveryengine/v1/engine_connection.h +++ b/google/cloud/discoveryengine/v1/engine_connection.h @@ -22,8 +22,10 @@ #include "google/cloud/discoveryengine/v1/engine_connection_idempotency_policy.h" #include "google/cloud/discoveryengine/v1/internal/engine_retry_traits.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/internal/retry_policy_impl.h" +#include "google/cloud/no_await_tag.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" #include "google/cloud/status_or.h" @@ -189,11 +191,28 @@ class EngineServiceConnection { CreateEngine( google::cloud::discoveryengine::v1::CreateEngineRequest const& request); + virtual StatusOr CreateEngine( + ExperimentalTag, NoAwaitTag, + google::cloud::discoveryengine::v1::CreateEngineRequest const& request); + + virtual future> + CreateEngine(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future< StatusOr> DeleteEngine( google::cloud::discoveryengine::v1::DeleteEngineRequest const& request); + virtual StatusOr DeleteEngine( + ExperimentalTag, NoAwaitTag, + google::cloud::discoveryengine::v1::DeleteEngineRequest const& request); + + virtual future< + StatusOr> + DeleteEngine(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StatusOr UpdateEngine( google::cloud::discoveryengine::v1::UpdateEngineRequest const& request); diff --git a/google/cloud/discoveryengine/v1/grounded_generation_connection.h b/google/cloud/discoveryengine/v1/grounded_generation_connection.h index 9bb007268ba8b..bc0eb935e41a8 100644 --- a/google/cloud/discoveryengine/v1/grounded_generation_connection.h +++ b/google/cloud/discoveryengine/v1/grounded_generation_connection.h @@ -22,6 +22,7 @@ #include "google/cloud/discoveryengine/v1/grounded_generation_connection_idempotency_policy.h" #include "google/cloud/discoveryengine/v1/internal/grounded_generation_retry_traits.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/internal/retry_policy_impl.h" #include "google/cloud/options.h" #include "google/cloud/status_or.h" diff --git a/google/cloud/discoveryengine/v1/internal/completion_connection_impl.cc b/google/cloud/discoveryengine/v1/internal/completion_connection_impl.cc index 980ee1623a133..952bba6bf7769 100644 --- a/google/cloud/discoveryengine/v1/internal/completion_connection_impl.cc +++ b/google/cloud/discoveryengine/v1/internal/completion_connection_impl.cc @@ -130,6 +130,66 @@ CompletionServiceConnectionImpl::ImportSuggestionDenyListEntries( polling_policy(*current), __func__); } +StatusOr +CompletionServiceConnectionImpl::ImportSuggestionDenyListEntries( + ExperimentalTag, NoAwaitTag, + google::cloud::discoveryengine::v1:: + ImportSuggestionDenyListEntriesRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->ImportSuggestionDenyListEntries(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::discoveryengine::v1:: + ImportSuggestionDenyListEntriesRequest const& request) { + return stub_->ImportSuggestionDenyListEntries(context, options, + request); + }, + *current, request, __func__); +} + +future> +CompletionServiceConnectionImpl::ImportSuggestionDenyListEntries( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to ImportSuggestionDenyListEntries", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::discoveryengine::v1:: + ImportSuggestionDenyListEntriesResponse>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::discoveryengine::v1:: + ImportSuggestionDenyListEntriesResponse>, + polling_policy(*current), __func__); +} + future> CompletionServiceConnectionImpl::PurgeSuggestionDenyListEntries( @@ -174,6 +234,65 @@ CompletionServiceConnectionImpl::PurgeSuggestionDenyListEntries( polling_policy(*current), __func__); } +StatusOr +CompletionServiceConnectionImpl::PurgeSuggestionDenyListEntries( + ExperimentalTag, NoAwaitTag, + google::cloud::discoveryengine::v1:: + PurgeSuggestionDenyListEntriesRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->PurgeSuggestionDenyListEntries(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::discoveryengine::v1:: + PurgeSuggestionDenyListEntriesRequest const& request) { + return stub_->PurgeSuggestionDenyListEntries(context, options, request); + }, + *current, request, __func__); +} + +future> +CompletionServiceConnectionImpl::PurgeSuggestionDenyListEntries( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to PurgeSuggestionDenyListEntries", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::discoveryengine::v1:: + PurgeSuggestionDenyListEntriesResponse>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::discoveryengine::v1:: + PurgeSuggestionDenyListEntriesResponse>, + polling_policy(*current), __func__); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace discoveryengine_v1_internal } // namespace cloud diff --git a/google/cloud/discoveryengine/v1/internal/completion_connection_impl.h b/google/cloud/discoveryengine/v1/internal/completion_connection_impl.h index e23575cccbf97..d0a66f9585364 100644 --- a/google/cloud/discoveryengine/v1/internal/completion_connection_impl.h +++ b/google/cloud/discoveryengine/v1/internal/completion_connection_impl.h @@ -61,12 +61,34 @@ class CompletionServiceConnectionImpl google::cloud::discoveryengine::v1:: ImportSuggestionDenyListEntriesRequest const& request) override; + StatusOr ImportSuggestionDenyListEntries( + ExperimentalTag, NoAwaitTag, + google::cloud::discoveryengine::v1:: + ImportSuggestionDenyListEntriesRequest const& request) override; + + future> + ImportSuggestionDenyListEntries( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> PurgeSuggestionDenyListEntries( google::cloud::discoveryengine::v1:: PurgeSuggestionDenyListEntriesRequest const& request) override; + StatusOr PurgeSuggestionDenyListEntries( + ExperimentalTag, NoAwaitTag, + google::cloud::discoveryengine::v1:: + PurgeSuggestionDenyListEntriesRequest const& request) override; + + future> + PurgeSuggestionDenyListEntries( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + private: std::unique_ptr background_; std::shared_ptr stub_; diff --git a/google/cloud/discoveryengine/v1/internal/completion_tracing_connection.cc b/google/cloud/discoveryengine/v1/internal/completion_tracing_connection.cc index 22b0ddb706424..7ce3fd1299ad1 100644 --- a/google/cloud/discoveryengine/v1/internal/completion_tracing_connection.cc +++ b/google/cloud/discoveryengine/v1/internal/completion_tracing_connection.cc @@ -54,6 +54,33 @@ CompletionServiceTracingConnection::ImportSuggestionDenyListEntries( child_->ImportSuggestionDenyListEntries(request)); } +StatusOr +CompletionServiceTracingConnection::ImportSuggestionDenyListEntries( + ExperimentalTag, NoAwaitTag, + google::cloud::discoveryengine::v1:: + ImportSuggestionDenyListEntriesRequest const& request) { + auto span = internal::MakeSpan( + "discoveryengine_v1::CompletionServiceConnection::" + "ImportSuggestionDenyListEntries"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->ImportSuggestionDenyListEntries(ExperimentalTag{}, + NoAwaitTag{}, request)); +} + +future> +CompletionServiceTracingConnection::ImportSuggestionDenyListEntries( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "discoveryengine_v1::CompletionServiceConnection::" + "ImportSuggestionDenyListEntries"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), + child_->ImportSuggestionDenyListEntries(ExperimentalTag{}, operation)); +} + future> CompletionServiceTracingConnection::PurgeSuggestionDenyListEntries( @@ -67,6 +94,33 @@ CompletionServiceTracingConnection::PurgeSuggestionDenyListEntries( child_->PurgeSuggestionDenyListEntries(request)); } +StatusOr +CompletionServiceTracingConnection::PurgeSuggestionDenyListEntries( + ExperimentalTag, NoAwaitTag, + google::cloud::discoveryengine::v1:: + PurgeSuggestionDenyListEntriesRequest const& request) { + auto span = internal::MakeSpan( + "discoveryengine_v1::CompletionServiceConnection::" + "PurgeSuggestionDenyListEntries"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->PurgeSuggestionDenyListEntries(ExperimentalTag{}, + NoAwaitTag{}, request)); +} + +future> +CompletionServiceTracingConnection::PurgeSuggestionDenyListEntries( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "discoveryengine_v1::CompletionServiceConnection::" + "PurgeSuggestionDenyListEntries"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), + child_->PurgeSuggestionDenyListEntries(ExperimentalTag{}, operation)); +} + #endif // GOOGLE_CLOUD_CPP_HAVE_OPENTELEMETRY std::shared_ptr diff --git a/google/cloud/discoveryengine/v1/internal/completion_tracing_connection.h b/google/cloud/discoveryengine/v1/internal/completion_tracing_connection.h index f0d6f5fb88a5b..3e7f1780c84bd 100644 --- a/google/cloud/discoveryengine/v1/internal/completion_tracing_connection.h +++ b/google/cloud/discoveryengine/v1/internal/completion_tracing_connection.h @@ -50,12 +50,34 @@ class CompletionServiceTracingConnection google::cloud::discoveryengine::v1:: ImportSuggestionDenyListEntriesRequest const& request) override; + StatusOr ImportSuggestionDenyListEntries( + ExperimentalTag, NoAwaitTag, + google::cloud::discoveryengine::v1:: + ImportSuggestionDenyListEntriesRequest const& request) override; + + future> + ImportSuggestionDenyListEntries( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> PurgeSuggestionDenyListEntries( google::cloud::discoveryengine::v1:: PurgeSuggestionDenyListEntriesRequest const& request) override; + StatusOr PurgeSuggestionDenyListEntries( + ExperimentalTag, NoAwaitTag, + google::cloud::discoveryengine::v1:: + PurgeSuggestionDenyListEntriesRequest const& request) override; + + future> + PurgeSuggestionDenyListEntries( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + private: std::shared_ptr child_; }; diff --git a/google/cloud/discoveryengine/v1/internal/data_store_connection_impl.cc b/google/cloud/discoveryengine/v1/internal/data_store_connection_impl.cc index bad8811e61bda..860e44116ddd8 100644 --- a/google/cloud/discoveryengine/v1/internal/data_store_connection_impl.cc +++ b/google/cloud/discoveryengine/v1/internal/data_store_connection_impl.cc @@ -108,6 +108,60 @@ DataStoreServiceConnectionImpl::CreateDataStore( polling_policy(*current), __func__); } +StatusOr +DataStoreServiceConnectionImpl::CreateDataStore( + ExperimentalTag, NoAwaitTag, + google::cloud::discoveryengine::v1::CreateDataStoreRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateDataStore(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::discoveryengine::v1::CreateDataStoreRequest const& + request) { + return stub_->CreateDataStore(context, options, request); + }, + *current, request, __func__); +} + +future> +DataStoreServiceConnectionImpl::CreateDataStore( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to CreateDataStore", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::discoveryengine::v1::DataStore>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::discoveryengine::v1::DataStore>, + polling_policy(*current), __func__); +} + StatusOr DataStoreServiceConnectionImpl::GetDataStore( google::cloud::discoveryengine::v1::GetDataStoreRequest const& request) { @@ -198,6 +252,60 @@ DataStoreServiceConnectionImpl::DeleteDataStore( polling_policy(*current), __func__); } +StatusOr +DataStoreServiceConnectionImpl::DeleteDataStore( + ExperimentalTag, NoAwaitTag, + google::cloud::discoveryengine::v1::DeleteDataStoreRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteDataStore(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::discoveryengine::v1::DeleteDataStoreRequest const& + request) { + return stub_->DeleteDataStore(context, options, request); + }, + *current, request, __func__); +} + +future> +DataStoreServiceConnectionImpl::DeleteDataStore( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteDataStore", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::discoveryengine::v1::DeleteDataStoreMetadata>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::cloud::discoveryengine::v1::DeleteDataStoreMetadata>, + polling_policy(*current), __func__); +} + StatusOr DataStoreServiceConnectionImpl::UpdateDataStore( google::cloud::discoveryengine::v1::UpdateDataStoreRequest const& request) { diff --git a/google/cloud/discoveryengine/v1/internal/data_store_connection_impl.h b/google/cloud/discoveryengine/v1/internal/data_store_connection_impl.h index 5a072fe6722ca..5a75f8df6cb06 100644 --- a/google/cloud/discoveryengine/v1/internal/data_store_connection_impl.h +++ b/google/cloud/discoveryengine/v1/internal/data_store_connection_impl.h @@ -57,6 +57,15 @@ class DataStoreServiceConnectionImpl google::cloud::discoveryengine::v1::CreateDataStoreRequest const& request) override; + StatusOr CreateDataStore( + ExperimentalTag, NoAwaitTag, + google::cloud::discoveryengine::v1::CreateDataStoreRequest const& request) + override; + + future> + CreateDataStore(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetDataStore( google::cloud::discoveryengine::v1::GetDataStoreRequest const& request) override; @@ -70,6 +79,15 @@ class DataStoreServiceConnectionImpl google::cloud::discoveryengine::v1::DeleteDataStoreRequest const& request) override; + StatusOr DeleteDataStore( + ExperimentalTag, NoAwaitTag, + google::cloud::discoveryengine::v1::DeleteDataStoreRequest const& request) + override; + + future> + DeleteDataStore(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr UpdateDataStore( google::cloud::discoveryengine::v1::UpdateDataStoreRequest const& request) override; diff --git a/google/cloud/discoveryengine/v1/internal/data_store_tracing_connection.cc b/google/cloud/discoveryengine/v1/internal/data_store_tracing_connection.cc index 1a7972ca1d69f..2aa3191ef2340 100644 --- a/google/cloud/discoveryengine/v1/internal/data_store_tracing_connection.cc +++ b/google/cloud/discoveryengine/v1/internal/data_store_tracing_connection.cc @@ -42,6 +42,27 @@ DataStoreServiceTracingConnection::CreateDataStore( return internal::EndSpan(std::move(span), child_->CreateDataStore(request)); } +StatusOr +DataStoreServiceTracingConnection::CreateDataStore( + ExperimentalTag, NoAwaitTag, + google::cloud::discoveryengine::v1::CreateDataStoreRequest const& request) { + auto span = internal::MakeSpan( + "discoveryengine_v1::DataStoreServiceConnection::CreateDataStore"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->CreateDataStore(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +DataStoreServiceTracingConnection::CreateDataStore( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "discoveryengine_v1::DataStoreServiceConnection::CreateDataStore"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->CreateDataStore(ExperimentalTag{}, operation)); +} + StatusOr DataStoreServiceTracingConnection::GetDataStore( google::cloud::discoveryengine::v1::GetDataStoreRequest const& request) { @@ -72,6 +93,27 @@ DataStoreServiceTracingConnection::DeleteDataStore( return internal::EndSpan(std::move(span), child_->DeleteDataStore(request)); } +StatusOr +DataStoreServiceTracingConnection::DeleteDataStore( + ExperimentalTag, NoAwaitTag, + google::cloud::discoveryengine::v1::DeleteDataStoreRequest const& request) { + auto span = internal::MakeSpan( + "discoveryengine_v1::DataStoreServiceConnection::DeleteDataStore"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->DeleteDataStore(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +DataStoreServiceTracingConnection::DeleteDataStore( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "discoveryengine_v1::DataStoreServiceConnection::DeleteDataStore"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->DeleteDataStore(ExperimentalTag{}, operation)); +} + StatusOr DataStoreServiceTracingConnection::UpdateDataStore( google::cloud::discoveryengine::v1::UpdateDataStoreRequest const& request) { diff --git a/google/cloud/discoveryengine/v1/internal/data_store_tracing_connection.h b/google/cloud/discoveryengine/v1/internal/data_store_tracing_connection.h index 344c45fc9000a..ddb2d607093d2 100644 --- a/google/cloud/discoveryengine/v1/internal/data_store_tracing_connection.h +++ b/google/cloud/discoveryengine/v1/internal/data_store_tracing_connection.h @@ -45,6 +45,15 @@ class DataStoreServiceTracingConnection google::cloud::discoveryengine::v1::CreateDataStoreRequest const& request) override; + StatusOr CreateDataStore( + ExperimentalTag, NoAwaitTag, + google::cloud::discoveryengine::v1::CreateDataStoreRequest const& request) + override; + + future> + CreateDataStore(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetDataStore( google::cloud::discoveryengine::v1::GetDataStoreRequest const& request) override; @@ -58,6 +67,15 @@ class DataStoreServiceTracingConnection google::cloud::discoveryengine::v1::DeleteDataStoreRequest const& request) override; + StatusOr DeleteDataStore( + ExperimentalTag, NoAwaitTag, + google::cloud::discoveryengine::v1::DeleteDataStoreRequest const& request) + override; + + future> + DeleteDataStore(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr UpdateDataStore( google::cloud::discoveryengine::v1::UpdateDataStoreRequest const& request) override; diff --git a/google/cloud/discoveryengine/v1/internal/document_connection_impl.cc b/google/cloud/discoveryengine/v1/internal/document_connection_impl.cc index 58e85333f543d..552d33ed27fec 100644 --- a/google/cloud/discoveryengine/v1/internal/document_connection_impl.cc +++ b/google/cloud/discoveryengine/v1/internal/document_connection_impl.cc @@ -202,6 +202,60 @@ DocumentServiceConnectionImpl::ImportDocuments( polling_policy(*current), __func__); } +StatusOr +DocumentServiceConnectionImpl::ImportDocuments( + ExperimentalTag, NoAwaitTag, + google::cloud::discoveryengine::v1::ImportDocumentsRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->ImportDocuments(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::discoveryengine::v1::ImportDocumentsRequest const& + request) { + return stub_->ImportDocuments(context, options, request); + }, + *current, request, __func__); +} + +future> +DocumentServiceConnectionImpl::ImportDocuments( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to ImportDocuments", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::discoveryengine::v1::ImportDocumentsResponse>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::discoveryengine::v1::ImportDocumentsResponse>, + polling_policy(*current), __func__); +} + future> DocumentServiceConnectionImpl::PurgeDocuments( google::cloud::discoveryengine::v1::PurgeDocumentsRequest const& request) { @@ -242,6 +296,60 @@ DocumentServiceConnectionImpl::PurgeDocuments( polling_policy(*current), __func__); } +StatusOr +DocumentServiceConnectionImpl::PurgeDocuments( + ExperimentalTag, NoAwaitTag, + google::cloud::discoveryengine::v1::PurgeDocumentsRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->PurgeDocuments(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::discoveryengine::v1::PurgeDocumentsRequest const& + request) { + return stub_->PurgeDocuments(context, options, request); + }, + *current, request, __func__); +} + +future> +DocumentServiceConnectionImpl::PurgeDocuments( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to PurgeDocuments", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::discoveryengine::v1::PurgeDocumentsResponse>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::discoveryengine::v1::PurgeDocumentsResponse>, + polling_policy(*current), __func__); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace discoveryengine_v1_internal } // namespace cloud diff --git a/google/cloud/discoveryengine/v1/internal/document_connection_impl.h b/google/cloud/discoveryengine/v1/internal/document_connection_impl.h index 42f7049f13752..9c0323948da05 100644 --- a/google/cloud/discoveryengine/v1/internal/document_connection_impl.h +++ b/google/cloud/discoveryengine/v1/internal/document_connection_impl.h @@ -77,11 +77,29 @@ class DocumentServiceConnectionImpl google::cloud::discoveryengine::v1::ImportDocumentsRequest const& request) override; + StatusOr ImportDocuments( + ExperimentalTag, NoAwaitTag, + google::cloud::discoveryengine::v1::ImportDocumentsRequest const& request) + override; + + future> + ImportDocuments(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> PurgeDocuments( google::cloud::discoveryengine::v1::PurgeDocumentsRequest const& request) override; + StatusOr PurgeDocuments( + ExperimentalTag, NoAwaitTag, + google::cloud::discoveryengine::v1::PurgeDocumentsRequest const& request) + override; + + future> + PurgeDocuments(ExperimentalTag, + google::longrunning::Operation const& operation) override; + private: std::unique_ptr background_; std::shared_ptr stub_; diff --git a/google/cloud/discoveryengine/v1/internal/document_tracing_connection.cc b/google/cloud/discoveryengine/v1/internal/document_tracing_connection.cc index f5210d0308ce8..98eff0d05c9b2 100644 --- a/google/cloud/discoveryengine/v1/internal/document_tracing_connection.cc +++ b/google/cloud/discoveryengine/v1/internal/document_tracing_connection.cc @@ -89,6 +89,27 @@ DocumentServiceTracingConnection::ImportDocuments( return internal::EndSpan(std::move(span), child_->ImportDocuments(request)); } +StatusOr +DocumentServiceTracingConnection::ImportDocuments( + ExperimentalTag, NoAwaitTag, + google::cloud::discoveryengine::v1::ImportDocumentsRequest const& request) { + auto span = internal::MakeSpan( + "discoveryengine_v1::DocumentServiceConnection::ImportDocuments"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->ImportDocuments(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +DocumentServiceTracingConnection::ImportDocuments( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "discoveryengine_v1::DocumentServiceConnection::ImportDocuments"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->ImportDocuments(ExperimentalTag{}, operation)); +} + future> DocumentServiceTracingConnection::PurgeDocuments( google::cloud::discoveryengine::v1::PurgeDocumentsRequest const& request) { @@ -98,6 +119,27 @@ DocumentServiceTracingConnection::PurgeDocuments( return internal::EndSpan(std::move(span), child_->PurgeDocuments(request)); } +StatusOr +DocumentServiceTracingConnection::PurgeDocuments( + ExperimentalTag, NoAwaitTag, + google::cloud::discoveryengine::v1::PurgeDocumentsRequest const& request) { + auto span = internal::MakeSpan( + "discoveryengine_v1::DocumentServiceConnection::PurgeDocuments"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->PurgeDocuments(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +DocumentServiceTracingConnection::PurgeDocuments( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "discoveryengine_v1::DocumentServiceConnection::PurgeDocuments"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->PurgeDocuments(ExperimentalTag{}, operation)); +} + #endif // GOOGLE_CLOUD_CPP_HAVE_OPENTELEMETRY std::shared_ptr diff --git a/google/cloud/discoveryengine/v1/internal/document_tracing_connection.h b/google/cloud/discoveryengine/v1/internal/document_tracing_connection.h index 517782ede0428..af38e0b5c1d77 100644 --- a/google/cloud/discoveryengine/v1/internal/document_tracing_connection.h +++ b/google/cloud/discoveryengine/v1/internal/document_tracing_connection.h @@ -65,11 +65,29 @@ class DocumentServiceTracingConnection google::cloud::discoveryengine::v1::ImportDocumentsRequest const& request) override; + StatusOr ImportDocuments( + ExperimentalTag, NoAwaitTag, + google::cloud::discoveryengine::v1::ImportDocumentsRequest const& request) + override; + + future> + ImportDocuments(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> PurgeDocuments( google::cloud::discoveryengine::v1::PurgeDocumentsRequest const& request) override; + StatusOr PurgeDocuments( + ExperimentalTag, NoAwaitTag, + google::cloud::discoveryengine::v1::PurgeDocumentsRequest const& request) + override; + + future> + PurgeDocuments(ExperimentalTag, + google::longrunning::Operation const& operation) override; + private: std::shared_ptr child_; }; diff --git a/google/cloud/discoveryengine/v1/internal/engine_connection_impl.cc b/google/cloud/discoveryengine/v1/internal/engine_connection_impl.cc index 0971d55603121..9f621a4dadb2a 100644 --- a/google/cloud/discoveryengine/v1/internal/engine_connection_impl.cc +++ b/google/cloud/discoveryengine/v1/internal/engine_connection_impl.cc @@ -107,6 +107,60 @@ EngineServiceConnectionImpl::CreateEngine( polling_policy(*current), __func__); } +StatusOr +EngineServiceConnectionImpl::CreateEngine( + ExperimentalTag, NoAwaitTag, + google::cloud::discoveryengine::v1::CreateEngineRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateEngine(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::discoveryengine::v1::CreateEngineRequest const& + request) { + return stub_->CreateEngine(context, options, request); + }, + *current, request, __func__); +} + +future> +EngineServiceConnectionImpl::CreateEngine( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to CreateEngine", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::discoveryengine::v1::Engine>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::discoveryengine::v1::Engine>, + polling_policy(*current), __func__); +} + future> EngineServiceConnectionImpl::DeleteEngine( google::cloud::discoveryengine::v1::DeleteEngineRequest const& request) { @@ -147,6 +201,60 @@ EngineServiceConnectionImpl::DeleteEngine( polling_policy(*current), __func__); } +StatusOr +EngineServiceConnectionImpl::DeleteEngine( + ExperimentalTag, NoAwaitTag, + google::cloud::discoveryengine::v1::DeleteEngineRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteEngine(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::discoveryengine::v1::DeleteEngineRequest const& + request) { + return stub_->DeleteEngine(context, options, request); + }, + *current, request, __func__); +} + +future> +EngineServiceConnectionImpl::DeleteEngine( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteEngine", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::discoveryengine::v1::DeleteEngineMetadata>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::cloud::discoveryengine::v1::DeleteEngineMetadata>, + polling_policy(*current), __func__); +} + StatusOr EngineServiceConnectionImpl::UpdateEngine( google::cloud::discoveryengine::v1::UpdateEngineRequest const& request) { diff --git a/google/cloud/discoveryengine/v1/internal/engine_connection_impl.h b/google/cloud/discoveryengine/v1/internal/engine_connection_impl.h index eccf678b721ea..e6a07725d5b97 100644 --- a/google/cloud/discoveryengine/v1/internal/engine_connection_impl.h +++ b/google/cloud/discoveryengine/v1/internal/engine_connection_impl.h @@ -56,10 +56,28 @@ class EngineServiceConnectionImpl google::cloud::discoveryengine::v1::CreateEngineRequest const& request) override; + StatusOr CreateEngine( + ExperimentalTag, NoAwaitTag, + google::cloud::discoveryengine::v1::CreateEngineRequest const& request) + override; + + future> CreateEngine( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteEngine(google::cloud::discoveryengine::v1::DeleteEngineRequest const& request) override; + StatusOr DeleteEngine( + ExperimentalTag, NoAwaitTag, + google::cloud::discoveryengine::v1::DeleteEngineRequest const& request) + override; + + future> + DeleteEngine(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr UpdateEngine( google::cloud::discoveryengine::v1::UpdateEngineRequest const& request) override; diff --git a/google/cloud/discoveryengine/v1/internal/engine_tracing_connection.cc b/google/cloud/discoveryengine/v1/internal/engine_tracing_connection.cc index ee4203a562c9a..c9af2306f0e86 100644 --- a/google/cloud/discoveryengine/v1/internal/engine_tracing_connection.cc +++ b/google/cloud/discoveryengine/v1/internal/engine_tracing_connection.cc @@ -42,6 +42,27 @@ EngineServiceTracingConnection::CreateEngine( return internal::EndSpan(std::move(span), child_->CreateEngine(request)); } +StatusOr +EngineServiceTracingConnection::CreateEngine( + ExperimentalTag, NoAwaitTag, + google::cloud::discoveryengine::v1::CreateEngineRequest const& request) { + auto span = internal::MakeSpan( + "discoveryengine_v1::EngineServiceConnection::CreateEngine"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->CreateEngine(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +EngineServiceTracingConnection::CreateEngine( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "discoveryengine_v1::EngineServiceConnection::CreateEngine"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->CreateEngine(ExperimentalTag{}, operation)); +} + future> EngineServiceTracingConnection::DeleteEngine( google::cloud::discoveryengine::v1::DeleteEngineRequest const& request) { @@ -51,6 +72,27 @@ EngineServiceTracingConnection::DeleteEngine( return internal::EndSpan(std::move(span), child_->DeleteEngine(request)); } +StatusOr +EngineServiceTracingConnection::DeleteEngine( + ExperimentalTag, NoAwaitTag, + google::cloud::discoveryengine::v1::DeleteEngineRequest const& request) { + auto span = internal::MakeSpan( + "discoveryengine_v1::EngineServiceConnection::DeleteEngine"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->DeleteEngine(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +EngineServiceTracingConnection::DeleteEngine( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "discoveryengine_v1::EngineServiceConnection::DeleteEngine"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->DeleteEngine(ExperimentalTag{}, operation)); +} + StatusOr EngineServiceTracingConnection::UpdateEngine( google::cloud::discoveryengine::v1::UpdateEngineRequest const& request) { diff --git a/google/cloud/discoveryengine/v1/internal/engine_tracing_connection.h b/google/cloud/discoveryengine/v1/internal/engine_tracing_connection.h index ab724d3b7ffc3..3194cdf922288 100644 --- a/google/cloud/discoveryengine/v1/internal/engine_tracing_connection.h +++ b/google/cloud/discoveryengine/v1/internal/engine_tracing_connection.h @@ -44,10 +44,28 @@ class EngineServiceTracingConnection google::cloud::discoveryengine::v1::CreateEngineRequest const& request) override; + StatusOr CreateEngine( + ExperimentalTag, NoAwaitTag, + google::cloud::discoveryengine::v1::CreateEngineRequest const& request) + override; + + future> CreateEngine( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteEngine(google::cloud::discoveryengine::v1::DeleteEngineRequest const& request) override; + StatusOr DeleteEngine( + ExperimentalTag, NoAwaitTag, + google::cloud::discoveryengine::v1::DeleteEngineRequest const& request) + override; + + future> + DeleteEngine(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr UpdateEngine( google::cloud::discoveryengine::v1::UpdateEngineRequest const& request) override; diff --git a/google/cloud/discoveryengine/v1/internal/project_connection_impl.cc b/google/cloud/discoveryengine/v1/internal/project_connection_impl.cc index 83acea47824de..276555ca2ad0b 100644 --- a/google/cloud/discoveryengine/v1/internal/project_connection_impl.cc +++ b/google/cloud/discoveryengine/v1/internal/project_connection_impl.cc @@ -108,6 +108,61 @@ ProjectServiceConnectionImpl::ProvisionProject( polling_policy(*current), __func__); } +StatusOr +ProjectServiceConnectionImpl::ProvisionProject( + ExperimentalTag, NoAwaitTag, + google::cloud::discoveryengine::v1::ProvisionProjectRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->ProvisionProject(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::discoveryengine::v1::ProvisionProjectRequest const& + request) { + return stub_->ProvisionProject(context, options, request); + }, + *current, request, __func__); +} + +future> +ProjectServiceConnectionImpl::ProvisionProject( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to ProvisionProject", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::discoveryengine::v1::Project>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::discoveryengine::v1::Project>, + polling_policy(*current), __func__); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace discoveryengine_v1_internal } // namespace cloud diff --git a/google/cloud/discoveryengine/v1/internal/project_connection_impl.h b/google/cloud/discoveryengine/v1/internal/project_connection_impl.h index 92123a3933f41..cabc4c0a90cd3 100644 --- a/google/cloud/discoveryengine/v1/internal/project_connection_impl.h +++ b/google/cloud/discoveryengine/v1/internal/project_connection_impl.h @@ -56,6 +56,15 @@ class ProjectServiceConnectionImpl google::cloud::discoveryengine::v1::ProvisionProjectRequest const& request) override; + StatusOr ProvisionProject( + ExperimentalTag, NoAwaitTag, + google::cloud::discoveryengine::v1::ProvisionProjectRequest const& + request) override; + + future> + ProvisionProject(ExperimentalTag, + google::longrunning::Operation const& operation) override; + private: std::unique_ptr background_; std::shared_ptr stub_; diff --git a/google/cloud/discoveryengine/v1/internal/project_tracing_connection.cc b/google/cloud/discoveryengine/v1/internal/project_tracing_connection.cc index a653990b2d8f1..4c0a5177b5b78 100644 --- a/google/cloud/discoveryengine/v1/internal/project_tracing_connection.cc +++ b/google/cloud/discoveryengine/v1/internal/project_tracing_connection.cc @@ -42,6 +42,29 @@ ProjectServiceTracingConnection::ProvisionProject( return internal::EndSpan(std::move(span), child_->ProvisionProject(request)); } +StatusOr +ProjectServiceTracingConnection::ProvisionProject( + ExperimentalTag, NoAwaitTag, + google::cloud::discoveryengine::v1::ProvisionProjectRequest const& + request) { + auto span = internal::MakeSpan( + "discoveryengine_v1::ProjectServiceConnection::ProvisionProject"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->ProvisionProject(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +ProjectServiceTracingConnection::ProvisionProject( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "discoveryengine_v1::ProjectServiceConnection::ProvisionProject"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->ProvisionProject(ExperimentalTag{}, operation)); +} + #endif // GOOGLE_CLOUD_CPP_HAVE_OPENTELEMETRY std::shared_ptr diff --git a/google/cloud/discoveryengine/v1/internal/project_tracing_connection.h b/google/cloud/discoveryengine/v1/internal/project_tracing_connection.h index 69658913fc61a..7c3115af837f0 100644 --- a/google/cloud/discoveryengine/v1/internal/project_tracing_connection.h +++ b/google/cloud/discoveryengine/v1/internal/project_tracing_connection.h @@ -45,6 +45,15 @@ class ProjectServiceTracingConnection google::cloud::discoveryengine::v1::ProvisionProjectRequest const& request) override; + StatusOr ProvisionProject( + ExperimentalTag, NoAwaitTag, + google::cloud::discoveryengine::v1::ProvisionProjectRequest const& + request) override; + + future> + ProvisionProject(ExperimentalTag, + google::longrunning::Operation const& operation) override; + private: std::shared_ptr child_; }; diff --git a/google/cloud/discoveryengine/v1/internal/schema_connection_impl.cc b/google/cloud/discoveryengine/v1/internal/schema_connection_impl.cc index e2ff8a4c276c2..0982fdfd1fa28 100644 --- a/google/cloud/discoveryengine/v1/internal/schema_connection_impl.cc +++ b/google/cloud/discoveryengine/v1/internal/schema_connection_impl.cc @@ -156,6 +156,60 @@ SchemaServiceConnectionImpl::CreateSchema( polling_policy(*current), __func__); } +StatusOr +SchemaServiceConnectionImpl::CreateSchema( + ExperimentalTag, NoAwaitTag, + google::cloud::discoveryengine::v1::CreateSchemaRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateSchema(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::discoveryengine::v1::CreateSchemaRequest const& + request) { + return stub_->CreateSchema(context, options, request); + }, + *current, request, __func__); +} + +future> +SchemaServiceConnectionImpl::CreateSchema( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to CreateSchema", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::discoveryengine::v1::Schema>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::discoveryengine::v1::Schema>, + polling_policy(*current), __func__); +} + future> SchemaServiceConnectionImpl::UpdateSchema( google::cloud::discoveryengine::v1::UpdateSchemaRequest const& request) { @@ -196,6 +250,60 @@ SchemaServiceConnectionImpl::UpdateSchema( polling_policy(*current), __func__); } +StatusOr +SchemaServiceConnectionImpl::UpdateSchema( + ExperimentalTag, NoAwaitTag, + google::cloud::discoveryengine::v1::UpdateSchemaRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UpdateSchema(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::discoveryengine::v1::UpdateSchemaRequest const& + request) { + return stub_->UpdateSchema(context, options, request); + }, + *current, request, __func__); +} + +future> +SchemaServiceConnectionImpl::UpdateSchema( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to UpdateSchema", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::discoveryengine::v1::Schema>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::discoveryengine::v1::Schema>, + polling_policy(*current), __func__); +} + future> SchemaServiceConnectionImpl::DeleteSchema( google::cloud::discoveryengine::v1::DeleteSchemaRequest const& request) { @@ -236,6 +344,60 @@ SchemaServiceConnectionImpl::DeleteSchema( polling_policy(*current), __func__); } +StatusOr +SchemaServiceConnectionImpl::DeleteSchema( + ExperimentalTag, NoAwaitTag, + google::cloud::discoveryengine::v1::DeleteSchemaRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteSchema(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::discoveryengine::v1::DeleteSchemaRequest const& + request) { + return stub_->DeleteSchema(context, options, request); + }, + *current, request, __func__); +} + +future> +SchemaServiceConnectionImpl::DeleteSchema( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteSchema", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::discoveryengine::v1::DeleteSchemaMetadata>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::cloud::discoveryengine::v1::DeleteSchemaMetadata>, + polling_policy(*current), __func__); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace discoveryengine_v1_internal } // namespace cloud diff --git a/google/cloud/discoveryengine/v1/internal/schema_connection_impl.h b/google/cloud/discoveryengine/v1/internal/schema_connection_impl.h index 02843867cc402..fdbfd0f518ae7 100644 --- a/google/cloud/discoveryengine/v1/internal/schema_connection_impl.h +++ b/google/cloud/discoveryengine/v1/internal/schema_connection_impl.h @@ -63,14 +63,41 @@ class SchemaServiceConnectionImpl google::cloud::discoveryengine::v1::CreateSchemaRequest const& request) override; + StatusOr CreateSchema( + ExperimentalTag, NoAwaitTag, + google::cloud::discoveryengine::v1::CreateSchemaRequest const& request) + override; + + future> CreateSchema( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateSchema( google::cloud::discoveryengine::v1::UpdateSchemaRequest const& request) override; + StatusOr UpdateSchema( + ExperimentalTag, NoAwaitTag, + google::cloud::discoveryengine::v1::UpdateSchemaRequest const& request) + override; + + future> UpdateSchema( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteSchema(google::cloud::discoveryengine::v1::DeleteSchemaRequest const& request) override; + StatusOr DeleteSchema( + ExperimentalTag, NoAwaitTag, + google::cloud::discoveryengine::v1::DeleteSchemaRequest const& request) + override; + + future> + DeleteSchema(ExperimentalTag, + google::longrunning::Operation const& operation) override; + private: std::unique_ptr background_; std::shared_ptr stub_; diff --git a/google/cloud/discoveryengine/v1/internal/schema_tracing_connection.cc b/google/cloud/discoveryengine/v1/internal/schema_tracing_connection.cc index f7cc9e7b055a1..576214bd3c605 100644 --- a/google/cloud/discoveryengine/v1/internal/schema_tracing_connection.cc +++ b/google/cloud/discoveryengine/v1/internal/schema_tracing_connection.cc @@ -63,6 +63,27 @@ SchemaServiceTracingConnection::CreateSchema( return internal::EndSpan(std::move(span), child_->CreateSchema(request)); } +StatusOr +SchemaServiceTracingConnection::CreateSchema( + ExperimentalTag, NoAwaitTag, + google::cloud::discoveryengine::v1::CreateSchemaRequest const& request) { + auto span = internal::MakeSpan( + "discoveryengine_v1::SchemaServiceConnection::CreateSchema"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->CreateSchema(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +SchemaServiceTracingConnection::CreateSchema( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "discoveryengine_v1::SchemaServiceConnection::CreateSchema"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->CreateSchema(ExperimentalTag{}, operation)); +} + future> SchemaServiceTracingConnection::UpdateSchema( google::cloud::discoveryengine::v1::UpdateSchemaRequest const& request) { @@ -72,6 +93,27 @@ SchemaServiceTracingConnection::UpdateSchema( return internal::EndSpan(std::move(span), child_->UpdateSchema(request)); } +StatusOr +SchemaServiceTracingConnection::UpdateSchema( + ExperimentalTag, NoAwaitTag, + google::cloud::discoveryengine::v1::UpdateSchemaRequest const& request) { + auto span = internal::MakeSpan( + "discoveryengine_v1::SchemaServiceConnection::UpdateSchema"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->UpdateSchema(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +SchemaServiceTracingConnection::UpdateSchema( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "discoveryengine_v1::SchemaServiceConnection::UpdateSchema"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->UpdateSchema(ExperimentalTag{}, operation)); +} + future> SchemaServiceTracingConnection::DeleteSchema( google::cloud::discoveryengine::v1::DeleteSchemaRequest const& request) { @@ -81,6 +123,27 @@ SchemaServiceTracingConnection::DeleteSchema( return internal::EndSpan(std::move(span), child_->DeleteSchema(request)); } +StatusOr +SchemaServiceTracingConnection::DeleteSchema( + ExperimentalTag, NoAwaitTag, + google::cloud::discoveryengine::v1::DeleteSchemaRequest const& request) { + auto span = internal::MakeSpan( + "discoveryengine_v1::SchemaServiceConnection::DeleteSchema"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->DeleteSchema(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +SchemaServiceTracingConnection::DeleteSchema( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "discoveryengine_v1::SchemaServiceConnection::DeleteSchema"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->DeleteSchema(ExperimentalTag{}, operation)); +} + #endif // GOOGLE_CLOUD_CPP_HAVE_OPENTELEMETRY std::shared_ptr diff --git a/google/cloud/discoveryengine/v1/internal/schema_tracing_connection.h b/google/cloud/discoveryengine/v1/internal/schema_tracing_connection.h index f688218af65db..620c572a3d2df 100644 --- a/google/cloud/discoveryengine/v1/internal/schema_tracing_connection.h +++ b/google/cloud/discoveryengine/v1/internal/schema_tracing_connection.h @@ -51,14 +51,41 @@ class SchemaServiceTracingConnection google::cloud::discoveryengine::v1::CreateSchemaRequest const& request) override; + StatusOr CreateSchema( + ExperimentalTag, NoAwaitTag, + google::cloud::discoveryengine::v1::CreateSchemaRequest const& request) + override; + + future> CreateSchema( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateSchema( google::cloud::discoveryengine::v1::UpdateSchemaRequest const& request) override; + StatusOr UpdateSchema( + ExperimentalTag, NoAwaitTag, + google::cloud::discoveryengine::v1::UpdateSchemaRequest const& request) + override; + + future> UpdateSchema( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteSchema(google::cloud::discoveryengine::v1::DeleteSchemaRequest const& request) override; + StatusOr DeleteSchema( + ExperimentalTag, NoAwaitTag, + google::cloud::discoveryengine::v1::DeleteSchemaRequest const& request) + override; + + future> + DeleteSchema(ExperimentalTag, + google::longrunning::Operation const& operation) override; + private: std::shared_ptr child_; }; diff --git a/google/cloud/discoveryengine/v1/internal/site_search_engine_connection_impl.cc b/google/cloud/discoveryengine/v1/internal/site_search_engine_connection_impl.cc index fa09f13b63599..c4e6ce0931dfa 100644 --- a/google/cloud/discoveryengine/v1/internal/site_search_engine_connection_impl.cc +++ b/google/cloud/discoveryengine/v1/internal/site_search_engine_connection_impl.cc @@ -131,6 +131,61 @@ SiteSearchEngineServiceConnectionImpl::CreateTargetSite( polling_policy(*current), __func__); } +StatusOr +SiteSearchEngineServiceConnectionImpl::CreateTargetSite( + ExperimentalTag, NoAwaitTag, + google::cloud::discoveryengine::v1::CreateTargetSiteRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateTargetSite(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::discoveryengine::v1::CreateTargetSiteRequest const& + request) { + return stub_->CreateTargetSite(context, options, request); + }, + *current, request, __func__); +} + +future> +SiteSearchEngineServiceConnectionImpl::CreateTargetSite( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to CreateTargetSite", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::discoveryengine::v1::TargetSite>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::discoveryengine::v1::TargetSite>, + polling_policy(*current), __func__); +} + future> SiteSearchEngineServiceConnectionImpl::BatchCreateTargetSites( @@ -172,6 +227,62 @@ SiteSearchEngineServiceConnectionImpl::BatchCreateTargetSites( polling_policy(*current), __func__); } +StatusOr +SiteSearchEngineServiceConnectionImpl::BatchCreateTargetSites( + ExperimentalTag, NoAwaitTag, + google::cloud::discoveryengine::v1::BatchCreateTargetSitesRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->BatchCreateTargetSites(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::discoveryengine::v1:: + BatchCreateTargetSitesRequest const& request) { + return stub_->BatchCreateTargetSites(context, options, request); + }, + *current, request, __func__); +} + +future> +SiteSearchEngineServiceConnectionImpl::BatchCreateTargetSites( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to BatchCreateTargetSites", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::discoveryengine::v1::BatchCreateTargetSitesResponse>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::discoveryengine::v1::BatchCreateTargetSitesResponse>, + polling_policy(*current), __func__); +} + StatusOr SiteSearchEngineServiceConnectionImpl::GetTargetSite( google::cloud::discoveryengine::v1::GetTargetSiteRequest const& request) { @@ -228,6 +339,61 @@ SiteSearchEngineServiceConnectionImpl::UpdateTargetSite( polling_policy(*current), __func__); } +StatusOr +SiteSearchEngineServiceConnectionImpl::UpdateTargetSite( + ExperimentalTag, NoAwaitTag, + google::cloud::discoveryengine::v1::UpdateTargetSiteRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UpdateTargetSite(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::discoveryengine::v1::UpdateTargetSiteRequest const& + request) { + return stub_->UpdateTargetSite(context, options, request); + }, + *current, request, __func__); +} + +future> +SiteSearchEngineServiceConnectionImpl::UpdateTargetSite( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to UpdateTargetSite", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::discoveryengine::v1::TargetSite>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::discoveryengine::v1::TargetSite>, + polling_policy(*current), __func__); +} + future> SiteSearchEngineServiceConnectionImpl::DeleteTargetSite( google::cloud::discoveryengine::v1::DeleteTargetSiteRequest const& @@ -269,6 +435,61 @@ SiteSearchEngineServiceConnectionImpl::DeleteTargetSite( polling_policy(*current), __func__); } +StatusOr +SiteSearchEngineServiceConnectionImpl::DeleteTargetSite( + ExperimentalTag, NoAwaitTag, + google::cloud::discoveryengine::v1::DeleteTargetSiteRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteTargetSite(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::discoveryengine::v1::DeleteTargetSiteRequest const& + request) { + return stub_->DeleteTargetSite(context, options, request); + }, + *current, request, __func__); +} + +future> +SiteSearchEngineServiceConnectionImpl::DeleteTargetSite( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteTargetSite", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::discoveryengine::v1::DeleteTargetSiteMetadata>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::cloud::discoveryengine::v1::DeleteTargetSiteMetadata>, + polling_policy(*current), __func__); +} + StreamRange SiteSearchEngineServiceConnectionImpl::ListTargetSites( google::cloud::discoveryengine::v1::ListTargetSitesRequest request) { @@ -345,6 +566,62 @@ SiteSearchEngineServiceConnectionImpl::EnableAdvancedSiteSearch( polling_policy(*current), __func__); } +StatusOr +SiteSearchEngineServiceConnectionImpl::EnableAdvancedSiteSearch( + ExperimentalTag, NoAwaitTag, + google::cloud::discoveryengine::v1::EnableAdvancedSiteSearchRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->EnableAdvancedSiteSearch(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::discoveryengine::v1:: + EnableAdvancedSiteSearchRequest const& request) { + return stub_->EnableAdvancedSiteSearch(context, options, request); + }, + *current, request, __func__); +} + +future> +SiteSearchEngineServiceConnectionImpl::EnableAdvancedSiteSearch( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to EnableAdvancedSiteSearch", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::discoveryengine::v1::EnableAdvancedSiteSearchResponse>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::discoveryengine::v1::EnableAdvancedSiteSearchResponse>, + polling_policy(*current), __func__); +} + future> SiteSearchEngineServiceConnectionImpl::DisableAdvancedSiteSearch( @@ -387,6 +664,63 @@ SiteSearchEngineServiceConnectionImpl::DisableAdvancedSiteSearch( polling_policy(*current), __func__); } +StatusOr +SiteSearchEngineServiceConnectionImpl::DisableAdvancedSiteSearch( + ExperimentalTag, NoAwaitTag, + google::cloud::discoveryengine::v1::DisableAdvancedSiteSearchRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DisableAdvancedSiteSearch(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::discoveryengine::v1:: + DisableAdvancedSiteSearchRequest const& request) { + return stub_->DisableAdvancedSiteSearch(context, options, request); + }, + *current, request, __func__); +} + +future> +SiteSearchEngineServiceConnectionImpl::DisableAdvancedSiteSearch( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to DisableAdvancedSiteSearch", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::discoveryengine::v1::DisableAdvancedSiteSearchResponse>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::discoveryengine::v1:: + DisableAdvancedSiteSearchResponse>, + polling_policy(*current), __func__); +} + future> SiteSearchEngineServiceConnectionImpl::RecrawlUris( google::cloud::discoveryengine::v1::RecrawlUrisRequest const& request) { @@ -427,6 +761,60 @@ SiteSearchEngineServiceConnectionImpl::RecrawlUris( polling_policy(*current), __func__); } +StatusOr +SiteSearchEngineServiceConnectionImpl::RecrawlUris( + ExperimentalTag, NoAwaitTag, + google::cloud::discoveryengine::v1::RecrawlUrisRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->RecrawlUris(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::discoveryengine::v1::RecrawlUrisRequest const& + request) { + return stub_->RecrawlUris(context, options, request); + }, + *current, request, __func__); +} + +future> +SiteSearchEngineServiceConnectionImpl::RecrawlUris( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to RecrawlUris", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::discoveryengine::v1::RecrawlUrisResponse>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::discoveryengine::v1::RecrawlUrisResponse>, + polling_policy(*current), __func__); +} + future> SiteSearchEngineServiceConnectionImpl::BatchVerifyTargetSites( @@ -468,6 +856,62 @@ SiteSearchEngineServiceConnectionImpl::BatchVerifyTargetSites( polling_policy(*current), __func__); } +StatusOr +SiteSearchEngineServiceConnectionImpl::BatchVerifyTargetSites( + ExperimentalTag, NoAwaitTag, + google::cloud::discoveryengine::v1::BatchVerifyTargetSitesRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->BatchVerifyTargetSites(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::discoveryengine::v1:: + BatchVerifyTargetSitesRequest const& request) { + return stub_->BatchVerifyTargetSites(context, options, request); + }, + *current, request, __func__); +} + +future> +SiteSearchEngineServiceConnectionImpl::BatchVerifyTargetSites( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to BatchVerifyTargetSites", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::discoveryengine::v1::BatchVerifyTargetSitesResponse>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::discoveryengine::v1::BatchVerifyTargetSitesResponse>, + polling_policy(*current), __func__); +} + StreamRange SiteSearchEngineServiceConnectionImpl::FetchDomainVerificationStatus( google::cloud::discoveryengine::v1::FetchDomainVerificationStatusRequest diff --git a/google/cloud/discoveryengine/v1/internal/site_search_engine_connection_impl.h b/google/cloud/discoveryengine/v1/internal/site_search_engine_connection_impl.h index ecb7b37d53f1c..ed589b0ea9776 100644 --- a/google/cloud/discoveryengine/v1/internal/site_search_engine_connection_impl.h +++ b/google/cloud/discoveryengine/v1/internal/site_search_engine_connection_impl.h @@ -63,12 +63,32 @@ class SiteSearchEngineServiceConnectionImpl google::cloud::discoveryengine::v1::CreateTargetSiteRequest const& request) override; + StatusOr CreateTargetSite( + ExperimentalTag, NoAwaitTag, + google::cloud::discoveryengine::v1::CreateTargetSiteRequest const& + request) override; + + future> + CreateTargetSite(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> BatchCreateTargetSites( google::cloud::discoveryengine::v1::BatchCreateTargetSitesRequest const& request) override; + StatusOr BatchCreateTargetSites( + ExperimentalTag, NoAwaitTag, + google::cloud::discoveryengine::v1::BatchCreateTargetSitesRequest const& + request) override; + + future> + BatchCreateTargetSites( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetTargetSite( google::cloud::discoveryengine::v1::GetTargetSiteRequest const& request) override; @@ -78,11 +98,29 @@ class SiteSearchEngineServiceConnectionImpl google::cloud::discoveryengine::v1::UpdateTargetSiteRequest const& request) override; + StatusOr UpdateTargetSite( + ExperimentalTag, NoAwaitTag, + google::cloud::discoveryengine::v1::UpdateTargetSiteRequest const& + request) override; + + future> + UpdateTargetSite(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteTargetSite( google::cloud::discoveryengine::v1::DeleteTargetSiteRequest const& request) override; + StatusOr DeleteTargetSite( + ExperimentalTag, NoAwaitTag, + google::cloud::discoveryengine::v1::DeleteTargetSiteRequest const& + request) override; + + future> + DeleteTargetSite(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListTargetSites( google::cloud::discoveryengine::v1::ListTargetSitesRequest request) override; @@ -93,22 +131,64 @@ class SiteSearchEngineServiceConnectionImpl google::cloud::discoveryengine::v1::EnableAdvancedSiteSearchRequest const& request) override; + StatusOr EnableAdvancedSiteSearch( + ExperimentalTag, NoAwaitTag, + google::cloud::discoveryengine::v1::EnableAdvancedSiteSearchRequest const& + request) override; + + future> + EnableAdvancedSiteSearch( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DisableAdvancedSiteSearch( google::cloud::discoveryengine::v1:: DisableAdvancedSiteSearchRequest const& request) override; + StatusOr DisableAdvancedSiteSearch( + ExperimentalTag, NoAwaitTag, + google::cloud::discoveryengine::v1:: + DisableAdvancedSiteSearchRequest const& request) override; + + future> + DisableAdvancedSiteSearch( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> RecrawlUris(google::cloud::discoveryengine::v1::RecrawlUrisRequest const& request) override; + StatusOr RecrawlUris( + ExperimentalTag, NoAwaitTag, + google::cloud::discoveryengine::v1::RecrawlUrisRequest const& request) + override; + + future> + RecrawlUris(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> BatchVerifyTargetSites( google::cloud::discoveryengine::v1::BatchVerifyTargetSitesRequest const& request) override; + StatusOr BatchVerifyTargetSites( + ExperimentalTag, NoAwaitTag, + google::cloud::discoveryengine::v1::BatchVerifyTargetSitesRequest const& + request) override; + + future> + BatchVerifyTargetSites( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange FetchDomainVerificationStatus( google::cloud::discoveryengine::v1::FetchDomainVerificationStatusRequest diff --git a/google/cloud/discoveryengine/v1/internal/site_search_engine_tracing_connection.cc b/google/cloud/discoveryengine/v1/internal/site_search_engine_tracing_connection.cc index 8cce976e9a3d4..b23f8ca8e6486 100644 --- a/google/cloud/discoveryengine/v1/internal/site_search_engine_tracing_connection.cc +++ b/google/cloud/discoveryengine/v1/internal/site_search_engine_tracing_connection.cc @@ -57,6 +57,31 @@ SiteSearchEngineServiceTracingConnection::CreateTargetSite( return internal::EndSpan(std::move(span), child_->CreateTargetSite(request)); } +StatusOr +SiteSearchEngineServiceTracingConnection::CreateTargetSite( + ExperimentalTag, NoAwaitTag, + google::cloud::discoveryengine::v1::CreateTargetSiteRequest const& + request) { + auto span = internal::MakeSpan( + "discoveryengine_v1::SiteSearchEngineServiceConnection::" + "CreateTargetSite"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->CreateTargetSite(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +SiteSearchEngineServiceTracingConnection::CreateTargetSite( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "discoveryengine_v1::SiteSearchEngineServiceConnection::" + "CreateTargetSite"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->CreateTargetSite(ExperimentalTag{}, operation)); +} + future> SiteSearchEngineServiceTracingConnection::BatchCreateTargetSites( @@ -70,6 +95,32 @@ SiteSearchEngineServiceTracingConnection::BatchCreateTargetSites( child_->BatchCreateTargetSites(request)); } +StatusOr +SiteSearchEngineServiceTracingConnection::BatchCreateTargetSites( + ExperimentalTag, NoAwaitTag, + google::cloud::discoveryengine::v1::BatchCreateTargetSitesRequest const& + request) { + auto span = internal::MakeSpan( + "discoveryengine_v1::SiteSearchEngineServiceConnection::" + "BatchCreateTargetSites"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->BatchCreateTargetSites(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +SiteSearchEngineServiceTracingConnection::BatchCreateTargetSites( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "discoveryengine_v1::SiteSearchEngineServiceConnection::" + "BatchCreateTargetSites"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->BatchCreateTargetSites( + ExperimentalTag{}, operation)); +} + StatusOr SiteSearchEngineServiceTracingConnection::GetTargetSite( google::cloud::discoveryengine::v1::GetTargetSiteRequest const& request) { @@ -90,6 +141,31 @@ SiteSearchEngineServiceTracingConnection::UpdateTargetSite( return internal::EndSpan(std::move(span), child_->UpdateTargetSite(request)); } +StatusOr +SiteSearchEngineServiceTracingConnection::UpdateTargetSite( + ExperimentalTag, NoAwaitTag, + google::cloud::discoveryengine::v1::UpdateTargetSiteRequest const& + request) { + auto span = internal::MakeSpan( + "discoveryengine_v1::SiteSearchEngineServiceConnection::" + "UpdateTargetSite"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->UpdateTargetSite(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +SiteSearchEngineServiceTracingConnection::UpdateTargetSite( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "discoveryengine_v1::SiteSearchEngineServiceConnection::" + "UpdateTargetSite"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->UpdateTargetSite(ExperimentalTag{}, operation)); +} + future> SiteSearchEngineServiceTracingConnection::DeleteTargetSite( google::cloud::discoveryengine::v1::DeleteTargetSiteRequest const& @@ -101,6 +177,31 @@ SiteSearchEngineServiceTracingConnection::DeleteTargetSite( return internal::EndSpan(std::move(span), child_->DeleteTargetSite(request)); } +StatusOr +SiteSearchEngineServiceTracingConnection::DeleteTargetSite( + ExperimentalTag, NoAwaitTag, + google::cloud::discoveryengine::v1::DeleteTargetSiteRequest const& + request) { + auto span = internal::MakeSpan( + "discoveryengine_v1::SiteSearchEngineServiceConnection::" + "DeleteTargetSite"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->DeleteTargetSite(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +SiteSearchEngineServiceTracingConnection::DeleteTargetSite( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "discoveryengine_v1::SiteSearchEngineServiceConnection::" + "DeleteTargetSite"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->DeleteTargetSite(ExperimentalTag{}, operation)); +} + StreamRange SiteSearchEngineServiceTracingConnection::ListTargetSites( google::cloud::discoveryengine::v1::ListTargetSitesRequest request) { @@ -126,6 +227,32 @@ SiteSearchEngineServiceTracingConnection::EnableAdvancedSiteSearch( child_->EnableAdvancedSiteSearch(request)); } +StatusOr +SiteSearchEngineServiceTracingConnection::EnableAdvancedSiteSearch( + ExperimentalTag, NoAwaitTag, + google::cloud::discoveryengine::v1::EnableAdvancedSiteSearchRequest const& + request) { + auto span = internal::MakeSpan( + "discoveryengine_v1::SiteSearchEngineServiceConnection::" + "EnableAdvancedSiteSearch"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->EnableAdvancedSiteSearch(ExperimentalTag{}, NoAwaitTag{}, + request)); +} + +future> +SiteSearchEngineServiceTracingConnection::EnableAdvancedSiteSearch( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "discoveryengine_v1::SiteSearchEngineServiceConnection::" + "EnableAdvancedSiteSearch"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->EnableAdvancedSiteSearch( + ExperimentalTag{}, operation)); +} + future> SiteSearchEngineServiceTracingConnection::DisableAdvancedSiteSearch( @@ -139,6 +266,32 @@ SiteSearchEngineServiceTracingConnection::DisableAdvancedSiteSearch( child_->DisableAdvancedSiteSearch(request)); } +StatusOr +SiteSearchEngineServiceTracingConnection::DisableAdvancedSiteSearch( + ExperimentalTag, NoAwaitTag, + google::cloud::discoveryengine::v1::DisableAdvancedSiteSearchRequest const& + request) { + auto span = internal::MakeSpan( + "discoveryengine_v1::SiteSearchEngineServiceConnection::" + "DisableAdvancedSiteSearch"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->DisableAdvancedSiteSearch(ExperimentalTag{}, NoAwaitTag{}, + request)); +} + +future> +SiteSearchEngineServiceTracingConnection::DisableAdvancedSiteSearch( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "discoveryengine_v1::SiteSearchEngineServiceConnection::" + "DisableAdvancedSiteSearch"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->DisableAdvancedSiteSearch( + ExperimentalTag{}, operation)); +} + future> SiteSearchEngineServiceTracingConnection::RecrawlUris( google::cloud::discoveryengine::v1::RecrawlUrisRequest const& request) { @@ -148,6 +301,27 @@ SiteSearchEngineServiceTracingConnection::RecrawlUris( return internal::EndSpan(std::move(span), child_->RecrawlUris(request)); } +StatusOr +SiteSearchEngineServiceTracingConnection::RecrawlUris( + ExperimentalTag, NoAwaitTag, + google::cloud::discoveryengine::v1::RecrawlUrisRequest const& request) { + auto span = internal::MakeSpan( + "discoveryengine_v1::SiteSearchEngineServiceConnection::RecrawlUris"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->RecrawlUris(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +SiteSearchEngineServiceTracingConnection::RecrawlUris( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "discoveryengine_v1::SiteSearchEngineServiceConnection::RecrawlUris"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->RecrawlUris(ExperimentalTag{}, operation)); +} + future> SiteSearchEngineServiceTracingConnection::BatchVerifyTargetSites( @@ -161,6 +335,32 @@ SiteSearchEngineServiceTracingConnection::BatchVerifyTargetSites( child_->BatchVerifyTargetSites(request)); } +StatusOr +SiteSearchEngineServiceTracingConnection::BatchVerifyTargetSites( + ExperimentalTag, NoAwaitTag, + google::cloud::discoveryengine::v1::BatchVerifyTargetSitesRequest const& + request) { + auto span = internal::MakeSpan( + "discoveryengine_v1::SiteSearchEngineServiceConnection::" + "BatchVerifyTargetSites"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->BatchVerifyTargetSites(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +SiteSearchEngineServiceTracingConnection::BatchVerifyTargetSites( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "discoveryengine_v1::SiteSearchEngineServiceConnection::" + "BatchVerifyTargetSites"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->BatchVerifyTargetSites( + ExperimentalTag{}, operation)); +} + StreamRange SiteSearchEngineServiceTracingConnection::FetchDomainVerificationStatus( google::cloud::discoveryengine::v1::FetchDomainVerificationStatusRequest diff --git a/google/cloud/discoveryengine/v1/internal/site_search_engine_tracing_connection.h b/google/cloud/discoveryengine/v1/internal/site_search_engine_tracing_connection.h index f5b2e264fcb14..3012145b22494 100644 --- a/google/cloud/discoveryengine/v1/internal/site_search_engine_tracing_connection.h +++ b/google/cloud/discoveryengine/v1/internal/site_search_engine_tracing_connection.h @@ -51,12 +51,32 @@ class SiteSearchEngineServiceTracingConnection google::cloud::discoveryengine::v1::CreateTargetSiteRequest const& request) override; + StatusOr CreateTargetSite( + ExperimentalTag, NoAwaitTag, + google::cloud::discoveryengine::v1::CreateTargetSiteRequest const& + request) override; + + future> + CreateTargetSite(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> BatchCreateTargetSites( google::cloud::discoveryengine::v1::BatchCreateTargetSitesRequest const& request) override; + StatusOr BatchCreateTargetSites( + ExperimentalTag, NoAwaitTag, + google::cloud::discoveryengine::v1::BatchCreateTargetSitesRequest const& + request) override; + + future> + BatchCreateTargetSites( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetTargetSite( google::cloud::discoveryengine::v1::GetTargetSiteRequest const& request) override; @@ -66,11 +86,29 @@ class SiteSearchEngineServiceTracingConnection google::cloud::discoveryengine::v1::UpdateTargetSiteRequest const& request) override; + StatusOr UpdateTargetSite( + ExperimentalTag, NoAwaitTag, + google::cloud::discoveryengine::v1::UpdateTargetSiteRequest const& + request) override; + + future> + UpdateTargetSite(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteTargetSite( google::cloud::discoveryengine::v1::DeleteTargetSiteRequest const& request) override; + StatusOr DeleteTargetSite( + ExperimentalTag, NoAwaitTag, + google::cloud::discoveryengine::v1::DeleteTargetSiteRequest const& + request) override; + + future> + DeleteTargetSite(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListTargetSites( google::cloud::discoveryengine::v1::ListTargetSitesRequest request) override; @@ -81,22 +119,64 @@ class SiteSearchEngineServiceTracingConnection google::cloud::discoveryengine::v1::EnableAdvancedSiteSearchRequest const& request) override; + StatusOr EnableAdvancedSiteSearch( + ExperimentalTag, NoAwaitTag, + google::cloud::discoveryengine::v1::EnableAdvancedSiteSearchRequest const& + request) override; + + future> + EnableAdvancedSiteSearch( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DisableAdvancedSiteSearch( google::cloud::discoveryengine::v1:: DisableAdvancedSiteSearchRequest const& request) override; + StatusOr DisableAdvancedSiteSearch( + ExperimentalTag, NoAwaitTag, + google::cloud::discoveryengine::v1:: + DisableAdvancedSiteSearchRequest const& request) override; + + future> + DisableAdvancedSiteSearch( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> RecrawlUris(google::cloud::discoveryengine::v1::RecrawlUrisRequest const& request) override; + StatusOr RecrawlUris( + ExperimentalTag, NoAwaitTag, + google::cloud::discoveryengine::v1::RecrawlUrisRequest const& request) + override; + + future> + RecrawlUris(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> BatchVerifyTargetSites( google::cloud::discoveryengine::v1::BatchVerifyTargetSitesRequest const& request) override; + StatusOr BatchVerifyTargetSites( + ExperimentalTag, NoAwaitTag, + google::cloud::discoveryengine::v1::BatchVerifyTargetSitesRequest const& + request) override; + + future> + BatchVerifyTargetSites( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange FetchDomainVerificationStatus( google::cloud::discoveryengine::v1::FetchDomainVerificationStatusRequest diff --git a/google/cloud/discoveryengine/v1/internal/user_event_connection_impl.cc b/google/cloud/discoveryengine/v1/internal/user_event_connection_impl.cc index 8da24abe3562c..aec888705288c 100644 --- a/google/cloud/discoveryengine/v1/internal/user_event_connection_impl.cc +++ b/google/cloud/discoveryengine/v1/internal/user_event_connection_impl.cc @@ -139,6 +139,61 @@ UserEventServiceConnectionImpl::ImportUserEvents( polling_policy(*current), __func__); } +StatusOr +UserEventServiceConnectionImpl::ImportUserEvents( + ExperimentalTag, NoAwaitTag, + google::cloud::discoveryengine::v1::ImportUserEventsRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->ImportUserEvents(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::discoveryengine::v1::ImportUserEventsRequest const& + request) { + return stub_->ImportUserEvents(context, options, request); + }, + *current, request, __func__); +} + +future> +UserEventServiceConnectionImpl::ImportUserEvents( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to ImportUserEvents", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::discoveryengine::v1::ImportUserEventsResponse>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::discoveryengine::v1::ImportUserEventsResponse>, + polling_policy(*current), __func__); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace discoveryengine_v1_internal } // namespace cloud diff --git a/google/cloud/discoveryengine/v1/internal/user_event_connection_impl.h b/google/cloud/discoveryengine/v1/internal/user_event_connection_impl.h index dab8882c6cc24..ebd8dedbb8c61 100644 --- a/google/cloud/discoveryengine/v1/internal/user_event_connection_impl.h +++ b/google/cloud/discoveryengine/v1/internal/user_event_connection_impl.h @@ -64,6 +64,15 @@ class UserEventServiceConnectionImpl google::cloud::discoveryengine::v1::ImportUserEventsRequest const& request) override; + StatusOr ImportUserEvents( + ExperimentalTag, NoAwaitTag, + google::cloud::discoveryengine::v1::ImportUserEventsRequest const& + request) override; + + future> + ImportUserEvents(ExperimentalTag, + google::longrunning::Operation const& operation) override; + private: std::unique_ptr background_; std::shared_ptr stub_; diff --git a/google/cloud/discoveryengine/v1/internal/user_event_tracing_connection.cc b/google/cloud/discoveryengine/v1/internal/user_event_tracing_connection.cc index 4cfd15fada9ba..c31e6132fde2e 100644 --- a/google/cloud/discoveryengine/v1/internal/user_event_tracing_connection.cc +++ b/google/cloud/discoveryengine/v1/internal/user_event_tracing_connection.cc @@ -61,6 +61,29 @@ UserEventServiceTracingConnection::ImportUserEvents( return internal::EndSpan(std::move(span), child_->ImportUserEvents(request)); } +StatusOr +UserEventServiceTracingConnection::ImportUserEvents( + ExperimentalTag, NoAwaitTag, + google::cloud::discoveryengine::v1::ImportUserEventsRequest const& + request) { + auto span = internal::MakeSpan( + "discoveryengine_v1::UserEventServiceConnection::ImportUserEvents"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->ImportUserEvents(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +UserEventServiceTracingConnection::ImportUserEvents( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "discoveryengine_v1::UserEventServiceConnection::ImportUserEvents"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->ImportUserEvents(ExperimentalTag{}, operation)); +} + #endif // GOOGLE_CLOUD_CPP_HAVE_OPENTELEMETRY std::shared_ptr diff --git a/google/cloud/discoveryengine/v1/internal/user_event_tracing_connection.h b/google/cloud/discoveryengine/v1/internal/user_event_tracing_connection.h index d5bba428e171e..8ee6499b874f2 100644 --- a/google/cloud/discoveryengine/v1/internal/user_event_tracing_connection.h +++ b/google/cloud/discoveryengine/v1/internal/user_event_tracing_connection.h @@ -53,6 +53,15 @@ class UserEventServiceTracingConnection google::cloud::discoveryengine::v1::ImportUserEventsRequest const& request) override; + StatusOr ImportUserEvents( + ExperimentalTag, NoAwaitTag, + google::cloud::discoveryengine::v1::ImportUserEventsRequest const& + request) override; + + future> + ImportUserEvents(ExperimentalTag, + google::longrunning::Operation const& operation) override; + private: std::shared_ptr child_; }; diff --git a/google/cloud/discoveryengine/v1/mocks/mock_completion_connection.h b/google/cloud/discoveryengine/v1/mocks/mock_completion_connection.h index b0ec5b8674d1a..94e2f8127ea6e 100644 --- a/google/cloud/discoveryengine/v1/mocks/mock_completion_connection.h +++ b/google/cloud/discoveryengine/v1/mocks/mock_completion_connection.h @@ -60,12 +60,40 @@ class MockCompletionServiceConnection ImportSuggestionDenyListEntriesRequest const& request), (override)); + MOCK_METHOD(StatusOr, + ImportSuggestionDenyListEntries, + (ExperimentalTag, NoAwaitTag, + google::cloud::discoveryengine::v1:: + ImportSuggestionDenyListEntriesRequest const& request), + (override)); + + MOCK_METHOD(future>, + ImportSuggestionDenyListEntries, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, PurgeSuggestionDenyListEntries, (google::cloud::discoveryengine::v1:: PurgeSuggestionDenyListEntriesRequest const& request), (override)); + + MOCK_METHOD(StatusOr, + PurgeSuggestionDenyListEntries, + (ExperimentalTag, NoAwaitTag, + google::cloud::discoveryengine::v1:: + PurgeSuggestionDenyListEntriesRequest const& request), + (override)); + + MOCK_METHOD(future>, + PurgeSuggestionDenyListEntries, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); }; GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END diff --git a/google/cloud/discoveryengine/v1/mocks/mock_data_store_connection.h b/google/cloud/discoveryengine/v1/mocks/mock_data_store_connection.h index 65ff57cdddc27..b14053b0838f2 100644 --- a/google/cloud/discoveryengine/v1/mocks/mock_data_store_connection.h +++ b/google/cloud/discoveryengine/v1/mocks/mock_data_store_connection.h @@ -53,6 +53,18 @@ class MockDataStoreServiceConnection request), (override)); + MOCK_METHOD(StatusOr, CreateDataStore, + (ExperimentalTag, NoAwaitTag, + google::cloud::discoveryengine::v1::CreateDataStoreRequest const& + request), + (override)); + + MOCK_METHOD(future>, + CreateDataStore, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr, GetDataStore, (google::cloud::discoveryengine::v1::GetDataStoreRequest const& request), @@ -71,6 +83,19 @@ class MockDataStoreServiceConnection request), (override)); + MOCK_METHOD(StatusOr, DeleteDataStore, + (ExperimentalTag, NoAwaitTag, + google::cloud::discoveryengine::v1::DeleteDataStoreRequest const& + request), + (override)); + + MOCK_METHOD(future>, + DeleteDataStore, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(StatusOr, UpdateDataStore, (google::cloud::discoveryengine::v1::UpdateDataStoreRequest const& diff --git a/google/cloud/discoveryengine/v1/mocks/mock_document_connection.h b/google/cloud/discoveryengine/v1/mocks/mock_document_connection.h index 398238120d704..4e88923df96e8 100644 --- a/google/cloud/discoveryengine/v1/mocks/mock_document_connection.h +++ b/google/cloud/discoveryengine/v1/mocks/mock_document_connection.h @@ -82,6 +82,19 @@ class MockDocumentServiceConnection request), (override)); + MOCK_METHOD(StatusOr, ImportDocuments, + (ExperimentalTag, NoAwaitTag, + google::cloud::discoveryengine::v1::ImportDocumentsRequest const& + request), + (override)); + + MOCK_METHOD(future>, + ImportDocuments, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future< StatusOr>, @@ -89,6 +102,19 @@ class MockDocumentServiceConnection (google::cloud::discoveryengine::v1::PurgeDocumentsRequest const& request), (override)); + + MOCK_METHOD(StatusOr, PurgeDocuments, + (ExperimentalTag, NoAwaitTag, + google::cloud::discoveryengine::v1::PurgeDocumentsRequest const& + request), + (override)); + + MOCK_METHOD( + future< + StatusOr>, + PurgeDocuments, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); }; GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END diff --git a/google/cloud/discoveryengine/v1/mocks/mock_engine_connection.h b/google/cloud/discoveryengine/v1/mocks/mock_engine_connection.h index 78b1a64a29d27..b3cc338168542 100644 --- a/google/cloud/discoveryengine/v1/mocks/mock_engine_connection.h +++ b/google/cloud/discoveryengine/v1/mocks/mock_engine_connection.h @@ -53,6 +53,18 @@ class MockEngineServiceConnection (google::cloud::discoveryengine::v1::CreateEngineRequest const& request), (override)); + MOCK_METHOD( + StatusOr, CreateEngine, + (ExperimentalTag, NoAwaitTag, + google::cloud::discoveryengine::v1::CreateEngineRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateEngine, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future< StatusOr>, @@ -60,6 +72,19 @@ class MockEngineServiceConnection (google::cloud::discoveryengine::v1::DeleteEngineRequest const& request), (override)); + MOCK_METHOD( + StatusOr, DeleteEngine, + (ExperimentalTag, NoAwaitTag, + google::cloud::discoveryengine::v1::DeleteEngineRequest const& request), + (override)); + + MOCK_METHOD( + future< + StatusOr>, + DeleteEngine, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr, UpdateEngine, (google::cloud::discoveryengine::v1::UpdateEngineRequest const& request), diff --git a/google/cloud/discoveryengine/v1/mocks/mock_project_connection.h b/google/cloud/discoveryengine/v1/mocks/mock_project_connection.h index 6a3a168fdd2a4..f3e1e4a7155c4 100644 --- a/google/cloud/discoveryengine/v1/mocks/mock_project_connection.h +++ b/google/cloud/discoveryengine/v1/mocks/mock_project_connection.h @@ -53,6 +53,19 @@ class MockProjectServiceConnection (google::cloud::discoveryengine::v1::ProvisionProjectRequest const& request), (override)); + + MOCK_METHOD( + StatusOr, ProvisionProject, + (ExperimentalTag, NoAwaitTag, + google::cloud::discoveryengine::v1::ProvisionProjectRequest const& + request), + (override)); + + MOCK_METHOD(future>, + ProvisionProject, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); }; GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END diff --git a/google/cloud/discoveryengine/v1/mocks/mock_schema_connection.h b/google/cloud/discoveryengine/v1/mocks/mock_schema_connection.h index 2739012796b4d..51481f6aea49c 100644 --- a/google/cloud/discoveryengine/v1/mocks/mock_schema_connection.h +++ b/google/cloud/discoveryengine/v1/mocks/mock_schema_connection.h @@ -63,18 +63,55 @@ class MockSchemaServiceConnection (google::cloud::discoveryengine::v1::CreateSchemaRequest const& request), (override)); + MOCK_METHOD( + StatusOr, CreateSchema, + (ExperimentalTag, NoAwaitTag, + google::cloud::discoveryengine::v1::CreateSchemaRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateSchema, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, UpdateSchema, (google::cloud::discoveryengine::v1::UpdateSchemaRequest const& request), (override)); + MOCK_METHOD( + StatusOr, UpdateSchema, + (ExperimentalTag, NoAwaitTag, + google::cloud::discoveryengine::v1::UpdateSchemaRequest const& request), + (override)); + + MOCK_METHOD(future>, + UpdateSchema, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future< StatusOr>, DeleteSchema, (google::cloud::discoveryengine::v1::DeleteSchemaRequest const& request), (override)); + + MOCK_METHOD( + StatusOr, DeleteSchema, + (ExperimentalTag, NoAwaitTag, + google::cloud::discoveryengine::v1::DeleteSchemaRequest const& request), + (override)); + + MOCK_METHOD( + future< + StatusOr>, + DeleteSchema, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); }; GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END diff --git a/google/cloud/discoveryengine/v1/mocks/mock_site_search_engine_connection.h b/google/cloud/discoveryengine/v1/mocks/mock_site_search_engine_connection.h index b63824b14ab56..60b04a617174c 100644 --- a/google/cloud/discoveryengine/v1/mocks/mock_site_search_engine_connection.h +++ b/google/cloud/discoveryengine/v1/mocks/mock_site_search_engine_connection.h @@ -61,6 +61,19 @@ class MockSiteSearchEngineServiceConnection request), (override)); + MOCK_METHOD( + StatusOr, CreateTargetSite, + (ExperimentalTag, NoAwaitTag, + google::cloud::discoveryengine::v1::CreateTargetSiteRequest const& + request), + (override)); + + MOCK_METHOD(future>, + CreateTargetSite, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, @@ -69,6 +82,20 @@ class MockSiteSearchEngineServiceConnection request), (override)); + MOCK_METHOD( + StatusOr, BatchCreateTargetSites, + (ExperimentalTag, NoAwaitTag, + google::cloud::discoveryengine::v1::BatchCreateTargetSitesRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + BatchCreateTargetSites, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr, GetTargetSite, (google::cloud::discoveryengine::v1::GetTargetSiteRequest const& request), @@ -81,6 +108,19 @@ class MockSiteSearchEngineServiceConnection request), (override)); + MOCK_METHOD( + StatusOr, UpdateTargetSite, + (ExperimentalTag, NoAwaitTag, + google::cloud::discoveryengine::v1::UpdateTargetSiteRequest const& + request), + (override)); + + MOCK_METHOD(future>, + UpdateTargetSite, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, @@ -89,6 +129,20 @@ class MockSiteSearchEngineServiceConnection request), (override)); + MOCK_METHOD( + StatusOr, DeleteTargetSite, + (ExperimentalTag, NoAwaitTag, + google::cloud::discoveryengine::v1::DeleteTargetSiteRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + DeleteTargetSite, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( (StreamRange), ListTargetSites, @@ -102,6 +156,20 @@ class MockSiteSearchEngineServiceConnection EnableAdvancedSiteSearchRequest const& request), (override)); + MOCK_METHOD(StatusOr, + EnableAdvancedSiteSearch, + (ExperimentalTag, NoAwaitTag, + google::cloud::discoveryengine::v1:: + EnableAdvancedSiteSearchRequest const& request), + (override)); + + MOCK_METHOD(future>, + EnableAdvancedSiteSearch, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, DisableAdvancedSiteSearch, @@ -109,12 +177,38 @@ class MockSiteSearchEngineServiceConnection DisableAdvancedSiteSearchRequest const& request), (override)); + MOCK_METHOD(StatusOr, + DisableAdvancedSiteSearch, + (ExperimentalTag, NoAwaitTag, + google::cloud::discoveryengine::v1:: + DisableAdvancedSiteSearchRequest const& request), + (override)); + + MOCK_METHOD(future>, + DisableAdvancedSiteSearch, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, RecrawlUris, (google::cloud::discoveryengine::v1::RecrawlUrisRequest const& request), (override)); + MOCK_METHOD( + StatusOr, RecrawlUris, + (ExperimentalTag, NoAwaitTag, + google::cloud::discoveryengine::v1::RecrawlUrisRequest const& request), + (override)); + + MOCK_METHOD( + future>, + RecrawlUris, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, @@ -123,6 +217,20 @@ class MockSiteSearchEngineServiceConnection request), (override)); + MOCK_METHOD( + StatusOr, BatchVerifyTargetSites, + (ExperimentalTag, NoAwaitTag, + google::cloud::discoveryengine::v1::BatchVerifyTargetSitesRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + BatchVerifyTargetSites, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( (StreamRange), FetchDomainVerificationStatus, diff --git a/google/cloud/discoveryengine/v1/mocks/mock_user_event_connection.h b/google/cloud/discoveryengine/v1/mocks/mock_user_event_connection.h index 5c6bd008bebdd..005cbaee541ba 100644 --- a/google/cloud/discoveryengine/v1/mocks/mock_user_event_connection.h +++ b/google/cloud/discoveryengine/v1/mocks/mock_user_event_connection.h @@ -66,6 +66,20 @@ class MockUserEventServiceConnection (google::cloud::discoveryengine::v1::ImportUserEventsRequest const& request), (override)); + + MOCK_METHOD( + StatusOr, ImportUserEvents, + (ExperimentalTag, NoAwaitTag, + google::cloud::discoveryengine::v1::ImportUserEventsRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + ImportUserEvents, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); }; GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END diff --git a/google/cloud/discoveryengine/v1/project_connection.cc b/google/cloud/discoveryengine/v1/project_connection.cc index 3677140af76a5..0ab77d190bf82 100644 --- a/google/cloud/discoveryengine/v1/project_connection.cc +++ b/google/cloud/discoveryengine/v1/project_connection.cc @@ -45,6 +45,22 @@ ProjectServiceConnection::ProvisionProject( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +ProjectServiceConnection::ProvisionProject( + ExperimentalTag, NoAwaitTag, + google::cloud::discoveryengine::v1::ProvisionProjectRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +ProjectServiceConnection::ProvisionProject( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + std::shared_ptr MakeProjectServiceConnection( Options options) { internal::CheckExpectedOptions ProvisionProject( + ExperimentalTag, NoAwaitTag, + google::cloud::discoveryengine::v1::ProvisionProjectRequest const& + request); + + virtual future> + ProvisionProject(ExperimentalTag, + google::longrunning::Operation const& operation); }; /** diff --git a/google/cloud/discoveryengine/v1/rank_connection.h b/google/cloud/discoveryengine/v1/rank_connection.h index 0a7d121108f70..86d2afa33aaba 100644 --- a/google/cloud/discoveryengine/v1/rank_connection.h +++ b/google/cloud/discoveryengine/v1/rank_connection.h @@ -22,6 +22,7 @@ #include "google/cloud/discoveryengine/v1/internal/rank_retry_traits.h" #include "google/cloud/discoveryengine/v1/rank_connection_idempotency_policy.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/internal/retry_policy_impl.h" #include "google/cloud/options.h" #include "google/cloud/status_or.h" diff --git a/google/cloud/discoveryengine/v1/recommendation_connection.h b/google/cloud/discoveryengine/v1/recommendation_connection.h index 044bac51a5779..0d578ff457fa9 100644 --- a/google/cloud/discoveryengine/v1/recommendation_connection.h +++ b/google/cloud/discoveryengine/v1/recommendation_connection.h @@ -22,6 +22,7 @@ #include "google/cloud/discoveryengine/v1/internal/recommendation_retry_traits.h" #include "google/cloud/discoveryengine/v1/recommendation_connection_idempotency_policy.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/internal/retry_policy_impl.h" #include "google/cloud/options.h" #include "google/cloud/status_or.h" diff --git a/google/cloud/discoveryengine/v1/schema_connection.cc b/google/cloud/discoveryengine/v1/schema_connection.cc index 86c36a55860e6..bbb0377d5705c 100644 --- a/google/cloud/discoveryengine/v1/schema_connection.cc +++ b/google/cloud/discoveryengine/v1/schema_connection.cc @@ -60,6 +60,21 @@ SchemaServiceConnection::CreateSchema( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr SchemaServiceConnection::CreateSchema( + ExperimentalTag, NoAwaitTag, + google::cloud::discoveryengine::v1::CreateSchemaRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +SchemaServiceConnection::CreateSchema(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> SchemaServiceConnection::UpdateSchema( google::cloud::discoveryengine::v1::UpdateSchemaRequest const&) { @@ -68,6 +83,21 @@ SchemaServiceConnection::UpdateSchema( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr SchemaServiceConnection::UpdateSchema( + ExperimentalTag, NoAwaitTag, + google::cloud::discoveryengine::v1::UpdateSchemaRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +SchemaServiceConnection::UpdateSchema(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> SchemaServiceConnection::DeleteSchema( google::cloud::discoveryengine::v1::DeleteSchemaRequest const&) { @@ -76,6 +106,21 @@ SchemaServiceConnection::DeleteSchema( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr SchemaServiceConnection::DeleteSchema( + ExperimentalTag, NoAwaitTag, + google::cloud::discoveryengine::v1::DeleteSchemaRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +SchemaServiceConnection::DeleteSchema(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + std::shared_ptr MakeSchemaServiceConnection( Options options) { internal::CheckExpectedOptions CreateSchema( + ExperimentalTag, NoAwaitTag, + google::cloud::discoveryengine::v1::CreateSchemaRequest const& request); + + virtual future> + CreateSchema(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> UpdateSchema( google::cloud::discoveryengine::v1::UpdateSchemaRequest const& request); + virtual StatusOr UpdateSchema( + ExperimentalTag, NoAwaitTag, + google::cloud::discoveryengine::v1::UpdateSchemaRequest const& request); + + virtual future> + UpdateSchema(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future< StatusOr> DeleteSchema( google::cloud::discoveryengine::v1::DeleteSchemaRequest const& request); + + virtual StatusOr DeleteSchema( + ExperimentalTag, NoAwaitTag, + google::cloud::discoveryengine::v1::DeleteSchemaRequest const& request); + + virtual future< + StatusOr> + DeleteSchema(ExperimentalTag, + google::longrunning::Operation const& operation); }; /** diff --git a/google/cloud/discoveryengine/v1/search_connection.h b/google/cloud/discoveryengine/v1/search_connection.h index cf28a0ebf53f3..88ad4f20cee65 100644 --- a/google/cloud/discoveryengine/v1/search_connection.h +++ b/google/cloud/discoveryengine/v1/search_connection.h @@ -22,6 +22,7 @@ #include "google/cloud/discoveryengine/v1/internal/search_retry_traits.h" #include "google/cloud/discoveryengine/v1/search_connection_idempotency_policy.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/internal/retry_policy_impl.h" #include "google/cloud/options.h" #include "google/cloud/status_or.h" diff --git a/google/cloud/discoveryengine/v1/site_search_engine_connection.cc b/google/cloud/discoveryengine/v1/site_search_engine_connection.cc index 3294b6a88dade..cc8faefd3edb5 100644 --- a/google/cloud/discoveryengine/v1/site_search_engine_connection.cc +++ b/google/cloud/discoveryengine/v1/site_search_engine_connection.cc @@ -53,6 +53,22 @@ SiteSearchEngineServiceConnection::CreateTargetSite( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +SiteSearchEngineServiceConnection::CreateTargetSite( + ExperimentalTag, NoAwaitTag, + google::cloud::discoveryengine::v1::CreateTargetSiteRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +SiteSearchEngineServiceConnection::CreateTargetSite( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> SiteSearchEngineServiceConnection::BatchCreateTargetSites( @@ -62,6 +78,23 @@ SiteSearchEngineServiceConnection::BatchCreateTargetSites( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +SiteSearchEngineServiceConnection::BatchCreateTargetSites( + ExperimentalTag, NoAwaitTag, + google::cloud::discoveryengine::v1::BatchCreateTargetSitesRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +SiteSearchEngineServiceConnection::BatchCreateTargetSites( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr SiteSearchEngineServiceConnection::GetTargetSite( google::cloud::discoveryengine::v1::GetTargetSiteRequest const&) { @@ -76,6 +109,22 @@ SiteSearchEngineServiceConnection::UpdateTargetSite( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +SiteSearchEngineServiceConnection::UpdateTargetSite( + ExperimentalTag, NoAwaitTag, + google::cloud::discoveryengine::v1::UpdateTargetSiteRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +SiteSearchEngineServiceConnection::UpdateTargetSite( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> SiteSearchEngineServiceConnection::DeleteTargetSite( google::cloud::discoveryengine::v1::DeleteTargetSiteRequest const&) { @@ -84,6 +133,22 @@ SiteSearchEngineServiceConnection::DeleteTargetSite( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +SiteSearchEngineServiceConnection::DeleteTargetSite( + ExperimentalTag, NoAwaitTag, + google::cloud::discoveryengine::v1::DeleteTargetSiteRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +SiteSearchEngineServiceConnection::DeleteTargetSite( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StreamRange SiteSearchEngineServiceConnection::ListTargetSites( google::cloud::discoveryengine::v1:: @@ -102,6 +167,24 @@ SiteSearchEngineServiceConnection::EnableAdvancedSiteSearch( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +SiteSearchEngineServiceConnection::EnableAdvancedSiteSearch( + ExperimentalTag, NoAwaitTag, + google::cloud::discoveryengine::v1:: + EnableAdvancedSiteSearchRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +SiteSearchEngineServiceConnection::EnableAdvancedSiteSearch( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> SiteSearchEngineServiceConnection::DisableAdvancedSiteSearch( @@ -112,6 +195,24 @@ SiteSearchEngineServiceConnection::DisableAdvancedSiteSearch( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +SiteSearchEngineServiceConnection::DisableAdvancedSiteSearch( + ExperimentalTag, NoAwaitTag, + google::cloud::discoveryengine::v1:: + DisableAdvancedSiteSearchRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +SiteSearchEngineServiceConnection::DisableAdvancedSiteSearch( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> SiteSearchEngineServiceConnection::RecrawlUris( google::cloud::discoveryengine::v1::RecrawlUrisRequest const&) { @@ -120,6 +221,22 @@ SiteSearchEngineServiceConnection::RecrawlUris( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +SiteSearchEngineServiceConnection::RecrawlUris( + ExperimentalTag, NoAwaitTag, + google::cloud::discoveryengine::v1::RecrawlUrisRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +SiteSearchEngineServiceConnection::RecrawlUris( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> SiteSearchEngineServiceConnection::BatchVerifyTargetSites( @@ -129,6 +246,23 @@ SiteSearchEngineServiceConnection::BatchVerifyTargetSites( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +SiteSearchEngineServiceConnection::BatchVerifyTargetSites( + ExperimentalTag, NoAwaitTag, + google::cloud::discoveryengine::v1::BatchVerifyTargetSitesRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +SiteSearchEngineServiceConnection::BatchVerifyTargetSites( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StreamRange SiteSearchEngineServiceConnection::FetchDomainVerificationStatus( google::cloud::discoveryengine::v1:: diff --git a/google/cloud/discoveryengine/v1/site_search_engine_connection.h b/google/cloud/discoveryengine/v1/site_search_engine_connection.h index da3fec1a83387..b3b89e2842eea 100644 --- a/google/cloud/discoveryengine/v1/site_search_engine_connection.h +++ b/google/cloud/discoveryengine/v1/site_search_engine_connection.h @@ -22,8 +22,10 @@ #include "google/cloud/discoveryengine/v1/internal/site_search_engine_retry_traits.h" #include "google/cloud/discoveryengine/v1/site_search_engine_connection_idempotency_policy.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/internal/retry_policy_impl.h" +#include "google/cloud/no_await_tag.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" #include "google/cloud/status_or.h" @@ -203,12 +205,31 @@ class SiteSearchEngineServiceConnection { google::cloud::discoveryengine::v1::CreateTargetSiteRequest const& request); + virtual StatusOr CreateTargetSite( + ExperimentalTag, NoAwaitTag, + google::cloud::discoveryengine::v1::CreateTargetSiteRequest const& + request); + + virtual future> + CreateTargetSite(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> BatchCreateTargetSites( google::cloud::discoveryengine::v1::BatchCreateTargetSitesRequest const& request); + virtual StatusOr BatchCreateTargetSites( + ExperimentalTag, NoAwaitTag, + google::cloud::discoveryengine::v1::BatchCreateTargetSitesRequest const& + request); + + virtual future> + BatchCreateTargetSites(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StatusOr GetTargetSite( google::cloud::discoveryengine::v1::GetTargetSiteRequest const& request); @@ -218,12 +239,31 @@ class SiteSearchEngineServiceConnection { google::cloud::discoveryengine::v1::UpdateTargetSiteRequest const& request); + virtual StatusOr UpdateTargetSite( + ExperimentalTag, NoAwaitTag, + google::cloud::discoveryengine::v1::UpdateTargetSiteRequest const& + request); + + virtual future> + UpdateTargetSite(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future< StatusOr> DeleteTargetSite( google::cloud::discoveryengine::v1::DeleteTargetSiteRequest const& request); + virtual StatusOr DeleteTargetSite( + ExperimentalTag, NoAwaitTag, + google::cloud::discoveryengine::v1::DeleteTargetSiteRequest const& + request); + + virtual future< + StatusOr> + DeleteTargetSite(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StreamRange ListTargetSites( google::cloud::discoveryengine::v1::ListTargetSitesRequest request); @@ -234,23 +274,61 @@ class SiteSearchEngineServiceConnection { google::cloud::discoveryengine::v1::EnableAdvancedSiteSearchRequest const& request); + virtual StatusOr EnableAdvancedSiteSearch( + ExperimentalTag, NoAwaitTag, + google::cloud::discoveryengine::v1::EnableAdvancedSiteSearchRequest const& + request); + + virtual future> + EnableAdvancedSiteSearch(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> DisableAdvancedSiteSearch( google::cloud::discoveryengine::v1:: DisableAdvancedSiteSearchRequest const& request); + virtual StatusOr DisableAdvancedSiteSearch( + ExperimentalTag, NoAwaitTag, + google::cloud::discoveryengine::v1:: + DisableAdvancedSiteSearchRequest const& request); + + virtual future> + DisableAdvancedSiteSearch(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future< StatusOr> RecrawlUris( google::cloud::discoveryengine::v1::RecrawlUrisRequest const& request); + virtual StatusOr RecrawlUris( + ExperimentalTag, NoAwaitTag, + google::cloud::discoveryengine::v1::RecrawlUrisRequest const& request); + + virtual future< + StatusOr> + RecrawlUris(ExperimentalTag, google::longrunning::Operation const& operation); + virtual future> BatchVerifyTargetSites( google::cloud::discoveryengine::v1::BatchVerifyTargetSitesRequest const& request); + virtual StatusOr BatchVerifyTargetSites( + ExperimentalTag, NoAwaitTag, + google::cloud::discoveryengine::v1::BatchVerifyTargetSitesRequest const& + request); + + virtual future> + BatchVerifyTargetSites(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StreamRange FetchDomainVerificationStatus( google::cloud::discoveryengine::v1::FetchDomainVerificationStatusRequest diff --git a/google/cloud/discoveryengine/v1/user_event_connection.cc b/google/cloud/discoveryengine/v1/user_event_connection.cc index f876b666daf24..882be8a56b716 100644 --- a/google/cloud/discoveryengine/v1/user_event_connection.cc +++ b/google/cloud/discoveryengine/v1/user_event_connection.cc @@ -56,6 +56,22 @@ UserEventServiceConnection::ImportUserEvents( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +UserEventServiceConnection::ImportUserEvents( + ExperimentalTag, NoAwaitTag, + google::cloud::discoveryengine::v1::ImportUserEventsRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +UserEventServiceConnection::ImportUserEvents( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + std::shared_ptr MakeUserEventServiceConnection( Options options) { internal::CheckExpectedOptions ImportUserEvents( + ExperimentalTag, NoAwaitTag, + google::cloud::discoveryengine::v1::ImportUserEventsRequest const& + request); + + virtual future< + StatusOr> + ImportUserEvents(ExperimentalTag, + google::longrunning::Operation const& operation); }; /** diff --git a/google/cloud/dlp/v2/dlp_connection.h b/google/cloud/dlp/v2/dlp_connection.h index cfa1411ed721c..3dc609cd64fab 100644 --- a/google/cloud/dlp/v2/dlp_connection.h +++ b/google/cloud/dlp/v2/dlp_connection.h @@ -22,6 +22,7 @@ #include "google/cloud/dlp/v2/dlp_connection_idempotency_policy.h" #include "google/cloud/dlp/v2/internal/dlp_retry_traits.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/internal/retry_policy_impl.h" #include "google/cloud/options.h" #include "google/cloud/status_or.h" diff --git a/google/cloud/documentai/v1/document_processor_connection.cc b/google/cloud/documentai/v1/document_processor_connection.cc index 3b02fddc08d85..96420cccbd9a5 100644 --- a/google/cloud/documentai/v1/document_processor_connection.cc +++ b/google/cloud/documentai/v1/document_processor_connection.cc @@ -53,6 +53,22 @@ DocumentProcessorServiceConnection::BatchProcessDocuments( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +DocumentProcessorServiceConnection::BatchProcessDocuments( + ExperimentalTag, NoAwaitTag, + google::cloud::documentai::v1::BatchProcessRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +DocumentProcessorServiceConnection::BatchProcessDocuments( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr DocumentProcessorServiceConnection::FetchProcessorTypes( google::cloud::documentai::v1::FetchProcessorTypesRequest const&) { @@ -95,6 +111,22 @@ DocumentProcessorServiceConnection::TrainProcessorVersion( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +DocumentProcessorServiceConnection::TrainProcessorVersion( + ExperimentalTag, NoAwaitTag, + google::cloud::documentai::v1::TrainProcessorVersionRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +DocumentProcessorServiceConnection::TrainProcessorVersion( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr DocumentProcessorServiceConnection::GetProcessorVersion( google::cloud::documentai::v1::GetProcessorVersionRequest const&) { @@ -117,6 +149,22 @@ DocumentProcessorServiceConnection::DeleteProcessorVersion( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +DocumentProcessorServiceConnection::DeleteProcessorVersion( + ExperimentalTag, NoAwaitTag, + google::cloud::documentai::v1::DeleteProcessorVersionRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +DocumentProcessorServiceConnection::DeleteProcessorVersion( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> DocumentProcessorServiceConnection::DeployProcessorVersion( google::cloud::documentai::v1::DeployProcessorVersionRequest const&) { @@ -125,6 +173,22 @@ DocumentProcessorServiceConnection::DeployProcessorVersion( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +DocumentProcessorServiceConnection::DeployProcessorVersion( + ExperimentalTag, NoAwaitTag, + google::cloud::documentai::v1::DeployProcessorVersionRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +DocumentProcessorServiceConnection::DeployProcessorVersion( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future< StatusOr> DocumentProcessorServiceConnection::UndeployProcessorVersion( @@ -134,6 +198,23 @@ DocumentProcessorServiceConnection::UndeployProcessorVersion( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +DocumentProcessorServiceConnection::UndeployProcessorVersion( + ExperimentalTag, NoAwaitTag, + google::cloud::documentai::v1::UndeployProcessorVersionRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future< + StatusOr> +DocumentProcessorServiceConnection::UndeployProcessorVersion( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr DocumentProcessorServiceConnection::CreateProcessor( google::cloud::documentai::v1::CreateProcessorRequest const&) { @@ -148,6 +229,22 @@ DocumentProcessorServiceConnection::DeleteProcessor( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +DocumentProcessorServiceConnection::DeleteProcessor( + ExperimentalTag, NoAwaitTag, + google::cloud::documentai::v1::DeleteProcessorRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +DocumentProcessorServiceConnection::DeleteProcessor( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> DocumentProcessorServiceConnection::EnableProcessor( google::cloud::documentai::v1::EnableProcessorRequest const&) { @@ -156,6 +253,22 @@ DocumentProcessorServiceConnection::EnableProcessor( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +DocumentProcessorServiceConnection::EnableProcessor( + ExperimentalTag, NoAwaitTag, + google::cloud::documentai::v1::EnableProcessorRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +DocumentProcessorServiceConnection::EnableProcessor( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> DocumentProcessorServiceConnection::DisableProcessor( google::cloud::documentai::v1::DisableProcessorRequest const&) { @@ -164,6 +277,22 @@ DocumentProcessorServiceConnection::DisableProcessor( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +DocumentProcessorServiceConnection::DisableProcessor( + ExperimentalTag, NoAwaitTag, + google::cloud::documentai::v1::DisableProcessorRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +DocumentProcessorServiceConnection::DisableProcessor( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future< StatusOr> DocumentProcessorServiceConnection::SetDefaultProcessorVersion( @@ -173,6 +302,23 @@ DocumentProcessorServiceConnection::SetDefaultProcessorVersion( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +DocumentProcessorServiceConnection::SetDefaultProcessorVersion( + ExperimentalTag, NoAwaitTag, + google::cloud::documentai::v1::SetDefaultProcessorVersionRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future< + StatusOr> +DocumentProcessorServiceConnection::SetDefaultProcessorVersion( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> DocumentProcessorServiceConnection::ReviewDocument( google::cloud::documentai::v1::ReviewDocumentRequest const&) { @@ -181,6 +327,22 @@ DocumentProcessorServiceConnection::ReviewDocument( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +DocumentProcessorServiceConnection::ReviewDocument( + ExperimentalTag, NoAwaitTag, + google::cloud::documentai::v1::ReviewDocumentRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +DocumentProcessorServiceConnection::ReviewDocument( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future< StatusOr> DocumentProcessorServiceConnection::EvaluateProcessorVersion( @@ -190,6 +352,23 @@ DocumentProcessorServiceConnection::EvaluateProcessorVersion( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +DocumentProcessorServiceConnection::EvaluateProcessorVersion( + ExperimentalTag, NoAwaitTag, + google::cloud::documentai::v1::EvaluateProcessorVersionRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future< + StatusOr> +DocumentProcessorServiceConnection::EvaluateProcessorVersion( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr DocumentProcessorServiceConnection::GetEvaluation( google::cloud::documentai::v1::GetEvaluationRequest const&) { diff --git a/google/cloud/documentai/v1/document_processor_connection.h b/google/cloud/documentai/v1/document_processor_connection.h index 54565960c37fa..f6a293be9afcd 100644 --- a/google/cloud/documentai/v1/document_processor_connection.h +++ b/google/cloud/documentai/v1/document_processor_connection.h @@ -22,8 +22,10 @@ #include "google/cloud/documentai/v1/document_processor_connection_idempotency_policy.h" #include "google/cloud/documentai/v1/internal/document_processor_retry_traits.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/internal/retry_policy_impl.h" +#include "google/cloud/no_await_tag.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" #include "google/cloud/status_or.h" @@ -207,6 +209,14 @@ class DocumentProcessorServiceConnection { BatchProcessDocuments( google::cloud::documentai::v1::BatchProcessRequest const& request); + virtual StatusOr BatchProcessDocuments( + ExperimentalTag, NoAwaitTag, + google::cloud::documentai::v1::BatchProcessRequest const& request); + + virtual future> + BatchProcessDocuments(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StatusOr FetchProcessorTypes( google::cloud::documentai::v1::FetchProcessorTypesRequest const& request); @@ -231,6 +241,16 @@ class DocumentProcessorServiceConnection { google::cloud::documentai::v1::TrainProcessorVersionRequest const& request); + virtual StatusOr TrainProcessorVersion( + ExperimentalTag, NoAwaitTag, + google::cloud::documentai::v1::TrainProcessorVersionRequest const& + request); + + virtual future< + StatusOr> + TrainProcessorVersion(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StatusOr GetProcessorVersion( google::cloud::documentai::v1::GetProcessorVersionRequest const& request); @@ -245,18 +265,48 @@ class DocumentProcessorServiceConnection { google::cloud::documentai::v1::DeleteProcessorVersionRequest const& request); + virtual StatusOr DeleteProcessorVersion( + ExperimentalTag, NoAwaitTag, + google::cloud::documentai::v1::DeleteProcessorVersionRequest const& + request); + + virtual future< + StatusOr> + DeleteProcessorVersion(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future< StatusOr> DeployProcessorVersion( google::cloud::documentai::v1::DeployProcessorVersionRequest const& request); + virtual StatusOr DeployProcessorVersion( + ExperimentalTag, NoAwaitTag, + google::cloud::documentai::v1::DeployProcessorVersionRequest const& + request); + + virtual future< + StatusOr> + DeployProcessorVersion(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future< StatusOr> UndeployProcessorVersion( google::cloud::documentai::v1::UndeployProcessorVersionRequest const& request); + virtual StatusOr UndeployProcessorVersion( + ExperimentalTag, NoAwaitTag, + google::cloud::documentai::v1::UndeployProcessorVersionRequest const& + request); + + virtual future< + StatusOr> + UndeployProcessorVersion(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StatusOr CreateProcessor( google::cloud::documentai::v1::CreateProcessorRequest const& request); @@ -265,33 +315,89 @@ class DocumentProcessorServiceConnection { DeleteProcessor( google::cloud::documentai::v1::DeleteProcessorRequest const& request); + virtual StatusOr DeleteProcessor( + ExperimentalTag, NoAwaitTag, + google::cloud::documentai::v1::DeleteProcessorRequest const& request); + + virtual future< + StatusOr> + DeleteProcessor(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future< StatusOr> EnableProcessor( google::cloud::documentai::v1::EnableProcessorRequest const& request); + virtual StatusOr EnableProcessor( + ExperimentalTag, NoAwaitTag, + google::cloud::documentai::v1::EnableProcessorRequest const& request); + + virtual future< + StatusOr> + EnableProcessor(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future< StatusOr> DisableProcessor( google::cloud::documentai::v1::DisableProcessorRequest const& request); + virtual StatusOr DisableProcessor( + ExperimentalTag, NoAwaitTag, + google::cloud::documentai::v1::DisableProcessorRequest const& request); + + virtual future< + StatusOr> + DisableProcessor(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> SetDefaultProcessorVersion( google::cloud::documentai::v1::SetDefaultProcessorVersionRequest const& request); + virtual StatusOr SetDefaultProcessorVersion( + ExperimentalTag, NoAwaitTag, + google::cloud::documentai::v1::SetDefaultProcessorVersionRequest const& + request); + + virtual future> + SetDefaultProcessorVersion(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future< StatusOr> ReviewDocument( google::cloud::documentai::v1::ReviewDocumentRequest const& request); + virtual StatusOr ReviewDocument( + ExperimentalTag, NoAwaitTag, + google::cloud::documentai::v1::ReviewDocumentRequest const& request); + + virtual future< + StatusOr> + ReviewDocument(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future< StatusOr> EvaluateProcessorVersion( google::cloud::documentai::v1::EvaluateProcessorVersionRequest const& request); + virtual StatusOr EvaluateProcessorVersion( + ExperimentalTag, NoAwaitTag, + google::cloud::documentai::v1::EvaluateProcessorVersionRequest const& + request); + + virtual future< + StatusOr> + EvaluateProcessorVersion(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StatusOr GetEvaluation( google::cloud::documentai::v1::GetEvaluationRequest const& request); diff --git a/google/cloud/documentai/v1/internal/document_processor_connection_impl.cc b/google/cloud/documentai/v1/internal/document_processor_connection_impl.cc index 165d8baf85cc3..833baf2fab2e6 100644 --- a/google/cloud/documentai/v1/internal/document_processor_connection_impl.cc +++ b/google/cloud/documentai/v1/internal/document_processor_connection_impl.cc @@ -125,6 +125,60 @@ DocumentProcessorServiceConnectionImpl::BatchProcessDocuments( polling_policy(*current), __func__); } +StatusOr +DocumentProcessorServiceConnectionImpl::BatchProcessDocuments( + ExperimentalTag, NoAwaitTag, + google::cloud::documentai::v1::BatchProcessRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->BatchProcessDocuments(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::documentai::v1::BatchProcessRequest const& request) { + return stub_->BatchProcessDocuments(context, options, request); + }, + *current, request, __func__); +} + +future> +DocumentProcessorServiceConnectionImpl::BatchProcessDocuments( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to BatchProcessDocuments", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::documentai::v1::BatchProcessResponse>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::documentai::v1::BatchProcessResponse>, + polling_policy(*current), __func__); +} + StatusOr DocumentProcessorServiceConnectionImpl::FetchProcessorTypes( google::cloud::documentai::v1::FetchProcessorTypesRequest const& request) { @@ -282,6 +336,61 @@ DocumentProcessorServiceConnectionImpl::TrainProcessorVersion( polling_policy(*current), __func__); } +StatusOr +DocumentProcessorServiceConnectionImpl::TrainProcessorVersion( + ExperimentalTag, NoAwaitTag, + google::cloud::documentai::v1::TrainProcessorVersionRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->TrainProcessorVersion(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::documentai::v1::TrainProcessorVersionRequest const& + request) { + return stub_->TrainProcessorVersion(context, options, request); + }, + *current, request, __func__); +} + +future> +DocumentProcessorServiceConnectionImpl::TrainProcessorVersion( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to TrainProcessorVersion", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::documentai::v1::TrainProcessorVersionResponse>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::documentai::v1::TrainProcessorVersionResponse>, + polling_policy(*current), __func__); +} + StatusOr DocumentProcessorServiceConnectionImpl::GetProcessorVersion( google::cloud::documentai::v1::GetProcessorVersionRequest const& request) { @@ -375,6 +484,61 @@ DocumentProcessorServiceConnectionImpl::DeleteProcessorVersion( polling_policy(*current), __func__); } +StatusOr +DocumentProcessorServiceConnectionImpl::DeleteProcessorVersion( + ExperimentalTag, NoAwaitTag, + google::cloud::documentai::v1::DeleteProcessorVersionRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteProcessorVersion(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::documentai::v1::DeleteProcessorVersionRequest const& + request) { + return stub_->DeleteProcessorVersion(context, options, request); + }, + *current, request, __func__); +} + +future> +DocumentProcessorServiceConnectionImpl::DeleteProcessorVersion( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteProcessorVersion", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::documentai::v1::DeleteProcessorVersionMetadata>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::cloud::documentai::v1::DeleteProcessorVersionMetadata>, + polling_policy(*current), __func__); +} + future> DocumentProcessorServiceConnectionImpl::DeployProcessorVersion( google::cloud::documentai::v1::DeployProcessorVersionRequest const& @@ -416,6 +580,61 @@ DocumentProcessorServiceConnectionImpl::DeployProcessorVersion( polling_policy(*current), __func__); } +StatusOr +DocumentProcessorServiceConnectionImpl::DeployProcessorVersion( + ExperimentalTag, NoAwaitTag, + google::cloud::documentai::v1::DeployProcessorVersionRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeployProcessorVersion(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::documentai::v1::DeployProcessorVersionRequest const& + request) { + return stub_->DeployProcessorVersion(context, options, request); + }, + *current, request, __func__); +} + +future> +DocumentProcessorServiceConnectionImpl::DeployProcessorVersion( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to DeployProcessorVersion", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::documentai::v1::DeployProcessorVersionResponse>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::documentai::v1::DeployProcessorVersionResponse>, + polling_policy(*current), __func__); +} + future< StatusOr> DocumentProcessorServiceConnectionImpl::UndeployProcessorVersion( @@ -458,6 +677,63 @@ DocumentProcessorServiceConnectionImpl::UndeployProcessorVersion( polling_policy(*current), __func__); } +StatusOr +DocumentProcessorServiceConnectionImpl::UndeployProcessorVersion( + ExperimentalTag, NoAwaitTag, + google::cloud::documentai::v1::UndeployProcessorVersionRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UndeployProcessorVersion(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::documentai::v1::UndeployProcessorVersionRequest const& + request) { + return stub_->UndeployProcessorVersion(context, options, request); + }, + *current, request, __func__); +} + +future< + StatusOr> +DocumentProcessorServiceConnectionImpl::UndeployProcessorVersion( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to UndeployProcessorVersion", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::documentai::v1::UndeployProcessorVersionResponse>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::documentai::v1::UndeployProcessorVersionResponse>, + polling_policy(*current), __func__); +} + StatusOr DocumentProcessorServiceConnectionImpl::CreateProcessor( google::cloud::documentai::v1::CreateProcessorRequest const& request) { @@ -513,6 +789,60 @@ DocumentProcessorServiceConnectionImpl::DeleteProcessor( polling_policy(*current), __func__); } +StatusOr +DocumentProcessorServiceConnectionImpl::DeleteProcessor( + ExperimentalTag, NoAwaitTag, + google::cloud::documentai::v1::DeleteProcessorRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteProcessor(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::documentai::v1::DeleteProcessorRequest const& + request) { + return stub_->DeleteProcessor(context, options, request); + }, + *current, request, __func__); +} + +future> +DocumentProcessorServiceConnectionImpl::DeleteProcessor( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteProcessor", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::documentai::v1::DeleteProcessorMetadata>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::cloud::documentai::v1::DeleteProcessorMetadata>, + polling_policy(*current), __func__); +} + future> DocumentProcessorServiceConnectionImpl::EnableProcessor( google::cloud::documentai::v1::EnableProcessorRequest const& request) { @@ -553,6 +883,60 @@ DocumentProcessorServiceConnectionImpl::EnableProcessor( polling_policy(*current), __func__); } +StatusOr +DocumentProcessorServiceConnectionImpl::EnableProcessor( + ExperimentalTag, NoAwaitTag, + google::cloud::documentai::v1::EnableProcessorRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->EnableProcessor(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::documentai::v1::EnableProcessorRequest const& + request) { + return stub_->EnableProcessor(context, options, request); + }, + *current, request, __func__); +} + +future> +DocumentProcessorServiceConnectionImpl::EnableProcessor( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to EnableProcessor", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::documentai::v1::EnableProcessorResponse>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::documentai::v1::EnableProcessorResponse>, + polling_policy(*current), __func__); +} + future> DocumentProcessorServiceConnectionImpl::DisableProcessor( google::cloud::documentai::v1::DisableProcessorRequest const& request) { @@ -593,6 +977,60 @@ DocumentProcessorServiceConnectionImpl::DisableProcessor( polling_policy(*current), __func__); } +StatusOr +DocumentProcessorServiceConnectionImpl::DisableProcessor( + ExperimentalTag, NoAwaitTag, + google::cloud::documentai::v1::DisableProcessorRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DisableProcessor(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::documentai::v1::DisableProcessorRequest const& + request) { + return stub_->DisableProcessor(context, options, request); + }, + *current, request, __func__); +} + +future> +DocumentProcessorServiceConnectionImpl::DisableProcessor( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DisableProcessor", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::documentai::v1::DisableProcessorResponse>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::documentai::v1::DisableProcessorResponse>, + polling_policy(*current), __func__); +} + future< StatusOr> DocumentProcessorServiceConnectionImpl::SetDefaultProcessorVersion( @@ -634,6 +1072,62 @@ DocumentProcessorServiceConnectionImpl::SetDefaultProcessorVersion( polling_policy(*current), __func__); } +StatusOr +DocumentProcessorServiceConnectionImpl::SetDefaultProcessorVersion( + ExperimentalTag, NoAwaitTag, + google::cloud::documentai::v1::SetDefaultProcessorVersionRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->SetDefaultProcessorVersion(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::documentai::v1:: + SetDefaultProcessorVersionRequest const& request) { + return stub_->SetDefaultProcessorVersion(context, options, request); + }, + *current, request, __func__); +} + +future< + StatusOr> +DocumentProcessorServiceConnectionImpl::SetDefaultProcessorVersion( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to SetDefaultProcessorVersion", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::documentai::v1::SetDefaultProcessorVersionResponse>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::documentai::v1::SetDefaultProcessorVersionResponse>, + polling_policy(*current), __func__); +} + future> DocumentProcessorServiceConnectionImpl::ReviewDocument( google::cloud::documentai::v1::ReviewDocumentRequest const& request) { @@ -673,6 +1167,60 @@ DocumentProcessorServiceConnectionImpl::ReviewDocument( polling_policy(*current), __func__); } +StatusOr +DocumentProcessorServiceConnectionImpl::ReviewDocument( + ExperimentalTag, NoAwaitTag, + google::cloud::documentai::v1::ReviewDocumentRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->ReviewDocument(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::documentai::v1::ReviewDocumentRequest const& request) { + return stub_->ReviewDocument(context, options, request); + }, + *current, request, __func__); +} + +future> +DocumentProcessorServiceConnectionImpl::ReviewDocument( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to ReviewDocument", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::documentai::v1::ReviewDocumentResponse>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::documentai::v1::ReviewDocumentResponse>, + polling_policy(*current), __func__); +} + future< StatusOr> DocumentProcessorServiceConnectionImpl::EvaluateProcessorVersion( @@ -715,6 +1263,63 @@ DocumentProcessorServiceConnectionImpl::EvaluateProcessorVersion( polling_policy(*current), __func__); } +StatusOr +DocumentProcessorServiceConnectionImpl::EvaluateProcessorVersion( + ExperimentalTag, NoAwaitTag, + google::cloud::documentai::v1::EvaluateProcessorVersionRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->EvaluateProcessorVersion(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::documentai::v1::EvaluateProcessorVersionRequest const& + request) { + return stub_->EvaluateProcessorVersion(context, options, request); + }, + *current, request, __func__); +} + +future< + StatusOr> +DocumentProcessorServiceConnectionImpl::EvaluateProcessorVersion( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to EvaluateProcessorVersion", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::documentai::v1::EvaluateProcessorVersionResponse>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::documentai::v1::EvaluateProcessorVersionResponse>, + polling_policy(*current), __func__); +} + StatusOr DocumentProcessorServiceConnectionImpl::GetEvaluation( google::cloud::documentai::v1::GetEvaluationRequest const& request) { diff --git a/google/cloud/documentai/v1/internal/document_processor_connection_impl.h b/google/cloud/documentai/v1/internal/document_processor_connection_impl.h index 49edb4609b10d..4344cb1e672fb 100644 --- a/google/cloud/documentai/v1/internal/document_processor_connection_impl.h +++ b/google/cloud/documentai/v1/internal/document_processor_connection_impl.h @@ -61,6 +61,16 @@ class DocumentProcessorServiceConnectionImpl google::cloud::documentai::v1::BatchProcessRequest const& request) override; + StatusOr BatchProcessDocuments( + ExperimentalTag, NoAwaitTag, + google::cloud::documentai::v1::BatchProcessRequest const& request) + override; + + future> + BatchProcessDocuments( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr FetchProcessorTypes( google::cloud::documentai::v1::FetchProcessorTypesRequest const& request) @@ -86,6 +96,16 @@ class DocumentProcessorServiceConnectionImpl google::cloud::documentai::v1::TrainProcessorVersionRequest const& request) override; + StatusOr TrainProcessorVersion( + ExperimentalTag, NoAwaitTag, + google::cloud::documentai::v1::TrainProcessorVersionRequest const& + request) override; + + future> + TrainProcessorVersion( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetProcessorVersion( google::cloud::documentai::v1::GetProcessorVersionRequest const& request) override; @@ -101,18 +121,51 @@ class DocumentProcessorServiceConnectionImpl google::cloud::documentai::v1::DeleteProcessorVersionRequest const& request) override; + StatusOr DeleteProcessorVersion( + ExperimentalTag, NoAwaitTag, + google::cloud::documentai::v1::DeleteProcessorVersionRequest const& + request) override; + + future< + StatusOr> + DeleteProcessorVersion( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future< StatusOr> DeployProcessorVersion( google::cloud::documentai::v1::DeployProcessorVersionRequest const& request) override; + StatusOr DeployProcessorVersion( + ExperimentalTag, NoAwaitTag, + google::cloud::documentai::v1::DeployProcessorVersionRequest const& + request) override; + + future< + StatusOr> + DeployProcessorVersion( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future< StatusOr> UndeployProcessorVersion( google::cloud::documentai::v1::UndeployProcessorVersionRequest const& request) override; + StatusOr UndeployProcessorVersion( + ExperimentalTag, NoAwaitTag, + google::cloud::documentai::v1::UndeployProcessorVersionRequest const& + request) override; + + future< + StatusOr> + UndeployProcessorVersion( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr CreateProcessor( google::cloud::documentai::v1::CreateProcessorRequest const& request) override; @@ -121,30 +174,88 @@ class DocumentProcessorServiceConnectionImpl DeleteProcessor(google::cloud::documentai::v1::DeleteProcessorRequest const& request) override; + StatusOr DeleteProcessor( + ExperimentalTag, NoAwaitTag, + google::cloud::documentai::v1::DeleteProcessorRequest const& request) + override; + + future> + DeleteProcessor(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> EnableProcessor(google::cloud::documentai::v1::EnableProcessorRequest const& request) override; + StatusOr EnableProcessor( + ExperimentalTag, NoAwaitTag, + google::cloud::documentai::v1::EnableProcessorRequest const& request) + override; + + future> + EnableProcessor(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DisableProcessor(google::cloud::documentai::v1::DisableProcessorRequest const& request) override; + StatusOr DisableProcessor( + ExperimentalTag, NoAwaitTag, + google::cloud::documentai::v1::DisableProcessorRequest const& request) + override; + + future> + DisableProcessor(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> SetDefaultProcessorVersion( google::cloud::documentai::v1::SetDefaultProcessorVersionRequest const& request) override; + StatusOr SetDefaultProcessorVersion( + ExperimentalTag, NoAwaitTag, + google::cloud::documentai::v1::SetDefaultProcessorVersionRequest const& + request) override; + + future> + SetDefaultProcessorVersion( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ReviewDocument(google::cloud::documentai::v1::ReviewDocumentRequest const& request) override; + StatusOr ReviewDocument( + ExperimentalTag, NoAwaitTag, + google::cloud::documentai::v1::ReviewDocumentRequest const& request) + override; + + future> + ReviewDocument(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future< StatusOr> EvaluateProcessorVersion( google::cloud::documentai::v1::EvaluateProcessorVersionRequest const& request) override; + StatusOr EvaluateProcessorVersion( + ExperimentalTag, NoAwaitTag, + google::cloud::documentai::v1::EvaluateProcessorVersionRequest const& + request) override; + + future< + StatusOr> + EvaluateProcessorVersion( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetEvaluation( google::cloud::documentai::v1::GetEvaluationRequest const& request) override; diff --git a/google/cloud/documentai/v1/internal/document_processor_tracing_connection.cc b/google/cloud/documentai/v1/internal/document_processor_tracing_connection.cc index 93eac09be2e69..ad90caaef7613 100644 --- a/google/cloud/documentai/v1/internal/document_processor_tracing_connection.cc +++ b/google/cloud/documentai/v1/internal/document_processor_tracing_connection.cc @@ -55,6 +55,30 @@ DocumentProcessorServiceTracingConnection::BatchProcessDocuments( child_->BatchProcessDocuments(request)); } +StatusOr +DocumentProcessorServiceTracingConnection::BatchProcessDocuments( + ExperimentalTag, NoAwaitTag, + google::cloud::documentai::v1::BatchProcessRequest const& request) { + auto span = internal::MakeSpan( + "documentai_v1::DocumentProcessorServiceConnection::" + "BatchProcessDocuments"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->BatchProcessDocuments(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +DocumentProcessorServiceTracingConnection::BatchProcessDocuments( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "documentai_v1::DocumentProcessorServiceConnection::" + "BatchProcessDocuments"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->BatchProcessDocuments( + ExperimentalTag{}, operation)); +} + StatusOr DocumentProcessorServiceTracingConnection::FetchProcessorTypes( google::cloud::documentai::v1::FetchProcessorTypesRequest const& request) { @@ -117,6 +141,31 @@ DocumentProcessorServiceTracingConnection::TrainProcessorVersion( child_->TrainProcessorVersion(request)); } +StatusOr +DocumentProcessorServiceTracingConnection::TrainProcessorVersion( + ExperimentalTag, NoAwaitTag, + google::cloud::documentai::v1::TrainProcessorVersionRequest const& + request) { + auto span = internal::MakeSpan( + "documentai_v1::DocumentProcessorServiceConnection::" + "TrainProcessorVersion"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->TrainProcessorVersion(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +DocumentProcessorServiceTracingConnection::TrainProcessorVersion( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "documentai_v1::DocumentProcessorServiceConnection::" + "TrainProcessorVersion"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->TrainProcessorVersion( + ExperimentalTag{}, operation)); +} + StatusOr DocumentProcessorServiceTracingConnection::GetProcessorVersion( google::cloud::documentai::v1::GetProcessorVersionRequest const& request) { @@ -151,6 +200,31 @@ DocumentProcessorServiceTracingConnection::DeleteProcessorVersion( child_->DeleteProcessorVersion(request)); } +StatusOr +DocumentProcessorServiceTracingConnection::DeleteProcessorVersion( + ExperimentalTag, NoAwaitTag, + google::cloud::documentai::v1::DeleteProcessorVersionRequest const& + request) { + auto span = internal::MakeSpan( + "documentai_v1::DocumentProcessorServiceConnection::" + "DeleteProcessorVersion"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->DeleteProcessorVersion(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +DocumentProcessorServiceTracingConnection::DeleteProcessorVersion( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "documentai_v1::DocumentProcessorServiceConnection::" + "DeleteProcessorVersion"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->DeleteProcessorVersion( + ExperimentalTag{}, operation)); +} + future> DocumentProcessorServiceTracingConnection::DeployProcessorVersion( google::cloud::documentai::v1::DeployProcessorVersionRequest const& @@ -163,6 +237,31 @@ DocumentProcessorServiceTracingConnection::DeployProcessorVersion( child_->DeployProcessorVersion(request)); } +StatusOr +DocumentProcessorServiceTracingConnection::DeployProcessorVersion( + ExperimentalTag, NoAwaitTag, + google::cloud::documentai::v1::DeployProcessorVersionRequest const& + request) { + auto span = internal::MakeSpan( + "documentai_v1::DocumentProcessorServiceConnection::" + "DeployProcessorVersion"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->DeployProcessorVersion(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +DocumentProcessorServiceTracingConnection::DeployProcessorVersion( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "documentai_v1::DocumentProcessorServiceConnection::" + "DeployProcessorVersion"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->DeployProcessorVersion( + ExperimentalTag{}, operation)); +} + future< StatusOr> DocumentProcessorServiceTracingConnection::UndeployProcessorVersion( @@ -176,6 +275,32 @@ DocumentProcessorServiceTracingConnection::UndeployProcessorVersion( child_->UndeployProcessorVersion(request)); } +StatusOr +DocumentProcessorServiceTracingConnection::UndeployProcessorVersion( + ExperimentalTag, NoAwaitTag, + google::cloud::documentai::v1::UndeployProcessorVersionRequest const& + request) { + auto span = internal::MakeSpan( + "documentai_v1::DocumentProcessorServiceConnection::" + "UndeployProcessorVersion"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->UndeployProcessorVersion(ExperimentalTag{}, NoAwaitTag{}, + request)); +} + +future< + StatusOr> +DocumentProcessorServiceTracingConnection::UndeployProcessorVersion( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "documentai_v1::DocumentProcessorServiceConnection::" + "UndeployProcessorVersion"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->UndeployProcessorVersion( + ExperimentalTag{}, operation)); +} + StatusOr DocumentProcessorServiceTracingConnection::CreateProcessor( google::cloud::documentai::v1::CreateProcessorRequest const& request) { @@ -194,6 +319,27 @@ DocumentProcessorServiceTracingConnection::DeleteProcessor( return internal::EndSpan(std::move(span), child_->DeleteProcessor(request)); } +StatusOr +DocumentProcessorServiceTracingConnection::DeleteProcessor( + ExperimentalTag, NoAwaitTag, + google::cloud::documentai::v1::DeleteProcessorRequest const& request) { + auto span = internal::MakeSpan( + "documentai_v1::DocumentProcessorServiceConnection::DeleteProcessor"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->DeleteProcessor(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +DocumentProcessorServiceTracingConnection::DeleteProcessor( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "documentai_v1::DocumentProcessorServiceConnection::DeleteProcessor"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->DeleteProcessor(ExperimentalTag{}, operation)); +} + future> DocumentProcessorServiceTracingConnection::EnableProcessor( google::cloud::documentai::v1::EnableProcessorRequest const& request) { @@ -203,6 +349,27 @@ DocumentProcessorServiceTracingConnection::EnableProcessor( return internal::EndSpan(std::move(span), child_->EnableProcessor(request)); } +StatusOr +DocumentProcessorServiceTracingConnection::EnableProcessor( + ExperimentalTag, NoAwaitTag, + google::cloud::documentai::v1::EnableProcessorRequest const& request) { + auto span = internal::MakeSpan( + "documentai_v1::DocumentProcessorServiceConnection::EnableProcessor"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->EnableProcessor(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +DocumentProcessorServiceTracingConnection::EnableProcessor( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "documentai_v1::DocumentProcessorServiceConnection::EnableProcessor"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->EnableProcessor(ExperimentalTag{}, operation)); +} + future> DocumentProcessorServiceTracingConnection::DisableProcessor( google::cloud::documentai::v1::DisableProcessorRequest const& request) { @@ -212,6 +379,28 @@ DocumentProcessorServiceTracingConnection::DisableProcessor( return internal::EndSpan(std::move(span), child_->DisableProcessor(request)); } +StatusOr +DocumentProcessorServiceTracingConnection::DisableProcessor( + ExperimentalTag, NoAwaitTag, + google::cloud::documentai::v1::DisableProcessorRequest const& request) { + auto span = internal::MakeSpan( + "documentai_v1::DocumentProcessorServiceConnection::DisableProcessor"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->DisableProcessor(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +DocumentProcessorServiceTracingConnection::DisableProcessor( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "documentai_v1::DocumentProcessorServiceConnection::DisableProcessor"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->DisableProcessor(ExperimentalTag{}, operation)); +} + future< StatusOr> DocumentProcessorServiceTracingConnection::SetDefaultProcessorVersion( @@ -225,6 +414,32 @@ DocumentProcessorServiceTracingConnection::SetDefaultProcessorVersion( child_->SetDefaultProcessorVersion(request)); } +StatusOr +DocumentProcessorServiceTracingConnection::SetDefaultProcessorVersion( + ExperimentalTag, NoAwaitTag, + google::cloud::documentai::v1::SetDefaultProcessorVersionRequest const& + request) { + auto span = internal::MakeSpan( + "documentai_v1::DocumentProcessorServiceConnection::" + "SetDefaultProcessorVersion"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->SetDefaultProcessorVersion(ExperimentalTag{}, NoAwaitTag{}, + request)); +} + +future< + StatusOr> +DocumentProcessorServiceTracingConnection::SetDefaultProcessorVersion( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "documentai_v1::DocumentProcessorServiceConnection::" + "SetDefaultProcessorVersion"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->SetDefaultProcessorVersion( + ExperimentalTag{}, operation)); +} + future> DocumentProcessorServiceTracingConnection::ReviewDocument( google::cloud::documentai::v1::ReviewDocumentRequest const& request) { @@ -234,6 +449,27 @@ DocumentProcessorServiceTracingConnection::ReviewDocument( return internal::EndSpan(std::move(span), child_->ReviewDocument(request)); } +StatusOr +DocumentProcessorServiceTracingConnection::ReviewDocument( + ExperimentalTag, NoAwaitTag, + google::cloud::documentai::v1::ReviewDocumentRequest const& request) { + auto span = internal::MakeSpan( + "documentai_v1::DocumentProcessorServiceConnection::ReviewDocument"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->ReviewDocument(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +DocumentProcessorServiceTracingConnection::ReviewDocument( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "documentai_v1::DocumentProcessorServiceConnection::ReviewDocument"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->ReviewDocument(ExperimentalTag{}, operation)); +} + future< StatusOr> DocumentProcessorServiceTracingConnection::EvaluateProcessorVersion( @@ -247,6 +483,32 @@ DocumentProcessorServiceTracingConnection::EvaluateProcessorVersion( child_->EvaluateProcessorVersion(request)); } +StatusOr +DocumentProcessorServiceTracingConnection::EvaluateProcessorVersion( + ExperimentalTag, NoAwaitTag, + google::cloud::documentai::v1::EvaluateProcessorVersionRequest const& + request) { + auto span = internal::MakeSpan( + "documentai_v1::DocumentProcessorServiceConnection::" + "EvaluateProcessorVersion"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->EvaluateProcessorVersion(ExperimentalTag{}, NoAwaitTag{}, + request)); +} + +future< + StatusOr> +DocumentProcessorServiceTracingConnection::EvaluateProcessorVersion( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "documentai_v1::DocumentProcessorServiceConnection::" + "EvaluateProcessorVersion"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->EvaluateProcessorVersion( + ExperimentalTag{}, operation)); +} + StatusOr DocumentProcessorServiceTracingConnection::GetEvaluation( google::cloud::documentai::v1::GetEvaluationRequest const& request) { diff --git a/google/cloud/documentai/v1/internal/document_processor_tracing_connection.h b/google/cloud/documentai/v1/internal/document_processor_tracing_connection.h index 982fe063f5870..8b389d353f5e3 100644 --- a/google/cloud/documentai/v1/internal/document_processor_tracing_connection.h +++ b/google/cloud/documentai/v1/internal/document_processor_tracing_connection.h @@ -48,6 +48,16 @@ class DocumentProcessorServiceTracingConnection google::cloud::documentai::v1::BatchProcessRequest const& request) override; + StatusOr BatchProcessDocuments( + ExperimentalTag, NoAwaitTag, + google::cloud::documentai::v1::BatchProcessRequest const& request) + override; + + future> + BatchProcessDocuments( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr FetchProcessorTypes( google::cloud::documentai::v1::FetchProcessorTypesRequest const& request) @@ -73,6 +83,16 @@ class DocumentProcessorServiceTracingConnection google::cloud::documentai::v1::TrainProcessorVersionRequest const& request) override; + StatusOr TrainProcessorVersion( + ExperimentalTag, NoAwaitTag, + google::cloud::documentai::v1::TrainProcessorVersionRequest const& + request) override; + + future> + TrainProcessorVersion( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetProcessorVersion( google::cloud::documentai::v1::GetProcessorVersionRequest const& request) override; @@ -88,18 +108,51 @@ class DocumentProcessorServiceTracingConnection google::cloud::documentai::v1::DeleteProcessorVersionRequest const& request) override; + StatusOr DeleteProcessorVersion( + ExperimentalTag, NoAwaitTag, + google::cloud::documentai::v1::DeleteProcessorVersionRequest const& + request) override; + + future< + StatusOr> + DeleteProcessorVersion( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future< StatusOr> DeployProcessorVersion( google::cloud::documentai::v1::DeployProcessorVersionRequest const& request) override; + StatusOr DeployProcessorVersion( + ExperimentalTag, NoAwaitTag, + google::cloud::documentai::v1::DeployProcessorVersionRequest const& + request) override; + + future< + StatusOr> + DeployProcessorVersion( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future< StatusOr> UndeployProcessorVersion( google::cloud::documentai::v1::UndeployProcessorVersionRequest const& request) override; + StatusOr UndeployProcessorVersion( + ExperimentalTag, NoAwaitTag, + google::cloud::documentai::v1::UndeployProcessorVersionRequest const& + request) override; + + future< + StatusOr> + UndeployProcessorVersion( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr CreateProcessor( google::cloud::documentai::v1::CreateProcessorRequest const& request) override; @@ -108,30 +161,88 @@ class DocumentProcessorServiceTracingConnection DeleteProcessor(google::cloud::documentai::v1::DeleteProcessorRequest const& request) override; + StatusOr DeleteProcessor( + ExperimentalTag, NoAwaitTag, + google::cloud::documentai::v1::DeleteProcessorRequest const& request) + override; + + future> + DeleteProcessor(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> EnableProcessor(google::cloud::documentai::v1::EnableProcessorRequest const& request) override; + StatusOr EnableProcessor( + ExperimentalTag, NoAwaitTag, + google::cloud::documentai::v1::EnableProcessorRequest const& request) + override; + + future> + EnableProcessor(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DisableProcessor(google::cloud::documentai::v1::DisableProcessorRequest const& request) override; + StatusOr DisableProcessor( + ExperimentalTag, NoAwaitTag, + google::cloud::documentai::v1::DisableProcessorRequest const& request) + override; + + future> + DisableProcessor(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> SetDefaultProcessorVersion( google::cloud::documentai::v1::SetDefaultProcessorVersionRequest const& request) override; + StatusOr SetDefaultProcessorVersion( + ExperimentalTag, NoAwaitTag, + google::cloud::documentai::v1::SetDefaultProcessorVersionRequest const& + request) override; + + future> + SetDefaultProcessorVersion( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ReviewDocument(google::cloud::documentai::v1::ReviewDocumentRequest const& request) override; + StatusOr ReviewDocument( + ExperimentalTag, NoAwaitTag, + google::cloud::documentai::v1::ReviewDocumentRequest const& request) + override; + + future> + ReviewDocument(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future< StatusOr> EvaluateProcessorVersion( google::cloud::documentai::v1::EvaluateProcessorVersionRequest const& request) override; + StatusOr EvaluateProcessorVersion( + ExperimentalTag, NoAwaitTag, + google::cloud::documentai::v1::EvaluateProcessorVersionRequest const& + request) override; + + future< + StatusOr> + EvaluateProcessorVersion( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetEvaluation( google::cloud::documentai::v1::GetEvaluationRequest const& request) override; diff --git a/google/cloud/documentai/v1/mocks/mock_document_processor_connection.h b/google/cloud/documentai/v1/mocks/mock_document_processor_connection.h index 69139c6a691b1..64cbad6266834 100644 --- a/google/cloud/documentai/v1/mocks/mock_document_processor_connection.h +++ b/google/cloud/documentai/v1/mocks/mock_document_processor_connection.h @@ -58,6 +58,18 @@ class MockDocumentProcessorServiceConnection (google::cloud::documentai::v1::BatchProcessRequest const& request), (override)); + MOCK_METHOD( + StatusOr, BatchProcessDocuments, + (ExperimentalTag, NoAwaitTag, + google::cloud::documentai::v1::BatchProcessRequest const& request), + (override)); + + MOCK_METHOD( + future>, + BatchProcessDocuments, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr, FetchProcessorTypes, @@ -94,6 +106,20 @@ class MockDocumentProcessorServiceConnection request), (override)); + MOCK_METHOD( + StatusOr, TrainProcessorVersion, + (ExperimentalTag, NoAwaitTag, + google::cloud::documentai::v1::TrainProcessorVersionRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + TrainProcessorVersion, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(StatusOr, GetProcessorVersion, (google::cloud::documentai::v1::GetProcessorVersionRequest const& @@ -114,6 +140,20 @@ class MockDocumentProcessorServiceConnection request), (override)); + MOCK_METHOD( + StatusOr, DeleteProcessorVersion, + (ExperimentalTag, NoAwaitTag, + google::cloud::documentai::v1::DeleteProcessorVersionRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + DeleteProcessorVersion, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, @@ -122,6 +162,20 @@ class MockDocumentProcessorServiceConnection request), (override)); + MOCK_METHOD( + StatusOr, DeployProcessorVersion, + (ExperimentalTag, NoAwaitTag, + google::cloud::documentai::v1::DeployProcessorVersionRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + DeployProcessorVersion, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, @@ -130,6 +184,20 @@ class MockDocumentProcessorServiceConnection request), (override)); + MOCK_METHOD( + StatusOr, UndeployProcessorVersion, + (ExperimentalTag, NoAwaitTag, + google::cloud::documentai::v1::UndeployProcessorVersionRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + UndeployProcessorVersion, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr, CreateProcessor, (google::cloud::documentai::v1::CreateProcessorRequest const& request), @@ -141,18 +209,54 @@ class MockDocumentProcessorServiceConnection (google::cloud::documentai::v1::DeleteProcessorRequest const& request), (override)); + MOCK_METHOD( + StatusOr, DeleteProcessor, + (ExperimentalTag, NoAwaitTag, + google::cloud::documentai::v1::DeleteProcessorRequest const& request), + (override)); + + MOCK_METHOD( + future>, + DeleteProcessor, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, EnableProcessor, (google::cloud::documentai::v1::EnableProcessorRequest const& request), (override)); + MOCK_METHOD( + StatusOr, EnableProcessor, + (ExperimentalTag, NoAwaitTag, + google::cloud::documentai::v1::EnableProcessorRequest const& request), + (override)); + + MOCK_METHOD( + future>, + EnableProcessor, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DisableProcessor, (google::cloud::documentai::v1::DisableProcessorRequest const& request), (override)); + MOCK_METHOD( + StatusOr, DisableProcessor, + (ExperimentalTag, NoAwaitTag, + google::cloud::documentai::v1::DisableProcessorRequest const& request), + (override)); + + MOCK_METHOD( + future>, + DisableProcessor, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, @@ -161,12 +265,38 @@ class MockDocumentProcessorServiceConnection request), (override)); + MOCK_METHOD( + StatusOr, SetDefaultProcessorVersion, + (ExperimentalTag, NoAwaitTag, + google::cloud::documentai::v1::SetDefaultProcessorVersionRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + SetDefaultProcessorVersion, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, ReviewDocument, (google::cloud::documentai::v1::ReviewDocumentRequest const& request), (override)); + MOCK_METHOD( + StatusOr, ReviewDocument, + (ExperimentalTag, NoAwaitTag, + google::cloud::documentai::v1::ReviewDocumentRequest const& request), + (override)); + + MOCK_METHOD( + future>, + ReviewDocument, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, @@ -175,6 +305,20 @@ class MockDocumentProcessorServiceConnection request), (override)); + MOCK_METHOD( + StatusOr, EvaluateProcessorVersion, + (ExperimentalTag, NoAwaitTag, + google::cloud::documentai::v1::EvaluateProcessorVersionRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + EvaluateProcessorVersion, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr, GetEvaluation, (google::cloud::documentai::v1::GetEvaluationRequest const& request), diff --git a/google/cloud/domains/v1/domains_connection.cc b/google/cloud/domains/v1/domains_connection.cc index c0664c59042ba..df8cac040b6e2 100644 --- a/google/cloud/domains/v1/domains_connection.cc +++ b/google/cloud/domains/v1/domains_connection.cc @@ -58,6 +58,21 @@ DomainsConnection::RegisterDomain( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr DomainsConnection::RegisterDomain( + ExperimentalTag, NoAwaitTag, + google::cloud::domains::v1::RegisterDomainRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +DomainsConnection::RegisterDomain(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr DomainsConnection::RetrieveTransferParameters( google::cloud::domains::v1::RetrieveTransferParametersRequest const&) { @@ -72,6 +87,21 @@ DomainsConnection::TransferDomain( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr DomainsConnection::TransferDomain( + ExperimentalTag, NoAwaitTag, + google::cloud::domains::v1::TransferDomainRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +DomainsConnection::TransferDomain(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StreamRange DomainsConnection::ListRegistrations( google::cloud::domains::v1:: @@ -94,6 +124,21 @@ DomainsConnection::UpdateRegistration( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr DomainsConnection::UpdateRegistration( + ExperimentalTag, NoAwaitTag, + google::cloud::domains::v1::UpdateRegistrationRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +DomainsConnection::UpdateRegistration(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> DomainsConnection::ConfigureManagementSettings( google::cloud::domains::v1::ConfigureManagementSettingsRequest const&) { @@ -102,6 +147,22 @@ DomainsConnection::ConfigureManagementSettings( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +DomainsConnection::ConfigureManagementSettings( + ExperimentalTag, NoAwaitTag, + google::cloud::domains::v1::ConfigureManagementSettingsRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +DomainsConnection::ConfigureManagementSettings( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> DomainsConnection::ConfigureDnsSettings( google::cloud::domains::v1::ConfigureDnsSettingsRequest const&) { @@ -110,6 +171,22 @@ DomainsConnection::ConfigureDnsSettings( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +DomainsConnection::ConfigureDnsSettings( + ExperimentalTag, NoAwaitTag, + google::cloud::domains::v1::ConfigureDnsSettingsRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +DomainsConnection::ConfigureDnsSettings(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> DomainsConnection::ConfigureContactSettings( google::cloud::domains::v1::ConfigureContactSettingsRequest const&) { @@ -118,6 +195,22 @@ DomainsConnection::ConfigureContactSettings( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +DomainsConnection::ConfigureContactSettings( + ExperimentalTag, NoAwaitTag, + google::cloud::domains::v1::ConfigureContactSettingsRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +DomainsConnection::ConfigureContactSettings( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> DomainsConnection::ExportRegistration( google::cloud::domains::v1::ExportRegistrationRequest const&) { @@ -126,6 +219,21 @@ DomainsConnection::ExportRegistration( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr DomainsConnection::ExportRegistration( + ExperimentalTag, NoAwaitTag, + google::cloud::domains::v1::ExportRegistrationRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +DomainsConnection::ExportRegistration(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> DomainsConnection::DeleteRegistration( google::cloud::domains::v1::DeleteRegistrationRequest const&) { @@ -134,6 +242,21 @@ DomainsConnection::DeleteRegistration( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr DomainsConnection::DeleteRegistration( + ExperimentalTag, NoAwaitTag, + google::cloud::domains::v1::DeleteRegistrationRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +DomainsConnection::DeleteRegistration(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr DomainsConnection::RetrieveAuthorizationCode( google::cloud::domains::v1::RetrieveAuthorizationCodeRequest const&) { diff --git a/google/cloud/domains/v1/domains_connection.h b/google/cloud/domains/v1/domains_connection.h index 7d9b2b86d7ad8..d83641830c486 100644 --- a/google/cloud/domains/v1/domains_connection.h +++ b/google/cloud/domains/v1/domains_connection.h @@ -22,8 +22,10 @@ #include "google/cloud/domains/v1/domains_connection_idempotency_policy.h" #include "google/cloud/domains/v1/internal/domains_retry_traits.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/internal/retry_policy_impl.h" +#include "google/cloud/no_await_tag.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" #include "google/cloud/status_or.h" @@ -196,6 +198,14 @@ class DomainsConnection { RegisterDomain( google::cloud::domains::v1::RegisterDomainRequest const& request); + virtual StatusOr RegisterDomain( + ExperimentalTag, NoAwaitTag, + google::cloud::domains::v1::RegisterDomainRequest const& request); + + virtual future> + RegisterDomain(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StatusOr< google::cloud::domains::v1::RetrieveTransferParametersResponse> RetrieveTransferParameters( @@ -206,6 +216,14 @@ class DomainsConnection { TransferDomain( google::cloud::domains::v1::TransferDomainRequest const& request); + virtual StatusOr TransferDomain( + ExperimentalTag, NoAwaitTag, + google::cloud::domains::v1::TransferDomainRequest const& request); + + virtual future> + TransferDomain(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StreamRange ListRegistrations( google::cloud::domains::v1::ListRegistrationsRequest request); @@ -217,28 +235,78 @@ class DomainsConnection { UpdateRegistration( google::cloud::domains::v1::UpdateRegistrationRequest const& request); + virtual StatusOr UpdateRegistration( + ExperimentalTag, NoAwaitTag, + google::cloud::domains::v1::UpdateRegistrationRequest const& request); + + virtual future> + UpdateRegistration(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> ConfigureManagementSettings( google::cloud::domains::v1::ConfigureManagementSettingsRequest const& request); + virtual StatusOr ConfigureManagementSettings( + ExperimentalTag, NoAwaitTag, + google::cloud::domains::v1::ConfigureManagementSettingsRequest const& + request); + + virtual future> + ConfigureManagementSettings(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> ConfigureDnsSettings( google::cloud::domains::v1::ConfigureDnsSettingsRequest const& request); + virtual StatusOr ConfigureDnsSettings( + ExperimentalTag, NoAwaitTag, + google::cloud::domains::v1::ConfigureDnsSettingsRequest const& request); + + virtual future> + ConfigureDnsSettings(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> ConfigureContactSettings( google::cloud::domains::v1::ConfigureContactSettingsRequest const& request); + virtual StatusOr ConfigureContactSettings( + ExperimentalTag, NoAwaitTag, + google::cloud::domains::v1::ConfigureContactSettingsRequest const& + request); + + virtual future> + ConfigureContactSettings(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> ExportRegistration( google::cloud::domains::v1::ExportRegistrationRequest const& request); + virtual StatusOr ExportRegistration( + ExperimentalTag, NoAwaitTag, + google::cloud::domains::v1::ExportRegistrationRequest const& request); + + virtual future> + ExportRegistration(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> DeleteRegistration( google::cloud::domains::v1::DeleteRegistrationRequest const& request); + virtual StatusOr DeleteRegistration( + ExperimentalTag, NoAwaitTag, + google::cloud::domains::v1::DeleteRegistrationRequest const& request); + + virtual future> + DeleteRegistration(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StatusOr RetrieveAuthorizationCode( google::cloud::domains::v1::RetrieveAuthorizationCodeRequest const& diff --git a/google/cloud/domains/v1/internal/domains_connection_impl.cc b/google/cloud/domains/v1/internal/domains_connection_impl.cc index 45d5fe832e060..806a08c70b975 100644 --- a/google/cloud/domains/v1/internal/domains_connection_impl.cc +++ b/google/cloud/domains/v1/internal/domains_connection_impl.cc @@ -132,6 +132,57 @@ DomainsConnectionImpl::RegisterDomain( polling_policy(*current), __func__); } +StatusOr DomainsConnectionImpl::RegisterDomain( + ExperimentalTag, NoAwaitTag, + google::cloud::domains::v1::RegisterDomainRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->RegisterDomain(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::domains::v1::RegisterDomainRequest const& request) { + return stub_->RegisterDomain(context, options, request); + }, + *current, request, __func__); +} + +future> +DomainsConnectionImpl::RegisterDomain( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to RegisterDomain", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::domains::v1::Registration>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::domains::v1::Registration>, + polling_policy(*current), __func__); +} + StatusOr DomainsConnectionImpl::RetrieveTransferParameters( google::cloud::domains::v1::RetrieveTransferParametersRequest const& @@ -188,6 +239,57 @@ DomainsConnectionImpl::TransferDomain( polling_policy(*current), __func__); } +StatusOr DomainsConnectionImpl::TransferDomain( + ExperimentalTag, NoAwaitTag, + google::cloud::domains::v1::TransferDomainRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->TransferDomain(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::domains::v1::TransferDomainRequest const& request) { + return stub_->TransferDomain(context, options, request); + }, + *current, request, __func__); +} + +future> +DomainsConnectionImpl::TransferDomain( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to TransferDomain", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::domains::v1::Registration>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::domains::v1::Registration>, + polling_policy(*current), __func__); +} + StreamRange DomainsConnectionImpl::ListRegistrations( google::cloud::domains::v1::ListRegistrationsRequest request) { @@ -277,6 +379,59 @@ DomainsConnectionImpl::UpdateRegistration( polling_policy(*current), __func__); } +StatusOr +DomainsConnectionImpl::UpdateRegistration( + ExperimentalTag, NoAwaitTag, + google::cloud::domains::v1::UpdateRegistrationRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UpdateRegistration(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::domains::v1::UpdateRegistrationRequest const& + request) { + return stub_->UpdateRegistration(context, options, request); + }, + *current, request, __func__); +} + +future> +DomainsConnectionImpl::UpdateRegistration( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to UpdateRegistration", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::domains::v1::Registration>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::domains::v1::Registration>, + polling_policy(*current), __func__); +} + future> DomainsConnectionImpl::ConfigureManagementSettings( google::cloud::domains::v1::ConfigureManagementSettingsRequest const& @@ -318,6 +473,61 @@ DomainsConnectionImpl::ConfigureManagementSettings( polling_policy(*current), __func__); } +StatusOr +DomainsConnectionImpl::ConfigureManagementSettings( + ExperimentalTag, NoAwaitTag, + google::cloud::domains::v1::ConfigureManagementSettingsRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->ConfigureManagementSettings(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::domains::v1::ConfigureManagementSettingsRequest const& + request) { + return stub_->ConfigureManagementSettings(context, options, request); + }, + *current, request, __func__); +} + +future> +DomainsConnectionImpl::ConfigureManagementSettings( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to ConfigureManagementSettings", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::domains::v1::Registration>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::domains::v1::Registration>, + polling_policy(*current), __func__); +} + future> DomainsConnectionImpl::ConfigureDnsSettings( google::cloud::domains::v1::ConfigureDnsSettingsRequest const& request) { @@ -358,6 +568,59 @@ DomainsConnectionImpl::ConfigureDnsSettings( polling_policy(*current), __func__); } +StatusOr +DomainsConnectionImpl::ConfigureDnsSettings( + ExperimentalTag, NoAwaitTag, + google::cloud::domains::v1::ConfigureDnsSettingsRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->ConfigureDnsSettings(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::domains::v1::ConfigureDnsSettingsRequest const& + request) { + return stub_->ConfigureDnsSettings(context, options, request); + }, + *current, request, __func__); +} + +future> +DomainsConnectionImpl::ConfigureDnsSettings( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to ConfigureDnsSettings", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::domains::v1::Registration>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::domains::v1::Registration>, + polling_policy(*current), __func__); +} + future> DomainsConnectionImpl::ConfigureContactSettings( google::cloud::domains::v1::ConfigureContactSettingsRequest const& @@ -399,6 +662,60 @@ DomainsConnectionImpl::ConfigureContactSettings( polling_policy(*current), __func__); } +StatusOr +DomainsConnectionImpl::ConfigureContactSettings( + ExperimentalTag, NoAwaitTag, + google::cloud::domains::v1::ConfigureContactSettingsRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->ConfigureContactSettings(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::domains::v1::ConfigureContactSettingsRequest const& + request) { + return stub_->ConfigureContactSettings(context, options, request); + }, + *current, request, __func__); +} + +future> +DomainsConnectionImpl::ConfigureContactSettings( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to ConfigureContactSettings", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::domains::v1::Registration>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::domains::v1::Registration>, + polling_policy(*current), __func__); +} + future> DomainsConnectionImpl::ExportRegistration( google::cloud::domains::v1::ExportRegistrationRequest const& request) { @@ -439,6 +756,59 @@ DomainsConnectionImpl::ExportRegistration( polling_policy(*current), __func__); } +StatusOr +DomainsConnectionImpl::ExportRegistration( + ExperimentalTag, NoAwaitTag, + google::cloud::domains::v1::ExportRegistrationRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->ExportRegistration(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::domains::v1::ExportRegistrationRequest const& + request) { + return stub_->ExportRegistration(context, options, request); + }, + *current, request, __func__); +} + +future> +DomainsConnectionImpl::ExportRegistration( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to ExportRegistration", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::domains::v1::Registration>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::domains::v1::Registration>, + polling_policy(*current), __func__); +} + future> DomainsConnectionImpl::DeleteRegistration( google::cloud::domains::v1::DeleteRegistrationRequest const& request) { @@ -479,6 +849,59 @@ DomainsConnectionImpl::DeleteRegistration( polling_policy(*current), __func__); } +StatusOr +DomainsConnectionImpl::DeleteRegistration( + ExperimentalTag, NoAwaitTag, + google::cloud::domains::v1::DeleteRegistrationRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteRegistration(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::domains::v1::DeleteRegistrationRequest const& + request) { + return stub_->DeleteRegistration(context, options, request); + }, + *current, request, __func__); +} + +future> +DomainsConnectionImpl::DeleteRegistration( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteRegistration", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::domains::v1::OperationMetadata>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::cloud::domains::v1::OperationMetadata>, + polling_policy(*current), __func__); +} + StatusOr DomainsConnectionImpl::RetrieveAuthorizationCode( google::cloud::domains::v1::RetrieveAuthorizationCodeRequest const& diff --git a/google/cloud/domains/v1/internal/domains_connection_impl.h b/google/cloud/domains/v1/internal/domains_connection_impl.h index cd10c8f9e03d8..a6521ffbd89bc 100644 --- a/google/cloud/domains/v1/internal/domains_connection_impl.h +++ b/google/cloud/domains/v1/internal/domains_connection_impl.h @@ -62,6 +62,15 @@ class DomainsConnectionImpl : public domains_v1::DomainsConnection { google::cloud::domains::v1::RegisterDomainRequest const& request) override; + StatusOr RegisterDomain( + ExperimentalTag, NoAwaitTag, + google::cloud::domains::v1::RegisterDomainRequest const& request) + override; + + future> RegisterDomain( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr RetrieveTransferParameters( google::cloud::domains::v1::RetrieveTransferParametersRequest const& @@ -71,6 +80,15 @@ class DomainsConnectionImpl : public domains_v1::DomainsConnection { google::cloud::domains::v1::TransferDomainRequest const& request) override; + StatusOr TransferDomain( + ExperimentalTag, NoAwaitTag, + google::cloud::domains::v1::TransferDomainRequest const& request) + override; + + future> TransferDomain( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListRegistrations( google::cloud::domains::v1::ListRegistrationsRequest request) override; @@ -82,30 +100,87 @@ class DomainsConnectionImpl : public domains_v1::DomainsConnection { google::cloud::domains::v1::UpdateRegistrationRequest const& request) override; + StatusOr UpdateRegistration( + ExperimentalTag, NoAwaitTag, + google::cloud::domains::v1::UpdateRegistrationRequest const& request) + override; + + future> UpdateRegistration( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ConfigureManagementSettings( google::cloud::domains::v1::ConfigureManagementSettingsRequest const& request) override; + StatusOr ConfigureManagementSettings( + ExperimentalTag, NoAwaitTag, + google::cloud::domains::v1::ConfigureManagementSettingsRequest const& + request) override; + + future> + ConfigureManagementSettings( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ConfigureDnsSettings( google::cloud::domains::v1::ConfigureDnsSettingsRequest const& request) override; + StatusOr ConfigureDnsSettings( + ExperimentalTag, NoAwaitTag, + google::cloud::domains::v1::ConfigureDnsSettingsRequest const& request) + override; + + future> + ConfigureDnsSettings( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ConfigureContactSettings( google::cloud::domains::v1::ConfigureContactSettingsRequest const& request) override; + StatusOr ConfigureContactSettings( + ExperimentalTag, NoAwaitTag, + google::cloud::domains::v1::ConfigureContactSettingsRequest const& + request) override; + + future> + ConfigureContactSettings( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ExportRegistration( google::cloud::domains::v1::ExportRegistrationRequest const& request) override; + StatusOr ExportRegistration( + ExperimentalTag, NoAwaitTag, + google::cloud::domains::v1::ExportRegistrationRequest const& request) + override; + + future> ExportRegistration( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteRegistration( google::cloud::domains::v1::DeleteRegistrationRequest const& request) override; + StatusOr DeleteRegistration( + ExperimentalTag, NoAwaitTag, + google::cloud::domains::v1::DeleteRegistrationRequest const& request) + override; + + future> + DeleteRegistration(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr RetrieveAuthorizationCode( google::cloud::domains::v1::RetrieveAuthorizationCodeRequest const& diff --git a/google/cloud/domains/v1/internal/domains_tracing_connection.cc b/google/cloud/domains/v1/internal/domains_tracing_connection.cc index 88c2d2773f9f5..ed75bda284621 100644 --- a/google/cloud/domains/v1/internal/domains_tracing_connection.cc +++ b/google/cloud/domains/v1/internal/domains_tracing_connection.cc @@ -61,6 +61,27 @@ DomainsTracingConnection::RegisterDomain( return internal::EndSpan(std::move(span), child_->RegisterDomain(request)); } +StatusOr +DomainsTracingConnection::RegisterDomain( + ExperimentalTag, NoAwaitTag, + google::cloud::domains::v1::RegisterDomainRequest const& request) { + auto span = + internal::MakeSpan("domains_v1::DomainsConnection::RegisterDomain"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->RegisterDomain(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +DomainsTracingConnection::RegisterDomain( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = + internal::MakeSpan("domains_v1::DomainsConnection::RegisterDomain"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->RegisterDomain(ExperimentalTag{}, operation)); +} + StatusOr DomainsTracingConnection::RetrieveTransferParameters( google::cloud::domains::v1::RetrieveTransferParametersRequest const& @@ -80,6 +101,27 @@ DomainsTracingConnection::TransferDomain( return internal::EndSpan(std::move(span), child_->TransferDomain(request)); } +StatusOr +DomainsTracingConnection::TransferDomain( + ExperimentalTag, NoAwaitTag, + google::cloud::domains::v1::TransferDomainRequest const& request) { + auto span = + internal::MakeSpan("domains_v1::DomainsConnection::TransferDomain"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->TransferDomain(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +DomainsTracingConnection::TransferDomain( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = + internal::MakeSpan("domains_v1::DomainsConnection::TransferDomain"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->TransferDomain(ExperimentalTag{}, operation)); +} + StreamRange DomainsTracingConnection::ListRegistrations( google::cloud::domains::v1::ListRegistrationsRequest request) { @@ -110,6 +152,28 @@ DomainsTracingConnection::UpdateRegistration( child_->UpdateRegistration(request)); } +StatusOr +DomainsTracingConnection::UpdateRegistration( + ExperimentalTag, NoAwaitTag, + google::cloud::domains::v1::UpdateRegistrationRequest const& request) { + auto span = + internal::MakeSpan("domains_v1::DomainsConnection::UpdateRegistration"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->UpdateRegistration(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +DomainsTracingConnection::UpdateRegistration( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = + internal::MakeSpan("domains_v1::DomainsConnection::UpdateRegistration"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->UpdateRegistration( + ExperimentalTag{}, operation)); +} + future> DomainsTracingConnection::ConfigureManagementSettings( google::cloud::domains::v1::ConfigureManagementSettingsRequest const& @@ -121,6 +185,29 @@ DomainsTracingConnection::ConfigureManagementSettings( child_->ConfigureManagementSettings(request)); } +StatusOr +DomainsTracingConnection::ConfigureManagementSettings( + ExperimentalTag, NoAwaitTag, + google::cloud::domains::v1::ConfigureManagementSettingsRequest const& + request) { + auto span = internal::MakeSpan( + "domains_v1::DomainsConnection::ConfigureManagementSettings"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->ConfigureManagementSettings(ExperimentalTag{}, + NoAwaitTag{}, request)); +} + +future> +DomainsTracingConnection::ConfigureManagementSettings( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "domains_v1::DomainsConnection::ConfigureManagementSettings"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->ConfigureManagementSettings( + ExperimentalTag{}, operation)); +} + future> DomainsTracingConnection::ConfigureDnsSettings( google::cloud::domains::v1::ConfigureDnsSettingsRequest const& request) { @@ -131,6 +218,28 @@ DomainsTracingConnection::ConfigureDnsSettings( child_->ConfigureDnsSettings(request)); } +StatusOr +DomainsTracingConnection::ConfigureDnsSettings( + ExperimentalTag, NoAwaitTag, + google::cloud::domains::v1::ConfigureDnsSettingsRequest const& request) { + auto span = + internal::MakeSpan("domains_v1::DomainsConnection::ConfigureDnsSettings"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->ConfigureDnsSettings(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +DomainsTracingConnection::ConfigureDnsSettings( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = + internal::MakeSpan("domains_v1::DomainsConnection::ConfigureDnsSettings"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->ConfigureDnsSettings( + ExperimentalTag{}, operation)); +} + future> DomainsTracingConnection::ConfigureContactSettings( google::cloud::domains::v1::ConfigureContactSettingsRequest const& @@ -142,6 +251,29 @@ DomainsTracingConnection::ConfigureContactSettings( child_->ConfigureContactSettings(request)); } +StatusOr +DomainsTracingConnection::ConfigureContactSettings( + ExperimentalTag, NoAwaitTag, + google::cloud::domains::v1::ConfigureContactSettingsRequest const& + request) { + auto span = internal::MakeSpan( + "domains_v1::DomainsConnection::ConfigureContactSettings"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->ConfigureContactSettings(ExperimentalTag{}, NoAwaitTag{}, + request)); +} + +future> +DomainsTracingConnection::ConfigureContactSettings( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "domains_v1::DomainsConnection::ConfigureContactSettings"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->ConfigureContactSettings( + ExperimentalTag{}, operation)); +} + future> DomainsTracingConnection::ExportRegistration( google::cloud::domains::v1::ExportRegistrationRequest const& request) { @@ -152,6 +284,28 @@ DomainsTracingConnection::ExportRegistration( child_->ExportRegistration(request)); } +StatusOr +DomainsTracingConnection::ExportRegistration( + ExperimentalTag, NoAwaitTag, + google::cloud::domains::v1::ExportRegistrationRequest const& request) { + auto span = + internal::MakeSpan("domains_v1::DomainsConnection::ExportRegistration"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->ExportRegistration(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +DomainsTracingConnection::ExportRegistration( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = + internal::MakeSpan("domains_v1::DomainsConnection::ExportRegistration"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->ExportRegistration( + ExperimentalTag{}, operation)); +} + future> DomainsTracingConnection::DeleteRegistration( google::cloud::domains::v1::DeleteRegistrationRequest const& request) { @@ -162,6 +316,28 @@ DomainsTracingConnection::DeleteRegistration( child_->DeleteRegistration(request)); } +StatusOr +DomainsTracingConnection::DeleteRegistration( + ExperimentalTag, NoAwaitTag, + google::cloud::domains::v1::DeleteRegistrationRequest const& request) { + auto span = + internal::MakeSpan("domains_v1::DomainsConnection::DeleteRegistration"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->DeleteRegistration(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +DomainsTracingConnection::DeleteRegistration( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = + internal::MakeSpan("domains_v1::DomainsConnection::DeleteRegistration"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->DeleteRegistration( + ExperimentalTag{}, operation)); +} + StatusOr DomainsTracingConnection::RetrieveAuthorizationCode( google::cloud::domains::v1::RetrieveAuthorizationCodeRequest const& diff --git a/google/cloud/domains/v1/internal/domains_tracing_connection.h b/google/cloud/domains/v1/internal/domains_tracing_connection.h index 61b5a6b1c1daa..ceb17bed3b14f 100644 --- a/google/cloud/domains/v1/internal/domains_tracing_connection.h +++ b/google/cloud/domains/v1/internal/domains_tracing_connection.h @@ -51,6 +51,15 @@ class DomainsTracingConnection : public domains_v1::DomainsConnection { google::cloud::domains::v1::RegisterDomainRequest const& request) override; + StatusOr RegisterDomain( + ExperimentalTag, NoAwaitTag, + google::cloud::domains::v1::RegisterDomainRequest const& request) + override; + + future> RegisterDomain( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr RetrieveTransferParameters( google::cloud::domains::v1::RetrieveTransferParametersRequest const& @@ -60,6 +69,15 @@ class DomainsTracingConnection : public domains_v1::DomainsConnection { google::cloud::domains::v1::TransferDomainRequest const& request) override; + StatusOr TransferDomain( + ExperimentalTag, NoAwaitTag, + google::cloud::domains::v1::TransferDomainRequest const& request) + override; + + future> TransferDomain( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListRegistrations( google::cloud::domains::v1::ListRegistrationsRequest request) override; @@ -71,30 +89,87 @@ class DomainsTracingConnection : public domains_v1::DomainsConnection { google::cloud::domains::v1::UpdateRegistrationRequest const& request) override; + StatusOr UpdateRegistration( + ExperimentalTag, NoAwaitTag, + google::cloud::domains::v1::UpdateRegistrationRequest const& request) + override; + + future> UpdateRegistration( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ConfigureManagementSettings( google::cloud::domains::v1::ConfigureManagementSettingsRequest const& request) override; + StatusOr ConfigureManagementSettings( + ExperimentalTag, NoAwaitTag, + google::cloud::domains::v1::ConfigureManagementSettingsRequest const& + request) override; + + future> + ConfigureManagementSettings( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ConfigureDnsSettings( google::cloud::domains::v1::ConfigureDnsSettingsRequest const& request) override; + StatusOr ConfigureDnsSettings( + ExperimentalTag, NoAwaitTag, + google::cloud::domains::v1::ConfigureDnsSettingsRequest const& request) + override; + + future> + ConfigureDnsSettings( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ConfigureContactSettings( google::cloud::domains::v1::ConfigureContactSettingsRequest const& request) override; + StatusOr ConfigureContactSettings( + ExperimentalTag, NoAwaitTag, + google::cloud::domains::v1::ConfigureContactSettingsRequest const& + request) override; + + future> + ConfigureContactSettings( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ExportRegistration( google::cloud::domains::v1::ExportRegistrationRequest const& request) override; + StatusOr ExportRegistration( + ExperimentalTag, NoAwaitTag, + google::cloud::domains::v1::ExportRegistrationRequest const& request) + override; + + future> ExportRegistration( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteRegistration( google::cloud::domains::v1::DeleteRegistrationRequest const& request) override; + StatusOr DeleteRegistration( + ExperimentalTag, NoAwaitTag, + google::cloud::domains::v1::DeleteRegistrationRequest const& request) + override; + + future> + DeleteRegistration(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr RetrieveAuthorizationCode( google::cloud::domains::v1::RetrieveAuthorizationCodeRequest const& diff --git a/google/cloud/domains/v1/mocks/mock_domains_connection.h b/google/cloud/domains/v1/mocks/mock_domains_connection.h index 46488c5506b22..e93b35174dae9 100644 --- a/google/cloud/domains/v1/mocks/mock_domains_connection.h +++ b/google/cloud/domains/v1/mocks/mock_domains_connection.h @@ -64,6 +64,18 @@ class MockDomainsConnection : public domains_v1::DomainsConnection { (google::cloud::domains::v1::RegisterDomainRequest const& request), (override)); + MOCK_METHOD( + StatusOr, RegisterDomain, + (ExperimentalTag, NoAwaitTag, + google::cloud::domains::v1::RegisterDomainRequest const& request), + (override)); + + MOCK_METHOD(future>, + RegisterDomain, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr, RetrieveTransferParameters, @@ -77,6 +89,18 @@ class MockDomainsConnection : public domains_v1::DomainsConnection { (google::cloud::domains::v1::TransferDomainRequest const& request), (override)); + MOCK_METHOD( + StatusOr, TransferDomain, + (ExperimentalTag, NoAwaitTag, + google::cloud::domains::v1::TransferDomainRequest const& request), + (override)); + + MOCK_METHOD(future>, + TransferDomain, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD((StreamRange), ListRegistrations, (google::cloud::domains::v1::ListRegistrationsRequest request), @@ -93,6 +117,18 @@ class MockDomainsConnection : public domains_v1::DomainsConnection { (google::cloud::domains::v1::UpdateRegistrationRequest const& request), (override)); + MOCK_METHOD( + StatusOr, UpdateRegistration, + (ExperimentalTag, NoAwaitTag, + google::cloud::domains::v1::UpdateRegistrationRequest const& request), + (override)); + + MOCK_METHOD(future>, + UpdateRegistration, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, ConfigureManagementSettings, @@ -100,12 +136,37 @@ class MockDomainsConnection : public domains_v1::DomainsConnection { request), (override)); + MOCK_METHOD( + StatusOr, ConfigureManagementSettings, + (ExperimentalTag, NoAwaitTag, + google::cloud::domains::v1::ConfigureManagementSettingsRequest const& + request), + (override)); + + MOCK_METHOD(future>, + ConfigureManagementSettings, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, ConfigureDnsSettings, (google::cloud::domains::v1::ConfigureDnsSettingsRequest const& request), (override)); + MOCK_METHOD( + StatusOr, ConfigureDnsSettings, + (ExperimentalTag, NoAwaitTag, + google::cloud::domains::v1::ConfigureDnsSettingsRequest const& request), + (override)); + + MOCK_METHOD(future>, + ConfigureDnsSettings, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, ConfigureContactSettings, @@ -113,18 +174,55 @@ class MockDomainsConnection : public domains_v1::DomainsConnection { request), (override)); + MOCK_METHOD( + StatusOr, ConfigureContactSettings, + (ExperimentalTag, NoAwaitTag, + google::cloud::domains::v1::ConfigureContactSettingsRequest const& + request), + (override)); + + MOCK_METHOD(future>, + ConfigureContactSettings, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, ExportRegistration, (google::cloud::domains::v1::ExportRegistrationRequest const& request), (override)); + MOCK_METHOD( + StatusOr, ExportRegistration, + (ExperimentalTag, NoAwaitTag, + google::cloud::domains::v1::ExportRegistrationRequest const& request), + (override)); + + MOCK_METHOD(future>, + ExportRegistration, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteRegistration, (google::cloud::domains::v1::DeleteRegistrationRequest const& request), (override)); + MOCK_METHOD( + StatusOr, DeleteRegistration, + (ExperimentalTag, NoAwaitTag, + google::cloud::domains::v1::DeleteRegistrationRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteRegistration, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr, RetrieveAuthorizationCode, diff --git a/google/cloud/edgecontainer/v1/edge_container_connection.cc b/google/cloud/edgecontainer/v1/edge_container_connection.cc index a9fe4111a08b7..9dc5380650f80 100644 --- a/google/cloud/edgecontainer/v1/edge_container_connection.cc +++ b/google/cloud/edgecontainer/v1/edge_container_connection.cc @@ -60,6 +60,21 @@ EdgeContainerConnection::CreateCluster( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr EdgeContainerConnection::CreateCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::edgecontainer::v1::CreateClusterRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +EdgeContainerConnection::CreateCluster(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> EdgeContainerConnection::UpdateCluster( google::cloud::edgecontainer::v1::UpdateClusterRequest const&) { @@ -68,6 +83,21 @@ EdgeContainerConnection::UpdateCluster( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr EdgeContainerConnection::UpdateCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::edgecontainer::v1::UpdateClusterRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +EdgeContainerConnection::UpdateCluster(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> EdgeContainerConnection::UpgradeCluster( google::cloud::edgecontainer::v1::UpgradeClusterRequest const&) { @@ -76,6 +106,22 @@ EdgeContainerConnection::UpgradeCluster( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +EdgeContainerConnection::UpgradeCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::edgecontainer::v1::UpgradeClusterRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +EdgeContainerConnection::UpgradeCluster(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> EdgeContainerConnection::DeleteCluster( google::cloud::edgecontainer::v1::DeleteClusterRequest const&) { @@ -84,6 +130,21 @@ EdgeContainerConnection::DeleteCluster( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr EdgeContainerConnection::DeleteCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::edgecontainer::v1::DeleteClusterRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +EdgeContainerConnection::DeleteCluster(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr EdgeContainerConnection::GenerateAccessToken( google::cloud::edgecontainer::v1::GenerateAccessTokenRequest const&) { @@ -118,6 +179,22 @@ EdgeContainerConnection::CreateNodePool( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +EdgeContainerConnection::CreateNodePool( + ExperimentalTag, NoAwaitTag, + google::cloud::edgecontainer::v1::CreateNodePoolRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +EdgeContainerConnection::CreateNodePool(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> EdgeContainerConnection::UpdateNodePool( google::cloud::edgecontainer::v1::UpdateNodePoolRequest const&) { @@ -126,6 +203,22 @@ EdgeContainerConnection::UpdateNodePool( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +EdgeContainerConnection::UpdateNodePool( + ExperimentalTag, NoAwaitTag, + google::cloud::edgecontainer::v1::UpdateNodePoolRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +EdgeContainerConnection::UpdateNodePool(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> EdgeContainerConnection::DeleteNodePool( google::cloud::edgecontainer::v1::DeleteNodePoolRequest const&) { @@ -134,6 +227,22 @@ EdgeContainerConnection::DeleteNodePool( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +EdgeContainerConnection::DeleteNodePool( + ExperimentalTag, NoAwaitTag, + google::cloud::edgecontainer::v1::DeleteNodePoolRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +EdgeContainerConnection::DeleteNodePool(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StreamRange EdgeContainerConnection::ListMachines( google::cloud::edgecontainer::v1:: @@ -170,6 +279,22 @@ EdgeContainerConnection::CreateVpnConnection( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +EdgeContainerConnection::CreateVpnConnection( + ExperimentalTag, NoAwaitTag, + google::cloud::edgecontainer::v1::CreateVpnConnectionRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +EdgeContainerConnection::CreateVpnConnection( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> EdgeContainerConnection::DeleteVpnConnection( google::cloud::edgecontainer::v1::DeleteVpnConnectionRequest const&) { @@ -178,6 +303,22 @@ EdgeContainerConnection::DeleteVpnConnection( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +EdgeContainerConnection::DeleteVpnConnection( + ExperimentalTag, NoAwaitTag, + google::cloud::edgecontainer::v1::DeleteVpnConnectionRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +EdgeContainerConnection::DeleteVpnConnection( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr EdgeContainerConnection::GetServerConfig( google::cloud::edgecontainer::v1::GetServerConfigRequest const&) { diff --git a/google/cloud/edgecontainer/v1/edge_container_connection.h b/google/cloud/edgecontainer/v1/edge_container_connection.h index 665f58d287b9d..f2d3563122ff2 100644 --- a/google/cloud/edgecontainer/v1/edge_container_connection.h +++ b/google/cloud/edgecontainer/v1/edge_container_connection.h @@ -22,8 +22,10 @@ #include "google/cloud/edgecontainer/v1/edge_container_connection_idempotency_policy.h" #include "google/cloud/edgecontainer/v1/internal/edge_container_retry_traits.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/internal/retry_policy_impl.h" +#include "google/cloud/no_await_tag.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" #include "google/cloud/status_or.h" @@ -195,18 +197,50 @@ class EdgeContainerConnection { CreateCluster( google::cloud::edgecontainer::v1::CreateClusterRequest const& request); + virtual StatusOr CreateCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::edgecontainer::v1::CreateClusterRequest const& request); + + virtual future> + CreateCluster(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> UpdateCluster( google::cloud::edgecontainer::v1::UpdateClusterRequest const& request); + virtual StatusOr UpdateCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::edgecontainer::v1::UpdateClusterRequest const& request); + + virtual future> + UpdateCluster(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> UpgradeCluster( google::cloud::edgecontainer::v1::UpgradeClusterRequest const& request); + virtual StatusOr UpgradeCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::edgecontainer::v1::UpgradeClusterRequest const& request); + + virtual future> + UpgradeCluster(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> DeleteCluster( google::cloud::edgecontainer::v1::DeleteClusterRequest const& request); + virtual StatusOr DeleteCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::edgecontainer::v1::DeleteClusterRequest const& request); + + virtual future> + DeleteCluster(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StatusOr< google::cloud::edgecontainer::v1::GenerateAccessTokenResponse> GenerateAccessToken( @@ -229,14 +263,38 @@ class EdgeContainerConnection { CreateNodePool( google::cloud::edgecontainer::v1::CreateNodePoolRequest const& request); + virtual StatusOr CreateNodePool( + ExperimentalTag, NoAwaitTag, + google::cloud::edgecontainer::v1::CreateNodePoolRequest const& request); + + virtual future> + CreateNodePool(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> UpdateNodePool( google::cloud::edgecontainer::v1::UpdateNodePoolRequest const& request); + virtual StatusOr UpdateNodePool( + ExperimentalTag, NoAwaitTag, + google::cloud::edgecontainer::v1::UpdateNodePoolRequest const& request); + + virtual future> + UpdateNodePool(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> DeleteNodePool( google::cloud::edgecontainer::v1::DeleteNodePoolRequest const& request); + virtual StatusOr DeleteNodePool( + ExperimentalTag, NoAwaitTag, + google::cloud::edgecontainer::v1::DeleteNodePoolRequest const& request); + + virtual future> + DeleteNodePool(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StreamRange ListMachines( google::cloud::edgecontainer::v1::ListMachinesRequest request); @@ -256,11 +314,29 @@ class EdgeContainerConnection { google::cloud::edgecontainer::v1::CreateVpnConnectionRequest const& request); + virtual StatusOr CreateVpnConnection( + ExperimentalTag, NoAwaitTag, + google::cloud::edgecontainer::v1::CreateVpnConnectionRequest const& + request); + + virtual future> + CreateVpnConnection(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> DeleteVpnConnection( google::cloud::edgecontainer::v1::DeleteVpnConnectionRequest const& request); + virtual StatusOr DeleteVpnConnection( + ExperimentalTag, NoAwaitTag, + google::cloud::edgecontainer::v1::DeleteVpnConnectionRequest const& + request); + + virtual future> + DeleteVpnConnection(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StatusOr GetServerConfig( google::cloud::edgecontainer::v1::GetServerConfigRequest const& request); diff --git a/google/cloud/edgecontainer/v1/internal/edge_container_connection_impl.cc b/google/cloud/edgecontainer/v1/internal/edge_container_connection_impl.cc index 10676d434d46a..cc39757a5c6bf 100644 --- a/google/cloud/edgecontainer/v1/internal/edge_container_connection_impl.cc +++ b/google/cloud/edgecontainer/v1/internal/edge_container_connection_impl.cc @@ -156,6 +156,60 @@ EdgeContainerConnectionImpl::CreateCluster( polling_policy(*current), __func__); } +StatusOr +EdgeContainerConnectionImpl::CreateCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::edgecontainer::v1::CreateClusterRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateCluster(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::edgecontainer::v1::CreateClusterRequest const& + request) { + return stub_->CreateCluster(context, options, request); + }, + *current, request, __func__); +} + +future> +EdgeContainerConnectionImpl::CreateCluster( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to CreateCluster", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::edgecontainer::v1::Cluster>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::edgecontainer::v1::Cluster>, + polling_policy(*current), __func__); +} + future> EdgeContainerConnectionImpl::UpdateCluster( google::cloud::edgecontainer::v1::UpdateClusterRequest const& request) { @@ -196,6 +250,60 @@ EdgeContainerConnectionImpl::UpdateCluster( polling_policy(*current), __func__); } +StatusOr +EdgeContainerConnectionImpl::UpdateCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::edgecontainer::v1::UpdateClusterRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UpdateCluster(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::edgecontainer::v1::UpdateClusterRequest const& + request) { + return stub_->UpdateCluster(context, options, request); + }, + *current, request, __func__); +} + +future> +EdgeContainerConnectionImpl::UpdateCluster( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to UpdateCluster", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::edgecontainer::v1::Cluster>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::edgecontainer::v1::Cluster>, + polling_policy(*current), __func__); +} + future> EdgeContainerConnectionImpl::UpgradeCluster( google::cloud::edgecontainer::v1::UpgradeClusterRequest const& request) { @@ -236,6 +344,60 @@ EdgeContainerConnectionImpl::UpgradeCluster( polling_policy(*current), __func__); } +StatusOr +EdgeContainerConnectionImpl::UpgradeCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::edgecontainer::v1::UpgradeClusterRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UpgradeCluster(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::edgecontainer::v1::UpgradeClusterRequest const& + request) { + return stub_->UpgradeCluster(context, options, request); + }, + *current, request, __func__); +} + +future> +EdgeContainerConnectionImpl::UpgradeCluster( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to UpgradeCluster", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::edgecontainer::v1::Cluster>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::edgecontainer::v1::Cluster>, + polling_policy(*current), __func__); +} + future> EdgeContainerConnectionImpl::DeleteCluster( google::cloud::edgecontainer::v1::DeleteClusterRequest const& request) { @@ -276,6 +438,60 @@ EdgeContainerConnectionImpl::DeleteCluster( polling_policy(*current), __func__); } +StatusOr +EdgeContainerConnectionImpl::DeleteCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::edgecontainer::v1::DeleteClusterRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteCluster(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::edgecontainer::v1::DeleteClusterRequest const& + request) { + return stub_->DeleteCluster(context, options, request); + }, + *current, request, __func__); +} + +future> +EdgeContainerConnectionImpl::DeleteCluster( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteCluster", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::edgecontainer::v1::OperationMetadata>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::cloud::edgecontainer::v1::OperationMetadata>, + polling_policy(*current), __func__); +} + StatusOr EdgeContainerConnectionImpl::GenerateAccessToken( google::cloud::edgecontainer::v1::GenerateAccessTokenRequest const& @@ -397,6 +613,60 @@ EdgeContainerConnectionImpl::CreateNodePool( polling_policy(*current), __func__); } +StatusOr +EdgeContainerConnectionImpl::CreateNodePool( + ExperimentalTag, NoAwaitTag, + google::cloud::edgecontainer::v1::CreateNodePoolRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateNodePool(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::edgecontainer::v1::CreateNodePoolRequest const& + request) { + return stub_->CreateNodePool(context, options, request); + }, + *current, request, __func__); +} + +future> +EdgeContainerConnectionImpl::CreateNodePool( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to CreateNodePool", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::edgecontainer::v1::NodePool>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::edgecontainer::v1::NodePool>, + polling_policy(*current), __func__); +} + future> EdgeContainerConnectionImpl::UpdateNodePool( google::cloud::edgecontainer::v1::UpdateNodePoolRequest const& request) { @@ -437,6 +707,60 @@ EdgeContainerConnectionImpl::UpdateNodePool( polling_policy(*current), __func__); } +StatusOr +EdgeContainerConnectionImpl::UpdateNodePool( + ExperimentalTag, NoAwaitTag, + google::cloud::edgecontainer::v1::UpdateNodePoolRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UpdateNodePool(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::edgecontainer::v1::UpdateNodePoolRequest const& + request) { + return stub_->UpdateNodePool(context, options, request); + }, + *current, request, __func__); +} + +future> +EdgeContainerConnectionImpl::UpdateNodePool( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to UpdateNodePool", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::edgecontainer::v1::NodePool>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::edgecontainer::v1::NodePool>, + polling_policy(*current), __func__); +} + future> EdgeContainerConnectionImpl::DeleteNodePool( google::cloud::edgecontainer::v1::DeleteNodePoolRequest const& request) { @@ -477,6 +801,60 @@ EdgeContainerConnectionImpl::DeleteNodePool( polling_policy(*current), __func__); } +StatusOr +EdgeContainerConnectionImpl::DeleteNodePool( + ExperimentalTag, NoAwaitTag, + google::cloud::edgecontainer::v1::DeleteNodePoolRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteNodePool(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::edgecontainer::v1::DeleteNodePoolRequest const& + request) { + return stub_->DeleteNodePool(context, options, request); + }, + *current, request, __func__); +} + +future> +EdgeContainerConnectionImpl::DeleteNodePool( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteNodePool", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::edgecontainer::v1::OperationMetadata>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::cloud::edgecontainer::v1::OperationMetadata>, + polling_policy(*current), __func__); +} + StreamRange EdgeContainerConnectionImpl::ListMachines( google::cloud::edgecontainer::v1::ListMachinesRequest request) { @@ -617,6 +995,61 @@ EdgeContainerConnectionImpl::CreateVpnConnection( polling_policy(*current), __func__); } +StatusOr +EdgeContainerConnectionImpl::CreateVpnConnection( + ExperimentalTag, NoAwaitTag, + google::cloud::edgecontainer::v1::CreateVpnConnectionRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateVpnConnection(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::edgecontainer::v1::CreateVpnConnectionRequest const& + request) { + return stub_->CreateVpnConnection(context, options, request); + }, + *current, request, __func__); +} + +future> +EdgeContainerConnectionImpl::CreateVpnConnection( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to CreateVpnConnection", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::edgecontainer::v1::VpnConnection>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::edgecontainer::v1::VpnConnection>, + polling_policy(*current), __func__); +} + future> EdgeContainerConnectionImpl::DeleteVpnConnection( google::cloud::edgecontainer::v1::DeleteVpnConnectionRequest const& @@ -658,6 +1091,61 @@ EdgeContainerConnectionImpl::DeleteVpnConnection( polling_policy(*current), __func__); } +StatusOr +EdgeContainerConnectionImpl::DeleteVpnConnection( + ExperimentalTag, NoAwaitTag, + google::cloud::edgecontainer::v1::DeleteVpnConnectionRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteVpnConnection(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::edgecontainer::v1::DeleteVpnConnectionRequest const& + request) { + return stub_->DeleteVpnConnection(context, options, request); + }, + *current, request, __func__); +} + +future> +EdgeContainerConnectionImpl::DeleteVpnConnection( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteVpnConnection", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::edgecontainer::v1::OperationMetadata>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::cloud::edgecontainer::v1::OperationMetadata>, + polling_policy(*current), __func__); +} + StatusOr EdgeContainerConnectionImpl::GetServerConfig( google::cloud::edgecontainer::v1::GetServerConfigRequest const& request) { diff --git a/google/cloud/edgecontainer/v1/internal/edge_container_connection_impl.h b/google/cloud/edgecontainer/v1/internal/edge_container_connection_impl.h index a2af67c9f0bd8..c5227605b1ef1 100644 --- a/google/cloud/edgecontainer/v1/internal/edge_container_connection_impl.h +++ b/google/cloud/edgecontainer/v1/internal/edge_container_connection_impl.h @@ -63,18 +63,54 @@ class EdgeContainerConnectionImpl google::cloud::edgecontainer::v1::CreateClusterRequest const& request) override; + StatusOr CreateCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::edgecontainer::v1::CreateClusterRequest const& request) + override; + + future> CreateCluster( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateCluster( google::cloud::edgecontainer::v1::UpdateClusterRequest const& request) override; + StatusOr UpdateCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::edgecontainer::v1::UpdateClusterRequest const& request) + override; + + future> UpdateCluster( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpgradeCluster( google::cloud::edgecontainer::v1::UpgradeClusterRequest const& request) override; + StatusOr UpgradeCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::edgecontainer::v1::UpgradeClusterRequest const& request) + override; + + future> UpgradeCluster( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteCluster(google::cloud::edgecontainer::v1::DeleteClusterRequest const& request) override; + StatusOr DeleteCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::edgecontainer::v1::DeleteClusterRequest const& request) + override; + + future> + DeleteCluster(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GenerateAccessToken( google::cloud::edgecontainer::v1::GenerateAccessTokenRequest const& @@ -96,14 +132,41 @@ class EdgeContainerConnectionImpl google::cloud::edgecontainer::v1::CreateNodePoolRequest const& request) override; + StatusOr CreateNodePool( + ExperimentalTag, NoAwaitTag, + google::cloud::edgecontainer::v1::CreateNodePoolRequest const& request) + override; + + future> CreateNodePool( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateNodePool( google::cloud::edgecontainer::v1::UpdateNodePoolRequest const& request) override; + StatusOr UpdateNodePool( + ExperimentalTag, NoAwaitTag, + google::cloud::edgecontainer::v1::UpdateNodePoolRequest const& request) + override; + + future> UpdateNodePool( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteNodePool(google::cloud::edgecontainer::v1::DeleteNodePoolRequest const& request) override; + StatusOr DeleteNodePool( + ExperimentalTag, NoAwaitTag, + google::cloud::edgecontainer::v1::DeleteNodePoolRequest const& request) + override; + + future> + DeleteNodePool(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListMachines( google::cloud::edgecontainer::v1::ListMachinesRequest request) override; @@ -124,11 +187,29 @@ class EdgeContainerConnectionImpl google::cloud::edgecontainer::v1::CreateVpnConnectionRequest const& request) override; + StatusOr CreateVpnConnection( + ExperimentalTag, NoAwaitTag, + google::cloud::edgecontainer::v1::CreateVpnConnectionRequest const& + request) override; + + future> + CreateVpnConnection(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteVpnConnection( google::cloud::edgecontainer::v1::DeleteVpnConnectionRequest const& request) override; + StatusOr DeleteVpnConnection( + ExperimentalTag, NoAwaitTag, + google::cloud::edgecontainer::v1::DeleteVpnConnectionRequest const& + request) override; + + future> + DeleteVpnConnection(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetServerConfig( google::cloud::edgecontainer::v1::GetServerConfigRequest const& request) override; diff --git a/google/cloud/edgecontainer/v1/internal/edge_container_tracing_connection.cc b/google/cloud/edgecontainer/v1/internal/edge_container_tracing_connection.cc index f6e1f796bbcad..083f2b834cd96 100644 --- a/google/cloud/edgecontainer/v1/internal/edge_container_tracing_connection.cc +++ b/google/cloud/edgecontainer/v1/internal/edge_container_tracing_connection.cc @@ -63,6 +63,27 @@ EdgeContainerTracingConnection::CreateCluster( return internal::EndSpan(std::move(span), child_->CreateCluster(request)); } +StatusOr +EdgeContainerTracingConnection::CreateCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::edgecontainer::v1::CreateClusterRequest const& request) { + auto span = internal::MakeSpan( + "edgecontainer_v1::EdgeContainerConnection::CreateCluster"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->CreateCluster(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +EdgeContainerTracingConnection::CreateCluster( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "edgecontainer_v1::EdgeContainerConnection::CreateCluster"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->CreateCluster(ExperimentalTag{}, operation)); +} + future> EdgeContainerTracingConnection::UpdateCluster( google::cloud::edgecontainer::v1::UpdateClusterRequest const& request) { @@ -72,6 +93,27 @@ EdgeContainerTracingConnection::UpdateCluster( return internal::EndSpan(std::move(span), child_->UpdateCluster(request)); } +StatusOr +EdgeContainerTracingConnection::UpdateCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::edgecontainer::v1::UpdateClusterRequest const& request) { + auto span = internal::MakeSpan( + "edgecontainer_v1::EdgeContainerConnection::UpdateCluster"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->UpdateCluster(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +EdgeContainerTracingConnection::UpdateCluster( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "edgecontainer_v1::EdgeContainerConnection::UpdateCluster"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->UpdateCluster(ExperimentalTag{}, operation)); +} + future> EdgeContainerTracingConnection::UpgradeCluster( google::cloud::edgecontainer::v1::UpgradeClusterRequest const& request) { @@ -81,6 +123,27 @@ EdgeContainerTracingConnection::UpgradeCluster( return internal::EndSpan(std::move(span), child_->UpgradeCluster(request)); } +StatusOr +EdgeContainerTracingConnection::UpgradeCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::edgecontainer::v1::UpgradeClusterRequest const& request) { + auto span = internal::MakeSpan( + "edgecontainer_v1::EdgeContainerConnection::UpgradeCluster"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->UpgradeCluster(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +EdgeContainerTracingConnection::UpgradeCluster( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "edgecontainer_v1::EdgeContainerConnection::UpgradeCluster"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->UpgradeCluster(ExperimentalTag{}, operation)); +} + future> EdgeContainerTracingConnection::DeleteCluster( google::cloud::edgecontainer::v1::DeleteClusterRequest const& request) { @@ -90,6 +153,27 @@ EdgeContainerTracingConnection::DeleteCluster( return internal::EndSpan(std::move(span), child_->DeleteCluster(request)); } +StatusOr +EdgeContainerTracingConnection::DeleteCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::edgecontainer::v1::DeleteClusterRequest const& request) { + auto span = internal::MakeSpan( + "edgecontainer_v1::EdgeContainerConnection::DeleteCluster"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->DeleteCluster(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +EdgeContainerTracingConnection::DeleteCluster( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "edgecontainer_v1::EdgeContainerConnection::DeleteCluster"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->DeleteCluster(ExperimentalTag{}, operation)); +} + StatusOr EdgeContainerTracingConnection::GenerateAccessToken( google::cloud::edgecontainer::v1::GenerateAccessTokenRequest const& @@ -140,6 +224,27 @@ EdgeContainerTracingConnection::CreateNodePool( return internal::EndSpan(std::move(span), child_->CreateNodePool(request)); } +StatusOr +EdgeContainerTracingConnection::CreateNodePool( + ExperimentalTag, NoAwaitTag, + google::cloud::edgecontainer::v1::CreateNodePoolRequest const& request) { + auto span = internal::MakeSpan( + "edgecontainer_v1::EdgeContainerConnection::CreateNodePool"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->CreateNodePool(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +EdgeContainerTracingConnection::CreateNodePool( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "edgecontainer_v1::EdgeContainerConnection::CreateNodePool"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->CreateNodePool(ExperimentalTag{}, operation)); +} + future> EdgeContainerTracingConnection::UpdateNodePool( google::cloud::edgecontainer::v1::UpdateNodePoolRequest const& request) { @@ -149,6 +254,27 @@ EdgeContainerTracingConnection::UpdateNodePool( return internal::EndSpan(std::move(span), child_->UpdateNodePool(request)); } +StatusOr +EdgeContainerTracingConnection::UpdateNodePool( + ExperimentalTag, NoAwaitTag, + google::cloud::edgecontainer::v1::UpdateNodePoolRequest const& request) { + auto span = internal::MakeSpan( + "edgecontainer_v1::EdgeContainerConnection::UpdateNodePool"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->UpdateNodePool(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +EdgeContainerTracingConnection::UpdateNodePool( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "edgecontainer_v1::EdgeContainerConnection::UpdateNodePool"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->UpdateNodePool(ExperimentalTag{}, operation)); +} + future> EdgeContainerTracingConnection::DeleteNodePool( google::cloud::edgecontainer::v1::DeleteNodePoolRequest const& request) { @@ -158,6 +284,27 @@ EdgeContainerTracingConnection::DeleteNodePool( return internal::EndSpan(std::move(span), child_->DeleteNodePool(request)); } +StatusOr +EdgeContainerTracingConnection::DeleteNodePool( + ExperimentalTag, NoAwaitTag, + google::cloud::edgecontainer::v1::DeleteNodePoolRequest const& request) { + auto span = internal::MakeSpan( + "edgecontainer_v1::EdgeContainerConnection::DeleteNodePool"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->DeleteNodePool(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +EdgeContainerTracingConnection::DeleteNodePool( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "edgecontainer_v1::EdgeContainerConnection::DeleteNodePool"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->DeleteNodePool(ExperimentalTag{}, operation)); +} + StreamRange EdgeContainerTracingConnection::ListMachines( google::cloud::edgecontainer::v1::ListMachinesRequest request) { @@ -211,6 +358,29 @@ EdgeContainerTracingConnection::CreateVpnConnection( child_->CreateVpnConnection(request)); } +StatusOr +EdgeContainerTracingConnection::CreateVpnConnection( + ExperimentalTag, NoAwaitTag, + google::cloud::edgecontainer::v1::CreateVpnConnectionRequest const& + request) { + auto span = internal::MakeSpan( + "edgecontainer_v1::EdgeContainerConnection::CreateVpnConnection"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->CreateVpnConnection(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +EdgeContainerTracingConnection::CreateVpnConnection( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "edgecontainer_v1::EdgeContainerConnection::CreateVpnConnection"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->CreateVpnConnection( + ExperimentalTag{}, operation)); +} + future> EdgeContainerTracingConnection::DeleteVpnConnection( google::cloud::edgecontainer::v1::DeleteVpnConnectionRequest const& @@ -222,6 +392,29 @@ EdgeContainerTracingConnection::DeleteVpnConnection( child_->DeleteVpnConnection(request)); } +StatusOr +EdgeContainerTracingConnection::DeleteVpnConnection( + ExperimentalTag, NoAwaitTag, + google::cloud::edgecontainer::v1::DeleteVpnConnectionRequest const& + request) { + auto span = internal::MakeSpan( + "edgecontainer_v1::EdgeContainerConnection::DeleteVpnConnection"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->DeleteVpnConnection(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +EdgeContainerTracingConnection::DeleteVpnConnection( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "edgecontainer_v1::EdgeContainerConnection::DeleteVpnConnection"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->DeleteVpnConnection( + ExperimentalTag{}, operation)); +} + StatusOr EdgeContainerTracingConnection::GetServerConfig( google::cloud::edgecontainer::v1::GetServerConfigRequest const& request) { diff --git a/google/cloud/edgecontainer/v1/internal/edge_container_tracing_connection.h b/google/cloud/edgecontainer/v1/internal/edge_container_tracing_connection.h index 2062ec56b6383..b39ee073f1eb6 100644 --- a/google/cloud/edgecontainer/v1/internal/edge_container_tracing_connection.h +++ b/google/cloud/edgecontainer/v1/internal/edge_container_tracing_connection.h @@ -51,18 +51,54 @@ class EdgeContainerTracingConnection google::cloud::edgecontainer::v1::CreateClusterRequest const& request) override; + StatusOr CreateCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::edgecontainer::v1::CreateClusterRequest const& request) + override; + + future> CreateCluster( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateCluster( google::cloud::edgecontainer::v1::UpdateClusterRequest const& request) override; + StatusOr UpdateCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::edgecontainer::v1::UpdateClusterRequest const& request) + override; + + future> UpdateCluster( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpgradeCluster( google::cloud::edgecontainer::v1::UpgradeClusterRequest const& request) override; + StatusOr UpgradeCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::edgecontainer::v1::UpgradeClusterRequest const& request) + override; + + future> UpgradeCluster( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteCluster(google::cloud::edgecontainer::v1::DeleteClusterRequest const& request) override; + StatusOr DeleteCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::edgecontainer::v1::DeleteClusterRequest const& request) + override; + + future> + DeleteCluster(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GenerateAccessToken( google::cloud::edgecontainer::v1::GenerateAccessTokenRequest const& @@ -84,14 +120,41 @@ class EdgeContainerTracingConnection google::cloud::edgecontainer::v1::CreateNodePoolRequest const& request) override; + StatusOr CreateNodePool( + ExperimentalTag, NoAwaitTag, + google::cloud::edgecontainer::v1::CreateNodePoolRequest const& request) + override; + + future> CreateNodePool( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateNodePool( google::cloud::edgecontainer::v1::UpdateNodePoolRequest const& request) override; + StatusOr UpdateNodePool( + ExperimentalTag, NoAwaitTag, + google::cloud::edgecontainer::v1::UpdateNodePoolRequest const& request) + override; + + future> UpdateNodePool( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteNodePool(google::cloud::edgecontainer::v1::DeleteNodePoolRequest const& request) override; + StatusOr DeleteNodePool( + ExperimentalTag, NoAwaitTag, + google::cloud::edgecontainer::v1::DeleteNodePoolRequest const& request) + override; + + future> + DeleteNodePool(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListMachines( google::cloud::edgecontainer::v1::ListMachinesRequest request) override; @@ -112,11 +175,29 @@ class EdgeContainerTracingConnection google::cloud::edgecontainer::v1::CreateVpnConnectionRequest const& request) override; + StatusOr CreateVpnConnection( + ExperimentalTag, NoAwaitTag, + google::cloud::edgecontainer::v1::CreateVpnConnectionRequest const& + request) override; + + future> + CreateVpnConnection(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteVpnConnection( google::cloud::edgecontainer::v1::DeleteVpnConnectionRequest const& request) override; + StatusOr DeleteVpnConnection( + ExperimentalTag, NoAwaitTag, + google::cloud::edgecontainer::v1::DeleteVpnConnectionRequest const& + request) override; + + future> + DeleteVpnConnection(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetServerConfig( google::cloud::edgecontainer::v1::GetServerConfigRequest const& request) override; diff --git a/google/cloud/edgecontainer/v1/mocks/mock_edge_container_connection.h b/google/cloud/edgecontainer/v1/mocks/mock_edge_container_connection.h index d946c6819ffcf..1bf20b377e3f2 100644 --- a/google/cloud/edgecontainer/v1/mocks/mock_edge_container_connection.h +++ b/google/cloud/edgecontainer/v1/mocks/mock_edge_container_connection.h @@ -63,24 +63,72 @@ class MockEdgeContainerConnection (google::cloud::edgecontainer::v1::CreateClusterRequest const& request), (override)); + MOCK_METHOD( + StatusOr, CreateCluster, + (ExperimentalTag, NoAwaitTag, + google::cloud::edgecontainer::v1::CreateClusterRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateCluster, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, UpdateCluster, (google::cloud::edgecontainer::v1::UpdateClusterRequest const& request), (override)); + MOCK_METHOD( + StatusOr, UpdateCluster, + (ExperimentalTag, NoAwaitTag, + google::cloud::edgecontainer::v1::UpdateClusterRequest const& request), + (override)); + + MOCK_METHOD(future>, + UpdateCluster, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, UpgradeCluster, (google::cloud::edgecontainer::v1::UpgradeClusterRequest const& request), (override)); + MOCK_METHOD( + StatusOr, UpgradeCluster, + (ExperimentalTag, NoAwaitTag, + google::cloud::edgecontainer::v1::UpgradeClusterRequest const& request), + (override)); + + MOCK_METHOD(future>, + UpgradeCluster, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteCluster, (google::cloud::edgecontainer::v1::DeleteClusterRequest const& request), (override)); + MOCK_METHOD( + StatusOr, DeleteCluster, + (ExperimentalTag, NoAwaitTag, + google::cloud::edgecontainer::v1::DeleteClusterRequest const& request), + (override)); + + MOCK_METHOD( + future>, + DeleteCluster, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr, GenerateAccessToken, @@ -112,18 +160,54 @@ class MockEdgeContainerConnection (google::cloud::edgecontainer::v1::CreateNodePoolRequest const& request), (override)); + MOCK_METHOD( + StatusOr, CreateNodePool, + (ExperimentalTag, NoAwaitTag, + google::cloud::edgecontainer::v1::CreateNodePoolRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateNodePool, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, UpdateNodePool, (google::cloud::edgecontainer::v1::UpdateNodePoolRequest const& request), (override)); + MOCK_METHOD( + StatusOr, UpdateNodePool, + (ExperimentalTag, NoAwaitTag, + google::cloud::edgecontainer::v1::UpdateNodePoolRequest const& request), + (override)); + + MOCK_METHOD(future>, + UpdateNodePool, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteNodePool, (google::cloud::edgecontainer::v1::DeleteNodePoolRequest const& request), (override)); + MOCK_METHOD( + StatusOr, DeleteNodePool, + (ExperimentalTag, NoAwaitTag, + google::cloud::edgecontainer::v1::DeleteNodePoolRequest const& request), + (override)); + + MOCK_METHOD( + future>, + DeleteNodePool, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD((StreamRange), ListMachines, (google::cloud::edgecontainer::v1::ListMachinesRequest request), @@ -153,6 +237,19 @@ class MockEdgeContainerConnection request), (override)); + MOCK_METHOD( + StatusOr, CreateVpnConnection, + (ExperimentalTag, NoAwaitTag, + google::cloud::edgecontainer::v1::CreateVpnConnectionRequest const& + request), + (override)); + + MOCK_METHOD(future>, + CreateVpnConnection, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteVpnConnection, @@ -160,6 +257,19 @@ class MockEdgeContainerConnection request), (override)); + MOCK_METHOD( + StatusOr, DeleteVpnConnection, + (ExperimentalTag, NoAwaitTag, + google::cloud::edgecontainer::v1::DeleteVpnConnectionRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + DeleteVpnConnection, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr, GetServerConfig, (google::cloud::edgecontainer::v1::GetServerConfigRequest const& request), diff --git a/google/cloud/edgenetwork/v1/edge_network_connection.cc b/google/cloud/edgenetwork/v1/edge_network_connection.cc index 18144ab21c595..95250cc44cad1 100644 --- a/google/cloud/edgenetwork/v1/edge_network_connection.cc +++ b/google/cloud/edgenetwork/v1/edge_network_connection.cc @@ -85,6 +85,21 @@ EdgeNetworkConnection::CreateNetwork( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr EdgeNetworkConnection::CreateNetwork( + ExperimentalTag, NoAwaitTag, + google::cloud::edgenetwork::v1::CreateNetworkRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +EdgeNetworkConnection::CreateNetwork(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> EdgeNetworkConnection::DeleteNetwork( google::cloud::edgenetwork::v1::DeleteNetworkRequest const&) { @@ -93,6 +108,21 @@ EdgeNetworkConnection::DeleteNetwork( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr EdgeNetworkConnection::DeleteNetwork( + ExperimentalTag, NoAwaitTag, + google::cloud::edgenetwork::v1::DeleteNetworkRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +EdgeNetworkConnection::DeleteNetwork(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StreamRange EdgeNetworkConnection::ListSubnets( google::cloud::edgenetwork::v1:: @@ -115,6 +145,21 @@ EdgeNetworkConnection::CreateSubnet( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr EdgeNetworkConnection::CreateSubnet( + ExperimentalTag, NoAwaitTag, + google::cloud::edgenetwork::v1::CreateSubnetRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +EdgeNetworkConnection::CreateSubnet(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> EdgeNetworkConnection::UpdateSubnet( google::cloud::edgenetwork::v1::UpdateSubnetRequest const&) { @@ -123,6 +168,21 @@ EdgeNetworkConnection::UpdateSubnet( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr EdgeNetworkConnection::UpdateSubnet( + ExperimentalTag, NoAwaitTag, + google::cloud::edgenetwork::v1::UpdateSubnetRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +EdgeNetworkConnection::UpdateSubnet(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> EdgeNetworkConnection::DeleteSubnet( google::cloud::edgenetwork::v1::DeleteSubnetRequest const&) { @@ -131,6 +191,21 @@ EdgeNetworkConnection::DeleteSubnet( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr EdgeNetworkConnection::DeleteSubnet( + ExperimentalTag, NoAwaitTag, + google::cloud::edgenetwork::v1::DeleteSubnetRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +EdgeNetworkConnection::DeleteSubnet(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StreamRange EdgeNetworkConnection::ListInterconnects( google::cloud::edgenetwork::v1:: @@ -174,6 +249,23 @@ EdgeNetworkConnection::CreateInterconnectAttachment( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +EdgeNetworkConnection::CreateInterconnectAttachment( + ExperimentalTag, NoAwaitTag, + google::cloud::edgenetwork::v1:: + CreateInterconnectAttachmentRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +EdgeNetworkConnection::CreateInterconnectAttachment( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> EdgeNetworkConnection::DeleteInterconnectAttachment( google::cloud::edgenetwork::v1:: @@ -183,6 +275,23 @@ EdgeNetworkConnection::DeleteInterconnectAttachment( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +EdgeNetworkConnection::DeleteInterconnectAttachment( + ExperimentalTag, NoAwaitTag, + google::cloud::edgenetwork::v1:: + DeleteInterconnectAttachmentRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +EdgeNetworkConnection::DeleteInterconnectAttachment( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StreamRange EdgeNetworkConnection::ListRouters( google::cloud::edgenetwork::v1:: @@ -211,6 +320,21 @@ EdgeNetworkConnection::CreateRouter( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr EdgeNetworkConnection::CreateRouter( + ExperimentalTag, NoAwaitTag, + google::cloud::edgenetwork::v1::CreateRouterRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +EdgeNetworkConnection::CreateRouter(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> EdgeNetworkConnection::UpdateRouter( google::cloud::edgenetwork::v1::UpdateRouterRequest const&) { @@ -219,6 +343,21 @@ EdgeNetworkConnection::UpdateRouter( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr EdgeNetworkConnection::UpdateRouter( + ExperimentalTag, NoAwaitTag, + google::cloud::edgenetwork::v1::UpdateRouterRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +EdgeNetworkConnection::UpdateRouter(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> EdgeNetworkConnection::DeleteRouter( google::cloud::edgenetwork::v1::DeleteRouterRequest const&) { @@ -227,6 +366,21 @@ EdgeNetworkConnection::DeleteRouter( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr EdgeNetworkConnection::DeleteRouter( + ExperimentalTag, NoAwaitTag, + google::cloud::edgenetwork::v1::DeleteRouterRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +EdgeNetworkConnection::DeleteRouter(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + std::shared_ptr MakeEdgeNetworkConnection( Options options) { internal::CheckExpectedOptions CreateNetwork( + ExperimentalTag, NoAwaitTag, + google::cloud::edgenetwork::v1::CreateNetworkRequest const& request); + + virtual future> + CreateNetwork(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> DeleteNetwork( google::cloud::edgenetwork::v1::DeleteNetworkRequest const& request); + virtual StatusOr DeleteNetwork( + ExperimentalTag, NoAwaitTag, + google::cloud::edgenetwork::v1::DeleteNetworkRequest const& request); + + virtual future> + DeleteNetwork(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StreamRange ListSubnets( google::cloud::edgenetwork::v1::ListSubnetsRequest request); @@ -221,13 +239,35 @@ class EdgeNetworkConnection { virtual future> CreateSubnet( google::cloud::edgenetwork::v1::CreateSubnetRequest const& request); + virtual StatusOr CreateSubnet( + ExperimentalTag, NoAwaitTag, + google::cloud::edgenetwork::v1::CreateSubnetRequest const& request); + + virtual future> CreateSubnet( + ExperimentalTag, google::longrunning::Operation const& operation); + virtual future> UpdateSubnet( google::cloud::edgenetwork::v1::UpdateSubnetRequest const& request); + virtual StatusOr UpdateSubnet( + ExperimentalTag, NoAwaitTag, + google::cloud::edgenetwork::v1::UpdateSubnetRequest const& request); + + virtual future> UpdateSubnet( + ExperimentalTag, google::longrunning::Operation const& operation); + virtual future> DeleteSubnet( google::cloud::edgenetwork::v1::DeleteSubnetRequest const& request); + virtual StatusOr DeleteSubnet( + ExperimentalTag, NoAwaitTag, + google::cloud::edgenetwork::v1::DeleteSubnetRequest const& request); + + virtual future> + DeleteSubnet(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StreamRange ListInterconnects( google::cloud::edgenetwork::v1::ListInterconnectsRequest request); @@ -257,11 +297,30 @@ class EdgeNetworkConnection { google::cloud::edgenetwork::v1::CreateInterconnectAttachmentRequest const& request); + virtual StatusOr CreateInterconnectAttachment( + ExperimentalTag, NoAwaitTag, + google::cloud::edgenetwork::v1::CreateInterconnectAttachmentRequest const& + request); + + virtual future< + StatusOr> + CreateInterconnectAttachment(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> DeleteInterconnectAttachment( google::cloud::edgenetwork::v1::DeleteInterconnectAttachmentRequest const& request); + virtual StatusOr DeleteInterconnectAttachment( + ExperimentalTag, NoAwaitTag, + google::cloud::edgenetwork::v1::DeleteInterconnectAttachmentRequest const& + request); + + virtual future> + DeleteInterconnectAttachment(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StreamRange ListRouters( google::cloud::edgenetwork::v1::ListRoutersRequest request); @@ -275,12 +334,34 @@ class EdgeNetworkConnection { virtual future> CreateRouter( google::cloud::edgenetwork::v1::CreateRouterRequest const& request); + virtual StatusOr CreateRouter( + ExperimentalTag, NoAwaitTag, + google::cloud::edgenetwork::v1::CreateRouterRequest const& request); + + virtual future> CreateRouter( + ExperimentalTag, google::longrunning::Operation const& operation); + virtual future> UpdateRouter( google::cloud::edgenetwork::v1::UpdateRouterRequest const& request); + virtual StatusOr UpdateRouter( + ExperimentalTag, NoAwaitTag, + google::cloud::edgenetwork::v1::UpdateRouterRequest const& request); + + virtual future> UpdateRouter( + ExperimentalTag, google::longrunning::Operation const& operation); + virtual future> DeleteRouter( google::cloud::edgenetwork::v1::DeleteRouterRequest const& request); + + virtual StatusOr DeleteRouter( + ExperimentalTag, NoAwaitTag, + google::cloud::edgenetwork::v1::DeleteRouterRequest const& request); + + virtual future> + DeleteRouter(ExperimentalTag, + google::longrunning::Operation const& operation); }; /** diff --git a/google/cloud/edgenetwork/v1/internal/edge_network_connection_impl.cc b/google/cloud/edgenetwork/v1/internal/edge_network_connection_impl.cc index f8e65f1732f93..82c109d32510e 100644 --- a/google/cloud/edgenetwork/v1/internal/edge_network_connection_impl.cc +++ b/google/cloud/edgenetwork/v1/internal/edge_network_connection_impl.cc @@ -229,6 +229,58 @@ EdgeNetworkConnectionImpl::CreateNetwork( polling_policy(*current), __func__); } +StatusOr +EdgeNetworkConnectionImpl::CreateNetwork( + ExperimentalTag, NoAwaitTag, + google::cloud::edgenetwork::v1::CreateNetworkRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateNetwork(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::edgenetwork::v1::CreateNetworkRequest const& request) { + return stub_->CreateNetwork(context, options, request); + }, + *current, request, __func__); +} + +future> +EdgeNetworkConnectionImpl::CreateNetwork( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to CreateNetwork", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::edgenetwork::v1::Network>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::edgenetwork::v1::Network>, + polling_policy(*current), __func__); +} + future> EdgeNetworkConnectionImpl::DeleteNetwork( google::cloud::edgenetwork::v1::DeleteNetworkRequest const& request) { @@ -268,6 +320,59 @@ EdgeNetworkConnectionImpl::DeleteNetwork( polling_policy(*current), __func__); } +StatusOr +EdgeNetworkConnectionImpl::DeleteNetwork( + ExperimentalTag, NoAwaitTag, + google::cloud::edgenetwork::v1::DeleteNetworkRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteNetwork(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::edgenetwork::v1::DeleteNetworkRequest const& request) { + return stub_->DeleteNetwork(context, options, request); + }, + *current, request, __func__); +} + +future> +EdgeNetworkConnectionImpl::DeleteNetwork( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteNetwork", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::edgenetwork::v1::OperationMetadata>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::cloud::edgenetwork::v1::OperationMetadata>, + polling_policy(*current), __func__); +} + StreamRange EdgeNetworkConnectionImpl::ListSubnets( google::cloud::edgenetwork::v1::ListSubnetsRequest request) { @@ -355,6 +460,58 @@ EdgeNetworkConnectionImpl::CreateSubnet( polling_policy(*current), __func__); } +StatusOr +EdgeNetworkConnectionImpl::CreateSubnet( + ExperimentalTag, NoAwaitTag, + google::cloud::edgenetwork::v1::CreateSubnetRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateSubnet(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::edgenetwork::v1::CreateSubnetRequest const& request) { + return stub_->CreateSubnet(context, options, request); + }, + *current, request, __func__); +} + +future> +EdgeNetworkConnectionImpl::CreateSubnet( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to CreateSubnet", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::edgenetwork::v1::Subnet>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::edgenetwork::v1::Subnet>, + polling_policy(*current), __func__); +} + future> EdgeNetworkConnectionImpl::UpdateSubnet( google::cloud::edgenetwork::v1::UpdateSubnetRequest const& request) { @@ -394,6 +551,58 @@ EdgeNetworkConnectionImpl::UpdateSubnet( polling_policy(*current), __func__); } +StatusOr +EdgeNetworkConnectionImpl::UpdateSubnet( + ExperimentalTag, NoAwaitTag, + google::cloud::edgenetwork::v1::UpdateSubnetRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UpdateSubnet(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::edgenetwork::v1::UpdateSubnetRequest const& request) { + return stub_->UpdateSubnet(context, options, request); + }, + *current, request, __func__); +} + +future> +EdgeNetworkConnectionImpl::UpdateSubnet( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to UpdateSubnet", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::edgenetwork::v1::Subnet>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::edgenetwork::v1::Subnet>, + polling_policy(*current), __func__); +} + future> EdgeNetworkConnectionImpl::DeleteSubnet( google::cloud::edgenetwork::v1::DeleteSubnetRequest const& request) { @@ -433,6 +642,59 @@ EdgeNetworkConnectionImpl::DeleteSubnet( polling_policy(*current), __func__); } +StatusOr +EdgeNetworkConnectionImpl::DeleteSubnet( + ExperimentalTag, NoAwaitTag, + google::cloud::edgenetwork::v1::DeleteSubnetRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteSubnet(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::edgenetwork::v1::DeleteSubnetRequest const& request) { + return stub_->DeleteSubnet(context, options, request); + }, + *current, request, __func__); +} + +future> +EdgeNetworkConnectionImpl::DeleteSubnet( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteSubnet", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::edgenetwork::v1::OperationMetadata>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::cloud::edgenetwork::v1::OperationMetadata>, + polling_policy(*current), __func__); +} + StreamRange EdgeNetworkConnectionImpl::ListInterconnects( google::cloud::edgenetwork::v1::ListInterconnectsRequest request) { @@ -594,6 +856,60 @@ EdgeNetworkConnectionImpl::CreateInterconnectAttachment( polling_policy(*current), __func__); } +StatusOr +EdgeNetworkConnectionImpl::CreateInterconnectAttachment( + ExperimentalTag, NoAwaitTag, + google::cloud::edgenetwork::v1::CreateInterconnectAttachmentRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateInterconnectAttachment(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::edgenetwork::v1:: + CreateInterconnectAttachmentRequest const& request) { + return stub_->CreateInterconnectAttachment(context, options, request); + }, + *current, request, __func__); +} + +future> +EdgeNetworkConnectionImpl::CreateInterconnectAttachment( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to CreateInterconnectAttachment", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::edgenetwork::v1::InterconnectAttachment>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::edgenetwork::v1::InterconnectAttachment>, + polling_policy(*current), __func__); +} + future> EdgeNetworkConnectionImpl::DeleteInterconnectAttachment( google::cloud::edgenetwork::v1::DeleteInterconnectAttachmentRequest const& @@ -634,6 +950,60 @@ EdgeNetworkConnectionImpl::DeleteInterconnectAttachment( polling_policy(*current), __func__); } +StatusOr +EdgeNetworkConnectionImpl::DeleteInterconnectAttachment( + ExperimentalTag, NoAwaitTag, + google::cloud::edgenetwork::v1::DeleteInterconnectAttachmentRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteInterconnectAttachment(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::edgenetwork::v1:: + DeleteInterconnectAttachmentRequest const& request) { + return stub_->DeleteInterconnectAttachment(context, options, request); + }, + *current, request, __func__); +} + +future> +EdgeNetworkConnectionImpl::DeleteInterconnectAttachment( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteInterconnectAttachment", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::edgenetwork::v1::OperationMetadata>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::cloud::edgenetwork::v1::OperationMetadata>, + polling_policy(*current), __func__); +} + StreamRange EdgeNetworkConnectionImpl::ListRouters( google::cloud::edgenetwork::v1::ListRoutersRequest request) { @@ -736,6 +1106,58 @@ EdgeNetworkConnectionImpl::CreateRouter( polling_policy(*current), __func__); } +StatusOr +EdgeNetworkConnectionImpl::CreateRouter( + ExperimentalTag, NoAwaitTag, + google::cloud::edgenetwork::v1::CreateRouterRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateRouter(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::edgenetwork::v1::CreateRouterRequest const& request) { + return stub_->CreateRouter(context, options, request); + }, + *current, request, __func__); +} + +future> +EdgeNetworkConnectionImpl::CreateRouter( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to CreateRouter", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::edgenetwork::v1::Router>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::edgenetwork::v1::Router>, + polling_policy(*current), __func__); +} + future> EdgeNetworkConnectionImpl::UpdateRouter( google::cloud::edgenetwork::v1::UpdateRouterRequest const& request) { @@ -775,6 +1197,58 @@ EdgeNetworkConnectionImpl::UpdateRouter( polling_policy(*current), __func__); } +StatusOr +EdgeNetworkConnectionImpl::UpdateRouter( + ExperimentalTag, NoAwaitTag, + google::cloud::edgenetwork::v1::UpdateRouterRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UpdateRouter(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::edgenetwork::v1::UpdateRouterRequest const& request) { + return stub_->UpdateRouter(context, options, request); + }, + *current, request, __func__); +} + +future> +EdgeNetworkConnectionImpl::UpdateRouter( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to UpdateRouter", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::edgenetwork::v1::Router>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::edgenetwork::v1::Router>, + polling_policy(*current), __func__); +} + future> EdgeNetworkConnectionImpl::DeleteRouter( google::cloud::edgenetwork::v1::DeleteRouterRequest const& request) { @@ -814,6 +1288,59 @@ EdgeNetworkConnectionImpl::DeleteRouter( polling_policy(*current), __func__); } +StatusOr +EdgeNetworkConnectionImpl::DeleteRouter( + ExperimentalTag, NoAwaitTag, + google::cloud::edgenetwork::v1::DeleteRouterRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteRouter(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::edgenetwork::v1::DeleteRouterRequest const& request) { + return stub_->DeleteRouter(context, options, request); + }, + *current, request, __func__); +} + +future> +EdgeNetworkConnectionImpl::DeleteRouter( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteRouter", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::edgenetwork::v1::OperationMetadata>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::cloud::edgenetwork::v1::OperationMetadata>, + polling_policy(*current), __func__); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace edgenetwork_v1_internal } // namespace cloud diff --git a/google/cloud/edgenetwork/v1/internal/edge_network_connection_impl.h b/google/cloud/edgenetwork/v1/internal/edge_network_connection_impl.h index b2abe42eba25c..25a65f0bd8820 100644 --- a/google/cloud/edgenetwork/v1/internal/edge_network_connection_impl.h +++ b/google/cloud/edgenetwork/v1/internal/edge_network_connection_impl.h @@ -76,10 +76,28 @@ class EdgeNetworkConnectionImpl : public edgenetwork_v1::EdgeNetworkConnection { google::cloud::edgenetwork::v1::CreateNetworkRequest const& request) override; + StatusOr CreateNetwork( + ExperimentalTag, NoAwaitTag, + google::cloud::edgenetwork::v1::CreateNetworkRequest const& request) + override; + + future> CreateNetwork( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteNetwork(google::cloud::edgenetwork::v1::DeleteNetworkRequest const& request) override; + StatusOr DeleteNetwork( + ExperimentalTag, NoAwaitTag, + google::cloud::edgenetwork::v1::DeleteNetworkRequest const& request) + override; + + future> + DeleteNetwork(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListSubnets( google::cloud::edgenetwork::v1::ListSubnetsRequest request) override; @@ -90,14 +108,41 @@ class EdgeNetworkConnectionImpl : public edgenetwork_v1::EdgeNetworkConnection { google::cloud::edgenetwork::v1::CreateSubnetRequest const& request) override; + StatusOr CreateSubnet( + ExperimentalTag, NoAwaitTag, + google::cloud::edgenetwork::v1::CreateSubnetRequest const& request) + override; + + future> CreateSubnet( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateSubnet( google::cloud::edgenetwork::v1::UpdateSubnetRequest const& request) override; + StatusOr UpdateSubnet( + ExperimentalTag, NoAwaitTag, + google::cloud::edgenetwork::v1::UpdateSubnetRequest const& request) + override; + + future> UpdateSubnet( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteSubnet(google::cloud::edgenetwork::v1::DeleteSubnetRequest const& request) override; + StatusOr DeleteSubnet( + ExperimentalTag, NoAwaitTag, + google::cloud::edgenetwork::v1::DeleteSubnetRequest const& request) + override; + + future> + DeleteSubnet(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListInterconnects( google::cloud::edgenetwork::v1::ListInterconnectsRequest request) override; @@ -126,11 +171,31 @@ class EdgeNetworkConnectionImpl : public edgenetwork_v1::EdgeNetworkConnection { google::cloud::edgenetwork::v1::CreateInterconnectAttachmentRequest const& request) override; + StatusOr CreateInterconnectAttachment( + ExperimentalTag, NoAwaitTag, + google::cloud::edgenetwork::v1::CreateInterconnectAttachmentRequest const& + request) override; + + future> + CreateInterconnectAttachment( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteInterconnectAttachment( google::cloud::edgenetwork::v1::DeleteInterconnectAttachmentRequest const& request) override; + StatusOr DeleteInterconnectAttachment( + ExperimentalTag, NoAwaitTag, + google::cloud::edgenetwork::v1::DeleteInterconnectAttachmentRequest const& + request) override; + + future> + DeleteInterconnectAttachment( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListRouters( google::cloud::edgenetwork::v1::ListRoutersRequest request) override; @@ -145,14 +210,41 @@ class EdgeNetworkConnectionImpl : public edgenetwork_v1::EdgeNetworkConnection { google::cloud::edgenetwork::v1::CreateRouterRequest const& request) override; + StatusOr CreateRouter( + ExperimentalTag, NoAwaitTag, + google::cloud::edgenetwork::v1::CreateRouterRequest const& request) + override; + + future> CreateRouter( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateRouter( google::cloud::edgenetwork::v1::UpdateRouterRequest const& request) override; + StatusOr UpdateRouter( + ExperimentalTag, NoAwaitTag, + google::cloud::edgenetwork::v1::UpdateRouterRequest const& request) + override; + + future> UpdateRouter( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteRouter(google::cloud::edgenetwork::v1::DeleteRouterRequest const& request) override; + StatusOr DeleteRouter( + ExperimentalTag, NoAwaitTag, + google::cloud::edgenetwork::v1::DeleteRouterRequest const& request) + override; + + future> + DeleteRouter(ExperimentalTag, + google::longrunning::Operation const& operation) override; + private: std::unique_ptr background_; std::shared_ptr stub_; diff --git a/google/cloud/edgenetwork/v1/internal/edge_network_tracing_connection.cc b/google/cloud/edgenetwork/v1/internal/edge_network_tracing_connection.cc index 82732f921a8dc..cb4fb62912943 100644 --- a/google/cloud/edgenetwork/v1/internal/edge_network_tracing_connection.cc +++ b/google/cloud/edgenetwork/v1/internal/edge_network_tracing_connection.cc @@ -100,6 +100,27 @@ EdgeNetworkTracingConnection::CreateNetwork( return internal::EndSpan(std::move(span), child_->CreateNetwork(request)); } +StatusOr +EdgeNetworkTracingConnection::CreateNetwork( + ExperimentalTag, NoAwaitTag, + google::cloud::edgenetwork::v1::CreateNetworkRequest const& request) { + auto span = internal::MakeSpan( + "edgenetwork_v1::EdgeNetworkConnection::CreateNetwork"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->CreateNetwork(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +EdgeNetworkTracingConnection::CreateNetwork( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "edgenetwork_v1::EdgeNetworkConnection::CreateNetwork"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->CreateNetwork(ExperimentalTag{}, operation)); +} + future> EdgeNetworkTracingConnection::DeleteNetwork( google::cloud::edgenetwork::v1::DeleteNetworkRequest const& request) { @@ -109,6 +130,27 @@ EdgeNetworkTracingConnection::DeleteNetwork( return internal::EndSpan(std::move(span), child_->DeleteNetwork(request)); } +StatusOr +EdgeNetworkTracingConnection::DeleteNetwork( + ExperimentalTag, NoAwaitTag, + google::cloud::edgenetwork::v1::DeleteNetworkRequest const& request) { + auto span = internal::MakeSpan( + "edgenetwork_v1::EdgeNetworkConnection::DeleteNetwork"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->DeleteNetwork(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +EdgeNetworkTracingConnection::DeleteNetwork( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "edgenetwork_v1::EdgeNetworkConnection::DeleteNetwork"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->DeleteNetwork(ExperimentalTag{}, operation)); +} + StreamRange EdgeNetworkTracingConnection::ListSubnets( google::cloud::edgenetwork::v1::ListSubnetsRequest request) { @@ -138,6 +180,27 @@ EdgeNetworkTracingConnection::CreateSubnet( return internal::EndSpan(std::move(span), child_->CreateSubnet(request)); } +StatusOr +EdgeNetworkTracingConnection::CreateSubnet( + ExperimentalTag, NoAwaitTag, + google::cloud::edgenetwork::v1::CreateSubnetRequest const& request) { + auto span = + internal::MakeSpan("edgenetwork_v1::EdgeNetworkConnection::CreateSubnet"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->CreateSubnet(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +EdgeNetworkTracingConnection::CreateSubnet( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = + internal::MakeSpan("edgenetwork_v1::EdgeNetworkConnection::CreateSubnet"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->CreateSubnet(ExperimentalTag{}, operation)); +} + future> EdgeNetworkTracingConnection::UpdateSubnet( google::cloud::edgenetwork::v1::UpdateSubnetRequest const& request) { @@ -147,6 +210,27 @@ EdgeNetworkTracingConnection::UpdateSubnet( return internal::EndSpan(std::move(span), child_->UpdateSubnet(request)); } +StatusOr +EdgeNetworkTracingConnection::UpdateSubnet( + ExperimentalTag, NoAwaitTag, + google::cloud::edgenetwork::v1::UpdateSubnetRequest const& request) { + auto span = + internal::MakeSpan("edgenetwork_v1::EdgeNetworkConnection::UpdateSubnet"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->UpdateSubnet(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +EdgeNetworkTracingConnection::UpdateSubnet( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = + internal::MakeSpan("edgenetwork_v1::EdgeNetworkConnection::UpdateSubnet"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->UpdateSubnet(ExperimentalTag{}, operation)); +} + future> EdgeNetworkTracingConnection::DeleteSubnet( google::cloud::edgenetwork::v1::DeleteSubnetRequest const& request) { @@ -156,6 +240,27 @@ EdgeNetworkTracingConnection::DeleteSubnet( return internal::EndSpan(std::move(span), child_->DeleteSubnet(request)); } +StatusOr +EdgeNetworkTracingConnection::DeleteSubnet( + ExperimentalTag, NoAwaitTag, + google::cloud::edgenetwork::v1::DeleteSubnetRequest const& request) { + auto span = + internal::MakeSpan("edgenetwork_v1::EdgeNetworkConnection::DeleteSubnet"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->DeleteSubnet(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +EdgeNetworkTracingConnection::DeleteSubnet( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = + internal::MakeSpan("edgenetwork_v1::EdgeNetworkConnection::DeleteSubnet"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->DeleteSubnet(ExperimentalTag{}, operation)); +} + StreamRange EdgeNetworkTracingConnection::ListInterconnects( google::cloud::edgenetwork::v1::ListInterconnectsRequest request) { @@ -221,6 +326,30 @@ EdgeNetworkTracingConnection::CreateInterconnectAttachment( child_->CreateInterconnectAttachment(request)); } +StatusOr +EdgeNetworkTracingConnection::CreateInterconnectAttachment( + ExperimentalTag, NoAwaitTag, + google::cloud::edgenetwork::v1::CreateInterconnectAttachmentRequest const& + request) { + auto span = internal::MakeSpan( + "edgenetwork_v1::EdgeNetworkConnection::CreateInterconnectAttachment"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->CreateInterconnectAttachment(ExperimentalTag{}, + NoAwaitTag{}, request)); +} + +future> +EdgeNetworkTracingConnection::CreateInterconnectAttachment( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "edgenetwork_v1::EdgeNetworkConnection::CreateInterconnectAttachment"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), + child_->CreateInterconnectAttachment(ExperimentalTag{}, operation)); +} + future> EdgeNetworkTracingConnection::DeleteInterconnectAttachment( google::cloud::edgenetwork::v1::DeleteInterconnectAttachmentRequest const& @@ -232,6 +361,30 @@ EdgeNetworkTracingConnection::DeleteInterconnectAttachment( child_->DeleteInterconnectAttachment(request)); } +StatusOr +EdgeNetworkTracingConnection::DeleteInterconnectAttachment( + ExperimentalTag, NoAwaitTag, + google::cloud::edgenetwork::v1::DeleteInterconnectAttachmentRequest const& + request) { + auto span = internal::MakeSpan( + "edgenetwork_v1::EdgeNetworkConnection::DeleteInterconnectAttachment"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->DeleteInterconnectAttachment(ExperimentalTag{}, + NoAwaitTag{}, request)); +} + +future> +EdgeNetworkTracingConnection::DeleteInterconnectAttachment( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "edgenetwork_v1::EdgeNetworkConnection::DeleteInterconnectAttachment"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), + child_->DeleteInterconnectAttachment(ExperimentalTag{}, operation)); +} + StreamRange EdgeNetworkTracingConnection::ListRouters( google::cloud::edgenetwork::v1::ListRoutersRequest request) { @@ -270,6 +423,27 @@ EdgeNetworkTracingConnection::CreateRouter( return internal::EndSpan(std::move(span), child_->CreateRouter(request)); } +StatusOr +EdgeNetworkTracingConnection::CreateRouter( + ExperimentalTag, NoAwaitTag, + google::cloud::edgenetwork::v1::CreateRouterRequest const& request) { + auto span = + internal::MakeSpan("edgenetwork_v1::EdgeNetworkConnection::CreateRouter"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->CreateRouter(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +EdgeNetworkTracingConnection::CreateRouter( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = + internal::MakeSpan("edgenetwork_v1::EdgeNetworkConnection::CreateRouter"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->CreateRouter(ExperimentalTag{}, operation)); +} + future> EdgeNetworkTracingConnection::UpdateRouter( google::cloud::edgenetwork::v1::UpdateRouterRequest const& request) { @@ -279,6 +453,27 @@ EdgeNetworkTracingConnection::UpdateRouter( return internal::EndSpan(std::move(span), child_->UpdateRouter(request)); } +StatusOr +EdgeNetworkTracingConnection::UpdateRouter( + ExperimentalTag, NoAwaitTag, + google::cloud::edgenetwork::v1::UpdateRouterRequest const& request) { + auto span = + internal::MakeSpan("edgenetwork_v1::EdgeNetworkConnection::UpdateRouter"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->UpdateRouter(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +EdgeNetworkTracingConnection::UpdateRouter( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = + internal::MakeSpan("edgenetwork_v1::EdgeNetworkConnection::UpdateRouter"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->UpdateRouter(ExperimentalTag{}, operation)); +} + future> EdgeNetworkTracingConnection::DeleteRouter( google::cloud::edgenetwork::v1::DeleteRouterRequest const& request) { @@ -288,6 +483,27 @@ EdgeNetworkTracingConnection::DeleteRouter( return internal::EndSpan(std::move(span), child_->DeleteRouter(request)); } +StatusOr +EdgeNetworkTracingConnection::DeleteRouter( + ExperimentalTag, NoAwaitTag, + google::cloud::edgenetwork::v1::DeleteRouterRequest const& request) { + auto span = + internal::MakeSpan("edgenetwork_v1::EdgeNetworkConnection::DeleteRouter"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->DeleteRouter(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +EdgeNetworkTracingConnection::DeleteRouter( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = + internal::MakeSpan("edgenetwork_v1::EdgeNetworkConnection::DeleteRouter"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->DeleteRouter(ExperimentalTag{}, operation)); +} + #endif // GOOGLE_CLOUD_CPP_HAVE_OPENTELEMETRY std::shared_ptr diff --git a/google/cloud/edgenetwork/v1/internal/edge_network_tracing_connection.h b/google/cloud/edgenetwork/v1/internal/edge_network_tracing_connection.h index 4ef6454c35e5c..1bbf47dae6a12 100644 --- a/google/cloud/edgenetwork/v1/internal/edge_network_tracing_connection.h +++ b/google/cloud/edgenetwork/v1/internal/edge_network_tracing_connection.h @@ -65,10 +65,28 @@ class EdgeNetworkTracingConnection google::cloud::edgenetwork::v1::CreateNetworkRequest const& request) override; + StatusOr CreateNetwork( + ExperimentalTag, NoAwaitTag, + google::cloud::edgenetwork::v1::CreateNetworkRequest const& request) + override; + + future> CreateNetwork( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteNetwork(google::cloud::edgenetwork::v1::DeleteNetworkRequest const& request) override; + StatusOr DeleteNetwork( + ExperimentalTag, NoAwaitTag, + google::cloud::edgenetwork::v1::DeleteNetworkRequest const& request) + override; + + future> + DeleteNetwork(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListSubnets( google::cloud::edgenetwork::v1::ListSubnetsRequest request) override; @@ -79,14 +97,41 @@ class EdgeNetworkTracingConnection google::cloud::edgenetwork::v1::CreateSubnetRequest const& request) override; + StatusOr CreateSubnet( + ExperimentalTag, NoAwaitTag, + google::cloud::edgenetwork::v1::CreateSubnetRequest const& request) + override; + + future> CreateSubnet( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateSubnet( google::cloud::edgenetwork::v1::UpdateSubnetRequest const& request) override; + StatusOr UpdateSubnet( + ExperimentalTag, NoAwaitTag, + google::cloud::edgenetwork::v1::UpdateSubnetRequest const& request) + override; + + future> UpdateSubnet( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteSubnet(google::cloud::edgenetwork::v1::DeleteSubnetRequest const& request) override; + StatusOr DeleteSubnet( + ExperimentalTag, NoAwaitTag, + google::cloud::edgenetwork::v1::DeleteSubnetRequest const& request) + override; + + future> + DeleteSubnet(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListInterconnects( google::cloud::edgenetwork::v1::ListInterconnectsRequest request) override; @@ -115,11 +160,31 @@ class EdgeNetworkTracingConnection google::cloud::edgenetwork::v1::CreateInterconnectAttachmentRequest const& request) override; + StatusOr CreateInterconnectAttachment( + ExperimentalTag, NoAwaitTag, + google::cloud::edgenetwork::v1::CreateInterconnectAttachmentRequest const& + request) override; + + future> + CreateInterconnectAttachment( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteInterconnectAttachment( google::cloud::edgenetwork::v1::DeleteInterconnectAttachmentRequest const& request) override; + StatusOr DeleteInterconnectAttachment( + ExperimentalTag, NoAwaitTag, + google::cloud::edgenetwork::v1::DeleteInterconnectAttachmentRequest const& + request) override; + + future> + DeleteInterconnectAttachment( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListRouters( google::cloud::edgenetwork::v1::ListRoutersRequest request) override; @@ -134,14 +199,41 @@ class EdgeNetworkTracingConnection google::cloud::edgenetwork::v1::CreateRouterRequest const& request) override; + StatusOr CreateRouter( + ExperimentalTag, NoAwaitTag, + google::cloud::edgenetwork::v1::CreateRouterRequest const& request) + override; + + future> CreateRouter( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateRouter( google::cloud::edgenetwork::v1::UpdateRouterRequest const& request) override; + StatusOr UpdateRouter( + ExperimentalTag, NoAwaitTag, + google::cloud::edgenetwork::v1::UpdateRouterRequest const& request) + override; + + future> UpdateRouter( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteRouter(google::cloud::edgenetwork::v1::DeleteRouterRequest const& request) override; + StatusOr DeleteRouter( + ExperimentalTag, NoAwaitTag, + google::cloud::edgenetwork::v1::DeleteRouterRequest const& request) + override; + + future> + DeleteRouter(ExperimentalTag, + google::longrunning::Operation const& operation) override; + private: std::shared_ptr child_; }; diff --git a/google/cloud/edgenetwork/v1/mocks/mock_edge_network_connection.h b/google/cloud/edgenetwork/v1/mocks/mock_edge_network_connection.h index cc3732f0eb9d4..4480dbd841afd 100644 --- a/google/cloud/edgenetwork/v1/mocks/mock_edge_network_connection.h +++ b/google/cloud/edgenetwork/v1/mocks/mock_edge_network_connection.h @@ -81,12 +81,36 @@ class MockEdgeNetworkConnection : public edgenetwork_v1::EdgeNetworkConnection { (google::cloud::edgenetwork::v1::CreateNetworkRequest const& request), (override)); + MOCK_METHOD( + StatusOr, CreateNetwork, + (ExperimentalTag, NoAwaitTag, + google::cloud::edgenetwork::v1::CreateNetworkRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateNetwork, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteNetwork, (google::cloud::edgenetwork::v1::DeleteNetworkRequest const& request), (override)); + MOCK_METHOD( + StatusOr, DeleteNetwork, + (ExperimentalTag, NoAwaitTag, + google::cloud::edgenetwork::v1::DeleteNetworkRequest const& request), + (override)); + + MOCK_METHOD( + future>, + DeleteNetwork, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD((StreamRange), ListSubnets, (google::cloud::edgenetwork::v1::ListSubnetsRequest request), @@ -101,17 +125,53 @@ class MockEdgeNetworkConnection : public edgenetwork_v1::EdgeNetworkConnection { (google::cloud::edgenetwork::v1::CreateSubnetRequest const& request), (override)); + MOCK_METHOD( + StatusOr, CreateSubnet, + (ExperimentalTag, NoAwaitTag, + google::cloud::edgenetwork::v1::CreateSubnetRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateSubnet, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, UpdateSubnet, (google::cloud::edgenetwork::v1::UpdateSubnetRequest const& request), (override)); + MOCK_METHOD( + StatusOr, UpdateSubnet, + (ExperimentalTag, NoAwaitTag, + google::cloud::edgenetwork::v1::UpdateSubnetRequest const& request), + (override)); + + MOCK_METHOD(future>, + UpdateSubnet, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteSubnet, (google::cloud::edgenetwork::v1::DeleteSubnetRequest const& request), (override)); + MOCK_METHOD( + StatusOr, DeleteSubnet, + (ExperimentalTag, NoAwaitTag, + google::cloud::edgenetwork::v1::DeleteSubnetRequest const& request), + (override)); + + MOCK_METHOD( + future>, + DeleteSubnet, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( (StreamRange), ListInterconnects, @@ -151,6 +211,19 @@ class MockEdgeNetworkConnection : public edgenetwork_v1::EdgeNetworkConnection { CreateInterconnectAttachmentRequest const& request), (override)); + MOCK_METHOD(StatusOr, + CreateInterconnectAttachment, + (ExperimentalTag, NoAwaitTag, + google::cloud::edgenetwork::v1:: + CreateInterconnectAttachmentRequest const& request), + (override)); + + MOCK_METHOD( + future>, + CreateInterconnectAttachment, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteInterconnectAttachment, @@ -158,6 +231,19 @@ class MockEdgeNetworkConnection : public edgenetwork_v1::EdgeNetworkConnection { DeleteInterconnectAttachmentRequest const& request), (override)); + MOCK_METHOD(StatusOr, + DeleteInterconnectAttachment, + (ExperimentalTag, NoAwaitTag, + google::cloud::edgenetwork::v1:: + DeleteInterconnectAttachmentRequest const& request), + (override)); + + MOCK_METHOD( + future>, + DeleteInterconnectAttachment, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD((StreamRange), ListRouters, (google::cloud::edgenetwork::v1::ListRoutersRequest request), @@ -178,16 +264,52 @@ class MockEdgeNetworkConnection : public edgenetwork_v1::EdgeNetworkConnection { (google::cloud::edgenetwork::v1::CreateRouterRequest const& request), (override)); + MOCK_METHOD( + StatusOr, CreateRouter, + (ExperimentalTag, NoAwaitTag, + google::cloud::edgenetwork::v1::CreateRouterRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateRouter, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, UpdateRouter, (google::cloud::edgenetwork::v1::UpdateRouterRequest const& request), (override)); + MOCK_METHOD( + StatusOr, UpdateRouter, + (ExperimentalTag, NoAwaitTag, + google::cloud::edgenetwork::v1::UpdateRouterRequest const& request), + (override)); + + MOCK_METHOD(future>, + UpdateRouter, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteRouter, (google::cloud::edgenetwork::v1::DeleteRouterRequest const& request), (override)); + + MOCK_METHOD( + StatusOr, DeleteRouter, + (ExperimentalTag, NoAwaitTag, + google::cloud::edgenetwork::v1::DeleteRouterRequest const& request), + (override)); + + MOCK_METHOD( + future>, + DeleteRouter, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); }; GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END diff --git a/google/cloud/essentialcontacts/v1/essential_contacts_connection.h b/google/cloud/essentialcontacts/v1/essential_contacts_connection.h index 3ee8524a52e4a..2e9114cfe841f 100644 --- a/google/cloud/essentialcontacts/v1/essential_contacts_connection.h +++ b/google/cloud/essentialcontacts/v1/essential_contacts_connection.h @@ -22,6 +22,7 @@ #include "google/cloud/essentialcontacts/v1/essential_contacts_connection_idempotency_policy.h" #include "google/cloud/essentialcontacts/v1/internal/essential_contacts_retry_traits.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/internal/retry_policy_impl.h" #include "google/cloud/options.h" #include "google/cloud/status_or.h" diff --git a/google/cloud/eventarc/publishing/v1/publisher_connection.h b/google/cloud/eventarc/publishing/v1/publisher_connection.h index ce8ca02922a15..de067552b103a 100644 --- a/google/cloud/eventarc/publishing/v1/publisher_connection.h +++ b/google/cloud/eventarc/publishing/v1/publisher_connection.h @@ -22,6 +22,7 @@ #include "google/cloud/eventarc/publishing/v1/internal/publisher_retry_traits.h" #include "google/cloud/eventarc/publishing/v1/publisher_connection_idempotency_policy.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/internal/retry_policy_impl.h" #include "google/cloud/options.h" #include "google/cloud/status_or.h" diff --git a/google/cloud/eventarc/v1/eventarc_connection.cc b/google/cloud/eventarc/v1/eventarc_connection.cc index 80729301731b1..74789e64fdee7 100644 --- a/google/cloud/eventarc/v1/eventarc_connection.cc +++ b/google/cloud/eventarc/v1/eventarc_connection.cc @@ -59,6 +59,21 @@ EventarcConnection::CreateTrigger( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr EventarcConnection::CreateTrigger( + ExperimentalTag, NoAwaitTag, + google::cloud::eventarc::v1::CreateTriggerRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +EventarcConnection::CreateTrigger(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> EventarcConnection::UpdateTrigger( google::cloud::eventarc::v1::UpdateTriggerRequest const&) { @@ -67,6 +82,21 @@ EventarcConnection::UpdateTrigger( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr EventarcConnection::UpdateTrigger( + ExperimentalTag, NoAwaitTag, + google::cloud::eventarc::v1::UpdateTriggerRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +EventarcConnection::UpdateTrigger(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> EventarcConnection::DeleteTrigger( google::cloud::eventarc::v1::DeleteTriggerRequest const&) { @@ -75,6 +105,21 @@ EventarcConnection::DeleteTrigger( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr EventarcConnection::DeleteTrigger( + ExperimentalTag, NoAwaitTag, + google::cloud::eventarc::v1::DeleteTriggerRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +EventarcConnection::DeleteTrigger(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr EventarcConnection::GetChannel( google::cloud::eventarc::v1::GetChannelRequest const&) { return Status(StatusCode::kUnimplemented, "not implemented"); @@ -96,6 +141,21 @@ EventarcConnection::CreateChannel( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr EventarcConnection::CreateChannel( + ExperimentalTag, NoAwaitTag, + google::cloud::eventarc::v1::CreateChannelRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +EventarcConnection::CreateChannel(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> EventarcConnection::UpdateChannel( google::cloud::eventarc::v1::UpdateChannelRequest const&) { @@ -104,6 +164,21 @@ EventarcConnection::UpdateChannel( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr EventarcConnection::UpdateChannel( + ExperimentalTag, NoAwaitTag, + google::cloud::eventarc::v1::UpdateChannelRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +EventarcConnection::UpdateChannel(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> EventarcConnection::DeleteChannel( google::cloud::eventarc::v1::DeleteChannelRequest const&) { @@ -112,6 +187,21 @@ EventarcConnection::DeleteChannel( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr EventarcConnection::DeleteChannel( + ExperimentalTag, NoAwaitTag, + google::cloud::eventarc::v1::DeleteChannelRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +EventarcConnection::DeleteChannel(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr EventarcConnection::GetProvider( google::cloud::eventarc::v1::GetProviderRequest const&) { return Status(StatusCode::kUnimplemented, "not implemented"); @@ -147,6 +237,22 @@ EventarcConnection::CreateChannelConnection( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +EventarcConnection::CreateChannelConnection( + ExperimentalTag, NoAwaitTag, + google::cloud::eventarc::v1::CreateChannelConnectionRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +EventarcConnection::CreateChannelConnection( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> EventarcConnection::DeleteChannelConnection( google::cloud::eventarc::v1::DeleteChannelConnectionRequest const&) { @@ -155,6 +261,22 @@ EventarcConnection::DeleteChannelConnection( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +EventarcConnection::DeleteChannelConnection( + ExperimentalTag, NoAwaitTag, + google::cloud::eventarc::v1::DeleteChannelConnectionRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +EventarcConnection::DeleteChannelConnection( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr EventarcConnection::GetGoogleChannelConfig( google::cloud::eventarc::v1::GetGoogleChannelConfigRequest const&) { diff --git a/google/cloud/eventarc/v1/eventarc_connection.h b/google/cloud/eventarc/v1/eventarc_connection.h index c62bd68c1c902..8f70788625dc2 100644 --- a/google/cloud/eventarc/v1/eventarc_connection.h +++ b/google/cloud/eventarc/v1/eventarc_connection.h @@ -22,8 +22,10 @@ #include "google/cloud/eventarc/v1/eventarc_connection_idempotency_policy.h" #include "google/cloud/eventarc/v1/internal/eventarc_retry_traits.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/internal/retry_policy_impl.h" +#include "google/cloud/no_await_tag.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" #include "google/cloud/status_or.h" @@ -193,12 +195,33 @@ class EventarcConnection { virtual future> CreateTrigger( google::cloud::eventarc::v1::CreateTriggerRequest const& request); + virtual StatusOr CreateTrigger( + ExperimentalTag, NoAwaitTag, + google::cloud::eventarc::v1::CreateTriggerRequest const& request); + + virtual future> CreateTrigger( + ExperimentalTag, google::longrunning::Operation const& operation); + virtual future> UpdateTrigger( google::cloud::eventarc::v1::UpdateTriggerRequest const& request); + virtual StatusOr UpdateTrigger( + ExperimentalTag, NoAwaitTag, + google::cloud::eventarc::v1::UpdateTriggerRequest const& request); + + virtual future> UpdateTrigger( + ExperimentalTag, google::longrunning::Operation const& operation); + virtual future> DeleteTrigger( google::cloud::eventarc::v1::DeleteTriggerRequest const& request); + virtual StatusOr DeleteTrigger( + ExperimentalTag, NoAwaitTag, + google::cloud::eventarc::v1::DeleteTriggerRequest const& request); + + virtual future> DeleteTrigger( + ExperimentalTag, google::longrunning::Operation const& operation); + virtual StatusOr GetChannel( google::cloud::eventarc::v1::GetChannelRequest const& request); @@ -208,12 +231,33 @@ class EventarcConnection { virtual future> CreateChannel( google::cloud::eventarc::v1::CreateChannelRequest const& request); + virtual StatusOr CreateChannel( + ExperimentalTag, NoAwaitTag, + google::cloud::eventarc::v1::CreateChannelRequest const& request); + + virtual future> CreateChannel( + ExperimentalTag, google::longrunning::Operation const& operation); + virtual future> UpdateChannel( google::cloud::eventarc::v1::UpdateChannelRequest const& request); + virtual StatusOr UpdateChannel( + ExperimentalTag, NoAwaitTag, + google::cloud::eventarc::v1::UpdateChannelRequest const& request); + + virtual future> UpdateChannel( + ExperimentalTag, google::longrunning::Operation const& operation); + virtual future> DeleteChannel( google::cloud::eventarc::v1::DeleteChannelRequest const& request); + virtual StatusOr DeleteChannel( + ExperimentalTag, NoAwaitTag, + google::cloud::eventarc::v1::DeleteChannelRequest const& request); + + virtual future> DeleteChannel( + ExperimentalTag, google::longrunning::Operation const& operation); + virtual StatusOr GetProvider( google::cloud::eventarc::v1::GetProviderRequest const& request); @@ -233,11 +277,29 @@ class EventarcConnection { google::cloud::eventarc::v1::CreateChannelConnectionRequest const& request); + virtual StatusOr CreateChannelConnection( + ExperimentalTag, NoAwaitTag, + google::cloud::eventarc::v1::CreateChannelConnectionRequest const& + request); + + virtual future> + CreateChannelConnection(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> DeleteChannelConnection( google::cloud::eventarc::v1::DeleteChannelConnectionRequest const& request); + virtual StatusOr DeleteChannelConnection( + ExperimentalTag, NoAwaitTag, + google::cloud::eventarc::v1::DeleteChannelConnectionRequest const& + request); + + virtual future> + DeleteChannelConnection(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StatusOr GetGoogleChannelConfig( google::cloud::eventarc::v1::GetGoogleChannelConfigRequest const& diff --git a/google/cloud/eventarc/v1/internal/eventarc_connection_impl.cc b/google/cloud/eventarc/v1/internal/eventarc_connection_impl.cc index 4c36c6608906b..b945cbafbc145 100644 --- a/google/cloud/eventarc/v1/internal/eventarc_connection_impl.cc +++ b/google/cloud/eventarc/v1/internal/eventarc_connection_impl.cc @@ -149,6 +149,56 @@ EventarcConnectionImpl::CreateTrigger( polling_policy(*current), __func__); } +StatusOr EventarcConnectionImpl::CreateTrigger( + ExperimentalTag, NoAwaitTag, + google::cloud::eventarc::v1::CreateTriggerRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateTrigger(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::eventarc::v1::CreateTriggerRequest const& request) { + return stub_->CreateTrigger(context, options, request); + }, + *current, request, __func__); +} + +future> +EventarcConnectionImpl::CreateTrigger( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to CreateTrigger", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::eventarc::v1::Trigger>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::eventarc::v1::Trigger>, + polling_policy(*current), __func__); +} + future> EventarcConnectionImpl::UpdateTrigger( google::cloud::eventarc::v1::UpdateTriggerRequest const& request) { @@ -188,6 +238,56 @@ EventarcConnectionImpl::UpdateTrigger( polling_policy(*current), __func__); } +StatusOr EventarcConnectionImpl::UpdateTrigger( + ExperimentalTag, NoAwaitTag, + google::cloud::eventarc::v1::UpdateTriggerRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UpdateTrigger(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::eventarc::v1::UpdateTriggerRequest const& request) { + return stub_->UpdateTrigger(context, options, request); + }, + *current, request, __func__); +} + +future> +EventarcConnectionImpl::UpdateTrigger( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to UpdateTrigger", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::eventarc::v1::Trigger>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::eventarc::v1::Trigger>, + polling_policy(*current), __func__); +} + future> EventarcConnectionImpl::DeleteTrigger( google::cloud::eventarc::v1::DeleteTriggerRequest const& request) { @@ -227,6 +327,56 @@ EventarcConnectionImpl::DeleteTrigger( polling_policy(*current), __func__); } +StatusOr EventarcConnectionImpl::DeleteTrigger( + ExperimentalTag, NoAwaitTag, + google::cloud::eventarc::v1::DeleteTriggerRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteTrigger(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::eventarc::v1::DeleteTriggerRequest const& request) { + return stub_->DeleteTrigger(context, options, request); + }, + *current, request, __func__); +} + +future> +EventarcConnectionImpl::DeleteTrigger( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteTrigger", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::eventarc::v1::Trigger>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::eventarc::v1::Trigger>, + polling_policy(*current), __func__); +} + StatusOr EventarcConnectionImpl::GetChannel( google::cloud::eventarc::v1::GetChannelRequest const& request) { @@ -314,6 +464,56 @@ EventarcConnectionImpl::CreateChannel( polling_policy(*current), __func__); } +StatusOr EventarcConnectionImpl::CreateChannel( + ExperimentalTag, NoAwaitTag, + google::cloud::eventarc::v1::CreateChannelRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateChannel(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::eventarc::v1::CreateChannelRequest const& request) { + return stub_->CreateChannel(context, options, request); + }, + *current, request, __func__); +} + +future> +EventarcConnectionImpl::CreateChannel( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to CreateChannel", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::eventarc::v1::Channel>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::eventarc::v1::Channel>, + polling_policy(*current), __func__); +} + future> EventarcConnectionImpl::UpdateChannel( google::cloud::eventarc::v1::UpdateChannelRequest const& request) { @@ -353,6 +553,56 @@ EventarcConnectionImpl::UpdateChannel( polling_policy(*current), __func__); } +StatusOr EventarcConnectionImpl::UpdateChannel( + ExperimentalTag, NoAwaitTag, + google::cloud::eventarc::v1::UpdateChannelRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UpdateChannel(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::eventarc::v1::UpdateChannelRequest const& request) { + return stub_->UpdateChannel(context, options, request); + }, + *current, request, __func__); +} + +future> +EventarcConnectionImpl::UpdateChannel( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to UpdateChannel", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::eventarc::v1::Channel>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::eventarc::v1::Channel>, + polling_policy(*current), __func__); +} + future> EventarcConnectionImpl::DeleteChannel( google::cloud::eventarc::v1::DeleteChannelRequest const& request) { @@ -392,6 +642,56 @@ EventarcConnectionImpl::DeleteChannel( polling_policy(*current), __func__); } +StatusOr EventarcConnectionImpl::DeleteChannel( + ExperimentalTag, NoAwaitTag, + google::cloud::eventarc::v1::DeleteChannelRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteChannel(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::eventarc::v1::DeleteChannelRequest const& request) { + return stub_->DeleteChannel(context, options, request); + }, + *current, request, __func__); +} + +future> +EventarcConnectionImpl::DeleteChannel( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteChannel", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::eventarc::v1::Channel>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::eventarc::v1::Channel>, + polling_policy(*current), __func__); +} + StatusOr EventarcConnectionImpl::GetProvider( google::cloud::eventarc::v1::GetProviderRequest const& request) { @@ -531,6 +831,60 @@ EventarcConnectionImpl::CreateChannelConnection( polling_policy(*current), __func__); } +StatusOr +EventarcConnectionImpl::CreateChannelConnection( + ExperimentalTag, NoAwaitTag, + google::cloud::eventarc::v1::CreateChannelConnectionRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateChannelConnection(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::eventarc::v1::CreateChannelConnectionRequest const& + request) { + return stub_->CreateChannelConnection(context, options, request); + }, + *current, request, __func__); +} + +future> +EventarcConnectionImpl::CreateChannelConnection( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to CreateChannelConnection", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::eventarc::v1::ChannelConnection>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::eventarc::v1::ChannelConnection>, + polling_policy(*current), __func__); +} + future> EventarcConnectionImpl::DeleteChannelConnection( google::cloud::eventarc::v1::DeleteChannelConnectionRequest const& @@ -572,6 +926,60 @@ EventarcConnectionImpl::DeleteChannelConnection( polling_policy(*current), __func__); } +StatusOr +EventarcConnectionImpl::DeleteChannelConnection( + ExperimentalTag, NoAwaitTag, + google::cloud::eventarc::v1::DeleteChannelConnectionRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteChannelConnection(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::eventarc::v1::DeleteChannelConnectionRequest const& + request) { + return stub_->DeleteChannelConnection(context, options, request); + }, + *current, request, __func__); +} + +future> +EventarcConnectionImpl::DeleteChannelConnection( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteChannelConnection", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::eventarc::v1::ChannelConnection>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::eventarc::v1::ChannelConnection>, + polling_policy(*current), __func__); +} + StatusOr EventarcConnectionImpl::GetGoogleChannelConfig( google::cloud::eventarc::v1::GetGoogleChannelConfigRequest const& request) { diff --git a/google/cloud/eventarc/v1/internal/eventarc_connection_impl.h b/google/cloud/eventarc/v1/internal/eventarc_connection_impl.h index c0f290c162e90..fce278c18ca54 100644 --- a/google/cloud/eventarc/v1/internal/eventarc_connection_impl.h +++ b/google/cloud/eventarc/v1/internal/eventarc_connection_impl.h @@ -61,14 +61,41 @@ class EventarcConnectionImpl : public eventarc_v1::EventarcConnection { google::cloud::eventarc::v1::CreateTriggerRequest const& request) override; + StatusOr CreateTrigger( + ExperimentalTag, NoAwaitTag, + google::cloud::eventarc::v1::CreateTriggerRequest const& request) + override; + + future> CreateTrigger( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateTrigger( google::cloud::eventarc::v1::UpdateTriggerRequest const& request) override; + StatusOr UpdateTrigger( + ExperimentalTag, NoAwaitTag, + google::cloud::eventarc::v1::UpdateTriggerRequest const& request) + override; + + future> UpdateTrigger( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteTrigger( google::cloud::eventarc::v1::DeleteTriggerRequest const& request) override; + StatusOr DeleteTrigger( + ExperimentalTag, NoAwaitTag, + google::cloud::eventarc::v1::DeleteTriggerRequest const& request) + override; + + future> DeleteTrigger( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetChannel( google::cloud::eventarc::v1::GetChannelRequest const& request) override; @@ -79,14 +106,41 @@ class EventarcConnectionImpl : public eventarc_v1::EventarcConnection { google::cloud::eventarc::v1::CreateChannelRequest const& request) override; + StatusOr CreateChannel( + ExperimentalTag, NoAwaitTag, + google::cloud::eventarc::v1::CreateChannelRequest const& request) + override; + + future> CreateChannel( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateChannel( google::cloud::eventarc::v1::UpdateChannelRequest const& request) override; + StatusOr UpdateChannel( + ExperimentalTag, NoAwaitTag, + google::cloud::eventarc::v1::UpdateChannelRequest const& request) + override; + + future> UpdateChannel( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteChannel( google::cloud::eventarc::v1::DeleteChannelRequest const& request) override; + StatusOr DeleteChannel( + ExperimentalTag, NoAwaitTag, + google::cloud::eventarc::v1::DeleteChannelRequest const& request) + override; + + future> DeleteChannel( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetProvider( google::cloud::eventarc::v1::GetProviderRequest const& request) override; @@ -107,11 +161,31 @@ class EventarcConnectionImpl : public eventarc_v1::EventarcConnection { google::cloud::eventarc::v1::CreateChannelConnectionRequest const& request) override; + StatusOr CreateChannelConnection( + ExperimentalTag, NoAwaitTag, + google::cloud::eventarc::v1::CreateChannelConnectionRequest const& + request) override; + + future> + CreateChannelConnection( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteChannelConnection( google::cloud::eventarc::v1::DeleteChannelConnectionRequest const& request) override; + StatusOr DeleteChannelConnection( + ExperimentalTag, NoAwaitTag, + google::cloud::eventarc::v1::DeleteChannelConnectionRequest const& + request) override; + + future> + DeleteChannelConnection( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetGoogleChannelConfig( google::cloud::eventarc::v1::GetGoogleChannelConfigRequest const& request) diff --git a/google/cloud/eventarc/v1/internal/eventarc_tracing_connection.cc b/google/cloud/eventarc/v1/internal/eventarc_tracing_connection.cc index 7c0c8c418a07a..3566f23dd964e 100644 --- a/google/cloud/eventarc/v1/internal/eventarc_tracing_connection.cc +++ b/google/cloud/eventarc/v1/internal/eventarc_tracing_connection.cc @@ -61,6 +61,27 @@ EventarcTracingConnection::CreateTrigger( return internal::EndSpan(std::move(span), child_->CreateTrigger(request)); } +StatusOr +EventarcTracingConnection::CreateTrigger( + ExperimentalTag, NoAwaitTag, + google::cloud::eventarc::v1::CreateTriggerRequest const& request) { + auto span = + internal::MakeSpan("eventarc_v1::EventarcConnection::CreateTrigger"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->CreateTrigger(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +EventarcTracingConnection::CreateTrigger( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = + internal::MakeSpan("eventarc_v1::EventarcConnection::CreateTrigger"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->CreateTrigger(ExperimentalTag{}, operation)); +} + future> EventarcTracingConnection::UpdateTrigger( google::cloud::eventarc::v1::UpdateTriggerRequest const& request) { @@ -70,6 +91,27 @@ EventarcTracingConnection::UpdateTrigger( return internal::EndSpan(std::move(span), child_->UpdateTrigger(request)); } +StatusOr +EventarcTracingConnection::UpdateTrigger( + ExperimentalTag, NoAwaitTag, + google::cloud::eventarc::v1::UpdateTriggerRequest const& request) { + auto span = + internal::MakeSpan("eventarc_v1::EventarcConnection::UpdateTrigger"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->UpdateTrigger(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +EventarcTracingConnection::UpdateTrigger( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = + internal::MakeSpan("eventarc_v1::EventarcConnection::UpdateTrigger"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->UpdateTrigger(ExperimentalTag{}, operation)); +} + future> EventarcTracingConnection::DeleteTrigger( google::cloud::eventarc::v1::DeleteTriggerRequest const& request) { @@ -79,6 +121,27 @@ EventarcTracingConnection::DeleteTrigger( return internal::EndSpan(std::move(span), child_->DeleteTrigger(request)); } +StatusOr +EventarcTracingConnection::DeleteTrigger( + ExperimentalTag, NoAwaitTag, + google::cloud::eventarc::v1::DeleteTriggerRequest const& request) { + auto span = + internal::MakeSpan("eventarc_v1::EventarcConnection::DeleteTrigger"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->DeleteTrigger(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +EventarcTracingConnection::DeleteTrigger( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = + internal::MakeSpan("eventarc_v1::EventarcConnection::DeleteTrigger"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->DeleteTrigger(ExperimentalTag{}, operation)); +} + StatusOr EventarcTracingConnection::GetChannel( google::cloud::eventarc::v1::GetChannelRequest const& request) { @@ -107,6 +170,27 @@ EventarcTracingConnection::CreateChannel( return internal::EndSpan(std::move(span), child_->CreateChannel(request)); } +StatusOr +EventarcTracingConnection::CreateChannel( + ExperimentalTag, NoAwaitTag, + google::cloud::eventarc::v1::CreateChannelRequest const& request) { + auto span = + internal::MakeSpan("eventarc_v1::EventarcConnection::CreateChannel"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->CreateChannel(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +EventarcTracingConnection::CreateChannel( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = + internal::MakeSpan("eventarc_v1::EventarcConnection::CreateChannel"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->CreateChannel(ExperimentalTag{}, operation)); +} + future> EventarcTracingConnection::UpdateChannel( google::cloud::eventarc::v1::UpdateChannelRequest const& request) { @@ -116,6 +200,27 @@ EventarcTracingConnection::UpdateChannel( return internal::EndSpan(std::move(span), child_->UpdateChannel(request)); } +StatusOr +EventarcTracingConnection::UpdateChannel( + ExperimentalTag, NoAwaitTag, + google::cloud::eventarc::v1::UpdateChannelRequest const& request) { + auto span = + internal::MakeSpan("eventarc_v1::EventarcConnection::UpdateChannel"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->UpdateChannel(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +EventarcTracingConnection::UpdateChannel( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = + internal::MakeSpan("eventarc_v1::EventarcConnection::UpdateChannel"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->UpdateChannel(ExperimentalTag{}, operation)); +} + future> EventarcTracingConnection::DeleteChannel( google::cloud::eventarc::v1::DeleteChannelRequest const& request) { @@ -125,6 +230,27 @@ EventarcTracingConnection::DeleteChannel( return internal::EndSpan(std::move(span), child_->DeleteChannel(request)); } +StatusOr +EventarcTracingConnection::DeleteChannel( + ExperimentalTag, NoAwaitTag, + google::cloud::eventarc::v1::DeleteChannelRequest const& request) { + auto span = + internal::MakeSpan("eventarc_v1::EventarcConnection::DeleteChannel"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->DeleteChannel(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +EventarcTracingConnection::DeleteChannel( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = + internal::MakeSpan("eventarc_v1::EventarcConnection::DeleteChannel"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->DeleteChannel(ExperimentalTag{}, operation)); +} + StatusOr EventarcTracingConnection::GetProvider( google::cloud::eventarc::v1::GetProviderRequest const& request) { @@ -177,6 +303,29 @@ EventarcTracingConnection::CreateChannelConnection( child_->CreateChannelConnection(request)); } +StatusOr +EventarcTracingConnection::CreateChannelConnection( + ExperimentalTag, NoAwaitTag, + google::cloud::eventarc::v1::CreateChannelConnectionRequest const& + request) { + auto span = internal::MakeSpan( + "eventarc_v1::EventarcConnection::CreateChannelConnection"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->CreateChannelConnection(ExperimentalTag{}, NoAwaitTag{}, + request)); +} + +future> +EventarcTracingConnection::CreateChannelConnection( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "eventarc_v1::EventarcConnection::CreateChannelConnection"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->CreateChannelConnection( + ExperimentalTag{}, operation)); +} + future> EventarcTracingConnection::DeleteChannelConnection( google::cloud::eventarc::v1::DeleteChannelConnectionRequest const& @@ -188,6 +337,29 @@ EventarcTracingConnection::DeleteChannelConnection( child_->DeleteChannelConnection(request)); } +StatusOr +EventarcTracingConnection::DeleteChannelConnection( + ExperimentalTag, NoAwaitTag, + google::cloud::eventarc::v1::DeleteChannelConnectionRequest const& + request) { + auto span = internal::MakeSpan( + "eventarc_v1::EventarcConnection::DeleteChannelConnection"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->DeleteChannelConnection(ExperimentalTag{}, NoAwaitTag{}, + request)); +} + +future> +EventarcTracingConnection::DeleteChannelConnection( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "eventarc_v1::EventarcConnection::DeleteChannelConnection"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->DeleteChannelConnection( + ExperimentalTag{}, operation)); +} + StatusOr EventarcTracingConnection::GetGoogleChannelConfig( google::cloud::eventarc::v1::GetGoogleChannelConfigRequest const& request) { diff --git a/google/cloud/eventarc/v1/internal/eventarc_tracing_connection.h b/google/cloud/eventarc/v1/internal/eventarc_tracing_connection.h index af08e48fe842a..5368c04fd5d4c 100644 --- a/google/cloud/eventarc/v1/internal/eventarc_tracing_connection.h +++ b/google/cloud/eventarc/v1/internal/eventarc_tracing_connection.h @@ -49,14 +49,41 @@ class EventarcTracingConnection : public eventarc_v1::EventarcConnection { google::cloud::eventarc::v1::CreateTriggerRequest const& request) override; + StatusOr CreateTrigger( + ExperimentalTag, NoAwaitTag, + google::cloud::eventarc::v1::CreateTriggerRequest const& request) + override; + + future> CreateTrigger( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateTrigger( google::cloud::eventarc::v1::UpdateTriggerRequest const& request) override; + StatusOr UpdateTrigger( + ExperimentalTag, NoAwaitTag, + google::cloud::eventarc::v1::UpdateTriggerRequest const& request) + override; + + future> UpdateTrigger( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteTrigger( google::cloud::eventarc::v1::DeleteTriggerRequest const& request) override; + StatusOr DeleteTrigger( + ExperimentalTag, NoAwaitTag, + google::cloud::eventarc::v1::DeleteTriggerRequest const& request) + override; + + future> DeleteTrigger( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetChannel( google::cloud::eventarc::v1::GetChannelRequest const& request) override; @@ -67,14 +94,41 @@ class EventarcTracingConnection : public eventarc_v1::EventarcConnection { google::cloud::eventarc::v1::CreateChannelRequest const& request) override; + StatusOr CreateChannel( + ExperimentalTag, NoAwaitTag, + google::cloud::eventarc::v1::CreateChannelRequest const& request) + override; + + future> CreateChannel( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateChannel( google::cloud::eventarc::v1::UpdateChannelRequest const& request) override; + StatusOr UpdateChannel( + ExperimentalTag, NoAwaitTag, + google::cloud::eventarc::v1::UpdateChannelRequest const& request) + override; + + future> UpdateChannel( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteChannel( google::cloud::eventarc::v1::DeleteChannelRequest const& request) override; + StatusOr DeleteChannel( + ExperimentalTag, NoAwaitTag, + google::cloud::eventarc::v1::DeleteChannelRequest const& request) + override; + + future> DeleteChannel( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetProvider( google::cloud::eventarc::v1::GetProviderRequest const& request) override; @@ -95,11 +149,31 @@ class EventarcTracingConnection : public eventarc_v1::EventarcConnection { google::cloud::eventarc::v1::CreateChannelConnectionRequest const& request) override; + StatusOr CreateChannelConnection( + ExperimentalTag, NoAwaitTag, + google::cloud::eventarc::v1::CreateChannelConnectionRequest const& + request) override; + + future> + CreateChannelConnection( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteChannelConnection( google::cloud::eventarc::v1::DeleteChannelConnectionRequest const& request) override; + StatusOr DeleteChannelConnection( + ExperimentalTag, NoAwaitTag, + google::cloud::eventarc::v1::DeleteChannelConnectionRequest const& + request) override; + + future> + DeleteChannelConnection( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetGoogleChannelConfig( google::cloud::eventarc::v1::GetGoogleChannelConfigRequest const& request) diff --git a/google/cloud/eventarc/v1/mocks/mock_eventarc_connection.h b/google/cloud/eventarc/v1/mocks/mock_eventarc_connection.h index 81511e606b971..4961cd64903d6 100644 --- a/google/cloud/eventarc/v1/mocks/mock_eventarc_connection.h +++ b/google/cloud/eventarc/v1/mocks/mock_eventarc_connection.h @@ -59,16 +59,52 @@ class MockEventarcConnection : public eventarc_v1::EventarcConnection { (google::cloud::eventarc::v1::CreateTriggerRequest const& request), (override)); + MOCK_METHOD( + StatusOr, CreateTrigger, + (ExperimentalTag, NoAwaitTag, + google::cloud::eventarc::v1::CreateTriggerRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateTrigger, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, UpdateTrigger, (google::cloud::eventarc::v1::UpdateTriggerRequest const& request), (override)); + MOCK_METHOD( + StatusOr, UpdateTrigger, + (ExperimentalTag, NoAwaitTag, + google::cloud::eventarc::v1::UpdateTriggerRequest const& request), + (override)); + + MOCK_METHOD(future>, + UpdateTrigger, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteTrigger, (google::cloud::eventarc::v1::DeleteTriggerRequest const& request), (override)); + MOCK_METHOD( + StatusOr, DeleteTrigger, + (ExperimentalTag, NoAwaitTag, + google::cloud::eventarc::v1::DeleteTriggerRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteTrigger, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(StatusOr, GetChannel, (google::cloud::eventarc::v1::GetChannelRequest const& request), (override)); @@ -82,16 +118,52 @@ class MockEventarcConnection : public eventarc_v1::EventarcConnection { (google::cloud::eventarc::v1::CreateChannelRequest const& request), (override)); + MOCK_METHOD( + StatusOr, CreateChannel, + (ExperimentalTag, NoAwaitTag, + google::cloud::eventarc::v1::CreateChannelRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateChannel, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, UpdateChannel, (google::cloud::eventarc::v1::UpdateChannelRequest const& request), (override)); + MOCK_METHOD( + StatusOr, UpdateChannel, + (ExperimentalTag, NoAwaitTag, + google::cloud::eventarc::v1::UpdateChannelRequest const& request), + (override)); + + MOCK_METHOD(future>, + UpdateChannel, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteChannel, (google::cloud::eventarc::v1::DeleteChannelRequest const& request), (override)); + MOCK_METHOD( + StatusOr, DeleteChannel, + (ExperimentalTag, NoAwaitTag, + google::cloud::eventarc::v1::DeleteChannelRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteChannel, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(StatusOr, GetProvider, (google::cloud::eventarc::v1::GetProviderRequest const& request), (override)); @@ -120,6 +192,19 @@ class MockEventarcConnection : public eventarc_v1::EventarcConnection { request), (override)); + MOCK_METHOD( + StatusOr, CreateChannelConnection, + (ExperimentalTag, NoAwaitTag, + google::cloud::eventarc::v1::CreateChannelConnectionRequest const& + request), + (override)); + + MOCK_METHOD(future>, + CreateChannelConnection, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteChannelConnection, @@ -127,6 +212,19 @@ class MockEventarcConnection : public eventarc_v1::EventarcConnection { request), (override)); + MOCK_METHOD( + StatusOr, DeleteChannelConnection, + (ExperimentalTag, NoAwaitTag, + google::cloud::eventarc::v1::DeleteChannelConnectionRequest const& + request), + (override)); + + MOCK_METHOD(future>, + DeleteChannelConnection, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(StatusOr, GetGoogleChannelConfig, (google::cloud::eventarc::v1::GetGoogleChannelConfigRequest const& diff --git a/google/cloud/filestore/v1/cloud_filestore_manager_connection.cc b/google/cloud/filestore/v1/cloud_filestore_manager_connection.cc index cded4e21bf446..3235b784d00dc 100644 --- a/google/cloud/filestore/v1/cloud_filestore_manager_connection.cc +++ b/google/cloud/filestore/v1/cloud_filestore_manager_connection.cc @@ -60,6 +60,22 @@ CloudFilestoreManagerConnection::CreateInstance( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +CloudFilestoreManagerConnection::CreateInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::filestore::v1::CreateInstanceRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +CloudFilestoreManagerConnection::CreateInstance( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> CloudFilestoreManagerConnection::UpdateInstance( google::cloud::filestore::v1::UpdateInstanceRequest const&) { @@ -68,9 +84,41 @@ CloudFilestoreManagerConnection::UpdateInstance( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +CloudFilestoreManagerConnection::UpdateInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::filestore::v1::UpdateInstanceRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> +CloudFilestoreManagerConnection::UpdateInstance( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +CloudFilestoreManagerConnection::RestoreInstance( + google::cloud::filestore::v1::RestoreInstanceRequest const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +StatusOr CloudFilestoreManagerConnection::RestoreInstance( + ExperimentalTag, NoAwaitTag, google::cloud::filestore::v1::RestoreInstanceRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +CloudFilestoreManagerConnection::RestoreInstance( + ExperimentalTag, google::longrunning::Operation const&) { return google::cloud::make_ready_future< StatusOr>( Status(StatusCode::kUnimplemented, "not implemented")); @@ -84,6 +132,22 @@ CloudFilestoreManagerConnection::RevertInstance( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +CloudFilestoreManagerConnection::RevertInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::filestore::v1::RevertInstanceRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +CloudFilestoreManagerConnection::RevertInstance( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> CloudFilestoreManagerConnection::DeleteInstance( google::cloud::filestore::v1::DeleteInstanceRequest const&) { @@ -92,6 +156,22 @@ CloudFilestoreManagerConnection::DeleteInstance( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +CloudFilestoreManagerConnection::DeleteInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::filestore::v1::DeleteInstanceRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +CloudFilestoreManagerConnection::DeleteInstance( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StreamRange CloudFilestoreManagerConnection::ListSnapshots( google::cloud::filestore::v1:: @@ -114,6 +194,22 @@ CloudFilestoreManagerConnection::CreateSnapshot( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +CloudFilestoreManagerConnection::CreateSnapshot( + ExperimentalTag, NoAwaitTag, + google::cloud::filestore::v1::CreateSnapshotRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +CloudFilestoreManagerConnection::CreateSnapshot( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> CloudFilestoreManagerConnection::DeleteSnapshot( google::cloud::filestore::v1::DeleteSnapshotRequest const&) { @@ -122,6 +218,22 @@ CloudFilestoreManagerConnection::DeleteSnapshot( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +CloudFilestoreManagerConnection::DeleteSnapshot( + ExperimentalTag, NoAwaitTag, + google::cloud::filestore::v1::DeleteSnapshotRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +CloudFilestoreManagerConnection::DeleteSnapshot( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> CloudFilestoreManagerConnection::UpdateSnapshot( google::cloud::filestore::v1::UpdateSnapshotRequest const&) { @@ -130,6 +242,22 @@ CloudFilestoreManagerConnection::UpdateSnapshot( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +CloudFilestoreManagerConnection::UpdateSnapshot( + ExperimentalTag, NoAwaitTag, + google::cloud::filestore::v1::UpdateSnapshotRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +CloudFilestoreManagerConnection::UpdateSnapshot( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StreamRange CloudFilestoreManagerConnection::ListBackups( google::cloud::filestore::v1:: @@ -152,6 +280,22 @@ CloudFilestoreManagerConnection::CreateBackup( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +CloudFilestoreManagerConnection::CreateBackup( + ExperimentalTag, NoAwaitTag, + google::cloud::filestore::v1::CreateBackupRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +CloudFilestoreManagerConnection::CreateBackup( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> CloudFilestoreManagerConnection::DeleteBackup( google::cloud::filestore::v1::DeleteBackupRequest const&) { @@ -160,6 +304,22 @@ CloudFilestoreManagerConnection::DeleteBackup( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +CloudFilestoreManagerConnection::DeleteBackup( + ExperimentalTag, NoAwaitTag, + google::cloud::filestore::v1::DeleteBackupRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +CloudFilestoreManagerConnection::DeleteBackup( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> CloudFilestoreManagerConnection::UpdateBackup( google::cloud::filestore::v1::UpdateBackupRequest const&) { @@ -168,6 +328,22 @@ CloudFilestoreManagerConnection::UpdateBackup( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +CloudFilestoreManagerConnection::UpdateBackup( + ExperimentalTag, NoAwaitTag, + google::cloud::filestore::v1::UpdateBackupRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +CloudFilestoreManagerConnection::UpdateBackup( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + std::shared_ptr MakeCloudFilestoreManagerConnection(Options options) { internal::CheckExpectedOptions CreateInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::filestore::v1::CreateInstanceRequest const& request); + + virtual future> + CreateInstance(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> UpdateInstance( google::cloud::filestore::v1::UpdateInstanceRequest const& request); + virtual StatusOr UpdateInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::filestore::v1::UpdateInstanceRequest const& request); + + virtual future> + UpdateInstance(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> RestoreInstance( google::cloud::filestore::v1::RestoreInstanceRequest const& request); + virtual StatusOr RestoreInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::filestore::v1::RestoreInstanceRequest const& request); + + virtual future> + RestoreInstance(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> RevertInstance( google::cloud::filestore::v1::RevertInstanceRequest const& request); + virtual StatusOr RevertInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::filestore::v1::RevertInstanceRequest const& request); + + virtual future> + RevertInstance(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> DeleteInstance( google::cloud::filestore::v1::DeleteInstanceRequest const& request); + virtual StatusOr DeleteInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::filestore::v1::DeleteInstanceRequest const& request); + + virtual future> + DeleteInstance(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StreamRange ListSnapshots( google::cloud::filestore::v1::ListSnapshotsRequest request); @@ -227,14 +269,38 @@ class CloudFilestoreManagerConnection { CreateSnapshot( google::cloud::filestore::v1::CreateSnapshotRequest const& request); + virtual StatusOr CreateSnapshot( + ExperimentalTag, NoAwaitTag, + google::cloud::filestore::v1::CreateSnapshotRequest const& request); + + virtual future> + CreateSnapshot(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> DeleteSnapshot( google::cloud::filestore::v1::DeleteSnapshotRequest const& request); + virtual StatusOr DeleteSnapshot( + ExperimentalTag, NoAwaitTag, + google::cloud::filestore::v1::DeleteSnapshotRequest const& request); + + virtual future> + DeleteSnapshot(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> UpdateSnapshot( google::cloud::filestore::v1::UpdateSnapshotRequest const& request); + virtual StatusOr UpdateSnapshot( + ExperimentalTag, NoAwaitTag, + google::cloud::filestore::v1::UpdateSnapshotRequest const& request); + + virtual future> + UpdateSnapshot(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StreamRange ListBackups( google::cloud::filestore::v1::ListBackupsRequest request); @@ -244,12 +310,34 @@ class CloudFilestoreManagerConnection { virtual future> CreateBackup( google::cloud::filestore::v1::CreateBackupRequest const& request); + virtual StatusOr CreateBackup( + ExperimentalTag, NoAwaitTag, + google::cloud::filestore::v1::CreateBackupRequest const& request); + + virtual future> CreateBackup( + ExperimentalTag, google::longrunning::Operation const& operation); + virtual future> DeleteBackup( google::cloud::filestore::v1::DeleteBackupRequest const& request); + virtual StatusOr DeleteBackup( + ExperimentalTag, NoAwaitTag, + google::cloud::filestore::v1::DeleteBackupRequest const& request); + + virtual future> + DeleteBackup(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> UpdateBackup( google::cloud::filestore::v1::UpdateBackupRequest const& request); + + virtual StatusOr UpdateBackup( + ExperimentalTag, NoAwaitTag, + google::cloud::filestore::v1::UpdateBackupRequest const& request); + + virtual future> UpdateBackup( + ExperimentalTag, google::longrunning::Operation const& operation); }; /** diff --git a/google/cloud/filestore/v1/internal/cloud_filestore_manager_connection_impl.cc b/google/cloud/filestore/v1/internal/cloud_filestore_manager_connection_impl.cc index 090b885084971..1155cf7924a4e 100644 --- a/google/cloud/filestore/v1/internal/cloud_filestore_manager_connection_impl.cc +++ b/google/cloud/filestore/v1/internal/cloud_filestore_manager_connection_impl.cc @@ -155,6 +155,58 @@ CloudFilestoreManagerConnectionImpl::CreateInstance( polling_policy(*current), __func__); } +StatusOr +CloudFilestoreManagerConnectionImpl::CreateInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::filestore::v1::CreateInstanceRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateInstance(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::filestore::v1::CreateInstanceRequest const& request) { + return stub_->CreateInstance(context, options, request); + }, + *current, request, __func__); +} + +future> +CloudFilestoreManagerConnectionImpl::CreateInstance( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to CreateInstance", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::filestore::v1::Instance>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::filestore::v1::Instance>, + polling_policy(*current), __func__); +} + future> CloudFilestoreManagerConnectionImpl::UpdateInstance( google::cloud::filestore::v1::UpdateInstanceRequest const& request) { @@ -194,6 +246,58 @@ CloudFilestoreManagerConnectionImpl::UpdateInstance( polling_policy(*current), __func__); } +StatusOr +CloudFilestoreManagerConnectionImpl::UpdateInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::filestore::v1::UpdateInstanceRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UpdateInstance(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::filestore::v1::UpdateInstanceRequest const& request) { + return stub_->UpdateInstance(context, options, request); + }, + *current, request, __func__); +} + +future> +CloudFilestoreManagerConnectionImpl::UpdateInstance( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to UpdateInstance", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::filestore::v1::Instance>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::filestore::v1::Instance>, + polling_policy(*current), __func__); +} + future> CloudFilestoreManagerConnectionImpl::RestoreInstance( google::cloud::filestore::v1::RestoreInstanceRequest const& request) { @@ -233,6 +337,58 @@ CloudFilestoreManagerConnectionImpl::RestoreInstance( polling_policy(*current), __func__); } +StatusOr +CloudFilestoreManagerConnectionImpl::RestoreInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::filestore::v1::RestoreInstanceRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->RestoreInstance(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::filestore::v1::RestoreInstanceRequest const& request) { + return stub_->RestoreInstance(context, options, request); + }, + *current, request, __func__); +} + +future> +CloudFilestoreManagerConnectionImpl::RestoreInstance( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to RestoreInstance", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::filestore::v1::Instance>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::filestore::v1::Instance>, + polling_policy(*current), __func__); +} + future> CloudFilestoreManagerConnectionImpl::RevertInstance( google::cloud::filestore::v1::RevertInstanceRequest const& request) { @@ -272,6 +428,58 @@ CloudFilestoreManagerConnectionImpl::RevertInstance( polling_policy(*current), __func__); } +StatusOr +CloudFilestoreManagerConnectionImpl::RevertInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::filestore::v1::RevertInstanceRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->RevertInstance(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::filestore::v1::RevertInstanceRequest const& request) { + return stub_->RevertInstance(context, options, request); + }, + *current, request, __func__); +} + +future> +CloudFilestoreManagerConnectionImpl::RevertInstance( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to RevertInstance", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::filestore::v1::Instance>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::filestore::v1::Instance>, + polling_policy(*current), __func__); +} + future> CloudFilestoreManagerConnectionImpl::DeleteInstance( google::cloud::filestore::v1::DeleteInstanceRequest const& request) { @@ -311,6 +519,59 @@ CloudFilestoreManagerConnectionImpl::DeleteInstance( polling_policy(*current), __func__); } +StatusOr +CloudFilestoreManagerConnectionImpl::DeleteInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::filestore::v1::DeleteInstanceRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteInstance(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::filestore::v1::DeleteInstanceRequest const& request) { + return stub_->DeleteInstance(context, options, request); + }, + *current, request, __func__); +} + +future> +CloudFilestoreManagerConnectionImpl::DeleteInstance( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteInstance", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::common::OperationMetadata>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::cloud::common::OperationMetadata>, + polling_policy(*current), __func__); +} + StreamRange CloudFilestoreManagerConnectionImpl::ListSnapshots( google::cloud::filestore::v1::ListSnapshotsRequest request) { @@ -398,6 +659,58 @@ CloudFilestoreManagerConnectionImpl::CreateSnapshot( polling_policy(*current), __func__); } +StatusOr +CloudFilestoreManagerConnectionImpl::CreateSnapshot( + ExperimentalTag, NoAwaitTag, + google::cloud::filestore::v1::CreateSnapshotRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateSnapshot(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::filestore::v1::CreateSnapshotRequest const& request) { + return stub_->CreateSnapshot(context, options, request); + }, + *current, request, __func__); +} + +future> +CloudFilestoreManagerConnectionImpl::CreateSnapshot( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to CreateSnapshot", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::filestore::v1::Snapshot>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::filestore::v1::Snapshot>, + polling_policy(*current), __func__); +} + future> CloudFilestoreManagerConnectionImpl::DeleteSnapshot( google::cloud::filestore::v1::DeleteSnapshotRequest const& request) { @@ -437,6 +750,59 @@ CloudFilestoreManagerConnectionImpl::DeleteSnapshot( polling_policy(*current), __func__); } +StatusOr +CloudFilestoreManagerConnectionImpl::DeleteSnapshot( + ExperimentalTag, NoAwaitTag, + google::cloud::filestore::v1::DeleteSnapshotRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteSnapshot(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::filestore::v1::DeleteSnapshotRequest const& request) { + return stub_->DeleteSnapshot(context, options, request); + }, + *current, request, __func__); +} + +future> +CloudFilestoreManagerConnectionImpl::DeleteSnapshot( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteSnapshot", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::common::OperationMetadata>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::cloud::common::OperationMetadata>, + polling_policy(*current), __func__); +} + future> CloudFilestoreManagerConnectionImpl::UpdateSnapshot( google::cloud::filestore::v1::UpdateSnapshotRequest const& request) { @@ -476,6 +842,58 @@ CloudFilestoreManagerConnectionImpl::UpdateSnapshot( polling_policy(*current), __func__); } +StatusOr +CloudFilestoreManagerConnectionImpl::UpdateSnapshot( + ExperimentalTag, NoAwaitTag, + google::cloud::filestore::v1::UpdateSnapshotRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UpdateSnapshot(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::filestore::v1::UpdateSnapshotRequest const& request) { + return stub_->UpdateSnapshot(context, options, request); + }, + *current, request, __func__); +} + +future> +CloudFilestoreManagerConnectionImpl::UpdateSnapshot( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to UpdateSnapshot", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::filestore::v1::Snapshot>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::filestore::v1::Snapshot>, + polling_policy(*current), __func__); +} + StreamRange CloudFilestoreManagerConnectionImpl::ListBackups( google::cloud::filestore::v1::ListBackupsRequest request) { @@ -563,6 +981,57 @@ CloudFilestoreManagerConnectionImpl::CreateBackup( polling_policy(*current), __func__); } +StatusOr +CloudFilestoreManagerConnectionImpl::CreateBackup( + ExperimentalTag, NoAwaitTag, + google::cloud::filestore::v1::CreateBackupRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateBackup(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::filestore::v1::CreateBackupRequest const& request) { + return stub_->CreateBackup(context, options, request); + }, + *current, request, __func__); +} + +future> +CloudFilestoreManagerConnectionImpl::CreateBackup( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to CreateBackup", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::filestore::v1::Backup>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::filestore::v1::Backup>, + polling_policy(*current), __func__); +} + future> CloudFilestoreManagerConnectionImpl::DeleteBackup( google::cloud::filestore::v1::DeleteBackupRequest const& request) { @@ -602,6 +1071,58 @@ CloudFilestoreManagerConnectionImpl::DeleteBackup( polling_policy(*current), __func__); } +StatusOr +CloudFilestoreManagerConnectionImpl::DeleteBackup( + ExperimentalTag, NoAwaitTag, + google::cloud::filestore::v1::DeleteBackupRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteBackup(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::filestore::v1::DeleteBackupRequest const& request) { + return stub_->DeleteBackup(context, options, request); + }, + *current, request, __func__); +} + +future> +CloudFilestoreManagerConnectionImpl::DeleteBackup( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteBackup", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::common::OperationMetadata>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::cloud::common::OperationMetadata>, + polling_policy(*current), __func__); +} + future> CloudFilestoreManagerConnectionImpl::UpdateBackup( google::cloud::filestore::v1::UpdateBackupRequest const& request) { @@ -641,6 +1162,57 @@ CloudFilestoreManagerConnectionImpl::UpdateBackup( polling_policy(*current), __func__); } +StatusOr +CloudFilestoreManagerConnectionImpl::UpdateBackup( + ExperimentalTag, NoAwaitTag, + google::cloud::filestore::v1::UpdateBackupRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UpdateBackup(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::filestore::v1::UpdateBackupRequest const& request) { + return stub_->UpdateBackup(context, options, request); + }, + *current, request, __func__); +} + +future> +CloudFilestoreManagerConnectionImpl::UpdateBackup( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to UpdateBackup", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::filestore::v1::Backup>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::filestore::v1::Backup>, + polling_policy(*current), __func__); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace filestore_v1_internal } // namespace cloud diff --git a/google/cloud/filestore/v1/internal/cloud_filestore_manager_connection_impl.h b/google/cloud/filestore/v1/internal/cloud_filestore_manager_connection_impl.h index e798222c43545..f4dcc15d68c23 100644 --- a/google/cloud/filestore/v1/internal/cloud_filestore_manager_connection_impl.h +++ b/google/cloud/filestore/v1/internal/cloud_filestore_manager_connection_impl.h @@ -62,22 +62,67 @@ class CloudFilestoreManagerConnectionImpl google::cloud::filestore::v1::CreateInstanceRequest const& request) override; + StatusOr CreateInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::filestore::v1::CreateInstanceRequest const& request) + override; + + future> CreateInstance( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateInstance( google::cloud::filestore::v1::UpdateInstanceRequest const& request) override; + StatusOr UpdateInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::filestore::v1::UpdateInstanceRequest const& request) + override; + + future> UpdateInstance( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> RestoreInstance( google::cloud::filestore::v1::RestoreInstanceRequest const& request) override; + StatusOr RestoreInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::filestore::v1::RestoreInstanceRequest const& request) + override; + + future> RestoreInstance( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> RevertInstance( google::cloud::filestore::v1::RevertInstanceRequest const& request) override; + StatusOr RevertInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::filestore::v1::RevertInstanceRequest const& request) + override; + + future> RevertInstance( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteInstance( google::cloud::filestore::v1::DeleteInstanceRequest const& request) override; + StatusOr DeleteInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::filestore::v1::DeleteInstanceRequest const& request) + override; + + future> DeleteInstance( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListSnapshots( google::cloud::filestore::v1::ListSnapshotsRequest request) override; @@ -88,14 +133,41 @@ class CloudFilestoreManagerConnectionImpl google::cloud::filestore::v1::CreateSnapshotRequest const& request) override; + StatusOr CreateSnapshot( + ExperimentalTag, NoAwaitTag, + google::cloud::filestore::v1::CreateSnapshotRequest const& request) + override; + + future> CreateSnapshot( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteSnapshot( google::cloud::filestore::v1::DeleteSnapshotRequest const& request) override; + StatusOr DeleteSnapshot( + ExperimentalTag, NoAwaitTag, + google::cloud::filestore::v1::DeleteSnapshotRequest const& request) + override; + + future> DeleteSnapshot( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateSnapshot( google::cloud::filestore::v1::UpdateSnapshotRequest const& request) override; + StatusOr UpdateSnapshot( + ExperimentalTag, NoAwaitTag, + google::cloud::filestore::v1::UpdateSnapshotRequest const& request) + override; + + future> UpdateSnapshot( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListBackups( google::cloud::filestore::v1::ListBackupsRequest request) override; @@ -106,14 +178,41 @@ class CloudFilestoreManagerConnectionImpl google::cloud::filestore::v1::CreateBackupRequest const& request) override; + StatusOr CreateBackup( + ExperimentalTag, NoAwaitTag, + google::cloud::filestore::v1::CreateBackupRequest const& request) + override; + + future> CreateBackup( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteBackup( google::cloud::filestore::v1::DeleteBackupRequest const& request) override; + StatusOr DeleteBackup( + ExperimentalTag, NoAwaitTag, + google::cloud::filestore::v1::DeleteBackupRequest const& request) + override; + + future> DeleteBackup( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateBackup( google::cloud::filestore::v1::UpdateBackupRequest const& request) override; + StatusOr UpdateBackup( + ExperimentalTag, NoAwaitTag, + google::cloud::filestore::v1::UpdateBackupRequest const& request) + override; + + future> UpdateBackup( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + private: std::unique_ptr background_; std::shared_ptr stub_; diff --git a/google/cloud/filestore/v1/internal/cloud_filestore_manager_tracing_connection.cc b/google/cloud/filestore/v1/internal/cloud_filestore_manager_tracing_connection.cc index 13743a72275b6..fbb9bad72deab 100644 --- a/google/cloud/filestore/v1/internal/cloud_filestore_manager_tracing_connection.cc +++ b/google/cloud/filestore/v1/internal/cloud_filestore_manager_tracing_connection.cc @@ -62,6 +62,27 @@ CloudFilestoreManagerTracingConnection::CreateInstance( return internal::EndSpan(std::move(span), child_->CreateInstance(request)); } +StatusOr +CloudFilestoreManagerTracingConnection::CreateInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::filestore::v1::CreateInstanceRequest const& request) { + auto span = internal::MakeSpan( + "filestore_v1::CloudFilestoreManagerConnection::CreateInstance"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->CreateInstance(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +CloudFilestoreManagerTracingConnection::CreateInstance( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "filestore_v1::CloudFilestoreManagerConnection::CreateInstance"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->CreateInstance(ExperimentalTag{}, operation)); +} + future> CloudFilestoreManagerTracingConnection::UpdateInstance( google::cloud::filestore::v1::UpdateInstanceRequest const& request) { @@ -71,6 +92,27 @@ CloudFilestoreManagerTracingConnection::UpdateInstance( return internal::EndSpan(std::move(span), child_->UpdateInstance(request)); } +StatusOr +CloudFilestoreManagerTracingConnection::UpdateInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::filestore::v1::UpdateInstanceRequest const& request) { + auto span = internal::MakeSpan( + "filestore_v1::CloudFilestoreManagerConnection::UpdateInstance"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->UpdateInstance(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +CloudFilestoreManagerTracingConnection::UpdateInstance( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "filestore_v1::CloudFilestoreManagerConnection::UpdateInstance"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->UpdateInstance(ExperimentalTag{}, operation)); +} + future> CloudFilestoreManagerTracingConnection::RestoreInstance( google::cloud::filestore::v1::RestoreInstanceRequest const& request) { @@ -80,6 +122,27 @@ CloudFilestoreManagerTracingConnection::RestoreInstance( return internal::EndSpan(std::move(span), child_->RestoreInstance(request)); } +StatusOr +CloudFilestoreManagerTracingConnection::RestoreInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::filestore::v1::RestoreInstanceRequest const& request) { + auto span = internal::MakeSpan( + "filestore_v1::CloudFilestoreManagerConnection::RestoreInstance"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->RestoreInstance(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +CloudFilestoreManagerTracingConnection::RestoreInstance( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "filestore_v1::CloudFilestoreManagerConnection::RestoreInstance"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->RestoreInstance(ExperimentalTag{}, operation)); +} + future> CloudFilestoreManagerTracingConnection::RevertInstance( google::cloud::filestore::v1::RevertInstanceRequest const& request) { @@ -89,6 +152,27 @@ CloudFilestoreManagerTracingConnection::RevertInstance( return internal::EndSpan(std::move(span), child_->RevertInstance(request)); } +StatusOr +CloudFilestoreManagerTracingConnection::RevertInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::filestore::v1::RevertInstanceRequest const& request) { + auto span = internal::MakeSpan( + "filestore_v1::CloudFilestoreManagerConnection::RevertInstance"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->RevertInstance(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +CloudFilestoreManagerTracingConnection::RevertInstance( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "filestore_v1::CloudFilestoreManagerConnection::RevertInstance"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->RevertInstance(ExperimentalTag{}, operation)); +} + future> CloudFilestoreManagerTracingConnection::DeleteInstance( google::cloud::filestore::v1::DeleteInstanceRequest const& request) { @@ -98,6 +182,27 @@ CloudFilestoreManagerTracingConnection::DeleteInstance( return internal::EndSpan(std::move(span), child_->DeleteInstance(request)); } +StatusOr +CloudFilestoreManagerTracingConnection::DeleteInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::filestore::v1::DeleteInstanceRequest const& request) { + auto span = internal::MakeSpan( + "filestore_v1::CloudFilestoreManagerConnection::DeleteInstance"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->DeleteInstance(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +CloudFilestoreManagerTracingConnection::DeleteInstance( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "filestore_v1::CloudFilestoreManagerConnection::DeleteInstance"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->DeleteInstance(ExperimentalTag{}, operation)); +} + StreamRange CloudFilestoreManagerTracingConnection::ListSnapshots( google::cloud::filestore::v1::ListSnapshotsRequest request) { @@ -127,6 +232,27 @@ CloudFilestoreManagerTracingConnection::CreateSnapshot( return internal::EndSpan(std::move(span), child_->CreateSnapshot(request)); } +StatusOr +CloudFilestoreManagerTracingConnection::CreateSnapshot( + ExperimentalTag, NoAwaitTag, + google::cloud::filestore::v1::CreateSnapshotRequest const& request) { + auto span = internal::MakeSpan( + "filestore_v1::CloudFilestoreManagerConnection::CreateSnapshot"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->CreateSnapshot(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +CloudFilestoreManagerTracingConnection::CreateSnapshot( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "filestore_v1::CloudFilestoreManagerConnection::CreateSnapshot"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->CreateSnapshot(ExperimentalTag{}, operation)); +} + future> CloudFilestoreManagerTracingConnection::DeleteSnapshot( google::cloud::filestore::v1::DeleteSnapshotRequest const& request) { @@ -136,6 +262,27 @@ CloudFilestoreManagerTracingConnection::DeleteSnapshot( return internal::EndSpan(std::move(span), child_->DeleteSnapshot(request)); } +StatusOr +CloudFilestoreManagerTracingConnection::DeleteSnapshot( + ExperimentalTag, NoAwaitTag, + google::cloud::filestore::v1::DeleteSnapshotRequest const& request) { + auto span = internal::MakeSpan( + "filestore_v1::CloudFilestoreManagerConnection::DeleteSnapshot"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->DeleteSnapshot(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +CloudFilestoreManagerTracingConnection::DeleteSnapshot( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "filestore_v1::CloudFilestoreManagerConnection::DeleteSnapshot"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->DeleteSnapshot(ExperimentalTag{}, operation)); +} + future> CloudFilestoreManagerTracingConnection::UpdateSnapshot( google::cloud::filestore::v1::UpdateSnapshotRequest const& request) { @@ -145,6 +292,27 @@ CloudFilestoreManagerTracingConnection::UpdateSnapshot( return internal::EndSpan(std::move(span), child_->UpdateSnapshot(request)); } +StatusOr +CloudFilestoreManagerTracingConnection::UpdateSnapshot( + ExperimentalTag, NoAwaitTag, + google::cloud::filestore::v1::UpdateSnapshotRequest const& request) { + auto span = internal::MakeSpan( + "filestore_v1::CloudFilestoreManagerConnection::UpdateSnapshot"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->UpdateSnapshot(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +CloudFilestoreManagerTracingConnection::UpdateSnapshot( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "filestore_v1::CloudFilestoreManagerConnection::UpdateSnapshot"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->UpdateSnapshot(ExperimentalTag{}, operation)); +} + StreamRange CloudFilestoreManagerTracingConnection::ListBackups( google::cloud::filestore::v1::ListBackupsRequest request) { @@ -174,6 +342,27 @@ CloudFilestoreManagerTracingConnection::CreateBackup( return internal::EndSpan(std::move(span), child_->CreateBackup(request)); } +StatusOr +CloudFilestoreManagerTracingConnection::CreateBackup( + ExperimentalTag, NoAwaitTag, + google::cloud::filestore::v1::CreateBackupRequest const& request) { + auto span = internal::MakeSpan( + "filestore_v1::CloudFilestoreManagerConnection::CreateBackup"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->CreateBackup(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +CloudFilestoreManagerTracingConnection::CreateBackup( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "filestore_v1::CloudFilestoreManagerConnection::CreateBackup"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->CreateBackup(ExperimentalTag{}, operation)); +} + future> CloudFilestoreManagerTracingConnection::DeleteBackup( google::cloud::filestore::v1::DeleteBackupRequest const& request) { @@ -183,6 +372,27 @@ CloudFilestoreManagerTracingConnection::DeleteBackup( return internal::EndSpan(std::move(span), child_->DeleteBackup(request)); } +StatusOr +CloudFilestoreManagerTracingConnection::DeleteBackup( + ExperimentalTag, NoAwaitTag, + google::cloud::filestore::v1::DeleteBackupRequest const& request) { + auto span = internal::MakeSpan( + "filestore_v1::CloudFilestoreManagerConnection::DeleteBackup"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->DeleteBackup(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +CloudFilestoreManagerTracingConnection::DeleteBackup( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "filestore_v1::CloudFilestoreManagerConnection::DeleteBackup"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->DeleteBackup(ExperimentalTag{}, operation)); +} + future> CloudFilestoreManagerTracingConnection::UpdateBackup( google::cloud::filestore::v1::UpdateBackupRequest const& request) { @@ -192,6 +402,27 @@ CloudFilestoreManagerTracingConnection::UpdateBackup( return internal::EndSpan(std::move(span), child_->UpdateBackup(request)); } +StatusOr +CloudFilestoreManagerTracingConnection::UpdateBackup( + ExperimentalTag, NoAwaitTag, + google::cloud::filestore::v1::UpdateBackupRequest const& request) { + auto span = internal::MakeSpan( + "filestore_v1::CloudFilestoreManagerConnection::UpdateBackup"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->UpdateBackup(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +CloudFilestoreManagerTracingConnection::UpdateBackup( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "filestore_v1::CloudFilestoreManagerConnection::UpdateBackup"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->UpdateBackup(ExperimentalTag{}, operation)); +} + #endif // GOOGLE_CLOUD_CPP_HAVE_OPENTELEMETRY std::shared_ptr diff --git a/google/cloud/filestore/v1/internal/cloud_filestore_manager_tracing_connection.h b/google/cloud/filestore/v1/internal/cloud_filestore_manager_tracing_connection.h index 567c468d43e7a..484851a5330e3 100644 --- a/google/cloud/filestore/v1/internal/cloud_filestore_manager_tracing_connection.h +++ b/google/cloud/filestore/v1/internal/cloud_filestore_manager_tracing_connection.h @@ -50,22 +50,67 @@ class CloudFilestoreManagerTracingConnection google::cloud::filestore::v1::CreateInstanceRequest const& request) override; + StatusOr CreateInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::filestore::v1::CreateInstanceRequest const& request) + override; + + future> CreateInstance( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateInstance( google::cloud::filestore::v1::UpdateInstanceRequest const& request) override; + StatusOr UpdateInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::filestore::v1::UpdateInstanceRequest const& request) + override; + + future> UpdateInstance( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> RestoreInstance( google::cloud::filestore::v1::RestoreInstanceRequest const& request) override; + StatusOr RestoreInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::filestore::v1::RestoreInstanceRequest const& request) + override; + + future> RestoreInstance( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> RevertInstance( google::cloud::filestore::v1::RevertInstanceRequest const& request) override; + StatusOr RevertInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::filestore::v1::RevertInstanceRequest const& request) + override; + + future> RevertInstance( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteInstance( google::cloud::filestore::v1::DeleteInstanceRequest const& request) override; + StatusOr DeleteInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::filestore::v1::DeleteInstanceRequest const& request) + override; + + future> DeleteInstance( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListSnapshots( google::cloud::filestore::v1::ListSnapshotsRequest request) override; @@ -76,14 +121,41 @@ class CloudFilestoreManagerTracingConnection google::cloud::filestore::v1::CreateSnapshotRequest const& request) override; + StatusOr CreateSnapshot( + ExperimentalTag, NoAwaitTag, + google::cloud::filestore::v1::CreateSnapshotRequest const& request) + override; + + future> CreateSnapshot( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteSnapshot( google::cloud::filestore::v1::DeleteSnapshotRequest const& request) override; + StatusOr DeleteSnapshot( + ExperimentalTag, NoAwaitTag, + google::cloud::filestore::v1::DeleteSnapshotRequest const& request) + override; + + future> DeleteSnapshot( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateSnapshot( google::cloud::filestore::v1::UpdateSnapshotRequest const& request) override; + StatusOr UpdateSnapshot( + ExperimentalTag, NoAwaitTag, + google::cloud::filestore::v1::UpdateSnapshotRequest const& request) + override; + + future> UpdateSnapshot( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListBackups( google::cloud::filestore::v1::ListBackupsRequest request) override; @@ -94,14 +166,41 @@ class CloudFilestoreManagerTracingConnection google::cloud::filestore::v1::CreateBackupRequest const& request) override; + StatusOr CreateBackup( + ExperimentalTag, NoAwaitTag, + google::cloud::filestore::v1::CreateBackupRequest const& request) + override; + + future> CreateBackup( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteBackup( google::cloud::filestore::v1::DeleteBackupRequest const& request) override; + StatusOr DeleteBackup( + ExperimentalTag, NoAwaitTag, + google::cloud::filestore::v1::DeleteBackupRequest const& request) + override; + + future> DeleteBackup( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateBackup( google::cloud::filestore::v1::UpdateBackupRequest const& request) override; + StatusOr UpdateBackup( + ExperimentalTag, NoAwaitTag, + google::cloud::filestore::v1::UpdateBackupRequest const& request) + override; + + future> UpdateBackup( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + private: std::shared_ptr child_; }; diff --git a/google/cloud/filestore/v1/mocks/mock_cloud_filestore_manager_connection.h b/google/cloud/filestore/v1/mocks/mock_cloud_filestore_manager_connection.h index 21179e51816f8..afe3a7af83fc3 100644 --- a/google/cloud/filestore/v1/mocks/mock_cloud_filestore_manager_connection.h +++ b/google/cloud/filestore/v1/mocks/mock_cloud_filestore_manager_connection.h @@ -61,27 +61,87 @@ class MockCloudFilestoreManagerConnection (google::cloud::filestore::v1::CreateInstanceRequest const& request), (override)); + MOCK_METHOD( + StatusOr, CreateInstance, + (ExperimentalTag, NoAwaitTag, + google::cloud::filestore::v1::CreateInstanceRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateInstance, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, UpdateInstance, (google::cloud::filestore::v1::UpdateInstanceRequest const& request), (override)); + MOCK_METHOD( + StatusOr, UpdateInstance, + (ExperimentalTag, NoAwaitTag, + google::cloud::filestore::v1::UpdateInstanceRequest const& request), + (override)); + + MOCK_METHOD(future>, + UpdateInstance, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, RestoreInstance, (google::cloud::filestore::v1::RestoreInstanceRequest const& request), (override)); + MOCK_METHOD( + StatusOr, RestoreInstance, + (ExperimentalTag, NoAwaitTag, + google::cloud::filestore::v1::RestoreInstanceRequest const& request), + (override)); + + MOCK_METHOD(future>, + RestoreInstance, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, RevertInstance, (google::cloud::filestore::v1::RevertInstanceRequest const& request), (override)); + MOCK_METHOD( + StatusOr, RevertInstance, + (ExperimentalTag, NoAwaitTag, + google::cloud::filestore::v1::RevertInstanceRequest const& request), + (override)); + + MOCK_METHOD(future>, + RevertInstance, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteInstance, (google::cloud::filestore::v1::DeleteInstanceRequest const& request), (override)); + MOCK_METHOD( + StatusOr, DeleteInstance, + (ExperimentalTag, NoAwaitTag, + google::cloud::filestore::v1::DeleteInstanceRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteInstance, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD((StreamRange), ListSnapshots, (google::cloud::filestore::v1::ListSnapshotsRequest request), @@ -96,17 +156,53 @@ class MockCloudFilestoreManagerConnection (google::cloud::filestore::v1::CreateSnapshotRequest const& request), (override)); + MOCK_METHOD( + StatusOr, CreateSnapshot, + (ExperimentalTag, NoAwaitTag, + google::cloud::filestore::v1::CreateSnapshotRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateSnapshot, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteSnapshot, (google::cloud::filestore::v1::DeleteSnapshotRequest const& request), (override)); + MOCK_METHOD( + StatusOr, DeleteSnapshot, + (ExperimentalTag, NoAwaitTag, + google::cloud::filestore::v1::DeleteSnapshotRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteSnapshot, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, UpdateSnapshot, (google::cloud::filestore::v1::UpdateSnapshotRequest const& request), (override)); + MOCK_METHOD( + StatusOr, UpdateSnapshot, + (ExperimentalTag, NoAwaitTag, + google::cloud::filestore::v1::UpdateSnapshotRequest const& request), + (override)); + + MOCK_METHOD(future>, + UpdateSnapshot, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD((StreamRange), ListBackups, (google::cloud::filestore::v1::ListBackupsRequest request), (override)); @@ -120,15 +216,51 @@ class MockCloudFilestoreManagerConnection (google::cloud::filestore::v1::CreateBackupRequest const& request), (override)); + MOCK_METHOD( + StatusOr, CreateBackup, + (ExperimentalTag, NoAwaitTag, + google::cloud::filestore::v1::CreateBackupRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateBackup, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteBackup, (google::cloud::filestore::v1::DeleteBackupRequest const& request), (override)); + MOCK_METHOD( + StatusOr, DeleteBackup, + (ExperimentalTag, NoAwaitTag, + google::cloud::filestore::v1::DeleteBackupRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteBackup, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, UpdateBackup, (google::cloud::filestore::v1::UpdateBackupRequest const& request), (override)); + + MOCK_METHOD( + StatusOr, UpdateBackup, + (ExperimentalTag, NoAwaitTag, + google::cloud::filestore::v1::UpdateBackupRequest const& request), + (override)); + + MOCK_METHOD(future>, + UpdateBackup, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); }; GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END diff --git a/google/cloud/functions/v1/cloud_functions_connection.cc b/google/cloud/functions/v1/cloud_functions_connection.cc index 3fadaed48d128..7ba9909ae6a5a 100644 --- a/google/cloud/functions/v1/cloud_functions_connection.cc +++ b/google/cloud/functions/v1/cloud_functions_connection.cc @@ -60,6 +60,22 @@ CloudFunctionsServiceConnection::CreateFunction( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +CloudFunctionsServiceConnection::CreateFunction( + ExperimentalTag, NoAwaitTag, + google::cloud::functions::v1::CreateFunctionRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +CloudFunctionsServiceConnection::CreateFunction( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> CloudFunctionsServiceConnection::UpdateFunction( google::cloud::functions::v1::UpdateFunctionRequest const&) { @@ -68,6 +84,22 @@ CloudFunctionsServiceConnection::UpdateFunction( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +CloudFunctionsServiceConnection::UpdateFunction( + ExperimentalTag, NoAwaitTag, + google::cloud::functions::v1::UpdateFunctionRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +CloudFunctionsServiceConnection::UpdateFunction( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> CloudFunctionsServiceConnection::DeleteFunction( google::cloud::functions::v1::DeleteFunctionRequest const&) { @@ -76,6 +108,22 @@ CloudFunctionsServiceConnection::DeleteFunction( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +CloudFunctionsServiceConnection::DeleteFunction( + ExperimentalTag, NoAwaitTag, + google::cloud::functions::v1::DeleteFunctionRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +CloudFunctionsServiceConnection::DeleteFunction( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr CloudFunctionsServiceConnection::CallFunction( google::cloud::functions::v1::CallFunctionRequest const&) { diff --git a/google/cloud/functions/v1/cloud_functions_connection.h b/google/cloud/functions/v1/cloud_functions_connection.h index c0730b22565f1..e49bc2645f111 100644 --- a/google/cloud/functions/v1/cloud_functions_connection.h +++ b/google/cloud/functions/v1/cloud_functions_connection.h @@ -22,8 +22,10 @@ #include "google/cloud/functions/v1/cloud_functions_connection_idempotency_policy.h" #include "google/cloud/functions/v1/internal/cloud_functions_retry_traits.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/internal/retry_policy_impl.h" +#include "google/cloud/no_await_tag.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" #include "google/cloud/status_or.h" @@ -202,14 +204,38 @@ class CloudFunctionsServiceConnection { CreateFunction( google::cloud::functions::v1::CreateFunctionRequest const& request); + virtual StatusOr CreateFunction( + ExperimentalTag, NoAwaitTag, + google::cloud::functions::v1::CreateFunctionRequest const& request); + + virtual future> + CreateFunction(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> UpdateFunction( google::cloud::functions::v1::UpdateFunctionRequest const& request); + virtual StatusOr UpdateFunction( + ExperimentalTag, NoAwaitTag, + google::cloud::functions::v1::UpdateFunctionRequest const& request); + + virtual future> + UpdateFunction(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> DeleteFunction( google::cloud::functions::v1::DeleteFunctionRequest const& request); + virtual StatusOr DeleteFunction( + ExperimentalTag, NoAwaitTag, + google::cloud::functions::v1::DeleteFunctionRequest const& request); + + virtual future> + DeleteFunction(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StatusOr CallFunction( google::cloud::functions::v1::CallFunctionRequest const& request); diff --git a/google/cloud/functions/v1/internal/cloud_functions_connection_impl.cc b/google/cloud/functions/v1/internal/cloud_functions_connection_impl.cc index 3c3f3a12a4194..71b129f052d13 100644 --- a/google/cloud/functions/v1/internal/cloud_functions_connection_impl.cc +++ b/google/cloud/functions/v1/internal/cloud_functions_connection_impl.cc @@ -155,6 +155,59 @@ CloudFunctionsServiceConnectionImpl::CreateFunction( polling_policy(*current), __func__); } +StatusOr +CloudFunctionsServiceConnectionImpl::CreateFunction( + ExperimentalTag, NoAwaitTag, + google::cloud::functions::v1::CreateFunctionRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateFunction(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::functions::v1::CreateFunctionRequest const& request) { + return stub_->CreateFunction(context, options, request); + }, + *current, request, __func__); +} + +future> +CloudFunctionsServiceConnectionImpl::CreateFunction( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to CreateFunction", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::functions::v1::CloudFunction>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::functions::v1::CloudFunction>, + polling_policy(*current), __func__); +} + future> CloudFunctionsServiceConnectionImpl::UpdateFunction( google::cloud::functions::v1::UpdateFunctionRequest const& request) { @@ -194,6 +247,59 @@ CloudFunctionsServiceConnectionImpl::UpdateFunction( polling_policy(*current), __func__); } +StatusOr +CloudFunctionsServiceConnectionImpl::UpdateFunction( + ExperimentalTag, NoAwaitTag, + google::cloud::functions::v1::UpdateFunctionRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UpdateFunction(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::functions::v1::UpdateFunctionRequest const& request) { + return stub_->UpdateFunction(context, options, request); + }, + *current, request, __func__); +} + +future> +CloudFunctionsServiceConnectionImpl::UpdateFunction( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to UpdateFunction", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::functions::v1::CloudFunction>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::functions::v1::CloudFunction>, + polling_policy(*current), __func__); +} + future> CloudFunctionsServiceConnectionImpl::DeleteFunction( google::cloud::functions::v1::DeleteFunctionRequest const& request) { @@ -233,6 +339,59 @@ CloudFunctionsServiceConnectionImpl::DeleteFunction( polling_policy(*current), __func__); } +StatusOr +CloudFunctionsServiceConnectionImpl::DeleteFunction( + ExperimentalTag, NoAwaitTag, + google::cloud::functions::v1::DeleteFunctionRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteFunction(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::functions::v1::DeleteFunctionRequest const& request) { + return stub_->DeleteFunction(context, options, request); + }, + *current, request, __func__); +} + +future> +CloudFunctionsServiceConnectionImpl::DeleteFunction( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteFunction", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::functions::v1::OperationMetadataV1>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::cloud::functions::v1::OperationMetadataV1>, + polling_policy(*current), __func__); +} + StatusOr CloudFunctionsServiceConnectionImpl::CallFunction( google::cloud::functions::v1::CallFunctionRequest const& request) { diff --git a/google/cloud/functions/v1/internal/cloud_functions_connection_impl.h b/google/cloud/functions/v1/internal/cloud_functions_connection_impl.h index 4dcf3e9a6d0ec..41b5795bc7a4e 100644 --- a/google/cloud/functions/v1/internal/cloud_functions_connection_impl.h +++ b/google/cloud/functions/v1/internal/cloud_functions_connection_impl.h @@ -62,14 +62,41 @@ class CloudFunctionsServiceConnectionImpl google::cloud::functions::v1::CreateFunctionRequest const& request) override; + StatusOr CreateFunction( + ExperimentalTag, NoAwaitTag, + google::cloud::functions::v1::CreateFunctionRequest const& request) + override; + + future> CreateFunction( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateFunction( google::cloud::functions::v1::UpdateFunctionRequest const& request) override; + StatusOr UpdateFunction( + ExperimentalTag, NoAwaitTag, + google::cloud::functions::v1::UpdateFunctionRequest const& request) + override; + + future> UpdateFunction( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteFunction(google::cloud::functions::v1::DeleteFunctionRequest const& request) override; + StatusOr DeleteFunction( + ExperimentalTag, NoAwaitTag, + google::cloud::functions::v1::DeleteFunctionRequest const& request) + override; + + future> + DeleteFunction(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr CallFunction( google::cloud::functions::v1::CallFunctionRequest const& request) override; diff --git a/google/cloud/functions/v1/internal/cloud_functions_tracing_connection.cc b/google/cloud/functions/v1/internal/cloud_functions_tracing_connection.cc index ee075ec116196..e2e74fcd6a69b 100644 --- a/google/cloud/functions/v1/internal/cloud_functions_tracing_connection.cc +++ b/google/cloud/functions/v1/internal/cloud_functions_tracing_connection.cc @@ -63,6 +63,27 @@ CloudFunctionsServiceTracingConnection::CreateFunction( return internal::EndSpan(std::move(span), child_->CreateFunction(request)); } +StatusOr +CloudFunctionsServiceTracingConnection::CreateFunction( + ExperimentalTag, NoAwaitTag, + google::cloud::functions::v1::CreateFunctionRequest const& request) { + auto span = internal::MakeSpan( + "functions_v1::CloudFunctionsServiceConnection::CreateFunction"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->CreateFunction(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +CloudFunctionsServiceTracingConnection::CreateFunction( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "functions_v1::CloudFunctionsServiceConnection::CreateFunction"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->CreateFunction(ExperimentalTag{}, operation)); +} + future> CloudFunctionsServiceTracingConnection::UpdateFunction( google::cloud::functions::v1::UpdateFunctionRequest const& request) { @@ -72,6 +93,27 @@ CloudFunctionsServiceTracingConnection::UpdateFunction( return internal::EndSpan(std::move(span), child_->UpdateFunction(request)); } +StatusOr +CloudFunctionsServiceTracingConnection::UpdateFunction( + ExperimentalTag, NoAwaitTag, + google::cloud::functions::v1::UpdateFunctionRequest const& request) { + auto span = internal::MakeSpan( + "functions_v1::CloudFunctionsServiceConnection::UpdateFunction"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->UpdateFunction(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +CloudFunctionsServiceTracingConnection::UpdateFunction( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "functions_v1::CloudFunctionsServiceConnection::UpdateFunction"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->UpdateFunction(ExperimentalTag{}, operation)); +} + future> CloudFunctionsServiceTracingConnection::DeleteFunction( google::cloud::functions::v1::DeleteFunctionRequest const& request) { @@ -81,6 +123,27 @@ CloudFunctionsServiceTracingConnection::DeleteFunction( return internal::EndSpan(std::move(span), child_->DeleteFunction(request)); } +StatusOr +CloudFunctionsServiceTracingConnection::DeleteFunction( + ExperimentalTag, NoAwaitTag, + google::cloud::functions::v1::DeleteFunctionRequest const& request) { + auto span = internal::MakeSpan( + "functions_v1::CloudFunctionsServiceConnection::DeleteFunction"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->DeleteFunction(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +CloudFunctionsServiceTracingConnection::DeleteFunction( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "functions_v1::CloudFunctionsServiceConnection::DeleteFunction"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->DeleteFunction(ExperimentalTag{}, operation)); +} + StatusOr CloudFunctionsServiceTracingConnection::CallFunction( google::cloud::functions::v1::CallFunctionRequest const& request) { diff --git a/google/cloud/functions/v1/internal/cloud_functions_tracing_connection.h b/google/cloud/functions/v1/internal/cloud_functions_tracing_connection.h index fd12501ee02ff..b78085294b693 100644 --- a/google/cloud/functions/v1/internal/cloud_functions_tracing_connection.h +++ b/google/cloud/functions/v1/internal/cloud_functions_tracing_connection.h @@ -50,14 +50,41 @@ class CloudFunctionsServiceTracingConnection google::cloud::functions::v1::CreateFunctionRequest const& request) override; + StatusOr CreateFunction( + ExperimentalTag, NoAwaitTag, + google::cloud::functions::v1::CreateFunctionRequest const& request) + override; + + future> CreateFunction( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateFunction( google::cloud::functions::v1::UpdateFunctionRequest const& request) override; + StatusOr UpdateFunction( + ExperimentalTag, NoAwaitTag, + google::cloud::functions::v1::UpdateFunctionRequest const& request) + override; + + future> UpdateFunction( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteFunction(google::cloud::functions::v1::DeleteFunctionRequest const& request) override; + StatusOr DeleteFunction( + ExperimentalTag, NoAwaitTag, + google::cloud::functions::v1::DeleteFunctionRequest const& request) + override; + + future> + DeleteFunction(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr CallFunction( google::cloud::functions::v1::CallFunctionRequest const& request) override; diff --git a/google/cloud/functions/v1/mocks/mock_cloud_functions_connection.h b/google/cloud/functions/v1/mocks/mock_cloud_functions_connection.h index 12a51becfd151..10a5c9bf58fb5 100644 --- a/google/cloud/functions/v1/mocks/mock_cloud_functions_connection.h +++ b/google/cloud/functions/v1/mocks/mock_cloud_functions_connection.h @@ -63,18 +63,54 @@ class MockCloudFunctionsServiceConnection (google::cloud::functions::v1::CreateFunctionRequest const& request), (override)); + MOCK_METHOD( + StatusOr, CreateFunction, + (ExperimentalTag, NoAwaitTag, + google::cloud::functions::v1::CreateFunctionRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateFunction, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, UpdateFunction, (google::cloud::functions::v1::UpdateFunctionRequest const& request), (override)); + MOCK_METHOD( + StatusOr, UpdateFunction, + (ExperimentalTag, NoAwaitTag, + google::cloud::functions::v1::UpdateFunctionRequest const& request), + (override)); + + MOCK_METHOD(future>, + UpdateFunction, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteFunction, (google::cloud::functions::v1::DeleteFunctionRequest const& request), (override)); + MOCK_METHOD( + StatusOr, DeleteFunction, + (ExperimentalTag, NoAwaitTag, + google::cloud::functions::v1::DeleteFunctionRequest const& request), + (override)); + + MOCK_METHOD( + future>, + DeleteFunction, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr, CallFunction, diff --git a/google/cloud/functions/v2/function_connection.cc b/google/cloud/functions/v2/function_connection.cc index c63e1ce23d020..d63183b50e82e 100644 --- a/google/cloud/functions/v2/function_connection.cc +++ b/google/cloud/functions/v2/function_connection.cc @@ -60,6 +60,22 @@ FunctionServiceConnection::CreateFunction( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +FunctionServiceConnection::CreateFunction( + ExperimentalTag, NoAwaitTag, + google::cloud::functions::v2::CreateFunctionRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +FunctionServiceConnection::CreateFunction( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> FunctionServiceConnection::UpdateFunction( google::cloud::functions::v2::UpdateFunctionRequest const&) { @@ -68,6 +84,22 @@ FunctionServiceConnection::UpdateFunction( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +FunctionServiceConnection::UpdateFunction( + ExperimentalTag, NoAwaitTag, + google::cloud::functions::v2::UpdateFunctionRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +FunctionServiceConnection::UpdateFunction( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> FunctionServiceConnection::DeleteFunction( google::cloud::functions::v2::DeleteFunctionRequest const&) { @@ -76,6 +108,22 @@ FunctionServiceConnection::DeleteFunction( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +FunctionServiceConnection::DeleteFunction( + ExperimentalTag, NoAwaitTag, + google::cloud::functions::v2::DeleteFunctionRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +FunctionServiceConnection::DeleteFunction( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr FunctionServiceConnection::GenerateUploadUrl( google::cloud::functions::v2::GenerateUploadUrlRequest const&) { diff --git a/google/cloud/functions/v2/function_connection.h b/google/cloud/functions/v2/function_connection.h index 2c5d36b31b43e..c13092aca52b5 100644 --- a/google/cloud/functions/v2/function_connection.h +++ b/google/cloud/functions/v2/function_connection.h @@ -22,8 +22,10 @@ #include "google/cloud/functions/v2/function_connection_idempotency_policy.h" #include "google/cloud/functions/v2/internal/function_retry_traits.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/internal/retry_policy_impl.h" +#include "google/cloud/no_await_tag.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" #include "google/cloud/status_or.h" @@ -196,14 +198,38 @@ class FunctionServiceConnection { CreateFunction( google::cloud::functions::v2::CreateFunctionRequest const& request); + virtual StatusOr CreateFunction( + ExperimentalTag, NoAwaitTag, + google::cloud::functions::v2::CreateFunctionRequest const& request); + + virtual future> + CreateFunction(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> UpdateFunction( google::cloud::functions::v2::UpdateFunctionRequest const& request); + virtual StatusOr UpdateFunction( + ExperimentalTag, NoAwaitTag, + google::cloud::functions::v2::UpdateFunctionRequest const& request); + + virtual future> + UpdateFunction(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> DeleteFunction( google::cloud::functions::v2::DeleteFunctionRequest const& request); + virtual StatusOr DeleteFunction( + ExperimentalTag, NoAwaitTag, + google::cloud::functions::v2::DeleteFunctionRequest const& request); + + virtual future> + DeleteFunction(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StatusOr GenerateUploadUrl( google::cloud::functions::v2::GenerateUploadUrlRequest const& request); diff --git a/google/cloud/functions/v2/internal/function_connection_impl.cc b/google/cloud/functions/v2/internal/function_connection_impl.cc index fcafe49e6833e..4522c316b3cac 100644 --- a/google/cloud/functions/v2/internal/function_connection_impl.cc +++ b/google/cloud/functions/v2/internal/function_connection_impl.cc @@ -153,6 +153,58 @@ FunctionServiceConnectionImpl::CreateFunction( polling_policy(*current), __func__); } +StatusOr +FunctionServiceConnectionImpl::CreateFunction( + ExperimentalTag, NoAwaitTag, + google::cloud::functions::v2::CreateFunctionRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateFunction(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::functions::v2::CreateFunctionRequest const& request) { + return stub_->CreateFunction(context, options, request); + }, + *current, request, __func__); +} + +future> +FunctionServiceConnectionImpl::CreateFunction( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to CreateFunction", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::functions::v2::Function>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::functions::v2::Function>, + polling_policy(*current), __func__); +} + future> FunctionServiceConnectionImpl::UpdateFunction( google::cloud::functions::v2::UpdateFunctionRequest const& request) { @@ -192,6 +244,58 @@ FunctionServiceConnectionImpl::UpdateFunction( polling_policy(*current), __func__); } +StatusOr +FunctionServiceConnectionImpl::UpdateFunction( + ExperimentalTag, NoAwaitTag, + google::cloud::functions::v2::UpdateFunctionRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UpdateFunction(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::functions::v2::UpdateFunctionRequest const& request) { + return stub_->UpdateFunction(context, options, request); + }, + *current, request, __func__); +} + +future> +FunctionServiceConnectionImpl::UpdateFunction( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to UpdateFunction", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::functions::v2::Function>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::functions::v2::Function>, + polling_policy(*current), __func__); +} + future> FunctionServiceConnectionImpl::DeleteFunction( google::cloud::functions::v2::DeleteFunctionRequest const& request) { @@ -231,6 +335,59 @@ FunctionServiceConnectionImpl::DeleteFunction( polling_policy(*current), __func__); } +StatusOr +FunctionServiceConnectionImpl::DeleteFunction( + ExperimentalTag, NoAwaitTag, + google::cloud::functions::v2::DeleteFunctionRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteFunction(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::functions::v2::DeleteFunctionRequest const& request) { + return stub_->DeleteFunction(context, options, request); + }, + *current, request, __func__); +} + +future> +FunctionServiceConnectionImpl::DeleteFunction( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteFunction", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::functions::v2::OperationMetadata>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::cloud::functions::v2::OperationMetadata>, + polling_policy(*current), __func__); +} + StatusOr FunctionServiceConnectionImpl::GenerateUploadUrl( google::cloud::functions::v2::GenerateUploadUrlRequest const& request) { diff --git a/google/cloud/functions/v2/internal/function_connection_impl.h b/google/cloud/functions/v2/internal/function_connection_impl.h index e3c1bce4c6790..dc3610449ed69 100644 --- a/google/cloud/functions/v2/internal/function_connection_impl.h +++ b/google/cloud/functions/v2/internal/function_connection_impl.h @@ -62,14 +62,41 @@ class FunctionServiceConnectionImpl google::cloud::functions::v2::CreateFunctionRequest const& request) override; + StatusOr CreateFunction( + ExperimentalTag, NoAwaitTag, + google::cloud::functions::v2::CreateFunctionRequest const& request) + override; + + future> CreateFunction( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateFunction( google::cloud::functions::v2::UpdateFunctionRequest const& request) override; + StatusOr UpdateFunction( + ExperimentalTag, NoAwaitTag, + google::cloud::functions::v2::UpdateFunctionRequest const& request) + override; + + future> UpdateFunction( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteFunction(google::cloud::functions::v2::DeleteFunctionRequest const& request) override; + StatusOr DeleteFunction( + ExperimentalTag, NoAwaitTag, + google::cloud::functions::v2::DeleteFunctionRequest const& request) + override; + + future> + DeleteFunction(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GenerateUploadUrl( google::cloud::functions::v2::GenerateUploadUrlRequest const& request) diff --git a/google/cloud/functions/v2/internal/function_tracing_connection.cc b/google/cloud/functions/v2/internal/function_tracing_connection.cc index 582efe63456af..f73c431cba0fc 100644 --- a/google/cloud/functions/v2/internal/function_tracing_connection.cc +++ b/google/cloud/functions/v2/internal/function_tracing_connection.cc @@ -62,6 +62,27 @@ FunctionServiceTracingConnection::CreateFunction( return internal::EndSpan(std::move(span), child_->CreateFunction(request)); } +StatusOr +FunctionServiceTracingConnection::CreateFunction( + ExperimentalTag, NoAwaitTag, + google::cloud::functions::v2::CreateFunctionRequest const& request) { + auto span = internal::MakeSpan( + "functions_v2::FunctionServiceConnection::CreateFunction"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->CreateFunction(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +FunctionServiceTracingConnection::CreateFunction( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "functions_v2::FunctionServiceConnection::CreateFunction"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->CreateFunction(ExperimentalTag{}, operation)); +} + future> FunctionServiceTracingConnection::UpdateFunction( google::cloud::functions::v2::UpdateFunctionRequest const& request) { @@ -71,6 +92,27 @@ FunctionServiceTracingConnection::UpdateFunction( return internal::EndSpan(std::move(span), child_->UpdateFunction(request)); } +StatusOr +FunctionServiceTracingConnection::UpdateFunction( + ExperimentalTag, NoAwaitTag, + google::cloud::functions::v2::UpdateFunctionRequest const& request) { + auto span = internal::MakeSpan( + "functions_v2::FunctionServiceConnection::UpdateFunction"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->UpdateFunction(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +FunctionServiceTracingConnection::UpdateFunction( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "functions_v2::FunctionServiceConnection::UpdateFunction"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->UpdateFunction(ExperimentalTag{}, operation)); +} + future> FunctionServiceTracingConnection::DeleteFunction( google::cloud::functions::v2::DeleteFunctionRequest const& request) { @@ -80,6 +122,27 @@ FunctionServiceTracingConnection::DeleteFunction( return internal::EndSpan(std::move(span), child_->DeleteFunction(request)); } +StatusOr +FunctionServiceTracingConnection::DeleteFunction( + ExperimentalTag, NoAwaitTag, + google::cloud::functions::v2::DeleteFunctionRequest const& request) { + auto span = internal::MakeSpan( + "functions_v2::FunctionServiceConnection::DeleteFunction"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->DeleteFunction(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +FunctionServiceTracingConnection::DeleteFunction( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "functions_v2::FunctionServiceConnection::DeleteFunction"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->DeleteFunction(ExperimentalTag{}, operation)); +} + StatusOr FunctionServiceTracingConnection::GenerateUploadUrl( google::cloud::functions::v2::GenerateUploadUrlRequest const& request) { diff --git a/google/cloud/functions/v2/internal/function_tracing_connection.h b/google/cloud/functions/v2/internal/function_tracing_connection.h index 4d83e1affc449..b0c77645d9a41 100644 --- a/google/cloud/functions/v2/internal/function_tracing_connection.h +++ b/google/cloud/functions/v2/internal/function_tracing_connection.h @@ -50,14 +50,41 @@ class FunctionServiceTracingConnection google::cloud::functions::v2::CreateFunctionRequest const& request) override; + StatusOr CreateFunction( + ExperimentalTag, NoAwaitTag, + google::cloud::functions::v2::CreateFunctionRequest const& request) + override; + + future> CreateFunction( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateFunction( google::cloud::functions::v2::UpdateFunctionRequest const& request) override; + StatusOr UpdateFunction( + ExperimentalTag, NoAwaitTag, + google::cloud::functions::v2::UpdateFunctionRequest const& request) + override; + + future> UpdateFunction( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteFunction(google::cloud::functions::v2::DeleteFunctionRequest const& request) override; + StatusOr DeleteFunction( + ExperimentalTag, NoAwaitTag, + google::cloud::functions::v2::DeleteFunctionRequest const& request) + override; + + future> + DeleteFunction(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GenerateUploadUrl( google::cloud::functions::v2::GenerateUploadUrlRequest const& request) diff --git a/google/cloud/functions/v2/mocks/mock_function_connection.h b/google/cloud/functions/v2/mocks/mock_function_connection.h index 205980439c077..d1ae5e6756c95 100644 --- a/google/cloud/functions/v2/mocks/mock_function_connection.h +++ b/google/cloud/functions/v2/mocks/mock_function_connection.h @@ -61,17 +61,53 @@ class MockFunctionServiceConnection (google::cloud::functions::v2::CreateFunctionRequest const& request), (override)); + MOCK_METHOD( + StatusOr, CreateFunction, + (ExperimentalTag, NoAwaitTag, + google::cloud::functions::v2::CreateFunctionRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateFunction, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, UpdateFunction, (google::cloud::functions::v2::UpdateFunctionRequest const& request), (override)); + MOCK_METHOD( + StatusOr, UpdateFunction, + (ExperimentalTag, NoAwaitTag, + google::cloud::functions::v2::UpdateFunctionRequest const& request), + (override)); + + MOCK_METHOD(future>, + UpdateFunction, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteFunction, (google::cloud::functions::v2::DeleteFunctionRequest const& request), (override)); + MOCK_METHOD( + StatusOr, DeleteFunction, + (ExperimentalTag, NoAwaitTag, + google::cloud::functions::v2::DeleteFunctionRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteFunction, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr, GenerateUploadUrl, diff --git a/google/cloud/gkebackup/v1/backup_for_gke_connection.cc b/google/cloud/gkebackup/v1/backup_for_gke_connection.cc index 1521d288d1ef8..300b592eb5cb7 100644 --- a/google/cloud/gkebackup/v1/backup_for_gke_connection.cc +++ b/google/cloud/gkebackup/v1/backup_for_gke_connection.cc @@ -46,6 +46,22 @@ BackupForGKEConnection::CreateBackupPlan( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +BackupForGKEConnection::CreateBackupPlan( + ExperimentalTag, NoAwaitTag, + google::cloud::gkebackup::v1::CreateBackupPlanRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +BackupForGKEConnection::CreateBackupPlan( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StreamRange BackupForGKEConnection::ListBackupPlans( google::cloud::gkebackup::v1:: @@ -68,6 +84,22 @@ BackupForGKEConnection::UpdateBackupPlan( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +BackupForGKEConnection::UpdateBackupPlan( + ExperimentalTag, NoAwaitTag, + google::cloud::gkebackup::v1::UpdateBackupPlanRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +BackupForGKEConnection::UpdateBackupPlan( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> BackupForGKEConnection::DeleteBackupPlan( google::cloud::gkebackup::v1::DeleteBackupPlanRequest const&) { @@ -76,6 +108,22 @@ BackupForGKEConnection::DeleteBackupPlan( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +BackupForGKEConnection::DeleteBackupPlan( + ExperimentalTag, NoAwaitTag, + google::cloud::gkebackup::v1::DeleteBackupPlanRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +BackupForGKEConnection::DeleteBackupPlan( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> BackupForGKEConnection::CreateBackup( google::cloud::gkebackup::v1::CreateBackupRequest const&) { @@ -84,6 +132,21 @@ BackupForGKEConnection::CreateBackup( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr BackupForGKEConnection::CreateBackup( + ExperimentalTag, NoAwaitTag, + google::cloud::gkebackup::v1::CreateBackupRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +BackupForGKEConnection::CreateBackup(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StreamRange BackupForGKEConnection::ListBackups( google::cloud::gkebackup::v1:: @@ -106,6 +169,21 @@ BackupForGKEConnection::UpdateBackup( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr BackupForGKEConnection::UpdateBackup( + ExperimentalTag, NoAwaitTag, + google::cloud::gkebackup::v1::UpdateBackupRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +BackupForGKEConnection::UpdateBackup(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> BackupForGKEConnection::DeleteBackup( google::cloud::gkebackup::v1::DeleteBackupRequest const&) { @@ -114,6 +192,21 @@ BackupForGKEConnection::DeleteBackup( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr BackupForGKEConnection::DeleteBackup( + ExperimentalTag, NoAwaitTag, + google::cloud::gkebackup::v1::DeleteBackupRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +BackupForGKEConnection::DeleteBackup(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StreamRange BackupForGKEConnection::ListVolumeBackups( google::cloud::gkebackup::v1:: @@ -136,6 +229,22 @@ BackupForGKEConnection::CreateRestorePlan( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +BackupForGKEConnection::CreateRestorePlan( + ExperimentalTag, NoAwaitTag, + google::cloud::gkebackup::v1::CreateRestorePlanRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +BackupForGKEConnection::CreateRestorePlan( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StreamRange BackupForGKEConnection::ListRestorePlans( google::cloud::gkebackup::v1:: @@ -158,6 +267,22 @@ BackupForGKEConnection::UpdateRestorePlan( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +BackupForGKEConnection::UpdateRestorePlan( + ExperimentalTag, NoAwaitTag, + google::cloud::gkebackup::v1::UpdateRestorePlanRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +BackupForGKEConnection::UpdateRestorePlan( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> BackupForGKEConnection::DeleteRestorePlan( google::cloud::gkebackup::v1::DeleteRestorePlanRequest const&) { @@ -166,6 +291,22 @@ BackupForGKEConnection::DeleteRestorePlan( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +BackupForGKEConnection::DeleteRestorePlan( + ExperimentalTag, NoAwaitTag, + google::cloud::gkebackup::v1::DeleteRestorePlanRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +BackupForGKEConnection::DeleteRestorePlan( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> BackupForGKEConnection::CreateRestore( google::cloud::gkebackup::v1::CreateRestoreRequest const&) { @@ -174,6 +315,21 @@ BackupForGKEConnection::CreateRestore( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr BackupForGKEConnection::CreateRestore( + ExperimentalTag, NoAwaitTag, + google::cloud::gkebackup::v1::CreateRestoreRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +BackupForGKEConnection::CreateRestore(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StreamRange BackupForGKEConnection::ListRestores( google::cloud::gkebackup::v1:: @@ -196,6 +352,21 @@ BackupForGKEConnection::UpdateRestore( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr BackupForGKEConnection::UpdateRestore( + ExperimentalTag, NoAwaitTag, + google::cloud::gkebackup::v1::UpdateRestoreRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +BackupForGKEConnection::UpdateRestore(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> BackupForGKEConnection::DeleteRestore( google::cloud::gkebackup::v1::DeleteRestoreRequest const&) { @@ -204,6 +375,21 @@ BackupForGKEConnection::DeleteRestore( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr BackupForGKEConnection::DeleteRestore( + ExperimentalTag, NoAwaitTag, + google::cloud::gkebackup::v1::DeleteRestoreRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +BackupForGKEConnection::DeleteRestore(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StreamRange BackupForGKEConnection::ListVolumeRestores( google::cloud::gkebackup::v1:: diff --git a/google/cloud/gkebackup/v1/backup_for_gke_connection.h b/google/cloud/gkebackup/v1/backup_for_gke_connection.h index 12dd117a42582..517752a4ccb05 100644 --- a/google/cloud/gkebackup/v1/backup_for_gke_connection.h +++ b/google/cloud/gkebackup/v1/backup_for_gke_connection.h @@ -22,8 +22,10 @@ #include "google/cloud/gkebackup/v1/backup_for_gke_connection_idempotency_policy.h" #include "google/cloud/gkebackup/v1/internal/backup_for_gke_retry_traits.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/internal/retry_policy_impl.h" +#include "google/cloud/no_await_tag.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" #include "google/cloud/status_or.h" @@ -189,6 +191,14 @@ class BackupForGKEConnection { CreateBackupPlan( google::cloud::gkebackup::v1::CreateBackupPlanRequest const& request); + virtual StatusOr CreateBackupPlan( + ExperimentalTag, NoAwaitTag, + google::cloud::gkebackup::v1::CreateBackupPlanRequest const& request); + + virtual future> + CreateBackupPlan(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StreamRange ListBackupPlans( google::cloud::gkebackup::v1::ListBackupPlansRequest request); @@ -199,13 +209,36 @@ class BackupForGKEConnection { UpdateBackupPlan( google::cloud::gkebackup::v1::UpdateBackupPlanRequest const& request); + virtual StatusOr UpdateBackupPlan( + ExperimentalTag, NoAwaitTag, + google::cloud::gkebackup::v1::UpdateBackupPlanRequest const& request); + + virtual future> + UpdateBackupPlan(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> DeleteBackupPlan( google::cloud::gkebackup::v1::DeleteBackupPlanRequest const& request); + virtual StatusOr DeleteBackupPlan( + ExperimentalTag, NoAwaitTag, + google::cloud::gkebackup::v1::DeleteBackupPlanRequest const& request); + + virtual future> + DeleteBackupPlan(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> CreateBackup( google::cloud::gkebackup::v1::CreateBackupRequest const& request); + virtual StatusOr CreateBackup( + ExperimentalTag, NoAwaitTag, + google::cloud::gkebackup::v1::CreateBackupRequest const& request); + + virtual future> CreateBackup( + ExperimentalTag, google::longrunning::Operation const& operation); + virtual StreamRange ListBackups( google::cloud::gkebackup::v1::ListBackupsRequest request); @@ -215,10 +248,25 @@ class BackupForGKEConnection { virtual future> UpdateBackup( google::cloud::gkebackup::v1::UpdateBackupRequest const& request); + virtual StatusOr UpdateBackup( + ExperimentalTag, NoAwaitTag, + google::cloud::gkebackup::v1::UpdateBackupRequest const& request); + + virtual future> UpdateBackup( + ExperimentalTag, google::longrunning::Operation const& operation); + virtual future> DeleteBackup( google::cloud::gkebackup::v1::DeleteBackupRequest const& request); + virtual StatusOr DeleteBackup( + ExperimentalTag, NoAwaitTag, + google::cloud::gkebackup::v1::DeleteBackupRequest const& request); + + virtual future> + DeleteBackup(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StreamRange ListVolumeBackups( google::cloud::gkebackup::v1::ListVolumeBackupsRequest request); @@ -230,6 +278,14 @@ class BackupForGKEConnection { CreateRestorePlan( google::cloud::gkebackup::v1::CreateRestorePlanRequest const& request); + virtual StatusOr CreateRestorePlan( + ExperimentalTag, NoAwaitTag, + google::cloud::gkebackup::v1::CreateRestorePlanRequest const& request); + + virtual future> + CreateRestorePlan(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StreamRange ListRestorePlans( google::cloud::gkebackup::v1::ListRestorePlansRequest request); @@ -241,13 +297,36 @@ class BackupForGKEConnection { UpdateRestorePlan( google::cloud::gkebackup::v1::UpdateRestorePlanRequest const& request); + virtual StatusOr UpdateRestorePlan( + ExperimentalTag, NoAwaitTag, + google::cloud::gkebackup::v1::UpdateRestorePlanRequest const& request); + + virtual future> + UpdateRestorePlan(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> DeleteRestorePlan( google::cloud::gkebackup::v1::DeleteRestorePlanRequest const& request); + virtual StatusOr DeleteRestorePlan( + ExperimentalTag, NoAwaitTag, + google::cloud::gkebackup::v1::DeleteRestorePlanRequest const& request); + + virtual future> + DeleteRestorePlan(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> CreateRestore( google::cloud::gkebackup::v1::CreateRestoreRequest const& request); + virtual StatusOr CreateRestore( + ExperimentalTag, NoAwaitTag, + google::cloud::gkebackup::v1::CreateRestoreRequest const& request); + + virtual future> CreateRestore( + ExperimentalTag, google::longrunning::Operation const& operation); + virtual StreamRange ListRestores( google::cloud::gkebackup::v1::ListRestoresRequest request); @@ -257,10 +336,25 @@ class BackupForGKEConnection { virtual future> UpdateRestore( google::cloud::gkebackup::v1::UpdateRestoreRequest const& request); + virtual StatusOr UpdateRestore( + ExperimentalTag, NoAwaitTag, + google::cloud::gkebackup::v1::UpdateRestoreRequest const& request); + + virtual future> UpdateRestore( + ExperimentalTag, google::longrunning::Operation const& operation); + virtual future> DeleteRestore( google::cloud::gkebackup::v1::DeleteRestoreRequest const& request); + virtual StatusOr DeleteRestore( + ExperimentalTag, NoAwaitTag, + google::cloud::gkebackup::v1::DeleteRestoreRequest const& request); + + virtual future> + DeleteRestore(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StreamRange ListVolumeRestores( google::cloud::gkebackup::v1::ListVolumeRestoresRequest request); diff --git a/google/cloud/gkebackup/v1/internal/backup_for_gke_connection_impl.cc b/google/cloud/gkebackup/v1/internal/backup_for_gke_connection_impl.cc index 1c4470a898e55..db7495e8de08b 100644 --- a/google/cloud/gkebackup/v1/internal/backup_for_gke_connection_impl.cc +++ b/google/cloud/gkebackup/v1/internal/backup_for_gke_connection_impl.cc @@ -104,6 +104,59 @@ BackupForGKEConnectionImpl::CreateBackupPlan( polling_policy(*current), __func__); } +StatusOr +BackupForGKEConnectionImpl::CreateBackupPlan( + ExperimentalTag, NoAwaitTag, + google::cloud::gkebackup::v1::CreateBackupPlanRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateBackupPlan(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::gkebackup::v1::CreateBackupPlanRequest const& + request) { + return stub_->CreateBackupPlan(context, options, request); + }, + *current, request, __func__); +} + +future> +BackupForGKEConnectionImpl::CreateBackupPlan( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to CreateBackupPlan", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::gkebackup::v1::BackupPlan>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::gkebackup::v1::BackupPlan>, + polling_policy(*current), __func__); +} + StreamRange BackupForGKEConnectionImpl::ListBackupPlans( google::cloud::gkebackup::v1::ListBackupPlansRequest request) { @@ -193,6 +246,59 @@ BackupForGKEConnectionImpl::UpdateBackupPlan( polling_policy(*current), __func__); } +StatusOr +BackupForGKEConnectionImpl::UpdateBackupPlan( + ExperimentalTag, NoAwaitTag, + google::cloud::gkebackup::v1::UpdateBackupPlanRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UpdateBackupPlan(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::gkebackup::v1::UpdateBackupPlanRequest const& + request) { + return stub_->UpdateBackupPlan(context, options, request); + }, + *current, request, __func__); +} + +future> +BackupForGKEConnectionImpl::UpdateBackupPlan( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to UpdateBackupPlan", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::gkebackup::v1::BackupPlan>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::gkebackup::v1::BackupPlan>, + polling_policy(*current), __func__); +} + future> BackupForGKEConnectionImpl::DeleteBackupPlan( google::cloud::gkebackup::v1::DeleteBackupPlanRequest const& request) { @@ -233,6 +339,59 @@ BackupForGKEConnectionImpl::DeleteBackupPlan( polling_policy(*current), __func__); } +StatusOr +BackupForGKEConnectionImpl::DeleteBackupPlan( + ExperimentalTag, NoAwaitTag, + google::cloud::gkebackup::v1::DeleteBackupPlanRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteBackupPlan(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::gkebackup::v1::DeleteBackupPlanRequest const& + request) { + return stub_->DeleteBackupPlan(context, options, request); + }, + *current, request, __func__); +} + +future> +BackupForGKEConnectionImpl::DeleteBackupPlan( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteBackupPlan", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::gkebackup::v1::OperationMetadata>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::cloud::gkebackup::v1::OperationMetadata>, + polling_policy(*current), __func__); +} + future> BackupForGKEConnectionImpl::CreateBackup( google::cloud::gkebackup::v1::CreateBackupRequest const& request) { @@ -272,6 +431,57 @@ BackupForGKEConnectionImpl::CreateBackup( polling_policy(*current), __func__); } +StatusOr +BackupForGKEConnectionImpl::CreateBackup( + ExperimentalTag, NoAwaitTag, + google::cloud::gkebackup::v1::CreateBackupRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateBackup(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::gkebackup::v1::CreateBackupRequest const& request) { + return stub_->CreateBackup(context, options, request); + }, + *current, request, __func__); +} + +future> +BackupForGKEConnectionImpl::CreateBackup( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to CreateBackup", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::gkebackup::v1::Backup>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::gkebackup::v1::Backup>, + polling_policy(*current), __func__); +} + StreamRange BackupForGKEConnectionImpl::ListBackups( google::cloud::gkebackup::v1::ListBackupsRequest request) { @@ -359,6 +569,57 @@ BackupForGKEConnectionImpl::UpdateBackup( polling_policy(*current), __func__); } +StatusOr +BackupForGKEConnectionImpl::UpdateBackup( + ExperimentalTag, NoAwaitTag, + google::cloud::gkebackup::v1::UpdateBackupRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UpdateBackup(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::gkebackup::v1::UpdateBackupRequest const& request) { + return stub_->UpdateBackup(context, options, request); + }, + *current, request, __func__); +} + +future> +BackupForGKEConnectionImpl::UpdateBackup( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to UpdateBackup", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::gkebackup::v1::Backup>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::gkebackup::v1::Backup>, + polling_policy(*current), __func__); +} + future> BackupForGKEConnectionImpl::DeleteBackup( google::cloud::gkebackup::v1::DeleteBackupRequest const& request) { @@ -398,6 +659,58 @@ BackupForGKEConnectionImpl::DeleteBackup( polling_policy(*current), __func__); } +StatusOr +BackupForGKEConnectionImpl::DeleteBackup( + ExperimentalTag, NoAwaitTag, + google::cloud::gkebackup::v1::DeleteBackupRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteBackup(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::gkebackup::v1::DeleteBackupRequest const& request) { + return stub_->DeleteBackup(context, options, request); + }, + *current, request, __func__); +} + +future> +BackupForGKEConnectionImpl::DeleteBackup( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteBackup", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::gkebackup::v1::OperationMetadata>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::cloud::gkebackup::v1::OperationMetadata>, + polling_policy(*current), __func__); +} + StreamRange BackupForGKEConnectionImpl::ListVolumeBackups( google::cloud::gkebackup::v1::ListVolumeBackupsRequest request) { @@ -487,6 +800,59 @@ BackupForGKEConnectionImpl::CreateRestorePlan( polling_policy(*current), __func__); } +StatusOr +BackupForGKEConnectionImpl::CreateRestorePlan( + ExperimentalTag, NoAwaitTag, + google::cloud::gkebackup::v1::CreateRestorePlanRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateRestorePlan(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::gkebackup::v1::CreateRestorePlanRequest const& + request) { + return stub_->CreateRestorePlan(context, options, request); + }, + *current, request, __func__); +} + +future> +BackupForGKEConnectionImpl::CreateRestorePlan( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to CreateRestorePlan", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::gkebackup::v1::RestorePlan>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::gkebackup::v1::RestorePlan>, + polling_policy(*current), __func__); +} + StreamRange BackupForGKEConnectionImpl::ListRestorePlans( google::cloud::gkebackup::v1::ListRestorePlansRequest request) { @@ -576,6 +942,59 @@ BackupForGKEConnectionImpl::UpdateRestorePlan( polling_policy(*current), __func__); } +StatusOr +BackupForGKEConnectionImpl::UpdateRestorePlan( + ExperimentalTag, NoAwaitTag, + google::cloud::gkebackup::v1::UpdateRestorePlanRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UpdateRestorePlan(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::gkebackup::v1::UpdateRestorePlanRequest const& + request) { + return stub_->UpdateRestorePlan(context, options, request); + }, + *current, request, __func__); +} + +future> +BackupForGKEConnectionImpl::UpdateRestorePlan( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to UpdateRestorePlan", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::gkebackup::v1::RestorePlan>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::gkebackup::v1::RestorePlan>, + polling_policy(*current), __func__); +} + future> BackupForGKEConnectionImpl::DeleteRestorePlan( google::cloud::gkebackup::v1::DeleteRestorePlanRequest const& request) { @@ -616,6 +1035,59 @@ BackupForGKEConnectionImpl::DeleteRestorePlan( polling_policy(*current), __func__); } +StatusOr +BackupForGKEConnectionImpl::DeleteRestorePlan( + ExperimentalTag, NoAwaitTag, + google::cloud::gkebackup::v1::DeleteRestorePlanRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteRestorePlan(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::gkebackup::v1::DeleteRestorePlanRequest const& + request) { + return stub_->DeleteRestorePlan(context, options, request); + }, + *current, request, __func__); +} + +future> +BackupForGKEConnectionImpl::DeleteRestorePlan( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteRestorePlan", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::gkebackup::v1::OperationMetadata>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::cloud::gkebackup::v1::OperationMetadata>, + polling_policy(*current), __func__); +} + future> BackupForGKEConnectionImpl::CreateRestore( google::cloud::gkebackup::v1::CreateRestoreRequest const& request) { @@ -655,6 +1127,58 @@ BackupForGKEConnectionImpl::CreateRestore( polling_policy(*current), __func__); } +StatusOr +BackupForGKEConnectionImpl::CreateRestore( + ExperimentalTag, NoAwaitTag, + google::cloud::gkebackup::v1::CreateRestoreRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateRestore(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::gkebackup::v1::CreateRestoreRequest const& request) { + return stub_->CreateRestore(context, options, request); + }, + *current, request, __func__); +} + +future> +BackupForGKEConnectionImpl::CreateRestore( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to CreateRestore", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::gkebackup::v1::Restore>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::gkebackup::v1::Restore>, + polling_policy(*current), __func__); +} + StreamRange BackupForGKEConnectionImpl::ListRestores( google::cloud::gkebackup::v1::ListRestoresRequest request) { @@ -742,6 +1266,58 @@ BackupForGKEConnectionImpl::UpdateRestore( polling_policy(*current), __func__); } +StatusOr +BackupForGKEConnectionImpl::UpdateRestore( + ExperimentalTag, NoAwaitTag, + google::cloud::gkebackup::v1::UpdateRestoreRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UpdateRestore(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::gkebackup::v1::UpdateRestoreRequest const& request) { + return stub_->UpdateRestore(context, options, request); + }, + *current, request, __func__); +} + +future> +BackupForGKEConnectionImpl::UpdateRestore( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to UpdateRestore", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::gkebackup::v1::Restore>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::gkebackup::v1::Restore>, + polling_policy(*current), __func__); +} + future> BackupForGKEConnectionImpl::DeleteRestore( google::cloud::gkebackup::v1::DeleteRestoreRequest const& request) { @@ -781,6 +1357,59 @@ BackupForGKEConnectionImpl::DeleteRestore( polling_policy(*current), __func__); } +StatusOr +BackupForGKEConnectionImpl::DeleteRestore( + ExperimentalTag, NoAwaitTag, + google::cloud::gkebackup::v1::DeleteRestoreRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteRestore(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::gkebackup::v1::DeleteRestoreRequest const& request) { + return stub_->DeleteRestore(context, options, request); + }, + *current, request, __func__); +} + +future> +BackupForGKEConnectionImpl::DeleteRestore( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteRestore", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::gkebackup::v1::OperationMetadata>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::cloud::gkebackup::v1::OperationMetadata>, + polling_policy(*current), __func__); +} + StreamRange BackupForGKEConnectionImpl::ListVolumeRestores( google::cloud::gkebackup::v1::ListVolumeRestoresRequest request) { diff --git a/google/cloud/gkebackup/v1/internal/backup_for_gke_connection_impl.h b/google/cloud/gkebackup/v1/internal/backup_for_gke_connection_impl.h index c6c9be98dedd2..8f1f0bb09d952 100644 --- a/google/cloud/gkebackup/v1/internal/backup_for_gke_connection_impl.h +++ b/google/cloud/gkebackup/v1/internal/backup_for_gke_connection_impl.h @@ -55,6 +55,15 @@ class BackupForGKEConnectionImpl : public gkebackup_v1::BackupForGKEConnection { google::cloud::gkebackup::v1::CreateBackupPlanRequest const& request) override; + StatusOr CreateBackupPlan( + ExperimentalTag, NoAwaitTag, + google::cloud::gkebackup::v1::CreateBackupPlanRequest const& request) + override; + + future> CreateBackupPlan( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListBackupPlans( google::cloud::gkebackup::v1::ListBackupPlansRequest request) override; @@ -66,14 +75,41 @@ class BackupForGKEConnectionImpl : public gkebackup_v1::BackupForGKEConnection { google::cloud::gkebackup::v1::UpdateBackupPlanRequest const& request) override; + StatusOr UpdateBackupPlan( + ExperimentalTag, NoAwaitTag, + google::cloud::gkebackup::v1::UpdateBackupPlanRequest const& request) + override; + + future> UpdateBackupPlan( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteBackupPlan(google::cloud::gkebackup::v1::DeleteBackupPlanRequest const& request) override; + StatusOr DeleteBackupPlan( + ExperimentalTag, NoAwaitTag, + google::cloud::gkebackup::v1::DeleteBackupPlanRequest const& request) + override; + + future> + DeleteBackupPlan(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> CreateBackup( google::cloud::gkebackup::v1::CreateBackupRequest const& request) override; + StatusOr CreateBackup( + ExperimentalTag, NoAwaitTag, + google::cloud::gkebackup::v1::CreateBackupRequest const& request) + override; + + future> CreateBackup( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListBackups( google::cloud::gkebackup::v1::ListBackupsRequest request) override; @@ -84,10 +120,28 @@ class BackupForGKEConnectionImpl : public gkebackup_v1::BackupForGKEConnection { google::cloud::gkebackup::v1::UpdateBackupRequest const& request) override; + StatusOr UpdateBackup( + ExperimentalTag, NoAwaitTag, + google::cloud::gkebackup::v1::UpdateBackupRequest const& request) + override; + + future> UpdateBackup( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteBackup(google::cloud::gkebackup::v1::DeleteBackupRequest const& request) override; + StatusOr DeleteBackup( + ExperimentalTag, NoAwaitTag, + google::cloud::gkebackup::v1::DeleteBackupRequest const& request) + override; + + future> + DeleteBackup(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListVolumeBackups( google::cloud::gkebackup::v1::ListVolumeBackupsRequest request) override; @@ -99,6 +153,15 @@ class BackupForGKEConnectionImpl : public gkebackup_v1::BackupForGKEConnection { google::cloud::gkebackup::v1::CreateRestorePlanRequest const& request) override; + StatusOr CreateRestorePlan( + ExperimentalTag, NoAwaitTag, + google::cloud::gkebackup::v1::CreateRestorePlanRequest const& request) + override; + + future> CreateRestorePlan( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListRestorePlans( google::cloud::gkebackup::v1::ListRestorePlansRequest request) override; @@ -110,15 +173,42 @@ class BackupForGKEConnectionImpl : public gkebackup_v1::BackupForGKEConnection { google::cloud::gkebackup::v1::UpdateRestorePlanRequest const& request) override; + StatusOr UpdateRestorePlan( + ExperimentalTag, NoAwaitTag, + google::cloud::gkebackup::v1::UpdateRestorePlanRequest const& request) + override; + + future> UpdateRestorePlan( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteRestorePlan( google::cloud::gkebackup::v1::DeleteRestorePlanRequest const& request) override; + StatusOr DeleteRestorePlan( + ExperimentalTag, NoAwaitTag, + google::cloud::gkebackup::v1::DeleteRestorePlanRequest const& request) + override; + + future> + DeleteRestorePlan(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> CreateRestore( google::cloud::gkebackup::v1::CreateRestoreRequest const& request) override; + StatusOr CreateRestore( + ExperimentalTag, NoAwaitTag, + google::cloud::gkebackup::v1::CreateRestoreRequest const& request) + override; + + future> CreateRestore( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListRestores( google::cloud::gkebackup::v1::ListRestoresRequest request) override; @@ -129,10 +219,28 @@ class BackupForGKEConnectionImpl : public gkebackup_v1::BackupForGKEConnection { google::cloud::gkebackup::v1::UpdateRestoreRequest const& request) override; + StatusOr UpdateRestore( + ExperimentalTag, NoAwaitTag, + google::cloud::gkebackup::v1::UpdateRestoreRequest const& request) + override; + + future> UpdateRestore( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteRestore(google::cloud::gkebackup::v1::DeleteRestoreRequest const& request) override; + StatusOr DeleteRestore( + ExperimentalTag, NoAwaitTag, + google::cloud::gkebackup::v1::DeleteRestoreRequest const& request) + override; + + future> + DeleteRestore(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListVolumeRestores( google::cloud::gkebackup::v1::ListVolumeRestoresRequest request) override; diff --git a/google/cloud/gkebackup/v1/internal/backup_for_gke_tracing_connection.cc b/google/cloud/gkebackup/v1/internal/backup_for_gke_tracing_connection.cc index 76053900c99fd..1b1e91f52af7a 100644 --- a/google/cloud/gkebackup/v1/internal/backup_for_gke_tracing_connection.cc +++ b/google/cloud/gkebackup/v1/internal/backup_for_gke_tracing_connection.cc @@ -42,6 +42,28 @@ BackupForGKETracingConnection::CreateBackupPlan( return internal::EndSpan(std::move(span), child_->CreateBackupPlan(request)); } +StatusOr +BackupForGKETracingConnection::CreateBackupPlan( + ExperimentalTag, NoAwaitTag, + google::cloud::gkebackup::v1::CreateBackupPlanRequest const& request) { + auto span = internal::MakeSpan( + "gkebackup_v1::BackupForGKEConnection::CreateBackupPlan"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->CreateBackupPlan(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +BackupForGKETracingConnection::CreateBackupPlan( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "gkebackup_v1::BackupForGKEConnection::CreateBackupPlan"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->CreateBackupPlan(ExperimentalTag{}, operation)); +} + StreamRange BackupForGKETracingConnection::ListBackupPlans( google::cloud::gkebackup::v1::ListBackupPlansRequest request) { @@ -71,6 +93,28 @@ BackupForGKETracingConnection::UpdateBackupPlan( return internal::EndSpan(std::move(span), child_->UpdateBackupPlan(request)); } +StatusOr +BackupForGKETracingConnection::UpdateBackupPlan( + ExperimentalTag, NoAwaitTag, + google::cloud::gkebackup::v1::UpdateBackupPlanRequest const& request) { + auto span = internal::MakeSpan( + "gkebackup_v1::BackupForGKEConnection::UpdateBackupPlan"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->UpdateBackupPlan(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +BackupForGKETracingConnection::UpdateBackupPlan( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "gkebackup_v1::BackupForGKEConnection::UpdateBackupPlan"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->UpdateBackupPlan(ExperimentalTag{}, operation)); +} + future> BackupForGKETracingConnection::DeleteBackupPlan( google::cloud::gkebackup::v1::DeleteBackupPlanRequest const& request) { @@ -80,6 +124,28 @@ BackupForGKETracingConnection::DeleteBackupPlan( return internal::EndSpan(std::move(span), child_->DeleteBackupPlan(request)); } +StatusOr +BackupForGKETracingConnection::DeleteBackupPlan( + ExperimentalTag, NoAwaitTag, + google::cloud::gkebackup::v1::DeleteBackupPlanRequest const& request) { + auto span = internal::MakeSpan( + "gkebackup_v1::BackupForGKEConnection::DeleteBackupPlan"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->DeleteBackupPlan(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +BackupForGKETracingConnection::DeleteBackupPlan( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "gkebackup_v1::BackupForGKEConnection::DeleteBackupPlan"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->DeleteBackupPlan(ExperimentalTag{}, operation)); +} + future> BackupForGKETracingConnection::CreateBackup( google::cloud::gkebackup::v1::CreateBackupRequest const& request) { @@ -89,6 +155,27 @@ BackupForGKETracingConnection::CreateBackup( return internal::EndSpan(std::move(span), child_->CreateBackup(request)); } +StatusOr +BackupForGKETracingConnection::CreateBackup( + ExperimentalTag, NoAwaitTag, + google::cloud::gkebackup::v1::CreateBackupRequest const& request) { + auto span = + internal::MakeSpan("gkebackup_v1::BackupForGKEConnection::CreateBackup"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->CreateBackup(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +BackupForGKETracingConnection::CreateBackup( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = + internal::MakeSpan("gkebackup_v1::BackupForGKEConnection::CreateBackup"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->CreateBackup(ExperimentalTag{}, operation)); +} + StreamRange BackupForGKETracingConnection::ListBackups( google::cloud::gkebackup::v1::ListBackupsRequest request) { @@ -118,6 +205,27 @@ BackupForGKETracingConnection::UpdateBackup( return internal::EndSpan(std::move(span), child_->UpdateBackup(request)); } +StatusOr +BackupForGKETracingConnection::UpdateBackup( + ExperimentalTag, NoAwaitTag, + google::cloud::gkebackup::v1::UpdateBackupRequest const& request) { + auto span = + internal::MakeSpan("gkebackup_v1::BackupForGKEConnection::UpdateBackup"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->UpdateBackup(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +BackupForGKETracingConnection::UpdateBackup( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = + internal::MakeSpan("gkebackup_v1::BackupForGKEConnection::UpdateBackup"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->UpdateBackup(ExperimentalTag{}, operation)); +} + future> BackupForGKETracingConnection::DeleteBackup( google::cloud::gkebackup::v1::DeleteBackupRequest const& request) { @@ -127,6 +235,27 @@ BackupForGKETracingConnection::DeleteBackup( return internal::EndSpan(std::move(span), child_->DeleteBackup(request)); } +StatusOr +BackupForGKETracingConnection::DeleteBackup( + ExperimentalTag, NoAwaitTag, + google::cloud::gkebackup::v1::DeleteBackupRequest const& request) { + auto span = + internal::MakeSpan("gkebackup_v1::BackupForGKEConnection::DeleteBackup"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->DeleteBackup(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +BackupForGKETracingConnection::DeleteBackup( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = + internal::MakeSpan("gkebackup_v1::BackupForGKEConnection::DeleteBackup"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->DeleteBackup(ExperimentalTag{}, operation)); +} + StreamRange BackupForGKETracingConnection::ListVolumeBackups( google::cloud::gkebackup::v1::ListVolumeBackupsRequest request) { @@ -157,6 +286,28 @@ BackupForGKETracingConnection::CreateRestorePlan( return internal::EndSpan(std::move(span), child_->CreateRestorePlan(request)); } +StatusOr +BackupForGKETracingConnection::CreateRestorePlan( + ExperimentalTag, NoAwaitTag, + google::cloud::gkebackup::v1::CreateRestorePlanRequest const& request) { + auto span = internal::MakeSpan( + "gkebackup_v1::BackupForGKEConnection::CreateRestorePlan"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->CreateRestorePlan(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +BackupForGKETracingConnection::CreateRestorePlan( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "gkebackup_v1::BackupForGKEConnection::CreateRestorePlan"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->CreateRestorePlan(ExperimentalTag{}, operation)); +} + StreamRange BackupForGKETracingConnection::ListRestorePlans( google::cloud::gkebackup::v1::ListRestorePlansRequest request) { @@ -187,6 +338,28 @@ BackupForGKETracingConnection::UpdateRestorePlan( return internal::EndSpan(std::move(span), child_->UpdateRestorePlan(request)); } +StatusOr +BackupForGKETracingConnection::UpdateRestorePlan( + ExperimentalTag, NoAwaitTag, + google::cloud::gkebackup::v1::UpdateRestorePlanRequest const& request) { + auto span = internal::MakeSpan( + "gkebackup_v1::BackupForGKEConnection::UpdateRestorePlan"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->UpdateRestorePlan(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +BackupForGKETracingConnection::UpdateRestorePlan( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "gkebackup_v1::BackupForGKEConnection::UpdateRestorePlan"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->UpdateRestorePlan(ExperimentalTag{}, operation)); +} + future> BackupForGKETracingConnection::DeleteRestorePlan( google::cloud::gkebackup::v1::DeleteRestorePlanRequest const& request) { @@ -196,6 +369,28 @@ BackupForGKETracingConnection::DeleteRestorePlan( return internal::EndSpan(std::move(span), child_->DeleteRestorePlan(request)); } +StatusOr +BackupForGKETracingConnection::DeleteRestorePlan( + ExperimentalTag, NoAwaitTag, + google::cloud::gkebackup::v1::DeleteRestorePlanRequest const& request) { + auto span = internal::MakeSpan( + "gkebackup_v1::BackupForGKEConnection::DeleteRestorePlan"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->DeleteRestorePlan(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +BackupForGKETracingConnection::DeleteRestorePlan( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "gkebackup_v1::BackupForGKEConnection::DeleteRestorePlan"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->DeleteRestorePlan(ExperimentalTag{}, operation)); +} + future> BackupForGKETracingConnection::CreateRestore( google::cloud::gkebackup::v1::CreateRestoreRequest const& request) { @@ -205,6 +400,27 @@ BackupForGKETracingConnection::CreateRestore( return internal::EndSpan(std::move(span), child_->CreateRestore(request)); } +StatusOr +BackupForGKETracingConnection::CreateRestore( + ExperimentalTag, NoAwaitTag, + google::cloud::gkebackup::v1::CreateRestoreRequest const& request) { + auto span = + internal::MakeSpan("gkebackup_v1::BackupForGKEConnection::CreateRestore"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->CreateRestore(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +BackupForGKETracingConnection::CreateRestore( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = + internal::MakeSpan("gkebackup_v1::BackupForGKEConnection::CreateRestore"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->CreateRestore(ExperimentalTag{}, operation)); +} + StreamRange BackupForGKETracingConnection::ListRestores( google::cloud::gkebackup::v1::ListRestoresRequest request) { @@ -234,6 +450,27 @@ BackupForGKETracingConnection::UpdateRestore( return internal::EndSpan(std::move(span), child_->UpdateRestore(request)); } +StatusOr +BackupForGKETracingConnection::UpdateRestore( + ExperimentalTag, NoAwaitTag, + google::cloud::gkebackup::v1::UpdateRestoreRequest const& request) { + auto span = + internal::MakeSpan("gkebackup_v1::BackupForGKEConnection::UpdateRestore"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->UpdateRestore(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +BackupForGKETracingConnection::UpdateRestore( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = + internal::MakeSpan("gkebackup_v1::BackupForGKEConnection::UpdateRestore"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->UpdateRestore(ExperimentalTag{}, operation)); +} + future> BackupForGKETracingConnection::DeleteRestore( google::cloud::gkebackup::v1::DeleteRestoreRequest const& request) { @@ -243,6 +480,27 @@ BackupForGKETracingConnection::DeleteRestore( return internal::EndSpan(std::move(span), child_->DeleteRestore(request)); } +StatusOr +BackupForGKETracingConnection::DeleteRestore( + ExperimentalTag, NoAwaitTag, + google::cloud::gkebackup::v1::DeleteRestoreRequest const& request) { + auto span = + internal::MakeSpan("gkebackup_v1::BackupForGKEConnection::DeleteRestore"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->DeleteRestore(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +BackupForGKETracingConnection::DeleteRestore( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = + internal::MakeSpan("gkebackup_v1::BackupForGKEConnection::DeleteRestore"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->DeleteRestore(ExperimentalTag{}, operation)); +} + StreamRange BackupForGKETracingConnection::ListVolumeRestores( google::cloud::gkebackup::v1::ListVolumeRestoresRequest request) { diff --git a/google/cloud/gkebackup/v1/internal/backup_for_gke_tracing_connection.h b/google/cloud/gkebackup/v1/internal/backup_for_gke_tracing_connection.h index 4e4886a4d50b2..8974618de4194 100644 --- a/google/cloud/gkebackup/v1/internal/backup_for_gke_tracing_connection.h +++ b/google/cloud/gkebackup/v1/internal/backup_for_gke_tracing_connection.h @@ -44,6 +44,15 @@ class BackupForGKETracingConnection google::cloud::gkebackup::v1::CreateBackupPlanRequest const& request) override; + StatusOr CreateBackupPlan( + ExperimentalTag, NoAwaitTag, + google::cloud::gkebackup::v1::CreateBackupPlanRequest const& request) + override; + + future> CreateBackupPlan( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListBackupPlans( google::cloud::gkebackup::v1::ListBackupPlansRequest request) override; @@ -55,14 +64,41 @@ class BackupForGKETracingConnection google::cloud::gkebackup::v1::UpdateBackupPlanRequest const& request) override; + StatusOr UpdateBackupPlan( + ExperimentalTag, NoAwaitTag, + google::cloud::gkebackup::v1::UpdateBackupPlanRequest const& request) + override; + + future> UpdateBackupPlan( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteBackupPlan(google::cloud::gkebackup::v1::DeleteBackupPlanRequest const& request) override; + StatusOr DeleteBackupPlan( + ExperimentalTag, NoAwaitTag, + google::cloud::gkebackup::v1::DeleteBackupPlanRequest const& request) + override; + + future> + DeleteBackupPlan(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> CreateBackup( google::cloud::gkebackup::v1::CreateBackupRequest const& request) override; + StatusOr CreateBackup( + ExperimentalTag, NoAwaitTag, + google::cloud::gkebackup::v1::CreateBackupRequest const& request) + override; + + future> CreateBackup( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListBackups( google::cloud::gkebackup::v1::ListBackupsRequest request) override; @@ -73,10 +109,28 @@ class BackupForGKETracingConnection google::cloud::gkebackup::v1::UpdateBackupRequest const& request) override; + StatusOr UpdateBackup( + ExperimentalTag, NoAwaitTag, + google::cloud::gkebackup::v1::UpdateBackupRequest const& request) + override; + + future> UpdateBackup( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteBackup(google::cloud::gkebackup::v1::DeleteBackupRequest const& request) override; + StatusOr DeleteBackup( + ExperimentalTag, NoAwaitTag, + google::cloud::gkebackup::v1::DeleteBackupRequest const& request) + override; + + future> + DeleteBackup(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListVolumeBackups( google::cloud::gkebackup::v1::ListVolumeBackupsRequest request) override; @@ -88,6 +142,15 @@ class BackupForGKETracingConnection google::cloud::gkebackup::v1::CreateRestorePlanRequest const& request) override; + StatusOr CreateRestorePlan( + ExperimentalTag, NoAwaitTag, + google::cloud::gkebackup::v1::CreateRestorePlanRequest const& request) + override; + + future> CreateRestorePlan( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListRestorePlans( google::cloud::gkebackup::v1::ListRestorePlansRequest request) override; @@ -99,15 +162,42 @@ class BackupForGKETracingConnection google::cloud::gkebackup::v1::UpdateRestorePlanRequest const& request) override; + StatusOr UpdateRestorePlan( + ExperimentalTag, NoAwaitTag, + google::cloud::gkebackup::v1::UpdateRestorePlanRequest const& request) + override; + + future> UpdateRestorePlan( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteRestorePlan( google::cloud::gkebackup::v1::DeleteRestorePlanRequest const& request) override; + StatusOr DeleteRestorePlan( + ExperimentalTag, NoAwaitTag, + google::cloud::gkebackup::v1::DeleteRestorePlanRequest const& request) + override; + + future> + DeleteRestorePlan(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> CreateRestore( google::cloud::gkebackup::v1::CreateRestoreRequest const& request) override; + StatusOr CreateRestore( + ExperimentalTag, NoAwaitTag, + google::cloud::gkebackup::v1::CreateRestoreRequest const& request) + override; + + future> CreateRestore( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListRestores( google::cloud::gkebackup::v1::ListRestoresRequest request) override; @@ -118,10 +208,28 @@ class BackupForGKETracingConnection google::cloud::gkebackup::v1::UpdateRestoreRequest const& request) override; + StatusOr UpdateRestore( + ExperimentalTag, NoAwaitTag, + google::cloud::gkebackup::v1::UpdateRestoreRequest const& request) + override; + + future> UpdateRestore( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteRestore(google::cloud::gkebackup::v1::DeleteRestoreRequest const& request) override; + StatusOr DeleteRestore( + ExperimentalTag, NoAwaitTag, + google::cloud::gkebackup::v1::DeleteRestoreRequest const& request) + override; + + future> + DeleteRestore(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListVolumeRestores( google::cloud::gkebackup::v1::ListVolumeRestoresRequest request) override; diff --git a/google/cloud/gkebackup/v1/mocks/mock_backup_for_gke_connection.h b/google/cloud/gkebackup/v1/mocks/mock_backup_for_gke_connection.h index fb26896da5263..f02ced58b65e4 100644 --- a/google/cloud/gkebackup/v1/mocks/mock_backup_for_gke_connection.h +++ b/google/cloud/gkebackup/v1/mocks/mock_backup_for_gke_connection.h @@ -52,6 +52,18 @@ class MockBackupForGKEConnection : public gkebackup_v1::BackupForGKEConnection { (google::cloud::gkebackup::v1::CreateBackupPlanRequest const& request), (override)); + MOCK_METHOD( + StatusOr, CreateBackupPlan, + (ExperimentalTag, NoAwaitTag, + google::cloud::gkebackup::v1::CreateBackupPlanRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateBackupPlan, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD((StreamRange), ListBackupPlans, (google::cloud::gkebackup::v1::ListBackupPlansRequest request), @@ -68,17 +80,53 @@ class MockBackupForGKEConnection : public gkebackup_v1::BackupForGKEConnection { (google::cloud::gkebackup::v1::UpdateBackupPlanRequest const& request), (override)); + MOCK_METHOD( + StatusOr, UpdateBackupPlan, + (ExperimentalTag, NoAwaitTag, + google::cloud::gkebackup::v1::UpdateBackupPlanRequest const& request), + (override)); + + MOCK_METHOD(future>, + UpdateBackupPlan, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteBackupPlan, (google::cloud::gkebackup::v1::DeleteBackupPlanRequest const& request), (override)); + MOCK_METHOD( + StatusOr, DeleteBackupPlan, + (ExperimentalTag, NoAwaitTag, + google::cloud::gkebackup::v1::DeleteBackupPlanRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteBackupPlan, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, CreateBackup, (google::cloud::gkebackup::v1::CreateBackupRequest const& request), (override)); + MOCK_METHOD( + StatusOr, CreateBackup, + (ExperimentalTag, NoAwaitTag, + google::cloud::gkebackup::v1::CreateBackupRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateBackup, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD((StreamRange), ListBackups, (google::cloud::gkebackup::v1::ListBackupsRequest request), (override)); @@ -92,12 +140,36 @@ class MockBackupForGKEConnection : public gkebackup_v1::BackupForGKEConnection { (google::cloud::gkebackup::v1::UpdateBackupRequest const& request), (override)); + MOCK_METHOD( + StatusOr, UpdateBackup, + (ExperimentalTag, NoAwaitTag, + google::cloud::gkebackup::v1::UpdateBackupRequest const& request), + (override)); + + MOCK_METHOD(future>, + UpdateBackup, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteBackup, (google::cloud::gkebackup::v1::DeleteBackupRequest const& request), (override)); + MOCK_METHOD( + StatusOr, DeleteBackup, + (ExperimentalTag, NoAwaitTag, + google::cloud::gkebackup::v1::DeleteBackupRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteBackup, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD((StreamRange), ListVolumeBackups, (google::cloud::gkebackup::v1::ListVolumeBackupsRequest request), @@ -114,6 +186,18 @@ class MockBackupForGKEConnection : public gkebackup_v1::BackupForGKEConnection { (google::cloud::gkebackup::v1::CreateRestorePlanRequest const& request), (override)); + MOCK_METHOD( + StatusOr, CreateRestorePlan, + (ExperimentalTag, NoAwaitTag, + google::cloud::gkebackup::v1::CreateRestorePlanRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateRestorePlan, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD((StreamRange), ListRestorePlans, (google::cloud::gkebackup::v1::ListRestorePlansRequest request), @@ -130,17 +214,53 @@ class MockBackupForGKEConnection : public gkebackup_v1::BackupForGKEConnection { (google::cloud::gkebackup::v1::UpdateRestorePlanRequest const& request), (override)); + MOCK_METHOD( + StatusOr, UpdateRestorePlan, + (ExperimentalTag, NoAwaitTag, + google::cloud::gkebackup::v1::UpdateRestorePlanRequest const& request), + (override)); + + MOCK_METHOD(future>, + UpdateRestorePlan, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteRestorePlan, (google::cloud::gkebackup::v1::DeleteRestorePlanRequest const& request), (override)); + MOCK_METHOD( + StatusOr, DeleteRestorePlan, + (ExperimentalTag, NoAwaitTag, + google::cloud::gkebackup::v1::DeleteRestorePlanRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteRestorePlan, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, CreateRestore, (google::cloud::gkebackup::v1::CreateRestoreRequest const& request), (override)); + MOCK_METHOD( + StatusOr, CreateRestore, + (ExperimentalTag, NoAwaitTag, + google::cloud::gkebackup::v1::CreateRestoreRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateRestore, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD((StreamRange), ListRestores, (google::cloud::gkebackup::v1::ListRestoresRequest request), @@ -155,12 +275,36 @@ class MockBackupForGKEConnection : public gkebackup_v1::BackupForGKEConnection { (google::cloud::gkebackup::v1::UpdateRestoreRequest const& request), (override)); + MOCK_METHOD( + StatusOr, UpdateRestore, + (ExperimentalTag, NoAwaitTag, + google::cloud::gkebackup::v1::UpdateRestoreRequest const& request), + (override)); + + MOCK_METHOD(future>, + UpdateRestore, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteRestore, (google::cloud::gkebackup::v1::DeleteRestoreRequest const& request), (override)); + MOCK_METHOD( + StatusOr, DeleteRestore, + (ExperimentalTag, NoAwaitTag, + google::cloud::gkebackup::v1::DeleteRestoreRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteRestore, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD((StreamRange), ListVolumeRestores, (google::cloud::gkebackup::v1::ListVolumeRestoresRequest request), diff --git a/google/cloud/gkehub/v1/gke_hub_connection.cc b/google/cloud/gkehub/v1/gke_hub_connection.cc index d6552ffffaab5..222cb06822918 100644 --- a/google/cloud/gkehub/v1/gke_hub_connection.cc +++ b/google/cloud/gkehub/v1/gke_hub_connection.cc @@ -71,6 +71,21 @@ GkeHubConnection::CreateMembership( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr GkeHubConnection::CreateMembership( + ExperimentalTag, NoAwaitTag, + google::cloud::gkehub::v1::CreateMembershipRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +GkeHubConnection::CreateMembership(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> GkeHubConnection::CreateFeature( google::cloud::gkehub::v1::CreateFeatureRequest const&) { @@ -79,6 +94,21 @@ GkeHubConnection::CreateFeature( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr GkeHubConnection::CreateFeature( + ExperimentalTag, NoAwaitTag, + google::cloud::gkehub::v1::CreateFeatureRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +GkeHubConnection::CreateFeature(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> GkeHubConnection::DeleteMembership( google::cloud::gkehub::v1::DeleteMembershipRequest const&) { @@ -87,6 +117,21 @@ GkeHubConnection::DeleteMembership( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr GkeHubConnection::DeleteMembership( + ExperimentalTag, NoAwaitTag, + google::cloud::gkehub::v1::DeleteMembershipRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +GkeHubConnection::DeleteMembership(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> GkeHubConnection::DeleteFeature( google::cloud::gkehub::v1::DeleteFeatureRequest const&) { @@ -95,6 +140,21 @@ GkeHubConnection::DeleteFeature( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr GkeHubConnection::DeleteFeature( + ExperimentalTag, NoAwaitTag, + google::cloud::gkehub::v1::DeleteFeatureRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +GkeHubConnection::DeleteFeature(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> GkeHubConnection::UpdateMembership( google::cloud::gkehub::v1::UpdateMembershipRequest const&) { @@ -103,6 +163,21 @@ GkeHubConnection::UpdateMembership( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr GkeHubConnection::UpdateMembership( + ExperimentalTag, NoAwaitTag, + google::cloud::gkehub::v1::UpdateMembershipRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +GkeHubConnection::UpdateMembership(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> GkeHubConnection::UpdateFeature( google::cloud::gkehub::v1::UpdateFeatureRequest const&) { @@ -111,6 +186,21 @@ GkeHubConnection::UpdateFeature( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr GkeHubConnection::UpdateFeature( + ExperimentalTag, NoAwaitTag, + google::cloud::gkehub::v1::UpdateFeatureRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +GkeHubConnection::UpdateFeature(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr GkeHubConnection::GenerateConnectManifest( google::cloud::gkehub::v1::GenerateConnectManifestRequest const&) { diff --git a/google/cloud/gkehub/v1/gke_hub_connection.h b/google/cloud/gkehub/v1/gke_hub_connection.h index 29738885ca544..1bd8f27cc9402 100644 --- a/google/cloud/gkehub/v1/gke_hub_connection.h +++ b/google/cloud/gkehub/v1/gke_hub_connection.h @@ -22,8 +22,10 @@ #include "google/cloud/gkehub/v1/gke_hub_connection_idempotency_policy.h" #include "google/cloud/gkehub/v1/internal/gke_hub_retry_traits.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/internal/retry_policy_impl.h" +#include "google/cloud/no_await_tag.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" #include "google/cloud/status_or.h" @@ -197,23 +199,69 @@ class GkeHubConnection { CreateMembership( google::cloud::gkehub::v1::CreateMembershipRequest const& request); + virtual StatusOr CreateMembership( + ExperimentalTag, NoAwaitTag, + google::cloud::gkehub::v1::CreateMembershipRequest const& request); + + virtual future> + CreateMembership(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> CreateFeature( google::cloud::gkehub::v1::CreateFeatureRequest const& request); + virtual StatusOr CreateFeature( + ExperimentalTag, NoAwaitTag, + google::cloud::gkehub::v1::CreateFeatureRequest const& request); + + virtual future> CreateFeature( + ExperimentalTag, google::longrunning::Operation const& operation); + virtual future> DeleteMembership( google::cloud::gkehub::v1::DeleteMembershipRequest const& request); + virtual StatusOr DeleteMembership( + ExperimentalTag, NoAwaitTag, + google::cloud::gkehub::v1::DeleteMembershipRequest const& request); + + virtual future> + DeleteMembership(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> DeleteFeature(google::cloud::gkehub::v1::DeleteFeatureRequest const& request); + virtual StatusOr DeleteFeature( + ExperimentalTag, NoAwaitTag, + google::cloud::gkehub::v1::DeleteFeatureRequest const& request); + + virtual future> + DeleteFeature(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> UpdateMembership( google::cloud::gkehub::v1::UpdateMembershipRequest const& request); + virtual StatusOr UpdateMembership( + ExperimentalTag, NoAwaitTag, + google::cloud::gkehub::v1::UpdateMembershipRequest const& request); + + virtual future> + UpdateMembership(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> UpdateFeature( google::cloud::gkehub::v1::UpdateFeatureRequest const& request); + virtual StatusOr UpdateFeature( + ExperimentalTag, NoAwaitTag, + google::cloud::gkehub::v1::UpdateFeatureRequest const& request); + + virtual future> UpdateFeature( + ExperimentalTag, google::longrunning::Operation const& operation); + virtual StatusOr GenerateConnectManifest( google::cloud::gkehub::v1::GenerateConnectManifestRequest const& request); diff --git a/google/cloud/gkehub/v1/internal/gke_hub_connection_impl.cc b/google/cloud/gkehub/v1/internal/gke_hub_connection_impl.cc index b5d7837fbf70a..5aa3c2d60cd0f 100644 --- a/google/cloud/gkehub/v1/internal/gke_hub_connection_impl.cc +++ b/google/cloud/gkehub/v1/internal/gke_hub_connection_impl.cc @@ -196,6 +196,57 @@ GkeHubConnectionImpl::CreateMembership( polling_policy(*current), __func__); } +StatusOr GkeHubConnectionImpl::CreateMembership( + ExperimentalTag, NoAwaitTag, + google::cloud::gkehub::v1::CreateMembershipRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateMembership(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::gkehub::v1::CreateMembershipRequest const& request) { + return stub_->CreateMembership(context, options, request); + }, + *current, request, __func__); +} + +future> +GkeHubConnectionImpl::CreateMembership( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to CreateMembership", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::gkehub::v1::Membership>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::gkehub::v1::Membership>, + polling_policy(*current), __func__); +} + future> GkeHubConnectionImpl::CreateFeature( google::cloud::gkehub::v1::CreateFeatureRequest const& request) { @@ -235,6 +286,56 @@ GkeHubConnectionImpl::CreateFeature( polling_policy(*current), __func__); } +StatusOr GkeHubConnectionImpl::CreateFeature( + ExperimentalTag, NoAwaitTag, + google::cloud::gkehub::v1::CreateFeatureRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateFeature(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::gkehub::v1::CreateFeatureRequest const& request) { + return stub_->CreateFeature(context, options, request); + }, + *current, request, __func__); +} + +future> +GkeHubConnectionImpl::CreateFeature( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to CreateFeature", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::gkehub::v1::Feature>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::gkehub::v1::Feature>, + polling_policy(*current), __func__); +} + future> GkeHubConnectionImpl::DeleteMembership( google::cloud::gkehub::v1::DeleteMembershipRequest const& request) { @@ -274,6 +375,58 @@ GkeHubConnectionImpl::DeleteMembership( polling_policy(*current), __func__); } +StatusOr GkeHubConnectionImpl::DeleteMembership( + ExperimentalTag, NoAwaitTag, + google::cloud::gkehub::v1::DeleteMembershipRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteMembership(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::gkehub::v1::DeleteMembershipRequest const& request) { + return stub_->DeleteMembership(context, options, request); + }, + *current, request, __func__); +} + +future> +GkeHubConnectionImpl::DeleteMembership( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteMembership", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::gkehub::v1::OperationMetadata>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::cloud::gkehub::v1::OperationMetadata>, + polling_policy(*current), __func__); +} + future> GkeHubConnectionImpl::DeleteFeature( google::cloud::gkehub::v1::DeleteFeatureRequest const& request) { @@ -313,6 +466,57 @@ GkeHubConnectionImpl::DeleteFeature( polling_policy(*current), __func__); } +StatusOr GkeHubConnectionImpl::DeleteFeature( + ExperimentalTag, NoAwaitTag, + google::cloud::gkehub::v1::DeleteFeatureRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteFeature(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::gkehub::v1::DeleteFeatureRequest const& request) { + return stub_->DeleteFeature(context, options, request); + }, + *current, request, __func__); +} + +future> +GkeHubConnectionImpl::DeleteFeature( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteFeature", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::gkehub::v1::OperationMetadata>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::cloud::gkehub::v1::OperationMetadata>, + polling_policy(*current), __func__); +} + future> GkeHubConnectionImpl::UpdateMembership( google::cloud::gkehub::v1::UpdateMembershipRequest const& request) { @@ -352,6 +556,57 @@ GkeHubConnectionImpl::UpdateMembership( polling_policy(*current), __func__); } +StatusOr GkeHubConnectionImpl::UpdateMembership( + ExperimentalTag, NoAwaitTag, + google::cloud::gkehub::v1::UpdateMembershipRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UpdateMembership(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::gkehub::v1::UpdateMembershipRequest const& request) { + return stub_->UpdateMembership(context, options, request); + }, + *current, request, __func__); +} + +future> +GkeHubConnectionImpl::UpdateMembership( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to UpdateMembership", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::gkehub::v1::Membership>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::gkehub::v1::Membership>, + polling_policy(*current), __func__); +} + future> GkeHubConnectionImpl::UpdateFeature( google::cloud::gkehub::v1::UpdateFeatureRequest const& request) { @@ -391,6 +646,56 @@ GkeHubConnectionImpl::UpdateFeature( polling_policy(*current), __func__); } +StatusOr GkeHubConnectionImpl::UpdateFeature( + ExperimentalTag, NoAwaitTag, + google::cloud::gkehub::v1::UpdateFeatureRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UpdateFeature(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::gkehub::v1::UpdateFeatureRequest const& request) { + return stub_->UpdateFeature(context, options, request); + }, + *current, request, __func__); +} + +future> +GkeHubConnectionImpl::UpdateFeature( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to UpdateFeature", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::gkehub::v1::Feature>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::gkehub::v1::Feature>, + polling_policy(*current), __func__); +} + StatusOr GkeHubConnectionImpl::GenerateConnectManifest( google::cloud::gkehub::v1::GenerateConnectManifestRequest const& request) { diff --git a/google/cloud/gkehub/v1/internal/gke_hub_connection_impl.h b/google/cloud/gkehub/v1/internal/gke_hub_connection_impl.h index 36f69cbce27f6..c75c016cde0a4 100644 --- a/google/cloud/gkehub/v1/internal/gke_hub_connection_impl.h +++ b/google/cloud/gkehub/v1/internal/gke_hub_connection_impl.h @@ -66,23 +66,74 @@ class GkeHubConnectionImpl : public gkehub_v1::GkeHubConnection { google::cloud::gkehub::v1::CreateMembershipRequest const& request) override; + StatusOr CreateMembership( + ExperimentalTag, NoAwaitTag, + google::cloud::gkehub::v1::CreateMembershipRequest const& request) + override; + + future> CreateMembership( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> CreateFeature( google::cloud::gkehub::v1::CreateFeatureRequest const& request) override; + StatusOr CreateFeature( + ExperimentalTag, NoAwaitTag, + google::cloud::gkehub::v1::CreateFeatureRequest const& request) override; + + future> CreateFeature( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteMembership(google::cloud::gkehub::v1::DeleteMembershipRequest const& request) override; + StatusOr DeleteMembership( + ExperimentalTag, NoAwaitTag, + google::cloud::gkehub::v1::DeleteMembershipRequest const& request) + override; + + future> + DeleteMembership(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteFeature( google::cloud::gkehub::v1::DeleteFeatureRequest const& request) override; + StatusOr DeleteFeature( + ExperimentalTag, NoAwaitTag, + google::cloud::gkehub::v1::DeleteFeatureRequest const& request) override; + + future> DeleteFeature( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateMembership( google::cloud::gkehub::v1::UpdateMembershipRequest const& request) override; + StatusOr UpdateMembership( + ExperimentalTag, NoAwaitTag, + google::cloud::gkehub::v1::UpdateMembershipRequest const& request) + override; + + future> UpdateMembership( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateFeature( google::cloud::gkehub::v1::UpdateFeatureRequest const& request) override; + StatusOr UpdateFeature( + ExperimentalTag, NoAwaitTag, + google::cloud::gkehub::v1::UpdateFeatureRequest const& request) override; + + future> UpdateFeature( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GenerateConnectManifest( google::cloud::gkehub::v1::GenerateConnectManifestRequest const& request) diff --git a/google/cloud/gkehub/v1/internal/gke_hub_tracing_connection.cc b/google/cloud/gkehub/v1/internal/gke_hub_tracing_connection.cc index 28c32e7936ea6..7f839e82769fb 100644 --- a/google/cloud/gkehub/v1/internal/gke_hub_tracing_connection.cc +++ b/google/cloud/gkehub/v1/internal/gke_hub_tracing_connection.cc @@ -79,6 +79,28 @@ GkeHubTracingConnection::CreateMembership( return internal::EndSpan(std::move(span), child_->CreateMembership(request)); } +StatusOr +GkeHubTracingConnection::CreateMembership( + ExperimentalTag, NoAwaitTag, + google::cloud::gkehub::v1::CreateMembershipRequest const& request) { + auto span = + internal::MakeSpan("gkehub_v1::GkeHubConnection::CreateMembership"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->CreateMembership(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +GkeHubTracingConnection::CreateMembership( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = + internal::MakeSpan("gkehub_v1::GkeHubConnection::CreateMembership"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->CreateMembership(ExperimentalTag{}, operation)); +} + future> GkeHubTracingConnection::CreateFeature( google::cloud::gkehub::v1::CreateFeatureRequest const& request) { @@ -87,6 +109,24 @@ GkeHubTracingConnection::CreateFeature( return internal::EndSpan(std::move(span), child_->CreateFeature(request)); } +StatusOr GkeHubTracingConnection::CreateFeature( + ExperimentalTag, NoAwaitTag, + google::cloud::gkehub::v1::CreateFeatureRequest const& request) { + auto span = internal::MakeSpan("gkehub_v1::GkeHubConnection::CreateFeature"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->CreateFeature(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +GkeHubTracingConnection::CreateFeature( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan("gkehub_v1::GkeHubConnection::CreateFeature"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->CreateFeature(ExperimentalTag{}, operation)); +} + future> GkeHubTracingConnection::DeleteMembership( google::cloud::gkehub::v1::DeleteMembershipRequest const& request) { @@ -96,6 +136,28 @@ GkeHubTracingConnection::DeleteMembership( return internal::EndSpan(std::move(span), child_->DeleteMembership(request)); } +StatusOr +GkeHubTracingConnection::DeleteMembership( + ExperimentalTag, NoAwaitTag, + google::cloud::gkehub::v1::DeleteMembershipRequest const& request) { + auto span = + internal::MakeSpan("gkehub_v1::GkeHubConnection::DeleteMembership"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->DeleteMembership(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +GkeHubTracingConnection::DeleteMembership( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = + internal::MakeSpan("gkehub_v1::GkeHubConnection::DeleteMembership"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->DeleteMembership(ExperimentalTag{}, operation)); +} + future> GkeHubTracingConnection::DeleteFeature( google::cloud::gkehub::v1::DeleteFeatureRequest const& request) { @@ -104,6 +166,24 @@ GkeHubTracingConnection::DeleteFeature( return internal::EndSpan(std::move(span), child_->DeleteFeature(request)); } +StatusOr GkeHubTracingConnection::DeleteFeature( + ExperimentalTag, NoAwaitTag, + google::cloud::gkehub::v1::DeleteFeatureRequest const& request) { + auto span = internal::MakeSpan("gkehub_v1::GkeHubConnection::DeleteFeature"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->DeleteFeature(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +GkeHubTracingConnection::DeleteFeature( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan("gkehub_v1::GkeHubConnection::DeleteFeature"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->DeleteFeature(ExperimentalTag{}, operation)); +} + future> GkeHubTracingConnection::UpdateMembership( google::cloud::gkehub::v1::UpdateMembershipRequest const& request) { @@ -113,6 +193,28 @@ GkeHubTracingConnection::UpdateMembership( return internal::EndSpan(std::move(span), child_->UpdateMembership(request)); } +StatusOr +GkeHubTracingConnection::UpdateMembership( + ExperimentalTag, NoAwaitTag, + google::cloud::gkehub::v1::UpdateMembershipRequest const& request) { + auto span = + internal::MakeSpan("gkehub_v1::GkeHubConnection::UpdateMembership"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->UpdateMembership(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +GkeHubTracingConnection::UpdateMembership( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = + internal::MakeSpan("gkehub_v1::GkeHubConnection::UpdateMembership"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->UpdateMembership(ExperimentalTag{}, operation)); +} + future> GkeHubTracingConnection::UpdateFeature( google::cloud::gkehub::v1::UpdateFeatureRequest const& request) { @@ -121,6 +223,24 @@ GkeHubTracingConnection::UpdateFeature( return internal::EndSpan(std::move(span), child_->UpdateFeature(request)); } +StatusOr GkeHubTracingConnection::UpdateFeature( + ExperimentalTag, NoAwaitTag, + google::cloud::gkehub::v1::UpdateFeatureRequest const& request) { + auto span = internal::MakeSpan("gkehub_v1::GkeHubConnection::UpdateFeature"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->UpdateFeature(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +GkeHubTracingConnection::UpdateFeature( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan("gkehub_v1::GkeHubConnection::UpdateFeature"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->UpdateFeature(ExperimentalTag{}, operation)); +} + StatusOr GkeHubTracingConnection::GenerateConnectManifest( google::cloud::gkehub::v1::GenerateConnectManifestRequest const& request) { diff --git a/google/cloud/gkehub/v1/internal/gke_hub_tracing_connection.h b/google/cloud/gkehub/v1/internal/gke_hub_tracing_connection.h index 44024ba530a0b..8a7015d71aebd 100644 --- a/google/cloud/gkehub/v1/internal/gke_hub_tracing_connection.h +++ b/google/cloud/gkehub/v1/internal/gke_hub_tracing_connection.h @@ -55,23 +55,74 @@ class GkeHubTracingConnection : public gkehub_v1::GkeHubConnection { google::cloud::gkehub::v1::CreateMembershipRequest const& request) override; + StatusOr CreateMembership( + ExperimentalTag, NoAwaitTag, + google::cloud::gkehub::v1::CreateMembershipRequest const& request) + override; + + future> CreateMembership( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> CreateFeature( google::cloud::gkehub::v1::CreateFeatureRequest const& request) override; + StatusOr CreateFeature( + ExperimentalTag, NoAwaitTag, + google::cloud::gkehub::v1::CreateFeatureRequest const& request) override; + + future> CreateFeature( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteMembership(google::cloud::gkehub::v1::DeleteMembershipRequest const& request) override; + StatusOr DeleteMembership( + ExperimentalTag, NoAwaitTag, + google::cloud::gkehub::v1::DeleteMembershipRequest const& request) + override; + + future> + DeleteMembership(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteFeature( google::cloud::gkehub::v1::DeleteFeatureRequest const& request) override; + StatusOr DeleteFeature( + ExperimentalTag, NoAwaitTag, + google::cloud::gkehub::v1::DeleteFeatureRequest const& request) override; + + future> DeleteFeature( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateMembership( google::cloud::gkehub::v1::UpdateMembershipRequest const& request) override; + StatusOr UpdateMembership( + ExperimentalTag, NoAwaitTag, + google::cloud::gkehub::v1::UpdateMembershipRequest const& request) + override; + + future> UpdateMembership( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateFeature( google::cloud::gkehub::v1::UpdateFeatureRequest const& request) override; + StatusOr UpdateFeature( + ExperimentalTag, NoAwaitTag, + google::cloud::gkehub::v1::UpdateFeatureRequest const& request) override; + + future> UpdateFeature( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GenerateConnectManifest( google::cloud::gkehub::v1::GenerateConnectManifestRequest const& request) diff --git a/google/cloud/gkehub/v1/mocks/mock_gke_hub_connection.h b/google/cloud/gkehub/v1/mocks/mock_gke_hub_connection.h index 5445965d4c2c1..7f2877e3ed9c6 100644 --- a/google/cloud/gkehub/v1/mocks/mock_gke_hub_connection.h +++ b/google/cloud/gkehub/v1/mocks/mock_gke_hub_connection.h @@ -68,32 +68,101 @@ class MockGkeHubConnection : public gkehub_v1::GkeHubConnection { (google::cloud::gkehub::v1::CreateMembershipRequest const& request), (override)); + MOCK_METHOD( + StatusOr, CreateMembership, + (ExperimentalTag, NoAwaitTag, + google::cloud::gkehub::v1::CreateMembershipRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateMembership, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, CreateFeature, (google::cloud::gkehub::v1::CreateFeatureRequest const& request), (override)); + MOCK_METHOD(StatusOr, CreateFeature, + (ExperimentalTag, NoAwaitTag, + google::cloud::gkehub::v1::CreateFeatureRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateFeature, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteMembership, (google::cloud::gkehub::v1::DeleteMembershipRequest const& request), (override)); + MOCK_METHOD( + StatusOr, DeleteMembership, + (ExperimentalTag, NoAwaitTag, + google::cloud::gkehub::v1::DeleteMembershipRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteMembership, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, DeleteFeature, (google::cloud::gkehub::v1::DeleteFeatureRequest const& request), (override)); + MOCK_METHOD(StatusOr, DeleteFeature, + (ExperimentalTag, NoAwaitTag, + google::cloud::gkehub::v1::DeleteFeatureRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteFeature, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, UpdateMembership, (google::cloud::gkehub::v1::UpdateMembershipRequest const& request), (override)); + MOCK_METHOD( + StatusOr, UpdateMembership, + (ExperimentalTag, NoAwaitTag, + google::cloud::gkehub::v1::UpdateMembershipRequest const& request), + (override)); + + MOCK_METHOD(future>, + UpdateMembership, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, UpdateFeature, (google::cloud::gkehub::v1::UpdateFeatureRequest const& request), (override)); + MOCK_METHOD(StatusOr, UpdateFeature, + (ExperimentalTag, NoAwaitTag, + google::cloud::gkehub::v1::UpdateFeatureRequest const& request), + (override)); + + MOCK_METHOD(future>, + UpdateFeature, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr, GenerateConnectManifest, diff --git a/google/cloud/gkemulticloud/v1/attached_clusters_connection.cc b/google/cloud/gkemulticloud/v1/attached_clusters_connection.cc index 2d4a057b5898b..9057eb0572fd9 100644 --- a/google/cloud/gkemulticloud/v1/attached_clusters_connection.cc +++ b/google/cloud/gkemulticloud/v1/attached_clusters_connection.cc @@ -46,6 +46,22 @@ AttachedClustersConnection::CreateAttachedCluster( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +AttachedClustersConnection::CreateAttachedCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::gkemulticloud::v1::CreateAttachedClusterRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +AttachedClustersConnection::CreateAttachedCluster( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> AttachedClustersConnection::UpdateAttachedCluster( google::cloud::gkemulticloud::v1::UpdateAttachedClusterRequest const&) { @@ -54,6 +70,22 @@ AttachedClustersConnection::UpdateAttachedCluster( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +AttachedClustersConnection::UpdateAttachedCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::gkemulticloud::v1::UpdateAttachedClusterRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +AttachedClustersConnection::UpdateAttachedCluster( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> AttachedClustersConnection::ImportAttachedCluster( google::cloud::gkemulticloud::v1::ImportAttachedClusterRequest const&) { @@ -62,6 +94,22 @@ AttachedClustersConnection::ImportAttachedCluster( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +AttachedClustersConnection::ImportAttachedCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::gkemulticloud::v1::ImportAttachedClusterRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +AttachedClustersConnection::ImportAttachedCluster( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr AttachedClustersConnection::GetAttachedCluster( google::cloud::gkemulticloud::v1::GetAttachedClusterRequest const&) { @@ -84,6 +132,22 @@ AttachedClustersConnection::DeleteAttachedCluster( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +AttachedClustersConnection::DeleteAttachedCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::gkemulticloud::v1::DeleteAttachedClusterRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +AttachedClustersConnection::DeleteAttachedCluster( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr AttachedClustersConnection::GetAttachedServerConfig( google::cloud::gkemulticloud::v1::GetAttachedServerConfigRequest const&) { diff --git a/google/cloud/gkemulticloud/v1/attached_clusters_connection.h b/google/cloud/gkemulticloud/v1/attached_clusters_connection.h index caf5cd64ca83f..ca6855c6fbd51 100644 --- a/google/cloud/gkemulticloud/v1/attached_clusters_connection.h +++ b/google/cloud/gkemulticloud/v1/attached_clusters_connection.h @@ -22,8 +22,10 @@ #include "google/cloud/gkemulticloud/v1/attached_clusters_connection_idempotency_policy.h" #include "google/cloud/gkemulticloud/v1/internal/attached_clusters_retry_traits.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/internal/retry_policy_impl.h" +#include "google/cloud/no_await_tag.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" #include "google/cloud/status_or.h" @@ -192,16 +194,43 @@ class AttachedClustersConnection { google::cloud::gkemulticloud::v1::CreateAttachedClusterRequest const& request); + virtual StatusOr CreateAttachedCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::gkemulticloud::v1::CreateAttachedClusterRequest const& + request); + + virtual future> + CreateAttachedCluster(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> UpdateAttachedCluster( google::cloud::gkemulticloud::v1::UpdateAttachedClusterRequest const& request); + virtual StatusOr UpdateAttachedCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::gkemulticloud::v1::UpdateAttachedClusterRequest const& + request); + + virtual future> + UpdateAttachedCluster(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> ImportAttachedCluster( google::cloud::gkemulticloud::v1::ImportAttachedClusterRequest const& request); + virtual StatusOr ImportAttachedCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::gkemulticloud::v1::ImportAttachedClusterRequest const& + request); + + virtual future> + ImportAttachedCluster(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StatusOr GetAttachedCluster( google::cloud::gkemulticloud::v1::GetAttachedClusterRequest const& @@ -216,6 +245,15 @@ class AttachedClustersConnection { google::cloud::gkemulticloud::v1::DeleteAttachedClusterRequest const& request); + virtual StatusOr DeleteAttachedCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::gkemulticloud::v1::DeleteAttachedClusterRequest const& + request); + + virtual future> + DeleteAttachedCluster(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StatusOr GetAttachedServerConfig( google::cloud::gkemulticloud::v1::GetAttachedServerConfigRequest const& diff --git a/google/cloud/gkemulticloud/v1/aws_clusters_connection.cc b/google/cloud/gkemulticloud/v1/aws_clusters_connection.cc index 3b2e8fc8b6a46..1859cdee3ff29 100644 --- a/google/cloud/gkemulticloud/v1/aws_clusters_connection.cc +++ b/google/cloud/gkemulticloud/v1/aws_clusters_connection.cc @@ -46,6 +46,22 @@ AwsClustersConnection::CreateAwsCluster( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +AwsClustersConnection::CreateAwsCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::gkemulticloud::v1::CreateAwsClusterRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +AwsClustersConnection::CreateAwsCluster(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> AwsClustersConnection::UpdateAwsCluster( google::cloud::gkemulticloud::v1::UpdateAwsClusterRequest const&) { @@ -54,6 +70,22 @@ AwsClustersConnection::UpdateAwsCluster( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +AwsClustersConnection::UpdateAwsCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::gkemulticloud::v1::UpdateAwsClusterRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +AwsClustersConnection::UpdateAwsCluster(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr AwsClustersConnection::GetAwsCluster( google::cloud::gkemulticloud::v1::GetAwsClusterRequest const&) { @@ -76,6 +108,22 @@ AwsClustersConnection::DeleteAwsCluster( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +AwsClustersConnection::DeleteAwsCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::gkemulticloud::v1::DeleteAwsClusterRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +AwsClustersConnection::DeleteAwsCluster(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr AwsClustersConnection::GenerateAwsClusterAgentToken( google::cloud::gkemulticloud::v1:: @@ -97,9 +145,41 @@ AwsClustersConnection::CreateAwsNodePool( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +AwsClustersConnection::CreateAwsNodePool( + ExperimentalTag, NoAwaitTag, + google::cloud::gkemulticloud::v1::CreateAwsNodePoolRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> +AwsClustersConnection::CreateAwsNodePool( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +AwsClustersConnection::UpdateAwsNodePool( + google::cloud::gkemulticloud::v1::UpdateAwsNodePoolRequest const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +StatusOr AwsClustersConnection::UpdateAwsNodePool( + ExperimentalTag, NoAwaitTag, google::cloud::gkemulticloud::v1::UpdateAwsNodePoolRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +AwsClustersConnection::UpdateAwsNodePool( + ExperimentalTag, google::longrunning::Operation const&) { return google::cloud::make_ready_future< StatusOr>( Status(StatusCode::kUnimplemented, "not implemented")); @@ -113,6 +193,22 @@ AwsClustersConnection::RollbackAwsNodePoolUpdate( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +AwsClustersConnection::RollbackAwsNodePoolUpdate( + ExperimentalTag, NoAwaitTag, + google::cloud::gkemulticloud::v1::RollbackAwsNodePoolUpdateRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +AwsClustersConnection::RollbackAwsNodePoolUpdate( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr AwsClustersConnection::GetAwsNodePool( google::cloud::gkemulticloud::v1::GetAwsNodePoolRequest const&) { @@ -135,6 +231,22 @@ AwsClustersConnection::DeleteAwsNodePool( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +AwsClustersConnection::DeleteAwsNodePool( + ExperimentalTag, NoAwaitTag, + google::cloud::gkemulticloud::v1::DeleteAwsNodePoolRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +AwsClustersConnection::DeleteAwsNodePool( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr AwsClustersConnection::GetAwsOpenIdConfig( google::cloud::gkemulticloud::v1::GetAwsOpenIdConfigRequest const&) { diff --git a/google/cloud/gkemulticloud/v1/aws_clusters_connection.h b/google/cloud/gkemulticloud/v1/aws_clusters_connection.h index bc253f177a72d..e70b5a80e097d 100644 --- a/google/cloud/gkemulticloud/v1/aws_clusters_connection.h +++ b/google/cloud/gkemulticloud/v1/aws_clusters_connection.h @@ -22,8 +22,10 @@ #include "google/cloud/gkemulticloud/v1/aws_clusters_connection_idempotency_policy.h" #include "google/cloud/gkemulticloud/v1/internal/aws_clusters_retry_traits.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/internal/retry_policy_impl.h" +#include "google/cloud/no_await_tag.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" #include "google/cloud/status_or.h" @@ -189,10 +191,26 @@ class AwsClustersConnection { CreateAwsCluster( google::cloud::gkemulticloud::v1::CreateAwsClusterRequest const& request); + virtual StatusOr CreateAwsCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::gkemulticloud::v1::CreateAwsClusterRequest const& request); + + virtual future> + CreateAwsCluster(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> UpdateAwsCluster( google::cloud::gkemulticloud::v1::UpdateAwsClusterRequest const& request); + virtual StatusOr UpdateAwsCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::gkemulticloud::v1::UpdateAwsClusterRequest const& request); + + virtual future> + UpdateAwsCluster(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StatusOr GetAwsCluster( google::cloud::gkemulticloud::v1::GetAwsClusterRequest const& request); @@ -204,6 +222,14 @@ class AwsClustersConnection { DeleteAwsCluster( google::cloud::gkemulticloud::v1::DeleteAwsClusterRequest const& request); + virtual StatusOr DeleteAwsCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::gkemulticloud::v1::DeleteAwsClusterRequest const& request); + + virtual future> + DeleteAwsCluster(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StatusOr< google::cloud::gkemulticloud::v1::GenerateAwsClusterAgentTokenResponse> GenerateAwsClusterAgentToken( @@ -221,16 +247,43 @@ class AwsClustersConnection { google::cloud::gkemulticloud::v1::CreateAwsNodePoolRequest const& request); + virtual StatusOr CreateAwsNodePool( + ExperimentalTag, NoAwaitTag, + google::cloud::gkemulticloud::v1::CreateAwsNodePoolRequest const& + request); + + virtual future> + CreateAwsNodePool(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> UpdateAwsNodePool( google::cloud::gkemulticloud::v1::UpdateAwsNodePoolRequest const& request); + virtual StatusOr UpdateAwsNodePool( + ExperimentalTag, NoAwaitTag, + google::cloud::gkemulticloud::v1::UpdateAwsNodePoolRequest const& + request); + + virtual future> + UpdateAwsNodePool(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> RollbackAwsNodePoolUpdate( google::cloud::gkemulticloud::v1::RollbackAwsNodePoolUpdateRequest const& request); + virtual StatusOr RollbackAwsNodePoolUpdate( + ExperimentalTag, NoAwaitTag, + google::cloud::gkemulticloud::v1::RollbackAwsNodePoolUpdateRequest const& + request); + + virtual future> + RollbackAwsNodePoolUpdate(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StatusOr GetAwsNodePool( google::cloud::gkemulticloud::v1::GetAwsNodePoolRequest const& request); @@ -244,6 +297,15 @@ class AwsClustersConnection { google::cloud::gkemulticloud::v1::DeleteAwsNodePoolRequest const& request); + virtual StatusOr DeleteAwsNodePool( + ExperimentalTag, NoAwaitTag, + google::cloud::gkemulticloud::v1::DeleteAwsNodePoolRequest const& + request); + + virtual future> + DeleteAwsNodePool(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StatusOr GetAwsOpenIdConfig( google::cloud::gkemulticloud::v1::GetAwsOpenIdConfigRequest const& diff --git a/google/cloud/gkemulticloud/v1/azure_clusters_connection.cc b/google/cloud/gkemulticloud/v1/azure_clusters_connection.cc index 3d1450675655f..a2ef295b21906 100644 --- a/google/cloud/gkemulticloud/v1/azure_clusters_connection.cc +++ b/google/cloud/gkemulticloud/v1/azure_clusters_connection.cc @@ -46,6 +46,22 @@ AzureClustersConnection::CreateAzureClient( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +AzureClustersConnection::CreateAzureClient( + ExperimentalTag, NoAwaitTag, + google::cloud::gkemulticloud::v1::CreateAzureClientRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +AzureClustersConnection::CreateAzureClient( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr AzureClustersConnection::GetAzureClient( google::cloud::gkemulticloud::v1::GetAzureClientRequest const&) { @@ -68,6 +84,22 @@ AzureClustersConnection::DeleteAzureClient( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +AzureClustersConnection::DeleteAzureClient( + ExperimentalTag, NoAwaitTag, + google::cloud::gkemulticloud::v1::DeleteAzureClientRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +AzureClustersConnection::DeleteAzureClient( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> AzureClustersConnection::CreateAzureCluster( google::cloud::gkemulticloud::v1::CreateAzureClusterRequest const&) { @@ -76,6 +108,22 @@ AzureClustersConnection::CreateAzureCluster( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +AzureClustersConnection::CreateAzureCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::gkemulticloud::v1::CreateAzureClusterRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +AzureClustersConnection::CreateAzureCluster( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> AzureClustersConnection::UpdateAzureCluster( google::cloud::gkemulticloud::v1::UpdateAzureClusterRequest const&) { @@ -84,6 +132,22 @@ AzureClustersConnection::UpdateAzureCluster( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +AzureClustersConnection::UpdateAzureCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::gkemulticloud::v1::UpdateAzureClusterRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +AzureClustersConnection::UpdateAzureCluster( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr AzureClustersConnection::GetAzureCluster( google::cloud::gkemulticloud::v1::GetAzureClusterRequest const&) { @@ -106,6 +170,22 @@ AzureClustersConnection::DeleteAzureCluster( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +AzureClustersConnection::DeleteAzureCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::gkemulticloud::v1::DeleteAzureClusterRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +AzureClustersConnection::DeleteAzureCluster( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr< google::cloud::gkemulticloud::v1::GenerateAzureClusterAgentTokenResponse> AzureClustersConnection::GenerateAzureClusterAgentToken( @@ -128,6 +208,22 @@ AzureClustersConnection::CreateAzureNodePool( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +AzureClustersConnection::CreateAzureNodePool( + ExperimentalTag, NoAwaitTag, + google::cloud::gkemulticloud::v1::CreateAzureNodePoolRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +AzureClustersConnection::CreateAzureNodePool( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> AzureClustersConnection::UpdateAzureNodePool( google::cloud::gkemulticloud::v1::UpdateAzureNodePoolRequest const&) { @@ -136,6 +232,22 @@ AzureClustersConnection::UpdateAzureNodePool( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +AzureClustersConnection::UpdateAzureNodePool( + ExperimentalTag, NoAwaitTag, + google::cloud::gkemulticloud::v1::UpdateAzureNodePoolRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +AzureClustersConnection::UpdateAzureNodePool( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr AzureClustersConnection::GetAzureNodePool( google::cloud::gkemulticloud::v1::GetAzureNodePoolRequest const&) { @@ -158,6 +270,22 @@ AzureClustersConnection::DeleteAzureNodePool( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +AzureClustersConnection::DeleteAzureNodePool( + ExperimentalTag, NoAwaitTag, + google::cloud::gkemulticloud::v1::DeleteAzureNodePoolRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +AzureClustersConnection::DeleteAzureNodePool( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr AzureClustersConnection::GetAzureOpenIdConfig( google::cloud::gkemulticloud::v1::GetAzureOpenIdConfigRequest const&) { diff --git a/google/cloud/gkemulticloud/v1/azure_clusters_connection.h b/google/cloud/gkemulticloud/v1/azure_clusters_connection.h index cbeaef0411d41..4d6e070c23869 100644 --- a/google/cloud/gkemulticloud/v1/azure_clusters_connection.h +++ b/google/cloud/gkemulticloud/v1/azure_clusters_connection.h @@ -22,8 +22,10 @@ #include "google/cloud/gkemulticloud/v1/azure_clusters_connection_idempotency_policy.h" #include "google/cloud/gkemulticloud/v1/internal/azure_clusters_retry_traits.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/internal/retry_policy_impl.h" +#include "google/cloud/no_await_tag.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" #include "google/cloud/status_or.h" @@ -191,6 +193,15 @@ class AzureClustersConnection { google::cloud::gkemulticloud::v1::CreateAzureClientRequest const& request); + virtual StatusOr CreateAzureClient( + ExperimentalTag, NoAwaitTag, + google::cloud::gkemulticloud::v1::CreateAzureClientRequest const& + request); + + virtual future> + CreateAzureClient(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StatusOr GetAzureClient( google::cloud::gkemulticloud::v1::GetAzureClientRequest const& request); @@ -204,16 +215,43 @@ class AzureClustersConnection { google::cloud::gkemulticloud::v1::DeleteAzureClientRequest const& request); + virtual StatusOr DeleteAzureClient( + ExperimentalTag, NoAwaitTag, + google::cloud::gkemulticloud::v1::DeleteAzureClientRequest const& + request); + + virtual future> + DeleteAzureClient(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> CreateAzureCluster( google::cloud::gkemulticloud::v1::CreateAzureClusterRequest const& request); + virtual StatusOr CreateAzureCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::gkemulticloud::v1::CreateAzureClusterRequest const& + request); + + virtual future> + CreateAzureCluster(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> UpdateAzureCluster( google::cloud::gkemulticloud::v1::UpdateAzureClusterRequest const& request); + virtual StatusOr UpdateAzureCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::gkemulticloud::v1::UpdateAzureClusterRequest const& + request); + + virtual future> + UpdateAzureCluster(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StatusOr GetAzureCluster( google::cloud::gkemulticloud::v1::GetAzureClusterRequest const& request); @@ -227,6 +265,15 @@ class AzureClustersConnection { google::cloud::gkemulticloud::v1::DeleteAzureClusterRequest const& request); + virtual StatusOr DeleteAzureCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::gkemulticloud::v1::DeleteAzureClusterRequest const& + request); + + virtual future> + DeleteAzureCluster(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StatusOr< google::cloud::gkemulticloud::v1::GenerateAzureClusterAgentTokenResponse> GenerateAzureClusterAgentToken( @@ -244,11 +291,29 @@ class AzureClustersConnection { google::cloud::gkemulticloud::v1::CreateAzureNodePoolRequest const& request); + virtual StatusOr CreateAzureNodePool( + ExperimentalTag, NoAwaitTag, + google::cloud::gkemulticloud::v1::CreateAzureNodePoolRequest const& + request); + + virtual future> + CreateAzureNodePool(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> UpdateAzureNodePool( google::cloud::gkemulticloud::v1::UpdateAzureNodePoolRequest const& request); + virtual StatusOr UpdateAzureNodePool( + ExperimentalTag, NoAwaitTag, + google::cloud::gkemulticloud::v1::UpdateAzureNodePoolRequest const& + request); + + virtual future> + UpdateAzureNodePool(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StatusOr GetAzureNodePool( google::cloud::gkemulticloud::v1::GetAzureNodePoolRequest const& request); @@ -262,6 +327,15 @@ class AzureClustersConnection { google::cloud::gkemulticloud::v1::DeleteAzureNodePoolRequest const& request); + virtual StatusOr DeleteAzureNodePool( + ExperimentalTag, NoAwaitTag, + google::cloud::gkemulticloud::v1::DeleteAzureNodePoolRequest const& + request); + + virtual future> + DeleteAzureNodePool(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StatusOr GetAzureOpenIdConfig( google::cloud::gkemulticloud::v1::GetAzureOpenIdConfigRequest const& diff --git a/google/cloud/gkemulticloud/v1/internal/attached_clusters_connection_impl.cc b/google/cloud/gkemulticloud/v1/internal/attached_clusters_connection_impl.cc index 1fd96035b9491..7ac929471d1fe 100644 --- a/google/cloud/gkemulticloud/v1/internal/attached_clusters_connection_impl.cc +++ b/google/cloud/gkemulticloud/v1/internal/attached_clusters_connection_impl.cc @@ -109,6 +109,62 @@ AttachedClustersConnectionImpl::CreateAttachedCluster( polling_policy(*current), __func__); } +StatusOr +AttachedClustersConnectionImpl::CreateAttachedCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::gkemulticloud::v1::CreateAttachedClusterRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateAttachedCluster(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::gkemulticloud::v1::CreateAttachedClusterRequest const& + request) { + return stub_->CreateAttachedCluster(context, options, request); + }, + *current, request, __func__); +} + +future> +AttachedClustersConnectionImpl::CreateAttachedCluster( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to CreateAttachedCluster", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::gkemulticloud::v1::AttachedCluster>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::gkemulticloud::v1::AttachedCluster>, + polling_policy(*current), __func__); +} + future> AttachedClustersConnectionImpl::UpdateAttachedCluster( google::cloud::gkemulticloud::v1::UpdateAttachedClusterRequest const& @@ -150,6 +206,62 @@ AttachedClustersConnectionImpl::UpdateAttachedCluster( polling_policy(*current), __func__); } +StatusOr +AttachedClustersConnectionImpl::UpdateAttachedCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::gkemulticloud::v1::UpdateAttachedClusterRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UpdateAttachedCluster(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::gkemulticloud::v1::UpdateAttachedClusterRequest const& + request) { + return stub_->UpdateAttachedCluster(context, options, request); + }, + *current, request, __func__); +} + +future> +AttachedClustersConnectionImpl::UpdateAttachedCluster( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to UpdateAttachedCluster", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::gkemulticloud::v1::AttachedCluster>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::gkemulticloud::v1::AttachedCluster>, + polling_policy(*current), __func__); +} + future> AttachedClustersConnectionImpl::ImportAttachedCluster( google::cloud::gkemulticloud::v1::ImportAttachedClusterRequest const& @@ -191,6 +303,62 @@ AttachedClustersConnectionImpl::ImportAttachedCluster( polling_policy(*current), __func__); } +StatusOr +AttachedClustersConnectionImpl::ImportAttachedCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::gkemulticloud::v1::ImportAttachedClusterRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->ImportAttachedCluster(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::gkemulticloud::v1::ImportAttachedClusterRequest const& + request) { + return stub_->ImportAttachedCluster(context, options, request); + }, + *current, request, __func__); +} + +future> +AttachedClustersConnectionImpl::ImportAttachedCluster( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to ImportAttachedCluster", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::gkemulticloud::v1::AttachedCluster>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::gkemulticloud::v1::AttachedCluster>, + polling_policy(*current), __func__); +} + StatusOr AttachedClustersConnectionImpl::GetAttachedCluster( google::cloud::gkemulticloud::v1::GetAttachedClusterRequest const& @@ -284,6 +452,62 @@ AttachedClustersConnectionImpl::DeleteAttachedCluster( polling_policy(*current), __func__); } +StatusOr +AttachedClustersConnectionImpl::DeleteAttachedCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::gkemulticloud::v1::DeleteAttachedClusterRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteAttachedCluster(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::gkemulticloud::v1::DeleteAttachedClusterRequest const& + request) { + return stub_->DeleteAttachedCluster(context, options, request); + }, + *current, request, __func__); +} + +future> +AttachedClustersConnectionImpl::DeleteAttachedCluster( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteAttachedCluster", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::gkemulticloud::v1::OperationMetadata>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::cloud::gkemulticloud::v1::OperationMetadata>, + polling_policy(*current), __func__); +} + StatusOr AttachedClustersConnectionImpl::GetAttachedServerConfig( google::cloud::gkemulticloud::v1::GetAttachedServerConfigRequest const& diff --git a/google/cloud/gkemulticloud/v1/internal/attached_clusters_connection_impl.h b/google/cloud/gkemulticloud/v1/internal/attached_clusters_connection_impl.h index 6f146c7dc2938..218a675da07aa 100644 --- a/google/cloud/gkemulticloud/v1/internal/attached_clusters_connection_impl.h +++ b/google/cloud/gkemulticloud/v1/internal/attached_clusters_connection_impl.h @@ -57,16 +57,46 @@ class AttachedClustersConnectionImpl google::cloud::gkemulticloud::v1::CreateAttachedClusterRequest const& request) override; + StatusOr CreateAttachedCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::gkemulticloud::v1::CreateAttachedClusterRequest const& + request) override; + + future> + CreateAttachedCluster( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateAttachedCluster( google::cloud::gkemulticloud::v1::UpdateAttachedClusterRequest const& request) override; + StatusOr UpdateAttachedCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::gkemulticloud::v1::UpdateAttachedClusterRequest const& + request) override; + + future> + UpdateAttachedCluster( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ImportAttachedCluster( google::cloud::gkemulticloud::v1::ImportAttachedClusterRequest const& request) override; + StatusOr ImportAttachedCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::gkemulticloud::v1::ImportAttachedClusterRequest const& + request) override; + + future> + ImportAttachedCluster( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetAttachedCluster( google::cloud::gkemulticloud::v1::GetAttachedClusterRequest const& @@ -82,6 +112,16 @@ class AttachedClustersConnectionImpl google::cloud::gkemulticloud::v1::DeleteAttachedClusterRequest const& request) override; + StatusOr DeleteAttachedCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::gkemulticloud::v1::DeleteAttachedClusterRequest const& + request) override; + + future> + DeleteAttachedCluster( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetAttachedServerConfig( google::cloud::gkemulticloud::v1::GetAttachedServerConfigRequest const& diff --git a/google/cloud/gkemulticloud/v1/internal/attached_clusters_tracing_connection.cc b/google/cloud/gkemulticloud/v1/internal/attached_clusters_tracing_connection.cc index 12540664acf0e..012ae43950c15 100644 --- a/google/cloud/gkemulticloud/v1/internal/attached_clusters_tracing_connection.cc +++ b/google/cloud/gkemulticloud/v1/internal/attached_clusters_tracing_connection.cc @@ -44,6 +44,29 @@ AttachedClustersTracingConnection::CreateAttachedCluster( child_->CreateAttachedCluster(request)); } +StatusOr +AttachedClustersTracingConnection::CreateAttachedCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::gkemulticloud::v1::CreateAttachedClusterRequest const& + request) { + auto span = internal::MakeSpan( + "gkemulticloud_v1::AttachedClustersConnection::CreateAttachedCluster"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->CreateAttachedCluster(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +AttachedClustersTracingConnection::CreateAttachedCluster( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "gkemulticloud_v1::AttachedClustersConnection::CreateAttachedCluster"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->CreateAttachedCluster( + ExperimentalTag{}, operation)); +} + future> AttachedClustersTracingConnection::UpdateAttachedCluster( google::cloud::gkemulticloud::v1::UpdateAttachedClusterRequest const& @@ -55,6 +78,29 @@ AttachedClustersTracingConnection::UpdateAttachedCluster( child_->UpdateAttachedCluster(request)); } +StatusOr +AttachedClustersTracingConnection::UpdateAttachedCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::gkemulticloud::v1::UpdateAttachedClusterRequest const& + request) { + auto span = internal::MakeSpan( + "gkemulticloud_v1::AttachedClustersConnection::UpdateAttachedCluster"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->UpdateAttachedCluster(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +AttachedClustersTracingConnection::UpdateAttachedCluster( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "gkemulticloud_v1::AttachedClustersConnection::UpdateAttachedCluster"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->UpdateAttachedCluster( + ExperimentalTag{}, operation)); +} + future> AttachedClustersTracingConnection::ImportAttachedCluster( google::cloud::gkemulticloud::v1::ImportAttachedClusterRequest const& @@ -66,6 +112,29 @@ AttachedClustersTracingConnection::ImportAttachedCluster( child_->ImportAttachedCluster(request)); } +StatusOr +AttachedClustersTracingConnection::ImportAttachedCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::gkemulticloud::v1::ImportAttachedClusterRequest const& + request) { + auto span = internal::MakeSpan( + "gkemulticloud_v1::AttachedClustersConnection::ImportAttachedCluster"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->ImportAttachedCluster(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +AttachedClustersTracingConnection::ImportAttachedCluster( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "gkemulticloud_v1::AttachedClustersConnection::ImportAttachedCluster"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->ImportAttachedCluster( + ExperimentalTag{}, operation)); +} + StatusOr AttachedClustersTracingConnection::GetAttachedCluster( google::cloud::gkemulticloud::v1::GetAttachedClusterRequest const& @@ -99,6 +168,29 @@ AttachedClustersTracingConnection::DeleteAttachedCluster( child_->DeleteAttachedCluster(request)); } +StatusOr +AttachedClustersTracingConnection::DeleteAttachedCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::gkemulticloud::v1::DeleteAttachedClusterRequest const& + request) { + auto span = internal::MakeSpan( + "gkemulticloud_v1::AttachedClustersConnection::DeleteAttachedCluster"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->DeleteAttachedCluster(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +AttachedClustersTracingConnection::DeleteAttachedCluster( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "gkemulticloud_v1::AttachedClustersConnection::DeleteAttachedCluster"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->DeleteAttachedCluster( + ExperimentalTag{}, operation)); +} + StatusOr AttachedClustersTracingConnection::GetAttachedServerConfig( google::cloud::gkemulticloud::v1::GetAttachedServerConfigRequest const& diff --git a/google/cloud/gkemulticloud/v1/internal/attached_clusters_tracing_connection.h b/google/cloud/gkemulticloud/v1/internal/attached_clusters_tracing_connection.h index 287b1329000ba..08c54bdd49dac 100644 --- a/google/cloud/gkemulticloud/v1/internal/attached_clusters_tracing_connection.h +++ b/google/cloud/gkemulticloud/v1/internal/attached_clusters_tracing_connection.h @@ -45,16 +45,46 @@ class AttachedClustersTracingConnection google::cloud::gkemulticloud::v1::CreateAttachedClusterRequest const& request) override; + StatusOr CreateAttachedCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::gkemulticloud::v1::CreateAttachedClusterRequest const& + request) override; + + future> + CreateAttachedCluster( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateAttachedCluster( google::cloud::gkemulticloud::v1::UpdateAttachedClusterRequest const& request) override; + StatusOr UpdateAttachedCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::gkemulticloud::v1::UpdateAttachedClusterRequest const& + request) override; + + future> + UpdateAttachedCluster( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ImportAttachedCluster( google::cloud::gkemulticloud::v1::ImportAttachedClusterRequest const& request) override; + StatusOr ImportAttachedCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::gkemulticloud::v1::ImportAttachedClusterRequest const& + request) override; + + future> + ImportAttachedCluster( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetAttachedCluster( google::cloud::gkemulticloud::v1::GetAttachedClusterRequest const& @@ -70,6 +100,16 @@ class AttachedClustersTracingConnection google::cloud::gkemulticloud::v1::DeleteAttachedClusterRequest const& request) override; + StatusOr DeleteAttachedCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::gkemulticloud::v1::DeleteAttachedClusterRequest const& + request) override; + + future> + DeleteAttachedCluster( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetAttachedServerConfig( google::cloud::gkemulticloud::v1::GetAttachedServerConfigRequest const& diff --git a/google/cloud/gkemulticloud/v1/internal/aws_clusters_connection_impl.cc b/google/cloud/gkemulticloud/v1/internal/aws_clusters_connection_impl.cc index 28032409339be..54b5947733c1d 100644 --- a/google/cloud/gkemulticloud/v1/internal/aws_clusters_connection_impl.cc +++ b/google/cloud/gkemulticloud/v1/internal/aws_clusters_connection_impl.cc @@ -106,6 +106,60 @@ AwsClustersConnectionImpl::CreateAwsCluster( polling_policy(*current), __func__); } +StatusOr +AwsClustersConnectionImpl::CreateAwsCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::gkemulticloud::v1::CreateAwsClusterRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateAwsCluster(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::gkemulticloud::v1::CreateAwsClusterRequest const& + request) { + return stub_->CreateAwsCluster(context, options, request); + }, + *current, request, __func__); +} + +future> +AwsClustersConnectionImpl::CreateAwsCluster( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to CreateAwsCluster", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::gkemulticloud::v1::AwsCluster>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::gkemulticloud::v1::AwsCluster>, + polling_policy(*current), __func__); +} + future> AwsClustersConnectionImpl::UpdateAwsCluster( google::cloud::gkemulticloud::v1::UpdateAwsClusterRequest const& request) { @@ -146,6 +200,60 @@ AwsClustersConnectionImpl::UpdateAwsCluster( polling_policy(*current), __func__); } +StatusOr +AwsClustersConnectionImpl::UpdateAwsCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::gkemulticloud::v1::UpdateAwsClusterRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UpdateAwsCluster(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::gkemulticloud::v1::UpdateAwsClusterRequest const& + request) { + return stub_->UpdateAwsCluster(context, options, request); + }, + *current, request, __func__); +} + +future> +AwsClustersConnectionImpl::UpdateAwsCluster( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to UpdateAwsCluster", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::gkemulticloud::v1::AwsCluster>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::gkemulticloud::v1::AwsCluster>, + polling_policy(*current), __func__); +} + StatusOr AwsClustersConnectionImpl::GetAwsCluster( google::cloud::gkemulticloud::v1::GetAwsClusterRequest const& request) { @@ -236,6 +344,60 @@ AwsClustersConnectionImpl::DeleteAwsCluster( polling_policy(*current), __func__); } +StatusOr +AwsClustersConnectionImpl::DeleteAwsCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::gkemulticloud::v1::DeleteAwsClusterRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteAwsCluster(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::gkemulticloud::v1::DeleteAwsClusterRequest const& + request) { + return stub_->DeleteAwsCluster(context, options, request); + }, + *current, request, __func__); +} + +future> +AwsClustersConnectionImpl::DeleteAwsCluster( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteAwsCluster", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::gkemulticloud::v1::OperationMetadata>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::cloud::gkemulticloud::v1::OperationMetadata>, + polling_policy(*current), __func__); +} + StatusOr AwsClustersConnectionImpl::GenerateAwsClusterAgentToken( google::cloud::gkemulticloud::v1::GenerateAwsClusterAgentTokenRequest const& @@ -309,6 +471,60 @@ AwsClustersConnectionImpl::CreateAwsNodePool( polling_policy(*current), __func__); } +StatusOr +AwsClustersConnectionImpl::CreateAwsNodePool( + ExperimentalTag, NoAwaitTag, + google::cloud::gkemulticloud::v1::CreateAwsNodePoolRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateAwsNodePool(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::gkemulticloud::v1::CreateAwsNodePoolRequest const& + request) { + return stub_->CreateAwsNodePool(context, options, request); + }, + *current, request, __func__); +} + +future> +AwsClustersConnectionImpl::CreateAwsNodePool( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to CreateAwsNodePool", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::gkemulticloud::v1::AwsNodePool>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::gkemulticloud::v1::AwsNodePool>, + polling_policy(*current), __func__); +} + future> AwsClustersConnectionImpl::UpdateAwsNodePool( google::cloud::gkemulticloud::v1::UpdateAwsNodePoolRequest const& request) { @@ -349,6 +565,60 @@ AwsClustersConnectionImpl::UpdateAwsNodePool( polling_policy(*current), __func__); } +StatusOr +AwsClustersConnectionImpl::UpdateAwsNodePool( + ExperimentalTag, NoAwaitTag, + google::cloud::gkemulticloud::v1::UpdateAwsNodePoolRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UpdateAwsNodePool(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::gkemulticloud::v1::UpdateAwsNodePoolRequest const& + request) { + return stub_->UpdateAwsNodePool(context, options, request); + }, + *current, request, __func__); +} + +future> +AwsClustersConnectionImpl::UpdateAwsNodePool( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to UpdateAwsNodePool", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::gkemulticloud::v1::AwsNodePool>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::gkemulticloud::v1::AwsNodePool>, + polling_policy(*current), __func__); +} + future> AwsClustersConnectionImpl::RollbackAwsNodePoolUpdate( google::cloud::gkemulticloud::v1::RollbackAwsNodePoolUpdateRequest const& @@ -389,6 +659,61 @@ AwsClustersConnectionImpl::RollbackAwsNodePoolUpdate( polling_policy(*current), __func__); } +StatusOr +AwsClustersConnectionImpl::RollbackAwsNodePoolUpdate( + ExperimentalTag, NoAwaitTag, + google::cloud::gkemulticloud::v1::RollbackAwsNodePoolUpdateRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->RollbackAwsNodePoolUpdate(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::gkemulticloud::v1:: + RollbackAwsNodePoolUpdateRequest const& request) { + return stub_->RollbackAwsNodePoolUpdate(context, options, request); + }, + *current, request, __func__); +} + +future> +AwsClustersConnectionImpl::RollbackAwsNodePoolUpdate( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to RollbackAwsNodePoolUpdate", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::gkemulticloud::v1::AwsNodePool>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::gkemulticloud::v1::AwsNodePool>, + polling_policy(*current), __func__); +} + StatusOr AwsClustersConnectionImpl::GetAwsNodePool( google::cloud::gkemulticloud::v1::GetAwsNodePoolRequest const& request) { @@ -479,6 +804,60 @@ AwsClustersConnectionImpl::DeleteAwsNodePool( polling_policy(*current), __func__); } +StatusOr +AwsClustersConnectionImpl::DeleteAwsNodePool( + ExperimentalTag, NoAwaitTag, + google::cloud::gkemulticloud::v1::DeleteAwsNodePoolRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteAwsNodePool(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::gkemulticloud::v1::DeleteAwsNodePoolRequest const& + request) { + return stub_->DeleteAwsNodePool(context, options, request); + }, + *current, request, __func__); +} + +future> +AwsClustersConnectionImpl::DeleteAwsNodePool( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteAwsNodePool", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::gkemulticloud::v1::OperationMetadata>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::cloud::gkemulticloud::v1::OperationMetadata>, + polling_policy(*current), __func__); +} + StatusOr AwsClustersConnectionImpl::GetAwsOpenIdConfig( google::cloud::gkemulticloud::v1::GetAwsOpenIdConfigRequest const& diff --git a/google/cloud/gkemulticloud/v1/internal/aws_clusters_connection_impl.h b/google/cloud/gkemulticloud/v1/internal/aws_clusters_connection_impl.h index fd99f06b4a810..acb791550e2b5 100644 --- a/google/cloud/gkemulticloud/v1/internal/aws_clusters_connection_impl.h +++ b/google/cloud/gkemulticloud/v1/internal/aws_clusters_connection_impl.h @@ -57,11 +57,29 @@ class AwsClustersConnectionImpl google::cloud::gkemulticloud::v1::CreateAwsClusterRequest const& request) override; + StatusOr CreateAwsCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::gkemulticloud::v1::CreateAwsClusterRequest const& request) + override; + + future> + CreateAwsCluster(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateAwsCluster( google::cloud::gkemulticloud::v1::UpdateAwsClusterRequest const& request) override; + StatusOr UpdateAwsCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::gkemulticloud::v1::UpdateAwsClusterRequest const& request) + override; + + future> + UpdateAwsCluster(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetAwsCluster( google::cloud::gkemulticloud::v1::GetAwsClusterRequest const& request) override; @@ -75,6 +93,15 @@ class AwsClustersConnectionImpl google::cloud::gkemulticloud::v1::DeleteAwsClusterRequest const& request) override; + StatusOr DeleteAwsCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::gkemulticloud::v1::DeleteAwsClusterRequest const& request) + override; + + future> + DeleteAwsCluster(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr< google::cloud::gkemulticloud::v1::GenerateAwsClusterAgentTokenResponse> GenerateAwsClusterAgentToken( @@ -91,16 +118,44 @@ class AwsClustersConnectionImpl google::cloud::gkemulticloud::v1::CreateAwsNodePoolRequest const& request) override; + StatusOr CreateAwsNodePool( + ExperimentalTag, NoAwaitTag, + google::cloud::gkemulticloud::v1::CreateAwsNodePoolRequest const& request) + override; + + future> + CreateAwsNodePool(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateAwsNodePool( google::cloud::gkemulticloud::v1::UpdateAwsNodePoolRequest const& request) override; + StatusOr UpdateAwsNodePool( + ExperimentalTag, NoAwaitTag, + google::cloud::gkemulticloud::v1::UpdateAwsNodePoolRequest const& request) + override; + + future> + UpdateAwsNodePool(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> RollbackAwsNodePoolUpdate( google::cloud::gkemulticloud::v1::RollbackAwsNodePoolUpdateRequest const& request) override; + StatusOr RollbackAwsNodePoolUpdate( + ExperimentalTag, NoAwaitTag, + google::cloud::gkemulticloud::v1::RollbackAwsNodePoolUpdateRequest const& + request) override; + + future> + RollbackAwsNodePoolUpdate( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetAwsNodePool( google::cloud::gkemulticloud::v1::GetAwsNodePoolRequest const& request) override; @@ -114,6 +169,15 @@ class AwsClustersConnectionImpl google::cloud::gkemulticloud::v1::DeleteAwsNodePoolRequest const& request) override; + StatusOr DeleteAwsNodePool( + ExperimentalTag, NoAwaitTag, + google::cloud::gkemulticloud::v1::DeleteAwsNodePoolRequest const& request) + override; + + future> + DeleteAwsNodePool(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetAwsOpenIdConfig( google::cloud::gkemulticloud::v1::GetAwsOpenIdConfigRequest const& diff --git a/google/cloud/gkemulticloud/v1/internal/aws_clusters_tracing_connection.cc b/google/cloud/gkemulticloud/v1/internal/aws_clusters_tracing_connection.cc index 70c1cdc4a3fb5..4a1e12834b124 100644 --- a/google/cloud/gkemulticloud/v1/internal/aws_clusters_tracing_connection.cc +++ b/google/cloud/gkemulticloud/v1/internal/aws_clusters_tracing_connection.cc @@ -42,6 +42,28 @@ AwsClustersTracingConnection::CreateAwsCluster( return internal::EndSpan(std::move(span), child_->CreateAwsCluster(request)); } +StatusOr +AwsClustersTracingConnection::CreateAwsCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::gkemulticloud::v1::CreateAwsClusterRequest const& request) { + auto span = internal::MakeSpan( + "gkemulticloud_v1::AwsClustersConnection::CreateAwsCluster"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->CreateAwsCluster(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +AwsClustersTracingConnection::CreateAwsCluster( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "gkemulticloud_v1::AwsClustersConnection::CreateAwsCluster"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->CreateAwsCluster(ExperimentalTag{}, operation)); +} + future> AwsClustersTracingConnection::UpdateAwsCluster( google::cloud::gkemulticloud::v1::UpdateAwsClusterRequest const& request) { @@ -51,6 +73,28 @@ AwsClustersTracingConnection::UpdateAwsCluster( return internal::EndSpan(std::move(span), child_->UpdateAwsCluster(request)); } +StatusOr +AwsClustersTracingConnection::UpdateAwsCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::gkemulticloud::v1::UpdateAwsClusterRequest const& request) { + auto span = internal::MakeSpan( + "gkemulticloud_v1::AwsClustersConnection::UpdateAwsCluster"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->UpdateAwsCluster(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +AwsClustersTracingConnection::UpdateAwsCluster( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "gkemulticloud_v1::AwsClustersConnection::UpdateAwsCluster"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->UpdateAwsCluster(ExperimentalTag{}, operation)); +} + StatusOr AwsClustersTracingConnection::GetAwsCluster( google::cloud::gkemulticloud::v1::GetAwsClusterRequest const& request) { @@ -81,6 +125,28 @@ AwsClustersTracingConnection::DeleteAwsCluster( return internal::EndSpan(std::move(span), child_->DeleteAwsCluster(request)); } +StatusOr +AwsClustersTracingConnection::DeleteAwsCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::gkemulticloud::v1::DeleteAwsClusterRequest const& request) { + auto span = internal::MakeSpan( + "gkemulticloud_v1::AwsClustersConnection::DeleteAwsCluster"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->DeleteAwsCluster(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +AwsClustersTracingConnection::DeleteAwsCluster( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "gkemulticloud_v1::AwsClustersConnection::DeleteAwsCluster"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->DeleteAwsCluster(ExperimentalTag{}, operation)); +} + StatusOr AwsClustersTracingConnection::GenerateAwsClusterAgentToken( google::cloud::gkemulticloud::v1::GenerateAwsClusterAgentTokenRequest const& @@ -111,6 +177,28 @@ AwsClustersTracingConnection::CreateAwsNodePool( return internal::EndSpan(std::move(span), child_->CreateAwsNodePool(request)); } +StatusOr +AwsClustersTracingConnection::CreateAwsNodePool( + ExperimentalTag, NoAwaitTag, + google::cloud::gkemulticloud::v1::CreateAwsNodePoolRequest const& request) { + auto span = internal::MakeSpan( + "gkemulticloud_v1::AwsClustersConnection::CreateAwsNodePool"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->CreateAwsNodePool(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +AwsClustersTracingConnection::CreateAwsNodePool( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "gkemulticloud_v1::AwsClustersConnection::CreateAwsNodePool"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->CreateAwsNodePool(ExperimentalTag{}, operation)); +} + future> AwsClustersTracingConnection::UpdateAwsNodePool( google::cloud::gkemulticloud::v1::UpdateAwsNodePoolRequest const& request) { @@ -120,6 +208,28 @@ AwsClustersTracingConnection::UpdateAwsNodePool( return internal::EndSpan(std::move(span), child_->UpdateAwsNodePool(request)); } +StatusOr +AwsClustersTracingConnection::UpdateAwsNodePool( + ExperimentalTag, NoAwaitTag, + google::cloud::gkemulticloud::v1::UpdateAwsNodePoolRequest const& request) { + auto span = internal::MakeSpan( + "gkemulticloud_v1::AwsClustersConnection::UpdateAwsNodePool"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->UpdateAwsNodePool(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +AwsClustersTracingConnection::UpdateAwsNodePool( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "gkemulticloud_v1::AwsClustersConnection::UpdateAwsNodePool"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->UpdateAwsNodePool(ExperimentalTag{}, operation)); +} + future> AwsClustersTracingConnection::RollbackAwsNodePoolUpdate( google::cloud::gkemulticloud::v1::RollbackAwsNodePoolUpdateRequest const& @@ -131,6 +241,29 @@ AwsClustersTracingConnection::RollbackAwsNodePoolUpdate( child_->RollbackAwsNodePoolUpdate(request)); } +StatusOr +AwsClustersTracingConnection::RollbackAwsNodePoolUpdate( + ExperimentalTag, NoAwaitTag, + google::cloud::gkemulticloud::v1::RollbackAwsNodePoolUpdateRequest const& + request) { + auto span = internal::MakeSpan( + "gkemulticloud_v1::AwsClustersConnection::RollbackAwsNodePoolUpdate"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->RollbackAwsNodePoolUpdate(ExperimentalTag{}, NoAwaitTag{}, + request)); +} + +future> +AwsClustersTracingConnection::RollbackAwsNodePoolUpdate( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "gkemulticloud_v1::AwsClustersConnection::RollbackAwsNodePoolUpdate"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->RollbackAwsNodePoolUpdate( + ExperimentalTag{}, operation)); +} + StatusOr AwsClustersTracingConnection::GetAwsNodePool( google::cloud::gkemulticloud::v1::GetAwsNodePoolRequest const& request) { @@ -161,6 +294,28 @@ AwsClustersTracingConnection::DeleteAwsNodePool( return internal::EndSpan(std::move(span), child_->DeleteAwsNodePool(request)); } +StatusOr +AwsClustersTracingConnection::DeleteAwsNodePool( + ExperimentalTag, NoAwaitTag, + google::cloud::gkemulticloud::v1::DeleteAwsNodePoolRequest const& request) { + auto span = internal::MakeSpan( + "gkemulticloud_v1::AwsClustersConnection::DeleteAwsNodePool"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->DeleteAwsNodePool(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +AwsClustersTracingConnection::DeleteAwsNodePool( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "gkemulticloud_v1::AwsClustersConnection::DeleteAwsNodePool"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->DeleteAwsNodePool(ExperimentalTag{}, operation)); +} + StatusOr AwsClustersTracingConnection::GetAwsOpenIdConfig( google::cloud::gkemulticloud::v1::GetAwsOpenIdConfigRequest const& diff --git a/google/cloud/gkemulticloud/v1/internal/aws_clusters_tracing_connection.h b/google/cloud/gkemulticloud/v1/internal/aws_clusters_tracing_connection.h index ddcd7c0873c1d..a5765486a13bd 100644 --- a/google/cloud/gkemulticloud/v1/internal/aws_clusters_tracing_connection.h +++ b/google/cloud/gkemulticloud/v1/internal/aws_clusters_tracing_connection.h @@ -45,11 +45,29 @@ class AwsClustersTracingConnection google::cloud::gkemulticloud::v1::CreateAwsClusterRequest const& request) override; + StatusOr CreateAwsCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::gkemulticloud::v1::CreateAwsClusterRequest const& request) + override; + + future> + CreateAwsCluster(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateAwsCluster( google::cloud::gkemulticloud::v1::UpdateAwsClusterRequest const& request) override; + StatusOr UpdateAwsCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::gkemulticloud::v1::UpdateAwsClusterRequest const& request) + override; + + future> + UpdateAwsCluster(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetAwsCluster( google::cloud::gkemulticloud::v1::GetAwsClusterRequest const& request) override; @@ -63,6 +81,15 @@ class AwsClustersTracingConnection google::cloud::gkemulticloud::v1::DeleteAwsClusterRequest const& request) override; + StatusOr DeleteAwsCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::gkemulticloud::v1::DeleteAwsClusterRequest const& request) + override; + + future> + DeleteAwsCluster(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr< google::cloud::gkemulticloud::v1::GenerateAwsClusterAgentTokenResponse> GenerateAwsClusterAgentToken( @@ -79,16 +106,44 @@ class AwsClustersTracingConnection google::cloud::gkemulticloud::v1::CreateAwsNodePoolRequest const& request) override; + StatusOr CreateAwsNodePool( + ExperimentalTag, NoAwaitTag, + google::cloud::gkemulticloud::v1::CreateAwsNodePoolRequest const& request) + override; + + future> + CreateAwsNodePool(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateAwsNodePool( google::cloud::gkemulticloud::v1::UpdateAwsNodePoolRequest const& request) override; + StatusOr UpdateAwsNodePool( + ExperimentalTag, NoAwaitTag, + google::cloud::gkemulticloud::v1::UpdateAwsNodePoolRequest const& request) + override; + + future> + UpdateAwsNodePool(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> RollbackAwsNodePoolUpdate( google::cloud::gkemulticloud::v1::RollbackAwsNodePoolUpdateRequest const& request) override; + StatusOr RollbackAwsNodePoolUpdate( + ExperimentalTag, NoAwaitTag, + google::cloud::gkemulticloud::v1::RollbackAwsNodePoolUpdateRequest const& + request) override; + + future> + RollbackAwsNodePoolUpdate( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetAwsNodePool( google::cloud::gkemulticloud::v1::GetAwsNodePoolRequest const& request) override; @@ -102,6 +157,15 @@ class AwsClustersTracingConnection google::cloud::gkemulticloud::v1::DeleteAwsNodePoolRequest const& request) override; + StatusOr DeleteAwsNodePool( + ExperimentalTag, NoAwaitTag, + google::cloud::gkemulticloud::v1::DeleteAwsNodePoolRequest const& request) + override; + + future> + DeleteAwsNodePool(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetAwsOpenIdConfig( google::cloud::gkemulticloud::v1::GetAwsOpenIdConfigRequest const& diff --git a/google/cloud/gkemulticloud/v1/internal/azure_clusters_connection_impl.cc b/google/cloud/gkemulticloud/v1/internal/azure_clusters_connection_impl.cc index 889c52ed13a2c..0560302e26ebf 100644 --- a/google/cloud/gkemulticloud/v1/internal/azure_clusters_connection_impl.cc +++ b/google/cloud/gkemulticloud/v1/internal/azure_clusters_connection_impl.cc @@ -107,6 +107,60 @@ AzureClustersConnectionImpl::CreateAzureClient( polling_policy(*current), __func__); } +StatusOr +AzureClustersConnectionImpl::CreateAzureClient( + ExperimentalTag, NoAwaitTag, + google::cloud::gkemulticloud::v1::CreateAzureClientRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateAzureClient(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::gkemulticloud::v1::CreateAzureClientRequest const& + request) { + return stub_->CreateAzureClient(context, options, request); + }, + *current, request, __func__); +} + +future> +AzureClustersConnectionImpl::CreateAzureClient( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to CreateAzureClient", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::gkemulticloud::v1::AzureClient>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::gkemulticloud::v1::AzureClient>, + polling_policy(*current), __func__); +} + StatusOr AzureClustersConnectionImpl::GetAzureClient( google::cloud::gkemulticloud::v1::GetAzureClientRequest const& request) { @@ -197,6 +251,60 @@ AzureClustersConnectionImpl::DeleteAzureClient( polling_policy(*current), __func__); } +StatusOr +AzureClustersConnectionImpl::DeleteAzureClient( + ExperimentalTag, NoAwaitTag, + google::cloud::gkemulticloud::v1::DeleteAzureClientRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteAzureClient(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::gkemulticloud::v1::DeleteAzureClientRequest const& + request) { + return stub_->DeleteAzureClient(context, options, request); + }, + *current, request, __func__); +} + +future> +AzureClustersConnectionImpl::DeleteAzureClient( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteAzureClient", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::gkemulticloud::v1::OperationMetadata>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::cloud::gkemulticloud::v1::OperationMetadata>, + polling_policy(*current), __func__); +} + future> AzureClustersConnectionImpl::CreateAzureCluster( google::cloud::gkemulticloud::v1::CreateAzureClusterRequest const& @@ -238,6 +346,61 @@ AzureClustersConnectionImpl::CreateAzureCluster( polling_policy(*current), __func__); } +StatusOr +AzureClustersConnectionImpl::CreateAzureCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::gkemulticloud::v1::CreateAzureClusterRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateAzureCluster(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::gkemulticloud::v1::CreateAzureClusterRequest const& + request) { + return stub_->CreateAzureCluster(context, options, request); + }, + *current, request, __func__); +} + +future> +AzureClustersConnectionImpl::CreateAzureCluster( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to CreateAzureCluster", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::gkemulticloud::v1::AzureCluster>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::gkemulticloud::v1::AzureCluster>, + polling_policy(*current), __func__); +} + future> AzureClustersConnectionImpl::UpdateAzureCluster( google::cloud::gkemulticloud::v1::UpdateAzureClusterRequest const& @@ -279,6 +442,61 @@ AzureClustersConnectionImpl::UpdateAzureCluster( polling_policy(*current), __func__); } +StatusOr +AzureClustersConnectionImpl::UpdateAzureCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::gkemulticloud::v1::UpdateAzureClusterRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UpdateAzureCluster(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::gkemulticloud::v1::UpdateAzureClusterRequest const& + request) { + return stub_->UpdateAzureCluster(context, options, request); + }, + *current, request, __func__); +} + +future> +AzureClustersConnectionImpl::UpdateAzureCluster( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to UpdateAzureCluster", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::gkemulticloud::v1::AzureCluster>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::gkemulticloud::v1::AzureCluster>, + polling_policy(*current), __func__); +} + StatusOr AzureClustersConnectionImpl::GetAzureCluster( google::cloud::gkemulticloud::v1::GetAzureClusterRequest const& request) { @@ -369,6 +587,61 @@ AzureClustersConnectionImpl::DeleteAzureCluster( polling_policy(*current), __func__); } +StatusOr +AzureClustersConnectionImpl::DeleteAzureCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::gkemulticloud::v1::DeleteAzureClusterRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteAzureCluster(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::gkemulticloud::v1::DeleteAzureClusterRequest const& + request) { + return stub_->DeleteAzureCluster(context, options, request); + }, + *current, request, __func__); +} + +future> +AzureClustersConnectionImpl::DeleteAzureCluster( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteAzureCluster", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::gkemulticloud::v1::OperationMetadata>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::cloud::gkemulticloud::v1::OperationMetadata>, + polling_policy(*current), __func__); +} + StatusOr< google::cloud::gkemulticloud::v1::GenerateAzureClusterAgentTokenResponse> AzureClustersConnectionImpl::GenerateAzureClusterAgentToken( @@ -443,6 +716,61 @@ AzureClustersConnectionImpl::CreateAzureNodePool( polling_policy(*current), __func__); } +StatusOr +AzureClustersConnectionImpl::CreateAzureNodePool( + ExperimentalTag, NoAwaitTag, + google::cloud::gkemulticloud::v1::CreateAzureNodePoolRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateAzureNodePool(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::gkemulticloud::v1::CreateAzureNodePoolRequest const& + request) { + return stub_->CreateAzureNodePool(context, options, request); + }, + *current, request, __func__); +} + +future> +AzureClustersConnectionImpl::CreateAzureNodePool( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to CreateAzureNodePool", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::gkemulticloud::v1::AzureNodePool>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::gkemulticloud::v1::AzureNodePool>, + polling_policy(*current), __func__); +} + future> AzureClustersConnectionImpl::UpdateAzureNodePool( google::cloud::gkemulticloud::v1::UpdateAzureNodePoolRequest const& @@ -484,6 +812,61 @@ AzureClustersConnectionImpl::UpdateAzureNodePool( polling_policy(*current), __func__); } +StatusOr +AzureClustersConnectionImpl::UpdateAzureNodePool( + ExperimentalTag, NoAwaitTag, + google::cloud::gkemulticloud::v1::UpdateAzureNodePoolRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UpdateAzureNodePool(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::gkemulticloud::v1::UpdateAzureNodePoolRequest const& + request) { + return stub_->UpdateAzureNodePool(context, options, request); + }, + *current, request, __func__); +} + +future> +AzureClustersConnectionImpl::UpdateAzureNodePool( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to UpdateAzureNodePool", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::gkemulticloud::v1::AzureNodePool>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::gkemulticloud::v1::AzureNodePool>, + polling_policy(*current), __func__); +} + StatusOr AzureClustersConnectionImpl::GetAzureNodePool( google::cloud::gkemulticloud::v1::GetAzureNodePoolRequest const& request) { @@ -575,6 +958,61 @@ AzureClustersConnectionImpl::DeleteAzureNodePool( polling_policy(*current), __func__); } +StatusOr +AzureClustersConnectionImpl::DeleteAzureNodePool( + ExperimentalTag, NoAwaitTag, + google::cloud::gkemulticloud::v1::DeleteAzureNodePoolRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteAzureNodePool(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::gkemulticloud::v1::DeleteAzureNodePoolRequest const& + request) { + return stub_->DeleteAzureNodePool(context, options, request); + }, + *current, request, __func__); +} + +future> +AzureClustersConnectionImpl::DeleteAzureNodePool( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteAzureNodePool", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::gkemulticloud::v1::OperationMetadata>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::cloud::gkemulticloud::v1::OperationMetadata>, + polling_policy(*current), __func__); +} + StatusOr AzureClustersConnectionImpl::GetAzureOpenIdConfig( google::cloud::gkemulticloud::v1::GetAzureOpenIdConfigRequest const& diff --git a/google/cloud/gkemulticloud/v1/internal/azure_clusters_connection_impl.h b/google/cloud/gkemulticloud/v1/internal/azure_clusters_connection_impl.h index c57d5a42637d7..ee59691873267 100644 --- a/google/cloud/gkemulticloud/v1/internal/azure_clusters_connection_impl.h +++ b/google/cloud/gkemulticloud/v1/internal/azure_clusters_connection_impl.h @@ -57,6 +57,15 @@ class AzureClustersConnectionImpl google::cloud::gkemulticloud::v1::CreateAzureClientRequest const& request) override; + StatusOr CreateAzureClient( + ExperimentalTag, NoAwaitTag, + google::cloud::gkemulticloud::v1::CreateAzureClientRequest const& request) + override; + + future> + CreateAzureClient(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetAzureClient( google::cloud::gkemulticloud::v1::GetAzureClientRequest const& request) override; @@ -70,16 +79,43 @@ class AzureClustersConnectionImpl google::cloud::gkemulticloud::v1::DeleteAzureClientRequest const& request) override; + StatusOr DeleteAzureClient( + ExperimentalTag, NoAwaitTag, + google::cloud::gkemulticloud::v1::DeleteAzureClientRequest const& request) + override; + + future> + DeleteAzureClient(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> CreateAzureCluster( google::cloud::gkemulticloud::v1::CreateAzureClusterRequest const& request) override; + StatusOr CreateAzureCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::gkemulticloud::v1::CreateAzureClusterRequest const& + request) override; + + future> + CreateAzureCluster(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateAzureCluster( google::cloud::gkemulticloud::v1::UpdateAzureClusterRequest const& request) override; + StatusOr UpdateAzureCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::gkemulticloud::v1::UpdateAzureClusterRequest const& + request) override; + + future> + UpdateAzureCluster(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetAzureCluster( google::cloud::gkemulticloud::v1::GetAzureClusterRequest const& request) override; @@ -93,6 +129,15 @@ class AzureClustersConnectionImpl google::cloud::gkemulticloud::v1::DeleteAzureClusterRequest const& request) override; + StatusOr DeleteAzureCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::gkemulticloud::v1::DeleteAzureClusterRequest const& + request) override; + + future> + DeleteAzureCluster(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr< google::cloud::gkemulticloud::v1::GenerateAzureClusterAgentTokenResponse> GenerateAzureClusterAgentToken( @@ -109,11 +154,29 @@ class AzureClustersConnectionImpl google::cloud::gkemulticloud::v1::CreateAzureNodePoolRequest const& request) override; + StatusOr CreateAzureNodePool( + ExperimentalTag, NoAwaitTag, + google::cloud::gkemulticloud::v1::CreateAzureNodePoolRequest const& + request) override; + + future> + CreateAzureNodePool(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateAzureNodePool( google::cloud::gkemulticloud::v1::UpdateAzureNodePoolRequest const& request) override; + StatusOr UpdateAzureNodePool( + ExperimentalTag, NoAwaitTag, + google::cloud::gkemulticloud::v1::UpdateAzureNodePoolRequest const& + request) override; + + future> + UpdateAzureNodePool(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetAzureNodePool( google::cloud::gkemulticloud::v1::GetAzureNodePoolRequest const& request) override; @@ -127,6 +190,15 @@ class AzureClustersConnectionImpl google::cloud::gkemulticloud::v1::DeleteAzureNodePoolRequest const& request) override; + StatusOr DeleteAzureNodePool( + ExperimentalTag, NoAwaitTag, + google::cloud::gkemulticloud::v1::DeleteAzureNodePoolRequest const& + request) override; + + future> + DeleteAzureNodePool(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetAzureOpenIdConfig( google::cloud::gkemulticloud::v1::GetAzureOpenIdConfigRequest const& diff --git a/google/cloud/gkemulticloud/v1/internal/azure_clusters_tracing_connection.cc b/google/cloud/gkemulticloud/v1/internal/azure_clusters_tracing_connection.cc index 3ed53fbebc8d1..fe100197cab00 100644 --- a/google/cloud/gkemulticloud/v1/internal/azure_clusters_tracing_connection.cc +++ b/google/cloud/gkemulticloud/v1/internal/azure_clusters_tracing_connection.cc @@ -42,6 +42,28 @@ AzureClustersTracingConnection::CreateAzureClient( return internal::EndSpan(std::move(span), child_->CreateAzureClient(request)); } +StatusOr +AzureClustersTracingConnection::CreateAzureClient( + ExperimentalTag, NoAwaitTag, + google::cloud::gkemulticloud::v1::CreateAzureClientRequest const& request) { + auto span = internal::MakeSpan( + "gkemulticloud_v1::AzureClustersConnection::CreateAzureClient"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->CreateAzureClient(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +AzureClustersTracingConnection::CreateAzureClient( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "gkemulticloud_v1::AzureClustersConnection::CreateAzureClient"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->CreateAzureClient(ExperimentalTag{}, operation)); +} + StatusOr AzureClustersTracingConnection::GetAzureClient( google::cloud::gkemulticloud::v1::GetAzureClientRequest const& request) { @@ -72,6 +94,28 @@ AzureClustersTracingConnection::DeleteAzureClient( return internal::EndSpan(std::move(span), child_->DeleteAzureClient(request)); } +StatusOr +AzureClustersTracingConnection::DeleteAzureClient( + ExperimentalTag, NoAwaitTag, + google::cloud::gkemulticloud::v1::DeleteAzureClientRequest const& request) { + auto span = internal::MakeSpan( + "gkemulticloud_v1::AzureClustersConnection::DeleteAzureClient"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->DeleteAzureClient(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +AzureClustersTracingConnection::DeleteAzureClient( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "gkemulticloud_v1::AzureClustersConnection::DeleteAzureClient"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->DeleteAzureClient(ExperimentalTag{}, operation)); +} + future> AzureClustersTracingConnection::CreateAzureCluster( google::cloud::gkemulticloud::v1::CreateAzureClusterRequest const& @@ -83,6 +127,29 @@ AzureClustersTracingConnection::CreateAzureCluster( child_->CreateAzureCluster(request)); } +StatusOr +AzureClustersTracingConnection::CreateAzureCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::gkemulticloud::v1::CreateAzureClusterRequest const& + request) { + auto span = internal::MakeSpan( + "gkemulticloud_v1::AzureClustersConnection::CreateAzureCluster"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->CreateAzureCluster(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +AzureClustersTracingConnection::CreateAzureCluster( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "gkemulticloud_v1::AzureClustersConnection::CreateAzureCluster"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->CreateAzureCluster( + ExperimentalTag{}, operation)); +} + future> AzureClustersTracingConnection::UpdateAzureCluster( google::cloud::gkemulticloud::v1::UpdateAzureClusterRequest const& @@ -94,6 +161,29 @@ AzureClustersTracingConnection::UpdateAzureCluster( child_->UpdateAzureCluster(request)); } +StatusOr +AzureClustersTracingConnection::UpdateAzureCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::gkemulticloud::v1::UpdateAzureClusterRequest const& + request) { + auto span = internal::MakeSpan( + "gkemulticloud_v1::AzureClustersConnection::UpdateAzureCluster"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->UpdateAzureCluster(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +AzureClustersTracingConnection::UpdateAzureCluster( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "gkemulticloud_v1::AzureClustersConnection::UpdateAzureCluster"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->UpdateAzureCluster( + ExperimentalTag{}, operation)); +} + StatusOr AzureClustersTracingConnection::GetAzureCluster( google::cloud::gkemulticloud::v1::GetAzureClusterRequest const& request) { @@ -126,6 +216,29 @@ AzureClustersTracingConnection::DeleteAzureCluster( child_->DeleteAzureCluster(request)); } +StatusOr +AzureClustersTracingConnection::DeleteAzureCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::gkemulticloud::v1::DeleteAzureClusterRequest const& + request) { + auto span = internal::MakeSpan( + "gkemulticloud_v1::AzureClustersConnection::DeleteAzureCluster"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->DeleteAzureCluster(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +AzureClustersTracingConnection::DeleteAzureCluster( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "gkemulticloud_v1::AzureClustersConnection::DeleteAzureCluster"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->DeleteAzureCluster( + ExperimentalTag{}, operation)); +} + StatusOr< google::cloud::gkemulticloud::v1::GenerateAzureClusterAgentTokenResponse> AzureClustersTracingConnection::GenerateAzureClusterAgentToken( @@ -160,6 +273,29 @@ AzureClustersTracingConnection::CreateAzureNodePool( child_->CreateAzureNodePool(request)); } +StatusOr +AzureClustersTracingConnection::CreateAzureNodePool( + ExperimentalTag, NoAwaitTag, + google::cloud::gkemulticloud::v1::CreateAzureNodePoolRequest const& + request) { + auto span = internal::MakeSpan( + "gkemulticloud_v1::AzureClustersConnection::CreateAzureNodePool"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->CreateAzureNodePool(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +AzureClustersTracingConnection::CreateAzureNodePool( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "gkemulticloud_v1::AzureClustersConnection::CreateAzureNodePool"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->CreateAzureNodePool( + ExperimentalTag{}, operation)); +} + future> AzureClustersTracingConnection::UpdateAzureNodePool( google::cloud::gkemulticloud::v1::UpdateAzureNodePoolRequest const& @@ -171,6 +307,29 @@ AzureClustersTracingConnection::UpdateAzureNodePool( child_->UpdateAzureNodePool(request)); } +StatusOr +AzureClustersTracingConnection::UpdateAzureNodePool( + ExperimentalTag, NoAwaitTag, + google::cloud::gkemulticloud::v1::UpdateAzureNodePoolRequest const& + request) { + auto span = internal::MakeSpan( + "gkemulticloud_v1::AzureClustersConnection::UpdateAzureNodePool"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->UpdateAzureNodePool(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +AzureClustersTracingConnection::UpdateAzureNodePool( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "gkemulticloud_v1::AzureClustersConnection::UpdateAzureNodePool"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->UpdateAzureNodePool( + ExperimentalTag{}, operation)); +} + StatusOr AzureClustersTracingConnection::GetAzureNodePool( google::cloud::gkemulticloud::v1::GetAzureNodePoolRequest const& request) { @@ -203,6 +362,29 @@ AzureClustersTracingConnection::DeleteAzureNodePool( child_->DeleteAzureNodePool(request)); } +StatusOr +AzureClustersTracingConnection::DeleteAzureNodePool( + ExperimentalTag, NoAwaitTag, + google::cloud::gkemulticloud::v1::DeleteAzureNodePoolRequest const& + request) { + auto span = internal::MakeSpan( + "gkemulticloud_v1::AzureClustersConnection::DeleteAzureNodePool"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->DeleteAzureNodePool(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +AzureClustersTracingConnection::DeleteAzureNodePool( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "gkemulticloud_v1::AzureClustersConnection::DeleteAzureNodePool"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->DeleteAzureNodePool( + ExperimentalTag{}, operation)); +} + StatusOr AzureClustersTracingConnection::GetAzureOpenIdConfig( google::cloud::gkemulticloud::v1::GetAzureOpenIdConfigRequest const& diff --git a/google/cloud/gkemulticloud/v1/internal/azure_clusters_tracing_connection.h b/google/cloud/gkemulticloud/v1/internal/azure_clusters_tracing_connection.h index e2419020df73f..a08a8bdd50c90 100644 --- a/google/cloud/gkemulticloud/v1/internal/azure_clusters_tracing_connection.h +++ b/google/cloud/gkemulticloud/v1/internal/azure_clusters_tracing_connection.h @@ -45,6 +45,15 @@ class AzureClustersTracingConnection google::cloud::gkemulticloud::v1::CreateAzureClientRequest const& request) override; + StatusOr CreateAzureClient( + ExperimentalTag, NoAwaitTag, + google::cloud::gkemulticloud::v1::CreateAzureClientRequest const& request) + override; + + future> + CreateAzureClient(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetAzureClient( google::cloud::gkemulticloud::v1::GetAzureClientRequest const& request) override; @@ -58,16 +67,43 @@ class AzureClustersTracingConnection google::cloud::gkemulticloud::v1::DeleteAzureClientRequest const& request) override; + StatusOr DeleteAzureClient( + ExperimentalTag, NoAwaitTag, + google::cloud::gkemulticloud::v1::DeleteAzureClientRequest const& request) + override; + + future> + DeleteAzureClient(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> CreateAzureCluster( google::cloud::gkemulticloud::v1::CreateAzureClusterRequest const& request) override; + StatusOr CreateAzureCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::gkemulticloud::v1::CreateAzureClusterRequest const& + request) override; + + future> + CreateAzureCluster(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateAzureCluster( google::cloud::gkemulticloud::v1::UpdateAzureClusterRequest const& request) override; + StatusOr UpdateAzureCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::gkemulticloud::v1::UpdateAzureClusterRequest const& + request) override; + + future> + UpdateAzureCluster(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetAzureCluster( google::cloud::gkemulticloud::v1::GetAzureClusterRequest const& request) override; @@ -81,6 +117,15 @@ class AzureClustersTracingConnection google::cloud::gkemulticloud::v1::DeleteAzureClusterRequest const& request) override; + StatusOr DeleteAzureCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::gkemulticloud::v1::DeleteAzureClusterRequest const& + request) override; + + future> + DeleteAzureCluster(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr< google::cloud::gkemulticloud::v1::GenerateAzureClusterAgentTokenResponse> GenerateAzureClusterAgentToken( @@ -97,11 +142,29 @@ class AzureClustersTracingConnection google::cloud::gkemulticloud::v1::CreateAzureNodePoolRequest const& request) override; + StatusOr CreateAzureNodePool( + ExperimentalTag, NoAwaitTag, + google::cloud::gkemulticloud::v1::CreateAzureNodePoolRequest const& + request) override; + + future> + CreateAzureNodePool(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateAzureNodePool( google::cloud::gkemulticloud::v1::UpdateAzureNodePoolRequest const& request) override; + StatusOr UpdateAzureNodePool( + ExperimentalTag, NoAwaitTag, + google::cloud::gkemulticloud::v1::UpdateAzureNodePoolRequest const& + request) override; + + future> + UpdateAzureNodePool(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetAzureNodePool( google::cloud::gkemulticloud::v1::GetAzureNodePoolRequest const& request) override; @@ -115,6 +178,15 @@ class AzureClustersTracingConnection google::cloud::gkemulticloud::v1::DeleteAzureNodePoolRequest const& request) override; + StatusOr DeleteAzureNodePool( + ExperimentalTag, NoAwaitTag, + google::cloud::gkemulticloud::v1::DeleteAzureNodePoolRequest const& + request) override; + + future> + DeleteAzureNodePool(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetAzureOpenIdConfig( google::cloud::gkemulticloud::v1::GetAzureOpenIdConfigRequest const& diff --git a/google/cloud/gkemulticloud/v1/mocks/mock_attached_clusters_connection.h b/google/cloud/gkemulticloud/v1/mocks/mock_attached_clusters_connection.h index db365f985c2ba..d641a7c03c841 100644 --- a/google/cloud/gkemulticloud/v1/mocks/mock_attached_clusters_connection.h +++ b/google/cloud/gkemulticloud/v1/mocks/mock_attached_clusters_connection.h @@ -54,6 +54,19 @@ class MockAttachedClustersConnection request), (override)); + MOCK_METHOD( + StatusOr, CreateAttachedCluster, + (ExperimentalTag, NoAwaitTag, + google::cloud::gkemulticloud::v1::CreateAttachedClusterRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + CreateAttachedCluster, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, UpdateAttachedCluster, @@ -61,6 +74,19 @@ class MockAttachedClustersConnection request), (override)); + MOCK_METHOD( + StatusOr, UpdateAttachedCluster, + (ExperimentalTag, NoAwaitTag, + google::cloud::gkemulticloud::v1::UpdateAttachedClusterRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + UpdateAttachedCluster, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, ImportAttachedCluster, @@ -68,6 +94,19 @@ class MockAttachedClustersConnection request), (override)); + MOCK_METHOD( + StatusOr, ImportAttachedCluster, + (ExperimentalTag, NoAwaitTag, + google::cloud::gkemulticloud::v1::ImportAttachedClusterRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + ImportAttachedCluster, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr, GetAttachedCluster, @@ -88,6 +127,19 @@ class MockAttachedClustersConnection request), (override)); + MOCK_METHOD( + StatusOr, DeleteAttachedCluster, + (ExperimentalTag, NoAwaitTag, + google::cloud::gkemulticloud::v1::DeleteAttachedClusterRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + DeleteAttachedCluster, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr, GetAttachedServerConfig, diff --git a/google/cloud/gkemulticloud/v1/mocks/mock_aws_clusters_connection.h b/google/cloud/gkemulticloud/v1/mocks/mock_aws_clusters_connection.h index d5103459a497f..80a4058456ea7 100644 --- a/google/cloud/gkemulticloud/v1/mocks/mock_aws_clusters_connection.h +++ b/google/cloud/gkemulticloud/v1/mocks/mock_aws_clusters_connection.h @@ -53,12 +53,36 @@ class MockAwsClustersConnection request), (override)); + MOCK_METHOD(StatusOr, CreateAwsCluster, + (ExperimentalTag, NoAwaitTag, + google::cloud::gkemulticloud::v1::CreateAwsClusterRequest const& + request), + (override)); + + MOCK_METHOD(future>, + CreateAwsCluster, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, UpdateAwsCluster, (google::cloud::gkemulticloud::v1::UpdateAwsClusterRequest const& request), (override)); + MOCK_METHOD(StatusOr, UpdateAwsCluster, + (ExperimentalTag, NoAwaitTag, + google::cloud::gkemulticloud::v1::UpdateAwsClusterRequest const& + request), + (override)); + + MOCK_METHOD(future>, + UpdateAwsCluster, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr, GetAwsCluster, (google::cloud::gkemulticloud::v1::GetAwsClusterRequest const& request), @@ -77,6 +101,18 @@ class MockAwsClustersConnection request), (override)); + MOCK_METHOD(StatusOr, DeleteAwsCluster, + (ExperimentalTag, NoAwaitTag, + google::cloud::gkemulticloud::v1::DeleteAwsClusterRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + DeleteAwsCluster, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(StatusOr, GenerateAwsClusterAgentToken, @@ -98,12 +134,36 @@ class MockAwsClustersConnection request), (override)); + MOCK_METHOD(StatusOr, CreateAwsNodePool, + (ExperimentalTag, NoAwaitTag, + google::cloud::gkemulticloud::v1::CreateAwsNodePoolRequest const& + request), + (override)); + + MOCK_METHOD(future>, + CreateAwsNodePool, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, UpdateAwsNodePool, (google::cloud::gkemulticloud::v1::UpdateAwsNodePoolRequest const& request), (override)); + MOCK_METHOD(StatusOr, UpdateAwsNodePool, + (ExperimentalTag, NoAwaitTag, + google::cloud::gkemulticloud::v1::UpdateAwsNodePoolRequest const& + request), + (override)); + + MOCK_METHOD(future>, + UpdateAwsNodePool, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, RollbackAwsNodePoolUpdate, @@ -111,6 +171,19 @@ class MockAwsClustersConnection request), (override)); + MOCK_METHOD( + StatusOr, RollbackAwsNodePoolUpdate, + (ExperimentalTag, NoAwaitTag, + google::cloud::gkemulticloud::v1::RollbackAwsNodePoolUpdateRequest const& + request), + (override)); + + MOCK_METHOD(future>, + RollbackAwsNodePoolUpdate, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr, GetAwsNodePool, (google::cloud::gkemulticloud::v1::GetAwsNodePoolRequest const& request), @@ -129,6 +202,18 @@ class MockAwsClustersConnection request), (override)); + MOCK_METHOD(StatusOr, DeleteAwsNodePool, + (ExperimentalTag, NoAwaitTag, + google::cloud::gkemulticloud::v1::DeleteAwsNodePoolRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + DeleteAwsNodePool, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr, GetAwsOpenIdConfig, diff --git a/google/cloud/gkemulticloud/v1/mocks/mock_azure_clusters_connection.h b/google/cloud/gkemulticloud/v1/mocks/mock_azure_clusters_connection.h index 5f9f97183b8b2..2651a63073c36 100644 --- a/google/cloud/gkemulticloud/v1/mocks/mock_azure_clusters_connection.h +++ b/google/cloud/gkemulticloud/v1/mocks/mock_azure_clusters_connection.h @@ -53,6 +53,18 @@ class MockAzureClustersConnection request), (override)); + MOCK_METHOD(StatusOr, CreateAzureClient, + (ExperimentalTag, NoAwaitTag, + google::cloud::gkemulticloud::v1::CreateAzureClientRequest const& + request), + (override)); + + MOCK_METHOD(future>, + CreateAzureClient, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr, GetAzureClient, (google::cloud::gkemulticloud::v1::GetAzureClientRequest const& request), @@ -71,6 +83,18 @@ class MockAzureClustersConnection request), (override)); + MOCK_METHOD(StatusOr, DeleteAzureClient, + (ExperimentalTag, NoAwaitTag, + google::cloud::gkemulticloud::v1::DeleteAzureClientRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + DeleteAzureClient, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, CreateAzureCluster, @@ -78,6 +102,19 @@ class MockAzureClustersConnection request), (override)); + MOCK_METHOD( + StatusOr, CreateAzureCluster, + (ExperimentalTag, NoAwaitTag, + google::cloud::gkemulticloud::v1::CreateAzureClusterRequest const& + request), + (override)); + + MOCK_METHOD(future>, + CreateAzureCluster, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, UpdateAzureCluster, @@ -85,6 +122,19 @@ class MockAzureClustersConnection request), (override)); + MOCK_METHOD( + StatusOr, UpdateAzureCluster, + (ExperimentalTag, NoAwaitTag, + google::cloud::gkemulticloud::v1::UpdateAzureClusterRequest const& + request), + (override)); + + MOCK_METHOD(future>, + UpdateAzureCluster, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr, GetAzureCluster, (google::cloud::gkemulticloud::v1::GetAzureClusterRequest const& request), @@ -103,6 +153,19 @@ class MockAzureClustersConnection request), (override)); + MOCK_METHOD( + StatusOr, DeleteAzureCluster, + (ExperimentalTag, NoAwaitTag, + google::cloud::gkemulticloud::v1::DeleteAzureClusterRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + DeleteAzureCluster, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(StatusOr, GenerateAzureClusterAgentToken, @@ -125,6 +188,19 @@ class MockAzureClustersConnection request), (override)); + MOCK_METHOD( + StatusOr, CreateAzureNodePool, + (ExperimentalTag, NoAwaitTag, + google::cloud::gkemulticloud::v1::CreateAzureNodePoolRequest const& + request), + (override)); + + MOCK_METHOD(future>, + CreateAzureNodePool, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, UpdateAzureNodePool, @@ -132,6 +208,19 @@ class MockAzureClustersConnection request), (override)); + MOCK_METHOD( + StatusOr, UpdateAzureNodePool, + (ExperimentalTag, NoAwaitTag, + google::cloud::gkemulticloud::v1::UpdateAzureNodePoolRequest const& + request), + (override)); + + MOCK_METHOD(future>, + UpdateAzureNodePool, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(StatusOr, GetAzureNodePool, (google::cloud::gkemulticloud::v1::GetAzureNodePoolRequest const& @@ -151,6 +240,19 @@ class MockAzureClustersConnection request), (override)); + MOCK_METHOD( + StatusOr, DeleteAzureNodePool, + (ExperimentalTag, NoAwaitTag, + google::cloud::gkemulticloud::v1::DeleteAzureNodePoolRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + DeleteAzureNodePool, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr, GetAzureOpenIdConfig, diff --git a/google/cloud/google_cloud_cpp_common.bzl b/google/cloud/google_cloud_cpp_common.bzl index f2e08a8bceffa..6a80a7bacce39 100644 --- a/google/cloud/google_cloud_cpp_common.bzl +++ b/google/cloud/google_cloud_cpp_common.bzl @@ -97,6 +97,7 @@ google_cloud_cpp_common_hdrs = [ "kms_key_name.h", "location.h", "log.h", + "no_await_tag.h", "opentelemetry_options.h", "optional.h", "options.h", diff --git a/google/cloud/google_cloud_cpp_common.cmake b/google/cloud/google_cloud_cpp_common.cmake index a2d628bcdbd20..09f3854b53a17 100644 --- a/google/cloud/google_cloud_cpp_common.cmake +++ b/google/cloud/google_cloud_cpp_common.cmake @@ -154,6 +154,7 @@ add_library( location.h log.cc log.h + no_await_tag.h opentelemetry_options.h optional.h options.cc diff --git a/google/cloud/iam/admin/v1/iam_connection.h b/google/cloud/iam/admin/v1/iam_connection.h index 3873617ccde5a..13faf388cf741 100644 --- a/google/cloud/iam/admin/v1/iam_connection.h +++ b/google/cloud/iam/admin/v1/iam_connection.h @@ -22,6 +22,7 @@ #include "google/cloud/iam/admin/v1/iam_connection_idempotency_policy.h" #include "google/cloud/iam/admin/v1/internal/iam_retry_traits.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/internal/retry_policy_impl.h" #include "google/cloud/options.h" #include "google/cloud/status_or.h" diff --git a/google/cloud/iam/credentials/v1/iam_credentials_connection.h b/google/cloud/iam/credentials/v1/iam_credentials_connection.h index 130c86a4ba7eb..7b69d8362e644 100644 --- a/google/cloud/iam/credentials/v1/iam_credentials_connection.h +++ b/google/cloud/iam/credentials/v1/iam_credentials_connection.h @@ -22,6 +22,7 @@ #include "google/cloud/iam/credentials/v1/iam_credentials_connection_idempotency_policy.h" #include "google/cloud/iam/credentials/v1/internal/iam_credentials_retry_traits.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/internal/retry_policy_impl.h" #include "google/cloud/options.h" #include "google/cloud/status_or.h" diff --git a/google/cloud/iam/v1/iam_policy_connection.h b/google/cloud/iam/v1/iam_policy_connection.h index 80a1fca3574c4..487d7596cbed3 100644 --- a/google/cloud/iam/v1/iam_policy_connection.h +++ b/google/cloud/iam/v1/iam_policy_connection.h @@ -22,6 +22,7 @@ #include "google/cloud/iam/v1/iam_policy_connection_idempotency_policy.h" #include "google/cloud/iam/v1/internal/iam_policy_retry_traits.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/internal/retry_policy_impl.h" #include "google/cloud/options.h" #include "google/cloud/status_or.h" diff --git a/google/cloud/iam/v2/internal/policies_connection_impl.cc b/google/cloud/iam/v2/internal/policies_connection_impl.cc index bce2943cb96c9..07ae194d64fce 100644 --- a/google/cloud/iam/v2/internal/policies_connection_impl.cc +++ b/google/cloud/iam/v2/internal/policies_connection_impl.cc @@ -143,6 +143,55 @@ future> PoliciesConnectionImpl::CreatePolicy( polling_policy(*current), __func__); } +StatusOr PoliciesConnectionImpl::CreatePolicy( + ExperimentalTag, NoAwaitTag, + google::iam::v2::CreatePolicyRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreatePolicy(request), + [this](grpc::ClientContext& context, Options const& options, + google::iam::v2::CreatePolicyRequest const& request) { + return stub_->CreatePolicy(context, options, request); + }, + *current, request, __func__); +} + +future> PoliciesConnectionImpl::CreatePolicy( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to CreatePolicy", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::iam::v2::Policy>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::iam::v2::Policy>, + polling_policy(*current), __func__); +} + future> PoliciesConnectionImpl::UpdatePolicy( google::iam::v2::UpdatePolicyRequest const& request) { auto current = google::cloud::internal::SaveCurrentOptions(); @@ -180,6 +229,55 @@ future> PoliciesConnectionImpl::UpdatePolicy( polling_policy(*current), __func__); } +StatusOr PoliciesConnectionImpl::UpdatePolicy( + ExperimentalTag, NoAwaitTag, + google::iam::v2::UpdatePolicyRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UpdatePolicy(request), + [this](grpc::ClientContext& context, Options const& options, + google::iam::v2::UpdatePolicyRequest const& request) { + return stub_->UpdatePolicy(context, options, request); + }, + *current, request, __func__); +} + +future> PoliciesConnectionImpl::UpdatePolicy( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to UpdatePolicy", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::iam::v2::Policy>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::iam::v2::Policy>, + polling_policy(*current), __func__); +} + future> PoliciesConnectionImpl::DeletePolicy( google::iam::v2::DeletePolicyRequest const& request) { auto current = google::cloud::internal::SaveCurrentOptions(); @@ -217,6 +315,55 @@ future> PoliciesConnectionImpl::DeletePolicy( polling_policy(*current), __func__); } +StatusOr PoliciesConnectionImpl::DeletePolicy( + ExperimentalTag, NoAwaitTag, + google::iam::v2::DeletePolicyRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeletePolicy(request), + [this](grpc::ClientContext& context, Options const& options, + google::iam::v2::DeletePolicyRequest const& request) { + return stub_->DeletePolicy(context, options, request); + }, + *current, request, __func__); +} + +future> PoliciesConnectionImpl::DeletePolicy( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to DeletePolicy", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::iam::v2::Policy>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::iam::v2::Policy>, + polling_policy(*current), __func__); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace iam_v2_internal } // namespace cloud diff --git a/google/cloud/iam/v2/internal/policies_connection_impl.h b/google/cloud/iam/v2/internal/policies_connection_impl.h index 50aa1ee240682..6cfde6750c423 100644 --- a/google/cloud/iam/v2/internal/policies_connection_impl.h +++ b/google/cloud/iam/v2/internal/policies_connection_impl.h @@ -59,12 +59,36 @@ class PoliciesConnectionImpl : public iam_v2::PoliciesConnection { future> CreatePolicy( google::iam::v2::CreatePolicyRequest const& request) override; + StatusOr CreatePolicy( + ExperimentalTag, NoAwaitTag, + google::iam::v2::CreatePolicyRequest const& request) override; + + future> CreatePolicy( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdatePolicy( google::iam::v2::UpdatePolicyRequest const& request) override; + StatusOr UpdatePolicy( + ExperimentalTag, NoAwaitTag, + google::iam::v2::UpdatePolicyRequest const& request) override; + + future> UpdatePolicy( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeletePolicy( google::iam::v2::DeletePolicyRequest const& request) override; + StatusOr DeletePolicy( + ExperimentalTag, NoAwaitTag, + google::iam::v2::DeletePolicyRequest const& request) override; + + future> DeletePolicy( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + private: std::unique_ptr background_; std::shared_ptr stub_; diff --git a/google/cloud/iam/v2/internal/policies_tracing_connection.cc b/google/cloud/iam/v2/internal/policies_tracing_connection.cc index 92bb0326ebd3a..9a9a90f1d89b1 100644 --- a/google/cloud/iam/v2/internal/policies_tracing_connection.cc +++ b/google/cloud/iam/v2/internal/policies_tracing_connection.cc @@ -57,6 +57,25 @@ PoliciesTracingConnection::CreatePolicy( return internal::EndSpan(std::move(span), child_->CreatePolicy(request)); } +StatusOr +PoliciesTracingConnection::CreatePolicy( + ExperimentalTag, NoAwaitTag, + google::iam::v2::CreatePolicyRequest const& request) { + auto span = internal::MakeSpan("iam_v2::PoliciesConnection::CreatePolicy"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->CreatePolicy(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +PoliciesTracingConnection::CreatePolicy( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan("iam_v2::PoliciesConnection::CreatePolicy"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->CreatePolicy(ExperimentalTag{}, operation)); +} + future> PoliciesTracingConnection::UpdatePolicy( google::iam::v2::UpdatePolicyRequest const& request) { @@ -65,6 +84,25 @@ PoliciesTracingConnection::UpdatePolicy( return internal::EndSpan(std::move(span), child_->UpdatePolicy(request)); } +StatusOr +PoliciesTracingConnection::UpdatePolicy( + ExperimentalTag, NoAwaitTag, + google::iam::v2::UpdatePolicyRequest const& request) { + auto span = internal::MakeSpan("iam_v2::PoliciesConnection::UpdatePolicy"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->UpdatePolicy(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +PoliciesTracingConnection::UpdatePolicy( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan("iam_v2::PoliciesConnection::UpdatePolicy"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->UpdatePolicy(ExperimentalTag{}, operation)); +} + future> PoliciesTracingConnection::DeletePolicy( google::iam::v2::DeletePolicyRequest const& request) { @@ -73,6 +111,25 @@ PoliciesTracingConnection::DeletePolicy( return internal::EndSpan(std::move(span), child_->DeletePolicy(request)); } +StatusOr +PoliciesTracingConnection::DeletePolicy( + ExperimentalTag, NoAwaitTag, + google::iam::v2::DeletePolicyRequest const& request) { + auto span = internal::MakeSpan("iam_v2::PoliciesConnection::DeletePolicy"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->DeletePolicy(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +PoliciesTracingConnection::DeletePolicy( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan("iam_v2::PoliciesConnection::DeletePolicy"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->DeletePolicy(ExperimentalTag{}, operation)); +} + #endif // GOOGLE_CLOUD_CPP_HAVE_OPENTELEMETRY std::shared_ptr MakePoliciesTracingConnection( diff --git a/google/cloud/iam/v2/internal/policies_tracing_connection.h b/google/cloud/iam/v2/internal/policies_tracing_connection.h index 9de4b1fe022e4..233d41a207bbd 100644 --- a/google/cloud/iam/v2/internal/policies_tracing_connection.h +++ b/google/cloud/iam/v2/internal/policies_tracing_connection.h @@ -48,12 +48,36 @@ class PoliciesTracingConnection : public iam_v2::PoliciesConnection { future> CreatePolicy( google::iam::v2::CreatePolicyRequest const& request) override; + StatusOr CreatePolicy( + ExperimentalTag, NoAwaitTag, + google::iam::v2::CreatePolicyRequest const& request) override; + + future> CreatePolicy( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdatePolicy( google::iam::v2::UpdatePolicyRequest const& request) override; + StatusOr UpdatePolicy( + ExperimentalTag, NoAwaitTag, + google::iam::v2::UpdatePolicyRequest const& request) override; + + future> UpdatePolicy( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeletePolicy( google::iam::v2::DeletePolicyRequest const& request) override; + StatusOr DeletePolicy( + ExperimentalTag, NoAwaitTag, + google::iam::v2::DeletePolicyRequest const& request) override; + + future> DeletePolicy( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + private: std::shared_ptr child_; }; diff --git a/google/cloud/iam/v2/mocks/mock_policies_connection.h b/google/cloud/iam/v2/mocks/mock_policies_connection.h index f561d357857a4..f6429652384b1 100644 --- a/google/cloud/iam/v2/mocks/mock_policies_connection.h +++ b/google/cloud/iam/v2/mocks/mock_policies_connection.h @@ -56,13 +56,43 @@ class MockPoliciesConnection : public iam_v2::PoliciesConnection { (google::iam::v2::CreatePolicyRequest const& request), (override)); + MOCK_METHOD(StatusOr, CreatePolicy, + (ExperimentalTag, NoAwaitTag, + google::iam::v2::CreatePolicyRequest const& request), + (override)); + + MOCK_METHOD(future>, CreatePolicy, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, UpdatePolicy, (google::iam::v2::UpdatePolicyRequest const& request), (override)); + MOCK_METHOD(StatusOr, UpdatePolicy, + (ExperimentalTag, NoAwaitTag, + google::iam::v2::UpdatePolicyRequest const& request), + (override)); + + MOCK_METHOD(future>, UpdatePolicy, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, DeletePolicy, (google::iam::v2::DeletePolicyRequest const& request), (override)); + + MOCK_METHOD(StatusOr, DeletePolicy, + (ExperimentalTag, NoAwaitTag, + google::iam::v2::DeletePolicyRequest const& request), + (override)); + + MOCK_METHOD(future>, DeletePolicy, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); }; GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END diff --git a/google/cloud/iam/v2/policies_connection.cc b/google/cloud/iam/v2/policies_connection.cc index f71c81ec937b5..c01dad009dbb3 100644 --- a/google/cloud/iam/v2/policies_connection.cc +++ b/google/cloud/iam/v2/policies_connection.cc @@ -56,18 +56,54 @@ future> PoliciesConnection::CreatePolicy( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr PoliciesConnection::CreatePolicy( + ExperimentalTag, NoAwaitTag, google::iam::v2::CreatePolicyRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> PoliciesConnection::CreatePolicy( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> PoliciesConnection::UpdatePolicy( google::iam::v2::UpdatePolicyRequest const&) { return google::cloud::make_ready_future>( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr PoliciesConnection::UpdatePolicy( + ExperimentalTag, NoAwaitTag, google::iam::v2::UpdatePolicyRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> PoliciesConnection::UpdatePolicy( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> PoliciesConnection::DeletePolicy( google::iam::v2::DeletePolicyRequest const&) { return google::cloud::make_ready_future>( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr PoliciesConnection::DeletePolicy( + ExperimentalTag, NoAwaitTag, google::iam::v2::DeletePolicyRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> PoliciesConnection::DeletePolicy( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + std::shared_ptr MakePoliciesConnection(Options options) { internal::CheckExpectedOptions> CreatePolicy( google::iam::v2::CreatePolicyRequest const& request); + virtual StatusOr CreatePolicy( + ExperimentalTag, NoAwaitTag, + google::iam::v2::CreatePolicyRequest const& request); + + virtual future> CreatePolicy( + ExperimentalTag, google::longrunning::Operation const& operation); + virtual future> UpdatePolicy( google::iam::v2::UpdatePolicyRequest const& request); + virtual StatusOr UpdatePolicy( + ExperimentalTag, NoAwaitTag, + google::iam::v2::UpdatePolicyRequest const& request); + + virtual future> UpdatePolicy( + ExperimentalTag, google::longrunning::Operation const& operation); + virtual future> DeletePolicy( google::iam::v2::DeletePolicyRequest const& request); + + virtual StatusOr DeletePolicy( + ExperimentalTag, NoAwaitTag, + google::iam::v2::DeletePolicyRequest const& request); + + virtual future> DeletePolicy( + ExperimentalTag, google::longrunning::Operation const& operation); }; /** diff --git a/google/cloud/iap/v1/identity_aware_proxy_admin_connection.h b/google/cloud/iap/v1/identity_aware_proxy_admin_connection.h index 9a9004f3061b6..fd798d4a8ceca 100644 --- a/google/cloud/iap/v1/identity_aware_proxy_admin_connection.h +++ b/google/cloud/iap/v1/identity_aware_proxy_admin_connection.h @@ -22,6 +22,7 @@ #include "google/cloud/iap/v1/identity_aware_proxy_admin_connection_idempotency_policy.h" #include "google/cloud/iap/v1/internal/identity_aware_proxy_admin_retry_traits.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/internal/retry_policy_impl.h" #include "google/cloud/options.h" #include "google/cloud/status_or.h" diff --git a/google/cloud/iap/v1/identity_aware_proxy_o_auth_connection.h b/google/cloud/iap/v1/identity_aware_proxy_o_auth_connection.h index 740202818b9f2..7edb1e8b1e11d 100644 --- a/google/cloud/iap/v1/identity_aware_proxy_o_auth_connection.h +++ b/google/cloud/iap/v1/identity_aware_proxy_o_auth_connection.h @@ -22,6 +22,7 @@ #include "google/cloud/iap/v1/identity_aware_proxy_o_auth_connection_idempotency_policy.h" #include "google/cloud/iap/v1/internal/identity_aware_proxy_o_auth_retry_traits.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/internal/retry_policy_impl.h" #include "google/cloud/options.h" #include "google/cloud/status_or.h" diff --git a/google/cloud/ids/v1/ids_connection.cc b/google/cloud/ids/v1/ids_connection.cc index e43cdd1409172..020b3bb75af6c 100644 --- a/google/cloud/ids/v1/ids_connection.cc +++ b/google/cloud/ids/v1/ids_connection.cc @@ -58,6 +58,21 @@ IDSConnection::CreateEndpoint( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr IDSConnection::CreateEndpoint( + ExperimentalTag, NoAwaitTag, + google::cloud::ids::v1::CreateEndpointRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +IDSConnection::CreateEndpoint(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> IDSConnection::DeleteEndpoint( google::cloud::ids::v1::DeleteEndpointRequest const&) { @@ -66,6 +81,21 @@ IDSConnection::DeleteEndpoint( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr IDSConnection::DeleteEndpoint( + ExperimentalTag, NoAwaitTag, + google::cloud::ids::v1::DeleteEndpointRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +IDSConnection::DeleteEndpoint(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + std::shared_ptr MakeIDSConnection(Options options) { internal::CheckExpectedOptions> CreateEndpoint( google::cloud::ids::v1::CreateEndpointRequest const& request); + virtual StatusOr CreateEndpoint( + ExperimentalTag, NoAwaitTag, + google::cloud::ids::v1::CreateEndpointRequest const& request); + + virtual future> CreateEndpoint( + ExperimentalTag, google::longrunning::Operation const& operation); + virtual future> DeleteEndpoint(google::cloud::ids::v1::DeleteEndpointRequest const& request); + + virtual StatusOr DeleteEndpoint( + ExperimentalTag, NoAwaitTag, + google::cloud::ids::v1::DeleteEndpointRequest const& request); + + virtual future> + DeleteEndpoint(ExperimentalTag, + google::longrunning::Operation const& operation); }; /** diff --git a/google/cloud/ids/v1/internal/ids_connection_impl.cc b/google/cloud/ids/v1/internal/ids_connection_impl.cc index 6f38f3ab2e3ed..f5b793ae55a76 100644 --- a/google/cloud/ids/v1/internal/ids_connection_impl.cc +++ b/google/cloud/ids/v1/internal/ids_connection_impl.cc @@ -144,6 +144,56 @@ IDSConnectionImpl::CreateEndpoint( polling_policy(*current), __func__); } +StatusOr IDSConnectionImpl::CreateEndpoint( + ExperimentalTag, NoAwaitTag, + google::cloud::ids::v1::CreateEndpointRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateEndpoint(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::ids::v1::CreateEndpointRequest const& request) { + return stub_->CreateEndpoint(context, options, request); + }, + *current, request, __func__); +} + +future> +IDSConnectionImpl::CreateEndpoint( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to CreateEndpoint", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::ids::v1::Endpoint>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::ids::v1::Endpoint>, + polling_policy(*current), __func__); +} + future> IDSConnectionImpl::DeleteEndpoint( google::cloud::ids::v1::DeleteEndpointRequest const& request) { @@ -183,6 +233,57 @@ IDSConnectionImpl::DeleteEndpoint( polling_policy(*current), __func__); } +StatusOr IDSConnectionImpl::DeleteEndpoint( + ExperimentalTag, NoAwaitTag, + google::cloud::ids::v1::DeleteEndpointRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteEndpoint(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::ids::v1::DeleteEndpointRequest const& request) { + return stub_->DeleteEndpoint(context, options, request); + }, + *current, request, __func__); +} + +future> +IDSConnectionImpl::DeleteEndpoint( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteEndpoint", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::ids::v1::OperationMetadata>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::cloud::ids::v1::OperationMetadata>, + polling_policy(*current), __func__); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace ids_v1_internal } // namespace cloud diff --git a/google/cloud/ids/v1/internal/ids_connection_impl.h b/google/cloud/ids/v1/internal/ids_connection_impl.h index 475755c7721f9..12995f4fb9d16 100644 --- a/google/cloud/ids/v1/internal/ids_connection_impl.h +++ b/google/cloud/ids/v1/internal/ids_connection_impl.h @@ -59,9 +59,25 @@ class IDSConnectionImpl : public ids_v1::IDSConnection { future> CreateEndpoint( google::cloud::ids::v1::CreateEndpointRequest const& request) override; + StatusOr CreateEndpoint( + ExperimentalTag, NoAwaitTag, + google::cloud::ids::v1::CreateEndpointRequest const& request) override; + + future> CreateEndpoint( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteEndpoint( google::cloud::ids::v1::DeleteEndpointRequest const& request) override; + StatusOr DeleteEndpoint( + ExperimentalTag, NoAwaitTag, + google::cloud::ids::v1::DeleteEndpointRequest const& request) override; + + future> DeleteEndpoint( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + private: std::unique_ptr background_; std::shared_ptr stub_; diff --git a/google/cloud/ids/v1/internal/ids_tracing_connection.cc b/google/cloud/ids/v1/internal/ids_tracing_connection.cc index 1d1d2b06454c9..7bd67abef3514 100644 --- a/google/cloud/ids/v1/internal/ids_tracing_connection.cc +++ b/google/cloud/ids/v1/internal/ids_tracing_connection.cc @@ -58,6 +58,24 @@ IDSTracingConnection::CreateEndpoint( return internal::EndSpan(std::move(span), child_->CreateEndpoint(request)); } +StatusOr IDSTracingConnection::CreateEndpoint( + ExperimentalTag, NoAwaitTag, + google::cloud::ids::v1::CreateEndpointRequest const& request) { + auto span = internal::MakeSpan("ids_v1::IDSConnection::CreateEndpoint"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->CreateEndpoint(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +IDSTracingConnection::CreateEndpoint( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan("ids_v1::IDSConnection::CreateEndpoint"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->CreateEndpoint(ExperimentalTag{}, operation)); +} + future> IDSTracingConnection::DeleteEndpoint( google::cloud::ids::v1::DeleteEndpointRequest const& request) { @@ -66,6 +84,24 @@ IDSTracingConnection::DeleteEndpoint( return internal::EndSpan(std::move(span), child_->DeleteEndpoint(request)); } +StatusOr IDSTracingConnection::DeleteEndpoint( + ExperimentalTag, NoAwaitTag, + google::cloud::ids::v1::DeleteEndpointRequest const& request) { + auto span = internal::MakeSpan("ids_v1::IDSConnection::DeleteEndpoint"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->DeleteEndpoint(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +IDSTracingConnection::DeleteEndpoint( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan("ids_v1::IDSConnection::DeleteEndpoint"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->DeleteEndpoint(ExperimentalTag{}, operation)); +} + #endif // GOOGLE_CLOUD_CPP_HAVE_OPENTELEMETRY std::shared_ptr MakeIDSTracingConnection( diff --git a/google/cloud/ids/v1/internal/ids_tracing_connection.h b/google/cloud/ids/v1/internal/ids_tracing_connection.h index d1b6adc3e489e..4111a98a11bfe 100644 --- a/google/cloud/ids/v1/internal/ids_tracing_connection.h +++ b/google/cloud/ids/v1/internal/ids_tracing_connection.h @@ -47,9 +47,25 @@ class IDSTracingConnection : public ids_v1::IDSConnection { future> CreateEndpoint( google::cloud::ids::v1::CreateEndpointRequest const& request) override; + StatusOr CreateEndpoint( + ExperimentalTag, NoAwaitTag, + google::cloud::ids::v1::CreateEndpointRequest const& request) override; + + future> CreateEndpoint( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteEndpoint( google::cloud::ids::v1::DeleteEndpointRequest const& request) override; + StatusOr DeleteEndpoint( + ExperimentalTag, NoAwaitTag, + google::cloud::ids::v1::DeleteEndpointRequest const& request) override; + + future> DeleteEndpoint( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + private: std::shared_ptr child_; }; diff --git a/google/cloud/ids/v1/mocks/mock_ids_connection.h b/google/cloud/ids/v1/mocks/mock_ids_connection.h index 1ad279a09d443..a29de2ef642ef 100644 --- a/google/cloud/ids/v1/mocks/mock_ids_connection.h +++ b/google/cloud/ids/v1/mocks/mock_ids_connection.h @@ -59,10 +59,32 @@ class MockIDSConnection : public ids_v1::IDSConnection { (google::cloud::ids::v1::CreateEndpointRequest const& request), (override)); + MOCK_METHOD(StatusOr, CreateEndpoint, + (ExperimentalTag, NoAwaitTag, + google::cloud::ids::v1::CreateEndpointRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateEndpoint, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, DeleteEndpoint, (google::cloud::ids::v1::DeleteEndpointRequest const& request), (override)); + + MOCK_METHOD(StatusOr, DeleteEndpoint, + (ExperimentalTag, NoAwaitTag, + google::cloud::ids::v1::DeleteEndpointRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteEndpoint, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); }; GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END diff --git a/google/cloud/kms/inventory/v1/key_dashboard_connection.h b/google/cloud/kms/inventory/v1/key_dashboard_connection.h index 3c7f1f238cfc9..00302cc2f724b 100644 --- a/google/cloud/kms/inventory/v1/key_dashboard_connection.h +++ b/google/cloud/kms/inventory/v1/key_dashboard_connection.h @@ -22,6 +22,7 @@ #include "google/cloud/kms/inventory/v1/internal/key_dashboard_retry_traits.h" #include "google/cloud/kms/inventory/v1/key_dashboard_connection_idempotency_policy.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/internal/retry_policy_impl.h" #include "google/cloud/options.h" #include "google/cloud/status_or.h" diff --git a/google/cloud/kms/inventory/v1/key_tracking_connection.h b/google/cloud/kms/inventory/v1/key_tracking_connection.h index d0664312a00c3..b0eb4692c2b35 100644 --- a/google/cloud/kms/inventory/v1/key_tracking_connection.h +++ b/google/cloud/kms/inventory/v1/key_tracking_connection.h @@ -22,6 +22,7 @@ #include "google/cloud/kms/inventory/v1/internal/key_tracking_retry_traits.h" #include "google/cloud/kms/inventory/v1/key_tracking_connection_idempotency_policy.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/internal/retry_policy_impl.h" #include "google/cloud/options.h" #include "google/cloud/status_or.h" diff --git a/google/cloud/kms/v1/autokey_admin_connection.h b/google/cloud/kms/v1/autokey_admin_connection.h index 77eeed4467624..5b8ae7b613d3e 100644 --- a/google/cloud/kms/v1/autokey_admin_connection.h +++ b/google/cloud/kms/v1/autokey_admin_connection.h @@ -22,6 +22,7 @@ #include "google/cloud/kms/v1/autokey_admin_connection_idempotency_policy.h" #include "google/cloud/kms/v1/internal/autokey_admin_retry_traits.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/internal/retry_policy_impl.h" #include "google/cloud/options.h" #include "google/cloud/status_or.h" diff --git a/google/cloud/kms/v1/autokey_connection.cc b/google/cloud/kms/v1/autokey_connection.cc index 92bc05f2c57fd..7d1f4f3cebe23 100644 --- a/google/cloud/kms/v1/autokey_connection.cc +++ b/google/cloud/kms/v1/autokey_connection.cc @@ -45,6 +45,21 @@ AutokeyConnection::CreateKeyHandle( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr AutokeyConnection::CreateKeyHandle( + ExperimentalTag, NoAwaitTag, + google::cloud::kms::v1::CreateKeyHandleRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +AutokeyConnection::CreateKeyHandle(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr AutokeyConnection::GetKeyHandle( google::cloud::kms::v1::GetKeyHandleRequest const&) { return Status(StatusCode::kUnimplemented, "not implemented"); diff --git a/google/cloud/kms/v1/autokey_connection.h b/google/cloud/kms/v1/autokey_connection.h index 522d727499328..b21347955b31a 100644 --- a/google/cloud/kms/v1/autokey_connection.h +++ b/google/cloud/kms/v1/autokey_connection.h @@ -22,8 +22,10 @@ #include "google/cloud/kms/v1/autokey_connection_idempotency_policy.h" #include "google/cloud/kms/v1/internal/autokey_retry_traits.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/internal/retry_policy_impl.h" +#include "google/cloud/no_await_tag.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" #include "google/cloud/status_or.h" @@ -184,6 +186,13 @@ class AutokeyConnection { virtual future> CreateKeyHandle( google::cloud::kms::v1::CreateKeyHandleRequest const& request); + virtual StatusOr CreateKeyHandle( + ExperimentalTag, NoAwaitTag, + google::cloud::kms::v1::CreateKeyHandleRequest const& request); + + virtual future> CreateKeyHandle( + ExperimentalTag, google::longrunning::Operation const& operation); + virtual StatusOr GetKeyHandle( google::cloud::kms::v1::GetKeyHandleRequest const& request); diff --git a/google/cloud/kms/v1/ekm_connection.h b/google/cloud/kms/v1/ekm_connection.h index 6f9b1332f889a..de3fcd24e714e 100644 --- a/google/cloud/kms/v1/ekm_connection.h +++ b/google/cloud/kms/v1/ekm_connection.h @@ -22,6 +22,7 @@ #include "google/cloud/kms/v1/ekm_connection_idempotency_policy.h" #include "google/cloud/kms/v1/internal/ekm_retry_traits.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/internal/retry_policy_impl.h" #include "google/cloud/options.h" #include "google/cloud/status_or.h" diff --git a/google/cloud/kms/v1/internal/autokey_connection_impl.cc b/google/cloud/kms/v1/internal/autokey_connection_impl.cc index 5b563b34723b0..b79f7dd25b298 100644 --- a/google/cloud/kms/v1/internal/autokey_connection_impl.cc +++ b/google/cloud/kms/v1/internal/autokey_connection_impl.cc @@ -100,6 +100,56 @@ AutokeyConnectionImpl::CreateKeyHandle( polling_policy(*current), __func__); } +StatusOr AutokeyConnectionImpl::CreateKeyHandle( + ExperimentalTag, NoAwaitTag, + google::cloud::kms::v1::CreateKeyHandleRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateKeyHandle(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::kms::v1::CreateKeyHandleRequest const& request) { + return stub_->CreateKeyHandle(context, options, request); + }, + *current, request, __func__); +} + +future> +AutokeyConnectionImpl::CreateKeyHandle( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to CreateKeyHandle", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::kms::v1::KeyHandle>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::kms::v1::KeyHandle>, + polling_policy(*current), __func__); +} + StatusOr AutokeyConnectionImpl::GetKeyHandle( google::cloud::kms::v1::GetKeyHandleRequest const& request) { auto current = google::cloud::internal::SaveCurrentOptions(); diff --git a/google/cloud/kms/v1/internal/autokey_connection_impl.h b/google/cloud/kms/v1/internal/autokey_connection_impl.h index 94b7bca7f2c48..81a2c5d13137e 100644 --- a/google/cloud/kms/v1/internal/autokey_connection_impl.h +++ b/google/cloud/kms/v1/internal/autokey_connection_impl.h @@ -52,6 +52,14 @@ class AutokeyConnectionImpl : public kms_v1::AutokeyConnection { future> CreateKeyHandle( google::cloud::kms::v1::CreateKeyHandleRequest const& request) override; + StatusOr CreateKeyHandle( + ExperimentalTag, NoAwaitTag, + google::cloud::kms::v1::CreateKeyHandleRequest const& request) override; + + future> CreateKeyHandle( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetKeyHandle( google::cloud::kms::v1::GetKeyHandleRequest const& request) override; diff --git a/google/cloud/kms/v1/internal/autokey_tracing_connection.cc b/google/cloud/kms/v1/internal/autokey_tracing_connection.cc index 7caea6dd9c7c7..a995324678d32 100644 --- a/google/cloud/kms/v1/internal/autokey_tracing_connection.cc +++ b/google/cloud/kms/v1/internal/autokey_tracing_connection.cc @@ -40,6 +40,25 @@ AutokeyTracingConnection::CreateKeyHandle( return internal::EndSpan(std::move(span), child_->CreateKeyHandle(request)); } +StatusOr +AutokeyTracingConnection::CreateKeyHandle( + ExperimentalTag, NoAwaitTag, + google::cloud::kms::v1::CreateKeyHandleRequest const& request) { + auto span = internal::MakeSpan("kms_v1::AutokeyConnection::CreateKeyHandle"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->CreateKeyHandle(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +AutokeyTracingConnection::CreateKeyHandle( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan("kms_v1::AutokeyConnection::CreateKeyHandle"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->CreateKeyHandle(ExperimentalTag{}, operation)); +} + StatusOr AutokeyTracingConnection::GetKeyHandle( google::cloud::kms::v1::GetKeyHandleRequest const& request) { diff --git a/google/cloud/kms/v1/internal/autokey_tracing_connection.h b/google/cloud/kms/v1/internal/autokey_tracing_connection.h index d43405628b19b..9edf7f9be9298 100644 --- a/google/cloud/kms/v1/internal/autokey_tracing_connection.h +++ b/google/cloud/kms/v1/internal/autokey_tracing_connection.h @@ -42,6 +42,14 @@ class AutokeyTracingConnection : public kms_v1::AutokeyConnection { future> CreateKeyHandle( google::cloud::kms::v1::CreateKeyHandleRequest const& request) override; + StatusOr CreateKeyHandle( + ExperimentalTag, NoAwaitTag, + google::cloud::kms::v1::CreateKeyHandleRequest const& request) override; + + future> CreateKeyHandle( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetKeyHandle( google::cloud::kms::v1::GetKeyHandleRequest const& request) override; diff --git a/google/cloud/kms/v1/key_management_connection.h b/google/cloud/kms/v1/key_management_connection.h index 8a482c3e3ef17..0a85f94607f58 100644 --- a/google/cloud/kms/v1/key_management_connection.h +++ b/google/cloud/kms/v1/key_management_connection.h @@ -22,6 +22,7 @@ #include "google/cloud/kms/v1/internal/key_management_retry_traits.h" #include "google/cloud/kms/v1/key_management_connection_idempotency_policy.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/internal/retry_policy_impl.h" #include "google/cloud/options.h" #include "google/cloud/status_or.h" diff --git a/google/cloud/kms/v1/mocks/mock_autokey_connection.h b/google/cloud/kms/v1/mocks/mock_autokey_connection.h index dd64a4e283b77..a4c0eab179420 100644 --- a/google/cloud/kms/v1/mocks/mock_autokey_connection.h +++ b/google/cloud/kms/v1/mocks/mock_autokey_connection.h @@ -51,6 +51,17 @@ class MockAutokeyConnection : public kms_v1::AutokeyConnection { (google::cloud::kms::v1::CreateKeyHandleRequest const& request), (override)); + MOCK_METHOD(StatusOr, CreateKeyHandle, + (ExperimentalTag, NoAwaitTag, + google::cloud::kms::v1::CreateKeyHandleRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateKeyHandle, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(StatusOr, GetKeyHandle, (google::cloud::kms::v1::GetKeyHandleRequest const& request), (override)); diff --git a/google/cloud/language/v1/language_connection.h b/google/cloud/language/v1/language_connection.h index 6fc6e325de570..ff74f92ef67c0 100644 --- a/google/cloud/language/v1/language_connection.h +++ b/google/cloud/language/v1/language_connection.h @@ -22,6 +22,7 @@ #include "google/cloud/language/v1/internal/language_retry_traits.h" #include "google/cloud/language/v1/language_connection_idempotency_policy.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/internal/retry_policy_impl.h" #include "google/cloud/options.h" #include "google/cloud/status_or.h" diff --git a/google/cloud/language/v2/language_connection.h b/google/cloud/language/v2/language_connection.h index 0d3a1a236e54b..4f9d8658980a5 100644 --- a/google/cloud/language/v2/language_connection.h +++ b/google/cloud/language/v2/language_connection.h @@ -22,6 +22,7 @@ #include "google/cloud/language/v2/internal/language_retry_traits.h" #include "google/cloud/language/v2/language_connection_idempotency_policy.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/internal/retry_policy_impl.h" #include "google/cloud/options.h" #include "google/cloud/status_or.h" diff --git a/google/cloud/logging/v2/config_service_v2_connection.cc b/google/cloud/logging/v2/config_service_v2_connection.cc index f7579cb07e345..5312494a55c04 100644 --- a/google/cloud/logging/v2/config_service_v2_connection.cc +++ b/google/cloud/logging/v2/config_service_v2_connection.cc @@ -59,6 +59,22 @@ ConfigServiceV2Connection::CreateBucketAsync( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +ConfigServiceV2Connection::CreateBucketAsync( + ExperimentalTag, NoAwaitTag, + google::logging::v2::CreateBucketRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +ConfigServiceV2Connection::CreateBucketAsync( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> ConfigServiceV2Connection::UpdateBucketAsync( google::logging::v2::UpdateBucketRequest const&) { @@ -67,6 +83,22 @@ ConfigServiceV2Connection::UpdateBucketAsync( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +ConfigServiceV2Connection::UpdateBucketAsync( + ExperimentalTag, NoAwaitTag, + google::logging::v2::UpdateBucketRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +ConfigServiceV2Connection::UpdateBucketAsync( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr ConfigServiceV2Connection::CreateBucket( google::logging::v2::CreateBucketRequest const&) { @@ -150,6 +182,20 @@ ConfigServiceV2Connection::CreateLink( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr ConfigServiceV2Connection::CreateLink( + ExperimentalTag, NoAwaitTag, + google::logging::v2::CreateLinkRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +ConfigServiceV2Connection::CreateLink(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> ConfigServiceV2Connection::DeleteLink( google::logging::v2::DeleteLinkRequest const&) { @@ -158,6 +204,21 @@ ConfigServiceV2Connection::DeleteLink( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr ConfigServiceV2Connection::DeleteLink( + ExperimentalTag, NoAwaitTag, + google::logging::v2::DeleteLinkRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +ConfigServiceV2Connection::DeleteLink(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StreamRange ConfigServiceV2Connection::ListLinks( google::logging::v2:: ListLinksRequest) { // NOLINT(performance-unnecessary-value-param) @@ -232,6 +293,22 @@ ConfigServiceV2Connection::CopyLogEntries( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +ConfigServiceV2Connection::CopyLogEntries( + ExperimentalTag, NoAwaitTag, + google::logging::v2::CopyLogEntriesRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +ConfigServiceV2Connection::CopyLogEntries( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + std::shared_ptr MakeConfigServiceV2Connection( Options options) { internal::CheckExpectedOptions> CreateBucketAsync( google::logging::v2::CreateBucketRequest const& request); + virtual StatusOr CreateBucketAsync( + ExperimentalTag, NoAwaitTag, + google::logging::v2::CreateBucketRequest const& request); + + virtual future> CreateBucketAsync( + ExperimentalTag, google::longrunning::Operation const& operation); + virtual future> UpdateBucketAsync( google::logging::v2::UpdateBucketRequest const& request); + virtual StatusOr UpdateBucketAsync( + ExperimentalTag, NoAwaitTag, + google::logging::v2::UpdateBucketRequest const& request); + + virtual future> UpdateBucketAsync( + ExperimentalTag, google::longrunning::Operation const& operation); + virtual StatusOr CreateBucket( google::logging::v2::CreateBucketRequest const& request); @@ -243,9 +259,23 @@ class ConfigServiceV2Connection { virtual future> CreateLink( google::logging::v2::CreateLinkRequest const& request); + virtual StatusOr CreateLink( + ExperimentalTag, NoAwaitTag, + google::logging::v2::CreateLinkRequest const& request); + + virtual future> CreateLink( + ExperimentalTag, google::longrunning::Operation const& operation); + virtual future> DeleteLink( google::logging::v2::DeleteLinkRequest const& request); + virtual StatusOr DeleteLink( + ExperimentalTag, NoAwaitTag, + google::logging::v2::DeleteLinkRequest const& request); + + virtual future> DeleteLink( + ExperimentalTag, google::longrunning::Operation const& operation); + virtual StreamRange ListLinks( google::logging::v2::ListLinksRequest request); @@ -281,6 +311,14 @@ class ConfigServiceV2Connection { virtual future> CopyLogEntries(google::logging::v2::CopyLogEntriesRequest const& request); + + virtual StatusOr CopyLogEntries( + ExperimentalTag, NoAwaitTag, + google::logging::v2::CopyLogEntriesRequest const& request); + + virtual future> + CopyLogEntries(ExperimentalTag, + google::longrunning::Operation const& operation); }; /** diff --git a/google/cloud/logging/v2/internal/config_service_v2_connection_impl.cc b/google/cloud/logging/v2/internal/config_service_v2_connection_impl.cc index b9313a377879c..ec990ed4e760e 100644 --- a/google/cloud/logging/v2/internal/config_service_v2_connection_impl.cc +++ b/google/cloud/logging/v2/internal/config_service_v2_connection_impl.cc @@ -148,6 +148,57 @@ ConfigServiceV2ConnectionImpl::CreateBucketAsync( polling_policy(*current), __func__); } +StatusOr +ConfigServiceV2ConnectionImpl::CreateBucketAsync( + ExperimentalTag, NoAwaitTag, + google::logging::v2::CreateBucketRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateBucketAsync(request), + [this](grpc::ClientContext& context, Options const& options, + google::logging::v2::CreateBucketRequest const& request) { + return stub_->CreateBucketAsync(context, options, request); + }, + *current, request, __func__); +} + +future> +ConfigServiceV2ConnectionImpl::CreateBucketAsync( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to CreateBucketAsync", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::logging::v2::LogBucket>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::logging::v2::LogBucket>, + polling_policy(*current), __func__); +} + future> ConfigServiceV2ConnectionImpl::UpdateBucketAsync( google::logging::v2::UpdateBucketRequest const& request) { @@ -186,6 +237,57 @@ ConfigServiceV2ConnectionImpl::UpdateBucketAsync( polling_policy(*current), __func__); } +StatusOr +ConfigServiceV2ConnectionImpl::UpdateBucketAsync( + ExperimentalTag, NoAwaitTag, + google::logging::v2::UpdateBucketRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UpdateBucketAsync(request), + [this](grpc::ClientContext& context, Options const& options, + google::logging::v2::UpdateBucketRequest const& request) { + return stub_->UpdateBucketAsync(context, options, request); + }, + *current, request, __func__); +} + +future> +ConfigServiceV2ConnectionImpl::UpdateBucketAsync( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to UpdateBucketAsync", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::logging::v2::LogBucket>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::logging::v2::LogBucket>, + polling_policy(*current), __func__); +} + StatusOr ConfigServiceV2ConnectionImpl::CreateBucket( google::logging::v2::CreateBucketRequest const& request) { @@ -450,6 +552,56 @@ ConfigServiceV2ConnectionImpl::CreateLink( polling_policy(*current), __func__); } +StatusOr +ConfigServiceV2ConnectionImpl::CreateLink( + ExperimentalTag, NoAwaitTag, + google::logging::v2::CreateLinkRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateLink(request), + [this](grpc::ClientContext& context, Options const& options, + google::logging::v2::CreateLinkRequest const& request) { + return stub_->CreateLink(context, options, request); + }, + *current, request, __func__); +} + +future> +ConfigServiceV2ConnectionImpl::CreateLink( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata().Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to CreateLink", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::logging::v2::Link>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::logging::v2::Link>, + polling_policy(*current), __func__); +} + future> ConfigServiceV2ConnectionImpl::DeleteLink( google::logging::v2::DeleteLinkRequest const& request) { @@ -488,6 +640,56 @@ ConfigServiceV2ConnectionImpl::DeleteLink( polling_policy(*current), __func__); } +StatusOr +ConfigServiceV2ConnectionImpl::DeleteLink( + ExperimentalTag, NoAwaitTag, + google::logging::v2::DeleteLinkRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteLink(request), + [this](grpc::ClientContext& context, Options const& options, + google::logging::v2::DeleteLinkRequest const& request) { + return stub_->DeleteLink(context, options, request); + }, + *current, request, __func__); +} + +future> +ConfigServiceV2ConnectionImpl::DeleteLink( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata().Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteLink", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::logging::v2::LinkMetadata>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::logging::v2::LinkMetadata>, + polling_policy(*current), __func__); +} + StreamRange ConfigServiceV2ConnectionImpl::ListLinks( google::logging::v2::ListLinksRequest request) { request.clear_page_token(); @@ -715,6 +917,58 @@ ConfigServiceV2ConnectionImpl::CopyLogEntries( polling_policy(*current), __func__); } +StatusOr +ConfigServiceV2ConnectionImpl::CopyLogEntries( + ExperimentalTag, NoAwaitTag, + google::logging::v2::CopyLogEntriesRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CopyLogEntries(request), + [this](grpc::ClientContext& context, Options const& options, + google::logging::v2::CopyLogEntriesRequest const& request) { + return stub_->CopyLogEntries(context, options, request); + }, + *current, request, __func__); +} + +future> +ConfigServiceV2ConnectionImpl::CopyLogEntries( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to CopyLogEntries", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::logging::v2::CopyLogEntriesResponse>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::logging::v2::CopyLogEntriesResponse>, + polling_policy(*current), __func__); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace logging_v2_internal } // namespace cloud diff --git a/google/cloud/logging/v2/internal/config_service_v2_connection_impl.h b/google/cloud/logging/v2/internal/config_service_v2_connection_impl.h index 19a65f8a95662..2f89a61f866a2 100644 --- a/google/cloud/logging/v2/internal/config_service_v2_connection_impl.h +++ b/google/cloud/logging/v2/internal/config_service_v2_connection_impl.h @@ -61,9 +61,25 @@ class ConfigServiceV2ConnectionImpl future> CreateBucketAsync( google::logging::v2::CreateBucketRequest const& request) override; + StatusOr CreateBucketAsync( + ExperimentalTag, NoAwaitTag, + google::logging::v2::CreateBucketRequest const& request) override; + + future> CreateBucketAsync( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateBucketAsync( google::logging::v2::UpdateBucketRequest const& request) override; + StatusOr UpdateBucketAsync( + ExperimentalTag, NoAwaitTag, + google::logging::v2::UpdateBucketRequest const& request) override; + + future> UpdateBucketAsync( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr CreateBucket( google::logging::v2::CreateBucketRequest const& request) override; @@ -109,9 +125,25 @@ class ConfigServiceV2ConnectionImpl future> CreateLink( google::logging::v2::CreateLinkRequest const& request) override; + StatusOr CreateLink( + ExperimentalTag, NoAwaitTag, + google::logging::v2::CreateLinkRequest const& request) override; + + future> CreateLink( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteLink( google::logging::v2::DeleteLinkRequest const& request) override; + StatusOr DeleteLink( + ExperimentalTag, NoAwaitTag, + google::logging::v2::DeleteLinkRequest const& request) override; + + future> DeleteLink( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListLinks( google::logging::v2::ListLinksRequest request) override; @@ -148,6 +180,14 @@ class ConfigServiceV2ConnectionImpl future> CopyLogEntries( google::logging::v2::CopyLogEntriesRequest const& request) override; + StatusOr CopyLogEntries( + ExperimentalTag, NoAwaitTag, + google::logging::v2::CopyLogEntriesRequest const& request) override; + + future> CopyLogEntries( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + private: std::unique_ptr background_; std::shared_ptr stub_; diff --git a/google/cloud/logging/v2/internal/config_service_v2_tracing_connection.cc b/google/cloud/logging/v2/internal/config_service_v2_tracing_connection.cc index 7c858f48f91a6..872a7cf3e519a 100644 --- a/google/cloud/logging/v2/internal/config_service_v2_tracing_connection.cc +++ b/google/cloud/logging/v2/internal/config_service_v2_tracing_connection.cc @@ -62,6 +62,28 @@ ConfigServiceV2TracingConnection::CreateBucketAsync( return internal::EndSpan(std::move(span), child_->CreateBucketAsync(request)); } +StatusOr +ConfigServiceV2TracingConnection::CreateBucketAsync( + ExperimentalTag, NoAwaitTag, + google::logging::v2::CreateBucketRequest const& request) { + auto span = internal::MakeSpan( + "logging_v2::ConfigServiceV2Connection::CreateBucketAsync"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->CreateBucketAsync(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +ConfigServiceV2TracingConnection::CreateBucketAsync( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "logging_v2::ConfigServiceV2Connection::CreateBucketAsync"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->CreateBucketAsync(ExperimentalTag{}, operation)); +} + future> ConfigServiceV2TracingConnection::UpdateBucketAsync( google::logging::v2::UpdateBucketRequest const& request) { @@ -71,6 +93,28 @@ ConfigServiceV2TracingConnection::UpdateBucketAsync( return internal::EndSpan(std::move(span), child_->UpdateBucketAsync(request)); } +StatusOr +ConfigServiceV2TracingConnection::UpdateBucketAsync( + ExperimentalTag, NoAwaitTag, + google::logging::v2::UpdateBucketRequest const& request) { + auto span = internal::MakeSpan( + "logging_v2::ConfigServiceV2Connection::UpdateBucketAsync"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->UpdateBucketAsync(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +ConfigServiceV2TracingConnection::UpdateBucketAsync( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "logging_v2::ConfigServiceV2Connection::UpdateBucketAsync"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->UpdateBucketAsync(ExperimentalTag{}, operation)); +} + StatusOr ConfigServiceV2TracingConnection::CreateBucket( google::logging::v2::CreateBucketRequest const& request) { @@ -206,6 +250,27 @@ ConfigServiceV2TracingConnection::CreateLink( return internal::EndSpan(std::move(span), child_->CreateLink(request)); } +StatusOr +ConfigServiceV2TracingConnection::CreateLink( + ExperimentalTag, NoAwaitTag, + google::logging::v2::CreateLinkRequest const& request) { + auto span = + internal::MakeSpan("logging_v2::ConfigServiceV2Connection::CreateLink"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->CreateLink(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +ConfigServiceV2TracingConnection::CreateLink( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = + internal::MakeSpan("logging_v2::ConfigServiceV2Connection::CreateLink"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->CreateLink(ExperimentalTag{}, operation)); +} + future> ConfigServiceV2TracingConnection::DeleteLink( google::logging::v2::DeleteLinkRequest const& request) { @@ -215,6 +280,27 @@ ConfigServiceV2TracingConnection::DeleteLink( return internal::EndSpan(std::move(span), child_->DeleteLink(request)); } +StatusOr +ConfigServiceV2TracingConnection::DeleteLink( + ExperimentalTag, NoAwaitTag, + google::logging::v2::DeleteLinkRequest const& request) { + auto span = + internal::MakeSpan("logging_v2::ConfigServiceV2Connection::DeleteLink"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->DeleteLink(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +ConfigServiceV2TracingConnection::DeleteLink( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = + internal::MakeSpan("logging_v2::ConfigServiceV2Connection::DeleteLink"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->DeleteLink(ExperimentalTag{}, operation)); +} + StreamRange ConfigServiceV2TracingConnection::ListLinks( google::logging::v2::ListLinksRequest request) { @@ -325,6 +411,27 @@ ConfigServiceV2TracingConnection::CopyLogEntries( return internal::EndSpan(std::move(span), child_->CopyLogEntries(request)); } +StatusOr +ConfigServiceV2TracingConnection::CopyLogEntries( + ExperimentalTag, NoAwaitTag, + google::logging::v2::CopyLogEntriesRequest const& request) { + auto span = internal::MakeSpan( + "logging_v2::ConfigServiceV2Connection::CopyLogEntries"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->CopyLogEntries(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +ConfigServiceV2TracingConnection::CopyLogEntries( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "logging_v2::ConfigServiceV2Connection::CopyLogEntries"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->CopyLogEntries(ExperimentalTag{}, operation)); +} + #endif // GOOGLE_CLOUD_CPP_HAVE_OPENTELEMETRY std::shared_ptr diff --git a/google/cloud/logging/v2/internal/config_service_v2_tracing_connection.h b/google/cloud/logging/v2/internal/config_service_v2_tracing_connection.h index cab05808f50b8..e10d0c4f7ab84 100644 --- a/google/cloud/logging/v2/internal/config_service_v2_tracing_connection.h +++ b/google/cloud/logging/v2/internal/config_service_v2_tracing_connection.h @@ -49,9 +49,25 @@ class ConfigServiceV2TracingConnection future> CreateBucketAsync( google::logging::v2::CreateBucketRequest const& request) override; + StatusOr CreateBucketAsync( + ExperimentalTag, NoAwaitTag, + google::logging::v2::CreateBucketRequest const& request) override; + + future> CreateBucketAsync( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateBucketAsync( google::logging::v2::UpdateBucketRequest const& request) override; + StatusOr UpdateBucketAsync( + ExperimentalTag, NoAwaitTag, + google::logging::v2::UpdateBucketRequest const& request) override; + + future> UpdateBucketAsync( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr CreateBucket( google::logging::v2::CreateBucketRequest const& request) override; @@ -97,9 +113,25 @@ class ConfigServiceV2TracingConnection future> CreateLink( google::logging::v2::CreateLinkRequest const& request) override; + StatusOr CreateLink( + ExperimentalTag, NoAwaitTag, + google::logging::v2::CreateLinkRequest const& request) override; + + future> CreateLink( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteLink( google::logging::v2::DeleteLinkRequest const& request) override; + StatusOr DeleteLink( + ExperimentalTag, NoAwaitTag, + google::logging::v2::DeleteLinkRequest const& request) override; + + future> DeleteLink( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListLinks( google::logging::v2::ListLinksRequest request) override; @@ -136,6 +168,14 @@ class ConfigServiceV2TracingConnection future> CopyLogEntries( google::logging::v2::CopyLogEntriesRequest const& request) override; + StatusOr CopyLogEntries( + ExperimentalTag, NoAwaitTag, + google::logging::v2::CopyLogEntriesRequest const& request) override; + + future> CopyLogEntries( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + private: std::shared_ptr child_; }; diff --git a/google/cloud/logging/v2/logging_service_v2_connection.h b/google/cloud/logging/v2/logging_service_v2_connection.h index 3204b4821f69e..0d02f4f67942c 100644 --- a/google/cloud/logging/v2/logging_service_v2_connection.h +++ b/google/cloud/logging/v2/logging_service_v2_connection.h @@ -22,6 +22,7 @@ #include "google/cloud/logging/v2/internal/logging_service_v2_retry_traits.h" #include "google/cloud/logging/v2/logging_service_v2_connection_idempotency_policy.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/internal/async_read_write_stream_impl.h" #include "google/cloud/internal/retry_policy_impl.h" diff --git a/google/cloud/logging/v2/metrics_service_v2_connection.h b/google/cloud/logging/v2/metrics_service_v2_connection.h index 9953ea0ec198e..5253b59a4ae8a 100644 --- a/google/cloud/logging/v2/metrics_service_v2_connection.h +++ b/google/cloud/logging/v2/metrics_service_v2_connection.h @@ -22,6 +22,7 @@ #include "google/cloud/logging/v2/internal/metrics_service_v2_retry_traits.h" #include "google/cloud/logging/v2/metrics_service_v2_connection_idempotency_policy.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/internal/retry_policy_impl.h" #include "google/cloud/options.h" #include "google/cloud/status_or.h" diff --git a/google/cloud/logging/v2/mocks/mock_config_service_v2_connection.h b/google/cloud/logging/v2/mocks/mock_config_service_v2_connection.h index ae2d4d72250b1..e2f98e98d4c2b 100644 --- a/google/cloud/logging/v2/mocks/mock_config_service_v2_connection.h +++ b/google/cloud/logging/v2/mocks/mock_config_service_v2_connection.h @@ -59,11 +59,33 @@ class MockConfigServiceV2Connection (google::logging::v2::CreateBucketRequest const& request), (override)); + MOCK_METHOD(StatusOr, CreateBucketAsync, + (ExperimentalTag, NoAwaitTag, + google::logging::v2::CreateBucketRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateBucketAsync, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, UpdateBucketAsync, (google::logging::v2::UpdateBucketRequest const& request), (override)); + MOCK_METHOD(StatusOr, UpdateBucketAsync, + (ExperimentalTag, NoAwaitTag, + google::logging::v2::UpdateBucketRequest const& request), + (override)); + + MOCK_METHOD(future>, + UpdateBucketAsync, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(StatusOr, CreateBucket, (google::logging::v2::CreateBucketRequest const& request), (override)); @@ -120,10 +142,30 @@ class MockConfigServiceV2Connection (google::logging::v2::CreateLinkRequest const& request), (override)); + MOCK_METHOD(StatusOr, CreateLink, + (ExperimentalTag, NoAwaitTag, + google::logging::v2::CreateLinkRequest const& request), + (override)); + + MOCK_METHOD(future>, CreateLink, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, DeleteLink, (google::logging::v2::DeleteLinkRequest const& request), (override)); + MOCK_METHOD(StatusOr, DeleteLink, + (ExperimentalTag, NoAwaitTag, + google::logging::v2::DeleteLinkRequest const& request), + (override)); + + MOCK_METHOD(future>, DeleteLink, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD((StreamRange), ListLinks, (google::logging::v2::ListLinksRequest request), (override)); @@ -169,6 +211,17 @@ class MockConfigServiceV2Connection CopyLogEntries, (google::logging::v2::CopyLogEntriesRequest const& request), (override)); + + MOCK_METHOD(StatusOr, CopyLogEntries, + (ExperimentalTag, NoAwaitTag, + google::logging::v2::CopyLogEntriesRequest const& request), + (override)); + + MOCK_METHOD(future>, + CopyLogEntries, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); }; GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END diff --git a/google/cloud/managedidentities/v1/internal/managed_identities_connection_impl.cc b/google/cloud/managedidentities/v1/internal/managed_identities_connection_impl.cc index 8103a35113c01..824f9f3dd89fd 100644 --- a/google/cloud/managedidentities/v1/internal/managed_identities_connection_impl.cc +++ b/google/cloud/managedidentities/v1/internal/managed_identities_connection_impl.cc @@ -113,6 +113,60 @@ ManagedIdentitiesServiceConnectionImpl::CreateMicrosoftAdDomain( polling_policy(*current), __func__); } +StatusOr +ManagedIdentitiesServiceConnectionImpl::CreateMicrosoftAdDomain( + ExperimentalTag, NoAwaitTag, + google::cloud::managedidentities::v1::CreateMicrosoftAdDomainRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateMicrosoftAdDomain(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::managedidentities::v1:: + CreateMicrosoftAdDomainRequest const& request) { + return stub_->CreateMicrosoftAdDomain(context, options, request); + }, + *current, request, __func__); +} + +future> +ManagedIdentitiesServiceConnectionImpl::CreateMicrosoftAdDomain( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to CreateMicrosoftAdDomain", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::managedidentities::v1::Domain>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::managedidentities::v1::Domain>, + polling_policy(*current), __func__); +} + StatusOr ManagedIdentitiesServiceConnectionImpl::ResetAdminPassword( google::cloud::managedidentities::v1::ResetAdminPasswordRequest const& @@ -221,6 +275,59 @@ ManagedIdentitiesServiceConnectionImpl::UpdateDomain( polling_policy(*current), __func__); } +StatusOr +ManagedIdentitiesServiceConnectionImpl::UpdateDomain( + ExperimentalTag, NoAwaitTag, + google::cloud::managedidentities::v1::UpdateDomainRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UpdateDomain(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::managedidentities::v1::UpdateDomainRequest const& + request) { + return stub_->UpdateDomain(context, options, request); + }, + *current, request, __func__); +} + +future> +ManagedIdentitiesServiceConnectionImpl::UpdateDomain( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to UpdateDomain", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::managedidentities::v1::Domain>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::managedidentities::v1::Domain>, + polling_policy(*current), __func__); +} + future> ManagedIdentitiesServiceConnectionImpl::DeleteDomain( google::cloud::managedidentities::v1::DeleteDomainRequest const& request) { @@ -261,6 +368,59 @@ ManagedIdentitiesServiceConnectionImpl::DeleteDomain( polling_policy(*current), __func__); } +StatusOr +ManagedIdentitiesServiceConnectionImpl::DeleteDomain( + ExperimentalTag, NoAwaitTag, + google::cloud::managedidentities::v1::DeleteDomainRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteDomain(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::managedidentities::v1::DeleteDomainRequest const& + request) { + return stub_->DeleteDomain(context, options, request); + }, + *current, request, __func__); +} + +future> +ManagedIdentitiesServiceConnectionImpl::DeleteDomain( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteDomain", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::managedidentities::v1::OpMetadata>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::cloud::managedidentities::v1::OpMetadata>, + polling_policy(*current), __func__); +} + future> ManagedIdentitiesServiceConnectionImpl::AttachTrust( google::cloud::managedidentities::v1::AttachTrustRequest const& request) { @@ -301,6 +461,59 @@ ManagedIdentitiesServiceConnectionImpl::AttachTrust( polling_policy(*current), __func__); } +StatusOr +ManagedIdentitiesServiceConnectionImpl::AttachTrust( + ExperimentalTag, NoAwaitTag, + google::cloud::managedidentities::v1::AttachTrustRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->AttachTrust(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::managedidentities::v1::AttachTrustRequest const& + request) { + return stub_->AttachTrust(context, options, request); + }, + *current, request, __func__); +} + +future> +ManagedIdentitiesServiceConnectionImpl::AttachTrust( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to AttachTrust", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::managedidentities::v1::Domain>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::managedidentities::v1::Domain>, + polling_policy(*current), __func__); +} + future> ManagedIdentitiesServiceConnectionImpl::ReconfigureTrust( google::cloud::managedidentities::v1::ReconfigureTrustRequest const& @@ -342,6 +555,61 @@ ManagedIdentitiesServiceConnectionImpl::ReconfigureTrust( polling_policy(*current), __func__); } +StatusOr +ManagedIdentitiesServiceConnectionImpl::ReconfigureTrust( + ExperimentalTag, NoAwaitTag, + google::cloud::managedidentities::v1::ReconfigureTrustRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->ReconfigureTrust(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::managedidentities::v1::ReconfigureTrustRequest const& + request) { + return stub_->ReconfigureTrust(context, options, request); + }, + *current, request, __func__); +} + +future> +ManagedIdentitiesServiceConnectionImpl::ReconfigureTrust( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to ReconfigureTrust", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::managedidentities::v1::Domain>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::managedidentities::v1::Domain>, + polling_policy(*current), __func__); +} + future> ManagedIdentitiesServiceConnectionImpl::DetachTrust( google::cloud::managedidentities::v1::DetachTrustRequest const& request) { @@ -382,6 +650,59 @@ ManagedIdentitiesServiceConnectionImpl::DetachTrust( polling_policy(*current), __func__); } +StatusOr +ManagedIdentitiesServiceConnectionImpl::DetachTrust( + ExperimentalTag, NoAwaitTag, + google::cloud::managedidentities::v1::DetachTrustRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DetachTrust(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::managedidentities::v1::DetachTrustRequest const& + request) { + return stub_->DetachTrust(context, options, request); + }, + *current, request, __func__); +} + +future> +ManagedIdentitiesServiceConnectionImpl::DetachTrust( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DetachTrust", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::managedidentities::v1::Domain>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::managedidentities::v1::Domain>, + polling_policy(*current), __func__); +} + future> ManagedIdentitiesServiceConnectionImpl::ValidateTrust( google::cloud::managedidentities::v1::ValidateTrustRequest const& request) { @@ -422,6 +743,59 @@ ManagedIdentitiesServiceConnectionImpl::ValidateTrust( polling_policy(*current), __func__); } +StatusOr +ManagedIdentitiesServiceConnectionImpl::ValidateTrust( + ExperimentalTag, NoAwaitTag, + google::cloud::managedidentities::v1::ValidateTrustRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->ValidateTrust(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::managedidentities::v1::ValidateTrustRequest const& + request) { + return stub_->ValidateTrust(context, options, request); + }, + *current, request, __func__); +} + +future> +ManagedIdentitiesServiceConnectionImpl::ValidateTrust( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to ValidateTrust", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::managedidentities::v1::Domain>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::managedidentities::v1::Domain>, + polling_policy(*current), __func__); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace managedidentities_v1_internal } // namespace cloud diff --git a/google/cloud/managedidentities/v1/internal/managed_identities_connection_impl.h b/google/cloud/managedidentities/v1/internal/managed_identities_connection_impl.h index 8e58732c92a0a..9aa6f9a142e7c 100644 --- a/google/cloud/managedidentities/v1/internal/managed_identities_connection_impl.h +++ b/google/cloud/managedidentities/v1/internal/managed_identities_connection_impl.h @@ -59,6 +59,16 @@ class ManagedIdentitiesServiceConnectionImpl google::cloud::managedidentities::v1:: CreateMicrosoftAdDomainRequest const& request) override; + StatusOr CreateMicrosoftAdDomain( + ExperimentalTag, NoAwaitTag, + google::cloud::managedidentities::v1:: + CreateMicrosoftAdDomainRequest const& request) override; + + future> + CreateMicrosoftAdDomain( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr ResetAdminPassword( google::cloud::managedidentities::v1::ResetAdminPasswordRequest const& @@ -76,27 +86,81 @@ class ManagedIdentitiesServiceConnectionImpl google::cloud::managedidentities::v1::UpdateDomainRequest const& request) override; + StatusOr UpdateDomain( + ExperimentalTag, NoAwaitTag, + google::cloud::managedidentities::v1::UpdateDomainRequest const& request) + override; + + future> UpdateDomain( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteDomain(google::cloud::managedidentities::v1::DeleteDomainRequest const& request) override; + StatusOr DeleteDomain( + ExperimentalTag, NoAwaitTag, + google::cloud::managedidentities::v1::DeleteDomainRequest const& request) + override; + + future> + DeleteDomain(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> AttachTrust( google::cloud::managedidentities::v1::AttachTrustRequest const& request) override; + StatusOr AttachTrust( + ExperimentalTag, NoAwaitTag, + google::cloud::managedidentities::v1::AttachTrustRequest const& request) + override; + + future> AttachTrust( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ReconfigureTrust( google::cloud::managedidentities::v1::ReconfigureTrustRequest const& request) override; + StatusOr ReconfigureTrust( + ExperimentalTag, NoAwaitTag, + google::cloud::managedidentities::v1::ReconfigureTrustRequest const& + request) override; + + future> + ReconfigureTrust(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DetachTrust( google::cloud::managedidentities::v1::DetachTrustRequest const& request) override; + StatusOr DetachTrust( + ExperimentalTag, NoAwaitTag, + google::cloud::managedidentities::v1::DetachTrustRequest const& request) + override; + + future> DetachTrust( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ValidateTrust( google::cloud::managedidentities::v1::ValidateTrustRequest const& request) override; + StatusOr ValidateTrust( + ExperimentalTag, NoAwaitTag, + google::cloud::managedidentities::v1::ValidateTrustRequest const& request) + override; + + future> ValidateTrust( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + private: std::unique_ptr background_; std::shared_ptr diff --git a/google/cloud/managedidentities/v1/internal/managed_identities_tracing_connection.cc b/google/cloud/managedidentities/v1/internal/managed_identities_tracing_connection.cc index ad325feebb074..7355bd5f4f510 100644 --- a/google/cloud/managedidentities/v1/internal/managed_identities_tracing_connection.cc +++ b/google/cloud/managedidentities/v1/internal/managed_identities_tracing_connection.cc @@ -48,6 +48,31 @@ ManagedIdentitiesServiceTracingConnection::CreateMicrosoftAdDomain( child_->CreateMicrosoftAdDomain(request)); } +StatusOr +ManagedIdentitiesServiceTracingConnection::CreateMicrosoftAdDomain( + ExperimentalTag, NoAwaitTag, + google::cloud::managedidentities::v1::CreateMicrosoftAdDomainRequest const& + request) { + auto span = internal::MakeSpan( + "managedidentities_v1::ManagedIdentitiesServiceConnection::" + "CreateMicrosoftAdDomain"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->CreateMicrosoftAdDomain(ExperimentalTag{}, NoAwaitTag{}, + request)); +} + +future> +ManagedIdentitiesServiceTracingConnection::CreateMicrosoftAdDomain( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "managedidentities_v1::ManagedIdentitiesServiceConnection::" + "CreateMicrosoftAdDomain"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->CreateMicrosoftAdDomain( + ExperimentalTag{}, operation)); +} + StatusOr ManagedIdentitiesServiceTracingConnection::ResetAdminPassword( google::cloud::managedidentities::v1::ResetAdminPasswordRequest const& @@ -89,6 +114,27 @@ ManagedIdentitiesServiceTracingConnection::UpdateDomain( return internal::EndSpan(std::move(span), child_->UpdateDomain(request)); } +StatusOr +ManagedIdentitiesServiceTracingConnection::UpdateDomain( + ExperimentalTag, NoAwaitTag, + google::cloud::managedidentities::v1::UpdateDomainRequest const& request) { + auto span = internal::MakeSpan( + "managedidentities_v1::ManagedIdentitiesServiceConnection::UpdateDomain"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->UpdateDomain(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +ManagedIdentitiesServiceTracingConnection::UpdateDomain( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "managedidentities_v1::ManagedIdentitiesServiceConnection::UpdateDomain"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->UpdateDomain(ExperimentalTag{}, operation)); +} + future> ManagedIdentitiesServiceTracingConnection::DeleteDomain( google::cloud::managedidentities::v1::DeleteDomainRequest const& request) { @@ -98,6 +144,27 @@ ManagedIdentitiesServiceTracingConnection::DeleteDomain( return internal::EndSpan(std::move(span), child_->DeleteDomain(request)); } +StatusOr +ManagedIdentitiesServiceTracingConnection::DeleteDomain( + ExperimentalTag, NoAwaitTag, + google::cloud::managedidentities::v1::DeleteDomainRequest const& request) { + auto span = internal::MakeSpan( + "managedidentities_v1::ManagedIdentitiesServiceConnection::DeleteDomain"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->DeleteDomain(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +ManagedIdentitiesServiceTracingConnection::DeleteDomain( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "managedidentities_v1::ManagedIdentitiesServiceConnection::DeleteDomain"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->DeleteDomain(ExperimentalTag{}, operation)); +} + future> ManagedIdentitiesServiceTracingConnection::AttachTrust( google::cloud::managedidentities::v1::AttachTrustRequest const& request) { @@ -107,6 +174,27 @@ ManagedIdentitiesServiceTracingConnection::AttachTrust( return internal::EndSpan(std::move(span), child_->AttachTrust(request)); } +StatusOr +ManagedIdentitiesServiceTracingConnection::AttachTrust( + ExperimentalTag, NoAwaitTag, + google::cloud::managedidentities::v1::AttachTrustRequest const& request) { + auto span = internal::MakeSpan( + "managedidentities_v1::ManagedIdentitiesServiceConnection::AttachTrust"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->AttachTrust(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +ManagedIdentitiesServiceTracingConnection::AttachTrust( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "managedidentities_v1::ManagedIdentitiesServiceConnection::AttachTrust"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->AttachTrust(ExperimentalTag{}, operation)); +} + future> ManagedIdentitiesServiceTracingConnection::ReconfigureTrust( google::cloud::managedidentities::v1::ReconfigureTrustRequest const& @@ -118,6 +206,31 @@ ManagedIdentitiesServiceTracingConnection::ReconfigureTrust( return internal::EndSpan(std::move(span), child_->ReconfigureTrust(request)); } +StatusOr +ManagedIdentitiesServiceTracingConnection::ReconfigureTrust( + ExperimentalTag, NoAwaitTag, + google::cloud::managedidentities::v1::ReconfigureTrustRequest const& + request) { + auto span = internal::MakeSpan( + "managedidentities_v1::ManagedIdentitiesServiceConnection::" + "ReconfigureTrust"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->ReconfigureTrust(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +ManagedIdentitiesServiceTracingConnection::ReconfigureTrust( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "managedidentities_v1::ManagedIdentitiesServiceConnection::" + "ReconfigureTrust"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->ReconfigureTrust(ExperimentalTag{}, operation)); +} + future> ManagedIdentitiesServiceTracingConnection::DetachTrust( google::cloud::managedidentities::v1::DetachTrustRequest const& request) { @@ -127,6 +240,27 @@ ManagedIdentitiesServiceTracingConnection::DetachTrust( return internal::EndSpan(std::move(span), child_->DetachTrust(request)); } +StatusOr +ManagedIdentitiesServiceTracingConnection::DetachTrust( + ExperimentalTag, NoAwaitTag, + google::cloud::managedidentities::v1::DetachTrustRequest const& request) { + auto span = internal::MakeSpan( + "managedidentities_v1::ManagedIdentitiesServiceConnection::DetachTrust"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->DetachTrust(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +ManagedIdentitiesServiceTracingConnection::DetachTrust( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "managedidentities_v1::ManagedIdentitiesServiceConnection::DetachTrust"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->DetachTrust(ExperimentalTag{}, operation)); +} + future> ManagedIdentitiesServiceTracingConnection::ValidateTrust( google::cloud::managedidentities::v1::ValidateTrustRequest const& request) { @@ -137,6 +271,29 @@ ManagedIdentitiesServiceTracingConnection::ValidateTrust( return internal::EndSpan(std::move(span), child_->ValidateTrust(request)); } +StatusOr +ManagedIdentitiesServiceTracingConnection::ValidateTrust( + ExperimentalTag, NoAwaitTag, + google::cloud::managedidentities::v1::ValidateTrustRequest const& request) { + auto span = internal::MakeSpan( + "managedidentities_v1::ManagedIdentitiesServiceConnection::" + "ValidateTrust"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->ValidateTrust(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +ManagedIdentitiesServiceTracingConnection::ValidateTrust( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "managedidentities_v1::ManagedIdentitiesServiceConnection::" + "ValidateTrust"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->ValidateTrust(ExperimentalTag{}, operation)); +} + #endif // GOOGLE_CLOUD_CPP_HAVE_OPENTELEMETRY std::shared_ptr diff --git a/google/cloud/managedidentities/v1/internal/managed_identities_tracing_connection.h b/google/cloud/managedidentities/v1/internal/managed_identities_tracing_connection.h index 748a06b6c7237..517403a0c93e6 100644 --- a/google/cloud/managedidentities/v1/internal/managed_identities_tracing_connection.h +++ b/google/cloud/managedidentities/v1/internal/managed_identities_tracing_connection.h @@ -46,6 +46,16 @@ class ManagedIdentitiesServiceTracingConnection google::cloud::managedidentities::v1:: CreateMicrosoftAdDomainRequest const& request) override; + StatusOr CreateMicrosoftAdDomain( + ExperimentalTag, NoAwaitTag, + google::cloud::managedidentities::v1:: + CreateMicrosoftAdDomainRequest const& request) override; + + future> + CreateMicrosoftAdDomain( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr ResetAdminPassword( google::cloud::managedidentities::v1::ResetAdminPasswordRequest const& @@ -63,27 +73,81 @@ class ManagedIdentitiesServiceTracingConnection google::cloud::managedidentities::v1::UpdateDomainRequest const& request) override; + StatusOr UpdateDomain( + ExperimentalTag, NoAwaitTag, + google::cloud::managedidentities::v1::UpdateDomainRequest const& request) + override; + + future> UpdateDomain( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteDomain(google::cloud::managedidentities::v1::DeleteDomainRequest const& request) override; + StatusOr DeleteDomain( + ExperimentalTag, NoAwaitTag, + google::cloud::managedidentities::v1::DeleteDomainRequest const& request) + override; + + future> + DeleteDomain(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> AttachTrust( google::cloud::managedidentities::v1::AttachTrustRequest const& request) override; + StatusOr AttachTrust( + ExperimentalTag, NoAwaitTag, + google::cloud::managedidentities::v1::AttachTrustRequest const& request) + override; + + future> AttachTrust( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ReconfigureTrust( google::cloud::managedidentities::v1::ReconfigureTrustRequest const& request) override; + StatusOr ReconfigureTrust( + ExperimentalTag, NoAwaitTag, + google::cloud::managedidentities::v1::ReconfigureTrustRequest const& + request) override; + + future> + ReconfigureTrust(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DetachTrust( google::cloud::managedidentities::v1::DetachTrustRequest const& request) override; + StatusOr DetachTrust( + ExperimentalTag, NoAwaitTag, + google::cloud::managedidentities::v1::DetachTrustRequest const& request) + override; + + future> DetachTrust( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ValidateTrust( google::cloud::managedidentities::v1::ValidateTrustRequest const& request) override; + StatusOr ValidateTrust( + ExperimentalTag, NoAwaitTag, + google::cloud::managedidentities::v1::ValidateTrustRequest const& request) + override; + + future> ValidateTrust( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + private: std::shared_ptr child_; diff --git a/google/cloud/managedidentities/v1/managed_identities_connection.cc b/google/cloud/managedidentities/v1/managed_identities_connection.cc index 3f942036d82a3..308a1746b84bd 100644 --- a/google/cloud/managedidentities/v1/managed_identities_connection.cc +++ b/google/cloud/managedidentities/v1/managed_identities_connection.cc @@ -48,6 +48,23 @@ ManagedIdentitiesServiceConnection::CreateMicrosoftAdDomain( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +ManagedIdentitiesServiceConnection::CreateMicrosoftAdDomain( + ExperimentalTag, NoAwaitTag, + google::cloud::managedidentities::v1:: + CreateMicrosoftAdDomainRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +ManagedIdentitiesServiceConnection::CreateMicrosoftAdDomain( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr ManagedIdentitiesServiceConnection::ResetAdminPassword( google::cloud::managedidentities::v1::ResetAdminPasswordRequest const&) { @@ -76,6 +93,22 @@ ManagedIdentitiesServiceConnection::UpdateDomain( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +ManagedIdentitiesServiceConnection::UpdateDomain( + ExperimentalTag, NoAwaitTag, + google::cloud::managedidentities::v1::UpdateDomainRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +ManagedIdentitiesServiceConnection::UpdateDomain( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> ManagedIdentitiesServiceConnection::DeleteDomain( google::cloud::managedidentities::v1::DeleteDomainRequest const&) { @@ -84,6 +117,22 @@ ManagedIdentitiesServiceConnection::DeleteDomain( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +ManagedIdentitiesServiceConnection::DeleteDomain( + ExperimentalTag, NoAwaitTag, + google::cloud::managedidentities::v1::DeleteDomainRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +ManagedIdentitiesServiceConnection::DeleteDomain( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> ManagedIdentitiesServiceConnection::AttachTrust( google::cloud::managedidentities::v1::AttachTrustRequest const&) { @@ -92,6 +141,22 @@ ManagedIdentitiesServiceConnection::AttachTrust( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +ManagedIdentitiesServiceConnection::AttachTrust( + ExperimentalTag, NoAwaitTag, + google::cloud::managedidentities::v1::AttachTrustRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +ManagedIdentitiesServiceConnection::AttachTrust( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> ManagedIdentitiesServiceConnection::ReconfigureTrust( google::cloud::managedidentities::v1::ReconfigureTrustRequest const&) { @@ -100,9 +165,41 @@ ManagedIdentitiesServiceConnection::ReconfigureTrust( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +ManagedIdentitiesServiceConnection::ReconfigureTrust( + ExperimentalTag, NoAwaitTag, + google::cloud::managedidentities::v1::ReconfigureTrustRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> +ManagedIdentitiesServiceConnection::ReconfigureTrust( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +ManagedIdentitiesServiceConnection::DetachTrust( + google::cloud::managedidentities::v1::DetachTrustRequest const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +StatusOr ManagedIdentitiesServiceConnection::DetachTrust( + ExperimentalTag, NoAwaitTag, google::cloud::managedidentities::v1::DetachTrustRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +ManagedIdentitiesServiceConnection::DetachTrust( + ExperimentalTag, google::longrunning::Operation const&) { return google::cloud::make_ready_future< StatusOr>( Status(StatusCode::kUnimplemented, "not implemented")); @@ -116,6 +213,22 @@ ManagedIdentitiesServiceConnection::ValidateTrust( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +ManagedIdentitiesServiceConnection::ValidateTrust( + ExperimentalTag, NoAwaitTag, + google::cloud::managedidentities::v1::ValidateTrustRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +ManagedIdentitiesServiceConnection::ValidateTrust( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + std::shared_ptr MakeManagedIdentitiesServiceConnection(Options options) { internal::CheckExpectedOptions CreateMicrosoftAdDomain( + ExperimentalTag, NoAwaitTag, + google::cloud::managedidentities::v1:: + CreateMicrosoftAdDomainRequest const& request); + + virtual future> + CreateMicrosoftAdDomain(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StatusOr< google::cloud::managedidentities::v1::ResetAdminPasswordResponse> ResetAdminPassword( @@ -219,27 +230,75 @@ class ManagedIdentitiesServiceConnection { UpdateDomain( google::cloud::managedidentities::v1::UpdateDomainRequest const& request); + virtual StatusOr UpdateDomain( + ExperimentalTag, NoAwaitTag, + google::cloud::managedidentities::v1::UpdateDomainRequest const& request); + + virtual future> + UpdateDomain(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> DeleteDomain( google::cloud::managedidentities::v1::DeleteDomainRequest const& request); + virtual StatusOr DeleteDomain( + ExperimentalTag, NoAwaitTag, + google::cloud::managedidentities::v1::DeleteDomainRequest const& request); + + virtual future> + DeleteDomain(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> AttachTrust( google::cloud::managedidentities::v1::AttachTrustRequest const& request); + virtual StatusOr AttachTrust( + ExperimentalTag, NoAwaitTag, + google::cloud::managedidentities::v1::AttachTrustRequest const& request); + + virtual future> + AttachTrust(ExperimentalTag, google::longrunning::Operation const& operation); + virtual future> ReconfigureTrust( google::cloud::managedidentities::v1::ReconfigureTrustRequest const& request); + virtual StatusOr ReconfigureTrust( + ExperimentalTag, NoAwaitTag, + google::cloud::managedidentities::v1::ReconfigureTrustRequest const& + request); + + virtual future> + ReconfigureTrust(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> DetachTrust( google::cloud::managedidentities::v1::DetachTrustRequest const& request); + virtual StatusOr DetachTrust( + ExperimentalTag, NoAwaitTag, + google::cloud::managedidentities::v1::DetachTrustRequest const& request); + + virtual future> + DetachTrust(ExperimentalTag, google::longrunning::Operation const& operation); + virtual future> ValidateTrust( google::cloud::managedidentities::v1::ValidateTrustRequest const& request); + + virtual StatusOr ValidateTrust( + ExperimentalTag, NoAwaitTag, + google::cloud::managedidentities::v1::ValidateTrustRequest const& + request); + + virtual future> + ValidateTrust(ExperimentalTag, + google::longrunning::Operation const& operation); }; /** diff --git a/google/cloud/managedidentities/v1/mocks/mock_managed_identities_connection.h b/google/cloud/managedidentities/v1/mocks/mock_managed_identities_connection.h index b70bb9aef91f1..8b0dc071032fc 100644 --- a/google/cloud/managedidentities/v1/mocks/mock_managed_identities_connection.h +++ b/google/cloud/managedidentities/v1/mocks/mock_managed_identities_connection.h @@ -53,6 +53,18 @@ class MockManagedIdentitiesServiceConnection CreateMicrosoftAdDomainRequest const& request), (override)); + MOCK_METHOD(StatusOr, CreateMicrosoftAdDomain, + (ExperimentalTag, NoAwaitTag, + google::cloud::managedidentities::v1:: + CreateMicrosoftAdDomainRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateMicrosoftAdDomain, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr< google::cloud::managedidentities::v1::ResetAdminPasswordResponse>, @@ -77,6 +89,18 @@ class MockManagedIdentitiesServiceConnection request), (override)); + MOCK_METHOD(StatusOr, UpdateDomain, + (ExperimentalTag, NoAwaitTag, + google::cloud::managedidentities::v1::UpdateDomainRequest const& + request), + (override)); + + MOCK_METHOD(future>, + UpdateDomain, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteDomain, @@ -84,12 +108,36 @@ class MockManagedIdentitiesServiceConnection request), (override)); + MOCK_METHOD(StatusOr, DeleteDomain, + (ExperimentalTag, NoAwaitTag, + google::cloud::managedidentities::v1::DeleteDomainRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + DeleteDomain, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, AttachTrust, (google::cloud::managedidentities::v1::AttachTrustRequest const& request), (override)); + MOCK_METHOD( + StatusOr, AttachTrust, + (ExperimentalTag, NoAwaitTag, + google::cloud::managedidentities::v1::AttachTrustRequest const& request), + (override)); + + MOCK_METHOD(future>, + AttachTrust, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, ReconfigureTrust, @@ -97,17 +145,54 @@ class MockManagedIdentitiesServiceConnection request), (override)); + MOCK_METHOD( + StatusOr, ReconfigureTrust, + (ExperimentalTag, NoAwaitTag, + google::cloud::managedidentities::v1::ReconfigureTrustRequest const& + request), + (override)); + + MOCK_METHOD(future>, + ReconfigureTrust, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DetachTrust, (google::cloud::managedidentities::v1::DetachTrustRequest const& request), (override)); + MOCK_METHOD( + StatusOr, DetachTrust, + (ExperimentalTag, NoAwaitTag, + google::cloud::managedidentities::v1::DetachTrustRequest const& request), + (override)); + + MOCK_METHOD(future>, + DetachTrust, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, ValidateTrust, (google::cloud::managedidentities::v1::ValidateTrustRequest const& request), (override)); + + MOCK_METHOD(StatusOr, ValidateTrust, + (ExperimentalTag, NoAwaitTag, + google::cloud::managedidentities::v1::ValidateTrustRequest const& + request), + (override)); + + MOCK_METHOD(future>, + ValidateTrust, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); }; GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END diff --git a/google/cloud/managedkafka/v1/internal/managed_kafka_connection_impl.cc b/google/cloud/managedkafka/v1/internal/managed_kafka_connection_impl.cc index 60622ca9fddd2..2e2d964acdb48 100644 --- a/google/cloud/managedkafka/v1/internal/managed_kafka_connection_impl.cc +++ b/google/cloud/managedkafka/v1/internal/managed_kafka_connection_impl.cc @@ -155,6 +155,59 @@ ManagedKafkaConnectionImpl::CreateCluster( polling_policy(*current), __func__); } +StatusOr +ManagedKafkaConnectionImpl::CreateCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::managedkafka::v1::CreateClusterRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateCluster(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::managedkafka::v1::CreateClusterRequest const& + request) { + return stub_->CreateCluster(context, options, request); + }, + *current, request, __func__); +} + +future> +ManagedKafkaConnectionImpl::CreateCluster( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to CreateCluster", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::managedkafka::v1::Cluster>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::managedkafka::v1::Cluster>, + polling_policy(*current), __func__); +} + future> ManagedKafkaConnectionImpl::UpdateCluster( google::cloud::managedkafka::v1::UpdateClusterRequest const& request) { @@ -195,6 +248,59 @@ ManagedKafkaConnectionImpl::UpdateCluster( polling_policy(*current), __func__); } +StatusOr +ManagedKafkaConnectionImpl::UpdateCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::managedkafka::v1::UpdateClusterRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UpdateCluster(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::managedkafka::v1::UpdateClusterRequest const& + request) { + return stub_->UpdateCluster(context, options, request); + }, + *current, request, __func__); +} + +future> +ManagedKafkaConnectionImpl::UpdateCluster( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to UpdateCluster", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::managedkafka::v1::Cluster>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::managedkafka::v1::Cluster>, + polling_policy(*current), __func__); +} + future> ManagedKafkaConnectionImpl::DeleteCluster( google::cloud::managedkafka::v1::DeleteClusterRequest const& request) { @@ -235,6 +341,59 @@ ManagedKafkaConnectionImpl::DeleteCluster( polling_policy(*current), __func__); } +StatusOr +ManagedKafkaConnectionImpl::DeleteCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::managedkafka::v1::DeleteClusterRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteCluster(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::managedkafka::v1::DeleteClusterRequest const& + request) { + return stub_->DeleteCluster(context, options, request); + }, + *current, request, __func__); +} + +future> +ManagedKafkaConnectionImpl::DeleteCluster( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteCluster", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::managedkafka::v1::OperationMetadata>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::cloud::managedkafka::v1::OperationMetadata>, + polling_policy(*current), __func__); +} + StreamRange ManagedKafkaConnectionImpl::ListTopics( google::cloud::managedkafka::v1::ListTopicsRequest request) { diff --git a/google/cloud/managedkafka/v1/internal/managed_kafka_connection_impl.h b/google/cloud/managedkafka/v1/internal/managed_kafka_connection_impl.h index ca300f0a5887d..89ef754a505b4 100644 --- a/google/cloud/managedkafka/v1/internal/managed_kafka_connection_impl.h +++ b/google/cloud/managedkafka/v1/internal/managed_kafka_connection_impl.h @@ -63,14 +63,41 @@ class ManagedKafkaConnectionImpl google::cloud::managedkafka::v1::CreateClusterRequest const& request) override; + StatusOr CreateCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::managedkafka::v1::CreateClusterRequest const& request) + override; + + future> CreateCluster( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateCluster( google::cloud::managedkafka::v1::UpdateClusterRequest const& request) override; + StatusOr UpdateCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::managedkafka::v1::UpdateClusterRequest const& request) + override; + + future> UpdateCluster( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteCluster(google::cloud::managedkafka::v1::DeleteClusterRequest const& request) override; + StatusOr DeleteCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::managedkafka::v1::DeleteClusterRequest const& request) + override; + + future> + DeleteCluster(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListTopics( google::cloud::managedkafka::v1::ListTopicsRequest request) override; diff --git a/google/cloud/managedkafka/v1/internal/managed_kafka_tracing_connection.cc b/google/cloud/managedkafka/v1/internal/managed_kafka_tracing_connection.cc index 1e5bc749984a3..41bbd624b0cd9 100644 --- a/google/cloud/managedkafka/v1/internal/managed_kafka_tracing_connection.cc +++ b/google/cloud/managedkafka/v1/internal/managed_kafka_tracing_connection.cc @@ -62,6 +62,27 @@ ManagedKafkaTracingConnection::CreateCluster( return internal::EndSpan(std::move(span), child_->CreateCluster(request)); } +StatusOr +ManagedKafkaTracingConnection::CreateCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::managedkafka::v1::CreateClusterRequest const& request) { + auto span = internal::MakeSpan( + "managedkafka_v1::ManagedKafkaConnection::CreateCluster"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->CreateCluster(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +ManagedKafkaTracingConnection::CreateCluster( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "managedkafka_v1::ManagedKafkaConnection::CreateCluster"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->CreateCluster(ExperimentalTag{}, operation)); +} + future> ManagedKafkaTracingConnection::UpdateCluster( google::cloud::managedkafka::v1::UpdateClusterRequest const& request) { @@ -71,6 +92,27 @@ ManagedKafkaTracingConnection::UpdateCluster( return internal::EndSpan(std::move(span), child_->UpdateCluster(request)); } +StatusOr +ManagedKafkaTracingConnection::UpdateCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::managedkafka::v1::UpdateClusterRequest const& request) { + auto span = internal::MakeSpan( + "managedkafka_v1::ManagedKafkaConnection::UpdateCluster"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->UpdateCluster(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +ManagedKafkaTracingConnection::UpdateCluster( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "managedkafka_v1::ManagedKafkaConnection::UpdateCluster"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->UpdateCluster(ExperimentalTag{}, operation)); +} + future> ManagedKafkaTracingConnection::DeleteCluster( google::cloud::managedkafka::v1::DeleteClusterRequest const& request) { @@ -80,6 +122,27 @@ ManagedKafkaTracingConnection::DeleteCluster( return internal::EndSpan(std::move(span), child_->DeleteCluster(request)); } +StatusOr +ManagedKafkaTracingConnection::DeleteCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::managedkafka::v1::DeleteClusterRequest const& request) { + auto span = internal::MakeSpan( + "managedkafka_v1::ManagedKafkaConnection::DeleteCluster"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->DeleteCluster(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +ManagedKafkaTracingConnection::DeleteCluster( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "managedkafka_v1::ManagedKafkaConnection::DeleteCluster"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->DeleteCluster(ExperimentalTag{}, operation)); +} + StreamRange ManagedKafkaTracingConnection::ListTopics( google::cloud::managedkafka::v1::ListTopicsRequest request) { diff --git a/google/cloud/managedkafka/v1/internal/managed_kafka_tracing_connection.h b/google/cloud/managedkafka/v1/internal/managed_kafka_tracing_connection.h index a67ba3ca5dbc5..0ec3187c358dc 100644 --- a/google/cloud/managedkafka/v1/internal/managed_kafka_tracing_connection.h +++ b/google/cloud/managedkafka/v1/internal/managed_kafka_tracing_connection.h @@ -51,14 +51,41 @@ class ManagedKafkaTracingConnection google::cloud::managedkafka::v1::CreateClusterRequest const& request) override; + StatusOr CreateCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::managedkafka::v1::CreateClusterRequest const& request) + override; + + future> CreateCluster( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateCluster( google::cloud::managedkafka::v1::UpdateClusterRequest const& request) override; + StatusOr UpdateCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::managedkafka::v1::UpdateClusterRequest const& request) + override; + + future> UpdateCluster( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteCluster(google::cloud::managedkafka::v1::DeleteClusterRequest const& request) override; + StatusOr DeleteCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::managedkafka::v1::DeleteClusterRequest const& request) + override; + + future> + DeleteCluster(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListTopics( google::cloud::managedkafka::v1::ListTopicsRequest request) override; diff --git a/google/cloud/managedkafka/v1/managed_kafka_connection.cc b/google/cloud/managedkafka/v1/managed_kafka_connection.cc index 7ebd767531963..8f8e1cd1cd1b2 100644 --- a/google/cloud/managedkafka/v1/managed_kafka_connection.cc +++ b/google/cloud/managedkafka/v1/managed_kafka_connection.cc @@ -60,6 +60,21 @@ ManagedKafkaConnection::CreateCluster( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr ManagedKafkaConnection::CreateCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::managedkafka::v1::CreateClusterRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +ManagedKafkaConnection::CreateCluster(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> ManagedKafkaConnection::UpdateCluster( google::cloud::managedkafka::v1::UpdateClusterRequest const&) { @@ -68,6 +83,21 @@ ManagedKafkaConnection::UpdateCluster( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr ManagedKafkaConnection::UpdateCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::managedkafka::v1::UpdateClusterRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +ManagedKafkaConnection::UpdateCluster(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> ManagedKafkaConnection::DeleteCluster( google::cloud::managedkafka::v1::DeleteClusterRequest const&) { @@ -76,6 +106,21 @@ ManagedKafkaConnection::DeleteCluster( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr ManagedKafkaConnection::DeleteCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::managedkafka::v1::DeleteClusterRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +ManagedKafkaConnection::DeleteCluster(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StreamRange ManagedKafkaConnection::ListTopics( google::cloud::managedkafka::v1:: diff --git a/google/cloud/managedkafka/v1/managed_kafka_connection.h b/google/cloud/managedkafka/v1/managed_kafka_connection.h index a4b7752e5df5b..1f8530b4ff404 100644 --- a/google/cloud/managedkafka/v1/managed_kafka_connection.h +++ b/google/cloud/managedkafka/v1/managed_kafka_connection.h @@ -22,8 +22,10 @@ #include "google/cloud/managedkafka/v1/internal/managed_kafka_retry_traits.h" #include "google/cloud/managedkafka/v1/managed_kafka_connection_idempotency_policy.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/internal/retry_policy_impl.h" +#include "google/cloud/no_await_tag.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" #include "google/cloud/status_or.h" @@ -195,14 +197,38 @@ class ManagedKafkaConnection { CreateCluster( google::cloud::managedkafka::v1::CreateClusterRequest const& request); + virtual StatusOr CreateCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::managedkafka::v1::CreateClusterRequest const& request); + + virtual future> + CreateCluster(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> UpdateCluster( google::cloud::managedkafka::v1::UpdateClusterRequest const& request); + virtual StatusOr UpdateCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::managedkafka::v1::UpdateClusterRequest const& request); + + virtual future> + UpdateCluster(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> DeleteCluster( google::cloud::managedkafka::v1::DeleteClusterRequest const& request); + virtual StatusOr DeleteCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::managedkafka::v1::DeleteClusterRequest const& request); + + virtual future> + DeleteCluster(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StreamRange ListTopics( google::cloud::managedkafka::v1::ListTopicsRequest request); diff --git a/google/cloud/managedkafka/v1/mocks/mock_managed_kafka_connection.h b/google/cloud/managedkafka/v1/mocks/mock_managed_kafka_connection.h index 007643f9a0b6d..757cdef6015b8 100644 --- a/google/cloud/managedkafka/v1/mocks/mock_managed_kafka_connection.h +++ b/google/cloud/managedkafka/v1/mocks/mock_managed_kafka_connection.h @@ -62,17 +62,53 @@ class MockManagedKafkaConnection (google::cloud::managedkafka::v1::CreateClusterRequest const& request), (override)); + MOCK_METHOD( + StatusOr, CreateCluster, + (ExperimentalTag, NoAwaitTag, + google::cloud::managedkafka::v1::CreateClusterRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateCluster, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, UpdateCluster, (google::cloud::managedkafka::v1::UpdateClusterRequest const& request), (override)); + MOCK_METHOD( + StatusOr, UpdateCluster, + (ExperimentalTag, NoAwaitTag, + google::cloud::managedkafka::v1::UpdateClusterRequest const& request), + (override)); + + MOCK_METHOD(future>, + UpdateCluster, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteCluster, (google::cloud::managedkafka::v1::DeleteClusterRequest const& request), (override)); + MOCK_METHOD( + StatusOr, DeleteCluster, + (ExperimentalTag, NoAwaitTag, + google::cloud::managedkafka::v1::DeleteClusterRequest const& request), + (override)); + + MOCK_METHOD( + future>, + DeleteCluster, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD((StreamRange), ListTopics, (google::cloud::managedkafka::v1::ListTopicsRequest request), (override)); diff --git a/google/cloud/memcache/v1/cloud_memcache_connection.cc b/google/cloud/memcache/v1/cloud_memcache_connection.cc index eb7df9ed16a56..c749459646ba8 100644 --- a/google/cloud/memcache/v1/cloud_memcache_connection.cc +++ b/google/cloud/memcache/v1/cloud_memcache_connection.cc @@ -60,6 +60,22 @@ CloudMemcacheConnection::CreateInstance( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +CloudMemcacheConnection::CreateInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::memcache::v1::CreateInstanceRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +CloudMemcacheConnection::CreateInstance(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> CloudMemcacheConnection::UpdateInstance( google::cloud::memcache::v1::UpdateInstanceRequest const&) { @@ -68,6 +84,22 @@ CloudMemcacheConnection::UpdateInstance( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +CloudMemcacheConnection::UpdateInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::memcache::v1::UpdateInstanceRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +CloudMemcacheConnection::UpdateInstance(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> CloudMemcacheConnection::UpdateParameters( google::cloud::memcache::v1::UpdateParametersRequest const&) { @@ -76,6 +108,22 @@ CloudMemcacheConnection::UpdateParameters( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +CloudMemcacheConnection::UpdateParameters( + ExperimentalTag, NoAwaitTag, + google::cloud::memcache::v1::UpdateParametersRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +CloudMemcacheConnection::UpdateParameters( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> CloudMemcacheConnection::DeleteInstance( google::cloud::memcache::v1::DeleteInstanceRequest const&) { @@ -84,6 +132,22 @@ CloudMemcacheConnection::DeleteInstance( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +CloudMemcacheConnection::DeleteInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::memcache::v1::DeleteInstanceRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +CloudMemcacheConnection::DeleteInstance(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> CloudMemcacheConnection::ApplyParameters( google::cloud::memcache::v1::ApplyParametersRequest const&) { @@ -92,6 +156,22 @@ CloudMemcacheConnection::ApplyParameters( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +CloudMemcacheConnection::ApplyParameters( + ExperimentalTag, NoAwaitTag, + google::cloud::memcache::v1::ApplyParametersRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +CloudMemcacheConnection::ApplyParameters( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> CloudMemcacheConnection::RescheduleMaintenance( google::cloud::memcache::v1::RescheduleMaintenanceRequest const&) { @@ -100,6 +180,22 @@ CloudMemcacheConnection::RescheduleMaintenance( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +CloudMemcacheConnection::RescheduleMaintenance( + ExperimentalTag, NoAwaitTag, + google::cloud::memcache::v1::RescheduleMaintenanceRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +CloudMemcacheConnection::RescheduleMaintenance( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + std::shared_ptr MakeCloudMemcacheConnection( Options options) { internal::CheckExpectedOptions CreateInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::memcache::v1::CreateInstanceRequest const& request); + + virtual future> + CreateInstance(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> UpdateInstance( google::cloud::memcache::v1::UpdateInstanceRequest const& request); + virtual StatusOr UpdateInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::memcache::v1::UpdateInstanceRequest const& request); + + virtual future> + UpdateInstance(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> UpdateParameters( google::cloud::memcache::v1::UpdateParametersRequest const& request); + virtual StatusOr UpdateParameters( + ExperimentalTag, NoAwaitTag, + google::cloud::memcache::v1::UpdateParametersRequest const& request); + + virtual future> + UpdateParameters(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> DeleteInstance( google::cloud::memcache::v1::DeleteInstanceRequest const& request); + virtual StatusOr DeleteInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::memcache::v1::DeleteInstanceRequest const& request); + + virtual future> + DeleteInstance(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> ApplyParameters( google::cloud::memcache::v1::ApplyParametersRequest const& request); + virtual StatusOr ApplyParameters( + ExperimentalTag, NoAwaitTag, + google::cloud::memcache::v1::ApplyParametersRequest const& request); + + virtual future> + ApplyParameters(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> RescheduleMaintenance( google::cloud::memcache::v1::RescheduleMaintenanceRequest const& request); + + virtual StatusOr RescheduleMaintenance( + ExperimentalTag, NoAwaitTag, + google::cloud::memcache::v1::RescheduleMaintenanceRequest const& request); + + virtual future> + RescheduleMaintenance(ExperimentalTag, + google::longrunning::Operation const& operation); }; /** diff --git a/google/cloud/memcache/v1/internal/cloud_memcache_connection_impl.cc b/google/cloud/memcache/v1/internal/cloud_memcache_connection_impl.cc index 8c9b5152af432..286e13560c11e 100644 --- a/google/cloud/memcache/v1/internal/cloud_memcache_connection_impl.cc +++ b/google/cloud/memcache/v1/internal/cloud_memcache_connection_impl.cc @@ -151,6 +151,58 @@ CloudMemcacheConnectionImpl::CreateInstance( polling_policy(*current), __func__); } +StatusOr +CloudMemcacheConnectionImpl::CreateInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::memcache::v1::CreateInstanceRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateInstance(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::memcache::v1::CreateInstanceRequest const& request) { + return stub_->CreateInstance(context, options, request); + }, + *current, request, __func__); +} + +future> +CloudMemcacheConnectionImpl::CreateInstance( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to CreateInstance", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::memcache::v1::Instance>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::memcache::v1::Instance>, + polling_policy(*current), __func__); +} + future> CloudMemcacheConnectionImpl::UpdateInstance( google::cloud::memcache::v1::UpdateInstanceRequest const& request) { @@ -190,6 +242,58 @@ CloudMemcacheConnectionImpl::UpdateInstance( polling_policy(*current), __func__); } +StatusOr +CloudMemcacheConnectionImpl::UpdateInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::memcache::v1::UpdateInstanceRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UpdateInstance(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::memcache::v1::UpdateInstanceRequest const& request) { + return stub_->UpdateInstance(context, options, request); + }, + *current, request, __func__); +} + +future> +CloudMemcacheConnectionImpl::UpdateInstance( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to UpdateInstance", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::memcache::v1::Instance>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::memcache::v1::Instance>, + polling_policy(*current), __func__); +} + future> CloudMemcacheConnectionImpl::UpdateParameters( google::cloud::memcache::v1::UpdateParametersRequest const& request) { @@ -229,6 +333,58 @@ CloudMemcacheConnectionImpl::UpdateParameters( polling_policy(*current), __func__); } +StatusOr +CloudMemcacheConnectionImpl::UpdateParameters( + ExperimentalTag, NoAwaitTag, + google::cloud::memcache::v1::UpdateParametersRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UpdateParameters(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::memcache::v1::UpdateParametersRequest const& request) { + return stub_->UpdateParameters(context, options, request); + }, + *current, request, __func__); +} + +future> +CloudMemcacheConnectionImpl::UpdateParameters( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to UpdateParameters", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::memcache::v1::Instance>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::memcache::v1::Instance>, + polling_policy(*current), __func__); +} + future> CloudMemcacheConnectionImpl::DeleteInstance( google::cloud::memcache::v1::DeleteInstanceRequest const& request) { @@ -268,6 +424,59 @@ CloudMemcacheConnectionImpl::DeleteInstance( polling_policy(*current), __func__); } +StatusOr +CloudMemcacheConnectionImpl::DeleteInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::memcache::v1::DeleteInstanceRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteInstance(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::memcache::v1::DeleteInstanceRequest const& request) { + return stub_->DeleteInstance(context, options, request); + }, + *current, request, __func__); +} + +future> +CloudMemcacheConnectionImpl::DeleteInstance( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteInstance", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::memcache::v1::OperationMetadata>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::cloud::memcache::v1::OperationMetadata>, + polling_policy(*current), __func__); +} + future> CloudMemcacheConnectionImpl::ApplyParameters( google::cloud::memcache::v1::ApplyParametersRequest const& request) { @@ -307,6 +516,58 @@ CloudMemcacheConnectionImpl::ApplyParameters( polling_policy(*current), __func__); } +StatusOr +CloudMemcacheConnectionImpl::ApplyParameters( + ExperimentalTag, NoAwaitTag, + google::cloud::memcache::v1::ApplyParametersRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->ApplyParameters(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::memcache::v1::ApplyParametersRequest const& request) { + return stub_->ApplyParameters(context, options, request); + }, + *current, request, __func__); +} + +future> +CloudMemcacheConnectionImpl::ApplyParameters( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to ApplyParameters", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::memcache::v1::Instance>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::memcache::v1::Instance>, + polling_policy(*current), __func__); +} + future> CloudMemcacheConnectionImpl::RescheduleMaintenance( google::cloud::memcache::v1::RescheduleMaintenanceRequest const& request) { @@ -347,6 +608,58 @@ CloudMemcacheConnectionImpl::RescheduleMaintenance( polling_policy(*current), __func__); } +StatusOr +CloudMemcacheConnectionImpl::RescheduleMaintenance( + ExperimentalTag, NoAwaitTag, + google::cloud::memcache::v1::RescheduleMaintenanceRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->RescheduleMaintenance(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::memcache::v1::RescheduleMaintenanceRequest const& + request) { + return stub_->RescheduleMaintenance(context, options, request); + }, + *current, request, __func__); +} + +future> +CloudMemcacheConnectionImpl::RescheduleMaintenance( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to RescheduleMaintenance", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::memcache::v1::Instance>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::memcache::v1::Instance>, + polling_policy(*current), __func__); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace memcache_v1_internal } // namespace cloud diff --git a/google/cloud/memcache/v1/internal/cloud_memcache_connection_impl.h b/google/cloud/memcache/v1/internal/cloud_memcache_connection_impl.h index 2cb83e8fe8309..3048abbce573a 100644 --- a/google/cloud/memcache/v1/internal/cloud_memcache_connection_impl.h +++ b/google/cloud/memcache/v1/internal/cloud_memcache_connection_impl.h @@ -62,26 +62,80 @@ class CloudMemcacheConnectionImpl google::cloud::memcache::v1::CreateInstanceRequest const& request) override; + StatusOr CreateInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::memcache::v1::CreateInstanceRequest const& request) + override; + + future> CreateInstance( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateInstance( google::cloud::memcache::v1::UpdateInstanceRequest const& request) override; + StatusOr UpdateInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::memcache::v1::UpdateInstanceRequest const& request) + override; + + future> UpdateInstance( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateParameters( google::cloud::memcache::v1::UpdateParametersRequest const& request) override; + StatusOr UpdateParameters( + ExperimentalTag, NoAwaitTag, + google::cloud::memcache::v1::UpdateParametersRequest const& request) + override; + + future> UpdateParameters( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteInstance(google::cloud::memcache::v1::DeleteInstanceRequest const& request) override; + StatusOr DeleteInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::memcache::v1::DeleteInstanceRequest const& request) + override; + + future> + DeleteInstance(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ApplyParameters( google::cloud::memcache::v1::ApplyParametersRequest const& request) override; + StatusOr ApplyParameters( + ExperimentalTag, NoAwaitTag, + google::cloud::memcache::v1::ApplyParametersRequest const& request) + override; + + future> ApplyParameters( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> RescheduleMaintenance( google::cloud::memcache::v1::RescheduleMaintenanceRequest const& request) override; + StatusOr RescheduleMaintenance( + ExperimentalTag, NoAwaitTag, + google::cloud::memcache::v1::RescheduleMaintenanceRequest const& request) + override; + + future> RescheduleMaintenance( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + private: std::unique_ptr background_; std::shared_ptr stub_; diff --git a/google/cloud/memcache/v1/internal/cloud_memcache_tracing_connection.cc b/google/cloud/memcache/v1/internal/cloud_memcache_tracing_connection.cc index 95ce60e557b23..e1d8db3aa309d 100644 --- a/google/cloud/memcache/v1/internal/cloud_memcache_tracing_connection.cc +++ b/google/cloud/memcache/v1/internal/cloud_memcache_tracing_connection.cc @@ -62,6 +62,27 @@ CloudMemcacheTracingConnection::CreateInstance( return internal::EndSpan(std::move(span), child_->CreateInstance(request)); } +StatusOr +CloudMemcacheTracingConnection::CreateInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::memcache::v1::CreateInstanceRequest const& request) { + auto span = internal::MakeSpan( + "memcache_v1::CloudMemcacheConnection::CreateInstance"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->CreateInstance(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +CloudMemcacheTracingConnection::CreateInstance( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "memcache_v1::CloudMemcacheConnection::CreateInstance"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->CreateInstance(ExperimentalTag{}, operation)); +} + future> CloudMemcacheTracingConnection::UpdateInstance( google::cloud::memcache::v1::UpdateInstanceRequest const& request) { @@ -71,6 +92,27 @@ CloudMemcacheTracingConnection::UpdateInstance( return internal::EndSpan(std::move(span), child_->UpdateInstance(request)); } +StatusOr +CloudMemcacheTracingConnection::UpdateInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::memcache::v1::UpdateInstanceRequest const& request) { + auto span = internal::MakeSpan( + "memcache_v1::CloudMemcacheConnection::UpdateInstance"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->UpdateInstance(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +CloudMemcacheTracingConnection::UpdateInstance( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "memcache_v1::CloudMemcacheConnection::UpdateInstance"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->UpdateInstance(ExperimentalTag{}, operation)); +} + future> CloudMemcacheTracingConnection::UpdateParameters( google::cloud::memcache::v1::UpdateParametersRequest const& request) { @@ -80,6 +122,28 @@ CloudMemcacheTracingConnection::UpdateParameters( return internal::EndSpan(std::move(span), child_->UpdateParameters(request)); } +StatusOr +CloudMemcacheTracingConnection::UpdateParameters( + ExperimentalTag, NoAwaitTag, + google::cloud::memcache::v1::UpdateParametersRequest const& request) { + auto span = internal::MakeSpan( + "memcache_v1::CloudMemcacheConnection::UpdateParameters"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->UpdateParameters(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +CloudMemcacheTracingConnection::UpdateParameters( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "memcache_v1::CloudMemcacheConnection::UpdateParameters"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->UpdateParameters(ExperimentalTag{}, operation)); +} + future> CloudMemcacheTracingConnection::DeleteInstance( google::cloud::memcache::v1::DeleteInstanceRequest const& request) { @@ -89,6 +153,27 @@ CloudMemcacheTracingConnection::DeleteInstance( return internal::EndSpan(std::move(span), child_->DeleteInstance(request)); } +StatusOr +CloudMemcacheTracingConnection::DeleteInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::memcache::v1::DeleteInstanceRequest const& request) { + auto span = internal::MakeSpan( + "memcache_v1::CloudMemcacheConnection::DeleteInstance"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->DeleteInstance(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +CloudMemcacheTracingConnection::DeleteInstance( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "memcache_v1::CloudMemcacheConnection::DeleteInstance"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->DeleteInstance(ExperimentalTag{}, operation)); +} + future> CloudMemcacheTracingConnection::ApplyParameters( google::cloud::memcache::v1::ApplyParametersRequest const& request) { @@ -98,6 +183,27 @@ CloudMemcacheTracingConnection::ApplyParameters( return internal::EndSpan(std::move(span), child_->ApplyParameters(request)); } +StatusOr +CloudMemcacheTracingConnection::ApplyParameters( + ExperimentalTag, NoAwaitTag, + google::cloud::memcache::v1::ApplyParametersRequest const& request) { + auto span = internal::MakeSpan( + "memcache_v1::CloudMemcacheConnection::ApplyParameters"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->ApplyParameters(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +CloudMemcacheTracingConnection::ApplyParameters( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "memcache_v1::CloudMemcacheConnection::ApplyParameters"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->ApplyParameters(ExperimentalTag{}, operation)); +} + future> CloudMemcacheTracingConnection::RescheduleMaintenance( google::cloud::memcache::v1::RescheduleMaintenanceRequest const& request) { @@ -108,6 +214,28 @@ CloudMemcacheTracingConnection::RescheduleMaintenance( child_->RescheduleMaintenance(request)); } +StatusOr +CloudMemcacheTracingConnection::RescheduleMaintenance( + ExperimentalTag, NoAwaitTag, + google::cloud::memcache::v1::RescheduleMaintenanceRequest const& request) { + auto span = internal::MakeSpan( + "memcache_v1::CloudMemcacheConnection::RescheduleMaintenance"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->RescheduleMaintenance(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +CloudMemcacheTracingConnection::RescheduleMaintenance( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "memcache_v1::CloudMemcacheConnection::RescheduleMaintenance"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->RescheduleMaintenance( + ExperimentalTag{}, operation)); +} + #endif // GOOGLE_CLOUD_CPP_HAVE_OPENTELEMETRY std::shared_ptr diff --git a/google/cloud/memcache/v1/internal/cloud_memcache_tracing_connection.h b/google/cloud/memcache/v1/internal/cloud_memcache_tracing_connection.h index d7563c7111367..032d92f7001c6 100644 --- a/google/cloud/memcache/v1/internal/cloud_memcache_tracing_connection.h +++ b/google/cloud/memcache/v1/internal/cloud_memcache_tracing_connection.h @@ -50,26 +50,80 @@ class CloudMemcacheTracingConnection google::cloud::memcache::v1::CreateInstanceRequest const& request) override; + StatusOr CreateInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::memcache::v1::CreateInstanceRequest const& request) + override; + + future> CreateInstance( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateInstance( google::cloud::memcache::v1::UpdateInstanceRequest const& request) override; + StatusOr UpdateInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::memcache::v1::UpdateInstanceRequest const& request) + override; + + future> UpdateInstance( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateParameters( google::cloud::memcache::v1::UpdateParametersRequest const& request) override; + StatusOr UpdateParameters( + ExperimentalTag, NoAwaitTag, + google::cloud::memcache::v1::UpdateParametersRequest const& request) + override; + + future> UpdateParameters( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteInstance(google::cloud::memcache::v1::DeleteInstanceRequest const& request) override; + StatusOr DeleteInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::memcache::v1::DeleteInstanceRequest const& request) + override; + + future> + DeleteInstance(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ApplyParameters( google::cloud::memcache::v1::ApplyParametersRequest const& request) override; + StatusOr ApplyParameters( + ExperimentalTag, NoAwaitTag, + google::cloud::memcache::v1::ApplyParametersRequest const& request) + override; + + future> ApplyParameters( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> RescheduleMaintenance( google::cloud::memcache::v1::RescheduleMaintenanceRequest const& request) override; + StatusOr RescheduleMaintenance( + ExperimentalTag, NoAwaitTag, + google::cloud::memcache::v1::RescheduleMaintenanceRequest const& request) + override; + + future> RescheduleMaintenance( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + private: std::shared_ptr child_; }; diff --git a/google/cloud/memcache/v1/mocks/mock_cloud_memcache_connection.h b/google/cloud/memcache/v1/mocks/mock_cloud_memcache_connection.h index bef18560749d2..35736a86ae475 100644 --- a/google/cloud/memcache/v1/mocks/mock_cloud_memcache_connection.h +++ b/google/cloud/memcache/v1/mocks/mock_cloud_memcache_connection.h @@ -61,32 +61,104 @@ class MockCloudMemcacheConnection (google::cloud::memcache::v1::CreateInstanceRequest const& request), (override)); + MOCK_METHOD( + StatusOr, CreateInstance, + (ExperimentalTag, NoAwaitTag, + google::cloud::memcache::v1::CreateInstanceRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateInstance, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, UpdateInstance, (google::cloud::memcache::v1::UpdateInstanceRequest const& request), (override)); + MOCK_METHOD( + StatusOr, UpdateInstance, + (ExperimentalTag, NoAwaitTag, + google::cloud::memcache::v1::UpdateInstanceRequest const& request), + (override)); + + MOCK_METHOD(future>, + UpdateInstance, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, UpdateParameters, (google::cloud::memcache::v1::UpdateParametersRequest const& request), (override)); + MOCK_METHOD( + StatusOr, UpdateParameters, + (ExperimentalTag, NoAwaitTag, + google::cloud::memcache::v1::UpdateParametersRequest const& request), + (override)); + + MOCK_METHOD(future>, + UpdateParameters, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteInstance, (google::cloud::memcache::v1::DeleteInstanceRequest const& request), (override)); + MOCK_METHOD( + StatusOr, DeleteInstance, + (ExperimentalTag, NoAwaitTag, + google::cloud::memcache::v1::DeleteInstanceRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteInstance, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, ApplyParameters, (google::cloud::memcache::v1::ApplyParametersRequest const& request), (override)); + MOCK_METHOD( + StatusOr, ApplyParameters, + (ExperimentalTag, NoAwaitTag, + google::cloud::memcache::v1::ApplyParametersRequest const& request), + (override)); + + MOCK_METHOD(future>, + ApplyParameters, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, RescheduleMaintenance, (google::cloud::memcache::v1::RescheduleMaintenanceRequest const& request), (override)); + + MOCK_METHOD(StatusOr, RescheduleMaintenance, + (ExperimentalTag, NoAwaitTag, + google::cloud::memcache::v1::RescheduleMaintenanceRequest const& + request), + (override)); + + MOCK_METHOD(future>, + RescheduleMaintenance, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); }; GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END diff --git a/google/cloud/metastore/v1/dataproc_metastore_connection.cc b/google/cloud/metastore/v1/dataproc_metastore_connection.cc index 82cb920ce2eac..9a38ffc211ba6 100644 --- a/google/cloud/metastore/v1/dataproc_metastore_connection.cc +++ b/google/cloud/metastore/v1/dataproc_metastore_connection.cc @@ -60,6 +60,22 @@ DataprocMetastoreConnection::CreateService( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +DataprocMetastoreConnection::CreateService( + ExperimentalTag, NoAwaitTag, + google::cloud::metastore::v1::CreateServiceRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +DataprocMetastoreConnection::CreateService( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> DataprocMetastoreConnection::UpdateService( google::cloud::metastore::v1::UpdateServiceRequest const&) { @@ -68,6 +84,22 @@ DataprocMetastoreConnection::UpdateService( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +DataprocMetastoreConnection::UpdateService( + ExperimentalTag, NoAwaitTag, + google::cloud::metastore::v1::UpdateServiceRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +DataprocMetastoreConnection::UpdateService( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> DataprocMetastoreConnection::DeleteService( google::cloud::metastore::v1::DeleteServiceRequest const&) { @@ -76,6 +108,22 @@ DataprocMetastoreConnection::DeleteService( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +DataprocMetastoreConnection::DeleteService( + ExperimentalTag, NoAwaitTag, + google::cloud::metastore::v1::DeleteServiceRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +DataprocMetastoreConnection::DeleteService( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StreamRange DataprocMetastoreConnection::ListMetadataImports( google::cloud::metastore::v1:: @@ -98,6 +146,22 @@ DataprocMetastoreConnection::CreateMetadataImport( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +DataprocMetastoreConnection::CreateMetadataImport( + ExperimentalTag, NoAwaitTag, + google::cloud::metastore::v1::CreateMetadataImportRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +DataprocMetastoreConnection::CreateMetadataImport( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> DataprocMetastoreConnection::UpdateMetadataImport( google::cloud::metastore::v1::UpdateMetadataImportRequest const&) { @@ -106,6 +170,22 @@ DataprocMetastoreConnection::UpdateMetadataImport( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +DataprocMetastoreConnection::UpdateMetadataImport( + ExperimentalTag, NoAwaitTag, + google::cloud::metastore::v1::UpdateMetadataImportRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +DataprocMetastoreConnection::UpdateMetadataImport( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> DataprocMetastoreConnection::ExportMetadata( google::cloud::metastore::v1::ExportMetadataRequest const&) { @@ -114,6 +194,22 @@ DataprocMetastoreConnection::ExportMetadata( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +DataprocMetastoreConnection::ExportMetadata( + ExperimentalTag, NoAwaitTag, + google::cloud::metastore::v1::ExportMetadataRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +DataprocMetastoreConnection::ExportMetadata( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> DataprocMetastoreConnection::RestoreService( google::cloud::metastore::v1::RestoreServiceRequest const&) { @@ -122,6 +218,22 @@ DataprocMetastoreConnection::RestoreService( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +DataprocMetastoreConnection::RestoreService( + ExperimentalTag, NoAwaitTag, + google::cloud::metastore::v1::RestoreServiceRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +DataprocMetastoreConnection::RestoreService( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StreamRange DataprocMetastoreConnection::ListBackups( google::cloud::metastore::v1:: @@ -144,6 +256,22 @@ DataprocMetastoreConnection::CreateBackup( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +DataprocMetastoreConnection::CreateBackup( + ExperimentalTag, NoAwaitTag, + google::cloud::metastore::v1::CreateBackupRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +DataprocMetastoreConnection::CreateBackup( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> DataprocMetastoreConnection::DeleteBackup( google::cloud::metastore::v1::DeleteBackupRequest const&) { @@ -152,6 +280,22 @@ DataprocMetastoreConnection::DeleteBackup( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +DataprocMetastoreConnection::DeleteBackup( + ExperimentalTag, NoAwaitTag, + google::cloud::metastore::v1::DeleteBackupRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +DataprocMetastoreConnection::DeleteBackup( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> DataprocMetastoreConnection::QueryMetadata( google::cloud::metastore::v1::QueryMetadataRequest const&) { @@ -160,6 +304,22 @@ DataprocMetastoreConnection::QueryMetadata( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +DataprocMetastoreConnection::QueryMetadata( + ExperimentalTag, NoAwaitTag, + google::cloud::metastore::v1::QueryMetadataRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +DataprocMetastoreConnection::QueryMetadata( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> DataprocMetastoreConnection::MoveTableToDatabase( google::cloud::metastore::v1::MoveTableToDatabaseRequest const&) { @@ -168,6 +328,22 @@ DataprocMetastoreConnection::MoveTableToDatabase( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +DataprocMetastoreConnection::MoveTableToDatabase( + ExperimentalTag, NoAwaitTag, + google::cloud::metastore::v1::MoveTableToDatabaseRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +DataprocMetastoreConnection::MoveTableToDatabase( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> DataprocMetastoreConnection::AlterMetadataResourceLocation( @@ -177,6 +353,23 @@ DataprocMetastoreConnection::AlterMetadataResourceLocation( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +DataprocMetastoreConnection::AlterMetadataResourceLocation( + ExperimentalTag, NoAwaitTag, + google::cloud::metastore::v1::AlterMetadataResourceLocationRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +DataprocMetastoreConnection::AlterMetadataResourceLocation( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + std::shared_ptr MakeDataprocMetastoreConnection( Options options) { internal::CheckExpectedOptions> CreateService( google::cloud::metastore::v1::CreateServiceRequest const& request); + virtual StatusOr CreateService( + ExperimentalTag, NoAwaitTag, + google::cloud::metastore::v1::CreateServiceRequest const& request); + + virtual future> CreateService( + ExperimentalTag, google::longrunning::Operation const& operation); + virtual future> UpdateService( google::cloud::metastore::v1::UpdateServiceRequest const& request); + virtual StatusOr UpdateService( + ExperimentalTag, NoAwaitTag, + google::cloud::metastore::v1::UpdateServiceRequest const& request); + + virtual future> UpdateService( + ExperimentalTag, google::longrunning::Operation const& operation); + virtual future> DeleteService( google::cloud::metastore::v1::DeleteServiceRequest const& request); + virtual StatusOr DeleteService( + ExperimentalTag, NoAwaitTag, + google::cloud::metastore::v1::DeleteServiceRequest const& request); + + virtual future> + DeleteService(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StreamRange ListMetadataImports( google::cloud::metastore::v1::ListMetadataImportsRequest request); @@ -214,18 +238,50 @@ class DataprocMetastoreConnection { CreateMetadataImport( google::cloud::metastore::v1::CreateMetadataImportRequest const& request); + virtual StatusOr CreateMetadataImport( + ExperimentalTag, NoAwaitTag, + google::cloud::metastore::v1::CreateMetadataImportRequest const& request); + + virtual future> + CreateMetadataImport(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> UpdateMetadataImport( google::cloud::metastore::v1::UpdateMetadataImportRequest const& request); + virtual StatusOr UpdateMetadataImport( + ExperimentalTag, NoAwaitTag, + google::cloud::metastore::v1::UpdateMetadataImportRequest const& request); + + virtual future> + UpdateMetadataImport(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> ExportMetadata( google::cloud::metastore::v1::ExportMetadataRequest const& request); + virtual StatusOr ExportMetadata( + ExperimentalTag, NoAwaitTag, + google::cloud::metastore::v1::ExportMetadataRequest const& request); + + virtual future> + ExportMetadata(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> RestoreService( google::cloud::metastore::v1::RestoreServiceRequest const& request); + virtual StatusOr RestoreService( + ExperimentalTag, NoAwaitTag, + google::cloud::metastore::v1::RestoreServiceRequest const& request); + + virtual future> + RestoreService(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StreamRange ListBackups( google::cloud::metastore::v1::ListBackupsRequest request); @@ -235,24 +291,67 @@ class DataprocMetastoreConnection { virtual future> CreateBackup( google::cloud::metastore::v1::CreateBackupRequest const& request); + virtual StatusOr CreateBackup( + ExperimentalTag, NoAwaitTag, + google::cloud::metastore::v1::CreateBackupRequest const& request); + + virtual future> CreateBackup( + ExperimentalTag, google::longrunning::Operation const& operation); + virtual future> DeleteBackup( google::cloud::metastore::v1::DeleteBackupRequest const& request); + virtual StatusOr DeleteBackup( + ExperimentalTag, NoAwaitTag, + google::cloud::metastore::v1::DeleteBackupRequest const& request); + + virtual future> + DeleteBackup(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> QueryMetadata( google::cloud::metastore::v1::QueryMetadataRequest const& request); + virtual StatusOr QueryMetadata( + ExperimentalTag, NoAwaitTag, + google::cloud::metastore::v1::QueryMetadataRequest const& request); + + virtual future> + QueryMetadata(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future< StatusOr> MoveTableToDatabase( google::cloud::metastore::v1::MoveTableToDatabaseRequest const& request); + virtual StatusOr MoveTableToDatabase( + ExperimentalTag, NoAwaitTag, + google::cloud::metastore::v1::MoveTableToDatabaseRequest const& request); + + virtual future< + StatusOr> + MoveTableToDatabase(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> AlterMetadataResourceLocation( google::cloud::metastore::v1::AlterMetadataResourceLocationRequest const& request); + + virtual StatusOr + AlterMetadataResourceLocation( + ExperimentalTag, NoAwaitTag, + google::cloud::metastore::v1::AlterMetadataResourceLocationRequest const& + request); + + virtual future> + AlterMetadataResourceLocation( + ExperimentalTag, google::longrunning::Operation const& operation); }; /** diff --git a/google/cloud/metastore/v1/dataproc_metastore_federation_connection.cc b/google/cloud/metastore/v1/dataproc_metastore_federation_connection.cc index c810993ead102..16016f05e2168 100644 --- a/google/cloud/metastore/v1/dataproc_metastore_federation_connection.cc +++ b/google/cloud/metastore/v1/dataproc_metastore_federation_connection.cc @@ -61,6 +61,22 @@ DataprocMetastoreFederationConnection::CreateFederation( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +DataprocMetastoreFederationConnection::CreateFederation( + ExperimentalTag, NoAwaitTag, + google::cloud::metastore::v1::CreateFederationRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +DataprocMetastoreFederationConnection::CreateFederation( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> DataprocMetastoreFederationConnection::UpdateFederation( google::cloud::metastore::v1::UpdateFederationRequest const&) { @@ -69,6 +85,22 @@ DataprocMetastoreFederationConnection::UpdateFederation( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +DataprocMetastoreFederationConnection::UpdateFederation( + ExperimentalTag, NoAwaitTag, + google::cloud::metastore::v1::UpdateFederationRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +DataprocMetastoreFederationConnection::UpdateFederation( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> DataprocMetastoreFederationConnection::DeleteFederation( google::cloud::metastore::v1::DeleteFederationRequest const&) { @@ -77,6 +109,22 @@ DataprocMetastoreFederationConnection::DeleteFederation( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +DataprocMetastoreFederationConnection::DeleteFederation( + ExperimentalTag, NoAwaitTag, + google::cloud::metastore::v1::DeleteFederationRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +DataprocMetastoreFederationConnection::DeleteFederation( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + std::shared_ptr MakeDataprocMetastoreFederationConnection(Options options) { internal::CheckExpectedOptions CreateFederation( + ExperimentalTag, NoAwaitTag, + google::cloud::metastore::v1::CreateFederationRequest const& request); + + virtual future> + CreateFederation(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> UpdateFederation( google::cloud::metastore::v1::UpdateFederationRequest const& request); + virtual StatusOr UpdateFederation( + ExperimentalTag, NoAwaitTag, + google::cloud::metastore::v1::UpdateFederationRequest const& request); + + virtual future> + UpdateFederation(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> DeleteFederation( google::cloud::metastore::v1::DeleteFederationRequest const& request); + + virtual StatusOr DeleteFederation( + ExperimentalTag, NoAwaitTag, + google::cloud::metastore::v1::DeleteFederationRequest const& request); + + virtual future> + DeleteFederation(ExperimentalTag, + google::longrunning::Operation const& operation); }; /** diff --git a/google/cloud/metastore/v1/internal/dataproc_metastore_connection_impl.cc b/google/cloud/metastore/v1/internal/dataproc_metastore_connection_impl.cc index ad007af61ed39..80698f72a2a2c 100644 --- a/google/cloud/metastore/v1/internal/dataproc_metastore_connection_impl.cc +++ b/google/cloud/metastore/v1/internal/dataproc_metastore_connection_impl.cc @@ -154,6 +154,58 @@ DataprocMetastoreConnectionImpl::CreateService( polling_policy(*current), __func__); } +StatusOr +DataprocMetastoreConnectionImpl::CreateService( + ExperimentalTag, NoAwaitTag, + google::cloud::metastore::v1::CreateServiceRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateService(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::metastore::v1::CreateServiceRequest const& request) { + return stub_->CreateService(context, options, request); + }, + *current, request, __func__); +} + +future> +DataprocMetastoreConnectionImpl::CreateService( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to CreateService", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::metastore::v1::Service>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::metastore::v1::Service>, + polling_policy(*current), __func__); +} + future> DataprocMetastoreConnectionImpl::UpdateService( google::cloud::metastore::v1::UpdateServiceRequest const& request) { @@ -193,6 +245,58 @@ DataprocMetastoreConnectionImpl::UpdateService( polling_policy(*current), __func__); } +StatusOr +DataprocMetastoreConnectionImpl::UpdateService( + ExperimentalTag, NoAwaitTag, + google::cloud::metastore::v1::UpdateServiceRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UpdateService(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::metastore::v1::UpdateServiceRequest const& request) { + return stub_->UpdateService(context, options, request); + }, + *current, request, __func__); +} + +future> +DataprocMetastoreConnectionImpl::UpdateService( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to UpdateService", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::metastore::v1::Service>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::metastore::v1::Service>, + polling_policy(*current), __func__); +} + future> DataprocMetastoreConnectionImpl::DeleteService( google::cloud::metastore::v1::DeleteServiceRequest const& request) { @@ -232,6 +336,59 @@ DataprocMetastoreConnectionImpl::DeleteService( polling_policy(*current), __func__); } +StatusOr +DataprocMetastoreConnectionImpl::DeleteService( + ExperimentalTag, NoAwaitTag, + google::cloud::metastore::v1::DeleteServiceRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteService(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::metastore::v1::DeleteServiceRequest const& request) { + return stub_->DeleteService(context, options, request); + }, + *current, request, __func__); +} + +future> +DataprocMetastoreConnectionImpl::DeleteService( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteService", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::metastore::v1::OperationMetadata>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::cloud::metastore::v1::OperationMetadata>, + polling_policy(*current), __func__); +} + StreamRange DataprocMetastoreConnectionImpl::ListMetadataImports( google::cloud::metastore::v1::ListMetadataImportsRequest request) { @@ -322,6 +479,59 @@ DataprocMetastoreConnectionImpl::CreateMetadataImport( polling_policy(*current), __func__); } +StatusOr +DataprocMetastoreConnectionImpl::CreateMetadataImport( + ExperimentalTag, NoAwaitTag, + google::cloud::metastore::v1::CreateMetadataImportRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateMetadataImport(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::metastore::v1::CreateMetadataImportRequest const& + request) { + return stub_->CreateMetadataImport(context, options, request); + }, + *current, request, __func__); +} + +future> +DataprocMetastoreConnectionImpl::CreateMetadataImport( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to CreateMetadataImport", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::metastore::v1::MetadataImport>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::metastore::v1::MetadataImport>, + polling_policy(*current), __func__); +} + future> DataprocMetastoreConnectionImpl::UpdateMetadataImport( google::cloud::metastore::v1::UpdateMetadataImportRequest const& request) { @@ -362,6 +572,59 @@ DataprocMetastoreConnectionImpl::UpdateMetadataImport( polling_policy(*current), __func__); } +StatusOr +DataprocMetastoreConnectionImpl::UpdateMetadataImport( + ExperimentalTag, NoAwaitTag, + google::cloud::metastore::v1::UpdateMetadataImportRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UpdateMetadataImport(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::metastore::v1::UpdateMetadataImportRequest const& + request) { + return stub_->UpdateMetadataImport(context, options, request); + }, + *current, request, __func__); +} + +future> +DataprocMetastoreConnectionImpl::UpdateMetadataImport( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to UpdateMetadataImport", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::metastore::v1::MetadataImport>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::metastore::v1::MetadataImport>, + polling_policy(*current), __func__); +} + future> DataprocMetastoreConnectionImpl::ExportMetadata( google::cloud::metastore::v1::ExportMetadataRequest const& request) { @@ -401,6 +664,59 @@ DataprocMetastoreConnectionImpl::ExportMetadata( polling_policy(*current), __func__); } +StatusOr +DataprocMetastoreConnectionImpl::ExportMetadata( + ExperimentalTag, NoAwaitTag, + google::cloud::metastore::v1::ExportMetadataRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->ExportMetadata(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::metastore::v1::ExportMetadataRequest const& request) { + return stub_->ExportMetadata(context, options, request); + }, + *current, request, __func__); +} + +future> +DataprocMetastoreConnectionImpl::ExportMetadata( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to ExportMetadata", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::metastore::v1::MetadataExport>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::metastore::v1::MetadataExport>, + polling_policy(*current), __func__); +} + future> DataprocMetastoreConnectionImpl::RestoreService( google::cloud::metastore::v1::RestoreServiceRequest const& request) { @@ -440,6 +756,58 @@ DataprocMetastoreConnectionImpl::RestoreService( polling_policy(*current), __func__); } +StatusOr +DataprocMetastoreConnectionImpl::RestoreService( + ExperimentalTag, NoAwaitTag, + google::cloud::metastore::v1::RestoreServiceRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->RestoreService(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::metastore::v1::RestoreServiceRequest const& request) { + return stub_->RestoreService(context, options, request); + }, + *current, request, __func__); +} + +future> +DataprocMetastoreConnectionImpl::RestoreService( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to RestoreService", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::metastore::v1::Restore>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::metastore::v1::Restore>, + polling_policy(*current), __func__); +} + StreamRange DataprocMetastoreConnectionImpl::ListBackups( google::cloud::metastore::v1::ListBackupsRequest request) { @@ -527,6 +895,57 @@ DataprocMetastoreConnectionImpl::CreateBackup( polling_policy(*current), __func__); } +StatusOr +DataprocMetastoreConnectionImpl::CreateBackup( + ExperimentalTag, NoAwaitTag, + google::cloud::metastore::v1::CreateBackupRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateBackup(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::metastore::v1::CreateBackupRequest const& request) { + return stub_->CreateBackup(context, options, request); + }, + *current, request, __func__); +} + +future> +DataprocMetastoreConnectionImpl::CreateBackup( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to CreateBackup", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::metastore::v1::Backup>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::metastore::v1::Backup>, + polling_policy(*current), __func__); +} + future> DataprocMetastoreConnectionImpl::DeleteBackup( google::cloud::metastore::v1::DeleteBackupRequest const& request) { @@ -566,6 +985,58 @@ DataprocMetastoreConnectionImpl::DeleteBackup( polling_policy(*current), __func__); } +StatusOr +DataprocMetastoreConnectionImpl::DeleteBackup( + ExperimentalTag, NoAwaitTag, + google::cloud::metastore::v1::DeleteBackupRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteBackup(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::metastore::v1::DeleteBackupRequest const& request) { + return stub_->DeleteBackup(context, options, request); + }, + *current, request, __func__); +} + +future> +DataprocMetastoreConnectionImpl::DeleteBackup( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteBackup", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::metastore::v1::OperationMetadata>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::cloud::metastore::v1::OperationMetadata>, + polling_policy(*current), __func__); +} + future> DataprocMetastoreConnectionImpl::QueryMetadata( google::cloud::metastore::v1::QueryMetadataRequest const& request) { @@ -605,6 +1076,59 @@ DataprocMetastoreConnectionImpl::QueryMetadata( polling_policy(*current), __func__); } +StatusOr +DataprocMetastoreConnectionImpl::QueryMetadata( + ExperimentalTag, NoAwaitTag, + google::cloud::metastore::v1::QueryMetadataRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->QueryMetadata(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::metastore::v1::QueryMetadataRequest const& request) { + return stub_->QueryMetadata(context, options, request); + }, + *current, request, __func__); +} + +future> +DataprocMetastoreConnectionImpl::QueryMetadata( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to QueryMetadata", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::metastore::v1::QueryMetadataResponse>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::metastore::v1::QueryMetadataResponse>, + polling_policy(*current), __func__); +} + future> DataprocMetastoreConnectionImpl::MoveTableToDatabase( google::cloud::metastore::v1::MoveTableToDatabaseRequest const& request) { @@ -645,6 +1169,59 @@ DataprocMetastoreConnectionImpl::MoveTableToDatabase( polling_policy(*current), __func__); } +StatusOr +DataprocMetastoreConnectionImpl::MoveTableToDatabase( + ExperimentalTag, NoAwaitTag, + google::cloud::metastore::v1::MoveTableToDatabaseRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->MoveTableToDatabase(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::metastore::v1::MoveTableToDatabaseRequest const& + request) { + return stub_->MoveTableToDatabase(context, options, request); + }, + *current, request, __func__); +} + +future> +DataprocMetastoreConnectionImpl::MoveTableToDatabase( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to MoveTableToDatabase", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::metastore::v1::MoveTableToDatabaseResponse>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::metastore::v1::MoveTableToDatabaseResponse>, + polling_policy(*current), __func__); +} + future> DataprocMetastoreConnectionImpl::AlterMetadataResourceLocation( @@ -686,6 +1263,61 @@ DataprocMetastoreConnectionImpl::AlterMetadataResourceLocation( polling_policy(*current), __func__); } +StatusOr +DataprocMetastoreConnectionImpl::AlterMetadataResourceLocation( + ExperimentalTag, NoAwaitTag, + google::cloud::metastore::v1::AlterMetadataResourceLocationRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->AlterMetadataResourceLocation(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::metastore::v1:: + AlterMetadataResourceLocationRequest const& request) { + return stub_->AlterMetadataResourceLocation(context, options, request); + }, + *current, request, __func__); +} + +future> +DataprocMetastoreConnectionImpl::AlterMetadataResourceLocation( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to AlterMetadataResourceLocation", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::metastore::v1::AlterMetadataResourceLocationResponse>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::metastore::v1::AlterMetadataResourceLocationResponse>, + polling_policy(*current), __func__); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace metastore_v1_internal } // namespace cloud diff --git a/google/cloud/metastore/v1/internal/dataproc_metastore_connection_impl.h b/google/cloud/metastore/v1/internal/dataproc_metastore_connection_impl.h index 673a2646c3f39..3e8ef26321c82 100644 --- a/google/cloud/metastore/v1/internal/dataproc_metastore_connection_impl.h +++ b/google/cloud/metastore/v1/internal/dataproc_metastore_connection_impl.h @@ -62,14 +62,41 @@ class DataprocMetastoreConnectionImpl google::cloud::metastore::v1::CreateServiceRequest const& request) override; + StatusOr CreateService( + ExperimentalTag, NoAwaitTag, + google::cloud::metastore::v1::CreateServiceRequest const& request) + override; + + future> CreateService( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateService( google::cloud::metastore::v1::UpdateServiceRequest const& request) override; + StatusOr UpdateService( + ExperimentalTag, NoAwaitTag, + google::cloud::metastore::v1::UpdateServiceRequest const& request) + override; + + future> UpdateService( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteService(google::cloud::metastore::v1::DeleteServiceRequest const& request) override; + StatusOr DeleteService( + ExperimentalTag, NoAwaitTag, + google::cloud::metastore::v1::DeleteServiceRequest const& request) + override; + + future> + DeleteService(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListMetadataImports( google::cloud::metastore::v1::ListMetadataImportsRequest request) override; @@ -83,19 +110,57 @@ class DataprocMetastoreConnectionImpl google::cloud::metastore::v1::CreateMetadataImportRequest const& request) override; + StatusOr CreateMetadataImport( + ExperimentalTag, NoAwaitTag, + google::cloud::metastore::v1::CreateMetadataImportRequest const& request) + override; + + future> + CreateMetadataImport( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateMetadataImport( google::cloud::metastore::v1::UpdateMetadataImportRequest const& request) override; + StatusOr UpdateMetadataImport( + ExperimentalTag, NoAwaitTag, + google::cloud::metastore::v1::UpdateMetadataImportRequest const& request) + override; + + future> + UpdateMetadataImport( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ExportMetadata( google::cloud::metastore::v1::ExportMetadataRequest const& request) override; + StatusOr ExportMetadata( + ExperimentalTag, NoAwaitTag, + google::cloud::metastore::v1::ExportMetadataRequest const& request) + override; + + future> ExportMetadata( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> RestoreService( google::cloud::metastore::v1::RestoreServiceRequest const& request) override; + StatusOr RestoreService( + ExperimentalTag, NoAwaitTag, + google::cloud::metastore::v1::RestoreServiceRequest const& request) + override; + + future> RestoreService( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListBackups( google::cloud::metastore::v1::ListBackupsRequest request) override; @@ -106,25 +171,72 @@ class DataprocMetastoreConnectionImpl google::cloud::metastore::v1::CreateBackupRequest const& request) override; + StatusOr CreateBackup( + ExperimentalTag, NoAwaitTag, + google::cloud::metastore::v1::CreateBackupRequest const& request) + override; + + future> CreateBackup( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteBackup(google::cloud::metastore::v1::DeleteBackupRequest const& request) override; + StatusOr DeleteBackup( + ExperimentalTag, NoAwaitTag, + google::cloud::metastore::v1::DeleteBackupRequest const& request) + override; + + future> + DeleteBackup(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> QueryMetadata(google::cloud::metastore::v1::QueryMetadataRequest const& request) override; + StatusOr QueryMetadata( + ExperimentalTag, NoAwaitTag, + google::cloud::metastore::v1::QueryMetadataRequest const& request) + override; + + future> + QueryMetadata(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> MoveTableToDatabase( google::cloud::metastore::v1::MoveTableToDatabaseRequest const& request) override; + StatusOr MoveTableToDatabase( + ExperimentalTag, NoAwaitTag, + google::cloud::metastore::v1::MoveTableToDatabaseRequest const& request) + override; + + future> + MoveTableToDatabase(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> AlterMetadataResourceLocation( google::cloud::metastore::v1::AlterMetadataResourceLocationRequest const& request) override; + StatusOr AlterMetadataResourceLocation( + ExperimentalTag, NoAwaitTag, + google::cloud::metastore::v1::AlterMetadataResourceLocationRequest const& + request) override; + + future> + AlterMetadataResourceLocation( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + private: std::unique_ptr background_; std::shared_ptr stub_; diff --git a/google/cloud/metastore/v1/internal/dataproc_metastore_federation_connection_impl.cc b/google/cloud/metastore/v1/internal/dataproc_metastore_federation_connection_impl.cc index 5b45be4bc0e70..3c26310166c05 100644 --- a/google/cloud/metastore/v1/internal/dataproc_metastore_federation_connection_impl.cc +++ b/google/cloud/metastore/v1/internal/dataproc_metastore_federation_connection_impl.cc @@ -165,6 +165,59 @@ DataprocMetastoreFederationConnectionImpl::CreateFederation( polling_policy(*current), __func__); } +StatusOr +DataprocMetastoreFederationConnectionImpl::CreateFederation( + ExperimentalTag, NoAwaitTag, + google::cloud::metastore::v1::CreateFederationRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateFederation(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::metastore::v1::CreateFederationRequest const& + request) { + return stub_->CreateFederation(context, options, request); + }, + *current, request, __func__); +} + +future> +DataprocMetastoreFederationConnectionImpl::CreateFederation( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to CreateFederation", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::metastore::v1::Federation>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::metastore::v1::Federation>, + polling_policy(*current), __func__); +} + future> DataprocMetastoreFederationConnectionImpl::UpdateFederation( google::cloud::metastore::v1::UpdateFederationRequest const& request) { @@ -205,6 +258,59 @@ DataprocMetastoreFederationConnectionImpl::UpdateFederation( polling_policy(*current), __func__); } +StatusOr +DataprocMetastoreFederationConnectionImpl::UpdateFederation( + ExperimentalTag, NoAwaitTag, + google::cloud::metastore::v1::UpdateFederationRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UpdateFederation(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::metastore::v1::UpdateFederationRequest const& + request) { + return stub_->UpdateFederation(context, options, request); + }, + *current, request, __func__); +} + +future> +DataprocMetastoreFederationConnectionImpl::UpdateFederation( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to UpdateFederation", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::metastore::v1::Federation>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::metastore::v1::Federation>, + polling_policy(*current), __func__); +} + future> DataprocMetastoreFederationConnectionImpl::DeleteFederation( google::cloud::metastore::v1::DeleteFederationRequest const& request) { @@ -245,6 +351,59 @@ DataprocMetastoreFederationConnectionImpl::DeleteFederation( polling_policy(*current), __func__); } +StatusOr +DataprocMetastoreFederationConnectionImpl::DeleteFederation( + ExperimentalTag, NoAwaitTag, + google::cloud::metastore::v1::DeleteFederationRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteFederation(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::metastore::v1::DeleteFederationRequest const& + request) { + return stub_->DeleteFederation(context, options, request); + }, + *current, request, __func__); +} + +future> +DataprocMetastoreFederationConnectionImpl::DeleteFederation( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteFederation", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::metastore::v1::OperationMetadata>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::cloud::metastore::v1::OperationMetadata>, + polling_policy(*current), __func__); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace metastore_v1_internal } // namespace cloud diff --git a/google/cloud/metastore/v1/internal/dataproc_metastore_federation_connection_impl.h b/google/cloud/metastore/v1/internal/dataproc_metastore_federation_connection_impl.h index 134541eb8a0c6..375eec4c326e3 100644 --- a/google/cloud/metastore/v1/internal/dataproc_metastore_federation_connection_impl.h +++ b/google/cloud/metastore/v1/internal/dataproc_metastore_federation_connection_impl.h @@ -64,14 +64,41 @@ class DataprocMetastoreFederationConnectionImpl google::cloud::metastore::v1::CreateFederationRequest const& request) override; + StatusOr CreateFederation( + ExperimentalTag, NoAwaitTag, + google::cloud::metastore::v1::CreateFederationRequest const& request) + override; + + future> CreateFederation( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateFederation( google::cloud::metastore::v1::UpdateFederationRequest const& request) override; + StatusOr UpdateFederation( + ExperimentalTag, NoAwaitTag, + google::cloud::metastore::v1::UpdateFederationRequest const& request) + override; + + future> UpdateFederation( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteFederation(google::cloud::metastore::v1::DeleteFederationRequest const& request) override; + StatusOr DeleteFederation( + ExperimentalTag, NoAwaitTag, + google::cloud::metastore::v1::DeleteFederationRequest const& request) + override; + + future> + DeleteFederation(ExperimentalTag, + google::longrunning::Operation const& operation) override; + private: std::unique_ptr background_; std::shared_ptr stub_; diff --git a/google/cloud/metastore/v1/internal/dataproc_metastore_federation_tracing_connection.cc b/google/cloud/metastore/v1/internal/dataproc_metastore_federation_tracing_connection.cc index 00b47de55587e..ac6b3127fa196 100644 --- a/google/cloud/metastore/v1/internal/dataproc_metastore_federation_tracing_connection.cc +++ b/google/cloud/metastore/v1/internal/dataproc_metastore_federation_tracing_connection.cc @@ -64,6 +64,28 @@ DataprocMetastoreFederationTracingConnection::CreateFederation( return internal::EndSpan(std::move(span), child_->CreateFederation(request)); } +StatusOr +DataprocMetastoreFederationTracingConnection::CreateFederation( + ExperimentalTag, NoAwaitTag, + google::cloud::metastore::v1::CreateFederationRequest const& request) { + auto span = internal::MakeSpan( + "metastore_v1::DataprocMetastoreFederationConnection::CreateFederation"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->CreateFederation(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +DataprocMetastoreFederationTracingConnection::CreateFederation( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "metastore_v1::DataprocMetastoreFederationConnection::CreateFederation"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->CreateFederation(ExperimentalTag{}, operation)); +} + future> DataprocMetastoreFederationTracingConnection::UpdateFederation( google::cloud::metastore::v1::UpdateFederationRequest const& request) { @@ -73,6 +95,28 @@ DataprocMetastoreFederationTracingConnection::UpdateFederation( return internal::EndSpan(std::move(span), child_->UpdateFederation(request)); } +StatusOr +DataprocMetastoreFederationTracingConnection::UpdateFederation( + ExperimentalTag, NoAwaitTag, + google::cloud::metastore::v1::UpdateFederationRequest const& request) { + auto span = internal::MakeSpan( + "metastore_v1::DataprocMetastoreFederationConnection::UpdateFederation"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->UpdateFederation(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +DataprocMetastoreFederationTracingConnection::UpdateFederation( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "metastore_v1::DataprocMetastoreFederationConnection::UpdateFederation"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->UpdateFederation(ExperimentalTag{}, operation)); +} + future> DataprocMetastoreFederationTracingConnection::DeleteFederation( google::cloud::metastore::v1::DeleteFederationRequest const& request) { @@ -82,6 +126,28 @@ DataprocMetastoreFederationTracingConnection::DeleteFederation( return internal::EndSpan(std::move(span), child_->DeleteFederation(request)); } +StatusOr +DataprocMetastoreFederationTracingConnection::DeleteFederation( + ExperimentalTag, NoAwaitTag, + google::cloud::metastore::v1::DeleteFederationRequest const& request) { + auto span = internal::MakeSpan( + "metastore_v1::DataprocMetastoreFederationConnection::DeleteFederation"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->DeleteFederation(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +DataprocMetastoreFederationTracingConnection::DeleteFederation( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "metastore_v1::DataprocMetastoreFederationConnection::DeleteFederation"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->DeleteFederation(ExperimentalTag{}, operation)); +} + #endif // GOOGLE_CLOUD_CPP_HAVE_OPENTELEMETRY std::shared_ptr diff --git a/google/cloud/metastore/v1/internal/dataproc_metastore_federation_tracing_connection.h b/google/cloud/metastore/v1/internal/dataproc_metastore_federation_tracing_connection.h index 2c1ab6ab2c5a2..40c5d3a59b539 100644 --- a/google/cloud/metastore/v1/internal/dataproc_metastore_federation_tracing_connection.h +++ b/google/cloud/metastore/v1/internal/dataproc_metastore_federation_tracing_connection.h @@ -52,14 +52,41 @@ class DataprocMetastoreFederationTracingConnection google::cloud::metastore::v1::CreateFederationRequest const& request) override; + StatusOr CreateFederation( + ExperimentalTag, NoAwaitTag, + google::cloud::metastore::v1::CreateFederationRequest const& request) + override; + + future> CreateFederation( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateFederation( google::cloud::metastore::v1::UpdateFederationRequest const& request) override; + StatusOr UpdateFederation( + ExperimentalTag, NoAwaitTag, + google::cloud::metastore::v1::UpdateFederationRequest const& request) + override; + + future> UpdateFederation( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteFederation(google::cloud::metastore::v1::DeleteFederationRequest const& request) override; + StatusOr DeleteFederation( + ExperimentalTag, NoAwaitTag, + google::cloud::metastore::v1::DeleteFederationRequest const& request) + override; + + future> + DeleteFederation(ExperimentalTag, + google::longrunning::Operation const& operation) override; + private: std::shared_ptr child_; }; diff --git a/google/cloud/metastore/v1/internal/dataproc_metastore_tracing_connection.cc b/google/cloud/metastore/v1/internal/dataproc_metastore_tracing_connection.cc index 8353edd806807..6d47b87485a22 100644 --- a/google/cloud/metastore/v1/internal/dataproc_metastore_tracing_connection.cc +++ b/google/cloud/metastore/v1/internal/dataproc_metastore_tracing_connection.cc @@ -62,6 +62,27 @@ DataprocMetastoreTracingConnection::CreateService( return internal::EndSpan(std::move(span), child_->CreateService(request)); } +StatusOr +DataprocMetastoreTracingConnection::CreateService( + ExperimentalTag, NoAwaitTag, + google::cloud::metastore::v1::CreateServiceRequest const& request) { + auto span = internal::MakeSpan( + "metastore_v1::DataprocMetastoreConnection::CreateService"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->CreateService(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +DataprocMetastoreTracingConnection::CreateService( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "metastore_v1::DataprocMetastoreConnection::CreateService"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->CreateService(ExperimentalTag{}, operation)); +} + future> DataprocMetastoreTracingConnection::UpdateService( google::cloud::metastore::v1::UpdateServiceRequest const& request) { @@ -71,6 +92,27 @@ DataprocMetastoreTracingConnection::UpdateService( return internal::EndSpan(std::move(span), child_->UpdateService(request)); } +StatusOr +DataprocMetastoreTracingConnection::UpdateService( + ExperimentalTag, NoAwaitTag, + google::cloud::metastore::v1::UpdateServiceRequest const& request) { + auto span = internal::MakeSpan( + "metastore_v1::DataprocMetastoreConnection::UpdateService"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->UpdateService(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +DataprocMetastoreTracingConnection::UpdateService( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "metastore_v1::DataprocMetastoreConnection::UpdateService"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->UpdateService(ExperimentalTag{}, operation)); +} + future> DataprocMetastoreTracingConnection::DeleteService( google::cloud::metastore::v1::DeleteServiceRequest const& request) { @@ -80,6 +122,27 @@ DataprocMetastoreTracingConnection::DeleteService( return internal::EndSpan(std::move(span), child_->DeleteService(request)); } +StatusOr +DataprocMetastoreTracingConnection::DeleteService( + ExperimentalTag, NoAwaitTag, + google::cloud::metastore::v1::DeleteServiceRequest const& request) { + auto span = internal::MakeSpan( + "metastore_v1::DataprocMetastoreConnection::DeleteService"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->DeleteService(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +DataprocMetastoreTracingConnection::DeleteService( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "metastore_v1::DataprocMetastoreConnection::DeleteService"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->DeleteService(ExperimentalTag{}, operation)); +} + StreamRange DataprocMetastoreTracingConnection::ListMetadataImports( google::cloud::metastore::v1::ListMetadataImportsRequest request) { @@ -111,6 +174,28 @@ DataprocMetastoreTracingConnection::CreateMetadataImport( child_->CreateMetadataImport(request)); } +StatusOr +DataprocMetastoreTracingConnection::CreateMetadataImport( + ExperimentalTag, NoAwaitTag, + google::cloud::metastore::v1::CreateMetadataImportRequest const& request) { + auto span = internal::MakeSpan( + "metastore_v1::DataprocMetastoreConnection::CreateMetadataImport"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->CreateMetadataImport(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +DataprocMetastoreTracingConnection::CreateMetadataImport( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "metastore_v1::DataprocMetastoreConnection::CreateMetadataImport"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->CreateMetadataImport( + ExperimentalTag{}, operation)); +} + future> DataprocMetastoreTracingConnection::UpdateMetadataImport( google::cloud::metastore::v1::UpdateMetadataImportRequest const& request) { @@ -121,6 +206,28 @@ DataprocMetastoreTracingConnection::UpdateMetadataImport( child_->UpdateMetadataImport(request)); } +StatusOr +DataprocMetastoreTracingConnection::UpdateMetadataImport( + ExperimentalTag, NoAwaitTag, + google::cloud::metastore::v1::UpdateMetadataImportRequest const& request) { + auto span = internal::MakeSpan( + "metastore_v1::DataprocMetastoreConnection::UpdateMetadataImport"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->UpdateMetadataImport(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +DataprocMetastoreTracingConnection::UpdateMetadataImport( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "metastore_v1::DataprocMetastoreConnection::UpdateMetadataImport"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->UpdateMetadataImport( + ExperimentalTag{}, operation)); +} + future> DataprocMetastoreTracingConnection::ExportMetadata( google::cloud::metastore::v1::ExportMetadataRequest const& request) { @@ -130,6 +237,27 @@ DataprocMetastoreTracingConnection::ExportMetadata( return internal::EndSpan(std::move(span), child_->ExportMetadata(request)); } +StatusOr +DataprocMetastoreTracingConnection::ExportMetadata( + ExperimentalTag, NoAwaitTag, + google::cloud::metastore::v1::ExportMetadataRequest const& request) { + auto span = internal::MakeSpan( + "metastore_v1::DataprocMetastoreConnection::ExportMetadata"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->ExportMetadata(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +DataprocMetastoreTracingConnection::ExportMetadata( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "metastore_v1::DataprocMetastoreConnection::ExportMetadata"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->ExportMetadata(ExperimentalTag{}, operation)); +} + future> DataprocMetastoreTracingConnection::RestoreService( google::cloud::metastore::v1::RestoreServiceRequest const& request) { @@ -139,6 +267,27 @@ DataprocMetastoreTracingConnection::RestoreService( return internal::EndSpan(std::move(span), child_->RestoreService(request)); } +StatusOr +DataprocMetastoreTracingConnection::RestoreService( + ExperimentalTag, NoAwaitTag, + google::cloud::metastore::v1::RestoreServiceRequest const& request) { + auto span = internal::MakeSpan( + "metastore_v1::DataprocMetastoreConnection::RestoreService"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->RestoreService(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +DataprocMetastoreTracingConnection::RestoreService( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "metastore_v1::DataprocMetastoreConnection::RestoreService"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->RestoreService(ExperimentalTag{}, operation)); +} + StreamRange DataprocMetastoreTracingConnection::ListBackups( google::cloud::metastore::v1::ListBackupsRequest request) { @@ -168,6 +317,27 @@ DataprocMetastoreTracingConnection::CreateBackup( return internal::EndSpan(std::move(span), child_->CreateBackup(request)); } +StatusOr +DataprocMetastoreTracingConnection::CreateBackup( + ExperimentalTag, NoAwaitTag, + google::cloud::metastore::v1::CreateBackupRequest const& request) { + auto span = internal::MakeSpan( + "metastore_v1::DataprocMetastoreConnection::CreateBackup"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->CreateBackup(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +DataprocMetastoreTracingConnection::CreateBackup( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "metastore_v1::DataprocMetastoreConnection::CreateBackup"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->CreateBackup(ExperimentalTag{}, operation)); +} + future> DataprocMetastoreTracingConnection::DeleteBackup( google::cloud::metastore::v1::DeleteBackupRequest const& request) { @@ -177,6 +347,27 @@ DataprocMetastoreTracingConnection::DeleteBackup( return internal::EndSpan(std::move(span), child_->DeleteBackup(request)); } +StatusOr +DataprocMetastoreTracingConnection::DeleteBackup( + ExperimentalTag, NoAwaitTag, + google::cloud::metastore::v1::DeleteBackupRequest const& request) { + auto span = internal::MakeSpan( + "metastore_v1::DataprocMetastoreConnection::DeleteBackup"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->DeleteBackup(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +DataprocMetastoreTracingConnection::DeleteBackup( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "metastore_v1::DataprocMetastoreConnection::DeleteBackup"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->DeleteBackup(ExperimentalTag{}, operation)); +} + future> DataprocMetastoreTracingConnection::QueryMetadata( google::cloud::metastore::v1::QueryMetadataRequest const& request) { @@ -186,6 +377,27 @@ DataprocMetastoreTracingConnection::QueryMetadata( return internal::EndSpan(std::move(span), child_->QueryMetadata(request)); } +StatusOr +DataprocMetastoreTracingConnection::QueryMetadata( + ExperimentalTag, NoAwaitTag, + google::cloud::metastore::v1::QueryMetadataRequest const& request) { + auto span = internal::MakeSpan( + "metastore_v1::DataprocMetastoreConnection::QueryMetadata"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->QueryMetadata(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +DataprocMetastoreTracingConnection::QueryMetadata( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "metastore_v1::DataprocMetastoreConnection::QueryMetadata"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->QueryMetadata(ExperimentalTag{}, operation)); +} + future> DataprocMetastoreTracingConnection::MoveTableToDatabase( google::cloud::metastore::v1::MoveTableToDatabaseRequest const& request) { @@ -196,6 +408,28 @@ DataprocMetastoreTracingConnection::MoveTableToDatabase( child_->MoveTableToDatabase(request)); } +StatusOr +DataprocMetastoreTracingConnection::MoveTableToDatabase( + ExperimentalTag, NoAwaitTag, + google::cloud::metastore::v1::MoveTableToDatabaseRequest const& request) { + auto span = internal::MakeSpan( + "metastore_v1::DataprocMetastoreConnection::MoveTableToDatabase"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->MoveTableToDatabase(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +DataprocMetastoreTracingConnection::MoveTableToDatabase( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "metastore_v1::DataprocMetastoreConnection::MoveTableToDatabase"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->MoveTableToDatabase( + ExperimentalTag{}, operation)); +} + future> DataprocMetastoreTracingConnection::AlterMetadataResourceLocation( @@ -209,6 +443,33 @@ DataprocMetastoreTracingConnection::AlterMetadataResourceLocation( child_->AlterMetadataResourceLocation(request)); } +StatusOr +DataprocMetastoreTracingConnection::AlterMetadataResourceLocation( + ExperimentalTag, NoAwaitTag, + google::cloud::metastore::v1::AlterMetadataResourceLocationRequest const& + request) { + auto span = internal::MakeSpan( + "metastore_v1::DataprocMetastoreConnection::" + "AlterMetadataResourceLocation"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->AlterMetadataResourceLocation(ExperimentalTag{}, + NoAwaitTag{}, request)); +} + +future> +DataprocMetastoreTracingConnection::AlterMetadataResourceLocation( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "metastore_v1::DataprocMetastoreConnection::" + "AlterMetadataResourceLocation"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), + child_->AlterMetadataResourceLocation(ExperimentalTag{}, operation)); +} + #endif // GOOGLE_CLOUD_CPP_HAVE_OPENTELEMETRY std::shared_ptr diff --git a/google/cloud/metastore/v1/internal/dataproc_metastore_tracing_connection.h b/google/cloud/metastore/v1/internal/dataproc_metastore_tracing_connection.h index 78134bdfd0704..b856d023a100a 100644 --- a/google/cloud/metastore/v1/internal/dataproc_metastore_tracing_connection.h +++ b/google/cloud/metastore/v1/internal/dataproc_metastore_tracing_connection.h @@ -50,14 +50,41 @@ class DataprocMetastoreTracingConnection google::cloud::metastore::v1::CreateServiceRequest const& request) override; + StatusOr CreateService( + ExperimentalTag, NoAwaitTag, + google::cloud::metastore::v1::CreateServiceRequest const& request) + override; + + future> CreateService( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateService( google::cloud::metastore::v1::UpdateServiceRequest const& request) override; + StatusOr UpdateService( + ExperimentalTag, NoAwaitTag, + google::cloud::metastore::v1::UpdateServiceRequest const& request) + override; + + future> UpdateService( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteService(google::cloud::metastore::v1::DeleteServiceRequest const& request) override; + StatusOr DeleteService( + ExperimentalTag, NoAwaitTag, + google::cloud::metastore::v1::DeleteServiceRequest const& request) + override; + + future> + DeleteService(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListMetadataImports( google::cloud::metastore::v1::ListMetadataImportsRequest request) override; @@ -71,19 +98,57 @@ class DataprocMetastoreTracingConnection google::cloud::metastore::v1::CreateMetadataImportRequest const& request) override; + StatusOr CreateMetadataImport( + ExperimentalTag, NoAwaitTag, + google::cloud::metastore::v1::CreateMetadataImportRequest const& request) + override; + + future> + CreateMetadataImport( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateMetadataImport( google::cloud::metastore::v1::UpdateMetadataImportRequest const& request) override; + StatusOr UpdateMetadataImport( + ExperimentalTag, NoAwaitTag, + google::cloud::metastore::v1::UpdateMetadataImportRequest const& request) + override; + + future> + UpdateMetadataImport( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ExportMetadata( google::cloud::metastore::v1::ExportMetadataRequest const& request) override; + StatusOr ExportMetadata( + ExperimentalTag, NoAwaitTag, + google::cloud::metastore::v1::ExportMetadataRequest const& request) + override; + + future> ExportMetadata( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> RestoreService( google::cloud::metastore::v1::RestoreServiceRequest const& request) override; + StatusOr RestoreService( + ExperimentalTag, NoAwaitTag, + google::cloud::metastore::v1::RestoreServiceRequest const& request) + override; + + future> RestoreService( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListBackups( google::cloud::metastore::v1::ListBackupsRequest request) override; @@ -94,25 +159,72 @@ class DataprocMetastoreTracingConnection google::cloud::metastore::v1::CreateBackupRequest const& request) override; + StatusOr CreateBackup( + ExperimentalTag, NoAwaitTag, + google::cloud::metastore::v1::CreateBackupRequest const& request) + override; + + future> CreateBackup( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteBackup(google::cloud::metastore::v1::DeleteBackupRequest const& request) override; + StatusOr DeleteBackup( + ExperimentalTag, NoAwaitTag, + google::cloud::metastore::v1::DeleteBackupRequest const& request) + override; + + future> + DeleteBackup(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> QueryMetadata(google::cloud::metastore::v1::QueryMetadataRequest const& request) override; + StatusOr QueryMetadata( + ExperimentalTag, NoAwaitTag, + google::cloud::metastore::v1::QueryMetadataRequest const& request) + override; + + future> + QueryMetadata(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> MoveTableToDatabase( google::cloud::metastore::v1::MoveTableToDatabaseRequest const& request) override; + StatusOr MoveTableToDatabase( + ExperimentalTag, NoAwaitTag, + google::cloud::metastore::v1::MoveTableToDatabaseRequest const& request) + override; + + future> + MoveTableToDatabase(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> AlterMetadataResourceLocation( google::cloud::metastore::v1::AlterMetadataResourceLocationRequest const& request) override; + StatusOr AlterMetadataResourceLocation( + ExperimentalTag, NoAwaitTag, + google::cloud::metastore::v1::AlterMetadataResourceLocationRequest const& + request) override; + + future> + AlterMetadataResourceLocation( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + private: std::shared_ptr child_; }; diff --git a/google/cloud/metastore/v1/mocks/mock_dataproc_metastore_connection.h b/google/cloud/metastore/v1/mocks/mock_dataproc_metastore_connection.h index a11694341522d..5024c11c2af2b 100644 --- a/google/cloud/metastore/v1/mocks/mock_dataproc_metastore_connection.h +++ b/google/cloud/metastore/v1/mocks/mock_dataproc_metastore_connection.h @@ -61,17 +61,53 @@ class MockDataprocMetastoreConnection (google::cloud::metastore::v1::CreateServiceRequest const& request), (override)); + MOCK_METHOD( + StatusOr, CreateService, + (ExperimentalTag, NoAwaitTag, + google::cloud::metastore::v1::CreateServiceRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateService, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, UpdateService, (google::cloud::metastore::v1::UpdateServiceRequest const& request), (override)); + MOCK_METHOD( + StatusOr, UpdateService, + (ExperimentalTag, NoAwaitTag, + google::cloud::metastore::v1::UpdateServiceRequest const& request), + (override)); + + MOCK_METHOD(future>, + UpdateService, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteService, (google::cloud::metastore::v1::DeleteServiceRequest const& request), (override)); + MOCK_METHOD( + StatusOr, DeleteService, + (ExperimentalTag, NoAwaitTag, + google::cloud::metastore::v1::DeleteServiceRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteService, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( (StreamRange), ListMetadataImports, @@ -89,23 +125,71 @@ class MockDataprocMetastoreConnection request), (override)); + MOCK_METHOD(StatusOr, CreateMetadataImport, + (ExperimentalTag, NoAwaitTag, + google::cloud::metastore::v1::CreateMetadataImportRequest const& + request), + (override)); + + MOCK_METHOD(future>, + CreateMetadataImport, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, UpdateMetadataImport, (google::cloud::metastore::v1::UpdateMetadataImportRequest const& request), (override)); + MOCK_METHOD(StatusOr, UpdateMetadataImport, + (ExperimentalTag, NoAwaitTag, + google::cloud::metastore::v1::UpdateMetadataImportRequest const& + request), + (override)); + + MOCK_METHOD(future>, + UpdateMetadataImport, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, ExportMetadata, (google::cloud::metastore::v1::ExportMetadataRequest const& request), (override)); + MOCK_METHOD( + StatusOr, ExportMetadata, + (ExperimentalTag, NoAwaitTag, + google::cloud::metastore::v1::ExportMetadataRequest const& request), + (override)); + + MOCK_METHOD(future>, + ExportMetadata, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, RestoreService, (google::cloud::metastore::v1::RestoreServiceRequest const& request), (override)); + MOCK_METHOD( + StatusOr, RestoreService, + (ExperimentalTag, NoAwaitTag, + google::cloud::metastore::v1::RestoreServiceRequest const& request), + (override)); + + MOCK_METHOD(future>, + RestoreService, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD((StreamRange), ListBackups, (google::cloud::metastore::v1::ListBackupsRequest request), (override)); @@ -119,18 +203,54 @@ class MockDataprocMetastoreConnection (google::cloud::metastore::v1::CreateBackupRequest const& request), (override)); + MOCK_METHOD( + StatusOr, CreateBackup, + (ExperimentalTag, NoAwaitTag, + google::cloud::metastore::v1::CreateBackupRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateBackup, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteBackup, (google::cloud::metastore::v1::DeleteBackupRequest const& request), (override)); + MOCK_METHOD( + StatusOr, DeleteBackup, + (ExperimentalTag, NoAwaitTag, + google::cloud::metastore::v1::DeleteBackupRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteBackup, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, QueryMetadata, (google::cloud::metastore::v1::QueryMetadataRequest const& request), (override)); + MOCK_METHOD( + StatusOr, QueryMetadata, + (ExperimentalTag, NoAwaitTag, + google::cloud::metastore::v1::QueryMetadataRequest const& request), + (override)); + + MOCK_METHOD( + future>, + QueryMetadata, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future< StatusOr>, @@ -138,6 +258,19 @@ class MockDataprocMetastoreConnection (google::cloud::metastore::v1::MoveTableToDatabaseRequest const& request), (override)); + MOCK_METHOD( + StatusOr, MoveTableToDatabase, + (ExperimentalTag, NoAwaitTag, + google::cloud::metastore::v1::MoveTableToDatabaseRequest const& request), + (override)); + + MOCK_METHOD( + future< + StatusOr>, + MoveTableToDatabase, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, @@ -145,6 +278,20 @@ class MockDataprocMetastoreConnection (google::cloud::metastore::v1::AlterMetadataResourceLocationRequest const& request), (override)); + + MOCK_METHOD( + StatusOr, AlterMetadataResourceLocation, + (ExperimentalTag, NoAwaitTag, + google::cloud::metastore::v1::AlterMetadataResourceLocationRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + AlterMetadataResourceLocation, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); }; GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END diff --git a/google/cloud/metastore/v1/mocks/mock_dataproc_metastore_federation_connection.h b/google/cloud/metastore/v1/mocks/mock_dataproc_metastore_federation_connection.h index a6a7fadb814ee..2fea9c5ef9aa0 100644 --- a/google/cloud/metastore/v1/mocks/mock_dataproc_metastore_federation_connection.h +++ b/google/cloud/metastore/v1/mocks/mock_dataproc_metastore_federation_connection.h @@ -63,17 +63,53 @@ class MockDataprocMetastoreFederationConnection (google::cloud::metastore::v1::CreateFederationRequest const& request), (override)); + MOCK_METHOD( + StatusOr, CreateFederation, + (ExperimentalTag, NoAwaitTag, + google::cloud::metastore::v1::CreateFederationRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateFederation, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, UpdateFederation, (google::cloud::metastore::v1::UpdateFederationRequest const& request), (override)); + MOCK_METHOD( + StatusOr, UpdateFederation, + (ExperimentalTag, NoAwaitTag, + google::cloud::metastore::v1::UpdateFederationRequest const& request), + (override)); + + MOCK_METHOD(future>, + UpdateFederation, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteFederation, (google::cloud::metastore::v1::DeleteFederationRequest const& request), (override)); + + MOCK_METHOD( + StatusOr, DeleteFederation, + (ExperimentalTag, NoAwaitTag, + google::cloud::metastore::v1::DeleteFederationRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteFederation, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); }; GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END diff --git a/google/cloud/migrationcenter/v1/internal/migration_center_connection_impl.cc b/google/cloud/migrationcenter/v1/internal/migration_center_connection_impl.cc index 1731314ea35f8..aa6170b3961e2 100644 --- a/google/cloud/migrationcenter/v1/internal/migration_center_connection_impl.cc +++ b/google/cloud/migrationcenter/v1/internal/migration_center_connection_impl.cc @@ -249,6 +249,60 @@ MigrationCenterConnectionImpl::CreateImportJob( polling_policy(*current), __func__); } +StatusOr +MigrationCenterConnectionImpl::CreateImportJob( + ExperimentalTag, NoAwaitTag, + google::cloud::migrationcenter::v1::CreateImportJobRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateImportJob(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::migrationcenter::v1::CreateImportJobRequest const& + request) { + return stub_->CreateImportJob(context, options, request); + }, + *current, request, __func__); +} + +future> +MigrationCenterConnectionImpl::CreateImportJob( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to CreateImportJob", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::migrationcenter::v1::ImportJob>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::migrationcenter::v1::ImportJob>, + polling_policy(*current), __func__); +} + StreamRange MigrationCenterConnectionImpl::ListImportJobs( google::cloud::migrationcenter::v1::ListImportJobsRequest request) { @@ -339,6 +393,60 @@ MigrationCenterConnectionImpl::DeleteImportJob( polling_policy(*current), __func__); } +StatusOr +MigrationCenterConnectionImpl::DeleteImportJob( + ExperimentalTag, NoAwaitTag, + google::cloud::migrationcenter::v1::DeleteImportJobRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteImportJob(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::migrationcenter::v1::DeleteImportJobRequest const& + request) { + return stub_->DeleteImportJob(context, options, request); + }, + *current, request, __func__); +} + +future> +MigrationCenterConnectionImpl::DeleteImportJob( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteImportJob", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::migrationcenter::v1::OperationMetadata>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::cloud::migrationcenter::v1::OperationMetadata>, + polling_policy(*current), __func__); +} + future> MigrationCenterConnectionImpl::UpdateImportJob( google::cloud::migrationcenter::v1::UpdateImportJobRequest const& request) { @@ -379,6 +487,60 @@ MigrationCenterConnectionImpl::UpdateImportJob( polling_policy(*current), __func__); } +StatusOr +MigrationCenterConnectionImpl::UpdateImportJob( + ExperimentalTag, NoAwaitTag, + google::cloud::migrationcenter::v1::UpdateImportJobRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UpdateImportJob(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::migrationcenter::v1::UpdateImportJobRequest const& + request) { + return stub_->UpdateImportJob(context, options, request); + }, + *current, request, __func__); +} + +future> +MigrationCenterConnectionImpl::UpdateImportJob( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to UpdateImportJob", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::migrationcenter::v1::ImportJob>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::migrationcenter::v1::ImportJob>, + polling_policy(*current), __func__); +} + future> MigrationCenterConnectionImpl::ValidateImportJob( google::cloud::migrationcenter::v1::ValidateImportJobRequest const& @@ -420,6 +582,61 @@ MigrationCenterConnectionImpl::ValidateImportJob( polling_policy(*current), __func__); } +StatusOr +MigrationCenterConnectionImpl::ValidateImportJob( + ExperimentalTag, NoAwaitTag, + google::cloud::migrationcenter::v1::ValidateImportJobRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->ValidateImportJob(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::migrationcenter::v1::ValidateImportJobRequest const& + request) { + return stub_->ValidateImportJob(context, options, request); + }, + *current, request, __func__); +} + +future> +MigrationCenterConnectionImpl::ValidateImportJob( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to ValidateImportJob", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::migrationcenter::v1::OperationMetadata>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::cloud::migrationcenter::v1::OperationMetadata>, + polling_policy(*current), __func__); +} + future> MigrationCenterConnectionImpl::RunImportJob( google::cloud::migrationcenter::v1::RunImportJobRequest const& request) { @@ -460,6 +677,60 @@ MigrationCenterConnectionImpl::RunImportJob( polling_policy(*current), __func__); } +StatusOr +MigrationCenterConnectionImpl::RunImportJob( + ExperimentalTag, NoAwaitTag, + google::cloud::migrationcenter::v1::RunImportJobRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->RunImportJob(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::migrationcenter::v1::RunImportJobRequest const& + request) { + return stub_->RunImportJob(context, options, request); + }, + *current, request, __func__); +} + +future> +MigrationCenterConnectionImpl::RunImportJob( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to RunImportJob", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::migrationcenter::v1::OperationMetadata>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::cloud::migrationcenter::v1::OperationMetadata>, + polling_policy(*current), __func__); +} + StatusOr MigrationCenterConnectionImpl::GetImportDataFile( google::cloud::migrationcenter::v1::GetImportDataFileRequest const& @@ -552,6 +823,62 @@ MigrationCenterConnectionImpl::CreateImportDataFile( polling_policy(*current), __func__); } +StatusOr +MigrationCenterConnectionImpl::CreateImportDataFile( + ExperimentalTag, NoAwaitTag, + google::cloud::migrationcenter::v1::CreateImportDataFileRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateImportDataFile(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::migrationcenter::v1::CreateImportDataFileRequest const& + request) { + return stub_->CreateImportDataFile(context, options, request); + }, + *current, request, __func__); +} + +future> +MigrationCenterConnectionImpl::CreateImportDataFile( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to CreateImportDataFile", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::migrationcenter::v1::ImportDataFile>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::migrationcenter::v1::ImportDataFile>, + polling_policy(*current), __func__); +} + future> MigrationCenterConnectionImpl::DeleteImportDataFile( google::cloud::migrationcenter::v1::DeleteImportDataFileRequest const& @@ -593,6 +920,62 @@ MigrationCenterConnectionImpl::DeleteImportDataFile( polling_policy(*current), __func__); } +StatusOr +MigrationCenterConnectionImpl::DeleteImportDataFile( + ExperimentalTag, NoAwaitTag, + google::cloud::migrationcenter::v1::DeleteImportDataFileRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteImportDataFile(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::migrationcenter::v1::DeleteImportDataFileRequest const& + request) { + return stub_->DeleteImportDataFile(context, options, request); + }, + *current, request, __func__); +} + +future> +MigrationCenterConnectionImpl::DeleteImportDataFile( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteImportDataFile", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::migrationcenter::v1::OperationMetadata>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::cloud::migrationcenter::v1::OperationMetadata>, + polling_policy(*current), __func__); +} + StreamRange MigrationCenterConnectionImpl::ListGroups( google::cloud::migrationcenter::v1::ListGroupsRequest request) { @@ -682,6 +1065,60 @@ MigrationCenterConnectionImpl::CreateGroup( polling_policy(*current), __func__); } +StatusOr +MigrationCenterConnectionImpl::CreateGroup( + ExperimentalTag, NoAwaitTag, + google::cloud::migrationcenter::v1::CreateGroupRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateGroup(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::migrationcenter::v1::CreateGroupRequest const& + request) { + return stub_->CreateGroup(context, options, request); + }, + *current, request, __func__); +} + +future> +MigrationCenterConnectionImpl::CreateGroup( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to CreateGroup", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::migrationcenter::v1::Group>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::migrationcenter::v1::Group>, + polling_policy(*current), __func__); +} + future> MigrationCenterConnectionImpl::UpdateGroup( google::cloud::migrationcenter::v1::UpdateGroupRequest const& request) { @@ -722,6 +1159,60 @@ MigrationCenterConnectionImpl::UpdateGroup( polling_policy(*current), __func__); } +StatusOr +MigrationCenterConnectionImpl::UpdateGroup( + ExperimentalTag, NoAwaitTag, + google::cloud::migrationcenter::v1::UpdateGroupRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UpdateGroup(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::migrationcenter::v1::UpdateGroupRequest const& + request) { + return stub_->UpdateGroup(context, options, request); + }, + *current, request, __func__); +} + +future> +MigrationCenterConnectionImpl::UpdateGroup( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to UpdateGroup", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::migrationcenter::v1::Group>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::migrationcenter::v1::Group>, + polling_policy(*current), __func__); +} + future> MigrationCenterConnectionImpl::DeleteGroup( google::cloud::migrationcenter::v1::DeleteGroupRequest const& request) { @@ -756,32 +1247,142 @@ MigrationCenterConnectionImpl::DeleteGroup( return stub->AsyncCancelOperation(cq, std::move(context), std::move(options), request); }, - &google::cloud::internal::ExtractLongRunningResultMetadata< - google::cloud::migrationcenter::v1::OperationMetadata>, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::cloud::migrationcenter::v1::OperationMetadata>, + retry_policy(*current), backoff_policy(*current), idempotent, + polling_policy(*current), __func__); +} + +StatusOr +MigrationCenterConnectionImpl::DeleteGroup( + ExperimentalTag, NoAwaitTag, + google::cloud::migrationcenter::v1::DeleteGroupRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteGroup(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::migrationcenter::v1::DeleteGroupRequest const& + request) { + return stub_->DeleteGroup(context, options, request); + }, + *current, request, __func__); +} + +future> +MigrationCenterConnectionImpl::DeleteGroup( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteGroup", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::migrationcenter::v1::OperationMetadata>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::cloud::migrationcenter::v1::OperationMetadata>, + polling_policy(*current), __func__); +} + +future> +MigrationCenterConnectionImpl::AddAssetsToGroup( + google::cloud::migrationcenter::v1::AddAssetsToGroupRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + auto request_copy = request; + auto const idempotent = + idempotency_policy(*current)->AddAssetsToGroup(request_copy); + return google::cloud::internal::AsyncLongRunningOperation< + google::cloud::migrationcenter::v1::Group>( + background_->cq(), current, std::move(request_copy), + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::migrationcenter::v1::AddAssetsToGroupRequest const& + request) { + return stub->AsyncAddAssetsToGroup(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::migrationcenter::v1::Group>, retry_policy(*current), backoff_policy(*current), idempotent, polling_policy(*current), __func__); } -future> +StatusOr MigrationCenterConnectionImpl::AddAssetsToGroup( + ExperimentalTag, NoAwaitTag, google::cloud::migrationcenter::v1::AddAssetsToGroupRequest const& request) { auto current = google::cloud::internal::SaveCurrentOptions(); - auto request_copy = request; - auto const idempotent = - idempotency_policy(*current)->AddAssetsToGroup(request_copy); - return google::cloud::internal::AsyncLongRunningOperation< - google::cloud::migrationcenter::v1::Group>( - background_->cq(), current, std::move(request_copy), - [stub = stub_]( - google::cloud::CompletionQueue& cq, - std::shared_ptr context, - google::cloud::internal::ImmutableOptions options, - google::cloud::migrationcenter::v1::AddAssetsToGroupRequest const& - request) { - return stub->AsyncAddAssetsToGroup(cq, std::move(context), - std::move(options), request); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->AddAssetsToGroup(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::migrationcenter::v1::AddAssetsToGroupRequest const& + request) { + return stub_->AddAssetsToGroup(context, options, request); }, + *current, request, __func__); +} + +future> +MigrationCenterConnectionImpl::AddAssetsToGroup( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to AddAssetsToGroup", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::migrationcenter::v1::Group>( + background_->cq(), current, operation, [stub = stub_](google::cloud::CompletionQueue& cq, std::shared_ptr context, google::cloud::internal::ImmutableOptions options, @@ -799,7 +1400,6 @@ MigrationCenterConnectionImpl::AddAssetsToGroup( }, &google::cloud::internal::ExtractLongRunningResultResponse< google::cloud::migrationcenter::v1::Group>, - retry_policy(*current), backoff_policy(*current), idempotent, polling_policy(*current), __func__); } @@ -843,6 +1443,61 @@ MigrationCenterConnectionImpl::RemoveAssetsFromGroup( polling_policy(*current), __func__); } +StatusOr +MigrationCenterConnectionImpl::RemoveAssetsFromGroup( + ExperimentalTag, NoAwaitTag, + google::cloud::migrationcenter::v1::RemoveAssetsFromGroupRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->RemoveAssetsFromGroup(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::migrationcenter::v1:: + RemoveAssetsFromGroupRequest const& request) { + return stub_->RemoveAssetsFromGroup(context, options, request); + }, + *current, request, __func__); +} + +future> +MigrationCenterConnectionImpl::RemoveAssetsFromGroup( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to RemoveAssetsFromGroup", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::migrationcenter::v1::Group>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::migrationcenter::v1::Group>, + polling_policy(*current), __func__); +} + StreamRange MigrationCenterConnectionImpl::ListErrorFrames( google::cloud::migrationcenter::v1::ListErrorFramesRequest request) { @@ -981,6 +1636,60 @@ MigrationCenterConnectionImpl::CreateSource( polling_policy(*current), __func__); } +StatusOr +MigrationCenterConnectionImpl::CreateSource( + ExperimentalTag, NoAwaitTag, + google::cloud::migrationcenter::v1::CreateSourceRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateSource(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::migrationcenter::v1::CreateSourceRequest const& + request) { + return stub_->CreateSource(context, options, request); + }, + *current, request, __func__); +} + +future> +MigrationCenterConnectionImpl::CreateSource( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to CreateSource", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::migrationcenter::v1::Source>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::migrationcenter::v1::Source>, + polling_policy(*current), __func__); +} + future> MigrationCenterConnectionImpl::UpdateSource( google::cloud::migrationcenter::v1::UpdateSourceRequest const& request) { @@ -1021,6 +1730,60 @@ MigrationCenterConnectionImpl::UpdateSource( polling_policy(*current), __func__); } +StatusOr +MigrationCenterConnectionImpl::UpdateSource( + ExperimentalTag, NoAwaitTag, + google::cloud::migrationcenter::v1::UpdateSourceRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UpdateSource(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::migrationcenter::v1::UpdateSourceRequest const& + request) { + return stub_->UpdateSource(context, options, request); + }, + *current, request, __func__); +} + +future> +MigrationCenterConnectionImpl::UpdateSource( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to UpdateSource", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::migrationcenter::v1::Source>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::migrationcenter::v1::Source>, + polling_policy(*current), __func__); +} + future> MigrationCenterConnectionImpl::DeleteSource( google::cloud::migrationcenter::v1::DeleteSourceRequest const& request) { @@ -1061,6 +1824,60 @@ MigrationCenterConnectionImpl::DeleteSource( polling_policy(*current), __func__); } +StatusOr +MigrationCenterConnectionImpl::DeleteSource( + ExperimentalTag, NoAwaitTag, + google::cloud::migrationcenter::v1::DeleteSourceRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteSource(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::migrationcenter::v1::DeleteSourceRequest const& + request) { + return stub_->DeleteSource(context, options, request); + }, + *current, request, __func__); +} + +future> +MigrationCenterConnectionImpl::DeleteSource( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteSource", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::migrationcenter::v1::OperationMetadata>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::cloud::migrationcenter::v1::OperationMetadata>, + polling_policy(*current), __func__); +} + StreamRange MigrationCenterConnectionImpl::ListPreferenceSets( google::cloud::migrationcenter::v1::ListPreferenceSetsRequest request) { @@ -1127,9 +1944,106 @@ MigrationCenterConnectionImpl::CreatePreferenceSet( google::cloud::CompletionQueue& cq, std::shared_ptr context, google::cloud::internal::ImmutableOptions options, - google::cloud::migrationcenter::v1::CreatePreferenceSetRequest const& + google::cloud::migrationcenter::v1::CreatePreferenceSetRequest const& + request) { + return stub->AsyncCreatePreferenceSet(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::migrationcenter::v1::PreferenceSet>, + retry_policy(*current), backoff_policy(*current), idempotent, + polling_policy(*current), __func__); +} + +StatusOr +MigrationCenterConnectionImpl::CreatePreferenceSet( + ExperimentalTag, NoAwaitTag, + google::cloud::migrationcenter::v1::CreatePreferenceSetRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreatePreferenceSet(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::migrationcenter::v1::CreatePreferenceSetRequest const& + request) { + return stub_->CreatePreferenceSet(context, options, request); + }, + *current, request, __func__); +} + +future> +MigrationCenterConnectionImpl::CreatePreferenceSet( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to CreatePreferenceSet", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::migrationcenter::v1::PreferenceSet>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::migrationcenter::v1::PreferenceSet>, + polling_policy(*current), __func__); +} + +future> +MigrationCenterConnectionImpl::UpdatePreferenceSet( + google::cloud::migrationcenter::v1::UpdatePreferenceSetRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + auto request_copy = request; + auto const idempotent = + idempotency_policy(*current)->UpdatePreferenceSet(request_copy); + return google::cloud::internal::AsyncLongRunningOperation< + google::cloud::migrationcenter::v1::PreferenceSet>( + background_->cq(), current, std::move(request_copy), + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::migrationcenter::v1::UpdatePreferenceSetRequest const& request) { - return stub->AsyncCreatePreferenceSet(cq, std::move(context), + return stub->AsyncUpdatePreferenceSet(cq, std::move(context), std::move(options), request); }, [stub = stub_](google::cloud::CompletionQueue& cq, @@ -1153,26 +2067,42 @@ MigrationCenterConnectionImpl::CreatePreferenceSet( polling_policy(*current), __func__); } -future> +StatusOr MigrationCenterConnectionImpl::UpdatePreferenceSet( + ExperimentalTag, NoAwaitTag, google::cloud::migrationcenter::v1::UpdatePreferenceSetRequest const& request) { auto current = google::cloud::internal::SaveCurrentOptions(); - auto request_copy = request; - auto const idempotent = - idempotency_policy(*current)->UpdatePreferenceSet(request_copy); - return google::cloud::internal::AsyncLongRunningOperation< - google::cloud::migrationcenter::v1::PreferenceSet>( - background_->cq(), current, std::move(request_copy), - [stub = stub_]( - google::cloud::CompletionQueue& cq, - std::shared_ptr context, - google::cloud::internal::ImmutableOptions options, + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UpdatePreferenceSet(request), + [this]( + grpc::ClientContext& context, Options const& options, google::cloud::migrationcenter::v1::UpdatePreferenceSetRequest const& request) { - return stub->AsyncUpdatePreferenceSet(cq, std::move(context), - std::move(options), request); + return stub_->UpdatePreferenceSet(context, options, request); }, + *current, request, __func__); +} + +future> +MigrationCenterConnectionImpl::UpdatePreferenceSet( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to UpdatePreferenceSet", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::migrationcenter::v1::PreferenceSet>( + background_->cq(), current, operation, [stub = stub_](google::cloud::CompletionQueue& cq, std::shared_ptr context, google::cloud::internal::ImmutableOptions options, @@ -1190,7 +2120,6 @@ MigrationCenterConnectionImpl::UpdatePreferenceSet( }, &google::cloud::internal::ExtractLongRunningResultResponse< google::cloud::migrationcenter::v1::PreferenceSet>, - retry_policy(*current), backoff_policy(*current), idempotent, polling_policy(*current), __func__); } @@ -1235,6 +2164,62 @@ MigrationCenterConnectionImpl::DeletePreferenceSet( polling_policy(*current), __func__); } +StatusOr +MigrationCenterConnectionImpl::DeletePreferenceSet( + ExperimentalTag, NoAwaitTag, + google::cloud::migrationcenter::v1::DeletePreferenceSetRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeletePreferenceSet(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::migrationcenter::v1::DeletePreferenceSetRequest const& + request) { + return stub_->DeletePreferenceSet(context, options, request); + }, + *current, request, __func__); +} + +future> +MigrationCenterConnectionImpl::DeletePreferenceSet( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DeletePreferenceSet", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::migrationcenter::v1::OperationMetadata>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::cloud::migrationcenter::v1::OperationMetadata>, + polling_policy(*current), __func__); +} + StatusOr MigrationCenterConnectionImpl::GetSettings( google::cloud::migrationcenter::v1::GetSettingsRequest const& request) { @@ -1290,6 +2275,60 @@ MigrationCenterConnectionImpl::UpdateSettings( polling_policy(*current), __func__); } +StatusOr +MigrationCenterConnectionImpl::UpdateSettings( + ExperimentalTag, NoAwaitTag, + google::cloud::migrationcenter::v1::UpdateSettingsRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UpdateSettings(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::migrationcenter::v1::UpdateSettingsRequest const& + request) { + return stub_->UpdateSettings(context, options, request); + }, + *current, request, __func__); +} + +future> +MigrationCenterConnectionImpl::UpdateSettings( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to UpdateSettings", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::migrationcenter::v1::Settings>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::migrationcenter::v1::Settings>, + polling_policy(*current), __func__); +} + future> MigrationCenterConnectionImpl::CreateReportConfig( google::cloud::migrationcenter::v1::CreateReportConfigRequest const& @@ -1331,6 +2370,62 @@ MigrationCenterConnectionImpl::CreateReportConfig( polling_policy(*current), __func__); } +StatusOr +MigrationCenterConnectionImpl::CreateReportConfig( + ExperimentalTag, NoAwaitTag, + google::cloud::migrationcenter::v1::CreateReportConfigRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateReportConfig(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::migrationcenter::v1::CreateReportConfigRequest const& + request) { + return stub_->CreateReportConfig(context, options, request); + }, + *current, request, __func__); +} + +future> +MigrationCenterConnectionImpl::CreateReportConfig( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to CreateReportConfig", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::migrationcenter::v1::ReportConfig>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::migrationcenter::v1::ReportConfig>, + polling_policy(*current), __func__); +} + StatusOr MigrationCenterConnectionImpl::GetReportConfig( google::cloud::migrationcenter::v1::GetReportConfigRequest const& request) { @@ -1422,6 +2517,62 @@ MigrationCenterConnectionImpl::DeleteReportConfig( polling_policy(*current), __func__); } +StatusOr +MigrationCenterConnectionImpl::DeleteReportConfig( + ExperimentalTag, NoAwaitTag, + google::cloud::migrationcenter::v1::DeleteReportConfigRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteReportConfig(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::migrationcenter::v1::DeleteReportConfigRequest const& + request) { + return stub_->DeleteReportConfig(context, options, request); + }, + *current, request, __func__); +} + +future> +MigrationCenterConnectionImpl::DeleteReportConfig( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteReportConfig", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::migrationcenter::v1::OperationMetadata>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::cloud::migrationcenter::v1::OperationMetadata>, + polling_policy(*current), __func__); +} + future> MigrationCenterConnectionImpl::CreateReport( google::cloud::migrationcenter::v1::CreateReportRequest const& request) { @@ -1462,6 +2613,60 @@ MigrationCenterConnectionImpl::CreateReport( polling_policy(*current), __func__); } +StatusOr +MigrationCenterConnectionImpl::CreateReport( + ExperimentalTag, NoAwaitTag, + google::cloud::migrationcenter::v1::CreateReportRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateReport(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::migrationcenter::v1::CreateReportRequest const& + request) { + return stub_->CreateReport(context, options, request); + }, + *current, request, __func__); +} + +future> +MigrationCenterConnectionImpl::CreateReport( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to CreateReport", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::migrationcenter::v1::Report>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::migrationcenter::v1::Report>, + polling_policy(*current), __func__); +} + StatusOr MigrationCenterConnectionImpl::GetReport( google::cloud::migrationcenter::v1::GetReportRequest const& request) { @@ -1551,6 +2756,60 @@ MigrationCenterConnectionImpl::DeleteReport( polling_policy(*current), __func__); } +StatusOr +MigrationCenterConnectionImpl::DeleteReport( + ExperimentalTag, NoAwaitTag, + google::cloud::migrationcenter::v1::DeleteReportRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteReport(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::migrationcenter::v1::DeleteReportRequest const& + request) { + return stub_->DeleteReport(context, options, request); + }, + *current, request, __func__); +} + +future> +MigrationCenterConnectionImpl::DeleteReport( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteReport", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::migrationcenter::v1::OperationMetadata>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::cloud::migrationcenter::v1::OperationMetadata>, + polling_policy(*current), __func__); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace migrationcenter_v1_internal } // namespace cloud diff --git a/google/cloud/migrationcenter/v1/internal/migration_center_connection_impl.h b/google/cloud/migrationcenter/v1/internal/migration_center_connection_impl.h index 848c32d2dc77f..74fc36331a2d5 100644 --- a/google/cloud/migrationcenter/v1/internal/migration_center_connection_impl.h +++ b/google/cloud/migrationcenter/v1/internal/migration_center_connection_impl.h @@ -91,6 +91,15 @@ class MigrationCenterConnectionImpl google::cloud::migrationcenter::v1::CreateImportJobRequest const& request) override; + StatusOr CreateImportJob( + ExperimentalTag, NoAwaitTag, + google::cloud::migrationcenter::v1::CreateImportJobRequest const& request) + override; + + future> + CreateImportJob(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListImportJobs( google::cloud::migrationcenter::v1::ListImportJobsRequest request) override; @@ -104,20 +113,56 @@ class MigrationCenterConnectionImpl google::cloud::migrationcenter::v1::DeleteImportJobRequest const& request) override; + StatusOr DeleteImportJob( + ExperimentalTag, NoAwaitTag, + google::cloud::migrationcenter::v1::DeleteImportJobRequest const& request) + override; + + future> + DeleteImportJob(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateImportJob( google::cloud::migrationcenter::v1::UpdateImportJobRequest const& request) override; + StatusOr UpdateImportJob( + ExperimentalTag, NoAwaitTag, + google::cloud::migrationcenter::v1::UpdateImportJobRequest const& request) + override; + + future> + UpdateImportJob(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ValidateImportJob( google::cloud::migrationcenter::v1::ValidateImportJobRequest const& request) override; + StatusOr ValidateImportJob( + ExperimentalTag, NoAwaitTag, + google::cloud::migrationcenter::v1::ValidateImportJobRequest const& + request) override; + + future> + ValidateImportJob(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> RunImportJob(google::cloud::migrationcenter::v1::RunImportJobRequest const& request) override; + StatusOr RunImportJob( + ExperimentalTag, NoAwaitTag, + google::cloud::migrationcenter::v1::RunImportJobRequest const& request) + override; + + future> + RunImportJob(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetImportDataFile( google::cloud::migrationcenter::v1::GetImportDataFileRequest const& @@ -133,11 +178,31 @@ class MigrationCenterConnectionImpl google::cloud::migrationcenter::v1::CreateImportDataFileRequest const& request) override; + StatusOr CreateImportDataFile( + ExperimentalTag, NoAwaitTag, + google::cloud::migrationcenter::v1::CreateImportDataFileRequest const& + request) override; + + future> + CreateImportDataFile( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteImportDataFile( google::cloud::migrationcenter::v1::DeleteImportDataFileRequest const& request) override; + StatusOr DeleteImportDataFile( + ExperimentalTag, NoAwaitTag, + google::cloud::migrationcenter::v1::DeleteImportDataFileRequest const& + request) override; + + future> + DeleteImportDataFile( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListGroups( google::cloud::migrationcenter::v1::ListGroupsRequest request) override; @@ -149,23 +214,69 @@ class MigrationCenterConnectionImpl google::cloud::migrationcenter::v1::CreateGroupRequest const& request) override; + StatusOr CreateGroup( + ExperimentalTag, NoAwaitTag, + google::cloud::migrationcenter::v1::CreateGroupRequest const& request) + override; + + future> CreateGroup( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateGroup( google::cloud::migrationcenter::v1::UpdateGroupRequest const& request) override; + StatusOr UpdateGroup( + ExperimentalTag, NoAwaitTag, + google::cloud::migrationcenter::v1::UpdateGroupRequest const& request) + override; + + future> UpdateGroup( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteGroup(google::cloud::migrationcenter::v1::DeleteGroupRequest const& request) override; + StatusOr DeleteGroup( + ExperimentalTag, NoAwaitTag, + google::cloud::migrationcenter::v1::DeleteGroupRequest const& request) + override; + + future> + DeleteGroup(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> AddAssetsToGroup( google::cloud::migrationcenter::v1::AddAssetsToGroupRequest const& request) override; + StatusOr AddAssetsToGroup( + ExperimentalTag, NoAwaitTag, + google::cloud::migrationcenter::v1::AddAssetsToGroupRequest const& + request) override; + + future> AddAssetsToGroup( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> RemoveAssetsFromGroup( google::cloud::migrationcenter::v1::RemoveAssetsFromGroupRequest const& request) override; + StatusOr RemoveAssetsFromGroup( + ExperimentalTag, NoAwaitTag, + google::cloud::migrationcenter::v1::RemoveAssetsFromGroupRequest const& + request) override; + + future> + RemoveAssetsFromGroup( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListErrorFrames( google::cloud::migrationcenter::v1::ListErrorFramesRequest request) override; @@ -185,14 +296,41 @@ class MigrationCenterConnectionImpl google::cloud::migrationcenter::v1::CreateSourceRequest const& request) override; + StatusOr CreateSource( + ExperimentalTag, NoAwaitTag, + google::cloud::migrationcenter::v1::CreateSourceRequest const& request) + override; + + future> CreateSource( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateSource( google::cloud::migrationcenter::v1::UpdateSourceRequest const& request) override; + StatusOr UpdateSource( + ExperimentalTag, NoAwaitTag, + google::cloud::migrationcenter::v1::UpdateSourceRequest const& request) + override; + + future> UpdateSource( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteSource(google::cloud::migrationcenter::v1::DeleteSourceRequest const& request) override; + StatusOr DeleteSource( + ExperimentalTag, NoAwaitTag, + google::cloud::migrationcenter::v1::DeleteSourceRequest const& request) + override; + + future> + DeleteSource(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListPreferenceSets( google::cloud::migrationcenter::v1::ListPreferenceSetsRequest request) @@ -207,16 +345,43 @@ class MigrationCenterConnectionImpl google::cloud::migrationcenter::v1::CreatePreferenceSetRequest const& request) override; + StatusOr CreatePreferenceSet( + ExperimentalTag, NoAwaitTag, + google::cloud::migrationcenter::v1::CreatePreferenceSetRequest const& + request) override; + + future> + CreatePreferenceSet(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdatePreferenceSet( google::cloud::migrationcenter::v1::UpdatePreferenceSetRequest const& request) override; + StatusOr UpdatePreferenceSet( + ExperimentalTag, NoAwaitTag, + google::cloud::migrationcenter::v1::UpdatePreferenceSetRequest const& + request) override; + + future> + UpdatePreferenceSet(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeletePreferenceSet( google::cloud::migrationcenter::v1::DeletePreferenceSetRequest const& request) override; + StatusOr DeletePreferenceSet( + ExperimentalTag, NoAwaitTag, + google::cloud::migrationcenter::v1::DeletePreferenceSetRequest const& + request) override; + + future> + DeletePreferenceSet(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetSettings( google::cloud::migrationcenter::v1::GetSettingsRequest const& request) override; @@ -225,11 +390,29 @@ class MigrationCenterConnectionImpl google::cloud::migrationcenter::v1::UpdateSettingsRequest const& request) override; + StatusOr UpdateSettings( + ExperimentalTag, NoAwaitTag, + google::cloud::migrationcenter::v1::UpdateSettingsRequest const& request) + override; + + future> UpdateSettings( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> CreateReportConfig( google::cloud::migrationcenter::v1::CreateReportConfigRequest const& request) override; + StatusOr CreateReportConfig( + ExperimentalTag, NoAwaitTag, + google::cloud::migrationcenter::v1::CreateReportConfigRequest const& + request) override; + + future> + CreateReportConfig(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetReportConfig( google::cloud::migrationcenter::v1::GetReportConfigRequest const& request) override; @@ -243,10 +426,28 @@ class MigrationCenterConnectionImpl google::cloud::migrationcenter::v1::DeleteReportConfigRequest const& request) override; + StatusOr DeleteReportConfig( + ExperimentalTag, NoAwaitTag, + google::cloud::migrationcenter::v1::DeleteReportConfigRequest const& + request) override; + + future> + DeleteReportConfig(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> CreateReport( google::cloud::migrationcenter::v1::CreateReportRequest const& request) override; + StatusOr CreateReport( + ExperimentalTag, NoAwaitTag, + google::cloud::migrationcenter::v1::CreateReportRequest const& request) + override; + + future> CreateReport( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetReport( google::cloud::migrationcenter::v1::GetReportRequest const& request) override; @@ -258,6 +459,15 @@ class MigrationCenterConnectionImpl DeleteReport(google::cloud::migrationcenter::v1::DeleteReportRequest const& request) override; + StatusOr DeleteReport( + ExperimentalTag, NoAwaitTag, + google::cloud::migrationcenter::v1::DeleteReportRequest const& request) + override; + + future> + DeleteReport(ExperimentalTag, + google::longrunning::Operation const& operation) override; + private: std::unique_ptr background_; std::shared_ptr stub_; diff --git a/google/cloud/migrationcenter/v1/internal/migration_center_tracing_connection.cc b/google/cloud/migrationcenter/v1/internal/migration_center_tracing_connection.cc index deaa894dd1991..789d03c2e6873 100644 --- a/google/cloud/migrationcenter/v1/internal/migration_center_tracing_connection.cc +++ b/google/cloud/migrationcenter/v1/internal/migration_center_tracing_connection.cc @@ -119,6 +119,27 @@ MigrationCenterTracingConnection::CreateImportJob( return internal::EndSpan(std::move(span), child_->CreateImportJob(request)); } +StatusOr +MigrationCenterTracingConnection::CreateImportJob( + ExperimentalTag, NoAwaitTag, + google::cloud::migrationcenter::v1::CreateImportJobRequest const& request) { + auto span = internal::MakeSpan( + "migrationcenter_v1::MigrationCenterConnection::CreateImportJob"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->CreateImportJob(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +MigrationCenterTracingConnection::CreateImportJob( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "migrationcenter_v1::MigrationCenterConnection::CreateImportJob"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->CreateImportJob(ExperimentalTag{}, operation)); +} + StreamRange MigrationCenterTracingConnection::ListImportJobs( google::cloud::migrationcenter::v1::ListImportJobsRequest request) { @@ -149,6 +170,27 @@ MigrationCenterTracingConnection::DeleteImportJob( return internal::EndSpan(std::move(span), child_->DeleteImportJob(request)); } +StatusOr +MigrationCenterTracingConnection::DeleteImportJob( + ExperimentalTag, NoAwaitTag, + google::cloud::migrationcenter::v1::DeleteImportJobRequest const& request) { + auto span = internal::MakeSpan( + "migrationcenter_v1::MigrationCenterConnection::DeleteImportJob"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->DeleteImportJob(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +MigrationCenterTracingConnection::DeleteImportJob( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "migrationcenter_v1::MigrationCenterConnection::DeleteImportJob"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->DeleteImportJob(ExperimentalTag{}, operation)); +} + future> MigrationCenterTracingConnection::UpdateImportJob( google::cloud::migrationcenter::v1::UpdateImportJobRequest const& request) { @@ -158,6 +200,27 @@ MigrationCenterTracingConnection::UpdateImportJob( return internal::EndSpan(std::move(span), child_->UpdateImportJob(request)); } +StatusOr +MigrationCenterTracingConnection::UpdateImportJob( + ExperimentalTag, NoAwaitTag, + google::cloud::migrationcenter::v1::UpdateImportJobRequest const& request) { + auto span = internal::MakeSpan( + "migrationcenter_v1::MigrationCenterConnection::UpdateImportJob"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->UpdateImportJob(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +MigrationCenterTracingConnection::UpdateImportJob( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "migrationcenter_v1::MigrationCenterConnection::UpdateImportJob"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->UpdateImportJob(ExperimentalTag{}, operation)); +} + future> MigrationCenterTracingConnection::ValidateImportJob( google::cloud::migrationcenter::v1::ValidateImportJobRequest const& @@ -168,6 +231,29 @@ MigrationCenterTracingConnection::ValidateImportJob( return internal::EndSpan(std::move(span), child_->ValidateImportJob(request)); } +StatusOr +MigrationCenterTracingConnection::ValidateImportJob( + ExperimentalTag, NoAwaitTag, + google::cloud::migrationcenter::v1::ValidateImportJobRequest const& + request) { + auto span = internal::MakeSpan( + "migrationcenter_v1::MigrationCenterConnection::ValidateImportJob"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->ValidateImportJob(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +MigrationCenterTracingConnection::ValidateImportJob( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "migrationcenter_v1::MigrationCenterConnection::ValidateImportJob"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->ValidateImportJob(ExperimentalTag{}, operation)); +} + future> MigrationCenterTracingConnection::RunImportJob( google::cloud::migrationcenter::v1::RunImportJobRequest const& request) { @@ -177,6 +263,27 @@ MigrationCenterTracingConnection::RunImportJob( return internal::EndSpan(std::move(span), child_->RunImportJob(request)); } +StatusOr +MigrationCenterTracingConnection::RunImportJob( + ExperimentalTag, NoAwaitTag, + google::cloud::migrationcenter::v1::RunImportJobRequest const& request) { + auto span = internal::MakeSpan( + "migrationcenter_v1::MigrationCenterConnection::RunImportJob"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->RunImportJob(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +MigrationCenterTracingConnection::RunImportJob( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "migrationcenter_v1::MigrationCenterConnection::RunImportJob"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->RunImportJob(ExperimentalTag{}, operation)); +} + StatusOr MigrationCenterTracingConnection::GetImportDataFile( google::cloud::migrationcenter::v1::GetImportDataFileRequest const& @@ -210,6 +317,29 @@ MigrationCenterTracingConnection::CreateImportDataFile( child_->CreateImportDataFile(request)); } +StatusOr +MigrationCenterTracingConnection::CreateImportDataFile( + ExperimentalTag, NoAwaitTag, + google::cloud::migrationcenter::v1::CreateImportDataFileRequest const& + request) { + auto span = internal::MakeSpan( + "migrationcenter_v1::MigrationCenterConnection::CreateImportDataFile"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->CreateImportDataFile(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +MigrationCenterTracingConnection::CreateImportDataFile( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "migrationcenter_v1::MigrationCenterConnection::CreateImportDataFile"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->CreateImportDataFile( + ExperimentalTag{}, operation)); +} + future> MigrationCenterTracingConnection::DeleteImportDataFile( google::cloud::migrationcenter::v1::DeleteImportDataFileRequest const& @@ -221,6 +351,29 @@ MigrationCenterTracingConnection::DeleteImportDataFile( child_->DeleteImportDataFile(request)); } +StatusOr +MigrationCenterTracingConnection::DeleteImportDataFile( + ExperimentalTag, NoAwaitTag, + google::cloud::migrationcenter::v1::DeleteImportDataFileRequest const& + request) { + auto span = internal::MakeSpan( + "migrationcenter_v1::MigrationCenterConnection::DeleteImportDataFile"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->DeleteImportDataFile(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +MigrationCenterTracingConnection::DeleteImportDataFile( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "migrationcenter_v1::MigrationCenterConnection::DeleteImportDataFile"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->DeleteImportDataFile( + ExperimentalTag{}, operation)); +} + StreamRange MigrationCenterTracingConnection::ListGroups( google::cloud::migrationcenter::v1::ListGroupsRequest request) { @@ -251,6 +404,27 @@ MigrationCenterTracingConnection::CreateGroup( return internal::EndSpan(std::move(span), child_->CreateGroup(request)); } +StatusOr +MigrationCenterTracingConnection::CreateGroup( + ExperimentalTag, NoAwaitTag, + google::cloud::migrationcenter::v1::CreateGroupRequest const& request) { + auto span = internal::MakeSpan( + "migrationcenter_v1::MigrationCenterConnection::CreateGroup"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->CreateGroup(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +MigrationCenterTracingConnection::CreateGroup( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "migrationcenter_v1::MigrationCenterConnection::CreateGroup"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->CreateGroup(ExperimentalTag{}, operation)); +} + future> MigrationCenterTracingConnection::UpdateGroup( google::cloud::migrationcenter::v1::UpdateGroupRequest const& request) { @@ -260,6 +434,27 @@ MigrationCenterTracingConnection::UpdateGroup( return internal::EndSpan(std::move(span), child_->UpdateGroup(request)); } +StatusOr +MigrationCenterTracingConnection::UpdateGroup( + ExperimentalTag, NoAwaitTag, + google::cloud::migrationcenter::v1::UpdateGroupRequest const& request) { + auto span = internal::MakeSpan( + "migrationcenter_v1::MigrationCenterConnection::UpdateGroup"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->UpdateGroup(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +MigrationCenterTracingConnection::UpdateGroup( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "migrationcenter_v1::MigrationCenterConnection::UpdateGroup"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->UpdateGroup(ExperimentalTag{}, operation)); +} + future> MigrationCenterTracingConnection::DeleteGroup( google::cloud::migrationcenter::v1::DeleteGroupRequest const& request) { @@ -269,6 +464,27 @@ MigrationCenterTracingConnection::DeleteGroup( return internal::EndSpan(std::move(span), child_->DeleteGroup(request)); } +StatusOr +MigrationCenterTracingConnection::DeleteGroup( + ExperimentalTag, NoAwaitTag, + google::cloud::migrationcenter::v1::DeleteGroupRequest const& request) { + auto span = internal::MakeSpan( + "migrationcenter_v1::MigrationCenterConnection::DeleteGroup"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->DeleteGroup(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +MigrationCenterTracingConnection::DeleteGroup( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "migrationcenter_v1::MigrationCenterConnection::DeleteGroup"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->DeleteGroup(ExperimentalTag{}, operation)); +} + future> MigrationCenterTracingConnection::AddAssetsToGroup( google::cloud::migrationcenter::v1::AddAssetsToGroupRequest const& @@ -279,6 +495,29 @@ MigrationCenterTracingConnection::AddAssetsToGroup( return internal::EndSpan(std::move(span), child_->AddAssetsToGroup(request)); } +StatusOr +MigrationCenterTracingConnection::AddAssetsToGroup( + ExperimentalTag, NoAwaitTag, + google::cloud::migrationcenter::v1::AddAssetsToGroupRequest const& + request) { + auto span = internal::MakeSpan( + "migrationcenter_v1::MigrationCenterConnection::AddAssetsToGroup"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->AddAssetsToGroup(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +MigrationCenterTracingConnection::AddAssetsToGroup( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "migrationcenter_v1::MigrationCenterConnection::AddAssetsToGroup"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->AddAssetsToGroup(ExperimentalTag{}, operation)); +} + future> MigrationCenterTracingConnection::RemoveAssetsFromGroup( google::cloud::migrationcenter::v1::RemoveAssetsFromGroupRequest const& @@ -290,6 +529,29 @@ MigrationCenterTracingConnection::RemoveAssetsFromGroup( child_->RemoveAssetsFromGroup(request)); } +StatusOr +MigrationCenterTracingConnection::RemoveAssetsFromGroup( + ExperimentalTag, NoAwaitTag, + google::cloud::migrationcenter::v1::RemoveAssetsFromGroupRequest const& + request) { + auto span = internal::MakeSpan( + "migrationcenter_v1::MigrationCenterConnection::RemoveAssetsFromGroup"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->RemoveAssetsFromGroup(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +MigrationCenterTracingConnection::RemoveAssetsFromGroup( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "migrationcenter_v1::MigrationCenterConnection::RemoveAssetsFromGroup"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->RemoveAssetsFromGroup( + ExperimentalTag{}, operation)); +} + StreamRange MigrationCenterTracingConnection::ListErrorFrames( google::cloud::migrationcenter::v1::ListErrorFramesRequest request) { @@ -341,6 +603,27 @@ MigrationCenterTracingConnection::CreateSource( return internal::EndSpan(std::move(span), child_->CreateSource(request)); } +StatusOr +MigrationCenterTracingConnection::CreateSource( + ExperimentalTag, NoAwaitTag, + google::cloud::migrationcenter::v1::CreateSourceRequest const& request) { + auto span = internal::MakeSpan( + "migrationcenter_v1::MigrationCenterConnection::CreateSource"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->CreateSource(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +MigrationCenterTracingConnection::CreateSource( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "migrationcenter_v1::MigrationCenterConnection::CreateSource"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->CreateSource(ExperimentalTag{}, operation)); +} + future> MigrationCenterTracingConnection::UpdateSource( google::cloud::migrationcenter::v1::UpdateSourceRequest const& request) { @@ -350,6 +633,27 @@ MigrationCenterTracingConnection::UpdateSource( return internal::EndSpan(std::move(span), child_->UpdateSource(request)); } +StatusOr +MigrationCenterTracingConnection::UpdateSource( + ExperimentalTag, NoAwaitTag, + google::cloud::migrationcenter::v1::UpdateSourceRequest const& request) { + auto span = internal::MakeSpan( + "migrationcenter_v1::MigrationCenterConnection::UpdateSource"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->UpdateSource(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +MigrationCenterTracingConnection::UpdateSource( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "migrationcenter_v1::MigrationCenterConnection::UpdateSource"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->UpdateSource(ExperimentalTag{}, operation)); +} + future> MigrationCenterTracingConnection::DeleteSource( google::cloud::migrationcenter::v1::DeleteSourceRequest const& request) { @@ -359,6 +663,27 @@ MigrationCenterTracingConnection::DeleteSource( return internal::EndSpan(std::move(span), child_->DeleteSource(request)); } +StatusOr +MigrationCenterTracingConnection::DeleteSource( + ExperimentalTag, NoAwaitTag, + google::cloud::migrationcenter::v1::DeleteSourceRequest const& request) { + auto span = internal::MakeSpan( + "migrationcenter_v1::MigrationCenterConnection::DeleteSource"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->DeleteSource(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +MigrationCenterTracingConnection::DeleteSource( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "migrationcenter_v1::MigrationCenterConnection::DeleteSource"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->DeleteSource(ExperimentalTag{}, operation)); +} + StreamRange MigrationCenterTracingConnection::ListPreferenceSets( google::cloud::migrationcenter::v1::ListPreferenceSetsRequest request) { @@ -392,6 +717,29 @@ MigrationCenterTracingConnection::CreatePreferenceSet( child_->CreatePreferenceSet(request)); } +StatusOr +MigrationCenterTracingConnection::CreatePreferenceSet( + ExperimentalTag, NoAwaitTag, + google::cloud::migrationcenter::v1::CreatePreferenceSetRequest const& + request) { + auto span = internal::MakeSpan( + "migrationcenter_v1::MigrationCenterConnection::CreatePreferenceSet"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->CreatePreferenceSet(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +MigrationCenterTracingConnection::CreatePreferenceSet( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "migrationcenter_v1::MigrationCenterConnection::CreatePreferenceSet"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->CreatePreferenceSet( + ExperimentalTag{}, operation)); +} + future> MigrationCenterTracingConnection::UpdatePreferenceSet( google::cloud::migrationcenter::v1::UpdatePreferenceSetRequest const& @@ -403,6 +751,29 @@ MigrationCenterTracingConnection::UpdatePreferenceSet( child_->UpdatePreferenceSet(request)); } +StatusOr +MigrationCenterTracingConnection::UpdatePreferenceSet( + ExperimentalTag, NoAwaitTag, + google::cloud::migrationcenter::v1::UpdatePreferenceSetRequest const& + request) { + auto span = internal::MakeSpan( + "migrationcenter_v1::MigrationCenterConnection::UpdatePreferenceSet"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->UpdatePreferenceSet(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +MigrationCenterTracingConnection::UpdatePreferenceSet( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "migrationcenter_v1::MigrationCenterConnection::UpdatePreferenceSet"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->UpdatePreferenceSet( + ExperimentalTag{}, operation)); +} + future> MigrationCenterTracingConnection::DeletePreferenceSet( google::cloud::migrationcenter::v1::DeletePreferenceSetRequest const& @@ -414,6 +785,29 @@ MigrationCenterTracingConnection::DeletePreferenceSet( child_->DeletePreferenceSet(request)); } +StatusOr +MigrationCenterTracingConnection::DeletePreferenceSet( + ExperimentalTag, NoAwaitTag, + google::cloud::migrationcenter::v1::DeletePreferenceSetRequest const& + request) { + auto span = internal::MakeSpan( + "migrationcenter_v1::MigrationCenterConnection::DeletePreferenceSet"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->DeletePreferenceSet(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +MigrationCenterTracingConnection::DeletePreferenceSet( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "migrationcenter_v1::MigrationCenterConnection::DeletePreferenceSet"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->DeletePreferenceSet( + ExperimentalTag{}, operation)); +} + StatusOr MigrationCenterTracingConnection::GetSettings( google::cloud::migrationcenter::v1::GetSettingsRequest const& request) { @@ -432,6 +826,27 @@ MigrationCenterTracingConnection::UpdateSettings( return internal::EndSpan(std::move(span), child_->UpdateSettings(request)); } +StatusOr +MigrationCenterTracingConnection::UpdateSettings( + ExperimentalTag, NoAwaitTag, + google::cloud::migrationcenter::v1::UpdateSettingsRequest const& request) { + auto span = internal::MakeSpan( + "migrationcenter_v1::MigrationCenterConnection::UpdateSettings"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->UpdateSettings(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +MigrationCenterTracingConnection::UpdateSettings( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "migrationcenter_v1::MigrationCenterConnection::UpdateSettings"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->UpdateSettings(ExperimentalTag{}, operation)); +} + future> MigrationCenterTracingConnection::CreateReportConfig( google::cloud::migrationcenter::v1::CreateReportConfigRequest const& @@ -443,6 +858,29 @@ MigrationCenterTracingConnection::CreateReportConfig( child_->CreateReportConfig(request)); } +StatusOr +MigrationCenterTracingConnection::CreateReportConfig( + ExperimentalTag, NoAwaitTag, + google::cloud::migrationcenter::v1::CreateReportConfigRequest const& + request) { + auto span = internal::MakeSpan( + "migrationcenter_v1::MigrationCenterConnection::CreateReportConfig"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->CreateReportConfig(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +MigrationCenterTracingConnection::CreateReportConfig( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "migrationcenter_v1::MigrationCenterConnection::CreateReportConfig"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->CreateReportConfig( + ExperimentalTag{}, operation)); +} + StatusOr MigrationCenterTracingConnection::GetReportConfig( google::cloud::migrationcenter::v1::GetReportConfigRequest const& request) { @@ -475,6 +913,29 @@ MigrationCenterTracingConnection::DeleteReportConfig( child_->DeleteReportConfig(request)); } +StatusOr +MigrationCenterTracingConnection::DeleteReportConfig( + ExperimentalTag, NoAwaitTag, + google::cloud::migrationcenter::v1::DeleteReportConfigRequest const& + request) { + auto span = internal::MakeSpan( + "migrationcenter_v1::MigrationCenterConnection::DeleteReportConfig"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->DeleteReportConfig(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +MigrationCenterTracingConnection::DeleteReportConfig( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "migrationcenter_v1::MigrationCenterConnection::DeleteReportConfig"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->DeleteReportConfig( + ExperimentalTag{}, operation)); +} + future> MigrationCenterTracingConnection::CreateReport( google::cloud::migrationcenter::v1::CreateReportRequest const& request) { @@ -484,6 +945,27 @@ MigrationCenterTracingConnection::CreateReport( return internal::EndSpan(std::move(span), child_->CreateReport(request)); } +StatusOr +MigrationCenterTracingConnection::CreateReport( + ExperimentalTag, NoAwaitTag, + google::cloud::migrationcenter::v1::CreateReportRequest const& request) { + auto span = internal::MakeSpan( + "migrationcenter_v1::MigrationCenterConnection::CreateReport"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->CreateReport(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +MigrationCenterTracingConnection::CreateReport( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "migrationcenter_v1::MigrationCenterConnection::CreateReport"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->CreateReport(ExperimentalTag{}, operation)); +} + StatusOr MigrationCenterTracingConnection::GetReport( google::cloud::migrationcenter::v1::GetReportRequest const& request) { @@ -514,6 +996,27 @@ MigrationCenterTracingConnection::DeleteReport( return internal::EndSpan(std::move(span), child_->DeleteReport(request)); } +StatusOr +MigrationCenterTracingConnection::DeleteReport( + ExperimentalTag, NoAwaitTag, + google::cloud::migrationcenter::v1::DeleteReportRequest const& request) { + auto span = internal::MakeSpan( + "migrationcenter_v1::MigrationCenterConnection::DeleteReport"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->DeleteReport(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +MigrationCenterTracingConnection::DeleteReport( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "migrationcenter_v1::MigrationCenterConnection::DeleteReport"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->DeleteReport(ExperimentalTag{}, operation)); +} + #endif // GOOGLE_CLOUD_CPP_HAVE_OPENTELEMETRY std::shared_ptr diff --git a/google/cloud/migrationcenter/v1/internal/migration_center_tracing_connection.h b/google/cloud/migrationcenter/v1/internal/migration_center_tracing_connection.h index d59ad6c71b687..bf9e74c6d2e61 100644 --- a/google/cloud/migrationcenter/v1/internal/migration_center_tracing_connection.h +++ b/google/cloud/migrationcenter/v1/internal/migration_center_tracing_connection.h @@ -79,6 +79,15 @@ class MigrationCenterTracingConnection google::cloud::migrationcenter::v1::CreateImportJobRequest const& request) override; + StatusOr CreateImportJob( + ExperimentalTag, NoAwaitTag, + google::cloud::migrationcenter::v1::CreateImportJobRequest const& request) + override; + + future> + CreateImportJob(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListImportJobs( google::cloud::migrationcenter::v1::ListImportJobsRequest request) override; @@ -92,20 +101,56 @@ class MigrationCenterTracingConnection google::cloud::migrationcenter::v1::DeleteImportJobRequest const& request) override; + StatusOr DeleteImportJob( + ExperimentalTag, NoAwaitTag, + google::cloud::migrationcenter::v1::DeleteImportJobRequest const& request) + override; + + future> + DeleteImportJob(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateImportJob( google::cloud::migrationcenter::v1::UpdateImportJobRequest const& request) override; + StatusOr UpdateImportJob( + ExperimentalTag, NoAwaitTag, + google::cloud::migrationcenter::v1::UpdateImportJobRequest const& request) + override; + + future> + UpdateImportJob(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ValidateImportJob( google::cloud::migrationcenter::v1::ValidateImportJobRequest const& request) override; + StatusOr ValidateImportJob( + ExperimentalTag, NoAwaitTag, + google::cloud::migrationcenter::v1::ValidateImportJobRequest const& + request) override; + + future> + ValidateImportJob(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> RunImportJob(google::cloud::migrationcenter::v1::RunImportJobRequest const& request) override; + StatusOr RunImportJob( + ExperimentalTag, NoAwaitTag, + google::cloud::migrationcenter::v1::RunImportJobRequest const& request) + override; + + future> + RunImportJob(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetImportDataFile( google::cloud::migrationcenter::v1::GetImportDataFileRequest const& @@ -121,11 +166,31 @@ class MigrationCenterTracingConnection google::cloud::migrationcenter::v1::CreateImportDataFileRequest const& request) override; + StatusOr CreateImportDataFile( + ExperimentalTag, NoAwaitTag, + google::cloud::migrationcenter::v1::CreateImportDataFileRequest const& + request) override; + + future> + CreateImportDataFile( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteImportDataFile( google::cloud::migrationcenter::v1::DeleteImportDataFileRequest const& request) override; + StatusOr DeleteImportDataFile( + ExperimentalTag, NoAwaitTag, + google::cloud::migrationcenter::v1::DeleteImportDataFileRequest const& + request) override; + + future> + DeleteImportDataFile( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListGroups( google::cloud::migrationcenter::v1::ListGroupsRequest request) override; @@ -137,23 +202,69 @@ class MigrationCenterTracingConnection google::cloud::migrationcenter::v1::CreateGroupRequest const& request) override; + StatusOr CreateGroup( + ExperimentalTag, NoAwaitTag, + google::cloud::migrationcenter::v1::CreateGroupRequest const& request) + override; + + future> CreateGroup( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateGroup( google::cloud::migrationcenter::v1::UpdateGroupRequest const& request) override; + StatusOr UpdateGroup( + ExperimentalTag, NoAwaitTag, + google::cloud::migrationcenter::v1::UpdateGroupRequest const& request) + override; + + future> UpdateGroup( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteGroup(google::cloud::migrationcenter::v1::DeleteGroupRequest const& request) override; + StatusOr DeleteGroup( + ExperimentalTag, NoAwaitTag, + google::cloud::migrationcenter::v1::DeleteGroupRequest const& request) + override; + + future> + DeleteGroup(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> AddAssetsToGroup( google::cloud::migrationcenter::v1::AddAssetsToGroupRequest const& request) override; + StatusOr AddAssetsToGroup( + ExperimentalTag, NoAwaitTag, + google::cloud::migrationcenter::v1::AddAssetsToGroupRequest const& + request) override; + + future> AddAssetsToGroup( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> RemoveAssetsFromGroup( google::cloud::migrationcenter::v1::RemoveAssetsFromGroupRequest const& request) override; + StatusOr RemoveAssetsFromGroup( + ExperimentalTag, NoAwaitTag, + google::cloud::migrationcenter::v1::RemoveAssetsFromGroupRequest const& + request) override; + + future> + RemoveAssetsFromGroup( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListErrorFrames( google::cloud::migrationcenter::v1::ListErrorFramesRequest request) override; @@ -173,14 +284,41 @@ class MigrationCenterTracingConnection google::cloud::migrationcenter::v1::CreateSourceRequest const& request) override; + StatusOr CreateSource( + ExperimentalTag, NoAwaitTag, + google::cloud::migrationcenter::v1::CreateSourceRequest const& request) + override; + + future> CreateSource( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateSource( google::cloud::migrationcenter::v1::UpdateSourceRequest const& request) override; + StatusOr UpdateSource( + ExperimentalTag, NoAwaitTag, + google::cloud::migrationcenter::v1::UpdateSourceRequest const& request) + override; + + future> UpdateSource( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteSource(google::cloud::migrationcenter::v1::DeleteSourceRequest const& request) override; + StatusOr DeleteSource( + ExperimentalTag, NoAwaitTag, + google::cloud::migrationcenter::v1::DeleteSourceRequest const& request) + override; + + future> + DeleteSource(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListPreferenceSets( google::cloud::migrationcenter::v1::ListPreferenceSetsRequest request) @@ -195,16 +333,43 @@ class MigrationCenterTracingConnection google::cloud::migrationcenter::v1::CreatePreferenceSetRequest const& request) override; + StatusOr CreatePreferenceSet( + ExperimentalTag, NoAwaitTag, + google::cloud::migrationcenter::v1::CreatePreferenceSetRequest const& + request) override; + + future> + CreatePreferenceSet(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdatePreferenceSet( google::cloud::migrationcenter::v1::UpdatePreferenceSetRequest const& request) override; + StatusOr UpdatePreferenceSet( + ExperimentalTag, NoAwaitTag, + google::cloud::migrationcenter::v1::UpdatePreferenceSetRequest const& + request) override; + + future> + UpdatePreferenceSet(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeletePreferenceSet( google::cloud::migrationcenter::v1::DeletePreferenceSetRequest const& request) override; + StatusOr DeletePreferenceSet( + ExperimentalTag, NoAwaitTag, + google::cloud::migrationcenter::v1::DeletePreferenceSetRequest const& + request) override; + + future> + DeletePreferenceSet(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetSettings( google::cloud::migrationcenter::v1::GetSettingsRequest const& request) override; @@ -213,11 +378,29 @@ class MigrationCenterTracingConnection google::cloud::migrationcenter::v1::UpdateSettingsRequest const& request) override; + StatusOr UpdateSettings( + ExperimentalTag, NoAwaitTag, + google::cloud::migrationcenter::v1::UpdateSettingsRequest const& request) + override; + + future> UpdateSettings( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> CreateReportConfig( google::cloud::migrationcenter::v1::CreateReportConfigRequest const& request) override; + StatusOr CreateReportConfig( + ExperimentalTag, NoAwaitTag, + google::cloud::migrationcenter::v1::CreateReportConfigRequest const& + request) override; + + future> + CreateReportConfig(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetReportConfig( google::cloud::migrationcenter::v1::GetReportConfigRequest const& request) override; @@ -231,10 +414,28 @@ class MigrationCenterTracingConnection google::cloud::migrationcenter::v1::DeleteReportConfigRequest const& request) override; + StatusOr DeleteReportConfig( + ExperimentalTag, NoAwaitTag, + google::cloud::migrationcenter::v1::DeleteReportConfigRequest const& + request) override; + + future> + DeleteReportConfig(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> CreateReport( google::cloud::migrationcenter::v1::CreateReportRequest const& request) override; + StatusOr CreateReport( + ExperimentalTag, NoAwaitTag, + google::cloud::migrationcenter::v1::CreateReportRequest const& request) + override; + + future> CreateReport( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetReport( google::cloud::migrationcenter::v1::GetReportRequest const& request) override; @@ -246,6 +447,15 @@ class MigrationCenterTracingConnection DeleteReport(google::cloud::migrationcenter::v1::DeleteReportRequest const& request) override; + StatusOr DeleteReport( + ExperimentalTag, NoAwaitTag, + google::cloud::migrationcenter::v1::DeleteReportRequest const& request) + override; + + future> + DeleteReport(ExperimentalTag, + google::longrunning::Operation const& operation) override; + private: std::shared_ptr child_; }; diff --git a/google/cloud/migrationcenter/v1/migration_center_connection.cc b/google/cloud/migrationcenter/v1/migration_center_connection.cc index 23e18748a429a..d98ca05f3a9c7 100644 --- a/google/cloud/migrationcenter/v1/migration_center_connection.cc +++ b/google/cloud/migrationcenter/v1/migration_center_connection.cc @@ -94,6 +94,22 @@ MigrationCenterConnection::CreateImportJob( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +MigrationCenterConnection::CreateImportJob( + ExperimentalTag, NoAwaitTag, + google::cloud::migrationcenter::v1::CreateImportJobRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +MigrationCenterConnection::CreateImportJob( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StreamRange MigrationCenterConnection::ListImportJobs( google::cloud::migrationcenter::v1:: @@ -116,6 +132,22 @@ MigrationCenterConnection::DeleteImportJob( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +MigrationCenterConnection::DeleteImportJob( + ExperimentalTag, NoAwaitTag, + google::cloud::migrationcenter::v1::DeleteImportJobRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +MigrationCenterConnection::DeleteImportJob( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> MigrationCenterConnection::UpdateImportJob( google::cloud::migrationcenter::v1::UpdateImportJobRequest const&) { @@ -124,6 +156,22 @@ MigrationCenterConnection::UpdateImportJob( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +MigrationCenterConnection::UpdateImportJob( + ExperimentalTag, NoAwaitTag, + google::cloud::migrationcenter::v1::UpdateImportJobRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +MigrationCenterConnection::UpdateImportJob( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> MigrationCenterConnection::ValidateImportJob( google::cloud::migrationcenter::v1::ValidateImportJobRequest const&) { @@ -132,6 +180,22 @@ MigrationCenterConnection::ValidateImportJob( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +MigrationCenterConnection::ValidateImportJob( + ExperimentalTag, NoAwaitTag, + google::cloud::migrationcenter::v1::ValidateImportJobRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +MigrationCenterConnection::ValidateImportJob( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> MigrationCenterConnection::RunImportJob( google::cloud::migrationcenter::v1::RunImportJobRequest const&) { @@ -140,6 +204,22 @@ MigrationCenterConnection::RunImportJob( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +MigrationCenterConnection::RunImportJob( + ExperimentalTag, NoAwaitTag, + google::cloud::migrationcenter::v1::RunImportJobRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +MigrationCenterConnection::RunImportJob(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr MigrationCenterConnection::GetImportDataFile( google::cloud::migrationcenter::v1::GetImportDataFileRequest const&) { @@ -162,6 +242,22 @@ MigrationCenterConnection::CreateImportDataFile( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +MigrationCenterConnection::CreateImportDataFile( + ExperimentalTag, NoAwaitTag, + google::cloud::migrationcenter::v1::CreateImportDataFileRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +MigrationCenterConnection::CreateImportDataFile( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> MigrationCenterConnection::DeleteImportDataFile( google::cloud::migrationcenter::v1::DeleteImportDataFileRequest const&) { @@ -170,6 +266,22 @@ MigrationCenterConnection::DeleteImportDataFile( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +MigrationCenterConnection::DeleteImportDataFile( + ExperimentalTag, NoAwaitTag, + google::cloud::migrationcenter::v1::DeleteImportDataFileRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +MigrationCenterConnection::DeleteImportDataFile( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StreamRange MigrationCenterConnection::ListGroups( google::cloud::migrationcenter::v1:: @@ -192,6 +304,21 @@ MigrationCenterConnection::CreateGroup( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr MigrationCenterConnection::CreateGroup( + ExperimentalTag, NoAwaitTag, + google::cloud::migrationcenter::v1::CreateGroupRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +MigrationCenterConnection::CreateGroup(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> MigrationCenterConnection::UpdateGroup( google::cloud::migrationcenter::v1::UpdateGroupRequest const&) { @@ -200,6 +327,21 @@ MigrationCenterConnection::UpdateGroup( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr MigrationCenterConnection::UpdateGroup( + ExperimentalTag, NoAwaitTag, + google::cloud::migrationcenter::v1::UpdateGroupRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +MigrationCenterConnection::UpdateGroup(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> MigrationCenterConnection::DeleteGroup( google::cloud::migrationcenter::v1::DeleteGroupRequest const&) { @@ -208,6 +350,21 @@ MigrationCenterConnection::DeleteGroup( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr MigrationCenterConnection::DeleteGroup( + ExperimentalTag, NoAwaitTag, + google::cloud::migrationcenter::v1::DeleteGroupRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +MigrationCenterConnection::DeleteGroup(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> MigrationCenterConnection::AddAssetsToGroup( google::cloud::migrationcenter::v1::AddAssetsToGroupRequest const&) { @@ -216,6 +373,22 @@ MigrationCenterConnection::AddAssetsToGroup( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +MigrationCenterConnection::AddAssetsToGroup( + ExperimentalTag, NoAwaitTag, + google::cloud::migrationcenter::v1::AddAssetsToGroupRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +MigrationCenterConnection::AddAssetsToGroup( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> MigrationCenterConnection::RemoveAssetsFromGroup( google::cloud::migrationcenter::v1::RemoveAssetsFromGroupRequest const&) { @@ -224,6 +397,22 @@ MigrationCenterConnection::RemoveAssetsFromGroup( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +MigrationCenterConnection::RemoveAssetsFromGroup( + ExperimentalTag, NoAwaitTag, + google::cloud::migrationcenter::v1::RemoveAssetsFromGroupRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +MigrationCenterConnection::RemoveAssetsFromGroup( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StreamRange MigrationCenterConnection::ListErrorFrames( google::cloud::migrationcenter::v1:: @@ -260,6 +449,22 @@ MigrationCenterConnection::CreateSource( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +MigrationCenterConnection::CreateSource( + ExperimentalTag, NoAwaitTag, + google::cloud::migrationcenter::v1::CreateSourceRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +MigrationCenterConnection::CreateSource(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> MigrationCenterConnection::UpdateSource( google::cloud::migrationcenter::v1::UpdateSourceRequest const&) { @@ -268,6 +473,22 @@ MigrationCenterConnection::UpdateSource( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +MigrationCenterConnection::UpdateSource( + ExperimentalTag, NoAwaitTag, + google::cloud::migrationcenter::v1::UpdateSourceRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +MigrationCenterConnection::UpdateSource(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> MigrationCenterConnection::DeleteSource( google::cloud::migrationcenter::v1::DeleteSourceRequest const&) { @@ -276,6 +497,22 @@ MigrationCenterConnection::DeleteSource( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +MigrationCenterConnection::DeleteSource( + ExperimentalTag, NoAwaitTag, + google::cloud::migrationcenter::v1::DeleteSourceRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +MigrationCenterConnection::DeleteSource(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StreamRange MigrationCenterConnection::ListPreferenceSets( google::cloud::migrationcenter::v1:: @@ -298,6 +535,22 @@ MigrationCenterConnection::CreatePreferenceSet( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +MigrationCenterConnection::CreatePreferenceSet( + ExperimentalTag, NoAwaitTag, + google::cloud::migrationcenter::v1::CreatePreferenceSetRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +MigrationCenterConnection::CreatePreferenceSet( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> MigrationCenterConnection::UpdatePreferenceSet( google::cloud::migrationcenter::v1::UpdatePreferenceSetRequest const&) { @@ -306,6 +559,22 @@ MigrationCenterConnection::UpdatePreferenceSet( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +MigrationCenterConnection::UpdatePreferenceSet( + ExperimentalTag, NoAwaitTag, + google::cloud::migrationcenter::v1::UpdatePreferenceSetRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +MigrationCenterConnection::UpdatePreferenceSet( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> MigrationCenterConnection::DeletePreferenceSet( google::cloud::migrationcenter::v1::DeletePreferenceSetRequest const&) { @@ -314,6 +583,22 @@ MigrationCenterConnection::DeletePreferenceSet( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +MigrationCenterConnection::DeletePreferenceSet( + ExperimentalTag, NoAwaitTag, + google::cloud::migrationcenter::v1::DeletePreferenceSetRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +MigrationCenterConnection::DeletePreferenceSet( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr MigrationCenterConnection::GetSettings( google::cloud::migrationcenter::v1::GetSettingsRequest const&) { @@ -328,6 +613,22 @@ MigrationCenterConnection::UpdateSettings( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +MigrationCenterConnection::UpdateSettings( + ExperimentalTag, NoAwaitTag, + google::cloud::migrationcenter::v1::UpdateSettingsRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +MigrationCenterConnection::UpdateSettings( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> MigrationCenterConnection::CreateReportConfig( google::cloud::migrationcenter::v1::CreateReportConfigRequest const&) { @@ -336,6 +637,22 @@ MigrationCenterConnection::CreateReportConfig( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +MigrationCenterConnection::CreateReportConfig( + ExperimentalTag, NoAwaitTag, + google::cloud::migrationcenter::v1::CreateReportConfigRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +MigrationCenterConnection::CreateReportConfig( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr MigrationCenterConnection::GetReportConfig( google::cloud::migrationcenter::v1::GetReportConfigRequest const&) { @@ -358,6 +675,22 @@ MigrationCenterConnection::DeleteReportConfig( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +MigrationCenterConnection::DeleteReportConfig( + ExperimentalTag, NoAwaitTag, + google::cloud::migrationcenter::v1::DeleteReportConfigRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +MigrationCenterConnection::DeleteReportConfig( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> MigrationCenterConnection::CreateReport( google::cloud::migrationcenter::v1::CreateReportRequest const&) { @@ -366,6 +699,22 @@ MigrationCenterConnection::CreateReport( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +MigrationCenterConnection::CreateReport( + ExperimentalTag, NoAwaitTag, + google::cloud::migrationcenter::v1::CreateReportRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +MigrationCenterConnection::CreateReport(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr MigrationCenterConnection::GetReport( google::cloud::migrationcenter::v1::GetReportRequest const&) { @@ -388,6 +737,22 @@ MigrationCenterConnection::DeleteReport( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +MigrationCenterConnection::DeleteReport( + ExperimentalTag, NoAwaitTag, + google::cloud::migrationcenter::v1::DeleteReportRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +MigrationCenterConnection::DeleteReport(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + std::shared_ptr MakeMigrationCenterConnection( Options options) { internal::CheckExpectedOptions CreateImportJob( + ExperimentalTag, NoAwaitTag, + google::cloud::migrationcenter::v1::CreateImportJobRequest const& + request); + + virtual future> + CreateImportJob(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StreamRange ListImportJobs( google::cloud::migrationcenter::v1::ListImportJobsRequest request); @@ -238,22 +249,60 @@ class MigrationCenterConnection { google::cloud::migrationcenter::v1::DeleteImportJobRequest const& request); + virtual StatusOr DeleteImportJob( + ExperimentalTag, NoAwaitTag, + google::cloud::migrationcenter::v1::DeleteImportJobRequest const& + request); + + virtual future< + StatusOr> + DeleteImportJob(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> UpdateImportJob( google::cloud::migrationcenter::v1::UpdateImportJobRequest const& request); + virtual StatusOr UpdateImportJob( + ExperimentalTag, NoAwaitTag, + google::cloud::migrationcenter::v1::UpdateImportJobRequest const& + request); + + virtual future> + UpdateImportJob(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future< StatusOr> ValidateImportJob( google::cloud::migrationcenter::v1::ValidateImportJobRequest const& request); + virtual StatusOr ValidateImportJob( + ExperimentalTag, NoAwaitTag, + google::cloud::migrationcenter::v1::ValidateImportJobRequest const& + request); + + virtual future< + StatusOr> + ValidateImportJob(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future< StatusOr> RunImportJob( google::cloud::migrationcenter::v1::RunImportJobRequest const& request); + virtual StatusOr RunImportJob( + ExperimentalTag, NoAwaitTag, + google::cloud::migrationcenter::v1::RunImportJobRequest const& request); + + virtual future< + StatusOr> + RunImportJob(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StatusOr GetImportDataFile( google::cloud::migrationcenter::v1::GetImportDataFileRequest const& @@ -268,12 +317,31 @@ class MigrationCenterConnection { google::cloud::migrationcenter::v1::CreateImportDataFileRequest const& request); + virtual StatusOr CreateImportDataFile( + ExperimentalTag, NoAwaitTag, + google::cloud::migrationcenter::v1::CreateImportDataFileRequest const& + request); + + virtual future> + CreateImportDataFile(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future< StatusOr> DeleteImportDataFile( google::cloud::migrationcenter::v1::DeleteImportDataFileRequest const& request); + virtual StatusOr DeleteImportDataFile( + ExperimentalTag, NoAwaitTag, + google::cloud::migrationcenter::v1::DeleteImportDataFileRequest const& + request); + + virtual future< + StatusOr> + DeleteImportDataFile(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StreamRange ListGroups( google::cloud::migrationcenter::v1::ListGroupsRequest request); @@ -284,25 +352,65 @@ class MigrationCenterConnection { CreateGroup( google::cloud::migrationcenter::v1::CreateGroupRequest const& request); + virtual StatusOr CreateGroup( + ExperimentalTag, NoAwaitTag, + google::cloud::migrationcenter::v1::CreateGroupRequest const& request); + + virtual future> + CreateGroup(ExperimentalTag, google::longrunning::Operation const& operation); + virtual future> UpdateGroup( google::cloud::migrationcenter::v1::UpdateGroupRequest const& request); + virtual StatusOr UpdateGroup( + ExperimentalTag, NoAwaitTag, + google::cloud::migrationcenter::v1::UpdateGroupRequest const& request); + + virtual future> + UpdateGroup(ExperimentalTag, google::longrunning::Operation const& operation); + virtual future< StatusOr> DeleteGroup( google::cloud::migrationcenter::v1::DeleteGroupRequest const& request); + virtual StatusOr DeleteGroup( + ExperimentalTag, NoAwaitTag, + google::cloud::migrationcenter::v1::DeleteGroupRequest const& request); + + virtual future< + StatusOr> + DeleteGroup(ExperimentalTag, google::longrunning::Operation const& operation); + virtual future> AddAssetsToGroup( google::cloud::migrationcenter::v1::AddAssetsToGroupRequest const& request); + virtual StatusOr AddAssetsToGroup( + ExperimentalTag, NoAwaitTag, + google::cloud::migrationcenter::v1::AddAssetsToGroupRequest const& + request); + + virtual future> + AddAssetsToGroup(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> RemoveAssetsFromGroup( google::cloud::migrationcenter::v1::RemoveAssetsFromGroupRequest const& request); + virtual StatusOr RemoveAssetsFromGroup( + ExperimentalTag, NoAwaitTag, + google::cloud::migrationcenter::v1::RemoveAssetsFromGroupRequest const& + request); + + virtual future> + RemoveAssetsFromGroup(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StreamRange ListErrorFrames( google::cloud::migrationcenter::v1::ListErrorFramesRequest request); @@ -321,15 +429,40 @@ class MigrationCenterConnection { CreateSource( google::cloud::migrationcenter::v1::CreateSourceRequest const& request); + virtual StatusOr CreateSource( + ExperimentalTag, NoAwaitTag, + google::cloud::migrationcenter::v1::CreateSourceRequest const& request); + + virtual future> + CreateSource(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> UpdateSource( google::cloud::migrationcenter::v1::UpdateSourceRequest const& request); + virtual StatusOr UpdateSource( + ExperimentalTag, NoAwaitTag, + google::cloud::migrationcenter::v1::UpdateSourceRequest const& request); + + virtual future> + UpdateSource(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future< StatusOr> DeleteSource( google::cloud::migrationcenter::v1::DeleteSourceRequest const& request); + virtual StatusOr DeleteSource( + ExperimentalTag, NoAwaitTag, + google::cloud::migrationcenter::v1::DeleteSourceRequest const& request); + + virtual future< + StatusOr> + DeleteSource(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StreamRange ListPreferenceSets( google::cloud::migrationcenter::v1::ListPreferenceSetsRequest request); @@ -344,17 +477,45 @@ class MigrationCenterConnection { google::cloud::migrationcenter::v1::CreatePreferenceSetRequest const& request); + virtual StatusOr CreatePreferenceSet( + ExperimentalTag, NoAwaitTag, + google::cloud::migrationcenter::v1::CreatePreferenceSetRequest const& + request); + + virtual future> + CreatePreferenceSet(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> UpdatePreferenceSet( google::cloud::migrationcenter::v1::UpdatePreferenceSetRequest const& request); + virtual StatusOr UpdatePreferenceSet( + ExperimentalTag, NoAwaitTag, + google::cloud::migrationcenter::v1::UpdatePreferenceSetRequest const& + request); + + virtual future> + UpdatePreferenceSet(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future< StatusOr> DeletePreferenceSet( google::cloud::migrationcenter::v1::DeletePreferenceSetRequest const& request); + virtual StatusOr DeletePreferenceSet( + ExperimentalTag, NoAwaitTag, + google::cloud::migrationcenter::v1::DeletePreferenceSetRequest const& + request); + + virtual future< + StatusOr> + DeletePreferenceSet(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StatusOr GetSettings( google::cloud::migrationcenter::v1::GetSettingsRequest const& request); @@ -362,11 +523,28 @@ class MigrationCenterConnection { UpdateSettings( google::cloud::migrationcenter::v1::UpdateSettingsRequest const& request); + virtual StatusOr UpdateSettings( + ExperimentalTag, NoAwaitTag, + google::cloud::migrationcenter::v1::UpdateSettingsRequest const& request); + + virtual future> + UpdateSettings(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> CreateReportConfig( google::cloud::migrationcenter::v1::CreateReportConfigRequest const& request); + virtual StatusOr CreateReportConfig( + ExperimentalTag, NoAwaitTag, + google::cloud::migrationcenter::v1::CreateReportConfigRequest const& + request); + + virtual future> + CreateReportConfig(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StatusOr GetReportConfig( google::cloud::migrationcenter::v1::GetReportConfigRequest const& @@ -382,10 +560,28 @@ class MigrationCenterConnection { google::cloud::migrationcenter::v1::DeleteReportConfigRequest const& request); + virtual StatusOr DeleteReportConfig( + ExperimentalTag, NoAwaitTag, + google::cloud::migrationcenter::v1::DeleteReportConfigRequest const& + request); + + virtual future< + StatusOr> + DeleteReportConfig(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> CreateReport( google::cloud::migrationcenter::v1::CreateReportRequest const& request); + virtual StatusOr CreateReport( + ExperimentalTag, NoAwaitTag, + google::cloud::migrationcenter::v1::CreateReportRequest const& request); + + virtual future> + CreateReport(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StatusOr GetReport( google::cloud::migrationcenter::v1::GetReportRequest const& request); @@ -396,6 +592,15 @@ class MigrationCenterConnection { StatusOr> DeleteReport( google::cloud::migrationcenter::v1::DeleteReportRequest const& request); + + virtual StatusOr DeleteReport( + ExperimentalTag, NoAwaitTag, + google::cloud::migrationcenter::v1::DeleteReportRequest const& request); + + virtual future< + StatusOr> + DeleteReport(ExperimentalTag, + google::longrunning::Operation const& operation); }; /** diff --git a/google/cloud/migrationcenter/v1/mocks/mock_migration_center_connection.h b/google/cloud/migrationcenter/v1/mocks/mock_migration_center_connection.h index 6074ecfae3361..7d19b23d1c09c 100644 --- a/google/cloud/migrationcenter/v1/mocks/mock_migration_center_connection.h +++ b/google/cloud/migrationcenter/v1/mocks/mock_migration_center_connection.h @@ -101,6 +101,18 @@ class MockMigrationCenterConnection request), (override)); + MOCK_METHOD(StatusOr, CreateImportJob, + (ExperimentalTag, NoAwaitTag, + google::cloud::migrationcenter::v1::CreateImportJobRequest const& + request), + (override)); + + MOCK_METHOD(future>, + CreateImportJob, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( (StreamRange), ListImportJobs, @@ -119,12 +131,36 @@ class MockMigrationCenterConnection request), (override)); + MOCK_METHOD(StatusOr, DeleteImportJob, + (ExperimentalTag, NoAwaitTag, + google::cloud::migrationcenter::v1::DeleteImportJobRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + DeleteImportJob, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, UpdateImportJob, (google::cloud::migrationcenter::v1::UpdateImportJobRequest const& request), (override)); + MOCK_METHOD(StatusOr, UpdateImportJob, + (ExperimentalTag, NoAwaitTag, + google::cloud::migrationcenter::v1::UpdateImportJobRequest const& + request), + (override)); + + MOCK_METHOD(future>, + UpdateImportJob, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, ValidateImportJob, @@ -132,12 +168,37 @@ class MockMigrationCenterConnection request), (override)); + MOCK_METHOD( + StatusOr, ValidateImportJob, + (ExperimentalTag, NoAwaitTag, + google::cloud::migrationcenter::v1::ValidateImportJobRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + ValidateImportJob, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, RunImportJob, (google::cloud::migrationcenter::v1::RunImportJobRequest const& request), (override)); + MOCK_METHOD( + StatusOr, RunImportJob, + (ExperimentalTag, NoAwaitTag, + google::cloud::migrationcenter::v1::RunImportJobRequest const& request), + (override)); + + MOCK_METHOD( + future>, + RunImportJob, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr, GetImportDataFile, @@ -158,6 +219,19 @@ class MockMigrationCenterConnection request), (override)); + MOCK_METHOD( + StatusOr, CreateImportDataFile, + (ExperimentalTag, NoAwaitTag, + google::cloud::migrationcenter::v1::CreateImportDataFileRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + CreateImportDataFile, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteImportDataFile, @@ -165,6 +239,19 @@ class MockMigrationCenterConnection request), (override)); + MOCK_METHOD( + StatusOr, DeleteImportDataFile, + (ExperimentalTag, NoAwaitTag, + google::cloud::migrationcenter::v1::DeleteImportDataFileRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + DeleteImportDataFile, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD((StreamRange), ListGroups, (google::cloud::migrationcenter::v1::ListGroupsRequest request), @@ -180,17 +267,53 @@ class MockMigrationCenterConnection (google::cloud::migrationcenter::v1::CreateGroupRequest const& request), (override)); + MOCK_METHOD( + StatusOr, CreateGroup, + (ExperimentalTag, NoAwaitTag, + google::cloud::migrationcenter::v1::CreateGroupRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateGroup, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, UpdateGroup, (google::cloud::migrationcenter::v1::UpdateGroupRequest const& request), (override)); + MOCK_METHOD( + StatusOr, UpdateGroup, + (ExperimentalTag, NoAwaitTag, + google::cloud::migrationcenter::v1::UpdateGroupRequest const& request), + (override)); + + MOCK_METHOD(future>, + UpdateGroup, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteGroup, (google::cloud::migrationcenter::v1::DeleteGroupRequest const& request), (override)); + MOCK_METHOD( + StatusOr, DeleteGroup, + (ExperimentalTag, NoAwaitTag, + google::cloud::migrationcenter::v1::DeleteGroupRequest const& request), + (override)); + + MOCK_METHOD( + future>, + DeleteGroup, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, AddAssetsToGroup, @@ -198,6 +321,19 @@ class MockMigrationCenterConnection request), (override)); + MOCK_METHOD( + StatusOr, AddAssetsToGroup, + (ExperimentalTag, NoAwaitTag, + google::cloud::migrationcenter::v1::AddAssetsToGroupRequest const& + request), + (override)); + + MOCK_METHOD(future>, + AddAssetsToGroup, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, RemoveAssetsFromGroup, @@ -205,6 +341,19 @@ class MockMigrationCenterConnection request), (override)); + MOCK_METHOD( + StatusOr, RemoveAssetsFromGroup, + (ExperimentalTag, NoAwaitTag, + google::cloud::migrationcenter::v1::RemoveAssetsFromGroupRequest const& + request), + (override)); + + MOCK_METHOD(future>, + RemoveAssetsFromGroup, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( (StreamRange), ListErrorFrames, @@ -232,18 +381,54 @@ class MockMigrationCenterConnection (google::cloud::migrationcenter::v1::CreateSourceRequest const& request), (override)); + MOCK_METHOD( + StatusOr, CreateSource, + (ExperimentalTag, NoAwaitTag, + google::cloud::migrationcenter::v1::CreateSourceRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateSource, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, UpdateSource, (google::cloud::migrationcenter::v1::UpdateSourceRequest const& request), (override)); + MOCK_METHOD( + StatusOr, UpdateSource, + (ExperimentalTag, NoAwaitTag, + google::cloud::migrationcenter::v1::UpdateSourceRequest const& request), + (override)); + + MOCK_METHOD(future>, + UpdateSource, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteSource, (google::cloud::migrationcenter::v1::DeleteSourceRequest const& request), (override)); + MOCK_METHOD( + StatusOr, DeleteSource, + (ExperimentalTag, NoAwaitTag, + google::cloud::migrationcenter::v1::DeleteSourceRequest const& request), + (override)); + + MOCK_METHOD( + future>, + DeleteSource, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( (StreamRange), ListPreferenceSets, @@ -264,6 +449,19 @@ class MockMigrationCenterConnection request), (override)); + MOCK_METHOD( + StatusOr, CreatePreferenceSet, + (ExperimentalTag, NoAwaitTag, + google::cloud::migrationcenter::v1::CreatePreferenceSetRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + CreatePreferenceSet, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, UpdatePreferenceSet, @@ -271,6 +469,19 @@ class MockMigrationCenterConnection request), (override)); + MOCK_METHOD( + StatusOr, UpdatePreferenceSet, + (ExperimentalTag, NoAwaitTag, + google::cloud::migrationcenter::v1::UpdatePreferenceSetRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + UpdatePreferenceSet, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeletePreferenceSet, @@ -278,6 +489,19 @@ class MockMigrationCenterConnection request), (override)); + MOCK_METHOD( + StatusOr, DeletePreferenceSet, + (ExperimentalTag, NoAwaitTag, + google::cloud::migrationcenter::v1::DeletePreferenceSetRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + DeletePreferenceSet, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr, GetSettings, (google::cloud::migrationcenter::v1::GetSettingsRequest const& request), @@ -289,6 +513,18 @@ class MockMigrationCenterConnection request), (override)); + MOCK_METHOD(StatusOr, UpdateSettings, + (ExperimentalTag, NoAwaitTag, + google::cloud::migrationcenter::v1::UpdateSettingsRequest const& + request), + (override)); + + MOCK_METHOD(future>, + UpdateSettings, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, CreateReportConfig, @@ -296,6 +532,19 @@ class MockMigrationCenterConnection request), (override)); + MOCK_METHOD( + StatusOr, CreateReportConfig, + (ExperimentalTag, NoAwaitTag, + google::cloud::migrationcenter::v1::CreateReportConfigRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + CreateReportConfig, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(StatusOr, GetReportConfig, (google::cloud::migrationcenter::v1::GetReportConfigRequest const& @@ -315,12 +564,37 @@ class MockMigrationCenterConnection request), (override)); + MOCK_METHOD( + StatusOr, DeleteReportConfig, + (ExperimentalTag, NoAwaitTag, + google::cloud::migrationcenter::v1::DeleteReportConfigRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + DeleteReportConfig, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, CreateReport, (google::cloud::migrationcenter::v1::CreateReportRequest const& request), (override)); + MOCK_METHOD( + StatusOr, CreateReport, + (ExperimentalTag, NoAwaitTag, + google::cloud::migrationcenter::v1::CreateReportRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateReport, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr, GetReport, (google::cloud::migrationcenter::v1::GetReportRequest const& request), @@ -336,6 +610,18 @@ class MockMigrationCenterConnection DeleteReport, (google::cloud::migrationcenter::v1::DeleteReportRequest const& request), (override)); + + MOCK_METHOD( + StatusOr, DeleteReport, + (ExperimentalTag, NoAwaitTag, + google::cloud::migrationcenter::v1::DeleteReportRequest const& request), + (override)); + + MOCK_METHOD( + future>, + DeleteReport, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); }; GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END diff --git a/google/cloud/monitoring/dashboard/v1/dashboards_connection.h b/google/cloud/monitoring/dashboard/v1/dashboards_connection.h index 1ab7a10561569..8e1ac2a302e3f 100644 --- a/google/cloud/monitoring/dashboard/v1/dashboards_connection.h +++ b/google/cloud/monitoring/dashboard/v1/dashboards_connection.h @@ -22,6 +22,7 @@ #include "google/cloud/monitoring/dashboard/v1/dashboards_connection_idempotency_policy.h" #include "google/cloud/monitoring/dashboard/v1/internal/dashboards_retry_traits.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/internal/retry_policy_impl.h" #include "google/cloud/options.h" #include "google/cloud/status_or.h" diff --git a/google/cloud/monitoring/metricsscope/v1/internal/metrics_scopes_connection_impl.cc b/google/cloud/monitoring/metricsscope/v1/internal/metrics_scopes_connection_impl.cc index 03f4b5e5ad9f9..edc976762746e 100644 --- a/google/cloud/monitoring/metricsscope/v1/internal/metrics_scopes_connection_impl.cc +++ b/google/cloud/monitoring/metricsscope/v1/internal/metrics_scopes_connection_impl.cc @@ -147,6 +147,61 @@ MetricsScopesConnectionImpl::CreateMonitoredProject( polling_policy(*current), __func__); } +StatusOr +MetricsScopesConnectionImpl::CreateMonitoredProject( + ExperimentalTag, NoAwaitTag, + google::monitoring::metricsscope::v1::CreateMonitoredProjectRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateMonitoredProject(request), + [this](grpc::ClientContext& context, Options const& options, + google::monitoring::metricsscope::v1:: + CreateMonitoredProjectRequest const& request) { + return stub_->CreateMonitoredProject(context, options, request); + }, + *current, request, __func__); +} + +future> +MetricsScopesConnectionImpl::CreateMonitoredProject( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to CreateMonitoredProject", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::monitoring::metricsscope::v1::MonitoredProject>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::monitoring::metricsscope::v1::MonitoredProject>, + polling_policy(*current), __func__); +} + future> MetricsScopesConnectionImpl::DeleteMonitoredProject( google::monitoring::metricsscope::v1::DeleteMonitoredProjectRequest const& @@ -187,6 +242,61 @@ MetricsScopesConnectionImpl::DeleteMonitoredProject( polling_policy(*current), __func__); } +StatusOr +MetricsScopesConnectionImpl::DeleteMonitoredProject( + ExperimentalTag, NoAwaitTag, + google::monitoring::metricsscope::v1::DeleteMonitoredProjectRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteMonitoredProject(request), + [this](grpc::ClientContext& context, Options const& options, + google::monitoring::metricsscope::v1:: + DeleteMonitoredProjectRequest const& request) { + return stub_->DeleteMonitoredProject(context, options, request); + }, + *current, request, __func__); +} + +future> +MetricsScopesConnectionImpl::DeleteMonitoredProject( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteMonitoredProject", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::monitoring::metricsscope::v1::OperationMetadata>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::monitoring::metricsscope::v1::OperationMetadata>, + polling_policy(*current), __func__); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace monitoring_metricsscope_v1_internal } // namespace cloud diff --git a/google/cloud/monitoring/metricsscope/v1/internal/metrics_scopes_connection_impl.h b/google/cloud/monitoring/metricsscope/v1/internal/metrics_scopes_connection_impl.h index 626e0de652d3d..5d6a9d335f2e6 100644 --- a/google/cloud/monitoring/metricsscope/v1/internal/metrics_scopes_connection_impl.h +++ b/google/cloud/monitoring/metricsscope/v1/internal/metrics_scopes_connection_impl.h @@ -67,11 +67,31 @@ class MetricsScopesConnectionImpl google::monitoring::metricsscope::v1::CreateMonitoredProjectRequest const& request) override; + StatusOr CreateMonitoredProject( + ExperimentalTag, NoAwaitTag, + google::monitoring::metricsscope::v1::CreateMonitoredProjectRequest const& + request) override; + + future> + CreateMonitoredProject( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteMonitoredProject( google::monitoring::metricsscope::v1::DeleteMonitoredProjectRequest const& request) override; + StatusOr DeleteMonitoredProject( + ExperimentalTag, NoAwaitTag, + google::monitoring::metricsscope::v1::DeleteMonitoredProjectRequest const& + request) override; + + future> + DeleteMonitoredProject( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + private: std::unique_ptr background_; std::shared_ptr stub_; diff --git a/google/cloud/monitoring/metricsscope/v1/internal/metrics_scopes_tracing_connection.cc b/google/cloud/monitoring/metricsscope/v1/internal/metrics_scopes_tracing_connection.cc index ef5928d448d8b..37dc08f6dee24 100644 --- a/google/cloud/monitoring/metricsscope/v1/internal/metrics_scopes_tracing_connection.cc +++ b/google/cloud/monitoring/metricsscope/v1/internal/metrics_scopes_tracing_connection.cc @@ -67,6 +67,31 @@ MetricsScopesTracingConnection::CreateMonitoredProject( child_->CreateMonitoredProject(request)); } +StatusOr +MetricsScopesTracingConnection::CreateMonitoredProject( + ExperimentalTag, NoAwaitTag, + google::monitoring::metricsscope::v1::CreateMonitoredProjectRequest const& + request) { + auto span = internal::MakeSpan( + "monitoring_metricsscope_v1::MetricsScopesConnection::" + "CreateMonitoredProject"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->CreateMonitoredProject(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +MetricsScopesTracingConnection::CreateMonitoredProject( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "monitoring_metricsscope_v1::MetricsScopesConnection::" + "CreateMonitoredProject"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->CreateMonitoredProject( + ExperimentalTag{}, operation)); +} + future> MetricsScopesTracingConnection::DeleteMonitoredProject( google::monitoring::metricsscope::v1::DeleteMonitoredProjectRequest const& @@ -79,6 +104,31 @@ MetricsScopesTracingConnection::DeleteMonitoredProject( child_->DeleteMonitoredProject(request)); } +StatusOr +MetricsScopesTracingConnection::DeleteMonitoredProject( + ExperimentalTag, NoAwaitTag, + google::monitoring::metricsscope::v1::DeleteMonitoredProjectRequest const& + request) { + auto span = internal::MakeSpan( + "monitoring_metricsscope_v1::MetricsScopesConnection::" + "DeleteMonitoredProject"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->DeleteMonitoredProject(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +MetricsScopesTracingConnection::DeleteMonitoredProject( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "monitoring_metricsscope_v1::MetricsScopesConnection::" + "DeleteMonitoredProject"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->DeleteMonitoredProject( + ExperimentalTag{}, operation)); +} + #endif // GOOGLE_CLOUD_CPP_HAVE_OPENTELEMETRY std::shared_ptr diff --git a/google/cloud/monitoring/metricsscope/v1/internal/metrics_scopes_tracing_connection.h b/google/cloud/monitoring/metricsscope/v1/internal/metrics_scopes_tracing_connection.h index 949612185ddbb..f916a48510bad 100644 --- a/google/cloud/monitoring/metricsscope/v1/internal/metrics_scopes_tracing_connection.h +++ b/google/cloud/monitoring/metricsscope/v1/internal/metrics_scopes_tracing_connection.h @@ -56,11 +56,31 @@ class MetricsScopesTracingConnection google::monitoring::metricsscope::v1::CreateMonitoredProjectRequest const& request) override; + StatusOr CreateMonitoredProject( + ExperimentalTag, NoAwaitTag, + google::monitoring::metricsscope::v1::CreateMonitoredProjectRequest const& + request) override; + + future> + CreateMonitoredProject( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteMonitoredProject( google::monitoring::metricsscope::v1::DeleteMonitoredProjectRequest const& request) override; + StatusOr DeleteMonitoredProject( + ExperimentalTag, NoAwaitTag, + google::monitoring::metricsscope::v1::DeleteMonitoredProjectRequest const& + request) override; + + future> + DeleteMonitoredProject( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + private: std::shared_ptr child_; }; diff --git a/google/cloud/monitoring/metricsscope/v1/metrics_scopes_connection.cc b/google/cloud/monitoring/metricsscope/v1/metrics_scopes_connection.cc index a93022307c932..69a13e2055fbb 100644 --- a/google/cloud/monitoring/metricsscope/v1/metrics_scopes_connection.cc +++ b/google/cloud/monitoring/metricsscope/v1/metrics_scopes_connection.cc @@ -60,6 +60,23 @@ MetricsScopesConnection::CreateMonitoredProject( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +MetricsScopesConnection::CreateMonitoredProject( + ExperimentalTag, NoAwaitTag, + google::monitoring::metricsscope::v1:: + CreateMonitoredProjectRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +MetricsScopesConnection::CreateMonitoredProject( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> MetricsScopesConnection::DeleteMonitoredProject( google::monitoring::metricsscope::v1:: @@ -69,6 +86,23 @@ MetricsScopesConnection::DeleteMonitoredProject( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +MetricsScopesConnection::DeleteMonitoredProject( + ExperimentalTag, NoAwaitTag, + google::monitoring::metricsscope::v1:: + DeleteMonitoredProjectRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +MetricsScopesConnection::DeleteMonitoredProject( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + std::shared_ptr MakeMetricsScopesConnection( Options options) { internal::CheckExpectedOptions CreateMonitoredProject( + ExperimentalTag, NoAwaitTag, + google::monitoring::metricsscope::v1::CreateMonitoredProjectRequest const& + request); + + virtual future< + StatusOr> + CreateMonitoredProject(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future< StatusOr> DeleteMonitoredProject( google::monitoring::metricsscope::v1::DeleteMonitoredProjectRequest const& request); + + virtual StatusOr DeleteMonitoredProject( + ExperimentalTag, NoAwaitTag, + google::monitoring::metricsscope::v1::DeleteMonitoredProjectRequest const& + request); + + virtual future< + StatusOr> + DeleteMonitoredProject(ExperimentalTag, + google::longrunning::Operation const& operation); }; /** diff --git a/google/cloud/monitoring/metricsscope/v1/mocks/mock_metrics_scopes_connection.h b/google/cloud/monitoring/metricsscope/v1/mocks/mock_metrics_scopes_connection.h index b7237cd62c2c8..069e15d978c9b 100644 --- a/google/cloud/monitoring/metricsscope/v1/mocks/mock_metrics_scopes_connection.h +++ b/google/cloud/monitoring/metricsscope/v1/mocks/mock_metrics_scopes_connection.h @@ -68,12 +68,36 @@ class MockMetricsScopesConnection CreateMonitoredProjectRequest const& request), (override)); + MOCK_METHOD(StatusOr, CreateMonitoredProject, + (ExperimentalTag, NoAwaitTag, + google::monitoring::metricsscope::v1:: + CreateMonitoredProjectRequest const& request), + (override)); + + MOCK_METHOD( + future>, + CreateMonitoredProject, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteMonitoredProject, (google::monitoring::metricsscope::v1:: DeleteMonitoredProjectRequest const& request), (override)); + + MOCK_METHOD(StatusOr, DeleteMonitoredProject, + (ExperimentalTag, NoAwaitTag, + google::monitoring::metricsscope::v1:: + DeleteMonitoredProjectRequest const& request), + (override)); + + MOCK_METHOD( + future>, + DeleteMonitoredProject, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); }; GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END diff --git a/google/cloud/monitoring/v3/alert_policy_connection.h b/google/cloud/monitoring/v3/alert_policy_connection.h index ba46c0c9557fc..2b52db5db1224 100644 --- a/google/cloud/monitoring/v3/alert_policy_connection.h +++ b/google/cloud/monitoring/v3/alert_policy_connection.h @@ -22,6 +22,7 @@ #include "google/cloud/monitoring/v3/alert_policy_connection_idempotency_policy.h" #include "google/cloud/monitoring/v3/internal/alert_policy_retry_traits.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/internal/retry_policy_impl.h" #include "google/cloud/options.h" #include "google/cloud/status_or.h" diff --git a/google/cloud/monitoring/v3/group_connection.h b/google/cloud/monitoring/v3/group_connection.h index 970c92b73daea..993d51ef64493 100644 --- a/google/cloud/monitoring/v3/group_connection.h +++ b/google/cloud/monitoring/v3/group_connection.h @@ -22,6 +22,7 @@ #include "google/cloud/monitoring/v3/group_connection_idempotency_policy.h" #include "google/cloud/monitoring/v3/internal/group_retry_traits.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/internal/retry_policy_impl.h" #include "google/cloud/options.h" #include "google/cloud/status_or.h" diff --git a/google/cloud/monitoring/v3/metric_connection.h b/google/cloud/monitoring/v3/metric_connection.h index 8842e0a37abf7..83e552331e248 100644 --- a/google/cloud/monitoring/v3/metric_connection.h +++ b/google/cloud/monitoring/v3/metric_connection.h @@ -22,6 +22,7 @@ #include "google/cloud/monitoring/v3/internal/metric_retry_traits.h" #include "google/cloud/monitoring/v3/metric_connection_idempotency_policy.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/internal/retry_policy_impl.h" #include "google/cloud/options.h" diff --git a/google/cloud/monitoring/v3/notification_channel_connection.h b/google/cloud/monitoring/v3/notification_channel_connection.h index 121d40016f60c..54f1254fe6a3c 100644 --- a/google/cloud/monitoring/v3/notification_channel_connection.h +++ b/google/cloud/monitoring/v3/notification_channel_connection.h @@ -22,6 +22,7 @@ #include "google/cloud/monitoring/v3/internal/notification_channel_retry_traits.h" #include "google/cloud/monitoring/v3/notification_channel_connection_idempotency_policy.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/internal/retry_policy_impl.h" #include "google/cloud/options.h" #include "google/cloud/status_or.h" diff --git a/google/cloud/monitoring/v3/query_connection.h b/google/cloud/monitoring/v3/query_connection.h index 104d50b77b132..9f0c398432046 100644 --- a/google/cloud/monitoring/v3/query_connection.h +++ b/google/cloud/monitoring/v3/query_connection.h @@ -22,6 +22,7 @@ #include "google/cloud/monitoring/v3/internal/query_retry_traits.h" #include "google/cloud/monitoring/v3/query_connection_idempotency_policy.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/internal/retry_policy_impl.h" #include "google/cloud/options.h" #include "google/cloud/status_or.h" diff --git a/google/cloud/monitoring/v3/service_monitoring_connection.h b/google/cloud/monitoring/v3/service_monitoring_connection.h index e35d14c50e859..2f0fe0d0f6893 100644 --- a/google/cloud/monitoring/v3/service_monitoring_connection.h +++ b/google/cloud/monitoring/v3/service_monitoring_connection.h @@ -22,6 +22,7 @@ #include "google/cloud/monitoring/v3/internal/service_monitoring_retry_traits.h" #include "google/cloud/monitoring/v3/service_monitoring_connection_idempotency_policy.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/internal/retry_policy_impl.h" #include "google/cloud/options.h" #include "google/cloud/status_or.h" diff --git a/google/cloud/monitoring/v3/snooze_connection.h b/google/cloud/monitoring/v3/snooze_connection.h index 3d785cd7afc4d..ac3eb50f9fca4 100644 --- a/google/cloud/monitoring/v3/snooze_connection.h +++ b/google/cloud/monitoring/v3/snooze_connection.h @@ -22,6 +22,7 @@ #include "google/cloud/monitoring/v3/internal/snooze_retry_traits.h" #include "google/cloud/monitoring/v3/snooze_connection_idempotency_policy.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/internal/retry_policy_impl.h" #include "google/cloud/options.h" #include "google/cloud/status_or.h" diff --git a/google/cloud/monitoring/v3/uptime_check_connection.h b/google/cloud/monitoring/v3/uptime_check_connection.h index e423daa52ab6c..bfdd5051ebab7 100644 --- a/google/cloud/monitoring/v3/uptime_check_connection.h +++ b/google/cloud/monitoring/v3/uptime_check_connection.h @@ -22,6 +22,7 @@ #include "google/cloud/monitoring/v3/internal/uptime_check_retry_traits.h" #include "google/cloud/monitoring/v3/uptime_check_connection_idempotency_policy.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/internal/retry_policy_impl.h" #include "google/cloud/options.h" #include "google/cloud/status_or.h" diff --git a/google/cloud/netapp/v1/internal/net_app_connection_impl.cc b/google/cloud/netapp/v1/internal/net_app_connection_impl.cc index 647f6c6987360..a3ce238f5dcac 100644 --- a/google/cloud/netapp/v1/internal/net_app_connection_impl.cc +++ b/google/cloud/netapp/v1/internal/net_app_connection_impl.cc @@ -135,6 +135,58 @@ NetAppConnectionImpl::CreateStoragePool( polling_policy(*current), __func__); } +StatusOr +NetAppConnectionImpl::CreateStoragePool( + ExperimentalTag, NoAwaitTag, + google::cloud::netapp::v1::CreateStoragePoolRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateStoragePool(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::netapp::v1::CreateStoragePoolRequest const& request) { + return stub_->CreateStoragePool(context, options, request); + }, + *current, request, __func__); +} + +future> +NetAppConnectionImpl::CreateStoragePool( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to CreateStoragePool", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::netapp::v1::StoragePool>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::netapp::v1::StoragePool>, + polling_policy(*current), __func__); +} + StatusOr NetAppConnectionImpl::GetStoragePool( google::cloud::netapp::v1::GetStoragePoolRequest const& request) { @@ -188,6 +240,58 @@ NetAppConnectionImpl::UpdateStoragePool( polling_policy(*current), __func__); } +StatusOr +NetAppConnectionImpl::UpdateStoragePool( + ExperimentalTag, NoAwaitTag, + google::cloud::netapp::v1::UpdateStoragePoolRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UpdateStoragePool(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::netapp::v1::UpdateStoragePoolRequest const& request) { + return stub_->UpdateStoragePool(context, options, request); + }, + *current, request, __func__); +} + +future> +NetAppConnectionImpl::UpdateStoragePool( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to UpdateStoragePool", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::netapp::v1::StoragePool>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::netapp::v1::StoragePool>, + polling_policy(*current), __func__); +} + future> NetAppConnectionImpl::DeleteStoragePool( google::cloud::netapp::v1::DeleteStoragePoolRequest const& request) { @@ -227,6 +331,59 @@ NetAppConnectionImpl::DeleteStoragePool( polling_policy(*current), __func__); } +StatusOr +NetAppConnectionImpl::DeleteStoragePool( + ExperimentalTag, NoAwaitTag, + google::cloud::netapp::v1::DeleteStoragePoolRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteStoragePool(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::netapp::v1::DeleteStoragePoolRequest const& request) { + return stub_->DeleteStoragePool(context, options, request); + }, + *current, request, __func__); +} + +future> +NetAppConnectionImpl::DeleteStoragePool( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteStoragePool", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::netapp::v1::OperationMetadata>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::cloud::netapp::v1::OperationMetadata>, + polling_policy(*current), __func__); +} + StreamRange NetAppConnectionImpl::ListVolumes( google::cloud::netapp::v1::ListVolumesRequest request) { @@ -313,6 +470,56 @@ NetAppConnectionImpl::CreateVolume( polling_policy(*current), __func__); } +StatusOr NetAppConnectionImpl::CreateVolume( + ExperimentalTag, NoAwaitTag, + google::cloud::netapp::v1::CreateVolumeRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateVolume(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::netapp::v1::CreateVolumeRequest const& request) { + return stub_->CreateVolume(context, options, request); + }, + *current, request, __func__); +} + +future> +NetAppConnectionImpl::CreateVolume( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to CreateVolume", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::netapp::v1::Volume>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::netapp::v1::Volume>, + polling_policy(*current), __func__); +} + future> NetAppConnectionImpl::UpdateVolume( google::cloud::netapp::v1::UpdateVolumeRequest const& request) { @@ -352,6 +559,56 @@ NetAppConnectionImpl::UpdateVolume( polling_policy(*current), __func__); } +StatusOr NetAppConnectionImpl::UpdateVolume( + ExperimentalTag, NoAwaitTag, + google::cloud::netapp::v1::UpdateVolumeRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UpdateVolume(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::netapp::v1::UpdateVolumeRequest const& request) { + return stub_->UpdateVolume(context, options, request); + }, + *current, request, __func__); +} + +future> +NetAppConnectionImpl::UpdateVolume( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to UpdateVolume", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::netapp::v1::Volume>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::netapp::v1::Volume>, + polling_policy(*current), __func__); +} + future> NetAppConnectionImpl::DeleteVolume( google::cloud::netapp::v1::DeleteVolumeRequest const& request) { @@ -391,6 +648,57 @@ NetAppConnectionImpl::DeleteVolume( polling_policy(*current), __func__); } +StatusOr NetAppConnectionImpl::DeleteVolume( + ExperimentalTag, NoAwaitTag, + google::cloud::netapp::v1::DeleteVolumeRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteVolume(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::netapp::v1::DeleteVolumeRequest const& request) { + return stub_->DeleteVolume(context, options, request); + }, + *current, request, __func__); +} + +future> +NetAppConnectionImpl::DeleteVolume( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteVolume", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::netapp::v1::OperationMetadata>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::cloud::netapp::v1::OperationMetadata>, + polling_policy(*current), __func__); +} + future> NetAppConnectionImpl::RevertVolume( google::cloud::netapp::v1::RevertVolumeRequest const& request) { @@ -430,6 +738,56 @@ NetAppConnectionImpl::RevertVolume( polling_policy(*current), __func__); } +StatusOr NetAppConnectionImpl::RevertVolume( + ExperimentalTag, NoAwaitTag, + google::cloud::netapp::v1::RevertVolumeRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->RevertVolume(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::netapp::v1::RevertVolumeRequest const& request) { + return stub_->RevertVolume(context, options, request); + }, + *current, request, __func__); +} + +future> +NetAppConnectionImpl::RevertVolume( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to RevertVolume", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::netapp::v1::Volume>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::netapp::v1::Volume>, + polling_policy(*current), __func__); +} + StreamRange NetAppConnectionImpl::ListSnapshots( google::cloud::netapp::v1::ListSnapshotsRequest request) { @@ -516,15 +874,65 @@ NetAppConnectionImpl::CreateSnapshot( polling_policy(*current), __func__); } -future> -NetAppConnectionImpl::DeleteSnapshot( - google::cloud::netapp::v1::DeleteSnapshotRequest const& request) { +StatusOr NetAppConnectionImpl::CreateSnapshot( + ExperimentalTag, NoAwaitTag, + google::cloud::netapp::v1::CreateSnapshotRequest const& request) { auto current = google::cloud::internal::SaveCurrentOptions(); - auto request_copy = request; - auto const idempotent = - idempotency_policy(*current)->DeleteSnapshot(request_copy); - return google::cloud::internal::AsyncLongRunningOperation< - google::cloud::netapp::v1::OperationMetadata>( + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateSnapshot(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::netapp::v1::CreateSnapshotRequest const& request) { + return stub_->CreateSnapshot(context, options, request); + }, + *current, request, __func__); +} + +future> +NetAppConnectionImpl::CreateSnapshot( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to CreateSnapshot", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::netapp::v1::Snapshot>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::netapp::v1::Snapshot>, + polling_policy(*current), __func__); +} + +future> +NetAppConnectionImpl::DeleteSnapshot( + google::cloud::netapp::v1::DeleteSnapshotRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + auto request_copy = request; + auto const idempotent = + idempotency_policy(*current)->DeleteSnapshot(request_copy); + return google::cloud::internal::AsyncLongRunningOperation< + google::cloud::netapp::v1::OperationMetadata>( background_->cq(), current, std::move(request_copy), [stub = stub_]( google::cloud::CompletionQueue& cq, @@ -555,6 +963,57 @@ NetAppConnectionImpl::DeleteSnapshot( polling_policy(*current), __func__); } +StatusOr NetAppConnectionImpl::DeleteSnapshot( + ExperimentalTag, NoAwaitTag, + google::cloud::netapp::v1::DeleteSnapshotRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteSnapshot(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::netapp::v1::DeleteSnapshotRequest const& request) { + return stub_->DeleteSnapshot(context, options, request); + }, + *current, request, __func__); +} + +future> +NetAppConnectionImpl::DeleteSnapshot( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteSnapshot", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::netapp::v1::OperationMetadata>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::cloud::netapp::v1::OperationMetadata>, + polling_policy(*current), __func__); +} + future> NetAppConnectionImpl::UpdateSnapshot( google::cloud::netapp::v1::UpdateSnapshotRequest const& request) { @@ -594,6 +1053,56 @@ NetAppConnectionImpl::UpdateSnapshot( polling_policy(*current), __func__); } +StatusOr NetAppConnectionImpl::UpdateSnapshot( + ExperimentalTag, NoAwaitTag, + google::cloud::netapp::v1::UpdateSnapshotRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UpdateSnapshot(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::netapp::v1::UpdateSnapshotRequest const& request) { + return stub_->UpdateSnapshot(context, options, request); + }, + *current, request, __func__); +} + +future> +NetAppConnectionImpl::UpdateSnapshot( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to UpdateSnapshot", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::netapp::v1::Snapshot>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::netapp::v1::Snapshot>, + polling_policy(*current), __func__); +} + StreamRange NetAppConnectionImpl::ListActiveDirectories( google::cloud::netapp::v1::ListActiveDirectoriesRequest request) { @@ -685,6 +1194,59 @@ NetAppConnectionImpl::CreateActiveDirectory( polling_policy(*current), __func__); } +StatusOr +NetAppConnectionImpl::CreateActiveDirectory( + ExperimentalTag, NoAwaitTag, + google::cloud::netapp::v1::CreateActiveDirectoryRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateActiveDirectory(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::netapp::v1::CreateActiveDirectoryRequest const& + request) { + return stub_->CreateActiveDirectory(context, options, request); + }, + *current, request, __func__); +} + +future> +NetAppConnectionImpl::CreateActiveDirectory( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to CreateActiveDirectory", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::netapp::v1::ActiveDirectory>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::netapp::v1::ActiveDirectory>, + polling_policy(*current), __func__); +} + future> NetAppConnectionImpl::UpdateActiveDirectory( google::cloud::netapp::v1::UpdateActiveDirectoryRequest const& request) { @@ -725,6 +1287,59 @@ NetAppConnectionImpl::UpdateActiveDirectory( polling_policy(*current), __func__); } +StatusOr +NetAppConnectionImpl::UpdateActiveDirectory( + ExperimentalTag, NoAwaitTag, + google::cloud::netapp::v1::UpdateActiveDirectoryRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UpdateActiveDirectory(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::netapp::v1::UpdateActiveDirectoryRequest const& + request) { + return stub_->UpdateActiveDirectory(context, options, request); + }, + *current, request, __func__); +} + +future> +NetAppConnectionImpl::UpdateActiveDirectory( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to UpdateActiveDirectory", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::netapp::v1::ActiveDirectory>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::netapp::v1::ActiveDirectory>, + polling_policy(*current), __func__); +} + future> NetAppConnectionImpl::DeleteActiveDirectory( google::cloud::netapp::v1::DeleteActiveDirectoryRequest const& request) { @@ -765,6 +1380,59 @@ NetAppConnectionImpl::DeleteActiveDirectory( polling_policy(*current), __func__); } +StatusOr +NetAppConnectionImpl::DeleteActiveDirectory( + ExperimentalTag, NoAwaitTag, + google::cloud::netapp::v1::DeleteActiveDirectoryRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteActiveDirectory(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::netapp::v1::DeleteActiveDirectoryRequest const& + request) { + return stub_->DeleteActiveDirectory(context, options, request); + }, + *current, request, __func__); +} + +future> +NetAppConnectionImpl::DeleteActiveDirectory( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteActiveDirectory", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::netapp::v1::OperationMetadata>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::cloud::netapp::v1::OperationMetadata>, + polling_policy(*current), __func__); +} + StreamRange NetAppConnectionImpl::ListKmsConfigs( google::cloud::netapp::v1::ListKmsConfigsRequest request) { @@ -838,6 +1506,56 @@ NetAppConnectionImpl::CreateKmsConfig( polling_policy(*current), __func__); } +StatusOr NetAppConnectionImpl::CreateKmsConfig( + ExperimentalTag, NoAwaitTag, + google::cloud::netapp::v1::CreateKmsConfigRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateKmsConfig(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::netapp::v1::CreateKmsConfigRequest const& request) { + return stub_->CreateKmsConfig(context, options, request); + }, + *current, request, __func__); +} + +future> +NetAppConnectionImpl::CreateKmsConfig( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to CreateKmsConfig", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::netapp::v1::KmsConfig>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::netapp::v1::KmsConfig>, + polling_policy(*current), __func__); +} + StatusOr NetAppConnectionImpl::GetKmsConfig( google::cloud::netapp::v1::GetKmsConfigRequest const& request) { @@ -891,14 +1609,64 @@ NetAppConnectionImpl::UpdateKmsConfig( polling_policy(*current), __func__); } -future> -NetAppConnectionImpl::EncryptVolumes( - google::cloud::netapp::v1::EncryptVolumesRequest const& request) { +StatusOr NetAppConnectionImpl::UpdateKmsConfig( + ExperimentalTag, NoAwaitTag, + google::cloud::netapp::v1::UpdateKmsConfigRequest const& request) { auto current = google::cloud::internal::SaveCurrentOptions(); - auto request_copy = request; - auto const idempotent = - idempotency_policy(*current)->EncryptVolumes(request_copy); - return google::cloud::internal::AsyncLongRunningOperation< + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UpdateKmsConfig(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::netapp::v1::UpdateKmsConfigRequest const& request) { + return stub_->UpdateKmsConfig(context, options, request); + }, + *current, request, __func__); +} + +future> +NetAppConnectionImpl::UpdateKmsConfig( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to UpdateKmsConfig", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::netapp::v1::KmsConfig>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::netapp::v1::KmsConfig>, + polling_policy(*current), __func__); +} + +future> +NetAppConnectionImpl::EncryptVolumes( + google::cloud::netapp::v1::EncryptVolumesRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + auto request_copy = request; + auto const idempotent = + idempotency_policy(*current)->EncryptVolumes(request_copy); + return google::cloud::internal::AsyncLongRunningOperation< google::cloud::netapp::v1::KmsConfig>( background_->cq(), current, std::move(request_copy), [stub = stub_]( @@ -930,6 +1698,56 @@ NetAppConnectionImpl::EncryptVolumes( polling_policy(*current), __func__); } +StatusOr NetAppConnectionImpl::EncryptVolumes( + ExperimentalTag, NoAwaitTag, + google::cloud::netapp::v1::EncryptVolumesRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->EncryptVolumes(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::netapp::v1::EncryptVolumesRequest const& request) { + return stub_->EncryptVolumes(context, options, request); + }, + *current, request, __func__); +} + +future> +NetAppConnectionImpl::EncryptVolumes( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to EncryptVolumes", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::netapp::v1::KmsConfig>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::netapp::v1::KmsConfig>, + polling_policy(*current), __func__); +} + StatusOr NetAppConnectionImpl::VerifyKmsConfig( google::cloud::netapp::v1::VerifyKmsConfigRequest const& request) { @@ -983,6 +1801,57 @@ NetAppConnectionImpl::DeleteKmsConfig( polling_policy(*current), __func__); } +StatusOr NetAppConnectionImpl::DeleteKmsConfig( + ExperimentalTag, NoAwaitTag, + google::cloud::netapp::v1::DeleteKmsConfigRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteKmsConfig(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::netapp::v1::DeleteKmsConfigRequest const& request) { + return stub_->DeleteKmsConfig(context, options, request); + }, + *current, request, __func__); +} + +future> +NetAppConnectionImpl::DeleteKmsConfig( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteKmsConfig", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::netapp::v1::OperationMetadata>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::cloud::netapp::v1::OperationMetadata>, + polling_policy(*current), __func__); +} + StreamRange NetAppConnectionImpl::ListReplications( google::cloud::netapp::v1::ListReplicationsRequest request) { @@ -1070,6 +1939,58 @@ NetAppConnectionImpl::CreateReplication( polling_policy(*current), __func__); } +StatusOr +NetAppConnectionImpl::CreateReplication( + ExperimentalTag, NoAwaitTag, + google::cloud::netapp::v1::CreateReplicationRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateReplication(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::netapp::v1::CreateReplicationRequest const& request) { + return stub_->CreateReplication(context, options, request); + }, + *current, request, __func__); +} + +future> +NetAppConnectionImpl::CreateReplication( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to CreateReplication", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::netapp::v1::Replication>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::netapp::v1::Replication>, + polling_policy(*current), __func__); +} + future> NetAppConnectionImpl::DeleteReplication( google::cloud::netapp::v1::DeleteReplicationRequest const& request) { @@ -1109,6 +2030,59 @@ NetAppConnectionImpl::DeleteReplication( polling_policy(*current), __func__); } +StatusOr +NetAppConnectionImpl::DeleteReplication( + ExperimentalTag, NoAwaitTag, + google::cloud::netapp::v1::DeleteReplicationRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteReplication(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::netapp::v1::DeleteReplicationRequest const& request) { + return stub_->DeleteReplication(context, options, request); + }, + *current, request, __func__); +} + +future> +NetAppConnectionImpl::DeleteReplication( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteReplication", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::netapp::v1::OperationMetadata>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::cloud::netapp::v1::OperationMetadata>, + polling_policy(*current), __func__); +} + future> NetAppConnectionImpl::UpdateReplication( google::cloud::netapp::v1::UpdateReplicationRequest const& request) { @@ -1148,6 +2122,58 @@ NetAppConnectionImpl::UpdateReplication( polling_policy(*current), __func__); } +StatusOr +NetAppConnectionImpl::UpdateReplication( + ExperimentalTag, NoAwaitTag, + google::cloud::netapp::v1::UpdateReplicationRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UpdateReplication(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::netapp::v1::UpdateReplicationRequest const& request) { + return stub_->UpdateReplication(context, options, request); + }, + *current, request, __func__); +} + +future> +NetAppConnectionImpl::UpdateReplication( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to UpdateReplication", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::netapp::v1::Replication>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::netapp::v1::Replication>, + polling_policy(*current), __func__); +} + future> NetAppConnectionImpl::StopReplication( google::cloud::netapp::v1::StopReplicationRequest const& request) { @@ -1187,6 +2213,56 @@ NetAppConnectionImpl::StopReplication( polling_policy(*current), __func__); } +StatusOr NetAppConnectionImpl::StopReplication( + ExperimentalTag, NoAwaitTag, + google::cloud::netapp::v1::StopReplicationRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->StopReplication(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::netapp::v1::StopReplicationRequest const& request) { + return stub_->StopReplication(context, options, request); + }, + *current, request, __func__); +} + +future> +NetAppConnectionImpl::StopReplication( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to StopReplication", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::netapp::v1::Replication>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::netapp::v1::Replication>, + polling_policy(*current), __func__); +} + future> NetAppConnectionImpl::ResumeReplication( google::cloud::netapp::v1::ResumeReplicationRequest const& request) { @@ -1226,6 +2302,58 @@ NetAppConnectionImpl::ResumeReplication( polling_policy(*current), __func__); } +StatusOr +NetAppConnectionImpl::ResumeReplication( + ExperimentalTag, NoAwaitTag, + google::cloud::netapp::v1::ResumeReplicationRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->ResumeReplication(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::netapp::v1::ResumeReplicationRequest const& request) { + return stub_->ResumeReplication(context, options, request); + }, + *current, request, __func__); +} + +future> +NetAppConnectionImpl::ResumeReplication( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to ResumeReplication", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::netapp::v1::Replication>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::netapp::v1::Replication>, + polling_policy(*current), __func__); +} + future> NetAppConnectionImpl::ReverseReplicationDirection( google::cloud::netapp::v1::ReverseReplicationDirectionRequest const& @@ -1267,6 +2395,60 @@ NetAppConnectionImpl::ReverseReplicationDirection( polling_policy(*current), __func__); } +StatusOr +NetAppConnectionImpl::ReverseReplicationDirection( + ExperimentalTag, NoAwaitTag, + google::cloud::netapp::v1::ReverseReplicationDirectionRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->ReverseReplicationDirection(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::netapp::v1::ReverseReplicationDirectionRequest const& + request) { + return stub_->ReverseReplicationDirection(context, options, request); + }, + *current, request, __func__); +} + +future> +NetAppConnectionImpl::ReverseReplicationDirection( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to ReverseReplicationDirection", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::netapp::v1::Replication>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::netapp::v1::Replication>, + polling_policy(*current), __func__); +} + future> NetAppConnectionImpl::CreateBackupVault( google::cloud::netapp::v1::CreateBackupVaultRequest const& request) { @@ -1306,6 +2488,58 @@ NetAppConnectionImpl::CreateBackupVault( polling_policy(*current), __func__); } +StatusOr +NetAppConnectionImpl::CreateBackupVault( + ExperimentalTag, NoAwaitTag, + google::cloud::netapp::v1::CreateBackupVaultRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateBackupVault(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::netapp::v1::CreateBackupVaultRequest const& request) { + return stub_->CreateBackupVault(context, options, request); + }, + *current, request, __func__); +} + +future> +NetAppConnectionImpl::CreateBackupVault( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to CreateBackupVault", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::netapp::v1::BackupVault>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::netapp::v1::BackupVault>, + polling_policy(*current), __func__); +} + StatusOr NetAppConnectionImpl::GetBackupVault( google::cloud::netapp::v1::GetBackupVaultRequest const& request) { @@ -1389,7 +2623,59 @@ NetAppConnectionImpl::UpdateBackupVault( }, &google::cloud::internal::ExtractLongRunningResultResponse< google::cloud::netapp::v1::BackupVault>, - retry_policy(*current), backoff_policy(*current), idempotent, + retry_policy(*current), backoff_policy(*current), idempotent, + polling_policy(*current), __func__); +} + +StatusOr +NetAppConnectionImpl::UpdateBackupVault( + ExperimentalTag, NoAwaitTag, + google::cloud::netapp::v1::UpdateBackupVaultRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UpdateBackupVault(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::netapp::v1::UpdateBackupVaultRequest const& request) { + return stub_->UpdateBackupVault(context, options, request); + }, + *current, request, __func__); +} + +future> +NetAppConnectionImpl::UpdateBackupVault( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to UpdateBackupVault", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::netapp::v1::BackupVault>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::netapp::v1::BackupVault>, polling_policy(*current), __func__); } @@ -1432,6 +2718,59 @@ NetAppConnectionImpl::DeleteBackupVault( polling_policy(*current), __func__); } +StatusOr +NetAppConnectionImpl::DeleteBackupVault( + ExperimentalTag, NoAwaitTag, + google::cloud::netapp::v1::DeleteBackupVaultRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteBackupVault(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::netapp::v1::DeleteBackupVaultRequest const& request) { + return stub_->DeleteBackupVault(context, options, request); + }, + *current, request, __func__); +} + +future> +NetAppConnectionImpl::DeleteBackupVault( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteBackupVault", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::netapp::v1::OperationMetadata>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::cloud::netapp::v1::OperationMetadata>, + polling_policy(*current), __func__); +} + future> NetAppConnectionImpl::CreateBackup( google::cloud::netapp::v1::CreateBackupRequest const& request) { @@ -1471,6 +2810,56 @@ NetAppConnectionImpl::CreateBackup( polling_policy(*current), __func__); } +StatusOr NetAppConnectionImpl::CreateBackup( + ExperimentalTag, NoAwaitTag, + google::cloud::netapp::v1::CreateBackupRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateBackup(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::netapp::v1::CreateBackupRequest const& request) { + return stub_->CreateBackup(context, options, request); + }, + *current, request, __func__); +} + +future> +NetAppConnectionImpl::CreateBackup( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to CreateBackup", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::netapp::v1::Backup>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::netapp::v1::Backup>, + polling_policy(*current), __func__); +} + StatusOr NetAppConnectionImpl::GetBackup( google::cloud::netapp::v1::GetBackupRequest const& request) { auto current = google::cloud::internal::SaveCurrentOptions(); @@ -1557,6 +2946,57 @@ NetAppConnectionImpl::DeleteBackup( polling_policy(*current), __func__); } +StatusOr NetAppConnectionImpl::DeleteBackup( + ExperimentalTag, NoAwaitTag, + google::cloud::netapp::v1::DeleteBackupRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteBackup(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::netapp::v1::DeleteBackupRequest const& request) { + return stub_->DeleteBackup(context, options, request); + }, + *current, request, __func__); +} + +future> +NetAppConnectionImpl::DeleteBackup( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteBackup", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::netapp::v1::OperationMetadata>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::cloud::netapp::v1::OperationMetadata>, + polling_policy(*current), __func__); +} + future> NetAppConnectionImpl::UpdateBackup( google::cloud::netapp::v1::UpdateBackupRequest const& request) { @@ -1596,6 +3036,56 @@ NetAppConnectionImpl::UpdateBackup( polling_policy(*current), __func__); } +StatusOr NetAppConnectionImpl::UpdateBackup( + ExperimentalTag, NoAwaitTag, + google::cloud::netapp::v1::UpdateBackupRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UpdateBackup(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::netapp::v1::UpdateBackupRequest const& request) { + return stub_->UpdateBackup(context, options, request); + }, + *current, request, __func__); +} + +future> +NetAppConnectionImpl::UpdateBackup( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to UpdateBackup", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::netapp::v1::Backup>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::netapp::v1::Backup>, + polling_policy(*current), __func__); +} + future> NetAppConnectionImpl::CreateBackupPolicy( google::cloud::netapp::v1::CreateBackupPolicyRequest const& request) { @@ -1635,6 +3125,58 @@ NetAppConnectionImpl::CreateBackupPolicy( polling_policy(*current), __func__); } +StatusOr +NetAppConnectionImpl::CreateBackupPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::netapp::v1::CreateBackupPolicyRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateBackupPolicy(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::netapp::v1::CreateBackupPolicyRequest const& request) { + return stub_->CreateBackupPolicy(context, options, request); + }, + *current, request, __func__); +} + +future> +NetAppConnectionImpl::CreateBackupPolicy( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to CreateBackupPolicy", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::netapp::v1::BackupPolicy>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::netapp::v1::BackupPolicy>, + polling_policy(*current), __func__); +} + StatusOr NetAppConnectionImpl::GetBackupPolicy( google::cloud::netapp::v1::GetBackupPolicyRequest const& request) { @@ -1722,6 +3264,58 @@ NetAppConnectionImpl::UpdateBackupPolicy( polling_policy(*current), __func__); } +StatusOr +NetAppConnectionImpl::UpdateBackupPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::netapp::v1::UpdateBackupPolicyRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UpdateBackupPolicy(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::netapp::v1::UpdateBackupPolicyRequest const& request) { + return stub_->UpdateBackupPolicy(context, options, request); + }, + *current, request, __func__); +} + +future> +NetAppConnectionImpl::UpdateBackupPolicy( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to UpdateBackupPolicy", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::netapp::v1::BackupPolicy>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::netapp::v1::BackupPolicy>, + polling_policy(*current), __func__); +} + future> NetAppConnectionImpl::DeleteBackupPolicy( google::cloud::netapp::v1::DeleteBackupPolicyRequest const& request) { @@ -1761,6 +3355,59 @@ NetAppConnectionImpl::DeleteBackupPolicy( polling_policy(*current), __func__); } +StatusOr +NetAppConnectionImpl::DeleteBackupPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::netapp::v1::DeleteBackupPolicyRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteBackupPolicy(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::netapp::v1::DeleteBackupPolicyRequest const& request) { + return stub_->DeleteBackupPolicy(context, options, request); + }, + *current, request, __func__); +} + +future> +NetAppConnectionImpl::DeleteBackupPolicy( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteBackupPolicy", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::netapp::v1::OperationMetadata>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::cloud::netapp::v1::OperationMetadata>, + polling_policy(*current), __func__); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace netapp_v1_internal } // namespace cloud diff --git a/google/cloud/netapp/v1/internal/net_app_connection_impl.h b/google/cloud/netapp/v1/internal/net_app_connection_impl.h index 93c2fa7b3dec1..4d2f74e5d8b1d 100644 --- a/google/cloud/netapp/v1/internal/net_app_connection_impl.h +++ b/google/cloud/netapp/v1/internal/net_app_connection_impl.h @@ -57,6 +57,15 @@ class NetAppConnectionImpl : public netapp_v1::NetAppConnection { google::cloud::netapp::v1::CreateStoragePoolRequest const& request) override; + StatusOr CreateStoragePool( + ExperimentalTag, NoAwaitTag, + google::cloud::netapp::v1::CreateStoragePoolRequest const& request) + override; + + future> CreateStoragePool( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetStoragePool( google::cloud::netapp::v1::GetStoragePoolRequest const& request) override; @@ -64,10 +73,28 @@ class NetAppConnectionImpl : public netapp_v1::NetAppConnection { google::cloud::netapp::v1::UpdateStoragePoolRequest const& request) override; + StatusOr UpdateStoragePool( + ExperimentalTag, NoAwaitTag, + google::cloud::netapp::v1::UpdateStoragePoolRequest const& request) + override; + + future> UpdateStoragePool( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteStoragePool(google::cloud::netapp::v1::DeleteStoragePoolRequest const& request) override; + StatusOr DeleteStoragePool( + ExperimentalTag, NoAwaitTag, + google::cloud::netapp::v1::DeleteStoragePoolRequest const& request) + override; + + future> + DeleteStoragePool(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListVolumes( google::cloud::netapp::v1::ListVolumesRequest request) override; @@ -77,15 +104,47 @@ class NetAppConnectionImpl : public netapp_v1::NetAppConnection { future> CreateVolume( google::cloud::netapp::v1::CreateVolumeRequest const& request) override; + StatusOr CreateVolume( + ExperimentalTag, NoAwaitTag, + google::cloud::netapp::v1::CreateVolumeRequest const& request) override; + + future> CreateVolume( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateVolume( google::cloud::netapp::v1::UpdateVolumeRequest const& request) override; + StatusOr UpdateVolume( + ExperimentalTag, NoAwaitTag, + google::cloud::netapp::v1::UpdateVolumeRequest const& request) override; + + future> UpdateVolume( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteVolume( google::cloud::netapp::v1::DeleteVolumeRequest const& request) override; + StatusOr DeleteVolume( + ExperimentalTag, NoAwaitTag, + google::cloud::netapp::v1::DeleteVolumeRequest const& request) override; + + future> DeleteVolume( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> RevertVolume( google::cloud::netapp::v1::RevertVolumeRequest const& request) override; + StatusOr RevertVolume( + ExperimentalTag, NoAwaitTag, + google::cloud::netapp::v1::RevertVolumeRequest const& request) override; + + future> RevertVolume( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListSnapshots( google::cloud::netapp::v1::ListSnapshotsRequest request) override; @@ -95,12 +154,36 @@ class NetAppConnectionImpl : public netapp_v1::NetAppConnection { future> CreateSnapshot( google::cloud::netapp::v1::CreateSnapshotRequest const& request) override; + StatusOr CreateSnapshot( + ExperimentalTag, NoAwaitTag, + google::cloud::netapp::v1::CreateSnapshotRequest const& request) override; + + future> CreateSnapshot( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteSnapshot( google::cloud::netapp::v1::DeleteSnapshotRequest const& request) override; + StatusOr DeleteSnapshot( + ExperimentalTag, NoAwaitTag, + google::cloud::netapp::v1::DeleteSnapshotRequest const& request) override; + + future> DeleteSnapshot( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateSnapshot( google::cloud::netapp::v1::UpdateSnapshotRequest const& request) override; + StatusOr UpdateSnapshot( + ExperimentalTag, NoAwaitTag, + google::cloud::netapp::v1::UpdateSnapshotRequest const& request) override; + + future> UpdateSnapshot( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListActiveDirectories( google::cloud::netapp::v1::ListActiveDirectoriesRequest request) override; @@ -113,16 +196,46 @@ class NetAppConnectionImpl : public netapp_v1::NetAppConnection { google::cloud::netapp::v1::CreateActiveDirectoryRequest const& request) override; + StatusOr CreateActiveDirectory( + ExperimentalTag, NoAwaitTag, + google::cloud::netapp::v1::CreateActiveDirectoryRequest const& request) + override; + + future> + CreateActiveDirectory( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateActiveDirectory( google::cloud::netapp::v1::UpdateActiveDirectoryRequest const& request) override; + StatusOr UpdateActiveDirectory( + ExperimentalTag, NoAwaitTag, + google::cloud::netapp::v1::UpdateActiveDirectoryRequest const& request) + override; + + future> + UpdateActiveDirectory( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteActiveDirectory( google::cloud::netapp::v1::DeleteActiveDirectoryRequest const& request) override; + StatusOr DeleteActiveDirectory( + ExperimentalTag, NoAwaitTag, + google::cloud::netapp::v1::DeleteActiveDirectoryRequest const& request) + override; + + future> + DeleteActiveDirectory( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListKmsConfigs( google::cloud::netapp::v1::ListKmsConfigsRequest request) override; @@ -130,6 +243,15 @@ class NetAppConnectionImpl : public netapp_v1::NetAppConnection { google::cloud::netapp::v1::CreateKmsConfigRequest const& request) override; + StatusOr CreateKmsConfig( + ExperimentalTag, NoAwaitTag, + google::cloud::netapp::v1::CreateKmsConfigRequest const& request) + override; + + future> CreateKmsConfig( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetKmsConfig( google::cloud::netapp::v1::GetKmsConfigRequest const& request) override; @@ -137,9 +259,26 @@ class NetAppConnectionImpl : public netapp_v1::NetAppConnection { google::cloud::netapp::v1::UpdateKmsConfigRequest const& request) override; + StatusOr UpdateKmsConfig( + ExperimentalTag, NoAwaitTag, + google::cloud::netapp::v1::UpdateKmsConfigRequest const& request) + override; + + future> UpdateKmsConfig( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> EncryptVolumes( google::cloud::netapp::v1::EncryptVolumesRequest const& request) override; + StatusOr EncryptVolumes( + ExperimentalTag, NoAwaitTag, + google::cloud::netapp::v1::EncryptVolumesRequest const& request) override; + + future> EncryptVolumes( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr VerifyKmsConfig( google::cloud::netapp::v1::VerifyKmsConfigRequest const& request) override; @@ -148,6 +287,15 @@ class NetAppConnectionImpl : public netapp_v1::NetAppConnection { DeleteKmsConfig(google::cloud::netapp::v1::DeleteKmsConfigRequest const& request) override; + StatusOr DeleteKmsConfig( + ExperimentalTag, NoAwaitTag, + google::cloud::netapp::v1::DeleteKmsConfigRequest const& request) + override; + + future> + DeleteKmsConfig(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListReplications( google::cloud::netapp::v1::ListReplicationsRequest request) override; @@ -158,31 +306,95 @@ class NetAppConnectionImpl : public netapp_v1::NetAppConnection { google::cloud::netapp::v1::CreateReplicationRequest const& request) override; + StatusOr CreateReplication( + ExperimentalTag, NoAwaitTag, + google::cloud::netapp::v1::CreateReplicationRequest const& request) + override; + + future> CreateReplication( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteReplication(google::cloud::netapp::v1::DeleteReplicationRequest const& request) override; + StatusOr DeleteReplication( + ExperimentalTag, NoAwaitTag, + google::cloud::netapp::v1::DeleteReplicationRequest const& request) + override; + + future> + DeleteReplication(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateReplication( google::cloud::netapp::v1::UpdateReplicationRequest const& request) override; + StatusOr UpdateReplication( + ExperimentalTag, NoAwaitTag, + google::cloud::netapp::v1::UpdateReplicationRequest const& request) + override; + + future> UpdateReplication( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> StopReplication( google::cloud::netapp::v1::StopReplicationRequest const& request) override; + StatusOr StopReplication( + ExperimentalTag, NoAwaitTag, + google::cloud::netapp::v1::StopReplicationRequest const& request) + override; + + future> StopReplication( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ResumeReplication( google::cloud::netapp::v1::ResumeReplicationRequest const& request) override; + StatusOr ResumeReplication( + ExperimentalTag, NoAwaitTag, + google::cloud::netapp::v1::ResumeReplicationRequest const& request) + override; + + future> ResumeReplication( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ReverseReplicationDirection( google::cloud::netapp::v1::ReverseReplicationDirectionRequest const& request) override; + StatusOr ReverseReplicationDirection( + ExperimentalTag, NoAwaitTag, + google::cloud::netapp::v1::ReverseReplicationDirectionRequest const& + request) override; + + future> + ReverseReplicationDirection( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> CreateBackupVault( google::cloud::netapp::v1::CreateBackupVaultRequest const& request) override; + StatusOr CreateBackupVault( + ExperimentalTag, NoAwaitTag, + google::cloud::netapp::v1::CreateBackupVaultRequest const& request) + override; + + future> CreateBackupVault( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetBackupVault( google::cloud::netapp::v1::GetBackupVaultRequest const& request) override; @@ -193,13 +405,39 @@ class NetAppConnectionImpl : public netapp_v1::NetAppConnection { google::cloud::netapp::v1::UpdateBackupVaultRequest const& request) override; + StatusOr UpdateBackupVault( + ExperimentalTag, NoAwaitTag, + google::cloud::netapp::v1::UpdateBackupVaultRequest const& request) + override; + + future> UpdateBackupVault( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteBackupVault(google::cloud::netapp::v1::DeleteBackupVaultRequest const& request) override; + StatusOr DeleteBackupVault( + ExperimentalTag, NoAwaitTag, + google::cloud::netapp::v1::DeleteBackupVaultRequest const& request) + override; + + future> + DeleteBackupVault(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> CreateBackup( google::cloud::netapp::v1::CreateBackupRequest const& request) override; + StatusOr CreateBackup( + ExperimentalTag, NoAwaitTag, + google::cloud::netapp::v1::CreateBackupRequest const& request) override; + + future> CreateBackup( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetBackup( google::cloud::netapp::v1::GetBackupRequest const& request) override; @@ -209,13 +447,38 @@ class NetAppConnectionImpl : public netapp_v1::NetAppConnection { future> DeleteBackup( google::cloud::netapp::v1::DeleteBackupRequest const& request) override; + StatusOr DeleteBackup( + ExperimentalTag, NoAwaitTag, + google::cloud::netapp::v1::DeleteBackupRequest const& request) override; + + future> DeleteBackup( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateBackup( google::cloud::netapp::v1::UpdateBackupRequest const& request) override; + StatusOr UpdateBackup( + ExperimentalTag, NoAwaitTag, + google::cloud::netapp::v1::UpdateBackupRequest const& request) override; + + future> UpdateBackup( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> CreateBackupPolicy( google::cloud::netapp::v1::CreateBackupPolicyRequest const& request) override; + StatusOr CreateBackupPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::netapp::v1::CreateBackupPolicyRequest const& request) + override; + + future> CreateBackupPolicy( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetBackupPolicy( google::cloud::netapp::v1::GetBackupPolicyRequest const& request) override; @@ -227,10 +490,28 @@ class NetAppConnectionImpl : public netapp_v1::NetAppConnection { google::cloud::netapp::v1::UpdateBackupPolicyRequest const& request) override; + StatusOr UpdateBackupPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::netapp::v1::UpdateBackupPolicyRequest const& request) + override; + + future> UpdateBackupPolicy( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteBackupPolicy(google::cloud::netapp::v1::DeleteBackupPolicyRequest const& request) override; + StatusOr DeleteBackupPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::netapp::v1::DeleteBackupPolicyRequest const& request) + override; + + future> + DeleteBackupPolicy(ExperimentalTag, + google::longrunning::Operation const& operation) override; + private: std::unique_ptr background_; std::shared_ptr stub_; diff --git a/google/cloud/netapp/v1/internal/net_app_tracing_connection.cc b/google/cloud/netapp/v1/internal/net_app_tracing_connection.cc index 5a27dbd7c9679..9de0735b410b4 100644 --- a/google/cloud/netapp/v1/internal/net_app_tracing_connection.cc +++ b/google/cloud/netapp/v1/internal/net_app_tracing_connection.cc @@ -53,6 +53,28 @@ NetAppTracingConnection::CreateStoragePool( return internal::EndSpan(std::move(span), child_->CreateStoragePool(request)); } +StatusOr +NetAppTracingConnection::CreateStoragePool( + ExperimentalTag, NoAwaitTag, + google::cloud::netapp::v1::CreateStoragePoolRequest const& request) { + auto span = + internal::MakeSpan("netapp_v1::NetAppConnection::CreateStoragePool"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->CreateStoragePool(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +NetAppTracingConnection::CreateStoragePool( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = + internal::MakeSpan("netapp_v1::NetAppConnection::CreateStoragePool"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->CreateStoragePool(ExperimentalTag{}, operation)); +} + StatusOr NetAppTracingConnection::GetStoragePool( google::cloud::netapp::v1::GetStoragePoolRequest const& request) { @@ -70,6 +92,28 @@ NetAppTracingConnection::UpdateStoragePool( return internal::EndSpan(std::move(span), child_->UpdateStoragePool(request)); } +StatusOr +NetAppTracingConnection::UpdateStoragePool( + ExperimentalTag, NoAwaitTag, + google::cloud::netapp::v1::UpdateStoragePoolRequest const& request) { + auto span = + internal::MakeSpan("netapp_v1::NetAppConnection::UpdateStoragePool"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->UpdateStoragePool(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +NetAppTracingConnection::UpdateStoragePool( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = + internal::MakeSpan("netapp_v1::NetAppConnection::UpdateStoragePool"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->UpdateStoragePool(ExperimentalTag{}, operation)); +} + future> NetAppTracingConnection::DeleteStoragePool( google::cloud::netapp::v1::DeleteStoragePoolRequest const& request) { @@ -79,6 +123,28 @@ NetAppTracingConnection::DeleteStoragePool( return internal::EndSpan(std::move(span), child_->DeleteStoragePool(request)); } +StatusOr +NetAppTracingConnection::DeleteStoragePool( + ExperimentalTag, NoAwaitTag, + google::cloud::netapp::v1::DeleteStoragePoolRequest const& request) { + auto span = + internal::MakeSpan("netapp_v1::NetAppConnection::DeleteStoragePool"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->DeleteStoragePool(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +NetAppTracingConnection::DeleteStoragePool( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = + internal::MakeSpan("netapp_v1::NetAppConnection::DeleteStoragePool"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->DeleteStoragePool(ExperimentalTag{}, operation)); +} + StreamRange NetAppTracingConnection::ListVolumes( google::cloud::netapp::v1::ListVolumesRequest request) { @@ -104,6 +170,24 @@ NetAppTracingConnection::CreateVolume( return internal::EndSpan(std::move(span), child_->CreateVolume(request)); } +StatusOr NetAppTracingConnection::CreateVolume( + ExperimentalTag, NoAwaitTag, + google::cloud::netapp::v1::CreateVolumeRequest const& request) { + auto span = internal::MakeSpan("netapp_v1::NetAppConnection::CreateVolume"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->CreateVolume(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +NetAppTracingConnection::CreateVolume( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan("netapp_v1::NetAppConnection::CreateVolume"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->CreateVolume(ExperimentalTag{}, operation)); +} + future> NetAppTracingConnection::UpdateVolume( google::cloud::netapp::v1::UpdateVolumeRequest const& request) { @@ -112,6 +196,24 @@ NetAppTracingConnection::UpdateVolume( return internal::EndSpan(std::move(span), child_->UpdateVolume(request)); } +StatusOr NetAppTracingConnection::UpdateVolume( + ExperimentalTag, NoAwaitTag, + google::cloud::netapp::v1::UpdateVolumeRequest const& request) { + auto span = internal::MakeSpan("netapp_v1::NetAppConnection::UpdateVolume"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->UpdateVolume(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +NetAppTracingConnection::UpdateVolume( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan("netapp_v1::NetAppConnection::UpdateVolume"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->UpdateVolume(ExperimentalTag{}, operation)); +} + future> NetAppTracingConnection::DeleteVolume( google::cloud::netapp::v1::DeleteVolumeRequest const& request) { @@ -120,6 +222,24 @@ NetAppTracingConnection::DeleteVolume( return internal::EndSpan(std::move(span), child_->DeleteVolume(request)); } +StatusOr NetAppTracingConnection::DeleteVolume( + ExperimentalTag, NoAwaitTag, + google::cloud::netapp::v1::DeleteVolumeRequest const& request) { + auto span = internal::MakeSpan("netapp_v1::NetAppConnection::DeleteVolume"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->DeleteVolume(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +NetAppTracingConnection::DeleteVolume( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan("netapp_v1::NetAppConnection::DeleteVolume"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->DeleteVolume(ExperimentalTag{}, operation)); +} + future> NetAppTracingConnection::RevertVolume( google::cloud::netapp::v1::RevertVolumeRequest const& request) { @@ -128,6 +248,24 @@ NetAppTracingConnection::RevertVolume( return internal::EndSpan(std::move(span), child_->RevertVolume(request)); } +StatusOr NetAppTracingConnection::RevertVolume( + ExperimentalTag, NoAwaitTag, + google::cloud::netapp::v1::RevertVolumeRequest const& request) { + auto span = internal::MakeSpan("netapp_v1::NetAppConnection::RevertVolume"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->RevertVolume(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +NetAppTracingConnection::RevertVolume( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan("netapp_v1::NetAppConnection::RevertVolume"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->RevertVolume(ExperimentalTag{}, operation)); +} + StreamRange NetAppTracingConnection::ListSnapshots( google::cloud::netapp::v1::ListSnapshotsRequest request) { @@ -154,6 +292,25 @@ NetAppTracingConnection::CreateSnapshot( return internal::EndSpan(std::move(span), child_->CreateSnapshot(request)); } +StatusOr +NetAppTracingConnection::CreateSnapshot( + ExperimentalTag, NoAwaitTag, + google::cloud::netapp::v1::CreateSnapshotRequest const& request) { + auto span = internal::MakeSpan("netapp_v1::NetAppConnection::CreateSnapshot"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->CreateSnapshot(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +NetAppTracingConnection::CreateSnapshot( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan("netapp_v1::NetAppConnection::CreateSnapshot"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->CreateSnapshot(ExperimentalTag{}, operation)); +} + future> NetAppTracingConnection::DeleteSnapshot( google::cloud::netapp::v1::DeleteSnapshotRequest const& request) { @@ -162,6 +319,25 @@ NetAppTracingConnection::DeleteSnapshot( return internal::EndSpan(std::move(span), child_->DeleteSnapshot(request)); } +StatusOr +NetAppTracingConnection::DeleteSnapshot( + ExperimentalTag, NoAwaitTag, + google::cloud::netapp::v1::DeleteSnapshotRequest const& request) { + auto span = internal::MakeSpan("netapp_v1::NetAppConnection::DeleteSnapshot"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->DeleteSnapshot(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +NetAppTracingConnection::DeleteSnapshot( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan("netapp_v1::NetAppConnection::DeleteSnapshot"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->DeleteSnapshot(ExperimentalTag{}, operation)); +} + future> NetAppTracingConnection::UpdateSnapshot( google::cloud::netapp::v1::UpdateSnapshotRequest const& request) { @@ -170,6 +346,25 @@ NetAppTracingConnection::UpdateSnapshot( return internal::EndSpan(std::move(span), child_->UpdateSnapshot(request)); } +StatusOr +NetAppTracingConnection::UpdateSnapshot( + ExperimentalTag, NoAwaitTag, + google::cloud::netapp::v1::UpdateSnapshotRequest const& request) { + auto span = internal::MakeSpan("netapp_v1::NetAppConnection::UpdateSnapshot"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->UpdateSnapshot(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +NetAppTracingConnection::UpdateSnapshot( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan("netapp_v1::NetAppConnection::UpdateSnapshot"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->UpdateSnapshot(ExperimentalTag{}, operation)); +} + StreamRange NetAppTracingConnection::ListActiveDirectories( google::cloud::netapp::v1::ListActiveDirectoriesRequest request) { @@ -201,6 +396,28 @@ NetAppTracingConnection::CreateActiveDirectory( child_->CreateActiveDirectory(request)); } +StatusOr +NetAppTracingConnection::CreateActiveDirectory( + ExperimentalTag, NoAwaitTag, + google::cloud::netapp::v1::CreateActiveDirectoryRequest const& request) { + auto span = + internal::MakeSpan("netapp_v1::NetAppConnection::CreateActiveDirectory"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->CreateActiveDirectory(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +NetAppTracingConnection::CreateActiveDirectory( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = + internal::MakeSpan("netapp_v1::NetAppConnection::CreateActiveDirectory"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->CreateActiveDirectory( + ExperimentalTag{}, operation)); +} + future> NetAppTracingConnection::UpdateActiveDirectory( google::cloud::netapp::v1::UpdateActiveDirectoryRequest const& request) { @@ -211,6 +428,28 @@ NetAppTracingConnection::UpdateActiveDirectory( child_->UpdateActiveDirectory(request)); } +StatusOr +NetAppTracingConnection::UpdateActiveDirectory( + ExperimentalTag, NoAwaitTag, + google::cloud::netapp::v1::UpdateActiveDirectoryRequest const& request) { + auto span = + internal::MakeSpan("netapp_v1::NetAppConnection::UpdateActiveDirectory"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->UpdateActiveDirectory(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +NetAppTracingConnection::UpdateActiveDirectory( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = + internal::MakeSpan("netapp_v1::NetAppConnection::UpdateActiveDirectory"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->UpdateActiveDirectory( + ExperimentalTag{}, operation)); +} + future> NetAppTracingConnection::DeleteActiveDirectory( google::cloud::netapp::v1::DeleteActiveDirectoryRequest const& request) { @@ -221,6 +460,28 @@ NetAppTracingConnection::DeleteActiveDirectory( child_->DeleteActiveDirectory(request)); } +StatusOr +NetAppTracingConnection::DeleteActiveDirectory( + ExperimentalTag, NoAwaitTag, + google::cloud::netapp::v1::DeleteActiveDirectoryRequest const& request) { + auto span = + internal::MakeSpan("netapp_v1::NetAppConnection::DeleteActiveDirectory"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->DeleteActiveDirectory(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +NetAppTracingConnection::DeleteActiveDirectory( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = + internal::MakeSpan("netapp_v1::NetAppConnection::DeleteActiveDirectory"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->DeleteActiveDirectory( + ExperimentalTag{}, operation)); +} + StreamRange NetAppTracingConnection::ListKmsConfigs( google::cloud::netapp::v1::ListKmsConfigsRequest request) { @@ -240,6 +501,27 @@ NetAppTracingConnection::CreateKmsConfig( return internal::EndSpan(std::move(span), child_->CreateKmsConfig(request)); } +StatusOr +NetAppTracingConnection::CreateKmsConfig( + ExperimentalTag, NoAwaitTag, + google::cloud::netapp::v1::CreateKmsConfigRequest const& request) { + auto span = + internal::MakeSpan("netapp_v1::NetAppConnection::CreateKmsConfig"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->CreateKmsConfig(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +NetAppTracingConnection::CreateKmsConfig( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = + internal::MakeSpan("netapp_v1::NetAppConnection::CreateKmsConfig"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->CreateKmsConfig(ExperimentalTag{}, operation)); +} + StatusOr NetAppTracingConnection::GetKmsConfig( google::cloud::netapp::v1::GetKmsConfigRequest const& request) { @@ -257,6 +539,27 @@ NetAppTracingConnection::UpdateKmsConfig( return internal::EndSpan(std::move(span), child_->UpdateKmsConfig(request)); } +StatusOr +NetAppTracingConnection::UpdateKmsConfig( + ExperimentalTag, NoAwaitTag, + google::cloud::netapp::v1::UpdateKmsConfigRequest const& request) { + auto span = + internal::MakeSpan("netapp_v1::NetAppConnection::UpdateKmsConfig"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->UpdateKmsConfig(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +NetAppTracingConnection::UpdateKmsConfig( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = + internal::MakeSpan("netapp_v1::NetAppConnection::UpdateKmsConfig"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->UpdateKmsConfig(ExperimentalTag{}, operation)); +} + future> NetAppTracingConnection::EncryptVolumes( google::cloud::netapp::v1::EncryptVolumesRequest const& request) { @@ -265,6 +568,25 @@ NetAppTracingConnection::EncryptVolumes( return internal::EndSpan(std::move(span), child_->EncryptVolumes(request)); } +StatusOr +NetAppTracingConnection::EncryptVolumes( + ExperimentalTag, NoAwaitTag, + google::cloud::netapp::v1::EncryptVolumesRequest const& request) { + auto span = internal::MakeSpan("netapp_v1::NetAppConnection::EncryptVolumes"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->EncryptVolumes(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +NetAppTracingConnection::EncryptVolumes( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan("netapp_v1::NetAppConnection::EncryptVolumes"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->EncryptVolumes(ExperimentalTag{}, operation)); +} + StatusOr NetAppTracingConnection::VerifyKmsConfig( google::cloud::netapp::v1::VerifyKmsConfigRequest const& request) { @@ -283,6 +605,27 @@ NetAppTracingConnection::DeleteKmsConfig( return internal::EndSpan(std::move(span), child_->DeleteKmsConfig(request)); } +StatusOr +NetAppTracingConnection::DeleteKmsConfig( + ExperimentalTag, NoAwaitTag, + google::cloud::netapp::v1::DeleteKmsConfigRequest const& request) { + auto span = + internal::MakeSpan("netapp_v1::NetAppConnection::DeleteKmsConfig"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->DeleteKmsConfig(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +NetAppTracingConnection::DeleteKmsConfig( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = + internal::MakeSpan("netapp_v1::NetAppConnection::DeleteKmsConfig"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->DeleteKmsConfig(ExperimentalTag{}, operation)); +} + StreamRange NetAppTracingConnection::ListReplications( google::cloud::netapp::v1::ListReplicationsRequest request) { @@ -311,6 +654,28 @@ NetAppTracingConnection::CreateReplication( return internal::EndSpan(std::move(span), child_->CreateReplication(request)); } +StatusOr +NetAppTracingConnection::CreateReplication( + ExperimentalTag, NoAwaitTag, + google::cloud::netapp::v1::CreateReplicationRequest const& request) { + auto span = + internal::MakeSpan("netapp_v1::NetAppConnection::CreateReplication"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->CreateReplication(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +NetAppTracingConnection::CreateReplication( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = + internal::MakeSpan("netapp_v1::NetAppConnection::CreateReplication"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->CreateReplication(ExperimentalTag{}, operation)); +} + future> NetAppTracingConnection::DeleteReplication( google::cloud::netapp::v1::DeleteReplicationRequest const& request) { @@ -320,6 +685,28 @@ NetAppTracingConnection::DeleteReplication( return internal::EndSpan(std::move(span), child_->DeleteReplication(request)); } +StatusOr +NetAppTracingConnection::DeleteReplication( + ExperimentalTag, NoAwaitTag, + google::cloud::netapp::v1::DeleteReplicationRequest const& request) { + auto span = + internal::MakeSpan("netapp_v1::NetAppConnection::DeleteReplication"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->DeleteReplication(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +NetAppTracingConnection::DeleteReplication( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = + internal::MakeSpan("netapp_v1::NetAppConnection::DeleteReplication"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->DeleteReplication(ExperimentalTag{}, operation)); +} + future> NetAppTracingConnection::UpdateReplication( google::cloud::netapp::v1::UpdateReplicationRequest const& request) { @@ -329,6 +716,28 @@ NetAppTracingConnection::UpdateReplication( return internal::EndSpan(std::move(span), child_->UpdateReplication(request)); } +StatusOr +NetAppTracingConnection::UpdateReplication( + ExperimentalTag, NoAwaitTag, + google::cloud::netapp::v1::UpdateReplicationRequest const& request) { + auto span = + internal::MakeSpan("netapp_v1::NetAppConnection::UpdateReplication"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->UpdateReplication(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +NetAppTracingConnection::UpdateReplication( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = + internal::MakeSpan("netapp_v1::NetAppConnection::UpdateReplication"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->UpdateReplication(ExperimentalTag{}, operation)); +} + future> NetAppTracingConnection::StopReplication( google::cloud::netapp::v1::StopReplicationRequest const& request) { @@ -338,6 +747,27 @@ NetAppTracingConnection::StopReplication( return internal::EndSpan(std::move(span), child_->StopReplication(request)); } +StatusOr +NetAppTracingConnection::StopReplication( + ExperimentalTag, NoAwaitTag, + google::cloud::netapp::v1::StopReplicationRequest const& request) { + auto span = + internal::MakeSpan("netapp_v1::NetAppConnection::StopReplication"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->StopReplication(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +NetAppTracingConnection::StopReplication( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = + internal::MakeSpan("netapp_v1::NetAppConnection::StopReplication"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->StopReplication(ExperimentalTag{}, operation)); +} + future> NetAppTracingConnection::ResumeReplication( google::cloud::netapp::v1::ResumeReplicationRequest const& request) { @@ -347,6 +777,28 @@ NetAppTracingConnection::ResumeReplication( return internal::EndSpan(std::move(span), child_->ResumeReplication(request)); } +StatusOr +NetAppTracingConnection::ResumeReplication( + ExperimentalTag, NoAwaitTag, + google::cloud::netapp::v1::ResumeReplicationRequest const& request) { + auto span = + internal::MakeSpan("netapp_v1::NetAppConnection::ResumeReplication"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->ResumeReplication(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +NetAppTracingConnection::ResumeReplication( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = + internal::MakeSpan("netapp_v1::NetAppConnection::ResumeReplication"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->ResumeReplication(ExperimentalTag{}, operation)); +} + future> NetAppTracingConnection::ReverseReplicationDirection( google::cloud::netapp::v1::ReverseReplicationDirectionRequest const& @@ -358,6 +810,29 @@ NetAppTracingConnection::ReverseReplicationDirection( child_->ReverseReplicationDirection(request)); } +StatusOr +NetAppTracingConnection::ReverseReplicationDirection( + ExperimentalTag, NoAwaitTag, + google::cloud::netapp::v1::ReverseReplicationDirectionRequest const& + request) { + auto span = internal::MakeSpan( + "netapp_v1::NetAppConnection::ReverseReplicationDirection"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->ReverseReplicationDirection(ExperimentalTag{}, + NoAwaitTag{}, request)); +} + +future> +NetAppTracingConnection::ReverseReplicationDirection( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "netapp_v1::NetAppConnection::ReverseReplicationDirection"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->ReverseReplicationDirection( + ExperimentalTag{}, operation)); +} + future> NetAppTracingConnection::CreateBackupVault( google::cloud::netapp::v1::CreateBackupVaultRequest const& request) { @@ -367,6 +842,28 @@ NetAppTracingConnection::CreateBackupVault( return internal::EndSpan(std::move(span), child_->CreateBackupVault(request)); } +StatusOr +NetAppTracingConnection::CreateBackupVault( + ExperimentalTag, NoAwaitTag, + google::cloud::netapp::v1::CreateBackupVaultRequest const& request) { + auto span = + internal::MakeSpan("netapp_v1::NetAppConnection::CreateBackupVault"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->CreateBackupVault(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +NetAppTracingConnection::CreateBackupVault( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = + internal::MakeSpan("netapp_v1::NetAppConnection::CreateBackupVault"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->CreateBackupVault(ExperimentalTag{}, operation)); +} + StatusOr NetAppTracingConnection::GetBackupVault( google::cloud::netapp::v1::GetBackupVaultRequest const& request) { @@ -395,6 +892,28 @@ NetAppTracingConnection::UpdateBackupVault( return internal::EndSpan(std::move(span), child_->UpdateBackupVault(request)); } +StatusOr +NetAppTracingConnection::UpdateBackupVault( + ExperimentalTag, NoAwaitTag, + google::cloud::netapp::v1::UpdateBackupVaultRequest const& request) { + auto span = + internal::MakeSpan("netapp_v1::NetAppConnection::UpdateBackupVault"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->UpdateBackupVault(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +NetAppTracingConnection::UpdateBackupVault( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = + internal::MakeSpan("netapp_v1::NetAppConnection::UpdateBackupVault"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->UpdateBackupVault(ExperimentalTag{}, operation)); +} + future> NetAppTracingConnection::DeleteBackupVault( google::cloud::netapp::v1::DeleteBackupVaultRequest const& request) { @@ -404,6 +923,28 @@ NetAppTracingConnection::DeleteBackupVault( return internal::EndSpan(std::move(span), child_->DeleteBackupVault(request)); } +StatusOr +NetAppTracingConnection::DeleteBackupVault( + ExperimentalTag, NoAwaitTag, + google::cloud::netapp::v1::DeleteBackupVaultRequest const& request) { + auto span = + internal::MakeSpan("netapp_v1::NetAppConnection::DeleteBackupVault"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->DeleteBackupVault(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +NetAppTracingConnection::DeleteBackupVault( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = + internal::MakeSpan("netapp_v1::NetAppConnection::DeleteBackupVault"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->DeleteBackupVault(ExperimentalTag{}, operation)); +} + future> NetAppTracingConnection::CreateBackup( google::cloud::netapp::v1::CreateBackupRequest const& request) { @@ -412,6 +953,24 @@ NetAppTracingConnection::CreateBackup( return internal::EndSpan(std::move(span), child_->CreateBackup(request)); } +StatusOr NetAppTracingConnection::CreateBackup( + ExperimentalTag, NoAwaitTag, + google::cloud::netapp::v1::CreateBackupRequest const& request) { + auto span = internal::MakeSpan("netapp_v1::NetAppConnection::CreateBackup"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->CreateBackup(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +NetAppTracingConnection::CreateBackup( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan("netapp_v1::NetAppConnection::CreateBackup"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->CreateBackup(ExperimentalTag{}, operation)); +} + StatusOr NetAppTracingConnection::GetBackup( google::cloud::netapp::v1::GetBackupRequest const& request) { auto span = internal::MakeSpan("netapp_v1::NetAppConnection::GetBackup"); @@ -437,6 +996,24 @@ NetAppTracingConnection::DeleteBackup( return internal::EndSpan(std::move(span), child_->DeleteBackup(request)); } +StatusOr NetAppTracingConnection::DeleteBackup( + ExperimentalTag, NoAwaitTag, + google::cloud::netapp::v1::DeleteBackupRequest const& request) { + auto span = internal::MakeSpan("netapp_v1::NetAppConnection::DeleteBackup"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->DeleteBackup(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +NetAppTracingConnection::DeleteBackup( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan("netapp_v1::NetAppConnection::DeleteBackup"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->DeleteBackup(ExperimentalTag{}, operation)); +} + future> NetAppTracingConnection::UpdateBackup( google::cloud::netapp::v1::UpdateBackupRequest const& request) { @@ -445,6 +1022,24 @@ NetAppTracingConnection::UpdateBackup( return internal::EndSpan(std::move(span), child_->UpdateBackup(request)); } +StatusOr NetAppTracingConnection::UpdateBackup( + ExperimentalTag, NoAwaitTag, + google::cloud::netapp::v1::UpdateBackupRequest const& request) { + auto span = internal::MakeSpan("netapp_v1::NetAppConnection::UpdateBackup"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->UpdateBackup(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +NetAppTracingConnection::UpdateBackup( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan("netapp_v1::NetAppConnection::UpdateBackup"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->UpdateBackup(ExperimentalTag{}, operation)); +} + future> NetAppTracingConnection::CreateBackupPolicy( google::cloud::netapp::v1::CreateBackupPolicyRequest const& request) { @@ -455,6 +1050,28 @@ NetAppTracingConnection::CreateBackupPolicy( child_->CreateBackupPolicy(request)); } +StatusOr +NetAppTracingConnection::CreateBackupPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::netapp::v1::CreateBackupPolicyRequest const& request) { + auto span = + internal::MakeSpan("netapp_v1::NetAppConnection::CreateBackupPolicy"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->CreateBackupPolicy(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +NetAppTracingConnection::CreateBackupPolicy( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = + internal::MakeSpan("netapp_v1::NetAppConnection::CreateBackupPolicy"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->CreateBackupPolicy( + ExperimentalTag{}, operation)); +} + StatusOr NetAppTracingConnection::GetBackupPolicy( google::cloud::netapp::v1::GetBackupPolicyRequest const& request) { @@ -485,6 +1102,28 @@ NetAppTracingConnection::UpdateBackupPolicy( child_->UpdateBackupPolicy(request)); } +StatusOr +NetAppTracingConnection::UpdateBackupPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::netapp::v1::UpdateBackupPolicyRequest const& request) { + auto span = + internal::MakeSpan("netapp_v1::NetAppConnection::UpdateBackupPolicy"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->UpdateBackupPolicy(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +NetAppTracingConnection::UpdateBackupPolicy( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = + internal::MakeSpan("netapp_v1::NetAppConnection::UpdateBackupPolicy"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->UpdateBackupPolicy( + ExperimentalTag{}, operation)); +} + future> NetAppTracingConnection::DeleteBackupPolicy( google::cloud::netapp::v1::DeleteBackupPolicyRequest const& request) { @@ -495,6 +1134,28 @@ NetAppTracingConnection::DeleteBackupPolicy( child_->DeleteBackupPolicy(request)); } +StatusOr +NetAppTracingConnection::DeleteBackupPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::netapp::v1::DeleteBackupPolicyRequest const& request) { + auto span = + internal::MakeSpan("netapp_v1::NetAppConnection::DeleteBackupPolicy"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->DeleteBackupPolicy(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +NetAppTracingConnection::DeleteBackupPolicy( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = + internal::MakeSpan("netapp_v1::NetAppConnection::DeleteBackupPolicy"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->DeleteBackupPolicy( + ExperimentalTag{}, operation)); +} + #endif // GOOGLE_CLOUD_CPP_HAVE_OPENTELEMETRY std::shared_ptr MakeNetAppTracingConnection( diff --git a/google/cloud/netapp/v1/internal/net_app_tracing_connection.h b/google/cloud/netapp/v1/internal/net_app_tracing_connection.h index 7599e10f75e26..de61a9a7af162 100644 --- a/google/cloud/netapp/v1/internal/net_app_tracing_connection.h +++ b/google/cloud/netapp/v1/internal/net_app_tracing_connection.h @@ -46,6 +46,15 @@ class NetAppTracingConnection : public netapp_v1::NetAppConnection { google::cloud::netapp::v1::CreateStoragePoolRequest const& request) override; + StatusOr CreateStoragePool( + ExperimentalTag, NoAwaitTag, + google::cloud::netapp::v1::CreateStoragePoolRequest const& request) + override; + + future> CreateStoragePool( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetStoragePool( google::cloud::netapp::v1::GetStoragePoolRequest const& request) override; @@ -53,10 +62,28 @@ class NetAppTracingConnection : public netapp_v1::NetAppConnection { google::cloud::netapp::v1::UpdateStoragePoolRequest const& request) override; + StatusOr UpdateStoragePool( + ExperimentalTag, NoAwaitTag, + google::cloud::netapp::v1::UpdateStoragePoolRequest const& request) + override; + + future> UpdateStoragePool( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteStoragePool(google::cloud::netapp::v1::DeleteStoragePoolRequest const& request) override; + StatusOr DeleteStoragePool( + ExperimentalTag, NoAwaitTag, + google::cloud::netapp::v1::DeleteStoragePoolRequest const& request) + override; + + future> + DeleteStoragePool(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListVolumes( google::cloud::netapp::v1::ListVolumesRequest request) override; @@ -66,15 +93,47 @@ class NetAppTracingConnection : public netapp_v1::NetAppConnection { future> CreateVolume( google::cloud::netapp::v1::CreateVolumeRequest const& request) override; + StatusOr CreateVolume( + ExperimentalTag, NoAwaitTag, + google::cloud::netapp::v1::CreateVolumeRequest const& request) override; + + future> CreateVolume( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateVolume( google::cloud::netapp::v1::UpdateVolumeRequest const& request) override; + StatusOr UpdateVolume( + ExperimentalTag, NoAwaitTag, + google::cloud::netapp::v1::UpdateVolumeRequest const& request) override; + + future> UpdateVolume( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteVolume( google::cloud::netapp::v1::DeleteVolumeRequest const& request) override; + StatusOr DeleteVolume( + ExperimentalTag, NoAwaitTag, + google::cloud::netapp::v1::DeleteVolumeRequest const& request) override; + + future> DeleteVolume( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> RevertVolume( google::cloud::netapp::v1::RevertVolumeRequest const& request) override; + StatusOr RevertVolume( + ExperimentalTag, NoAwaitTag, + google::cloud::netapp::v1::RevertVolumeRequest const& request) override; + + future> RevertVolume( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListSnapshots( google::cloud::netapp::v1::ListSnapshotsRequest request) override; @@ -84,12 +143,36 @@ class NetAppTracingConnection : public netapp_v1::NetAppConnection { future> CreateSnapshot( google::cloud::netapp::v1::CreateSnapshotRequest const& request) override; + StatusOr CreateSnapshot( + ExperimentalTag, NoAwaitTag, + google::cloud::netapp::v1::CreateSnapshotRequest const& request) override; + + future> CreateSnapshot( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteSnapshot( google::cloud::netapp::v1::DeleteSnapshotRequest const& request) override; + StatusOr DeleteSnapshot( + ExperimentalTag, NoAwaitTag, + google::cloud::netapp::v1::DeleteSnapshotRequest const& request) override; + + future> DeleteSnapshot( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateSnapshot( google::cloud::netapp::v1::UpdateSnapshotRequest const& request) override; + StatusOr UpdateSnapshot( + ExperimentalTag, NoAwaitTag, + google::cloud::netapp::v1::UpdateSnapshotRequest const& request) override; + + future> UpdateSnapshot( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListActiveDirectories( google::cloud::netapp::v1::ListActiveDirectoriesRequest request) override; @@ -102,16 +185,46 @@ class NetAppTracingConnection : public netapp_v1::NetAppConnection { google::cloud::netapp::v1::CreateActiveDirectoryRequest const& request) override; + StatusOr CreateActiveDirectory( + ExperimentalTag, NoAwaitTag, + google::cloud::netapp::v1::CreateActiveDirectoryRequest const& request) + override; + + future> + CreateActiveDirectory( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateActiveDirectory( google::cloud::netapp::v1::UpdateActiveDirectoryRequest const& request) override; + StatusOr UpdateActiveDirectory( + ExperimentalTag, NoAwaitTag, + google::cloud::netapp::v1::UpdateActiveDirectoryRequest const& request) + override; + + future> + UpdateActiveDirectory( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteActiveDirectory( google::cloud::netapp::v1::DeleteActiveDirectoryRequest const& request) override; + StatusOr DeleteActiveDirectory( + ExperimentalTag, NoAwaitTag, + google::cloud::netapp::v1::DeleteActiveDirectoryRequest const& request) + override; + + future> + DeleteActiveDirectory( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListKmsConfigs( google::cloud::netapp::v1::ListKmsConfigsRequest request) override; @@ -119,6 +232,15 @@ class NetAppTracingConnection : public netapp_v1::NetAppConnection { google::cloud::netapp::v1::CreateKmsConfigRequest const& request) override; + StatusOr CreateKmsConfig( + ExperimentalTag, NoAwaitTag, + google::cloud::netapp::v1::CreateKmsConfigRequest const& request) + override; + + future> CreateKmsConfig( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetKmsConfig( google::cloud::netapp::v1::GetKmsConfigRequest const& request) override; @@ -126,9 +248,26 @@ class NetAppTracingConnection : public netapp_v1::NetAppConnection { google::cloud::netapp::v1::UpdateKmsConfigRequest const& request) override; + StatusOr UpdateKmsConfig( + ExperimentalTag, NoAwaitTag, + google::cloud::netapp::v1::UpdateKmsConfigRequest const& request) + override; + + future> UpdateKmsConfig( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> EncryptVolumes( google::cloud::netapp::v1::EncryptVolumesRequest const& request) override; + StatusOr EncryptVolumes( + ExperimentalTag, NoAwaitTag, + google::cloud::netapp::v1::EncryptVolumesRequest const& request) override; + + future> EncryptVolumes( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr VerifyKmsConfig( google::cloud::netapp::v1::VerifyKmsConfigRequest const& request) override; @@ -137,6 +276,15 @@ class NetAppTracingConnection : public netapp_v1::NetAppConnection { DeleteKmsConfig(google::cloud::netapp::v1::DeleteKmsConfigRequest const& request) override; + StatusOr DeleteKmsConfig( + ExperimentalTag, NoAwaitTag, + google::cloud::netapp::v1::DeleteKmsConfigRequest const& request) + override; + + future> + DeleteKmsConfig(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListReplications( google::cloud::netapp::v1::ListReplicationsRequest request) override; @@ -147,31 +295,95 @@ class NetAppTracingConnection : public netapp_v1::NetAppConnection { google::cloud::netapp::v1::CreateReplicationRequest const& request) override; + StatusOr CreateReplication( + ExperimentalTag, NoAwaitTag, + google::cloud::netapp::v1::CreateReplicationRequest const& request) + override; + + future> CreateReplication( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteReplication(google::cloud::netapp::v1::DeleteReplicationRequest const& request) override; + StatusOr DeleteReplication( + ExperimentalTag, NoAwaitTag, + google::cloud::netapp::v1::DeleteReplicationRequest const& request) + override; + + future> + DeleteReplication(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateReplication( google::cloud::netapp::v1::UpdateReplicationRequest const& request) override; + StatusOr UpdateReplication( + ExperimentalTag, NoAwaitTag, + google::cloud::netapp::v1::UpdateReplicationRequest const& request) + override; + + future> UpdateReplication( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> StopReplication( google::cloud::netapp::v1::StopReplicationRequest const& request) override; + StatusOr StopReplication( + ExperimentalTag, NoAwaitTag, + google::cloud::netapp::v1::StopReplicationRequest const& request) + override; + + future> StopReplication( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ResumeReplication( google::cloud::netapp::v1::ResumeReplicationRequest const& request) override; + StatusOr ResumeReplication( + ExperimentalTag, NoAwaitTag, + google::cloud::netapp::v1::ResumeReplicationRequest const& request) + override; + + future> ResumeReplication( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ReverseReplicationDirection( google::cloud::netapp::v1::ReverseReplicationDirectionRequest const& request) override; + StatusOr ReverseReplicationDirection( + ExperimentalTag, NoAwaitTag, + google::cloud::netapp::v1::ReverseReplicationDirectionRequest const& + request) override; + + future> + ReverseReplicationDirection( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> CreateBackupVault( google::cloud::netapp::v1::CreateBackupVaultRequest const& request) override; + StatusOr CreateBackupVault( + ExperimentalTag, NoAwaitTag, + google::cloud::netapp::v1::CreateBackupVaultRequest const& request) + override; + + future> CreateBackupVault( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetBackupVault( google::cloud::netapp::v1::GetBackupVaultRequest const& request) override; @@ -182,13 +394,39 @@ class NetAppTracingConnection : public netapp_v1::NetAppConnection { google::cloud::netapp::v1::UpdateBackupVaultRequest const& request) override; + StatusOr UpdateBackupVault( + ExperimentalTag, NoAwaitTag, + google::cloud::netapp::v1::UpdateBackupVaultRequest const& request) + override; + + future> UpdateBackupVault( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteBackupVault(google::cloud::netapp::v1::DeleteBackupVaultRequest const& request) override; + StatusOr DeleteBackupVault( + ExperimentalTag, NoAwaitTag, + google::cloud::netapp::v1::DeleteBackupVaultRequest const& request) + override; + + future> + DeleteBackupVault(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> CreateBackup( google::cloud::netapp::v1::CreateBackupRequest const& request) override; + StatusOr CreateBackup( + ExperimentalTag, NoAwaitTag, + google::cloud::netapp::v1::CreateBackupRequest const& request) override; + + future> CreateBackup( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetBackup( google::cloud::netapp::v1::GetBackupRequest const& request) override; @@ -198,13 +436,38 @@ class NetAppTracingConnection : public netapp_v1::NetAppConnection { future> DeleteBackup( google::cloud::netapp::v1::DeleteBackupRequest const& request) override; + StatusOr DeleteBackup( + ExperimentalTag, NoAwaitTag, + google::cloud::netapp::v1::DeleteBackupRequest const& request) override; + + future> DeleteBackup( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateBackup( google::cloud::netapp::v1::UpdateBackupRequest const& request) override; + StatusOr UpdateBackup( + ExperimentalTag, NoAwaitTag, + google::cloud::netapp::v1::UpdateBackupRequest const& request) override; + + future> UpdateBackup( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> CreateBackupPolicy( google::cloud::netapp::v1::CreateBackupPolicyRequest const& request) override; + StatusOr CreateBackupPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::netapp::v1::CreateBackupPolicyRequest const& request) + override; + + future> CreateBackupPolicy( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetBackupPolicy( google::cloud::netapp::v1::GetBackupPolicyRequest const& request) override; @@ -216,10 +479,28 @@ class NetAppTracingConnection : public netapp_v1::NetAppConnection { google::cloud::netapp::v1::UpdateBackupPolicyRequest const& request) override; + StatusOr UpdateBackupPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::netapp::v1::UpdateBackupPolicyRequest const& request) + override; + + future> UpdateBackupPolicy( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteBackupPolicy(google::cloud::netapp::v1::DeleteBackupPolicyRequest const& request) override; + StatusOr DeleteBackupPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::netapp::v1::DeleteBackupPolicyRequest const& request) + override; + + future> + DeleteBackupPolicy(ExperimentalTag, + google::longrunning::Operation const& operation) override; + private: std::shared_ptr child_; }; diff --git a/google/cloud/netapp/v1/mocks/mock_net_app_connection.h b/google/cloud/netapp/v1/mocks/mock_net_app_connection.h index dfb737eccbbb4..87f244db9ee5a 100644 --- a/google/cloud/netapp/v1/mocks/mock_net_app_connection.h +++ b/google/cloud/netapp/v1/mocks/mock_net_app_connection.h @@ -57,6 +57,18 @@ class MockNetAppConnection : public netapp_v1::NetAppConnection { (google::cloud::netapp::v1::CreateStoragePoolRequest const& request), (override)); + MOCK_METHOD( + StatusOr, CreateStoragePool, + (ExperimentalTag, NoAwaitTag, + google::cloud::netapp::v1::CreateStoragePoolRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateStoragePool, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(StatusOr, GetStoragePool, (google::cloud::netapp::v1::GetStoragePoolRequest const& request), (override)); @@ -67,12 +79,36 @@ class MockNetAppConnection : public netapp_v1::NetAppConnection { (google::cloud::netapp::v1::UpdateStoragePoolRequest const& request), (override)); + MOCK_METHOD( + StatusOr, UpdateStoragePool, + (ExperimentalTag, NoAwaitTag, + google::cloud::netapp::v1::UpdateStoragePoolRequest const& request), + (override)); + + MOCK_METHOD(future>, + UpdateStoragePool, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteStoragePool, (google::cloud::netapp::v1::DeleteStoragePoolRequest const& request), (override)); + MOCK_METHOD( + StatusOr, DeleteStoragePool, + (ExperimentalTag, NoAwaitTag, + google::cloud::netapp::v1::DeleteStoragePoolRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteStoragePool, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD((StreamRange), ListVolumes, (google::cloud::netapp::v1::ListVolumesRequest request), (override)); @@ -85,19 +121,60 @@ class MockNetAppConnection : public netapp_v1::NetAppConnection { (google::cloud::netapp::v1::CreateVolumeRequest const& request), (override)); + MOCK_METHOD(StatusOr, CreateVolume, + (ExperimentalTag, NoAwaitTag, + google::cloud::netapp::v1::CreateVolumeRequest const& request), + (override)); + + MOCK_METHOD(future>, CreateVolume, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, UpdateVolume, (google::cloud::netapp::v1::UpdateVolumeRequest const& request), (override)); + MOCK_METHOD(StatusOr, UpdateVolume, + (ExperimentalTag, NoAwaitTag, + google::cloud::netapp::v1::UpdateVolumeRequest const& request), + (override)); + + MOCK_METHOD(future>, UpdateVolume, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, DeleteVolume, (google::cloud::netapp::v1::DeleteVolumeRequest const& request), (override)); + MOCK_METHOD(StatusOr, DeleteVolume, + (ExperimentalTag, NoAwaitTag, + google::cloud::netapp::v1::DeleteVolumeRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteVolume, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, RevertVolume, (google::cloud::netapp::v1::RevertVolumeRequest const& request), (override)); + MOCK_METHOD(StatusOr, RevertVolume, + (ExperimentalTag, NoAwaitTag, + google::cloud::netapp::v1::RevertVolumeRequest const& request), + (override)); + + MOCK_METHOD(future>, RevertVolume, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD((StreamRange), ListSnapshots, (google::cloud::netapp::v1::ListSnapshotsRequest request), (override)); @@ -111,16 +188,49 @@ class MockNetAppConnection : public netapp_v1::NetAppConnection { (google::cloud::netapp::v1::CreateSnapshotRequest const& request), (override)); + MOCK_METHOD(StatusOr, CreateSnapshot, + (ExperimentalTag, NoAwaitTag, + google::cloud::netapp::v1::CreateSnapshotRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateSnapshot, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, DeleteSnapshot, (google::cloud::netapp::v1::DeleteSnapshotRequest const& request), (override)); + MOCK_METHOD(StatusOr, DeleteSnapshot, + (ExperimentalTag, NoAwaitTag, + google::cloud::netapp::v1::DeleteSnapshotRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteSnapshot, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, UpdateSnapshot, (google::cloud::netapp::v1::UpdateSnapshotRequest const& request), (override)); + MOCK_METHOD(StatusOr, UpdateSnapshot, + (ExperimentalTag, NoAwaitTag, + google::cloud::netapp::v1::UpdateSnapshotRequest const& request), + (override)); + + MOCK_METHOD(future>, + UpdateSnapshot, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD((StreamRange), ListActiveDirectories, (google::cloud::netapp::v1::ListActiveDirectoriesRequest request), @@ -137,18 +247,54 @@ class MockNetAppConnection : public netapp_v1::NetAppConnection { (google::cloud::netapp::v1::CreateActiveDirectoryRequest const& request), (override)); + MOCK_METHOD( + StatusOr, CreateActiveDirectory, + (ExperimentalTag, NoAwaitTag, + google::cloud::netapp::v1::CreateActiveDirectoryRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateActiveDirectory, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, UpdateActiveDirectory, (google::cloud::netapp::v1::UpdateActiveDirectoryRequest const& request), (override)); + MOCK_METHOD( + StatusOr, UpdateActiveDirectory, + (ExperimentalTag, NoAwaitTag, + google::cloud::netapp::v1::UpdateActiveDirectoryRequest const& request), + (override)); + + MOCK_METHOD(future>, + UpdateActiveDirectory, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteActiveDirectory, (google::cloud::netapp::v1::DeleteActiveDirectoryRequest const& request), (override)); + MOCK_METHOD( + StatusOr, DeleteActiveDirectory, + (ExperimentalTag, NoAwaitTag, + google::cloud::netapp::v1::DeleteActiveDirectoryRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteActiveDirectory, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD((StreamRange), ListKmsConfigs, (google::cloud::netapp::v1::ListKmsConfigsRequest request), @@ -159,6 +305,18 @@ class MockNetAppConnection : public netapp_v1::NetAppConnection { (google::cloud::netapp::v1::CreateKmsConfigRequest const& request), (override)); + MOCK_METHOD( + StatusOr, CreateKmsConfig, + (ExperimentalTag, NoAwaitTag, + google::cloud::netapp::v1::CreateKmsConfigRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateKmsConfig, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(StatusOr, GetKmsConfig, (google::cloud::netapp::v1::GetKmsConfigRequest const& request), (override)); @@ -168,11 +326,34 @@ class MockNetAppConnection : public netapp_v1::NetAppConnection { (google::cloud::netapp::v1::UpdateKmsConfigRequest const& request), (override)); + MOCK_METHOD( + StatusOr, UpdateKmsConfig, + (ExperimentalTag, NoAwaitTag, + google::cloud::netapp::v1::UpdateKmsConfigRequest const& request), + (override)); + + MOCK_METHOD(future>, + UpdateKmsConfig, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, EncryptVolumes, (google::cloud::netapp::v1::EncryptVolumesRequest const& request), (override)); + MOCK_METHOD(StatusOr, EncryptVolumes, + (ExperimentalTag, NoAwaitTag, + google::cloud::netapp::v1::EncryptVolumesRequest const& request), + (override)); + + MOCK_METHOD(future>, + EncryptVolumes, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr, VerifyKmsConfig, @@ -185,6 +366,18 @@ class MockNetAppConnection : public netapp_v1::NetAppConnection { (google::cloud::netapp::v1::DeleteKmsConfigRequest const& request), (override)); + MOCK_METHOD( + StatusOr, DeleteKmsConfig, + (ExperimentalTag, NoAwaitTag, + google::cloud::netapp::v1::DeleteKmsConfigRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteKmsConfig, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD((StreamRange), ListReplications, (google::cloud::netapp::v1::ListReplicationsRequest request), @@ -200,29 +393,89 @@ class MockNetAppConnection : public netapp_v1::NetAppConnection { (google::cloud::netapp::v1::CreateReplicationRequest const& request), (override)); + MOCK_METHOD( + StatusOr, CreateReplication, + (ExperimentalTag, NoAwaitTag, + google::cloud::netapp::v1::CreateReplicationRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateReplication, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteReplication, (google::cloud::netapp::v1::DeleteReplicationRequest const& request), (override)); + MOCK_METHOD( + StatusOr, DeleteReplication, + (ExperimentalTag, NoAwaitTag, + google::cloud::netapp::v1::DeleteReplicationRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteReplication, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, UpdateReplication, (google::cloud::netapp::v1::UpdateReplicationRequest const& request), (override)); + MOCK_METHOD( + StatusOr, UpdateReplication, + (ExperimentalTag, NoAwaitTag, + google::cloud::netapp::v1::UpdateReplicationRequest const& request), + (override)); + + MOCK_METHOD(future>, + UpdateReplication, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, StopReplication, (google::cloud::netapp::v1::StopReplicationRequest const& request), (override)); + MOCK_METHOD( + StatusOr, StopReplication, + (ExperimentalTag, NoAwaitTag, + google::cloud::netapp::v1::StopReplicationRequest const& request), + (override)); + + MOCK_METHOD(future>, + StopReplication, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, ResumeReplication, (google::cloud::netapp::v1::ResumeReplicationRequest const& request), (override)); + MOCK_METHOD( + StatusOr, ResumeReplication, + (ExperimentalTag, NoAwaitTag, + google::cloud::netapp::v1::ResumeReplicationRequest const& request), + (override)); + + MOCK_METHOD(future>, + ResumeReplication, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, ReverseReplicationDirection, @@ -230,12 +483,37 @@ class MockNetAppConnection : public netapp_v1::NetAppConnection { request), (override)); + MOCK_METHOD( + StatusOr, ReverseReplicationDirection, + (ExperimentalTag, NoAwaitTag, + google::cloud::netapp::v1::ReverseReplicationDirectionRequest const& + request), + (override)); + + MOCK_METHOD(future>, + ReverseReplicationDirection, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, CreateBackupVault, (google::cloud::netapp::v1::CreateBackupVaultRequest const& request), (override)); + MOCK_METHOD( + StatusOr, CreateBackupVault, + (ExperimentalTag, NoAwaitTag, + google::cloud::netapp::v1::CreateBackupVaultRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateBackupVault, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(StatusOr, GetBackupVault, (google::cloud::netapp::v1::GetBackupVaultRequest const& request), (override)); @@ -251,16 +529,50 @@ class MockNetAppConnection : public netapp_v1::NetAppConnection { (google::cloud::netapp::v1::UpdateBackupVaultRequest const& request), (override)); + MOCK_METHOD( + StatusOr, UpdateBackupVault, + (ExperimentalTag, NoAwaitTag, + google::cloud::netapp::v1::UpdateBackupVaultRequest const& request), + (override)); + + MOCK_METHOD(future>, + UpdateBackupVault, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteBackupVault, (google::cloud::netapp::v1::DeleteBackupVaultRequest const& request), (override)); + MOCK_METHOD( + StatusOr, DeleteBackupVault, + (ExperimentalTag, NoAwaitTag, + google::cloud::netapp::v1::DeleteBackupVaultRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteBackupVault, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, CreateBackup, (google::cloud::netapp::v1::CreateBackupRequest const& request), (override)); + MOCK_METHOD(StatusOr, CreateBackup, + (ExperimentalTag, NoAwaitTag, + google::cloud::netapp::v1::CreateBackupRequest const& request), + (override)); + + MOCK_METHOD(future>, CreateBackup, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(StatusOr, GetBackup, (google::cloud::netapp::v1::GetBackupRequest const& request), (override)); @@ -274,16 +586,49 @@ class MockNetAppConnection : public netapp_v1::NetAppConnection { (google::cloud::netapp::v1::DeleteBackupRequest const& request), (override)); + MOCK_METHOD(StatusOr, DeleteBackup, + (ExperimentalTag, NoAwaitTag, + google::cloud::netapp::v1::DeleteBackupRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteBackup, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, UpdateBackup, (google::cloud::netapp::v1::UpdateBackupRequest const& request), (override)); + MOCK_METHOD(StatusOr, UpdateBackup, + (ExperimentalTag, NoAwaitTag, + google::cloud::netapp::v1::UpdateBackupRequest const& request), + (override)); + + MOCK_METHOD(future>, UpdateBackup, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, CreateBackupPolicy, (google::cloud::netapp::v1::CreateBackupPolicyRequest const& request), (override)); + MOCK_METHOD( + StatusOr, CreateBackupPolicy, + (ExperimentalTag, NoAwaitTag, + google::cloud::netapp::v1::CreateBackupPolicyRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateBackupPolicy, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr, GetBackupPolicy, (google::cloud::netapp::v1::GetBackupPolicyRequest const& request), @@ -300,11 +645,35 @@ class MockNetAppConnection : public netapp_v1::NetAppConnection { (google::cloud::netapp::v1::UpdateBackupPolicyRequest const& request), (override)); + MOCK_METHOD( + StatusOr, UpdateBackupPolicy, + (ExperimentalTag, NoAwaitTag, + google::cloud::netapp::v1::UpdateBackupPolicyRequest const& request), + (override)); + + MOCK_METHOD(future>, + UpdateBackupPolicy, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteBackupPolicy, (google::cloud::netapp::v1::DeleteBackupPolicyRequest const& request), (override)); + + MOCK_METHOD( + StatusOr, DeleteBackupPolicy, + (ExperimentalTag, NoAwaitTag, + google::cloud::netapp::v1::DeleteBackupPolicyRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteBackupPolicy, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); }; GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END diff --git a/google/cloud/netapp/v1/net_app_connection.cc b/google/cloud/netapp/v1/net_app_connection.cc index 8b76d3deb0e7b..c8438ea4f3801 100644 --- a/google/cloud/netapp/v1/net_app_connection.cc +++ b/google/cloud/netapp/v1/net_app_connection.cc @@ -54,6 +54,21 @@ NetAppConnection::CreateStoragePool( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr NetAppConnection::CreateStoragePool( + ExperimentalTag, NoAwaitTag, + google::cloud::netapp::v1::CreateStoragePoolRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +NetAppConnection::CreateStoragePool(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr NetAppConnection::GetStoragePool( google::cloud::netapp::v1::GetStoragePoolRequest const&) { @@ -68,6 +83,21 @@ NetAppConnection::UpdateStoragePool( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr NetAppConnection::UpdateStoragePool( + ExperimentalTag, NoAwaitTag, + google::cloud::netapp::v1::UpdateStoragePoolRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +NetAppConnection::UpdateStoragePool(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> NetAppConnection::DeleteStoragePool( google::cloud::netapp::v1::DeleteStoragePoolRequest const&) { @@ -76,6 +106,21 @@ NetAppConnection::DeleteStoragePool( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr NetAppConnection::DeleteStoragePool( + ExperimentalTag, NoAwaitTag, + google::cloud::netapp::v1::DeleteStoragePoolRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +NetAppConnection::DeleteStoragePool(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StreamRange NetAppConnection::ListVolumes( google::cloud::netapp::v1:: ListVolumesRequest) { // NOLINT(performance-unnecessary-value-param) @@ -96,6 +141,21 @@ NetAppConnection::CreateVolume( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr NetAppConnection::CreateVolume( + ExperimentalTag, NoAwaitTag, + google::cloud::netapp::v1::CreateVolumeRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +NetAppConnection::CreateVolume(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> NetAppConnection::UpdateVolume( google::cloud::netapp::v1::UpdateVolumeRequest const&) { @@ -104,6 +164,21 @@ NetAppConnection::UpdateVolume( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr NetAppConnection::UpdateVolume( + ExperimentalTag, NoAwaitTag, + google::cloud::netapp::v1::UpdateVolumeRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +NetAppConnection::UpdateVolume(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> NetAppConnection::DeleteVolume( google::cloud::netapp::v1::DeleteVolumeRequest const&) { @@ -112,6 +187,21 @@ NetAppConnection::DeleteVolume( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr NetAppConnection::DeleteVolume( + ExperimentalTag, NoAwaitTag, + google::cloud::netapp::v1::DeleteVolumeRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +NetAppConnection::DeleteVolume(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> NetAppConnection::RevertVolume( google::cloud::netapp::v1::RevertVolumeRequest const&) { @@ -120,6 +210,21 @@ NetAppConnection::RevertVolume( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr NetAppConnection::RevertVolume( + ExperimentalTag, NoAwaitTag, + google::cloud::netapp::v1::RevertVolumeRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +NetAppConnection::RevertVolume(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StreamRange NetAppConnection::ListSnapshots( google::cloud::netapp::v1:: @@ -141,6 +246,21 @@ NetAppConnection::CreateSnapshot( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr NetAppConnection::CreateSnapshot( + ExperimentalTag, NoAwaitTag, + google::cloud::netapp::v1::CreateSnapshotRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +NetAppConnection::CreateSnapshot(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> NetAppConnection::DeleteSnapshot( google::cloud::netapp::v1::DeleteSnapshotRequest const&) { @@ -149,6 +269,21 @@ NetAppConnection::DeleteSnapshot( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr NetAppConnection::DeleteSnapshot( + ExperimentalTag, NoAwaitTag, + google::cloud::netapp::v1::DeleteSnapshotRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +NetAppConnection::DeleteSnapshot(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> NetAppConnection::UpdateSnapshot( google::cloud::netapp::v1::UpdateSnapshotRequest const&) { @@ -157,6 +292,21 @@ NetAppConnection::UpdateSnapshot( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr NetAppConnection::UpdateSnapshot( + ExperimentalTag, NoAwaitTag, + google::cloud::netapp::v1::UpdateSnapshotRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +NetAppConnection::UpdateSnapshot(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StreamRange NetAppConnection::ListActiveDirectories( google::cloud::netapp::v1:: @@ -179,6 +329,22 @@ NetAppConnection::CreateActiveDirectory( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +NetAppConnection::CreateActiveDirectory( + ExperimentalTag, NoAwaitTag, + google::cloud::netapp::v1::CreateActiveDirectoryRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +NetAppConnection::CreateActiveDirectory(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> NetAppConnection::UpdateActiveDirectory( google::cloud::netapp::v1::UpdateActiveDirectoryRequest const&) { @@ -187,6 +353,22 @@ NetAppConnection::UpdateActiveDirectory( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +NetAppConnection::UpdateActiveDirectory( + ExperimentalTag, NoAwaitTag, + google::cloud::netapp::v1::UpdateActiveDirectoryRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +NetAppConnection::UpdateActiveDirectory(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> NetAppConnection::DeleteActiveDirectory( google::cloud::netapp::v1::DeleteActiveDirectoryRequest const&) { @@ -195,6 +377,22 @@ NetAppConnection::DeleteActiveDirectory( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +NetAppConnection::DeleteActiveDirectory( + ExperimentalTag, NoAwaitTag, + google::cloud::netapp::v1::DeleteActiveDirectoryRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +NetAppConnection::DeleteActiveDirectory(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StreamRange NetAppConnection::ListKmsConfigs( google::cloud::netapp::v1:: @@ -211,6 +409,21 @@ NetAppConnection::CreateKmsConfig( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr NetAppConnection::CreateKmsConfig( + ExperimentalTag, NoAwaitTag, + google::cloud::netapp::v1::CreateKmsConfigRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +NetAppConnection::CreateKmsConfig(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr NetAppConnection::GetKmsConfig( google::cloud::netapp::v1::GetKmsConfigRequest const&) { return Status(StatusCode::kUnimplemented, "not implemented"); @@ -224,6 +437,21 @@ NetAppConnection::UpdateKmsConfig( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr NetAppConnection::UpdateKmsConfig( + ExperimentalTag, NoAwaitTag, + google::cloud::netapp::v1::UpdateKmsConfigRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +NetAppConnection::UpdateKmsConfig(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> NetAppConnection::EncryptVolumes( google::cloud::netapp::v1::EncryptVolumesRequest const&) { @@ -232,6 +460,21 @@ NetAppConnection::EncryptVolumes( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr NetAppConnection::EncryptVolumes( + ExperimentalTag, NoAwaitTag, + google::cloud::netapp::v1::EncryptVolumesRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +NetAppConnection::EncryptVolumes(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr NetAppConnection::VerifyKmsConfig( google::cloud::netapp::v1::VerifyKmsConfigRequest const&) { @@ -246,6 +489,21 @@ NetAppConnection::DeleteKmsConfig( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr NetAppConnection::DeleteKmsConfig( + ExperimentalTag, NoAwaitTag, + google::cloud::netapp::v1::DeleteKmsConfigRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +NetAppConnection::DeleteKmsConfig(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StreamRange NetAppConnection::ListReplications( google::cloud::netapp::v1:: @@ -268,6 +526,21 @@ NetAppConnection::CreateReplication( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr NetAppConnection::CreateReplication( + ExperimentalTag, NoAwaitTag, + google::cloud::netapp::v1::CreateReplicationRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +NetAppConnection::CreateReplication(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> NetAppConnection::DeleteReplication( google::cloud::netapp::v1::DeleteReplicationRequest const&) { @@ -276,6 +549,21 @@ NetAppConnection::DeleteReplication( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr NetAppConnection::DeleteReplication( + ExperimentalTag, NoAwaitTag, + google::cloud::netapp::v1::DeleteReplicationRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +NetAppConnection::DeleteReplication(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> NetAppConnection::UpdateReplication( google::cloud::netapp::v1::UpdateReplicationRequest const&) { @@ -284,6 +572,21 @@ NetAppConnection::UpdateReplication( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr NetAppConnection::UpdateReplication( + ExperimentalTag, NoAwaitTag, + google::cloud::netapp::v1::UpdateReplicationRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +NetAppConnection::UpdateReplication(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> NetAppConnection::StopReplication( google::cloud::netapp::v1::StopReplicationRequest const&) { @@ -292,6 +595,21 @@ NetAppConnection::StopReplication( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr NetAppConnection::StopReplication( + ExperimentalTag, NoAwaitTag, + google::cloud::netapp::v1::StopReplicationRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +NetAppConnection::StopReplication(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> NetAppConnection::ResumeReplication( google::cloud::netapp::v1::ResumeReplicationRequest const&) { @@ -300,6 +618,21 @@ NetAppConnection::ResumeReplication( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr NetAppConnection::ResumeReplication( + ExperimentalTag, NoAwaitTag, + google::cloud::netapp::v1::ResumeReplicationRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +NetAppConnection::ResumeReplication(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> NetAppConnection::ReverseReplicationDirection( google::cloud::netapp::v1::ReverseReplicationDirectionRequest const&) { @@ -308,6 +641,22 @@ NetAppConnection::ReverseReplicationDirection( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +NetAppConnection::ReverseReplicationDirection( + ExperimentalTag, NoAwaitTag, + google::cloud::netapp::v1::ReverseReplicationDirectionRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +NetAppConnection::ReverseReplicationDirection( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> NetAppConnection::CreateBackupVault( google::cloud::netapp::v1::CreateBackupVaultRequest const&) { @@ -316,6 +665,21 @@ NetAppConnection::CreateBackupVault( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr NetAppConnection::CreateBackupVault( + ExperimentalTag, NoAwaitTag, + google::cloud::netapp::v1::CreateBackupVaultRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +NetAppConnection::CreateBackupVault(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr NetAppConnection::GetBackupVault( google::cloud::netapp::v1::GetBackupVaultRequest const&) { @@ -338,6 +702,21 @@ NetAppConnection::UpdateBackupVault( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr NetAppConnection::UpdateBackupVault( + ExperimentalTag, NoAwaitTag, + google::cloud::netapp::v1::UpdateBackupVaultRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +NetAppConnection::UpdateBackupVault(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> NetAppConnection::DeleteBackupVault( google::cloud::netapp::v1::DeleteBackupVaultRequest const&) { @@ -346,6 +725,21 @@ NetAppConnection::DeleteBackupVault( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr NetAppConnection::DeleteBackupVault( + ExperimentalTag, NoAwaitTag, + google::cloud::netapp::v1::DeleteBackupVaultRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +NetAppConnection::DeleteBackupVault(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> NetAppConnection::CreateBackup( google::cloud::netapp::v1::CreateBackupRequest const&) { @@ -354,6 +748,21 @@ NetAppConnection::CreateBackup( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr NetAppConnection::CreateBackup( + ExperimentalTag, NoAwaitTag, + google::cloud::netapp::v1::CreateBackupRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +NetAppConnection::CreateBackup(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr NetAppConnection::GetBackup( google::cloud::netapp::v1::GetBackupRequest const&) { return Status(StatusCode::kUnimplemented, "not implemented"); @@ -374,6 +783,21 @@ NetAppConnection::DeleteBackup( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr NetAppConnection::DeleteBackup( + ExperimentalTag, NoAwaitTag, + google::cloud::netapp::v1::DeleteBackupRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +NetAppConnection::DeleteBackup(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> NetAppConnection::UpdateBackup( google::cloud::netapp::v1::UpdateBackupRequest const&) { @@ -382,6 +806,21 @@ NetAppConnection::UpdateBackup( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr NetAppConnection::UpdateBackup( + ExperimentalTag, NoAwaitTag, + google::cloud::netapp::v1::UpdateBackupRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +NetAppConnection::UpdateBackup(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> NetAppConnection::CreateBackupPolicy( google::cloud::netapp::v1::CreateBackupPolicyRequest const&) { @@ -390,6 +829,21 @@ NetAppConnection::CreateBackupPolicy( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr NetAppConnection::CreateBackupPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::netapp::v1::CreateBackupPolicyRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +NetAppConnection::CreateBackupPolicy(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr NetAppConnection::GetBackupPolicy( google::cloud::netapp::v1::GetBackupPolicyRequest const&) { @@ -412,6 +866,21 @@ NetAppConnection::UpdateBackupPolicy( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr NetAppConnection::UpdateBackupPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::netapp::v1::UpdateBackupPolicyRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +NetAppConnection::UpdateBackupPolicy(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> NetAppConnection::DeleteBackupPolicy( google::cloud::netapp::v1::DeleteBackupPolicyRequest const&) { @@ -420,6 +889,21 @@ NetAppConnection::DeleteBackupPolicy( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr NetAppConnection::DeleteBackupPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::netapp::v1::DeleteBackupPolicyRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +NetAppConnection::DeleteBackupPolicy(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + std::shared_ptr MakeNetAppConnection(Options options) { internal::CheckExpectedOptions CreateStoragePool( + ExperimentalTag, NoAwaitTag, + google::cloud::netapp::v1::CreateStoragePoolRequest const& request); + + virtual future> + CreateStoragePool(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StatusOr GetStoragePool( google::cloud::netapp::v1::GetStoragePoolRequest const& request); @@ -195,10 +205,26 @@ class NetAppConnection { UpdateStoragePool( google::cloud::netapp::v1::UpdateStoragePoolRequest const& request); + virtual StatusOr UpdateStoragePool( + ExperimentalTag, NoAwaitTag, + google::cloud::netapp::v1::UpdateStoragePoolRequest const& request); + + virtual future> + UpdateStoragePool(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> DeleteStoragePool( google::cloud::netapp::v1::DeleteStoragePoolRequest const& request); + virtual StatusOr DeleteStoragePool( + ExperimentalTag, NoAwaitTag, + google::cloud::netapp::v1::DeleteStoragePoolRequest const& request); + + virtual future> + DeleteStoragePool(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StreamRange ListVolumes( google::cloud::netapp::v1::ListVolumesRequest request); @@ -208,15 +234,44 @@ class NetAppConnection { virtual future> CreateVolume( google::cloud::netapp::v1::CreateVolumeRequest const& request); + virtual StatusOr CreateVolume( + ExperimentalTag, NoAwaitTag, + google::cloud::netapp::v1::CreateVolumeRequest const& request); + + virtual future> CreateVolume( + ExperimentalTag, google::longrunning::Operation const& operation); + virtual future> UpdateVolume( google::cloud::netapp::v1::UpdateVolumeRequest const& request); + virtual StatusOr UpdateVolume( + ExperimentalTag, NoAwaitTag, + google::cloud::netapp::v1::UpdateVolumeRequest const& request); + + virtual future> UpdateVolume( + ExperimentalTag, google::longrunning::Operation const& operation); + virtual future> DeleteVolume(google::cloud::netapp::v1::DeleteVolumeRequest const& request); + virtual StatusOr DeleteVolume( + ExperimentalTag, NoAwaitTag, + google::cloud::netapp::v1::DeleteVolumeRequest const& request); + + virtual future> + DeleteVolume(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> RevertVolume( google::cloud::netapp::v1::RevertVolumeRequest const& request); + virtual StatusOr RevertVolume( + ExperimentalTag, NoAwaitTag, + google::cloud::netapp::v1::RevertVolumeRequest const& request); + + virtual future> RevertVolume( + ExperimentalTag, google::longrunning::Operation const& operation); + virtual StreamRange ListSnapshots( google::cloud::netapp::v1::ListSnapshotsRequest request); @@ -226,13 +281,35 @@ class NetAppConnection { virtual future> CreateSnapshot( google::cloud::netapp::v1::CreateSnapshotRequest const& request); + virtual StatusOr CreateSnapshot( + ExperimentalTag, NoAwaitTag, + google::cloud::netapp::v1::CreateSnapshotRequest const& request); + + virtual future> CreateSnapshot( + ExperimentalTag, google::longrunning::Operation const& operation); + virtual future> DeleteSnapshot( google::cloud::netapp::v1::DeleteSnapshotRequest const& request); + virtual StatusOr DeleteSnapshot( + ExperimentalTag, NoAwaitTag, + google::cloud::netapp::v1::DeleteSnapshotRequest const& request); + + virtual future> + DeleteSnapshot(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> UpdateSnapshot( google::cloud::netapp::v1::UpdateSnapshotRequest const& request); + virtual StatusOr UpdateSnapshot( + ExperimentalTag, NoAwaitTag, + google::cloud::netapp::v1::UpdateSnapshotRequest const& request); + + virtual future> UpdateSnapshot( + ExperimentalTag, google::longrunning::Operation const& operation); + virtual StreamRange ListActiveDirectories( google::cloud::netapp::v1::ListActiveDirectoriesRequest request); @@ -245,14 +322,38 @@ class NetAppConnection { CreateActiveDirectory( google::cloud::netapp::v1::CreateActiveDirectoryRequest const& request); + virtual StatusOr CreateActiveDirectory( + ExperimentalTag, NoAwaitTag, + google::cloud::netapp::v1::CreateActiveDirectoryRequest const& request); + + virtual future> + CreateActiveDirectory(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> UpdateActiveDirectory( google::cloud::netapp::v1::UpdateActiveDirectoryRequest const& request); + virtual StatusOr UpdateActiveDirectory( + ExperimentalTag, NoAwaitTag, + google::cloud::netapp::v1::UpdateActiveDirectoryRequest const& request); + + virtual future> + UpdateActiveDirectory(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> DeleteActiveDirectory( google::cloud::netapp::v1::DeleteActiveDirectoryRequest const& request); + virtual StatusOr DeleteActiveDirectory( + ExperimentalTag, NoAwaitTag, + google::cloud::netapp::v1::DeleteActiveDirectoryRequest const& request); + + virtual future> + DeleteActiveDirectory(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StreamRange ListKmsConfigs( google::cloud::netapp::v1::ListKmsConfigsRequest request); @@ -260,6 +361,14 @@ class NetAppConnection { CreateKmsConfig( google::cloud::netapp::v1::CreateKmsConfigRequest const& request); + virtual StatusOr CreateKmsConfig( + ExperimentalTag, NoAwaitTag, + google::cloud::netapp::v1::CreateKmsConfigRequest const& request); + + virtual future> + CreateKmsConfig(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StatusOr GetKmsConfig( google::cloud::netapp::v1::GetKmsConfigRequest const& request); @@ -267,9 +376,24 @@ class NetAppConnection { UpdateKmsConfig( google::cloud::netapp::v1::UpdateKmsConfigRequest const& request); + virtual StatusOr UpdateKmsConfig( + ExperimentalTag, NoAwaitTag, + google::cloud::netapp::v1::UpdateKmsConfigRequest const& request); + + virtual future> + UpdateKmsConfig(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> EncryptVolumes( google::cloud::netapp::v1::EncryptVolumesRequest const& request); + virtual StatusOr EncryptVolumes( + ExperimentalTag, NoAwaitTag, + google::cloud::netapp::v1::EncryptVolumesRequest const& request); + + virtual future> EncryptVolumes( + ExperimentalTag, google::longrunning::Operation const& operation); + virtual StatusOr VerifyKmsConfig( google::cloud::netapp::v1::VerifyKmsConfigRequest const& request); @@ -278,6 +402,14 @@ class NetAppConnection { DeleteKmsConfig( google::cloud::netapp::v1::DeleteKmsConfigRequest const& request); + virtual StatusOr DeleteKmsConfig( + ExperimentalTag, NoAwaitTag, + google::cloud::netapp::v1::DeleteKmsConfigRequest const& request); + + virtual future> + DeleteKmsConfig(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StreamRange ListReplications( google::cloud::netapp::v1::ListReplicationsRequest request); @@ -288,31 +420,88 @@ class NetAppConnection { CreateReplication( google::cloud::netapp::v1::CreateReplicationRequest const& request); + virtual StatusOr CreateReplication( + ExperimentalTag, NoAwaitTag, + google::cloud::netapp::v1::CreateReplicationRequest const& request); + + virtual future> + CreateReplication(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> DeleteReplication( google::cloud::netapp::v1::DeleteReplicationRequest const& request); + virtual StatusOr DeleteReplication( + ExperimentalTag, NoAwaitTag, + google::cloud::netapp::v1::DeleteReplicationRequest const& request); + + virtual future> + DeleteReplication(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> UpdateReplication( google::cloud::netapp::v1::UpdateReplicationRequest const& request); + virtual StatusOr UpdateReplication( + ExperimentalTag, NoAwaitTag, + google::cloud::netapp::v1::UpdateReplicationRequest const& request); + + virtual future> + UpdateReplication(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> StopReplication( google::cloud::netapp::v1::StopReplicationRequest const& request); + virtual StatusOr StopReplication( + ExperimentalTag, NoAwaitTag, + google::cloud::netapp::v1::StopReplicationRequest const& request); + + virtual future> + StopReplication(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> ResumeReplication( google::cloud::netapp::v1::ResumeReplicationRequest const& request); + virtual StatusOr ResumeReplication( + ExperimentalTag, NoAwaitTag, + google::cloud::netapp::v1::ResumeReplicationRequest const& request); + + virtual future> + ResumeReplication(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> ReverseReplicationDirection( google::cloud::netapp::v1::ReverseReplicationDirectionRequest const& request); + virtual StatusOr ReverseReplicationDirection( + ExperimentalTag, NoAwaitTag, + google::cloud::netapp::v1::ReverseReplicationDirectionRequest const& + request); + + virtual future> + ReverseReplicationDirection(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> CreateBackupVault( google::cloud::netapp::v1::CreateBackupVaultRequest const& request); + virtual StatusOr CreateBackupVault( + ExperimentalTag, NoAwaitTag, + google::cloud::netapp::v1::CreateBackupVaultRequest const& request); + + virtual future> + CreateBackupVault(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StatusOr GetBackupVault( google::cloud::netapp::v1::GetBackupVaultRequest const& request); @@ -323,13 +512,36 @@ class NetAppConnection { UpdateBackupVault( google::cloud::netapp::v1::UpdateBackupVaultRequest const& request); + virtual StatusOr UpdateBackupVault( + ExperimentalTag, NoAwaitTag, + google::cloud::netapp::v1::UpdateBackupVaultRequest const& request); + + virtual future> + UpdateBackupVault(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> DeleteBackupVault( google::cloud::netapp::v1::DeleteBackupVaultRequest const& request); + virtual StatusOr DeleteBackupVault( + ExperimentalTag, NoAwaitTag, + google::cloud::netapp::v1::DeleteBackupVaultRequest const& request); + + virtual future> + DeleteBackupVault(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> CreateBackup( google::cloud::netapp::v1::CreateBackupRequest const& request); + virtual StatusOr CreateBackup( + ExperimentalTag, NoAwaitTag, + google::cloud::netapp::v1::CreateBackupRequest const& request); + + virtual future> CreateBackup( + ExperimentalTag, google::longrunning::Operation const& operation); + virtual StatusOr GetBackup( google::cloud::netapp::v1::GetBackupRequest const& request); @@ -339,13 +551,36 @@ class NetAppConnection { virtual future> DeleteBackup(google::cloud::netapp::v1::DeleteBackupRequest const& request); + virtual StatusOr DeleteBackup( + ExperimentalTag, NoAwaitTag, + google::cloud::netapp::v1::DeleteBackupRequest const& request); + + virtual future> + DeleteBackup(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> UpdateBackup( google::cloud::netapp::v1::UpdateBackupRequest const& request); + virtual StatusOr UpdateBackup( + ExperimentalTag, NoAwaitTag, + google::cloud::netapp::v1::UpdateBackupRequest const& request); + + virtual future> UpdateBackup( + ExperimentalTag, google::longrunning::Operation const& operation); + virtual future> CreateBackupPolicy( google::cloud::netapp::v1::CreateBackupPolicyRequest const& request); + virtual StatusOr CreateBackupPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::netapp::v1::CreateBackupPolicyRequest const& request); + + virtual future> + CreateBackupPolicy(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StatusOr GetBackupPolicy( google::cloud::netapp::v1::GetBackupPolicyRequest const& request); @@ -357,9 +592,25 @@ class NetAppConnection { UpdateBackupPolicy( google::cloud::netapp::v1::UpdateBackupPolicyRequest const& request); + virtual StatusOr UpdateBackupPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::netapp::v1::UpdateBackupPolicyRequest const& request); + + virtual future> + UpdateBackupPolicy(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> DeleteBackupPolicy( google::cloud::netapp::v1::DeleteBackupPolicyRequest const& request); + + virtual StatusOr DeleteBackupPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::netapp::v1::DeleteBackupPolicyRequest const& request); + + virtual future> + DeleteBackupPolicy(ExperimentalTag, + google::longrunning::Operation const& operation); }; /** diff --git a/google/cloud/networkconnectivity/v1/hub_connection.cc b/google/cloud/networkconnectivity/v1/hub_connection.cc index bcdff7b14d937..9185224d08466 100644 --- a/google/cloud/networkconnectivity/v1/hub_connection.cc +++ b/google/cloud/networkconnectivity/v1/hub_connection.cc @@ -60,6 +60,21 @@ HubServiceConnection::CreateHub( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr HubServiceConnection::CreateHub( + ExperimentalTag, NoAwaitTag, + google::cloud::networkconnectivity::v1::CreateHubRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +HubServiceConnection::CreateHub(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> HubServiceConnection::UpdateHub( google::cloud::networkconnectivity::v1::UpdateHubRequest const&) { @@ -68,6 +83,21 @@ HubServiceConnection::UpdateHub( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr HubServiceConnection::UpdateHub( + ExperimentalTag, NoAwaitTag, + google::cloud::networkconnectivity::v1::UpdateHubRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +HubServiceConnection::UpdateHub(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> HubServiceConnection::DeleteHub( google::cloud::networkconnectivity::v1::DeleteHubRequest const&) { @@ -76,6 +106,21 @@ HubServiceConnection::DeleteHub( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr HubServiceConnection::DeleteHub( + ExperimentalTag, NoAwaitTag, + google::cloud::networkconnectivity::v1::DeleteHubRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +HubServiceConnection::DeleteHub(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StreamRange HubServiceConnection::ListHubSpokes( google::cloud::networkconnectivity::v1:: @@ -106,6 +151,21 @@ HubServiceConnection::CreateSpoke( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr HubServiceConnection::CreateSpoke( + ExperimentalTag, NoAwaitTag, + google::cloud::networkconnectivity::v1::CreateSpokeRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +HubServiceConnection::CreateSpoke(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> HubServiceConnection::UpdateSpoke( google::cloud::networkconnectivity::v1::UpdateSpokeRequest const&) { @@ -114,6 +174,21 @@ HubServiceConnection::UpdateSpoke( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr HubServiceConnection::UpdateSpoke( + ExperimentalTag, NoAwaitTag, + google::cloud::networkconnectivity::v1::UpdateSpokeRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +HubServiceConnection::UpdateSpoke(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> HubServiceConnection::RejectHubSpoke( google::cloud::networkconnectivity::v1::RejectHubSpokeRequest const&) { @@ -122,6 +197,21 @@ HubServiceConnection::RejectHubSpoke( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr HubServiceConnection::RejectHubSpoke( + ExperimentalTag, NoAwaitTag, + google::cloud::networkconnectivity::v1::RejectHubSpokeRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +HubServiceConnection::RejectHubSpoke(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> HubServiceConnection::AcceptHubSpoke( google::cloud::networkconnectivity::v1::AcceptHubSpokeRequest const&) { @@ -130,6 +220,21 @@ HubServiceConnection::AcceptHubSpoke( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr HubServiceConnection::AcceptHubSpoke( + ExperimentalTag, NoAwaitTag, + google::cloud::networkconnectivity::v1::AcceptHubSpokeRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +HubServiceConnection::AcceptHubSpoke(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> HubServiceConnection::DeleteSpoke( google::cloud::networkconnectivity::v1::DeleteSpokeRequest const&) { @@ -138,6 +243,21 @@ HubServiceConnection::DeleteSpoke( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr HubServiceConnection::DeleteSpoke( + ExperimentalTag, NoAwaitTag, + google::cloud::networkconnectivity::v1::DeleteSpokeRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +HubServiceConnection::DeleteSpoke(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr HubServiceConnection::GetRouteTable( google::cloud::networkconnectivity::v1::GetRouteTableRequest const&) { diff --git a/google/cloud/networkconnectivity/v1/hub_connection.h b/google/cloud/networkconnectivity/v1/hub_connection.h index 698d753bb4551..773b2b97ca979 100644 --- a/google/cloud/networkconnectivity/v1/hub_connection.h +++ b/google/cloud/networkconnectivity/v1/hub_connection.h @@ -22,8 +22,10 @@ #include "google/cloud/networkconnectivity/v1/hub_connection_idempotency_policy.h" #include "google/cloud/networkconnectivity/v1/internal/hub_retry_traits.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/internal/retry_policy_impl.h" +#include "google/cloud/no_await_tag.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" #include "google/cloud/status_or.h" @@ -195,15 +197,37 @@ class HubServiceConnection { CreateHub( google::cloud::networkconnectivity::v1::CreateHubRequest const& request); + virtual StatusOr CreateHub( + ExperimentalTag, NoAwaitTag, + google::cloud::networkconnectivity::v1::CreateHubRequest const& request); + + virtual future> + CreateHub(ExperimentalTag, google::longrunning::Operation const& operation); + virtual future> UpdateHub( google::cloud::networkconnectivity::v1::UpdateHubRequest const& request); + virtual StatusOr UpdateHub( + ExperimentalTag, NoAwaitTag, + google::cloud::networkconnectivity::v1::UpdateHubRequest const& request); + + virtual future> + UpdateHub(ExperimentalTag, google::longrunning::Operation const& operation); + virtual future< StatusOr> DeleteHub( google::cloud::networkconnectivity::v1::DeleteHubRequest const& request); + virtual StatusOr DeleteHub( + ExperimentalTag, NoAwaitTag, + google::cloud::networkconnectivity::v1::DeleteHubRequest const& request); + + virtual future< + StatusOr> + DeleteHub(ExperimentalTag, google::longrunning::Operation const& operation); + virtual StreamRange ListHubSpokes( google::cloud::networkconnectivity::v1::ListHubSpokesRequest request); @@ -218,27 +242,72 @@ class HubServiceConnection { CreateSpoke(google::cloud::networkconnectivity::v1::CreateSpokeRequest const& request); + virtual StatusOr CreateSpoke( + ExperimentalTag, NoAwaitTag, + google::cloud::networkconnectivity::v1::CreateSpokeRequest const& + request); + + virtual future> + CreateSpoke(ExperimentalTag, google::longrunning::Operation const& operation); + virtual future> UpdateSpoke(google::cloud::networkconnectivity::v1::UpdateSpokeRequest const& request); + virtual StatusOr UpdateSpoke( + ExperimentalTag, NoAwaitTag, + google::cloud::networkconnectivity::v1::UpdateSpokeRequest const& + request); + + virtual future> + UpdateSpoke(ExperimentalTag, google::longrunning::Operation const& operation); + virtual future< StatusOr> RejectHubSpoke( google::cloud::networkconnectivity::v1::RejectHubSpokeRequest const& request); + virtual StatusOr RejectHubSpoke( + ExperimentalTag, NoAwaitTag, + google::cloud::networkconnectivity::v1::RejectHubSpokeRequest const& + request); + + virtual future< + StatusOr> + RejectHubSpoke(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future< StatusOr> AcceptHubSpoke( google::cloud::networkconnectivity::v1::AcceptHubSpokeRequest const& request); + virtual StatusOr AcceptHubSpoke( + ExperimentalTag, NoAwaitTag, + google::cloud::networkconnectivity::v1::AcceptHubSpokeRequest const& + request); + + virtual future< + StatusOr> + AcceptHubSpoke(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future< StatusOr> DeleteSpoke(google::cloud::networkconnectivity::v1::DeleteSpokeRequest const& request); + virtual StatusOr DeleteSpoke( + ExperimentalTag, NoAwaitTag, + google::cloud::networkconnectivity::v1::DeleteSpokeRequest const& + request); + + virtual future< + StatusOr> + DeleteSpoke(ExperimentalTag, google::longrunning::Operation const& operation); + virtual StatusOr GetRouteTable( google::cloud::networkconnectivity::v1::GetRouteTableRequest const& diff --git a/google/cloud/networkconnectivity/v1/internal/hub_connection_impl.cc b/google/cloud/networkconnectivity/v1/internal/hub_connection_impl.cc index e8e0dba82d523..4edd7191e9c12 100644 --- a/google/cloud/networkconnectivity/v1/internal/hub_connection_impl.cc +++ b/google/cloud/networkconnectivity/v1/internal/hub_connection_impl.cc @@ -155,6 +155,59 @@ HubServiceConnectionImpl::CreateHub( polling_policy(*current), __func__); } +StatusOr HubServiceConnectionImpl::CreateHub( + ExperimentalTag, NoAwaitTag, + google::cloud::networkconnectivity::v1::CreateHubRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateHub(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::networkconnectivity::v1::CreateHubRequest const& + request) { + return stub_->CreateHub(context, options, request); + }, + *current, request, __func__); +} + +future> +HubServiceConnectionImpl::CreateHub( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to CreateHub", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::networkconnectivity::v1::Hub>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::networkconnectivity::v1::Hub>, + polling_policy(*current), __func__); +} + future> HubServiceConnectionImpl::UpdateHub( google::cloud::networkconnectivity::v1::UpdateHubRequest const& request) { @@ -194,6 +247,59 @@ HubServiceConnectionImpl::UpdateHub( polling_policy(*current), __func__); } +StatusOr HubServiceConnectionImpl::UpdateHub( + ExperimentalTag, NoAwaitTag, + google::cloud::networkconnectivity::v1::UpdateHubRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UpdateHub(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::networkconnectivity::v1::UpdateHubRequest const& + request) { + return stub_->UpdateHub(context, options, request); + }, + *current, request, __func__); +} + +future> +HubServiceConnectionImpl::UpdateHub( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to UpdateHub", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::networkconnectivity::v1::Hub>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::networkconnectivity::v1::Hub>, + polling_policy(*current), __func__); +} + future> HubServiceConnectionImpl::DeleteHub( google::cloud::networkconnectivity::v1::DeleteHubRequest const& request) { @@ -233,6 +339,59 @@ HubServiceConnectionImpl::DeleteHub( polling_policy(*current), __func__); } +StatusOr HubServiceConnectionImpl::DeleteHub( + ExperimentalTag, NoAwaitTag, + google::cloud::networkconnectivity::v1::DeleteHubRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteHub(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::networkconnectivity::v1::DeleteHubRequest const& + request) { + return stub_->DeleteHub(context, options, request); + }, + *current, request, __func__); +} + +future> +HubServiceConnectionImpl::DeleteHub( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteHub", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::networkconnectivity::v1::OperationMetadata>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::cloud::networkconnectivity::v1::OperationMetadata>, + polling_policy(*current), __func__); +} + StreamRange HubServiceConnectionImpl::ListHubSpokes( google::cloud::networkconnectivity::v1::ListHubSpokesRequest request) { @@ -358,6 +517,59 @@ HubServiceConnectionImpl::CreateSpoke( polling_policy(*current), __func__); } +StatusOr HubServiceConnectionImpl::CreateSpoke( + ExperimentalTag, NoAwaitTag, + google::cloud::networkconnectivity::v1::CreateSpokeRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateSpoke(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::networkconnectivity::v1::CreateSpokeRequest const& + request) { + return stub_->CreateSpoke(context, options, request); + }, + *current, request, __func__); +} + +future> +HubServiceConnectionImpl::CreateSpoke( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to CreateSpoke", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::networkconnectivity::v1::Spoke>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::networkconnectivity::v1::Spoke>, + polling_policy(*current), __func__); +} + future> HubServiceConnectionImpl::UpdateSpoke( google::cloud::networkconnectivity::v1::UpdateSpokeRequest const& request) { @@ -398,6 +610,59 @@ HubServiceConnectionImpl::UpdateSpoke( polling_policy(*current), __func__); } +StatusOr HubServiceConnectionImpl::UpdateSpoke( + ExperimentalTag, NoAwaitTag, + google::cloud::networkconnectivity::v1::UpdateSpokeRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UpdateSpoke(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::networkconnectivity::v1::UpdateSpokeRequest const& + request) { + return stub_->UpdateSpoke(context, options, request); + }, + *current, request, __func__); +} + +future> +HubServiceConnectionImpl::UpdateSpoke( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to UpdateSpoke", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::networkconnectivity::v1::Spoke>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::networkconnectivity::v1::Spoke>, + polling_policy(*current), __func__); +} + future> HubServiceConnectionImpl::RejectHubSpoke( google::cloud::networkconnectivity::v1::RejectHubSpokeRequest const& @@ -439,6 +704,62 @@ HubServiceConnectionImpl::RejectHubSpoke( polling_policy(*current), __func__); } +StatusOr +HubServiceConnectionImpl::RejectHubSpoke( + ExperimentalTag, NoAwaitTag, + google::cloud::networkconnectivity::v1::RejectHubSpokeRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->RejectHubSpoke(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::networkconnectivity::v1::RejectHubSpokeRequest const& + request) { + return stub_->RejectHubSpoke(context, options, request); + }, + *current, request, __func__); +} + +future> +HubServiceConnectionImpl::RejectHubSpoke( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to RejectHubSpoke", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::networkconnectivity::v1::RejectHubSpokeResponse>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::networkconnectivity::v1::RejectHubSpokeResponse>, + polling_policy(*current), __func__); +} + future> HubServiceConnectionImpl::AcceptHubSpoke( google::cloud::networkconnectivity::v1::AcceptHubSpokeRequest const& @@ -480,6 +801,62 @@ HubServiceConnectionImpl::AcceptHubSpoke( polling_policy(*current), __func__); } +StatusOr +HubServiceConnectionImpl::AcceptHubSpoke( + ExperimentalTag, NoAwaitTag, + google::cloud::networkconnectivity::v1::AcceptHubSpokeRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->AcceptHubSpoke(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::networkconnectivity::v1::AcceptHubSpokeRequest const& + request) { + return stub_->AcceptHubSpoke(context, options, request); + }, + *current, request, __func__); +} + +future> +HubServiceConnectionImpl::AcceptHubSpoke( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to AcceptHubSpoke", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::networkconnectivity::v1::AcceptHubSpokeResponse>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::networkconnectivity::v1::AcceptHubSpokeResponse>, + polling_policy(*current), __func__); +} + future> HubServiceConnectionImpl::DeleteSpoke( google::cloud::networkconnectivity::v1::DeleteSpokeRequest const& request) { @@ -520,6 +897,59 @@ HubServiceConnectionImpl::DeleteSpoke( polling_policy(*current), __func__); } +StatusOr HubServiceConnectionImpl::DeleteSpoke( + ExperimentalTag, NoAwaitTag, + google::cloud::networkconnectivity::v1::DeleteSpokeRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteSpoke(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::networkconnectivity::v1::DeleteSpokeRequest const& + request) { + return stub_->DeleteSpoke(context, options, request); + }, + *current, request, __func__); +} + +future> +HubServiceConnectionImpl::DeleteSpoke( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteSpoke", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::networkconnectivity::v1::OperationMetadata>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::cloud::networkconnectivity::v1::OperationMetadata>, + polling_policy(*current), __func__); +} + StatusOr HubServiceConnectionImpl::GetRouteTable( google::cloud::networkconnectivity::v1::GetRouteTableRequest const& diff --git a/google/cloud/networkconnectivity/v1/internal/hub_connection_impl.h b/google/cloud/networkconnectivity/v1/internal/hub_connection_impl.h index 3cae96d963720..67f6f823fac7b 100644 --- a/google/cloud/networkconnectivity/v1/internal/hub_connection_impl.h +++ b/google/cloud/networkconnectivity/v1/internal/hub_connection_impl.h @@ -63,14 +63,41 @@ class HubServiceConnectionImpl google::cloud::networkconnectivity::v1::CreateHubRequest const& request) override; + StatusOr CreateHub( + ExperimentalTag, NoAwaitTag, + google::cloud::networkconnectivity::v1::CreateHubRequest const& request) + override; + + future> CreateHub( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateHub( google::cloud::networkconnectivity::v1::UpdateHubRequest const& request) override; + StatusOr UpdateHub( + ExperimentalTag, NoAwaitTag, + google::cloud::networkconnectivity::v1::UpdateHubRequest const& request) + override; + + future> UpdateHub( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteHub(google::cloud::networkconnectivity::v1::DeleteHubRequest const& request) override; + StatusOr DeleteHub( + ExperimentalTag, NoAwaitTag, + google::cloud::networkconnectivity::v1::DeleteHubRequest const& request) + override; + + future> + DeleteHub(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListHubSpokes( google::cloud::networkconnectivity::v1::ListHubSpokesRequest request) override; @@ -87,26 +114,73 @@ class HubServiceConnectionImpl google::cloud::networkconnectivity::v1::CreateSpokeRequest const& request) override; + StatusOr CreateSpoke( + ExperimentalTag, NoAwaitTag, + google::cloud::networkconnectivity::v1::CreateSpokeRequest const& request) + override; + + future> CreateSpoke( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateSpoke( google::cloud::networkconnectivity::v1::UpdateSpokeRequest const& request) override; + StatusOr UpdateSpoke( + ExperimentalTag, NoAwaitTag, + google::cloud::networkconnectivity::v1::UpdateSpokeRequest const& request) + override; + + future> UpdateSpoke( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future< StatusOr> RejectHubSpoke( google::cloud::networkconnectivity::v1::RejectHubSpokeRequest const& request) override; + StatusOr RejectHubSpoke( + ExperimentalTag, NoAwaitTag, + google::cloud::networkconnectivity::v1::RejectHubSpokeRequest const& + request) override; + + future< + StatusOr> + RejectHubSpoke(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future< StatusOr> AcceptHubSpoke( google::cloud::networkconnectivity::v1::AcceptHubSpokeRequest const& request) override; + StatusOr AcceptHubSpoke( + ExperimentalTag, NoAwaitTag, + google::cloud::networkconnectivity::v1::AcceptHubSpokeRequest const& + request) override; + + future< + StatusOr> + AcceptHubSpoke(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteSpoke(google::cloud::networkconnectivity::v1::DeleteSpokeRequest const& request) override; + StatusOr DeleteSpoke( + ExperimentalTag, NoAwaitTag, + google::cloud::networkconnectivity::v1::DeleteSpokeRequest const& request) + override; + + future> + DeleteSpoke(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetRouteTable( google::cloud::networkconnectivity::v1::GetRouteTableRequest const& request) override; diff --git a/google/cloud/networkconnectivity/v1/internal/hub_tracing_connection.cc b/google/cloud/networkconnectivity/v1/internal/hub_tracing_connection.cc index 1dffe416938df..a7b41dc402293 100644 --- a/google/cloud/networkconnectivity/v1/internal/hub_tracing_connection.cc +++ b/google/cloud/networkconnectivity/v1/internal/hub_tracing_connection.cc @@ -63,6 +63,26 @@ HubServiceTracingConnection::CreateHub( return internal::EndSpan(std::move(span), child_->CreateHub(request)); } +StatusOr HubServiceTracingConnection::CreateHub( + ExperimentalTag, NoAwaitTag, + google::cloud::networkconnectivity::v1::CreateHubRequest const& request) { + auto span = internal::MakeSpan( + "networkconnectivity_v1::HubServiceConnection::CreateHub"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->CreateHub(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +HubServiceTracingConnection::CreateHub( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "networkconnectivity_v1::HubServiceConnection::CreateHub"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->CreateHub(ExperimentalTag{}, operation)); +} + future> HubServiceTracingConnection::UpdateHub( google::cloud::networkconnectivity::v1::UpdateHubRequest const& request) { @@ -72,6 +92,26 @@ HubServiceTracingConnection::UpdateHub( return internal::EndSpan(std::move(span), child_->UpdateHub(request)); } +StatusOr HubServiceTracingConnection::UpdateHub( + ExperimentalTag, NoAwaitTag, + google::cloud::networkconnectivity::v1::UpdateHubRequest const& request) { + auto span = internal::MakeSpan( + "networkconnectivity_v1::HubServiceConnection::UpdateHub"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->UpdateHub(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +HubServiceTracingConnection::UpdateHub( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "networkconnectivity_v1::HubServiceConnection::UpdateHub"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->UpdateHub(ExperimentalTag{}, operation)); +} + future> HubServiceTracingConnection::DeleteHub( google::cloud::networkconnectivity::v1::DeleteHubRequest const& request) { @@ -81,6 +121,26 @@ HubServiceTracingConnection::DeleteHub( return internal::EndSpan(std::move(span), child_->DeleteHub(request)); } +StatusOr HubServiceTracingConnection::DeleteHub( + ExperimentalTag, NoAwaitTag, + google::cloud::networkconnectivity::v1::DeleteHubRequest const& request) { + auto span = internal::MakeSpan( + "networkconnectivity_v1::HubServiceConnection::DeleteHub"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->DeleteHub(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +HubServiceTracingConnection::DeleteHub( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "networkconnectivity_v1::HubServiceConnection::DeleteHub"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->DeleteHub(ExperimentalTag{}, operation)); +} + StreamRange HubServiceTracingConnection::ListHubSpokes( google::cloud::networkconnectivity::v1::ListHubSpokesRequest request) { @@ -123,6 +183,27 @@ HubServiceTracingConnection::CreateSpoke( return internal::EndSpan(std::move(span), child_->CreateSpoke(request)); } +StatusOr +HubServiceTracingConnection::CreateSpoke( + ExperimentalTag, NoAwaitTag, + google::cloud::networkconnectivity::v1::CreateSpokeRequest const& request) { + auto span = internal::MakeSpan( + "networkconnectivity_v1::HubServiceConnection::CreateSpoke"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->CreateSpoke(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +HubServiceTracingConnection::CreateSpoke( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "networkconnectivity_v1::HubServiceConnection::CreateSpoke"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->CreateSpoke(ExperimentalTag{}, operation)); +} + future> HubServiceTracingConnection::UpdateSpoke( google::cloud::networkconnectivity::v1::UpdateSpokeRequest const& request) { @@ -132,6 +213,27 @@ HubServiceTracingConnection::UpdateSpoke( return internal::EndSpan(std::move(span), child_->UpdateSpoke(request)); } +StatusOr +HubServiceTracingConnection::UpdateSpoke( + ExperimentalTag, NoAwaitTag, + google::cloud::networkconnectivity::v1::UpdateSpokeRequest const& request) { + auto span = internal::MakeSpan( + "networkconnectivity_v1::HubServiceConnection::UpdateSpoke"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->UpdateSpoke(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +HubServiceTracingConnection::UpdateSpoke( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "networkconnectivity_v1::HubServiceConnection::UpdateSpoke"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->UpdateSpoke(ExperimentalTag{}, operation)); +} + future> HubServiceTracingConnection::RejectHubSpoke( google::cloud::networkconnectivity::v1::RejectHubSpokeRequest const& @@ -142,6 +244,28 @@ HubServiceTracingConnection::RejectHubSpoke( return internal::EndSpan(std::move(span), child_->RejectHubSpoke(request)); } +StatusOr +HubServiceTracingConnection::RejectHubSpoke( + ExperimentalTag, NoAwaitTag, + google::cloud::networkconnectivity::v1::RejectHubSpokeRequest const& + request) { + auto span = internal::MakeSpan( + "networkconnectivity_v1::HubServiceConnection::RejectHubSpoke"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->RejectHubSpoke(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +HubServiceTracingConnection::RejectHubSpoke( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "networkconnectivity_v1::HubServiceConnection::RejectHubSpoke"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->RejectHubSpoke(ExperimentalTag{}, operation)); +} + future> HubServiceTracingConnection::AcceptHubSpoke( google::cloud::networkconnectivity::v1::AcceptHubSpokeRequest const& @@ -152,6 +276,28 @@ HubServiceTracingConnection::AcceptHubSpoke( return internal::EndSpan(std::move(span), child_->AcceptHubSpoke(request)); } +StatusOr +HubServiceTracingConnection::AcceptHubSpoke( + ExperimentalTag, NoAwaitTag, + google::cloud::networkconnectivity::v1::AcceptHubSpokeRequest const& + request) { + auto span = internal::MakeSpan( + "networkconnectivity_v1::HubServiceConnection::AcceptHubSpoke"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->AcceptHubSpoke(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +HubServiceTracingConnection::AcceptHubSpoke( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "networkconnectivity_v1::HubServiceConnection::AcceptHubSpoke"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->AcceptHubSpoke(ExperimentalTag{}, operation)); +} + future> HubServiceTracingConnection::DeleteSpoke( google::cloud::networkconnectivity::v1::DeleteSpokeRequest const& request) { @@ -161,6 +307,27 @@ HubServiceTracingConnection::DeleteSpoke( return internal::EndSpan(std::move(span), child_->DeleteSpoke(request)); } +StatusOr +HubServiceTracingConnection::DeleteSpoke( + ExperimentalTag, NoAwaitTag, + google::cloud::networkconnectivity::v1::DeleteSpokeRequest const& request) { + auto span = internal::MakeSpan( + "networkconnectivity_v1::HubServiceConnection::DeleteSpoke"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->DeleteSpoke(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +HubServiceTracingConnection::DeleteSpoke( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "networkconnectivity_v1::HubServiceConnection::DeleteSpoke"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->DeleteSpoke(ExperimentalTag{}, operation)); +} + StatusOr HubServiceTracingConnection::GetRouteTable( google::cloud::networkconnectivity::v1::GetRouteTableRequest const& diff --git a/google/cloud/networkconnectivity/v1/internal/hub_tracing_connection.h b/google/cloud/networkconnectivity/v1/internal/hub_tracing_connection.h index da2a4a41bc0ac..6a364d57cd4a6 100644 --- a/google/cloud/networkconnectivity/v1/internal/hub_tracing_connection.h +++ b/google/cloud/networkconnectivity/v1/internal/hub_tracing_connection.h @@ -51,14 +51,41 @@ class HubServiceTracingConnection google::cloud::networkconnectivity::v1::CreateHubRequest const& request) override; + StatusOr CreateHub( + ExperimentalTag, NoAwaitTag, + google::cloud::networkconnectivity::v1::CreateHubRequest const& request) + override; + + future> CreateHub( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateHub( google::cloud::networkconnectivity::v1::UpdateHubRequest const& request) override; + StatusOr UpdateHub( + ExperimentalTag, NoAwaitTag, + google::cloud::networkconnectivity::v1::UpdateHubRequest const& request) + override; + + future> UpdateHub( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteHub(google::cloud::networkconnectivity::v1::DeleteHubRequest const& request) override; + StatusOr DeleteHub( + ExperimentalTag, NoAwaitTag, + google::cloud::networkconnectivity::v1::DeleteHubRequest const& request) + override; + + future> + DeleteHub(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListHubSpokes( google::cloud::networkconnectivity::v1::ListHubSpokesRequest request) override; @@ -75,26 +102,73 @@ class HubServiceTracingConnection google::cloud::networkconnectivity::v1::CreateSpokeRequest const& request) override; + StatusOr CreateSpoke( + ExperimentalTag, NoAwaitTag, + google::cloud::networkconnectivity::v1::CreateSpokeRequest const& request) + override; + + future> CreateSpoke( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateSpoke( google::cloud::networkconnectivity::v1::UpdateSpokeRequest const& request) override; + StatusOr UpdateSpoke( + ExperimentalTag, NoAwaitTag, + google::cloud::networkconnectivity::v1::UpdateSpokeRequest const& request) + override; + + future> UpdateSpoke( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future< StatusOr> RejectHubSpoke( google::cloud::networkconnectivity::v1::RejectHubSpokeRequest const& request) override; + StatusOr RejectHubSpoke( + ExperimentalTag, NoAwaitTag, + google::cloud::networkconnectivity::v1::RejectHubSpokeRequest const& + request) override; + + future< + StatusOr> + RejectHubSpoke(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future< StatusOr> AcceptHubSpoke( google::cloud::networkconnectivity::v1::AcceptHubSpokeRequest const& request) override; + StatusOr AcceptHubSpoke( + ExperimentalTag, NoAwaitTag, + google::cloud::networkconnectivity::v1::AcceptHubSpokeRequest const& + request) override; + + future< + StatusOr> + AcceptHubSpoke(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteSpoke(google::cloud::networkconnectivity::v1::DeleteSpokeRequest const& request) override; + StatusOr DeleteSpoke( + ExperimentalTag, NoAwaitTag, + google::cloud::networkconnectivity::v1::DeleteSpokeRequest const& request) + override; + + future> + DeleteSpoke(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetRouteTable( google::cloud::networkconnectivity::v1::GetRouteTableRequest const& request) override; diff --git a/google/cloud/networkconnectivity/v1/internal/policy_based_routing_connection_impl.cc b/google/cloud/networkconnectivity/v1/internal/policy_based_routing_connection_impl.cc index ec9585ed7dac2..890084598cf59 100644 --- a/google/cloud/networkconnectivity/v1/internal/policy_based_routing_connection_impl.cc +++ b/google/cloud/networkconnectivity/v1/internal/policy_based_routing_connection_impl.cc @@ -172,6 +172,61 @@ PolicyBasedRoutingServiceConnectionImpl::CreatePolicyBasedRoute( polling_policy(*current), __func__); } +StatusOr +PolicyBasedRoutingServiceConnectionImpl::CreatePolicyBasedRoute( + ExperimentalTag, NoAwaitTag, + google::cloud::networkconnectivity::v1::CreatePolicyBasedRouteRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreatePolicyBasedRoute(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::networkconnectivity::v1:: + CreatePolicyBasedRouteRequest const& request) { + return stub_->CreatePolicyBasedRoute(context, options, request); + }, + *current, request, __func__); +} + +future> +PolicyBasedRoutingServiceConnectionImpl::CreatePolicyBasedRoute( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to CreatePolicyBasedRoute", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::networkconnectivity::v1::PolicyBasedRoute>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::networkconnectivity::v1::PolicyBasedRoute>, + polling_policy(*current), __func__); +} + future> PolicyBasedRoutingServiceConnectionImpl::DeletePolicyBasedRoute( google::cloud::networkconnectivity::v1::DeletePolicyBasedRouteRequest const& @@ -212,6 +267,61 @@ PolicyBasedRoutingServiceConnectionImpl::DeletePolicyBasedRoute( polling_policy(*current), __func__); } +StatusOr +PolicyBasedRoutingServiceConnectionImpl::DeletePolicyBasedRoute( + ExperimentalTag, NoAwaitTag, + google::cloud::networkconnectivity::v1::DeletePolicyBasedRouteRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeletePolicyBasedRoute(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::networkconnectivity::v1:: + DeletePolicyBasedRouteRequest const& request) { + return stub_->DeletePolicyBasedRoute(context, options, request); + }, + *current, request, __func__); +} + +future> +PolicyBasedRoutingServiceConnectionImpl::DeletePolicyBasedRoute( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DeletePolicyBasedRoute", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::networkconnectivity::v1::OperationMetadata>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::cloud::networkconnectivity::v1::OperationMetadata>, + polling_policy(*current), __func__); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace networkconnectivity_v1_internal } // namespace cloud diff --git a/google/cloud/networkconnectivity/v1/internal/policy_based_routing_connection_impl.h b/google/cloud/networkconnectivity/v1/internal/policy_based_routing_connection_impl.h index 39c151c827b0f..78862c9c1b026 100644 --- a/google/cloud/networkconnectivity/v1/internal/policy_based_routing_connection_impl.h +++ b/google/cloud/networkconnectivity/v1/internal/policy_based_routing_connection_impl.h @@ -69,11 +69,31 @@ class PolicyBasedRoutingServiceConnectionImpl google::cloud::networkconnectivity::v1:: CreatePolicyBasedRouteRequest const& request) override; + StatusOr CreatePolicyBasedRoute( + ExperimentalTag, NoAwaitTag, + google::cloud::networkconnectivity::v1:: + CreatePolicyBasedRouteRequest const& request) override; + + future> + CreatePolicyBasedRoute( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeletePolicyBasedRoute( google::cloud::networkconnectivity::v1:: DeletePolicyBasedRouteRequest const& request) override; + StatusOr DeletePolicyBasedRoute( + ExperimentalTag, NoAwaitTag, + google::cloud::networkconnectivity::v1:: + DeletePolicyBasedRouteRequest const& request) override; + + future> + DeletePolicyBasedRoute( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + private: std::unique_ptr background_; std::shared_ptr< diff --git a/google/cloud/networkconnectivity/v1/internal/policy_based_routing_tracing_connection.cc b/google/cloud/networkconnectivity/v1/internal/policy_based_routing_tracing_connection.cc index 4d1ffd4361ff3..489ce62da5e99 100644 --- a/google/cloud/networkconnectivity/v1/internal/policy_based_routing_tracing_connection.cc +++ b/google/cloud/networkconnectivity/v1/internal/policy_based_routing_tracing_connection.cc @@ -73,6 +73,31 @@ PolicyBasedRoutingServiceTracingConnection::CreatePolicyBasedRoute( child_->CreatePolicyBasedRoute(request)); } +StatusOr +PolicyBasedRoutingServiceTracingConnection::CreatePolicyBasedRoute( + ExperimentalTag, NoAwaitTag, + google::cloud::networkconnectivity::v1::CreatePolicyBasedRouteRequest const& + request) { + auto span = internal::MakeSpan( + "networkconnectivity_v1::PolicyBasedRoutingServiceConnection::" + "CreatePolicyBasedRoute"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->CreatePolicyBasedRoute(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +PolicyBasedRoutingServiceTracingConnection::CreatePolicyBasedRoute( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "networkconnectivity_v1::PolicyBasedRoutingServiceConnection::" + "CreatePolicyBasedRoute"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->CreatePolicyBasedRoute( + ExperimentalTag{}, operation)); +} + future> PolicyBasedRoutingServiceTracingConnection::DeletePolicyBasedRoute( google::cloud::networkconnectivity::v1::DeletePolicyBasedRouteRequest const& @@ -85,6 +110,31 @@ PolicyBasedRoutingServiceTracingConnection::DeletePolicyBasedRoute( child_->DeletePolicyBasedRoute(request)); } +StatusOr +PolicyBasedRoutingServiceTracingConnection::DeletePolicyBasedRoute( + ExperimentalTag, NoAwaitTag, + google::cloud::networkconnectivity::v1::DeletePolicyBasedRouteRequest const& + request) { + auto span = internal::MakeSpan( + "networkconnectivity_v1::PolicyBasedRoutingServiceConnection::" + "DeletePolicyBasedRoute"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->DeletePolicyBasedRoute(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +PolicyBasedRoutingServiceTracingConnection::DeletePolicyBasedRoute( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "networkconnectivity_v1::PolicyBasedRoutingServiceConnection::" + "DeletePolicyBasedRoute"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->DeletePolicyBasedRoute( + ExperimentalTag{}, operation)); +} + #endif // GOOGLE_CLOUD_CPP_HAVE_OPENTELEMETRY std::shared_ptr diff --git a/google/cloud/networkconnectivity/v1/internal/policy_based_routing_tracing_connection.h b/google/cloud/networkconnectivity/v1/internal/policy_based_routing_tracing_connection.h index 289ce332254c9..fb4d3015c473f 100644 --- a/google/cloud/networkconnectivity/v1/internal/policy_based_routing_tracing_connection.h +++ b/google/cloud/networkconnectivity/v1/internal/policy_based_routing_tracing_connection.h @@ -57,11 +57,31 @@ class PolicyBasedRoutingServiceTracingConnection google::cloud::networkconnectivity::v1:: CreatePolicyBasedRouteRequest const& request) override; + StatusOr CreatePolicyBasedRoute( + ExperimentalTag, NoAwaitTag, + google::cloud::networkconnectivity::v1:: + CreatePolicyBasedRouteRequest const& request) override; + + future> + CreatePolicyBasedRoute( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeletePolicyBasedRoute( google::cloud::networkconnectivity::v1:: DeletePolicyBasedRouteRequest const& request) override; + StatusOr DeletePolicyBasedRoute( + ExperimentalTag, NoAwaitTag, + google::cloud::networkconnectivity::v1:: + DeletePolicyBasedRouteRequest const& request) override; + + future> + DeletePolicyBasedRoute( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + private: std::shared_ptr child_; diff --git a/google/cloud/networkconnectivity/v1/mocks/mock_hub_connection.h b/google/cloud/networkconnectivity/v1/mocks/mock_hub_connection.h index 9eefec8737eec..79e192d5350b2 100644 --- a/google/cloud/networkconnectivity/v1/mocks/mock_hub_connection.h +++ b/google/cloud/networkconnectivity/v1/mocks/mock_hub_connection.h @@ -62,11 +62,35 @@ class MockHubServiceConnection (google::cloud::networkconnectivity::v1::CreateHubRequest const& request), (override)); + MOCK_METHOD( + StatusOr, CreateHub, + (ExperimentalTag, NoAwaitTag, + google::cloud::networkconnectivity::v1::CreateHubRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateHub, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, UpdateHub, (google::cloud::networkconnectivity::v1::UpdateHubRequest const& request), (override)); + MOCK_METHOD( + StatusOr, UpdateHub, + (ExperimentalTag, NoAwaitTag, + google::cloud::networkconnectivity::v1::UpdateHubRequest const& request), + (override)); + + MOCK_METHOD(future>, + UpdateHub, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future< StatusOr>, @@ -74,6 +98,19 @@ class MockHubServiceConnection (google::cloud::networkconnectivity::v1::DeleteHubRequest const& request), (override)); + MOCK_METHOD( + StatusOr, DeleteHub, + (ExperimentalTag, NoAwaitTag, + google::cloud::networkconnectivity::v1::DeleteHubRequest const& request), + (override)); + + MOCK_METHOD( + future< + StatusOr>, + DeleteHub, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( (StreamRange), ListHubSpokes, @@ -96,12 +133,36 @@ class MockHubServiceConnection request), (override)); + MOCK_METHOD(StatusOr, CreateSpoke, + (ExperimentalTag, NoAwaitTag, + google::cloud::networkconnectivity::v1::CreateSpokeRequest const& + request), + (override)); + + MOCK_METHOD(future>, + CreateSpoke, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, UpdateSpoke, (google::cloud::networkconnectivity::v1::UpdateSpokeRequest const& request), (override)); + MOCK_METHOD(StatusOr, UpdateSpoke, + (ExperimentalTag, NoAwaitTag, + google::cloud::networkconnectivity::v1::UpdateSpokeRequest const& + request), + (override)); + + MOCK_METHOD(future>, + UpdateSpoke, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, @@ -110,6 +171,20 @@ class MockHubServiceConnection request), (override)); + MOCK_METHOD( + StatusOr, RejectHubSpoke, + (ExperimentalTag, NoAwaitTag, + google::cloud::networkconnectivity::v1::RejectHubSpokeRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + RejectHubSpoke, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, @@ -118,6 +193,20 @@ class MockHubServiceConnection request), (override)); + MOCK_METHOD( + StatusOr, AcceptHubSpoke, + (ExperimentalTag, NoAwaitTag, + google::cloud::networkconnectivity::v1::AcceptHubSpokeRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + AcceptHubSpoke, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future< StatusOr>, @@ -126,6 +215,19 @@ class MockHubServiceConnection request), (override)); + MOCK_METHOD(StatusOr, DeleteSpoke, + (ExperimentalTag, NoAwaitTag, + google::cloud::networkconnectivity::v1::DeleteSpokeRequest const& + request), + (override)); + + MOCK_METHOD( + future< + StatusOr>, + DeleteSpoke, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr, GetRouteTable, diff --git a/google/cloud/networkconnectivity/v1/mocks/mock_policy_based_routing_connection.h b/google/cloud/networkconnectivity/v1/mocks/mock_policy_based_routing_connection.h index 68e9f1f51c83c..7aa838cbcdb51 100644 --- a/google/cloud/networkconnectivity/v1/mocks/mock_policy_based_routing_connection.h +++ b/google/cloud/networkconnectivity/v1/mocks/mock_policy_based_routing_connection.h @@ -69,6 +69,19 @@ class MockPolicyBasedRoutingServiceConnection CreatePolicyBasedRouteRequest const& request), (override)); + MOCK_METHOD(StatusOr, CreatePolicyBasedRoute, + (ExperimentalTag, NoAwaitTag, + google::cloud::networkconnectivity::v1:: + CreatePolicyBasedRouteRequest const& request), + (override)); + + MOCK_METHOD( + future< + StatusOr>, + CreatePolicyBasedRoute, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future< StatusOr>, @@ -76,6 +89,19 @@ class MockPolicyBasedRoutingServiceConnection (google::cloud::networkconnectivity::v1:: DeletePolicyBasedRouteRequest const& request), (override)); + + MOCK_METHOD(StatusOr, DeletePolicyBasedRoute, + (ExperimentalTag, NoAwaitTag, + google::cloud::networkconnectivity::v1:: + DeletePolicyBasedRouteRequest const& request), + (override)); + + MOCK_METHOD( + future< + StatusOr>, + DeletePolicyBasedRoute, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); }; GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END diff --git a/google/cloud/networkconnectivity/v1/policy_based_routing_connection.cc b/google/cloud/networkconnectivity/v1/policy_based_routing_connection.cc index 655a2833cf642..8f6004078790b 100644 --- a/google/cloud/networkconnectivity/v1/policy_based_routing_connection.cc +++ b/google/cloud/networkconnectivity/v1/policy_based_routing_connection.cc @@ -62,6 +62,23 @@ PolicyBasedRoutingServiceConnection::CreatePolicyBasedRoute( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +PolicyBasedRoutingServiceConnection::CreatePolicyBasedRoute( + ExperimentalTag, NoAwaitTag, + google::cloud::networkconnectivity::v1:: + CreatePolicyBasedRouteRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +PolicyBasedRoutingServiceConnection::CreatePolicyBasedRoute( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> PolicyBasedRoutingServiceConnection::DeletePolicyBasedRoute( google::cloud::networkconnectivity::v1:: @@ -71,6 +88,23 @@ PolicyBasedRoutingServiceConnection::DeletePolicyBasedRoute( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +PolicyBasedRoutingServiceConnection::DeletePolicyBasedRoute( + ExperimentalTag, NoAwaitTag, + google::cloud::networkconnectivity::v1:: + DeletePolicyBasedRouteRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +PolicyBasedRoutingServiceConnection::DeletePolicyBasedRoute( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + std::shared_ptr MakePolicyBasedRoutingServiceConnection(Options options) { internal::CheckExpectedOptions CreatePolicyBasedRoute( + ExperimentalTag, NoAwaitTag, + google::cloud::networkconnectivity::v1:: + CreatePolicyBasedRouteRequest const& request); + + virtual future< + StatusOr> + CreatePolicyBasedRoute(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future< StatusOr> DeletePolicyBasedRoute(google::cloud::networkconnectivity::v1:: DeletePolicyBasedRouteRequest const& request); + + virtual StatusOr DeletePolicyBasedRoute( + ExperimentalTag, NoAwaitTag, + google::cloud::networkconnectivity::v1:: + DeletePolicyBasedRouteRequest const& request); + + virtual future< + StatusOr> + DeletePolicyBasedRoute(ExperimentalTag, + google::longrunning::Operation const& operation); }; /** diff --git a/google/cloud/networkmanagement/v1/internal/reachability_connection_impl.cc b/google/cloud/networkmanagement/v1/internal/reachability_connection_impl.cc index 459494c13f290..dcda991beedac 100644 --- a/google/cloud/networkmanagement/v1/internal/reachability_connection_impl.cc +++ b/google/cloud/networkmanagement/v1/internal/reachability_connection_impl.cc @@ -167,6 +167,61 @@ ReachabilityServiceConnectionImpl::CreateConnectivityTest( polling_policy(*current), __func__); } +StatusOr +ReachabilityServiceConnectionImpl::CreateConnectivityTest( + ExperimentalTag, NoAwaitTag, + google::cloud::networkmanagement::v1::CreateConnectivityTestRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateConnectivityTest(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::networkmanagement::v1:: + CreateConnectivityTestRequest const& request) { + return stub_->CreateConnectivityTest(context, options, request); + }, + *current, request, __func__); +} + +future> +ReachabilityServiceConnectionImpl::CreateConnectivityTest( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to CreateConnectivityTest", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::networkmanagement::v1::ConnectivityTest>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::networkmanagement::v1::ConnectivityTest>, + polling_policy(*current), __func__); +} + future> ReachabilityServiceConnectionImpl::UpdateConnectivityTest( google::cloud::networkmanagement::v1::UpdateConnectivityTestRequest const& @@ -207,6 +262,61 @@ ReachabilityServiceConnectionImpl::UpdateConnectivityTest( polling_policy(*current), __func__); } +StatusOr +ReachabilityServiceConnectionImpl::UpdateConnectivityTest( + ExperimentalTag, NoAwaitTag, + google::cloud::networkmanagement::v1::UpdateConnectivityTestRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UpdateConnectivityTest(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::networkmanagement::v1:: + UpdateConnectivityTestRequest const& request) { + return stub_->UpdateConnectivityTest(context, options, request); + }, + *current, request, __func__); +} + +future> +ReachabilityServiceConnectionImpl::UpdateConnectivityTest( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to UpdateConnectivityTest", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::networkmanagement::v1::ConnectivityTest>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::networkmanagement::v1::ConnectivityTest>, + polling_policy(*current), __func__); +} + future> ReachabilityServiceConnectionImpl::RerunConnectivityTest( google::cloud::networkmanagement::v1::RerunConnectivityTestRequest const& @@ -247,6 +357,61 @@ ReachabilityServiceConnectionImpl::RerunConnectivityTest( polling_policy(*current), __func__); } +StatusOr +ReachabilityServiceConnectionImpl::RerunConnectivityTest( + ExperimentalTag, NoAwaitTag, + google::cloud::networkmanagement::v1::RerunConnectivityTestRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->RerunConnectivityTest(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::networkmanagement::v1:: + RerunConnectivityTestRequest const& request) { + return stub_->RerunConnectivityTest(context, options, request); + }, + *current, request, __func__); +} + +future> +ReachabilityServiceConnectionImpl::RerunConnectivityTest( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to RerunConnectivityTest", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::networkmanagement::v1::ConnectivityTest>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::networkmanagement::v1::ConnectivityTest>, + polling_policy(*current), __func__); +} + future> ReachabilityServiceConnectionImpl::DeleteConnectivityTest( google::cloud::networkmanagement::v1::DeleteConnectivityTestRequest const& @@ -287,6 +452,61 @@ ReachabilityServiceConnectionImpl::DeleteConnectivityTest( polling_policy(*current), __func__); } +StatusOr +ReachabilityServiceConnectionImpl::DeleteConnectivityTest( + ExperimentalTag, NoAwaitTag, + google::cloud::networkmanagement::v1::DeleteConnectivityTestRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteConnectivityTest(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::networkmanagement::v1:: + DeleteConnectivityTestRequest const& request) { + return stub_->DeleteConnectivityTest(context, options, request); + }, + *current, request, __func__); +} + +future> +ReachabilityServiceConnectionImpl::DeleteConnectivityTest( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteConnectivityTest", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::networkmanagement::v1::OperationMetadata>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::cloud::networkmanagement::v1::OperationMetadata>, + polling_policy(*current), __func__); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace networkmanagement_v1_internal } // namespace cloud diff --git a/google/cloud/networkmanagement/v1/internal/reachability_connection_impl.h b/google/cloud/networkmanagement/v1/internal/reachability_connection_impl.h index cccf5c8722ff0..c8620bd40e812 100644 --- a/google/cloud/networkmanagement/v1/internal/reachability_connection_impl.h +++ b/google/cloud/networkmanagement/v1/internal/reachability_connection_impl.h @@ -68,21 +68,61 @@ class ReachabilityServiceConnectionImpl google::cloud::networkmanagement::v1::CreateConnectivityTestRequest const& request) override; + StatusOr CreateConnectivityTest( + ExperimentalTag, NoAwaitTag, + google::cloud::networkmanagement::v1::CreateConnectivityTestRequest const& + request) override; + + future> + CreateConnectivityTest( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateConnectivityTest( google::cloud::networkmanagement::v1::UpdateConnectivityTestRequest const& request) override; + StatusOr UpdateConnectivityTest( + ExperimentalTag, NoAwaitTag, + google::cloud::networkmanagement::v1::UpdateConnectivityTestRequest const& + request) override; + + future> + UpdateConnectivityTest( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> RerunConnectivityTest( google::cloud::networkmanagement::v1::RerunConnectivityTestRequest const& request) override; + StatusOr RerunConnectivityTest( + ExperimentalTag, NoAwaitTag, + google::cloud::networkmanagement::v1::RerunConnectivityTestRequest const& + request) override; + + future> + RerunConnectivityTest( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteConnectivityTest( google::cloud::networkmanagement::v1::DeleteConnectivityTestRequest const& request) override; + StatusOr DeleteConnectivityTest( + ExperimentalTag, NoAwaitTag, + google::cloud::networkmanagement::v1::DeleteConnectivityTestRequest const& + request) override; + + future> + DeleteConnectivityTest( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + private: std::unique_ptr background_; std::shared_ptr stub_; diff --git a/google/cloud/networkmanagement/v1/internal/reachability_tracing_connection.cc b/google/cloud/networkmanagement/v1/internal/reachability_tracing_connection.cc index 1ea53fcededc2..b8f61dafff46a 100644 --- a/google/cloud/networkmanagement/v1/internal/reachability_tracing_connection.cc +++ b/google/cloud/networkmanagement/v1/internal/reachability_tracing_connection.cc @@ -70,6 +70,31 @@ ReachabilityServiceTracingConnection::CreateConnectivityTest( child_->CreateConnectivityTest(request)); } +StatusOr +ReachabilityServiceTracingConnection::CreateConnectivityTest( + ExperimentalTag, NoAwaitTag, + google::cloud::networkmanagement::v1::CreateConnectivityTestRequest const& + request) { + auto span = internal::MakeSpan( + "networkmanagement_v1::ReachabilityServiceConnection::" + "CreateConnectivityTest"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->CreateConnectivityTest(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +ReachabilityServiceTracingConnection::CreateConnectivityTest( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "networkmanagement_v1::ReachabilityServiceConnection::" + "CreateConnectivityTest"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->CreateConnectivityTest( + ExperimentalTag{}, operation)); +} + future> ReachabilityServiceTracingConnection::UpdateConnectivityTest( google::cloud::networkmanagement::v1::UpdateConnectivityTestRequest const& @@ -82,6 +107,31 @@ ReachabilityServiceTracingConnection::UpdateConnectivityTest( child_->UpdateConnectivityTest(request)); } +StatusOr +ReachabilityServiceTracingConnection::UpdateConnectivityTest( + ExperimentalTag, NoAwaitTag, + google::cloud::networkmanagement::v1::UpdateConnectivityTestRequest const& + request) { + auto span = internal::MakeSpan( + "networkmanagement_v1::ReachabilityServiceConnection::" + "UpdateConnectivityTest"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->UpdateConnectivityTest(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +ReachabilityServiceTracingConnection::UpdateConnectivityTest( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "networkmanagement_v1::ReachabilityServiceConnection::" + "UpdateConnectivityTest"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->UpdateConnectivityTest( + ExperimentalTag{}, operation)); +} + future> ReachabilityServiceTracingConnection::RerunConnectivityTest( google::cloud::networkmanagement::v1::RerunConnectivityTestRequest const& @@ -94,6 +144,31 @@ ReachabilityServiceTracingConnection::RerunConnectivityTest( child_->RerunConnectivityTest(request)); } +StatusOr +ReachabilityServiceTracingConnection::RerunConnectivityTest( + ExperimentalTag, NoAwaitTag, + google::cloud::networkmanagement::v1::RerunConnectivityTestRequest const& + request) { + auto span = internal::MakeSpan( + "networkmanagement_v1::ReachabilityServiceConnection::" + "RerunConnectivityTest"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->RerunConnectivityTest(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +ReachabilityServiceTracingConnection::RerunConnectivityTest( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "networkmanagement_v1::ReachabilityServiceConnection::" + "RerunConnectivityTest"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->RerunConnectivityTest( + ExperimentalTag{}, operation)); +} + future> ReachabilityServiceTracingConnection::DeleteConnectivityTest( google::cloud::networkmanagement::v1::DeleteConnectivityTestRequest const& @@ -106,6 +181,31 @@ ReachabilityServiceTracingConnection::DeleteConnectivityTest( child_->DeleteConnectivityTest(request)); } +StatusOr +ReachabilityServiceTracingConnection::DeleteConnectivityTest( + ExperimentalTag, NoAwaitTag, + google::cloud::networkmanagement::v1::DeleteConnectivityTestRequest const& + request) { + auto span = internal::MakeSpan( + "networkmanagement_v1::ReachabilityServiceConnection::" + "DeleteConnectivityTest"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->DeleteConnectivityTest(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +ReachabilityServiceTracingConnection::DeleteConnectivityTest( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "networkmanagement_v1::ReachabilityServiceConnection::" + "DeleteConnectivityTest"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->DeleteConnectivityTest( + ExperimentalTag{}, operation)); +} + #endif // GOOGLE_CLOUD_CPP_HAVE_OPENTELEMETRY std::shared_ptr diff --git a/google/cloud/networkmanagement/v1/internal/reachability_tracing_connection.h b/google/cloud/networkmanagement/v1/internal/reachability_tracing_connection.h index 14d7864ee7e78..6fa02ab078f3a 100644 --- a/google/cloud/networkmanagement/v1/internal/reachability_tracing_connection.h +++ b/google/cloud/networkmanagement/v1/internal/reachability_tracing_connection.h @@ -56,21 +56,61 @@ class ReachabilityServiceTracingConnection google::cloud::networkmanagement::v1::CreateConnectivityTestRequest const& request) override; + StatusOr CreateConnectivityTest( + ExperimentalTag, NoAwaitTag, + google::cloud::networkmanagement::v1::CreateConnectivityTestRequest const& + request) override; + + future> + CreateConnectivityTest( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateConnectivityTest( google::cloud::networkmanagement::v1::UpdateConnectivityTestRequest const& request) override; + StatusOr UpdateConnectivityTest( + ExperimentalTag, NoAwaitTag, + google::cloud::networkmanagement::v1::UpdateConnectivityTestRequest const& + request) override; + + future> + UpdateConnectivityTest( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> RerunConnectivityTest( google::cloud::networkmanagement::v1::RerunConnectivityTestRequest const& request) override; + StatusOr RerunConnectivityTest( + ExperimentalTag, NoAwaitTag, + google::cloud::networkmanagement::v1::RerunConnectivityTestRequest const& + request) override; + + future> + RerunConnectivityTest( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteConnectivityTest( google::cloud::networkmanagement::v1::DeleteConnectivityTestRequest const& request) override; + StatusOr DeleteConnectivityTest( + ExperimentalTag, NoAwaitTag, + google::cloud::networkmanagement::v1::DeleteConnectivityTestRequest const& + request) override; + + future> + DeleteConnectivityTest( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + private: std::shared_ptr child_; }; diff --git a/google/cloud/networkmanagement/v1/mocks/mock_reachability_connection.h b/google/cloud/networkmanagement/v1/mocks/mock_reachability_connection.h index 41669733edde0..056ed460431e1 100644 --- a/google/cloud/networkmanagement/v1/mocks/mock_reachability_connection.h +++ b/google/cloud/networkmanagement/v1/mocks/mock_reachability_connection.h @@ -68,6 +68,18 @@ class MockReachabilityServiceConnection CreateConnectivityTestRequest const& request), (override)); + MOCK_METHOD(StatusOr, CreateConnectivityTest, + (ExperimentalTag, NoAwaitTag, + google::cloud::networkmanagement::v1:: + CreateConnectivityTestRequest const& request), + (override)); + + MOCK_METHOD( + future>, + CreateConnectivityTest, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, UpdateConnectivityTest, @@ -75,6 +87,18 @@ class MockReachabilityServiceConnection UpdateConnectivityTestRequest const& request), (override)); + MOCK_METHOD(StatusOr, UpdateConnectivityTest, + (ExperimentalTag, NoAwaitTag, + google::cloud::networkmanagement::v1:: + UpdateConnectivityTestRequest const& request), + (override)); + + MOCK_METHOD( + future>, + UpdateConnectivityTest, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, RerunConnectivityTest, @@ -82,12 +106,37 @@ class MockReachabilityServiceConnection request), (override)); + MOCK_METHOD( + StatusOr, RerunConnectivityTest, + (ExperimentalTag, NoAwaitTag, + google::cloud::networkmanagement::v1::RerunConnectivityTestRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + RerunConnectivityTest, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteConnectivityTest, (google::cloud::networkmanagement::v1:: DeleteConnectivityTestRequest const& request), (override)); + + MOCK_METHOD(StatusOr, DeleteConnectivityTest, + (ExperimentalTag, NoAwaitTag, + google::cloud::networkmanagement::v1:: + DeleteConnectivityTestRequest const& request), + (override)); + + MOCK_METHOD( + future>, + DeleteConnectivityTest, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); }; GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END diff --git a/google/cloud/networkmanagement/v1/reachability_connection.cc b/google/cloud/networkmanagement/v1/reachability_connection.cc index f25a30ffc9001..3d88a4d0a0275 100644 --- a/google/cloud/networkmanagement/v1/reachability_connection.cc +++ b/google/cloud/networkmanagement/v1/reachability_connection.cc @@ -61,6 +61,23 @@ ReachabilityServiceConnection::CreateConnectivityTest( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +ReachabilityServiceConnection::CreateConnectivityTest( + ExperimentalTag, NoAwaitTag, + google::cloud::networkmanagement::v1:: + CreateConnectivityTestRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +ReachabilityServiceConnection::CreateConnectivityTest( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> ReachabilityServiceConnection::UpdateConnectivityTest( google::cloud::networkmanagement::v1:: @@ -70,6 +87,23 @@ ReachabilityServiceConnection::UpdateConnectivityTest( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +ReachabilityServiceConnection::UpdateConnectivityTest( + ExperimentalTag, NoAwaitTag, + google::cloud::networkmanagement::v1:: + UpdateConnectivityTestRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +ReachabilityServiceConnection::UpdateConnectivityTest( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> ReachabilityServiceConnection::RerunConnectivityTest( google::cloud::networkmanagement::v1::RerunConnectivityTestRequest const&) { @@ -78,6 +112,22 @@ ReachabilityServiceConnection::RerunConnectivityTest( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +ReachabilityServiceConnection::RerunConnectivityTest( + ExperimentalTag, NoAwaitTag, + google::cloud::networkmanagement::v1::RerunConnectivityTestRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +ReachabilityServiceConnection::RerunConnectivityTest( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> ReachabilityServiceConnection::DeleteConnectivityTest( google::cloud::networkmanagement::v1:: @@ -87,6 +137,23 @@ ReachabilityServiceConnection::DeleteConnectivityTest( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +ReachabilityServiceConnection::DeleteConnectivityTest( + ExperimentalTag, NoAwaitTag, + google::cloud::networkmanagement::v1:: + DeleteConnectivityTestRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +ReachabilityServiceConnection::DeleteConnectivityTest( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + std::shared_ptr MakeReachabilityServiceConnection(Options options) { internal::CheckExpectedOptions CreateConnectivityTest( + ExperimentalTag, NoAwaitTag, + google::cloud::networkmanagement::v1::CreateConnectivityTestRequest const& + request); + + virtual future< + StatusOr> + CreateConnectivityTest(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future< StatusOr> UpdateConnectivityTest( google::cloud::networkmanagement::v1::UpdateConnectivityTestRequest const& request); + virtual StatusOr UpdateConnectivityTest( + ExperimentalTag, NoAwaitTag, + google::cloud::networkmanagement::v1::UpdateConnectivityTestRequest const& + request); + + virtual future< + StatusOr> + UpdateConnectivityTest(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future< StatusOr> RerunConnectivityTest( google::cloud::networkmanagement::v1::RerunConnectivityTestRequest const& request); + virtual StatusOr RerunConnectivityTest( + ExperimentalTag, NoAwaitTag, + google::cloud::networkmanagement::v1::RerunConnectivityTestRequest const& + request); + + virtual future< + StatusOr> + RerunConnectivityTest(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future< StatusOr> DeleteConnectivityTest( google::cloud::networkmanagement::v1::DeleteConnectivityTestRequest const& request); + + virtual StatusOr DeleteConnectivityTest( + ExperimentalTag, NoAwaitTag, + google::cloud::networkmanagement::v1::DeleteConnectivityTestRequest const& + request); + + virtual future< + StatusOr> + DeleteConnectivityTest(ExperimentalTag, + google::longrunning::Operation const& operation); }; /** diff --git a/google/cloud/networksecurity/v1/internal/network_security_connection_impl.cc b/google/cloud/networksecurity/v1/internal/network_security_connection_impl.cc index e3e7b1e81ccfd..442da72be2ae2 100644 --- a/google/cloud/networksecurity/v1/internal/network_security_connection_impl.cc +++ b/google/cloud/networksecurity/v1/internal/network_security_connection_impl.cc @@ -162,6 +162,61 @@ NetworkSecurityConnectionImpl::CreateAuthorizationPolicy( polling_policy(*current), __func__); } +StatusOr +NetworkSecurityConnectionImpl::CreateAuthorizationPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::networksecurity::v1::CreateAuthorizationPolicyRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateAuthorizationPolicy(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::networksecurity::v1:: + CreateAuthorizationPolicyRequest const& request) { + return stub_->CreateAuthorizationPolicy(context, options, request); + }, + *current, request, __func__); +} + +future> +NetworkSecurityConnectionImpl::CreateAuthorizationPolicy( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to CreateAuthorizationPolicy", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::networksecurity::v1::AuthorizationPolicy>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::networksecurity::v1::AuthorizationPolicy>, + polling_policy(*current), __func__); +} + future> NetworkSecurityConnectionImpl::UpdateAuthorizationPolicy( google::cloud::networksecurity::v1::UpdateAuthorizationPolicyRequest const& @@ -202,6 +257,61 @@ NetworkSecurityConnectionImpl::UpdateAuthorizationPolicy( polling_policy(*current), __func__); } +StatusOr +NetworkSecurityConnectionImpl::UpdateAuthorizationPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::networksecurity::v1::UpdateAuthorizationPolicyRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UpdateAuthorizationPolicy(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::networksecurity::v1:: + UpdateAuthorizationPolicyRequest const& request) { + return stub_->UpdateAuthorizationPolicy(context, options, request); + }, + *current, request, __func__); +} + +future> +NetworkSecurityConnectionImpl::UpdateAuthorizationPolicy( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to UpdateAuthorizationPolicy", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::networksecurity::v1::AuthorizationPolicy>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::networksecurity::v1::AuthorizationPolicy>, + polling_policy(*current), __func__); +} + future> NetworkSecurityConnectionImpl::DeleteAuthorizationPolicy( google::cloud::networksecurity::v1::DeleteAuthorizationPolicyRequest const& @@ -242,6 +352,61 @@ NetworkSecurityConnectionImpl::DeleteAuthorizationPolicy( polling_policy(*current), __func__); } +StatusOr +NetworkSecurityConnectionImpl::DeleteAuthorizationPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::networksecurity::v1::DeleteAuthorizationPolicyRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteAuthorizationPolicy(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::networksecurity::v1:: + DeleteAuthorizationPolicyRequest const& request) { + return stub_->DeleteAuthorizationPolicy(context, options, request); + }, + *current, request, __func__); +} + +future> +NetworkSecurityConnectionImpl::DeleteAuthorizationPolicy( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteAuthorizationPolicy", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::networksecurity::v1::OperationMetadata>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::cloud::networksecurity::v1::OperationMetadata>, + polling_policy(*current), __func__); +} + StreamRange NetworkSecurityConnectionImpl::ListServerTlsPolicies( google::cloud::networksecurity::v1::ListServerTlsPoliciesRequest request) { @@ -334,6 +499,61 @@ NetworkSecurityConnectionImpl::CreateServerTlsPolicy( polling_policy(*current), __func__); } +StatusOr +NetworkSecurityConnectionImpl::CreateServerTlsPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::networksecurity::v1::CreateServerTlsPolicyRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateServerTlsPolicy(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::networksecurity::v1:: + CreateServerTlsPolicyRequest const& request) { + return stub_->CreateServerTlsPolicy(context, options, request); + }, + *current, request, __func__); +} + +future> +NetworkSecurityConnectionImpl::CreateServerTlsPolicy( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to CreateServerTlsPolicy", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::networksecurity::v1::ServerTlsPolicy>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::networksecurity::v1::ServerTlsPolicy>, + polling_policy(*current), __func__); +} + future> NetworkSecurityConnectionImpl::UpdateServerTlsPolicy( google::cloud::networksecurity::v1::UpdateServerTlsPolicyRequest const& @@ -374,6 +594,61 @@ NetworkSecurityConnectionImpl::UpdateServerTlsPolicy( polling_policy(*current), __func__); } +StatusOr +NetworkSecurityConnectionImpl::UpdateServerTlsPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::networksecurity::v1::UpdateServerTlsPolicyRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UpdateServerTlsPolicy(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::networksecurity::v1:: + UpdateServerTlsPolicyRequest const& request) { + return stub_->UpdateServerTlsPolicy(context, options, request); + }, + *current, request, __func__); +} + +future> +NetworkSecurityConnectionImpl::UpdateServerTlsPolicy( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to UpdateServerTlsPolicy", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::networksecurity::v1::ServerTlsPolicy>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::networksecurity::v1::ServerTlsPolicy>, + polling_policy(*current), __func__); +} + future> NetworkSecurityConnectionImpl::DeleteServerTlsPolicy( google::cloud::networksecurity::v1::DeleteServerTlsPolicyRequest const& @@ -414,6 +689,61 @@ NetworkSecurityConnectionImpl::DeleteServerTlsPolicy( polling_policy(*current), __func__); } +StatusOr +NetworkSecurityConnectionImpl::DeleteServerTlsPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::networksecurity::v1::DeleteServerTlsPolicyRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteServerTlsPolicy(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::networksecurity::v1:: + DeleteServerTlsPolicyRequest const& request) { + return stub_->DeleteServerTlsPolicy(context, options, request); + }, + *current, request, __func__); +} + +future> +NetworkSecurityConnectionImpl::DeleteServerTlsPolicy( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteServerTlsPolicy", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::networksecurity::v1::OperationMetadata>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::cloud::networksecurity::v1::OperationMetadata>, + polling_policy(*current), __func__); +} + StreamRange NetworkSecurityConnectionImpl::ListClientTlsPolicies( google::cloud::networksecurity::v1::ListClientTlsPoliciesRequest request) { @@ -506,6 +836,61 @@ NetworkSecurityConnectionImpl::CreateClientTlsPolicy( polling_policy(*current), __func__); } +StatusOr +NetworkSecurityConnectionImpl::CreateClientTlsPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::networksecurity::v1::CreateClientTlsPolicyRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateClientTlsPolicy(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::networksecurity::v1:: + CreateClientTlsPolicyRequest const& request) { + return stub_->CreateClientTlsPolicy(context, options, request); + }, + *current, request, __func__); +} + +future> +NetworkSecurityConnectionImpl::CreateClientTlsPolicy( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to CreateClientTlsPolicy", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::networksecurity::v1::ClientTlsPolicy>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::networksecurity::v1::ClientTlsPolicy>, + polling_policy(*current), __func__); +} + future> NetworkSecurityConnectionImpl::UpdateClientTlsPolicy( google::cloud::networksecurity::v1::UpdateClientTlsPolicyRequest const& @@ -546,6 +931,61 @@ NetworkSecurityConnectionImpl::UpdateClientTlsPolicy( polling_policy(*current), __func__); } +StatusOr +NetworkSecurityConnectionImpl::UpdateClientTlsPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::networksecurity::v1::UpdateClientTlsPolicyRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UpdateClientTlsPolicy(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::networksecurity::v1:: + UpdateClientTlsPolicyRequest const& request) { + return stub_->UpdateClientTlsPolicy(context, options, request); + }, + *current, request, __func__); +} + +future> +NetworkSecurityConnectionImpl::UpdateClientTlsPolicy( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to UpdateClientTlsPolicy", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::networksecurity::v1::ClientTlsPolicy>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::networksecurity::v1::ClientTlsPolicy>, + polling_policy(*current), __func__); +} + future> NetworkSecurityConnectionImpl::DeleteClientTlsPolicy( google::cloud::networksecurity::v1::DeleteClientTlsPolicyRequest const& @@ -586,6 +1026,61 @@ NetworkSecurityConnectionImpl::DeleteClientTlsPolicy( polling_policy(*current), __func__); } +StatusOr +NetworkSecurityConnectionImpl::DeleteClientTlsPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::networksecurity::v1::DeleteClientTlsPolicyRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteClientTlsPolicy(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::networksecurity::v1:: + DeleteClientTlsPolicyRequest const& request) { + return stub_->DeleteClientTlsPolicy(context, options, request); + }, + *current, request, __func__); +} + +future> +NetworkSecurityConnectionImpl::DeleteClientTlsPolicy( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteClientTlsPolicy", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::networksecurity::v1::OperationMetadata>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::cloud::networksecurity::v1::OperationMetadata>, + polling_policy(*current), __func__); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace networksecurity_v1_internal } // namespace cloud diff --git a/google/cloud/networksecurity/v1/internal/network_security_connection_impl.h b/google/cloud/networksecurity/v1/internal/network_security_connection_impl.h index 41276b845fd8c..c9411fc565c5f 100644 --- a/google/cloud/networksecurity/v1/internal/network_security_connection_impl.h +++ b/google/cloud/networksecurity/v1/internal/network_security_connection_impl.h @@ -67,16 +67,46 @@ class NetworkSecurityConnectionImpl google::cloud::networksecurity::v1:: CreateAuthorizationPolicyRequest const& request) override; + StatusOr CreateAuthorizationPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::networksecurity::v1:: + CreateAuthorizationPolicyRequest const& request) override; + + future> + CreateAuthorizationPolicy( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateAuthorizationPolicy( google::cloud::networksecurity::v1:: UpdateAuthorizationPolicyRequest const& request) override; + StatusOr UpdateAuthorizationPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::networksecurity::v1:: + UpdateAuthorizationPolicyRequest const& request) override; + + future> + UpdateAuthorizationPolicy( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteAuthorizationPolicy( google::cloud::networksecurity::v1:: DeleteAuthorizationPolicyRequest const& request) override; + StatusOr DeleteAuthorizationPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::networksecurity::v1:: + DeleteAuthorizationPolicyRequest const& request) override; + + future> + DeleteAuthorizationPolicy( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListServerTlsPolicies( google::cloud::networksecurity::v1::ListServerTlsPoliciesRequest request) @@ -92,16 +122,46 @@ class NetworkSecurityConnectionImpl google::cloud::networksecurity::v1::CreateServerTlsPolicyRequest const& request) override; + StatusOr CreateServerTlsPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::networksecurity::v1::CreateServerTlsPolicyRequest const& + request) override; + + future> + CreateServerTlsPolicy( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateServerTlsPolicy( google::cloud::networksecurity::v1::UpdateServerTlsPolicyRequest const& request) override; + StatusOr UpdateServerTlsPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::networksecurity::v1::UpdateServerTlsPolicyRequest const& + request) override; + + future> + UpdateServerTlsPolicy( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteServerTlsPolicy( google::cloud::networksecurity::v1::DeleteServerTlsPolicyRequest const& request) override; + StatusOr DeleteServerTlsPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::networksecurity::v1::DeleteServerTlsPolicyRequest const& + request) override; + + future> + DeleteServerTlsPolicy( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListClientTlsPolicies( google::cloud::networksecurity::v1::ListClientTlsPoliciesRequest request) @@ -117,16 +177,46 @@ class NetworkSecurityConnectionImpl google::cloud::networksecurity::v1::CreateClientTlsPolicyRequest const& request) override; + StatusOr CreateClientTlsPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::networksecurity::v1::CreateClientTlsPolicyRequest const& + request) override; + + future> + CreateClientTlsPolicy( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateClientTlsPolicy( google::cloud::networksecurity::v1::UpdateClientTlsPolicyRequest const& request) override; + StatusOr UpdateClientTlsPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::networksecurity::v1::UpdateClientTlsPolicyRequest const& + request) override; + + future> + UpdateClientTlsPolicy( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteClientTlsPolicy( google::cloud::networksecurity::v1::DeleteClientTlsPolicyRequest const& request) override; + StatusOr DeleteClientTlsPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::networksecurity::v1::DeleteClientTlsPolicyRequest const& + request) override; + + future> + DeleteClientTlsPolicy( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + private: std::unique_ptr background_; std::shared_ptr stub_; diff --git a/google/cloud/networksecurity/v1/internal/network_security_tracing_connection.cc b/google/cloud/networksecurity/v1/internal/network_security_tracing_connection.cc index 65e0684524ab0..68837d91116a6 100644 --- a/google/cloud/networksecurity/v1/internal/network_security_tracing_connection.cc +++ b/google/cloud/networksecurity/v1/internal/network_security_tracing_connection.cc @@ -69,6 +69,31 @@ NetworkSecurityTracingConnection::CreateAuthorizationPolicy( child_->CreateAuthorizationPolicy(request)); } +StatusOr +NetworkSecurityTracingConnection::CreateAuthorizationPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::networksecurity::v1::CreateAuthorizationPolicyRequest const& + request) { + auto span = internal::MakeSpan( + "networksecurity_v1::NetworkSecurityConnection::" + "CreateAuthorizationPolicy"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->CreateAuthorizationPolicy(ExperimentalTag{}, NoAwaitTag{}, + request)); +} + +future> +NetworkSecurityTracingConnection::CreateAuthorizationPolicy( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "networksecurity_v1::NetworkSecurityConnection::" + "CreateAuthorizationPolicy"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->CreateAuthorizationPolicy( + ExperimentalTag{}, operation)); +} + future> NetworkSecurityTracingConnection::UpdateAuthorizationPolicy( google::cloud::networksecurity::v1::UpdateAuthorizationPolicyRequest const& @@ -81,6 +106,31 @@ NetworkSecurityTracingConnection::UpdateAuthorizationPolicy( child_->UpdateAuthorizationPolicy(request)); } +StatusOr +NetworkSecurityTracingConnection::UpdateAuthorizationPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::networksecurity::v1::UpdateAuthorizationPolicyRequest const& + request) { + auto span = internal::MakeSpan( + "networksecurity_v1::NetworkSecurityConnection::" + "UpdateAuthorizationPolicy"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->UpdateAuthorizationPolicy(ExperimentalTag{}, NoAwaitTag{}, + request)); +} + +future> +NetworkSecurityTracingConnection::UpdateAuthorizationPolicy( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "networksecurity_v1::NetworkSecurityConnection::" + "UpdateAuthorizationPolicy"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->UpdateAuthorizationPolicy( + ExperimentalTag{}, operation)); +} + future> NetworkSecurityTracingConnection::DeleteAuthorizationPolicy( google::cloud::networksecurity::v1::DeleteAuthorizationPolicyRequest const& @@ -93,6 +143,31 @@ NetworkSecurityTracingConnection::DeleteAuthorizationPolicy( child_->DeleteAuthorizationPolicy(request)); } +StatusOr +NetworkSecurityTracingConnection::DeleteAuthorizationPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::networksecurity::v1::DeleteAuthorizationPolicyRequest const& + request) { + auto span = internal::MakeSpan( + "networksecurity_v1::NetworkSecurityConnection::" + "DeleteAuthorizationPolicy"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->DeleteAuthorizationPolicy(ExperimentalTag{}, NoAwaitTag{}, + request)); +} + +future> +NetworkSecurityTracingConnection::DeleteAuthorizationPolicy( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "networksecurity_v1::NetworkSecurityConnection::" + "DeleteAuthorizationPolicy"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->DeleteAuthorizationPolicy( + ExperimentalTag{}, operation)); +} + StreamRange NetworkSecurityTracingConnection::ListServerTlsPolicies( google::cloud::networksecurity::v1::ListServerTlsPoliciesRequest request) { @@ -126,6 +201,29 @@ NetworkSecurityTracingConnection::CreateServerTlsPolicy( child_->CreateServerTlsPolicy(request)); } +StatusOr +NetworkSecurityTracingConnection::CreateServerTlsPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::networksecurity::v1::CreateServerTlsPolicyRequest const& + request) { + auto span = internal::MakeSpan( + "networksecurity_v1::NetworkSecurityConnection::CreateServerTlsPolicy"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->CreateServerTlsPolicy(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +NetworkSecurityTracingConnection::CreateServerTlsPolicy( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "networksecurity_v1::NetworkSecurityConnection::CreateServerTlsPolicy"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->CreateServerTlsPolicy( + ExperimentalTag{}, operation)); +} + future> NetworkSecurityTracingConnection::UpdateServerTlsPolicy( google::cloud::networksecurity::v1::UpdateServerTlsPolicyRequest const& @@ -137,6 +235,29 @@ NetworkSecurityTracingConnection::UpdateServerTlsPolicy( child_->UpdateServerTlsPolicy(request)); } +StatusOr +NetworkSecurityTracingConnection::UpdateServerTlsPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::networksecurity::v1::UpdateServerTlsPolicyRequest const& + request) { + auto span = internal::MakeSpan( + "networksecurity_v1::NetworkSecurityConnection::UpdateServerTlsPolicy"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->UpdateServerTlsPolicy(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +NetworkSecurityTracingConnection::UpdateServerTlsPolicy( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "networksecurity_v1::NetworkSecurityConnection::UpdateServerTlsPolicy"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->UpdateServerTlsPolicy( + ExperimentalTag{}, operation)); +} + future> NetworkSecurityTracingConnection::DeleteServerTlsPolicy( google::cloud::networksecurity::v1::DeleteServerTlsPolicyRequest const& @@ -148,6 +269,29 @@ NetworkSecurityTracingConnection::DeleteServerTlsPolicy( child_->DeleteServerTlsPolicy(request)); } +StatusOr +NetworkSecurityTracingConnection::DeleteServerTlsPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::networksecurity::v1::DeleteServerTlsPolicyRequest const& + request) { + auto span = internal::MakeSpan( + "networksecurity_v1::NetworkSecurityConnection::DeleteServerTlsPolicy"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->DeleteServerTlsPolicy(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +NetworkSecurityTracingConnection::DeleteServerTlsPolicy( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "networksecurity_v1::NetworkSecurityConnection::DeleteServerTlsPolicy"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->DeleteServerTlsPolicy( + ExperimentalTag{}, operation)); +} + StreamRange NetworkSecurityTracingConnection::ListClientTlsPolicies( google::cloud::networksecurity::v1::ListClientTlsPoliciesRequest request) { @@ -181,6 +325,29 @@ NetworkSecurityTracingConnection::CreateClientTlsPolicy( child_->CreateClientTlsPolicy(request)); } +StatusOr +NetworkSecurityTracingConnection::CreateClientTlsPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::networksecurity::v1::CreateClientTlsPolicyRequest const& + request) { + auto span = internal::MakeSpan( + "networksecurity_v1::NetworkSecurityConnection::CreateClientTlsPolicy"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->CreateClientTlsPolicy(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +NetworkSecurityTracingConnection::CreateClientTlsPolicy( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "networksecurity_v1::NetworkSecurityConnection::CreateClientTlsPolicy"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->CreateClientTlsPolicy( + ExperimentalTag{}, operation)); +} + future> NetworkSecurityTracingConnection::UpdateClientTlsPolicy( google::cloud::networksecurity::v1::UpdateClientTlsPolicyRequest const& @@ -192,6 +359,29 @@ NetworkSecurityTracingConnection::UpdateClientTlsPolicy( child_->UpdateClientTlsPolicy(request)); } +StatusOr +NetworkSecurityTracingConnection::UpdateClientTlsPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::networksecurity::v1::UpdateClientTlsPolicyRequest const& + request) { + auto span = internal::MakeSpan( + "networksecurity_v1::NetworkSecurityConnection::UpdateClientTlsPolicy"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->UpdateClientTlsPolicy(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +NetworkSecurityTracingConnection::UpdateClientTlsPolicy( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "networksecurity_v1::NetworkSecurityConnection::UpdateClientTlsPolicy"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->UpdateClientTlsPolicy( + ExperimentalTag{}, operation)); +} + future> NetworkSecurityTracingConnection::DeleteClientTlsPolicy( google::cloud::networksecurity::v1::DeleteClientTlsPolicyRequest const& @@ -203,6 +393,29 @@ NetworkSecurityTracingConnection::DeleteClientTlsPolicy( child_->DeleteClientTlsPolicy(request)); } +StatusOr +NetworkSecurityTracingConnection::DeleteClientTlsPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::networksecurity::v1::DeleteClientTlsPolicyRequest const& + request) { + auto span = internal::MakeSpan( + "networksecurity_v1::NetworkSecurityConnection::DeleteClientTlsPolicy"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->DeleteClientTlsPolicy(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +NetworkSecurityTracingConnection::DeleteClientTlsPolicy( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "networksecurity_v1::NetworkSecurityConnection::DeleteClientTlsPolicy"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->DeleteClientTlsPolicy( + ExperimentalTag{}, operation)); +} + #endif // GOOGLE_CLOUD_CPP_HAVE_OPENTELEMETRY std::shared_ptr diff --git a/google/cloud/networksecurity/v1/internal/network_security_tracing_connection.h b/google/cloud/networksecurity/v1/internal/network_security_tracing_connection.h index 67c8d012659be..155f3a0412ec8 100644 --- a/google/cloud/networksecurity/v1/internal/network_security_tracing_connection.h +++ b/google/cloud/networksecurity/v1/internal/network_security_tracing_connection.h @@ -55,16 +55,46 @@ class NetworkSecurityTracingConnection google::cloud::networksecurity::v1:: CreateAuthorizationPolicyRequest const& request) override; + StatusOr CreateAuthorizationPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::networksecurity::v1:: + CreateAuthorizationPolicyRequest const& request) override; + + future> + CreateAuthorizationPolicy( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateAuthorizationPolicy( google::cloud::networksecurity::v1:: UpdateAuthorizationPolicyRequest const& request) override; + StatusOr UpdateAuthorizationPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::networksecurity::v1:: + UpdateAuthorizationPolicyRequest const& request) override; + + future> + UpdateAuthorizationPolicy( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteAuthorizationPolicy( google::cloud::networksecurity::v1:: DeleteAuthorizationPolicyRequest const& request) override; + StatusOr DeleteAuthorizationPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::networksecurity::v1:: + DeleteAuthorizationPolicyRequest const& request) override; + + future> + DeleteAuthorizationPolicy( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListServerTlsPolicies( google::cloud::networksecurity::v1::ListServerTlsPoliciesRequest request) @@ -80,16 +110,46 @@ class NetworkSecurityTracingConnection google::cloud::networksecurity::v1::CreateServerTlsPolicyRequest const& request) override; + StatusOr CreateServerTlsPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::networksecurity::v1::CreateServerTlsPolicyRequest const& + request) override; + + future> + CreateServerTlsPolicy( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateServerTlsPolicy( google::cloud::networksecurity::v1::UpdateServerTlsPolicyRequest const& request) override; + StatusOr UpdateServerTlsPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::networksecurity::v1::UpdateServerTlsPolicyRequest const& + request) override; + + future> + UpdateServerTlsPolicy( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteServerTlsPolicy( google::cloud::networksecurity::v1::DeleteServerTlsPolicyRequest const& request) override; + StatusOr DeleteServerTlsPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::networksecurity::v1::DeleteServerTlsPolicyRequest const& + request) override; + + future> + DeleteServerTlsPolicy( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListClientTlsPolicies( google::cloud::networksecurity::v1::ListClientTlsPoliciesRequest request) @@ -105,16 +165,46 @@ class NetworkSecurityTracingConnection google::cloud::networksecurity::v1::CreateClientTlsPolicyRequest const& request) override; + StatusOr CreateClientTlsPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::networksecurity::v1::CreateClientTlsPolicyRequest const& + request) override; + + future> + CreateClientTlsPolicy( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateClientTlsPolicy( google::cloud::networksecurity::v1::UpdateClientTlsPolicyRequest const& request) override; + StatusOr UpdateClientTlsPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::networksecurity::v1::UpdateClientTlsPolicyRequest const& + request) override; + + future> + UpdateClientTlsPolicy( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteClientTlsPolicy( google::cloud::networksecurity::v1::DeleteClientTlsPolicyRequest const& request) override; + StatusOr DeleteClientTlsPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::networksecurity::v1::DeleteClientTlsPolicyRequest const& + request) override; + + future> + DeleteClientTlsPolicy( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + private: std::shared_ptr child_; }; diff --git a/google/cloud/networksecurity/v1/mocks/mock_network_security_connection.h b/google/cloud/networksecurity/v1/mocks/mock_network_security_connection.h index 99a797861c93c..5a004bf76cd00 100644 --- a/google/cloud/networksecurity/v1/mocks/mock_network_security_connection.h +++ b/google/cloud/networksecurity/v1/mocks/mock_network_security_connection.h @@ -68,6 +68,19 @@ class MockNetworkSecurityConnection CreateAuthorizationPolicyRequest const& request), (override)); + MOCK_METHOD(StatusOr, + CreateAuthorizationPolicy, + (ExperimentalTag, NoAwaitTag, + google::cloud::networksecurity::v1:: + CreateAuthorizationPolicyRequest const& request), + (override)); + + MOCK_METHOD( + future>, + CreateAuthorizationPolicy, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, UpdateAuthorizationPolicy, @@ -75,6 +88,19 @@ class MockNetworkSecurityConnection UpdateAuthorizationPolicyRequest const& request), (override)); + MOCK_METHOD(StatusOr, + UpdateAuthorizationPolicy, + (ExperimentalTag, NoAwaitTag, + google::cloud::networksecurity::v1:: + UpdateAuthorizationPolicyRequest const& request), + (override)); + + MOCK_METHOD( + future>, + UpdateAuthorizationPolicy, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteAuthorizationPolicy, @@ -82,6 +108,19 @@ class MockNetworkSecurityConnection DeleteAuthorizationPolicyRequest const& request), (override)); + MOCK_METHOD(StatusOr, + DeleteAuthorizationPolicy, + (ExperimentalTag, NoAwaitTag, + google::cloud::networksecurity::v1:: + DeleteAuthorizationPolicyRequest const& request), + (override)); + + MOCK_METHOD( + future>, + DeleteAuthorizationPolicy, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( (StreamRange), ListServerTlsPolicies, @@ -103,6 +142,19 @@ class MockNetworkSecurityConnection request), (override)); + MOCK_METHOD( + StatusOr, CreateServerTlsPolicy, + (ExperimentalTag, NoAwaitTag, + google::cloud::networksecurity::v1::CreateServerTlsPolicyRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + CreateServerTlsPolicy, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, UpdateServerTlsPolicy, @@ -110,6 +162,19 @@ class MockNetworkSecurityConnection request), (override)); + MOCK_METHOD( + StatusOr, UpdateServerTlsPolicy, + (ExperimentalTag, NoAwaitTag, + google::cloud::networksecurity::v1::UpdateServerTlsPolicyRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + UpdateServerTlsPolicy, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteServerTlsPolicy, @@ -117,6 +182,19 @@ class MockNetworkSecurityConnection request), (override)); + MOCK_METHOD( + StatusOr, DeleteServerTlsPolicy, + (ExperimentalTag, NoAwaitTag, + google::cloud::networksecurity::v1::DeleteServerTlsPolicyRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + DeleteServerTlsPolicy, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( (StreamRange), ListClientTlsPolicies, @@ -138,6 +216,19 @@ class MockNetworkSecurityConnection request), (override)); + MOCK_METHOD( + StatusOr, CreateClientTlsPolicy, + (ExperimentalTag, NoAwaitTag, + google::cloud::networksecurity::v1::CreateClientTlsPolicyRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + CreateClientTlsPolicy, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, UpdateClientTlsPolicy, @@ -145,12 +236,38 @@ class MockNetworkSecurityConnection request), (override)); + MOCK_METHOD( + StatusOr, UpdateClientTlsPolicy, + (ExperimentalTag, NoAwaitTag, + google::cloud::networksecurity::v1::UpdateClientTlsPolicyRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + UpdateClientTlsPolicy, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteClientTlsPolicy, (google::cloud::networksecurity::v1::DeleteClientTlsPolicyRequest const& request), (override)); + + MOCK_METHOD( + StatusOr, DeleteClientTlsPolicy, + (ExperimentalTag, NoAwaitTag, + google::cloud::networksecurity::v1::DeleteClientTlsPolicyRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + DeleteClientTlsPolicy, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); }; GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END diff --git a/google/cloud/networksecurity/v1/network_security_connection.cc b/google/cloud/networksecurity/v1/network_security_connection.cc index 55952806341e7..a360d19e60cb5 100644 --- a/google/cloud/networksecurity/v1/network_security_connection.cc +++ b/google/cloud/networksecurity/v1/network_security_connection.cc @@ -61,6 +61,23 @@ NetworkSecurityConnection::CreateAuthorizationPolicy( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +NetworkSecurityConnection::CreateAuthorizationPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::networksecurity::v1:: + CreateAuthorizationPolicyRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +NetworkSecurityConnection::CreateAuthorizationPolicy( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> NetworkSecurityConnection::UpdateAuthorizationPolicy( google::cloud::networksecurity::v1:: @@ -70,6 +87,23 @@ NetworkSecurityConnection::UpdateAuthorizationPolicy( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +NetworkSecurityConnection::UpdateAuthorizationPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::networksecurity::v1:: + UpdateAuthorizationPolicyRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +NetworkSecurityConnection::UpdateAuthorizationPolicy( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> NetworkSecurityConnection::DeleteAuthorizationPolicy( google::cloud::networksecurity::v1:: @@ -79,6 +113,23 @@ NetworkSecurityConnection::DeleteAuthorizationPolicy( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +NetworkSecurityConnection::DeleteAuthorizationPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::networksecurity::v1:: + DeleteAuthorizationPolicyRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +NetworkSecurityConnection::DeleteAuthorizationPolicy( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StreamRange NetworkSecurityConnection::ListServerTlsPolicies( google::cloud::networksecurity::v1:: @@ -101,6 +152,22 @@ NetworkSecurityConnection::CreateServerTlsPolicy( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +NetworkSecurityConnection::CreateServerTlsPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::networksecurity::v1::CreateServerTlsPolicyRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +NetworkSecurityConnection::CreateServerTlsPolicy( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> NetworkSecurityConnection::UpdateServerTlsPolicy( google::cloud::networksecurity::v1::UpdateServerTlsPolicyRequest const&) { @@ -109,6 +176,22 @@ NetworkSecurityConnection::UpdateServerTlsPolicy( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +NetworkSecurityConnection::UpdateServerTlsPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::networksecurity::v1::UpdateServerTlsPolicyRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +NetworkSecurityConnection::UpdateServerTlsPolicy( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> NetworkSecurityConnection::DeleteServerTlsPolicy( google::cloud::networksecurity::v1::DeleteServerTlsPolicyRequest const&) { @@ -117,6 +200,22 @@ NetworkSecurityConnection::DeleteServerTlsPolicy( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +NetworkSecurityConnection::DeleteServerTlsPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::networksecurity::v1::DeleteServerTlsPolicyRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +NetworkSecurityConnection::DeleteServerTlsPolicy( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StreamRange NetworkSecurityConnection::ListClientTlsPolicies( google::cloud::networksecurity::v1:: @@ -139,6 +238,22 @@ NetworkSecurityConnection::CreateClientTlsPolicy( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +NetworkSecurityConnection::CreateClientTlsPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::networksecurity::v1::CreateClientTlsPolicyRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +NetworkSecurityConnection::CreateClientTlsPolicy( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> NetworkSecurityConnection::UpdateClientTlsPolicy( google::cloud::networksecurity::v1::UpdateClientTlsPolicyRequest const&) { @@ -147,6 +262,22 @@ NetworkSecurityConnection::UpdateClientTlsPolicy( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +NetworkSecurityConnection::UpdateClientTlsPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::networksecurity::v1::UpdateClientTlsPolicyRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +NetworkSecurityConnection::UpdateClientTlsPolicy( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> NetworkSecurityConnection::DeleteClientTlsPolicy( google::cloud::networksecurity::v1::DeleteClientTlsPolicyRequest const&) { @@ -155,6 +286,22 @@ NetworkSecurityConnection::DeleteClientTlsPolicy( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +NetworkSecurityConnection::DeleteClientTlsPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::networksecurity::v1::DeleteClientTlsPolicyRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +NetworkSecurityConnection::DeleteClientTlsPolicy( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + std::shared_ptr MakeNetworkSecurityConnection( Options options) { internal::CheckExpectedOptions CreateAuthorizationPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::networksecurity::v1:: + CreateAuthorizationPolicyRequest const& request); + + virtual future< + StatusOr> + CreateAuthorizationPolicy(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future< StatusOr> UpdateAuthorizationPolicy( google::cloud::networksecurity::v1:: UpdateAuthorizationPolicyRequest const& request); + virtual StatusOr UpdateAuthorizationPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::networksecurity::v1:: + UpdateAuthorizationPolicyRequest const& request); + + virtual future< + StatusOr> + UpdateAuthorizationPolicy(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future< StatusOr> DeleteAuthorizationPolicy( google::cloud::networksecurity::v1:: DeleteAuthorizationPolicyRequest const& request); + virtual StatusOr DeleteAuthorizationPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::networksecurity::v1:: + DeleteAuthorizationPolicyRequest const& request); + + virtual future< + StatusOr> + DeleteAuthorizationPolicy(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StreamRange ListServerTlsPolicies( google::cloud::networksecurity::v1::ListServerTlsPoliciesRequest request); @@ -229,17 +261,45 @@ class NetworkSecurityConnection { google::cloud::networksecurity::v1::CreateServerTlsPolicyRequest const& request); + virtual StatusOr CreateServerTlsPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::networksecurity::v1::CreateServerTlsPolicyRequest const& + request); + + virtual future> + CreateServerTlsPolicy(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> UpdateServerTlsPolicy( google::cloud::networksecurity::v1::UpdateServerTlsPolicyRequest const& request); + virtual StatusOr UpdateServerTlsPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::networksecurity::v1::UpdateServerTlsPolicyRequest const& + request); + + virtual future> + UpdateServerTlsPolicy(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future< StatusOr> DeleteServerTlsPolicy( google::cloud::networksecurity::v1::DeleteServerTlsPolicyRequest const& request); + virtual StatusOr DeleteServerTlsPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::networksecurity::v1::DeleteServerTlsPolicyRequest const& + request); + + virtual future< + StatusOr> + DeleteServerTlsPolicy(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StreamRange ListClientTlsPolicies( google::cloud::networksecurity::v1::ListClientTlsPoliciesRequest request); @@ -254,16 +314,44 @@ class NetworkSecurityConnection { google::cloud::networksecurity::v1::CreateClientTlsPolicyRequest const& request); + virtual StatusOr CreateClientTlsPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::networksecurity::v1::CreateClientTlsPolicyRequest const& + request); + + virtual future> + CreateClientTlsPolicy(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> UpdateClientTlsPolicy( google::cloud::networksecurity::v1::UpdateClientTlsPolicyRequest const& request); + virtual StatusOr UpdateClientTlsPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::networksecurity::v1::UpdateClientTlsPolicyRequest const& + request); + + virtual future> + UpdateClientTlsPolicy(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future< StatusOr> DeleteClientTlsPolicy( google::cloud::networksecurity::v1::DeleteClientTlsPolicyRequest const& request); + + virtual StatusOr DeleteClientTlsPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::networksecurity::v1::DeleteClientTlsPolicyRequest const& + request); + + virtual future< + StatusOr> + DeleteClientTlsPolicy(ExperimentalTag, + google::longrunning::Operation const& operation); }; /** diff --git a/google/cloud/networkservices/v1/dep_connection.cc b/google/cloud/networkservices/v1/dep_connection.cc index 8cff8bcba4317..c709c8b2aa230 100644 --- a/google/cloud/networkservices/v1/dep_connection.cc +++ b/google/cloud/networkservices/v1/dep_connection.cc @@ -61,10 +61,44 @@ DepServiceConnection::CreateLbTrafficExtension( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +DepServiceConnection::CreateLbTrafficExtension( + ExperimentalTag, NoAwaitTag, + google::cloud::networkservices::v1:: + CreateLbTrafficExtensionRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> +DepServiceConnection::CreateLbTrafficExtension( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +DepServiceConnection::UpdateLbTrafficExtension( + google::cloud::networkservices::v1:: + UpdateLbTrafficExtensionRequest const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +StatusOr DepServiceConnection::UpdateLbTrafficExtension( + ExperimentalTag, NoAwaitTag, google::cloud::networkservices::v1:: UpdateLbTrafficExtensionRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +DepServiceConnection::UpdateLbTrafficExtension( + ExperimentalTag, google::longrunning::Operation const&) { return google::cloud::make_ready_future< StatusOr>( Status(StatusCode::kUnimplemented, "not implemented")); @@ -79,6 +113,23 @@ DepServiceConnection::DeleteLbTrafficExtension( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +DepServiceConnection::DeleteLbTrafficExtension( + ExperimentalTag, NoAwaitTag, + google::cloud::networkservices::v1:: + DeleteLbTrafficExtensionRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +DepServiceConnection::DeleteLbTrafficExtension( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StreamRange DepServiceConnection::ListLbRouteExtensions( google::cloud::networkservices::v1:: @@ -101,6 +152,22 @@ DepServiceConnection::CreateLbRouteExtension( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +DepServiceConnection::CreateLbRouteExtension( + ExperimentalTag, NoAwaitTag, + google::cloud::networkservices::v1::CreateLbRouteExtensionRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +DepServiceConnection::CreateLbRouteExtension( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> DepServiceConnection::UpdateLbRouteExtension( google::cloud::networkservices::v1::UpdateLbRouteExtensionRequest const&) { @@ -109,6 +176,22 @@ DepServiceConnection::UpdateLbRouteExtension( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +DepServiceConnection::UpdateLbRouteExtension( + ExperimentalTag, NoAwaitTag, + google::cloud::networkservices::v1::UpdateLbRouteExtensionRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +DepServiceConnection::UpdateLbRouteExtension( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> DepServiceConnection::DeleteLbRouteExtension( google::cloud::networkservices::v1::DeleteLbRouteExtensionRequest const&) { @@ -117,6 +200,22 @@ DepServiceConnection::DeleteLbRouteExtension( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +DepServiceConnection::DeleteLbRouteExtension( + ExperimentalTag, NoAwaitTag, + google::cloud::networkservices::v1::DeleteLbRouteExtensionRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +DepServiceConnection::DeleteLbRouteExtension( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + std::shared_ptr MakeDepServiceConnection( Options options) { internal::CheckExpectedOptions CreateLbTrafficExtension( + ExperimentalTag, NoAwaitTag, + google::cloud::networkservices::v1::CreateLbTrafficExtensionRequest const& + request); + + virtual future< + StatusOr> + CreateLbTrafficExtension(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future< StatusOr> UpdateLbTrafficExtension( google::cloud::networkservices::v1::UpdateLbTrafficExtensionRequest const& request); + virtual StatusOr UpdateLbTrafficExtension( + ExperimentalTag, NoAwaitTag, + google::cloud::networkservices::v1::UpdateLbTrafficExtensionRequest const& + request); + + virtual future< + StatusOr> + UpdateLbTrafficExtension(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future< StatusOr> DeleteLbTrafficExtension( google::cloud::networkservices::v1::DeleteLbTrafficExtensionRequest const& request); + virtual StatusOr DeleteLbTrafficExtension( + ExperimentalTag, NoAwaitTag, + google::cloud::networkservices::v1::DeleteLbTrafficExtensionRequest const& + request); + + virtual future< + StatusOr> + DeleteLbTrafficExtension(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StreamRange ListLbRouteExtensions( google::cloud::networkservices::v1::ListLbRouteExtensionsRequest request); @@ -226,16 +258,44 @@ class DepServiceConnection { google::cloud::networkservices::v1::CreateLbRouteExtensionRequest const& request); + virtual StatusOr CreateLbRouteExtension( + ExperimentalTag, NoAwaitTag, + google::cloud::networkservices::v1::CreateLbRouteExtensionRequest const& + request); + + virtual future> + CreateLbRouteExtension(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> UpdateLbRouteExtension( google::cloud::networkservices::v1::UpdateLbRouteExtensionRequest const& request); + virtual StatusOr UpdateLbRouteExtension( + ExperimentalTag, NoAwaitTag, + google::cloud::networkservices::v1::UpdateLbRouteExtensionRequest const& + request); + + virtual future> + UpdateLbRouteExtension(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future< StatusOr> DeleteLbRouteExtension( google::cloud::networkservices::v1::DeleteLbRouteExtensionRequest const& request); + + virtual StatusOr DeleteLbRouteExtension( + ExperimentalTag, NoAwaitTag, + google::cloud::networkservices::v1::DeleteLbRouteExtensionRequest const& + request); + + virtual future< + StatusOr> + DeleteLbRouteExtension(ExperimentalTag, + google::longrunning::Operation const& operation); }; /** diff --git a/google/cloud/networkservices/v1/internal/dep_connection_impl.cc b/google/cloud/networkservices/v1/internal/dep_connection_impl.cc index 6250bf39c8fc3..508c6d1f020d1 100644 --- a/google/cloud/networkservices/v1/internal/dep_connection_impl.cc +++ b/google/cloud/networkservices/v1/internal/dep_connection_impl.cc @@ -160,6 +160,61 @@ DepServiceConnectionImpl::CreateLbTrafficExtension( polling_policy(*current), __func__); } +StatusOr +DepServiceConnectionImpl::CreateLbTrafficExtension( + ExperimentalTag, NoAwaitTag, + google::cloud::networkservices::v1::CreateLbTrafficExtensionRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateLbTrafficExtension(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::networkservices::v1:: + CreateLbTrafficExtensionRequest const& request) { + return stub_->CreateLbTrafficExtension(context, options, request); + }, + *current, request, __func__); +} + +future> +DepServiceConnectionImpl::CreateLbTrafficExtension( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to CreateLbTrafficExtension", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::networkservices::v1::LbTrafficExtension>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::networkservices::v1::LbTrafficExtension>, + polling_policy(*current), __func__); +} + future> DepServiceConnectionImpl::UpdateLbTrafficExtension( google::cloud::networkservices::v1::UpdateLbTrafficExtensionRequest const& @@ -200,6 +255,61 @@ DepServiceConnectionImpl::UpdateLbTrafficExtension( polling_policy(*current), __func__); } +StatusOr +DepServiceConnectionImpl::UpdateLbTrafficExtension( + ExperimentalTag, NoAwaitTag, + google::cloud::networkservices::v1::UpdateLbTrafficExtensionRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UpdateLbTrafficExtension(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::networkservices::v1:: + UpdateLbTrafficExtensionRequest const& request) { + return stub_->UpdateLbTrafficExtension(context, options, request); + }, + *current, request, __func__); +} + +future> +DepServiceConnectionImpl::UpdateLbTrafficExtension( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to UpdateLbTrafficExtension", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::networkservices::v1::LbTrafficExtension>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::networkservices::v1::LbTrafficExtension>, + polling_policy(*current), __func__); +} + future> DepServiceConnectionImpl::DeleteLbTrafficExtension( google::cloud::networkservices::v1::DeleteLbTrafficExtensionRequest const& @@ -240,6 +350,61 @@ DepServiceConnectionImpl::DeleteLbTrafficExtension( polling_policy(*current), __func__); } +StatusOr +DepServiceConnectionImpl::DeleteLbTrafficExtension( + ExperimentalTag, NoAwaitTag, + google::cloud::networkservices::v1::DeleteLbTrafficExtensionRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteLbTrafficExtension(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::networkservices::v1:: + DeleteLbTrafficExtensionRequest const& request) { + return stub_->DeleteLbTrafficExtension(context, options, request); + }, + *current, request, __func__); +} + +future> +DepServiceConnectionImpl::DeleteLbTrafficExtension( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteLbTrafficExtension", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::networkservices::v1::OperationMetadata>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::cloud::networkservices::v1::OperationMetadata>, + polling_policy(*current), __func__); +} + StreamRange DepServiceConnectionImpl::ListLbRouteExtensions( google::cloud::networkservices::v1::ListLbRouteExtensionsRequest request) { @@ -332,6 +497,61 @@ DepServiceConnectionImpl::CreateLbRouteExtension( polling_policy(*current), __func__); } +StatusOr +DepServiceConnectionImpl::CreateLbRouteExtension( + ExperimentalTag, NoAwaitTag, + google::cloud::networkservices::v1::CreateLbRouteExtensionRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateLbRouteExtension(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::networkservices::v1:: + CreateLbRouteExtensionRequest const& request) { + return stub_->CreateLbRouteExtension(context, options, request); + }, + *current, request, __func__); +} + +future> +DepServiceConnectionImpl::CreateLbRouteExtension( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to CreateLbRouteExtension", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::networkservices::v1::LbRouteExtension>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::networkservices::v1::LbRouteExtension>, + polling_policy(*current), __func__); +} + future> DepServiceConnectionImpl::UpdateLbRouteExtension( google::cloud::networkservices::v1::UpdateLbRouteExtensionRequest const& @@ -372,6 +592,61 @@ DepServiceConnectionImpl::UpdateLbRouteExtension( polling_policy(*current), __func__); } +StatusOr +DepServiceConnectionImpl::UpdateLbRouteExtension( + ExperimentalTag, NoAwaitTag, + google::cloud::networkservices::v1::UpdateLbRouteExtensionRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UpdateLbRouteExtension(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::networkservices::v1:: + UpdateLbRouteExtensionRequest const& request) { + return stub_->UpdateLbRouteExtension(context, options, request); + }, + *current, request, __func__); +} + +future> +DepServiceConnectionImpl::UpdateLbRouteExtension( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to UpdateLbRouteExtension", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::networkservices::v1::LbRouteExtension>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::networkservices::v1::LbRouteExtension>, + polling_policy(*current), __func__); +} + future> DepServiceConnectionImpl::DeleteLbRouteExtension( google::cloud::networkservices::v1::DeleteLbRouteExtensionRequest const& @@ -412,6 +687,61 @@ DepServiceConnectionImpl::DeleteLbRouteExtension( polling_policy(*current), __func__); } +StatusOr +DepServiceConnectionImpl::DeleteLbRouteExtension( + ExperimentalTag, NoAwaitTag, + google::cloud::networkservices::v1::DeleteLbRouteExtensionRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteLbRouteExtension(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::networkservices::v1:: + DeleteLbRouteExtensionRequest const& request) { + return stub_->DeleteLbRouteExtension(context, options, request); + }, + *current, request, __func__); +} + +future> +DepServiceConnectionImpl::DeleteLbRouteExtension( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteLbRouteExtension", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::networkservices::v1::OperationMetadata>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::cloud::networkservices::v1::OperationMetadata>, + polling_policy(*current), __func__); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace networkservices_v1_internal } // namespace cloud diff --git a/google/cloud/networkservices/v1/internal/dep_connection_impl.h b/google/cloud/networkservices/v1/internal/dep_connection_impl.h index 9d0bfb12e621c..a104331dab72c 100644 --- a/google/cloud/networkservices/v1/internal/dep_connection_impl.h +++ b/google/cloud/networkservices/v1/internal/dep_connection_impl.h @@ -67,16 +67,46 @@ class DepServiceConnectionImpl google::cloud::networkservices::v1::CreateLbTrafficExtensionRequest const& request) override; + StatusOr CreateLbTrafficExtension( + ExperimentalTag, NoAwaitTag, + google::cloud::networkservices::v1::CreateLbTrafficExtensionRequest const& + request) override; + + future> + CreateLbTrafficExtension( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateLbTrafficExtension( google::cloud::networkservices::v1::UpdateLbTrafficExtensionRequest const& request) override; + StatusOr UpdateLbTrafficExtension( + ExperimentalTag, NoAwaitTag, + google::cloud::networkservices::v1::UpdateLbTrafficExtensionRequest const& + request) override; + + future> + UpdateLbTrafficExtension( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteLbTrafficExtension( google::cloud::networkservices::v1::DeleteLbTrafficExtensionRequest const& request) override; + StatusOr DeleteLbTrafficExtension( + ExperimentalTag, NoAwaitTag, + google::cloud::networkservices::v1::DeleteLbTrafficExtensionRequest const& + request) override; + + future> + DeleteLbTrafficExtension( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListLbRouteExtensions( google::cloud::networkservices::v1::ListLbRouteExtensionsRequest request) @@ -92,16 +122,46 @@ class DepServiceConnectionImpl google::cloud::networkservices::v1::CreateLbRouteExtensionRequest const& request) override; + StatusOr CreateLbRouteExtension( + ExperimentalTag, NoAwaitTag, + google::cloud::networkservices::v1::CreateLbRouteExtensionRequest const& + request) override; + + future> + CreateLbRouteExtension( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateLbRouteExtension( google::cloud::networkservices::v1::UpdateLbRouteExtensionRequest const& request) override; + StatusOr UpdateLbRouteExtension( + ExperimentalTag, NoAwaitTag, + google::cloud::networkservices::v1::UpdateLbRouteExtensionRequest const& + request) override; + + future> + UpdateLbRouteExtension( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteLbRouteExtension( google::cloud::networkservices::v1::DeleteLbRouteExtensionRequest const& request) override; + StatusOr DeleteLbRouteExtension( + ExperimentalTag, NoAwaitTag, + google::cloud::networkservices::v1::DeleteLbRouteExtensionRequest const& + request) override; + + future> + DeleteLbRouteExtension( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + private: std::unique_ptr background_; std::shared_ptr stub_; diff --git a/google/cloud/networkservices/v1/internal/dep_tracing_connection.cc b/google/cloud/networkservices/v1/internal/dep_tracing_connection.cc index dc70663b156a0..9d001abec094c 100644 --- a/google/cloud/networkservices/v1/internal/dep_tracing_connection.cc +++ b/google/cloud/networkservices/v1/internal/dep_tracing_connection.cc @@ -67,6 +67,29 @@ DepServiceTracingConnection::CreateLbTrafficExtension( child_->CreateLbTrafficExtension(request)); } +StatusOr +DepServiceTracingConnection::CreateLbTrafficExtension( + ExperimentalTag, NoAwaitTag, + google::cloud::networkservices::v1::CreateLbTrafficExtensionRequest const& + request) { + auto span = internal::MakeSpan( + "networkservices_v1::DepServiceConnection::CreateLbTrafficExtension"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->CreateLbTrafficExtension(ExperimentalTag{}, NoAwaitTag{}, + request)); +} + +future> +DepServiceTracingConnection::CreateLbTrafficExtension( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "networkservices_v1::DepServiceConnection::CreateLbTrafficExtension"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->CreateLbTrafficExtension( + ExperimentalTag{}, operation)); +} + future> DepServiceTracingConnection::UpdateLbTrafficExtension( google::cloud::networkservices::v1::UpdateLbTrafficExtensionRequest const& @@ -78,6 +101,29 @@ DepServiceTracingConnection::UpdateLbTrafficExtension( child_->UpdateLbTrafficExtension(request)); } +StatusOr +DepServiceTracingConnection::UpdateLbTrafficExtension( + ExperimentalTag, NoAwaitTag, + google::cloud::networkservices::v1::UpdateLbTrafficExtensionRequest const& + request) { + auto span = internal::MakeSpan( + "networkservices_v1::DepServiceConnection::UpdateLbTrafficExtension"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->UpdateLbTrafficExtension(ExperimentalTag{}, NoAwaitTag{}, + request)); +} + +future> +DepServiceTracingConnection::UpdateLbTrafficExtension( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "networkservices_v1::DepServiceConnection::UpdateLbTrafficExtension"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->UpdateLbTrafficExtension( + ExperimentalTag{}, operation)); +} + future> DepServiceTracingConnection::DeleteLbTrafficExtension( google::cloud::networkservices::v1::DeleteLbTrafficExtensionRequest const& @@ -89,6 +135,29 @@ DepServiceTracingConnection::DeleteLbTrafficExtension( child_->DeleteLbTrafficExtension(request)); } +StatusOr +DepServiceTracingConnection::DeleteLbTrafficExtension( + ExperimentalTag, NoAwaitTag, + google::cloud::networkservices::v1::DeleteLbTrafficExtensionRequest const& + request) { + auto span = internal::MakeSpan( + "networkservices_v1::DepServiceConnection::DeleteLbTrafficExtension"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->DeleteLbTrafficExtension(ExperimentalTag{}, NoAwaitTag{}, + request)); +} + +future> +DepServiceTracingConnection::DeleteLbTrafficExtension( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "networkservices_v1::DepServiceConnection::DeleteLbTrafficExtension"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->DeleteLbTrafficExtension( + ExperimentalTag{}, operation)); +} + StreamRange DepServiceTracingConnection::ListLbRouteExtensions( google::cloud::networkservices::v1::ListLbRouteExtensionsRequest request) { @@ -122,6 +191,29 @@ DepServiceTracingConnection::CreateLbRouteExtension( child_->CreateLbRouteExtension(request)); } +StatusOr +DepServiceTracingConnection::CreateLbRouteExtension( + ExperimentalTag, NoAwaitTag, + google::cloud::networkservices::v1::CreateLbRouteExtensionRequest const& + request) { + auto span = internal::MakeSpan( + "networkservices_v1::DepServiceConnection::CreateLbRouteExtension"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->CreateLbRouteExtension(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +DepServiceTracingConnection::CreateLbRouteExtension( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "networkservices_v1::DepServiceConnection::CreateLbRouteExtension"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->CreateLbRouteExtension( + ExperimentalTag{}, operation)); +} + future> DepServiceTracingConnection::UpdateLbRouteExtension( google::cloud::networkservices::v1::UpdateLbRouteExtensionRequest const& @@ -133,6 +225,29 @@ DepServiceTracingConnection::UpdateLbRouteExtension( child_->UpdateLbRouteExtension(request)); } +StatusOr +DepServiceTracingConnection::UpdateLbRouteExtension( + ExperimentalTag, NoAwaitTag, + google::cloud::networkservices::v1::UpdateLbRouteExtensionRequest const& + request) { + auto span = internal::MakeSpan( + "networkservices_v1::DepServiceConnection::UpdateLbRouteExtension"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->UpdateLbRouteExtension(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +DepServiceTracingConnection::UpdateLbRouteExtension( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "networkservices_v1::DepServiceConnection::UpdateLbRouteExtension"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->UpdateLbRouteExtension( + ExperimentalTag{}, operation)); +} + future> DepServiceTracingConnection::DeleteLbRouteExtension( google::cloud::networkservices::v1::DeleteLbRouteExtensionRequest const& @@ -144,6 +259,29 @@ DepServiceTracingConnection::DeleteLbRouteExtension( child_->DeleteLbRouteExtension(request)); } +StatusOr +DepServiceTracingConnection::DeleteLbRouteExtension( + ExperimentalTag, NoAwaitTag, + google::cloud::networkservices::v1::DeleteLbRouteExtensionRequest const& + request) { + auto span = internal::MakeSpan( + "networkservices_v1::DepServiceConnection::DeleteLbRouteExtension"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->DeleteLbRouteExtension(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +DepServiceTracingConnection::DeleteLbRouteExtension( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "networkservices_v1::DepServiceConnection::DeleteLbRouteExtension"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->DeleteLbRouteExtension( + ExperimentalTag{}, operation)); +} + #endif // GOOGLE_CLOUD_CPP_HAVE_OPENTELEMETRY std::shared_ptr diff --git a/google/cloud/networkservices/v1/internal/dep_tracing_connection.h b/google/cloud/networkservices/v1/internal/dep_tracing_connection.h index 50549fbb7ceb4..f5df26c859796 100644 --- a/google/cloud/networkservices/v1/internal/dep_tracing_connection.h +++ b/google/cloud/networkservices/v1/internal/dep_tracing_connection.h @@ -55,16 +55,46 @@ class DepServiceTracingConnection google::cloud::networkservices::v1::CreateLbTrafficExtensionRequest const& request) override; + StatusOr CreateLbTrafficExtension( + ExperimentalTag, NoAwaitTag, + google::cloud::networkservices::v1::CreateLbTrafficExtensionRequest const& + request) override; + + future> + CreateLbTrafficExtension( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateLbTrafficExtension( google::cloud::networkservices::v1::UpdateLbTrafficExtensionRequest const& request) override; + StatusOr UpdateLbTrafficExtension( + ExperimentalTag, NoAwaitTag, + google::cloud::networkservices::v1::UpdateLbTrafficExtensionRequest const& + request) override; + + future> + UpdateLbTrafficExtension( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteLbTrafficExtension( google::cloud::networkservices::v1::DeleteLbTrafficExtensionRequest const& request) override; + StatusOr DeleteLbTrafficExtension( + ExperimentalTag, NoAwaitTag, + google::cloud::networkservices::v1::DeleteLbTrafficExtensionRequest const& + request) override; + + future> + DeleteLbTrafficExtension( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListLbRouteExtensions( google::cloud::networkservices::v1::ListLbRouteExtensionsRequest request) @@ -80,16 +110,46 @@ class DepServiceTracingConnection google::cloud::networkservices::v1::CreateLbRouteExtensionRequest const& request) override; + StatusOr CreateLbRouteExtension( + ExperimentalTag, NoAwaitTag, + google::cloud::networkservices::v1::CreateLbRouteExtensionRequest const& + request) override; + + future> + CreateLbRouteExtension( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateLbRouteExtension( google::cloud::networkservices::v1::UpdateLbRouteExtensionRequest const& request) override; + StatusOr UpdateLbRouteExtension( + ExperimentalTag, NoAwaitTag, + google::cloud::networkservices::v1::UpdateLbRouteExtensionRequest const& + request) override; + + future> + UpdateLbRouteExtension( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteLbRouteExtension( google::cloud::networkservices::v1::DeleteLbRouteExtensionRequest const& request) override; + StatusOr DeleteLbRouteExtension( + ExperimentalTag, NoAwaitTag, + google::cloud::networkservices::v1::DeleteLbRouteExtensionRequest const& + request) override; + + future> + DeleteLbRouteExtension( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + private: std::shared_ptr child_; }; diff --git a/google/cloud/networkservices/v1/internal/network_services_connection_impl.cc b/google/cloud/networkservices/v1/internal/network_services_connection_impl.cc index 85c167ddcb23f..5dc4240cbc0d0 100644 --- a/google/cloud/networkservices/v1/internal/network_services_connection_impl.cc +++ b/google/cloud/networkservices/v1/internal/network_services_connection_impl.cc @@ -161,6 +161,62 @@ NetworkServicesConnectionImpl::CreateEndpointPolicy( polling_policy(*current), __func__); } +StatusOr +NetworkServicesConnectionImpl::CreateEndpointPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::networkservices::v1::CreateEndpointPolicyRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateEndpointPolicy(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::networkservices::v1::CreateEndpointPolicyRequest const& + request) { + return stub_->CreateEndpointPolicy(context, options, request); + }, + *current, request, __func__); +} + +future> +NetworkServicesConnectionImpl::CreateEndpointPolicy( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to CreateEndpointPolicy", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::networkservices::v1::EndpointPolicy>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::networkservices::v1::EndpointPolicy>, + polling_policy(*current), __func__); +} + future> NetworkServicesConnectionImpl::UpdateEndpointPolicy( google::cloud::networkservices::v1::UpdateEndpointPolicyRequest const& @@ -202,6 +258,62 @@ NetworkServicesConnectionImpl::UpdateEndpointPolicy( polling_policy(*current), __func__); } +StatusOr +NetworkServicesConnectionImpl::UpdateEndpointPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::networkservices::v1::UpdateEndpointPolicyRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UpdateEndpointPolicy(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::networkservices::v1::UpdateEndpointPolicyRequest const& + request) { + return stub_->UpdateEndpointPolicy(context, options, request); + }, + *current, request, __func__); +} + +future> +NetworkServicesConnectionImpl::UpdateEndpointPolicy( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to UpdateEndpointPolicy", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::networkservices::v1::EndpointPolicy>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::networkservices::v1::EndpointPolicy>, + polling_policy(*current), __func__); +} + future> NetworkServicesConnectionImpl::DeleteEndpointPolicy( google::cloud::networkservices::v1::DeleteEndpointPolicyRequest const& @@ -243,6 +355,62 @@ NetworkServicesConnectionImpl::DeleteEndpointPolicy( polling_policy(*current), __func__); } +StatusOr +NetworkServicesConnectionImpl::DeleteEndpointPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::networkservices::v1::DeleteEndpointPolicyRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteEndpointPolicy(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::networkservices::v1::DeleteEndpointPolicyRequest const& + request) { + return stub_->DeleteEndpointPolicy(context, options, request); + }, + *current, request, __func__); +} + +future> +NetworkServicesConnectionImpl::DeleteEndpointPolicy( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteEndpointPolicy", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::networkservices::v1::OperationMetadata>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::cloud::networkservices::v1::OperationMetadata>, + polling_policy(*current), __func__); +} + StreamRange NetworkServicesConnectionImpl::ListGateways( google::cloud::networkservices::v1::ListGatewaysRequest request) { @@ -333,6 +501,60 @@ NetworkServicesConnectionImpl::CreateGateway( polling_policy(*current), __func__); } +StatusOr +NetworkServicesConnectionImpl::CreateGateway( + ExperimentalTag, NoAwaitTag, + google::cloud::networkservices::v1::CreateGatewayRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateGateway(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::networkservices::v1::CreateGatewayRequest const& + request) { + return stub_->CreateGateway(context, options, request); + }, + *current, request, __func__); +} + +future> +NetworkServicesConnectionImpl::CreateGateway( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to CreateGateway", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::networkservices::v1::Gateway>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::networkservices::v1::Gateway>, + polling_policy(*current), __func__); +} + future> NetworkServicesConnectionImpl::UpdateGateway( google::cloud::networkservices::v1::UpdateGatewayRequest const& request) { @@ -373,6 +595,60 @@ NetworkServicesConnectionImpl::UpdateGateway( polling_policy(*current), __func__); } +StatusOr +NetworkServicesConnectionImpl::UpdateGateway( + ExperimentalTag, NoAwaitTag, + google::cloud::networkservices::v1::UpdateGatewayRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UpdateGateway(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::networkservices::v1::UpdateGatewayRequest const& + request) { + return stub_->UpdateGateway(context, options, request); + }, + *current, request, __func__); +} + +future> +NetworkServicesConnectionImpl::UpdateGateway( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to UpdateGateway", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::networkservices::v1::Gateway>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::networkservices::v1::Gateway>, + polling_policy(*current), __func__); +} + future> NetworkServicesConnectionImpl::DeleteGateway( google::cloud::networkservices::v1::DeleteGatewayRequest const& request) { @@ -413,6 +689,60 @@ NetworkServicesConnectionImpl::DeleteGateway( polling_policy(*current), __func__); } +StatusOr +NetworkServicesConnectionImpl::DeleteGateway( + ExperimentalTag, NoAwaitTag, + google::cloud::networkservices::v1::DeleteGatewayRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteGateway(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::networkservices::v1::DeleteGatewayRequest const& + request) { + return stub_->DeleteGateway(context, options, request); + }, + *current, request, __func__); +} + +future> +NetworkServicesConnectionImpl::DeleteGateway( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteGateway", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::networkservices::v1::OperationMetadata>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::cloud::networkservices::v1::OperationMetadata>, + polling_policy(*current), __func__); +} + StreamRange NetworkServicesConnectionImpl::ListGrpcRoutes( google::cloud::networkservices::v1::ListGrpcRoutesRequest request) { @@ -503,25 +833,40 @@ NetworkServicesConnectionImpl::CreateGrpcRoute( polling_policy(*current), __func__); } +StatusOr +NetworkServicesConnectionImpl::CreateGrpcRoute( + ExperimentalTag, NoAwaitTag, + google::cloud::networkservices::v1::CreateGrpcRouteRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateGrpcRoute(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::networkservices::v1::CreateGrpcRouteRequest const& + request) { + return stub_->CreateGrpcRoute(context, options, request); + }, + *current, request, __func__); +} + future> -NetworkServicesConnectionImpl::UpdateGrpcRoute( - google::cloud::networkservices::v1::UpdateGrpcRouteRequest const& request) { +NetworkServicesConnectionImpl::CreateGrpcRoute( + ExperimentalTag, google::longrunning::Operation const& operation) { auto current = google::cloud::internal::SaveCurrentOptions(); - auto request_copy = request; - auto const idempotent = - idempotency_policy(*current)->UpdateGrpcRoute(request_copy); - return google::cloud::internal::AsyncLongRunningOperation< + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to CreateGrpcRoute", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< google::cloud::networkservices::v1::GrpcRoute>( - background_->cq(), current, std::move(request_copy), - [stub = stub_]( - google::cloud::CompletionQueue& cq, - std::shared_ptr context, - google::cloud::internal::ImmutableOptions options, - google::cloud::networkservices::v1::UpdateGrpcRouteRequest const& - request) { - return stub->AsyncUpdateGrpcRoute(cq, std::move(context), - std::move(options), request); - }, + background_->cq(), current, operation, [stub = stub_](google::cloud::CompletionQueue& cq, std::shared_ptr context, google::cloud::internal::ImmutableOptions options, @@ -539,11 +884,104 @@ NetworkServicesConnectionImpl::UpdateGrpcRoute( }, &google::cloud::internal::ExtractLongRunningResultResponse< google::cloud::networkservices::v1::GrpcRoute>, - retry_policy(*current), backoff_policy(*current), idempotent, polling_policy(*current), __func__); } -future> +future> +NetworkServicesConnectionImpl::UpdateGrpcRoute( + google::cloud::networkservices::v1::UpdateGrpcRouteRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + auto request_copy = request; + auto const idempotent = + idempotency_policy(*current)->UpdateGrpcRoute(request_copy); + return google::cloud::internal::AsyncLongRunningOperation< + google::cloud::networkservices::v1::GrpcRoute>( + background_->cq(), current, std::move(request_copy), + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::networkservices::v1::UpdateGrpcRouteRequest const& + request) { + return stub->AsyncUpdateGrpcRoute(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::networkservices::v1::GrpcRoute>, + retry_policy(*current), backoff_policy(*current), idempotent, + polling_policy(*current), __func__); +} + +StatusOr +NetworkServicesConnectionImpl::UpdateGrpcRoute( + ExperimentalTag, NoAwaitTag, + google::cloud::networkservices::v1::UpdateGrpcRouteRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UpdateGrpcRoute(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::networkservices::v1::UpdateGrpcRouteRequest const& + request) { + return stub_->UpdateGrpcRoute(context, options, request); + }, + *current, request, __func__); +} + +future> +NetworkServicesConnectionImpl::UpdateGrpcRoute( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to UpdateGrpcRoute", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::networkservices::v1::GrpcRoute>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::networkservices::v1::GrpcRoute>, + polling_policy(*current), __func__); +} + +future> NetworkServicesConnectionImpl::DeleteGrpcRoute( google::cloud::networkservices::v1::DeleteGrpcRouteRequest const& request) { auto current = google::cloud::internal::SaveCurrentOptions(); @@ -583,6 +1021,60 @@ NetworkServicesConnectionImpl::DeleteGrpcRoute( polling_policy(*current), __func__); } +StatusOr +NetworkServicesConnectionImpl::DeleteGrpcRoute( + ExperimentalTag, NoAwaitTag, + google::cloud::networkservices::v1::DeleteGrpcRouteRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteGrpcRoute(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::networkservices::v1::DeleteGrpcRouteRequest const& + request) { + return stub_->DeleteGrpcRoute(context, options, request); + }, + *current, request, __func__); +} + +future> +NetworkServicesConnectionImpl::DeleteGrpcRoute( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteGrpcRoute", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::networkservices::v1::OperationMetadata>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::cloud::networkservices::v1::OperationMetadata>, + polling_policy(*current), __func__); +} + StreamRange NetworkServicesConnectionImpl::ListHttpRoutes( google::cloud::networkservices::v1::ListHttpRoutesRequest request) { @@ -673,6 +1165,60 @@ NetworkServicesConnectionImpl::CreateHttpRoute( polling_policy(*current), __func__); } +StatusOr +NetworkServicesConnectionImpl::CreateHttpRoute( + ExperimentalTag, NoAwaitTag, + google::cloud::networkservices::v1::CreateHttpRouteRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateHttpRoute(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::networkservices::v1::CreateHttpRouteRequest const& + request) { + return stub_->CreateHttpRoute(context, options, request); + }, + *current, request, __func__); +} + +future> +NetworkServicesConnectionImpl::CreateHttpRoute( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to CreateHttpRoute", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::networkservices::v1::HttpRoute>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::networkservices::v1::HttpRoute>, + polling_policy(*current), __func__); +} + future> NetworkServicesConnectionImpl::UpdateHttpRoute( google::cloud::networkservices::v1::UpdateHttpRouteRequest const& request) { @@ -713,6 +1259,60 @@ NetworkServicesConnectionImpl::UpdateHttpRoute( polling_policy(*current), __func__); } +StatusOr +NetworkServicesConnectionImpl::UpdateHttpRoute( + ExperimentalTag, NoAwaitTag, + google::cloud::networkservices::v1::UpdateHttpRouteRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UpdateHttpRoute(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::networkservices::v1::UpdateHttpRouteRequest const& + request) { + return stub_->UpdateHttpRoute(context, options, request); + }, + *current, request, __func__); +} + +future> +NetworkServicesConnectionImpl::UpdateHttpRoute( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to UpdateHttpRoute", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::networkservices::v1::HttpRoute>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::networkservices::v1::HttpRoute>, + polling_policy(*current), __func__); +} + future> NetworkServicesConnectionImpl::DeleteHttpRoute( google::cloud::networkservices::v1::DeleteHttpRouteRequest const& request) { @@ -753,6 +1353,60 @@ NetworkServicesConnectionImpl::DeleteHttpRoute( polling_policy(*current), __func__); } +StatusOr +NetworkServicesConnectionImpl::DeleteHttpRoute( + ExperimentalTag, NoAwaitTag, + google::cloud::networkservices::v1::DeleteHttpRouteRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteHttpRoute(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::networkservices::v1::DeleteHttpRouteRequest const& + request) { + return stub_->DeleteHttpRoute(context, options, request); + }, + *current, request, __func__); +} + +future> +NetworkServicesConnectionImpl::DeleteHttpRoute( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteHttpRoute", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::networkservices::v1::OperationMetadata>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::cloud::networkservices::v1::OperationMetadata>, + polling_policy(*current), __func__); +} + StreamRange NetworkServicesConnectionImpl::ListTcpRoutes( google::cloud::networkservices::v1::ListTcpRoutesRequest request) { @@ -843,6 +1497,60 @@ NetworkServicesConnectionImpl::CreateTcpRoute( polling_policy(*current), __func__); } +StatusOr +NetworkServicesConnectionImpl::CreateTcpRoute( + ExperimentalTag, NoAwaitTag, + google::cloud::networkservices::v1::CreateTcpRouteRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateTcpRoute(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::networkservices::v1::CreateTcpRouteRequest const& + request) { + return stub_->CreateTcpRoute(context, options, request); + }, + *current, request, __func__); +} + +future> +NetworkServicesConnectionImpl::CreateTcpRoute( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to CreateTcpRoute", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::networkservices::v1::TcpRoute>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::networkservices::v1::TcpRoute>, + polling_policy(*current), __func__); +} + future> NetworkServicesConnectionImpl::UpdateTcpRoute( google::cloud::networkservices::v1::UpdateTcpRouteRequest const& request) { @@ -883,6 +1591,60 @@ NetworkServicesConnectionImpl::UpdateTcpRoute( polling_policy(*current), __func__); } +StatusOr +NetworkServicesConnectionImpl::UpdateTcpRoute( + ExperimentalTag, NoAwaitTag, + google::cloud::networkservices::v1::UpdateTcpRouteRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UpdateTcpRoute(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::networkservices::v1::UpdateTcpRouteRequest const& + request) { + return stub_->UpdateTcpRoute(context, options, request); + }, + *current, request, __func__); +} + +future> +NetworkServicesConnectionImpl::UpdateTcpRoute( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to UpdateTcpRoute", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::networkservices::v1::TcpRoute>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::networkservices::v1::TcpRoute>, + polling_policy(*current), __func__); +} + future> NetworkServicesConnectionImpl::DeleteTcpRoute( google::cloud::networkservices::v1::DeleteTcpRouteRequest const& request) { @@ -923,6 +1685,60 @@ NetworkServicesConnectionImpl::DeleteTcpRoute( polling_policy(*current), __func__); } +StatusOr +NetworkServicesConnectionImpl::DeleteTcpRoute( + ExperimentalTag, NoAwaitTag, + google::cloud::networkservices::v1::DeleteTcpRouteRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteTcpRoute(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::networkservices::v1::DeleteTcpRouteRequest const& + request) { + return stub_->DeleteTcpRoute(context, options, request); + }, + *current, request, __func__); +} + +future> +NetworkServicesConnectionImpl::DeleteTcpRoute( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteTcpRoute", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::networkservices::v1::OperationMetadata>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::cloud::networkservices::v1::OperationMetadata>, + polling_policy(*current), __func__); +} + StreamRange NetworkServicesConnectionImpl::ListTlsRoutes( google::cloud::networkservices::v1::ListTlsRoutesRequest request) { @@ -979,7 +1795,101 @@ NetworkServicesConnectionImpl::CreateTlsRoute( auto current = google::cloud::internal::SaveCurrentOptions(); auto request_copy = request; auto const idempotent = - idempotency_policy(*current)->CreateTlsRoute(request_copy); + idempotency_policy(*current)->CreateTlsRoute(request_copy); + return google::cloud::internal::AsyncLongRunningOperation< + google::cloud::networkservices::v1::TlsRoute>( + background_->cq(), current, std::move(request_copy), + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::networkservices::v1::CreateTlsRouteRequest const& + request) { + return stub->AsyncCreateTlsRoute(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::networkservices::v1::TlsRoute>, + retry_policy(*current), backoff_policy(*current), idempotent, + polling_policy(*current), __func__); +} + +StatusOr +NetworkServicesConnectionImpl::CreateTlsRoute( + ExperimentalTag, NoAwaitTag, + google::cloud::networkservices::v1::CreateTlsRouteRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateTlsRoute(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::networkservices::v1::CreateTlsRouteRequest const& + request) { + return stub_->CreateTlsRoute(context, options, request); + }, + *current, request, __func__); +} + +future> +NetworkServicesConnectionImpl::CreateTlsRoute( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to CreateTlsRoute", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::networkservices::v1::TlsRoute>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::networkservices::v1::TlsRoute>, + polling_policy(*current), __func__); +} + +future> +NetworkServicesConnectionImpl::UpdateTlsRoute( + google::cloud::networkservices::v1::UpdateTlsRouteRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + auto request_copy = request; + auto const idempotent = + idempotency_policy(*current)->UpdateTlsRoute(request_copy); return google::cloud::internal::AsyncLongRunningOperation< google::cloud::networkservices::v1::TlsRoute>( background_->cq(), current, std::move(request_copy), @@ -987,9 +1897,9 @@ NetworkServicesConnectionImpl::CreateTlsRoute( google::cloud::CompletionQueue& cq, std::shared_ptr context, google::cloud::internal::ImmutableOptions options, - google::cloud::networkservices::v1::CreateTlsRouteRequest const& + google::cloud::networkservices::v1::UpdateTlsRouteRequest const& request) { - return stub->AsyncCreateTlsRoute(cq, std::move(context), + return stub->AsyncUpdateTlsRoute(cq, std::move(context), std::move(options), request); }, [stub = stub_](google::cloud::CompletionQueue& cq, @@ -1013,25 +1923,40 @@ NetworkServicesConnectionImpl::CreateTlsRoute( polling_policy(*current), __func__); } -future> +StatusOr NetworkServicesConnectionImpl::UpdateTlsRoute( + ExperimentalTag, NoAwaitTag, google::cloud::networkservices::v1::UpdateTlsRouteRequest const& request) { auto current = google::cloud::internal::SaveCurrentOptions(); - auto request_copy = request; - auto const idempotent = - idempotency_policy(*current)->UpdateTlsRoute(request_copy); - return google::cloud::internal::AsyncLongRunningOperation< - google::cloud::networkservices::v1::TlsRoute>( - background_->cq(), current, std::move(request_copy), - [stub = stub_]( - google::cloud::CompletionQueue& cq, - std::shared_ptr context, - google::cloud::internal::ImmutableOptions options, - google::cloud::networkservices::v1::UpdateTlsRouteRequest const& - request) { - return stub->AsyncUpdateTlsRoute(cq, std::move(context), - std::move(options), request); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UpdateTlsRoute(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::networkservices::v1::UpdateTlsRouteRequest const& + request) { + return stub_->UpdateTlsRoute(context, options, request); }, + *current, request, __func__); +} + +future> +NetworkServicesConnectionImpl::UpdateTlsRoute( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to UpdateTlsRoute", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::networkservices::v1::TlsRoute>( + background_->cq(), current, operation, [stub = stub_](google::cloud::CompletionQueue& cq, std::shared_ptr context, google::cloud::internal::ImmutableOptions options, @@ -1049,7 +1974,6 @@ NetworkServicesConnectionImpl::UpdateTlsRoute( }, &google::cloud::internal::ExtractLongRunningResultResponse< google::cloud::networkservices::v1::TlsRoute>, - retry_policy(*current), backoff_policy(*current), idempotent, polling_policy(*current), __func__); } @@ -1093,6 +2017,60 @@ NetworkServicesConnectionImpl::DeleteTlsRoute( polling_policy(*current), __func__); } +StatusOr +NetworkServicesConnectionImpl::DeleteTlsRoute( + ExperimentalTag, NoAwaitTag, + google::cloud::networkservices::v1::DeleteTlsRouteRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteTlsRoute(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::networkservices::v1::DeleteTlsRouteRequest const& + request) { + return stub_->DeleteTlsRoute(context, options, request); + }, + *current, request, __func__); +} + +future> +NetworkServicesConnectionImpl::DeleteTlsRoute( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteTlsRoute", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::networkservices::v1::OperationMetadata>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::cloud::networkservices::v1::OperationMetadata>, + polling_policy(*current), __func__); +} + StreamRange NetworkServicesConnectionImpl::ListServiceBindings( google::cloud::networkservices::v1::ListServiceBindingsRequest request) { @@ -1185,6 +2163,62 @@ NetworkServicesConnectionImpl::CreateServiceBinding( polling_policy(*current), __func__); } +StatusOr +NetworkServicesConnectionImpl::CreateServiceBinding( + ExperimentalTag, NoAwaitTag, + google::cloud::networkservices::v1::CreateServiceBindingRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateServiceBinding(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::networkservices::v1::CreateServiceBindingRequest const& + request) { + return stub_->CreateServiceBinding(context, options, request); + }, + *current, request, __func__); +} + +future> +NetworkServicesConnectionImpl::CreateServiceBinding( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to CreateServiceBinding", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::networkservices::v1::ServiceBinding>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::networkservices::v1::ServiceBinding>, + polling_policy(*current), __func__); +} + future> NetworkServicesConnectionImpl::DeleteServiceBinding( google::cloud::networkservices::v1::DeleteServiceBindingRequest const& @@ -1226,6 +2260,62 @@ NetworkServicesConnectionImpl::DeleteServiceBinding( polling_policy(*current), __func__); } +StatusOr +NetworkServicesConnectionImpl::DeleteServiceBinding( + ExperimentalTag, NoAwaitTag, + google::cloud::networkservices::v1::DeleteServiceBindingRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteServiceBinding(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::networkservices::v1::DeleteServiceBindingRequest const& + request) { + return stub_->DeleteServiceBinding(context, options, request); + }, + *current, request, __func__); +} + +future> +NetworkServicesConnectionImpl::DeleteServiceBinding( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteServiceBinding", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::networkservices::v1::OperationMetadata>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::cloud::networkservices::v1::OperationMetadata>, + polling_policy(*current), __func__); +} + StreamRange NetworkServicesConnectionImpl::ListMeshes( google::cloud::networkservices::v1::ListMeshesRequest request) { @@ -1315,6 +2405,60 @@ NetworkServicesConnectionImpl::CreateMesh( polling_policy(*current), __func__); } +StatusOr +NetworkServicesConnectionImpl::CreateMesh( + ExperimentalTag, NoAwaitTag, + google::cloud::networkservices::v1::CreateMeshRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateMesh(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::networkservices::v1::CreateMeshRequest const& + request) { + return stub_->CreateMesh(context, options, request); + }, + *current, request, __func__); +} + +future> +NetworkServicesConnectionImpl::CreateMesh( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to CreateMesh", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::networkservices::v1::Mesh>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::networkservices::v1::Mesh>, + polling_policy(*current), __func__); +} + future> NetworkServicesConnectionImpl::UpdateMesh( google::cloud::networkservices::v1::UpdateMeshRequest const& request) { @@ -1355,6 +2499,60 @@ NetworkServicesConnectionImpl::UpdateMesh( polling_policy(*current), __func__); } +StatusOr +NetworkServicesConnectionImpl::UpdateMesh( + ExperimentalTag, NoAwaitTag, + google::cloud::networkservices::v1::UpdateMeshRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UpdateMesh(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::networkservices::v1::UpdateMeshRequest const& + request) { + return stub_->UpdateMesh(context, options, request); + }, + *current, request, __func__); +} + +future> +NetworkServicesConnectionImpl::UpdateMesh( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to UpdateMesh", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::networkservices::v1::Mesh>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::networkservices::v1::Mesh>, + polling_policy(*current), __func__); +} + future> NetworkServicesConnectionImpl::DeleteMesh( google::cloud::networkservices::v1::DeleteMeshRequest const& request) { @@ -1395,6 +2593,60 @@ NetworkServicesConnectionImpl::DeleteMesh( polling_policy(*current), __func__); } +StatusOr +NetworkServicesConnectionImpl::DeleteMesh( + ExperimentalTag, NoAwaitTag, + google::cloud::networkservices::v1::DeleteMeshRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteMesh(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::networkservices::v1::DeleteMeshRequest const& + request) { + return stub_->DeleteMesh(context, options, request); + }, + *current, request, __func__); +} + +future> +NetworkServicesConnectionImpl::DeleteMesh( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteMesh", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::networkservices::v1::OperationMetadata>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::cloud::networkservices::v1::OperationMetadata>, + polling_policy(*current), __func__); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace networkservices_v1_internal } // namespace cloud diff --git a/google/cloud/networkservices/v1/internal/network_services_connection_impl.h b/google/cloud/networkservices/v1/internal/network_services_connection_impl.h index 71c742ceb4e4a..f411696004eb0 100644 --- a/google/cloud/networkservices/v1/internal/network_services_connection_impl.h +++ b/google/cloud/networkservices/v1/internal/network_services_connection_impl.h @@ -67,16 +67,46 @@ class NetworkServicesConnectionImpl google::cloud::networkservices::v1::CreateEndpointPolicyRequest const& request) override; + StatusOr CreateEndpointPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::networkservices::v1::CreateEndpointPolicyRequest const& + request) override; + + future> + CreateEndpointPolicy( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateEndpointPolicy( google::cloud::networkservices::v1::UpdateEndpointPolicyRequest const& request) override; + StatusOr UpdateEndpointPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::networkservices::v1::UpdateEndpointPolicyRequest const& + request) override; + + future> + UpdateEndpointPolicy( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteEndpointPolicy( google::cloud::networkservices::v1::DeleteEndpointPolicyRequest const& request) override; + StatusOr DeleteEndpointPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::networkservices::v1::DeleteEndpointPolicyRequest const& + request) override; + + future> + DeleteEndpointPolicy( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListGateways( google::cloud::networkservices::v1::ListGatewaysRequest request) override; @@ -88,14 +118,41 @@ class NetworkServicesConnectionImpl google::cloud::networkservices::v1::CreateGatewayRequest const& request) override; + StatusOr CreateGateway( + ExperimentalTag, NoAwaitTag, + google::cloud::networkservices::v1::CreateGatewayRequest const& request) + override; + + future> CreateGateway( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateGateway( google::cloud::networkservices::v1::UpdateGatewayRequest const& request) override; + StatusOr UpdateGateway( + ExperimentalTag, NoAwaitTag, + google::cloud::networkservices::v1::UpdateGatewayRequest const& request) + override; + + future> UpdateGateway( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteGateway(google::cloud::networkservices::v1::DeleteGatewayRequest const& request) override; + StatusOr DeleteGateway( + ExperimentalTag, NoAwaitTag, + google::cloud::networkservices::v1::DeleteGatewayRequest const& request) + override; + + future> + DeleteGateway(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListGrpcRoutes( google::cloud::networkservices::v1::ListGrpcRoutesRequest request) override; @@ -109,16 +166,43 @@ class NetworkServicesConnectionImpl google::cloud::networkservices::v1::CreateGrpcRouteRequest const& request) override; + StatusOr CreateGrpcRoute( + ExperimentalTag, NoAwaitTag, + google::cloud::networkservices::v1::CreateGrpcRouteRequest const& request) + override; + + future> + CreateGrpcRoute(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateGrpcRoute( google::cloud::networkservices::v1::UpdateGrpcRouteRequest const& request) override; + StatusOr UpdateGrpcRoute( + ExperimentalTag, NoAwaitTag, + google::cloud::networkservices::v1::UpdateGrpcRouteRequest const& request) + override; + + future> + UpdateGrpcRoute(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteGrpcRoute( google::cloud::networkservices::v1::DeleteGrpcRouteRequest const& request) override; + StatusOr DeleteGrpcRoute( + ExperimentalTag, NoAwaitTag, + google::cloud::networkservices::v1::DeleteGrpcRouteRequest const& request) + override; + + future> + DeleteGrpcRoute(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListHttpRoutes( google::cloud::networkservices::v1::ListHttpRoutesRequest request) override; @@ -132,16 +216,43 @@ class NetworkServicesConnectionImpl google::cloud::networkservices::v1::CreateHttpRouteRequest const& request) override; + StatusOr CreateHttpRoute( + ExperimentalTag, NoAwaitTag, + google::cloud::networkservices::v1::CreateHttpRouteRequest const& request) + override; + + future> + CreateHttpRoute(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateHttpRoute( google::cloud::networkservices::v1::UpdateHttpRouteRequest const& request) override; + StatusOr UpdateHttpRoute( + ExperimentalTag, NoAwaitTag, + google::cloud::networkservices::v1::UpdateHttpRouteRequest const& request) + override; + + future> + UpdateHttpRoute(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteHttpRoute( google::cloud::networkservices::v1::DeleteHttpRouteRequest const& request) override; + StatusOr DeleteHttpRoute( + ExperimentalTag, NoAwaitTag, + google::cloud::networkservices::v1::DeleteHttpRouteRequest const& request) + override; + + future> + DeleteHttpRoute(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListTcpRoutes( google::cloud::networkservices::v1::ListTcpRoutesRequest request) override; @@ -154,15 +265,42 @@ class NetworkServicesConnectionImpl google::cloud::networkservices::v1::CreateTcpRouteRequest const& request) override; + StatusOr CreateTcpRoute( + ExperimentalTag, NoAwaitTag, + google::cloud::networkservices::v1::CreateTcpRouteRequest const& request) + override; + + future> CreateTcpRoute( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateTcpRoute( google::cloud::networkservices::v1::UpdateTcpRouteRequest const& request) override; + StatusOr UpdateTcpRoute( + ExperimentalTag, NoAwaitTag, + google::cloud::networkservices::v1::UpdateTcpRouteRequest const& request) + override; + + future> UpdateTcpRoute( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteTcpRoute( google::cloud::networkservices::v1::DeleteTcpRouteRequest const& request) override; + StatusOr DeleteTcpRoute( + ExperimentalTag, NoAwaitTag, + google::cloud::networkservices::v1::DeleteTcpRouteRequest const& request) + override; + + future> + DeleteTcpRoute(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListTlsRoutes( google::cloud::networkservices::v1::ListTlsRoutesRequest request) override; @@ -175,15 +313,42 @@ class NetworkServicesConnectionImpl google::cloud::networkservices::v1::CreateTlsRouteRequest const& request) override; + StatusOr CreateTlsRoute( + ExperimentalTag, NoAwaitTag, + google::cloud::networkservices::v1::CreateTlsRouteRequest const& request) + override; + + future> CreateTlsRoute( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateTlsRoute( google::cloud::networkservices::v1::UpdateTlsRouteRequest const& request) override; + StatusOr UpdateTlsRoute( + ExperimentalTag, NoAwaitTag, + google::cloud::networkservices::v1::UpdateTlsRouteRequest const& request) + override; + + future> UpdateTlsRoute( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteTlsRoute( google::cloud::networkservices::v1::DeleteTlsRouteRequest const& request) override; + StatusOr DeleteTlsRoute( + ExperimentalTag, NoAwaitTag, + google::cloud::networkservices::v1::DeleteTlsRouteRequest const& request) + override; + + future> + DeleteTlsRoute(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListServiceBindings( google::cloud::networkservices::v1::ListServiceBindingsRequest request) @@ -199,11 +364,31 @@ class NetworkServicesConnectionImpl google::cloud::networkservices::v1::CreateServiceBindingRequest const& request) override; + StatusOr CreateServiceBinding( + ExperimentalTag, NoAwaitTag, + google::cloud::networkservices::v1::CreateServiceBindingRequest const& + request) override; + + future> + CreateServiceBinding( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteServiceBinding( google::cloud::networkservices::v1::DeleteServiceBindingRequest const& request) override; + StatusOr DeleteServiceBinding( + ExperimentalTag, NoAwaitTag, + google::cloud::networkservices::v1::DeleteServiceBindingRequest const& + request) override; + + future> + DeleteServiceBinding( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListMeshes( google::cloud::networkservices::v1::ListMeshesRequest request) override; @@ -215,14 +400,41 @@ class NetworkServicesConnectionImpl google::cloud::networkservices::v1::CreateMeshRequest const& request) override; + StatusOr CreateMesh( + ExperimentalTag, NoAwaitTag, + google::cloud::networkservices::v1::CreateMeshRequest const& request) + override; + + future> CreateMesh( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateMesh( google::cloud::networkservices::v1::UpdateMeshRequest const& request) override; + StatusOr UpdateMesh( + ExperimentalTag, NoAwaitTag, + google::cloud::networkservices::v1::UpdateMeshRequest const& request) + override; + + future> UpdateMesh( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteMesh(google::cloud::networkservices::v1::DeleteMeshRequest const& request) override; + StatusOr DeleteMesh( + ExperimentalTag, NoAwaitTag, + google::cloud::networkservices::v1::DeleteMeshRequest const& request) + override; + + future> + DeleteMesh(ExperimentalTag, + google::longrunning::Operation const& operation) override; + private: std::unique_ptr background_; std::shared_ptr stub_; diff --git a/google/cloud/networkservices/v1/internal/network_services_tracing_connection.cc b/google/cloud/networkservices/v1/internal/network_services_tracing_connection.cc index 2b7180db8a221..c6ce8efefc5d8 100644 --- a/google/cloud/networkservices/v1/internal/network_services_tracing_connection.cc +++ b/google/cloud/networkservices/v1/internal/network_services_tracing_connection.cc @@ -66,6 +66,29 @@ NetworkServicesTracingConnection::CreateEndpointPolicy( child_->CreateEndpointPolicy(request)); } +StatusOr +NetworkServicesTracingConnection::CreateEndpointPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::networkservices::v1::CreateEndpointPolicyRequest const& + request) { + auto span = internal::MakeSpan( + "networkservices_v1::NetworkServicesConnection::CreateEndpointPolicy"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->CreateEndpointPolicy(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +NetworkServicesTracingConnection::CreateEndpointPolicy( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "networkservices_v1::NetworkServicesConnection::CreateEndpointPolicy"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->CreateEndpointPolicy( + ExperimentalTag{}, operation)); +} + future> NetworkServicesTracingConnection::UpdateEndpointPolicy( google::cloud::networkservices::v1::UpdateEndpointPolicyRequest const& @@ -77,6 +100,29 @@ NetworkServicesTracingConnection::UpdateEndpointPolicy( child_->UpdateEndpointPolicy(request)); } +StatusOr +NetworkServicesTracingConnection::UpdateEndpointPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::networkservices::v1::UpdateEndpointPolicyRequest const& + request) { + auto span = internal::MakeSpan( + "networkservices_v1::NetworkServicesConnection::UpdateEndpointPolicy"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->UpdateEndpointPolicy(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +NetworkServicesTracingConnection::UpdateEndpointPolicy( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "networkservices_v1::NetworkServicesConnection::UpdateEndpointPolicy"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->UpdateEndpointPolicy( + ExperimentalTag{}, operation)); +} + future> NetworkServicesTracingConnection::DeleteEndpointPolicy( google::cloud::networkservices::v1::DeleteEndpointPolicyRequest const& @@ -88,6 +134,29 @@ NetworkServicesTracingConnection::DeleteEndpointPolicy( child_->DeleteEndpointPolicy(request)); } +StatusOr +NetworkServicesTracingConnection::DeleteEndpointPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::networkservices::v1::DeleteEndpointPolicyRequest const& + request) { + auto span = internal::MakeSpan( + "networkservices_v1::NetworkServicesConnection::DeleteEndpointPolicy"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->DeleteEndpointPolicy(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +NetworkServicesTracingConnection::DeleteEndpointPolicy( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "networkservices_v1::NetworkServicesConnection::DeleteEndpointPolicy"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->DeleteEndpointPolicy( + ExperimentalTag{}, operation)); +} + StreamRange NetworkServicesTracingConnection::ListGateways( google::cloud::networkservices::v1::ListGatewaysRequest request) { @@ -118,6 +187,27 @@ NetworkServicesTracingConnection::CreateGateway( return internal::EndSpan(std::move(span), child_->CreateGateway(request)); } +StatusOr +NetworkServicesTracingConnection::CreateGateway( + ExperimentalTag, NoAwaitTag, + google::cloud::networkservices::v1::CreateGatewayRequest const& request) { + auto span = internal::MakeSpan( + "networkservices_v1::NetworkServicesConnection::CreateGateway"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->CreateGateway(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +NetworkServicesTracingConnection::CreateGateway( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "networkservices_v1::NetworkServicesConnection::CreateGateway"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->CreateGateway(ExperimentalTag{}, operation)); +} + future> NetworkServicesTracingConnection::UpdateGateway( google::cloud::networkservices::v1::UpdateGatewayRequest const& request) { @@ -127,6 +217,27 @@ NetworkServicesTracingConnection::UpdateGateway( return internal::EndSpan(std::move(span), child_->UpdateGateway(request)); } +StatusOr +NetworkServicesTracingConnection::UpdateGateway( + ExperimentalTag, NoAwaitTag, + google::cloud::networkservices::v1::UpdateGatewayRequest const& request) { + auto span = internal::MakeSpan( + "networkservices_v1::NetworkServicesConnection::UpdateGateway"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->UpdateGateway(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +NetworkServicesTracingConnection::UpdateGateway( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "networkservices_v1::NetworkServicesConnection::UpdateGateway"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->UpdateGateway(ExperimentalTag{}, operation)); +} + future> NetworkServicesTracingConnection::DeleteGateway( google::cloud::networkservices::v1::DeleteGatewayRequest const& request) { @@ -136,6 +247,27 @@ NetworkServicesTracingConnection::DeleteGateway( return internal::EndSpan(std::move(span), child_->DeleteGateway(request)); } +StatusOr +NetworkServicesTracingConnection::DeleteGateway( + ExperimentalTag, NoAwaitTag, + google::cloud::networkservices::v1::DeleteGatewayRequest const& request) { + auto span = internal::MakeSpan( + "networkservices_v1::NetworkServicesConnection::DeleteGateway"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->DeleteGateway(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +NetworkServicesTracingConnection::DeleteGateway( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "networkservices_v1::NetworkServicesConnection::DeleteGateway"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->DeleteGateway(ExperimentalTag{}, operation)); +} + StreamRange NetworkServicesTracingConnection::ListGrpcRoutes( google::cloud::networkservices::v1::ListGrpcRoutesRequest request) { @@ -166,6 +298,27 @@ NetworkServicesTracingConnection::CreateGrpcRoute( return internal::EndSpan(std::move(span), child_->CreateGrpcRoute(request)); } +StatusOr +NetworkServicesTracingConnection::CreateGrpcRoute( + ExperimentalTag, NoAwaitTag, + google::cloud::networkservices::v1::CreateGrpcRouteRequest const& request) { + auto span = internal::MakeSpan( + "networkservices_v1::NetworkServicesConnection::CreateGrpcRoute"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->CreateGrpcRoute(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +NetworkServicesTracingConnection::CreateGrpcRoute( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "networkservices_v1::NetworkServicesConnection::CreateGrpcRoute"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->CreateGrpcRoute(ExperimentalTag{}, operation)); +} + future> NetworkServicesTracingConnection::UpdateGrpcRoute( google::cloud::networkservices::v1::UpdateGrpcRouteRequest const& request) { @@ -175,6 +328,27 @@ NetworkServicesTracingConnection::UpdateGrpcRoute( return internal::EndSpan(std::move(span), child_->UpdateGrpcRoute(request)); } +StatusOr +NetworkServicesTracingConnection::UpdateGrpcRoute( + ExperimentalTag, NoAwaitTag, + google::cloud::networkservices::v1::UpdateGrpcRouteRequest const& request) { + auto span = internal::MakeSpan( + "networkservices_v1::NetworkServicesConnection::UpdateGrpcRoute"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->UpdateGrpcRoute(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +NetworkServicesTracingConnection::UpdateGrpcRoute( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "networkservices_v1::NetworkServicesConnection::UpdateGrpcRoute"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->UpdateGrpcRoute(ExperimentalTag{}, operation)); +} + future> NetworkServicesTracingConnection::DeleteGrpcRoute( google::cloud::networkservices::v1::DeleteGrpcRouteRequest const& request) { @@ -184,6 +358,27 @@ NetworkServicesTracingConnection::DeleteGrpcRoute( return internal::EndSpan(std::move(span), child_->DeleteGrpcRoute(request)); } +StatusOr +NetworkServicesTracingConnection::DeleteGrpcRoute( + ExperimentalTag, NoAwaitTag, + google::cloud::networkservices::v1::DeleteGrpcRouteRequest const& request) { + auto span = internal::MakeSpan( + "networkservices_v1::NetworkServicesConnection::DeleteGrpcRoute"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->DeleteGrpcRoute(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +NetworkServicesTracingConnection::DeleteGrpcRoute( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "networkservices_v1::NetworkServicesConnection::DeleteGrpcRoute"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->DeleteGrpcRoute(ExperimentalTag{}, operation)); +} + StreamRange NetworkServicesTracingConnection::ListHttpRoutes( google::cloud::networkservices::v1::ListHttpRoutesRequest request) { @@ -214,6 +409,27 @@ NetworkServicesTracingConnection::CreateHttpRoute( return internal::EndSpan(std::move(span), child_->CreateHttpRoute(request)); } +StatusOr +NetworkServicesTracingConnection::CreateHttpRoute( + ExperimentalTag, NoAwaitTag, + google::cloud::networkservices::v1::CreateHttpRouteRequest const& request) { + auto span = internal::MakeSpan( + "networkservices_v1::NetworkServicesConnection::CreateHttpRoute"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->CreateHttpRoute(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +NetworkServicesTracingConnection::CreateHttpRoute( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "networkservices_v1::NetworkServicesConnection::CreateHttpRoute"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->CreateHttpRoute(ExperimentalTag{}, operation)); +} + future> NetworkServicesTracingConnection::UpdateHttpRoute( google::cloud::networkservices::v1::UpdateHttpRouteRequest const& request) { @@ -223,6 +439,27 @@ NetworkServicesTracingConnection::UpdateHttpRoute( return internal::EndSpan(std::move(span), child_->UpdateHttpRoute(request)); } +StatusOr +NetworkServicesTracingConnection::UpdateHttpRoute( + ExperimentalTag, NoAwaitTag, + google::cloud::networkservices::v1::UpdateHttpRouteRequest const& request) { + auto span = internal::MakeSpan( + "networkservices_v1::NetworkServicesConnection::UpdateHttpRoute"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->UpdateHttpRoute(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +NetworkServicesTracingConnection::UpdateHttpRoute( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "networkservices_v1::NetworkServicesConnection::UpdateHttpRoute"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->UpdateHttpRoute(ExperimentalTag{}, operation)); +} + future> NetworkServicesTracingConnection::DeleteHttpRoute( google::cloud::networkservices::v1::DeleteHttpRouteRequest const& request) { @@ -232,6 +469,27 @@ NetworkServicesTracingConnection::DeleteHttpRoute( return internal::EndSpan(std::move(span), child_->DeleteHttpRoute(request)); } +StatusOr +NetworkServicesTracingConnection::DeleteHttpRoute( + ExperimentalTag, NoAwaitTag, + google::cloud::networkservices::v1::DeleteHttpRouteRequest const& request) { + auto span = internal::MakeSpan( + "networkservices_v1::NetworkServicesConnection::DeleteHttpRoute"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->DeleteHttpRoute(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +NetworkServicesTracingConnection::DeleteHttpRoute( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "networkservices_v1::NetworkServicesConnection::DeleteHttpRoute"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->DeleteHttpRoute(ExperimentalTag{}, operation)); +} + StreamRange NetworkServicesTracingConnection::ListTcpRoutes( google::cloud::networkservices::v1::ListTcpRoutesRequest request) { @@ -262,6 +520,27 @@ NetworkServicesTracingConnection::CreateTcpRoute( return internal::EndSpan(std::move(span), child_->CreateTcpRoute(request)); } +StatusOr +NetworkServicesTracingConnection::CreateTcpRoute( + ExperimentalTag, NoAwaitTag, + google::cloud::networkservices::v1::CreateTcpRouteRequest const& request) { + auto span = internal::MakeSpan( + "networkservices_v1::NetworkServicesConnection::CreateTcpRoute"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->CreateTcpRoute(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +NetworkServicesTracingConnection::CreateTcpRoute( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "networkservices_v1::NetworkServicesConnection::CreateTcpRoute"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->CreateTcpRoute(ExperimentalTag{}, operation)); +} + future> NetworkServicesTracingConnection::UpdateTcpRoute( google::cloud::networkservices::v1::UpdateTcpRouteRequest const& request) { @@ -271,6 +550,27 @@ NetworkServicesTracingConnection::UpdateTcpRoute( return internal::EndSpan(std::move(span), child_->UpdateTcpRoute(request)); } +StatusOr +NetworkServicesTracingConnection::UpdateTcpRoute( + ExperimentalTag, NoAwaitTag, + google::cloud::networkservices::v1::UpdateTcpRouteRequest const& request) { + auto span = internal::MakeSpan( + "networkservices_v1::NetworkServicesConnection::UpdateTcpRoute"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->UpdateTcpRoute(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +NetworkServicesTracingConnection::UpdateTcpRoute( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "networkservices_v1::NetworkServicesConnection::UpdateTcpRoute"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->UpdateTcpRoute(ExperimentalTag{}, operation)); +} + future> NetworkServicesTracingConnection::DeleteTcpRoute( google::cloud::networkservices::v1::DeleteTcpRouteRequest const& request) { @@ -280,6 +580,27 @@ NetworkServicesTracingConnection::DeleteTcpRoute( return internal::EndSpan(std::move(span), child_->DeleteTcpRoute(request)); } +StatusOr +NetworkServicesTracingConnection::DeleteTcpRoute( + ExperimentalTag, NoAwaitTag, + google::cloud::networkservices::v1::DeleteTcpRouteRequest const& request) { + auto span = internal::MakeSpan( + "networkservices_v1::NetworkServicesConnection::DeleteTcpRoute"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->DeleteTcpRoute(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +NetworkServicesTracingConnection::DeleteTcpRoute( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "networkservices_v1::NetworkServicesConnection::DeleteTcpRoute"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->DeleteTcpRoute(ExperimentalTag{}, operation)); +} + StreamRange NetworkServicesTracingConnection::ListTlsRoutes( google::cloud::networkservices::v1::ListTlsRoutesRequest request) { @@ -310,6 +631,27 @@ NetworkServicesTracingConnection::CreateTlsRoute( return internal::EndSpan(std::move(span), child_->CreateTlsRoute(request)); } +StatusOr +NetworkServicesTracingConnection::CreateTlsRoute( + ExperimentalTag, NoAwaitTag, + google::cloud::networkservices::v1::CreateTlsRouteRequest const& request) { + auto span = internal::MakeSpan( + "networkservices_v1::NetworkServicesConnection::CreateTlsRoute"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->CreateTlsRoute(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +NetworkServicesTracingConnection::CreateTlsRoute( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "networkservices_v1::NetworkServicesConnection::CreateTlsRoute"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->CreateTlsRoute(ExperimentalTag{}, operation)); +} + future> NetworkServicesTracingConnection::UpdateTlsRoute( google::cloud::networkservices::v1::UpdateTlsRouteRequest const& request) { @@ -319,6 +661,27 @@ NetworkServicesTracingConnection::UpdateTlsRoute( return internal::EndSpan(std::move(span), child_->UpdateTlsRoute(request)); } +StatusOr +NetworkServicesTracingConnection::UpdateTlsRoute( + ExperimentalTag, NoAwaitTag, + google::cloud::networkservices::v1::UpdateTlsRouteRequest const& request) { + auto span = internal::MakeSpan( + "networkservices_v1::NetworkServicesConnection::UpdateTlsRoute"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->UpdateTlsRoute(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +NetworkServicesTracingConnection::UpdateTlsRoute( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "networkservices_v1::NetworkServicesConnection::UpdateTlsRoute"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->UpdateTlsRoute(ExperimentalTag{}, operation)); +} + future> NetworkServicesTracingConnection::DeleteTlsRoute( google::cloud::networkservices::v1::DeleteTlsRouteRequest const& request) { @@ -328,6 +691,27 @@ NetworkServicesTracingConnection::DeleteTlsRoute( return internal::EndSpan(std::move(span), child_->DeleteTlsRoute(request)); } +StatusOr +NetworkServicesTracingConnection::DeleteTlsRoute( + ExperimentalTag, NoAwaitTag, + google::cloud::networkservices::v1::DeleteTlsRouteRequest const& request) { + auto span = internal::MakeSpan( + "networkservices_v1::NetworkServicesConnection::DeleteTlsRoute"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->DeleteTlsRoute(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +NetworkServicesTracingConnection::DeleteTlsRoute( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "networkservices_v1::NetworkServicesConnection::DeleteTlsRoute"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->DeleteTlsRoute(ExperimentalTag{}, operation)); +} + StreamRange NetworkServicesTracingConnection::ListServiceBindings( google::cloud::networkservices::v1::ListServiceBindingsRequest request) { @@ -361,6 +745,29 @@ NetworkServicesTracingConnection::CreateServiceBinding( child_->CreateServiceBinding(request)); } +StatusOr +NetworkServicesTracingConnection::CreateServiceBinding( + ExperimentalTag, NoAwaitTag, + google::cloud::networkservices::v1::CreateServiceBindingRequest const& + request) { + auto span = internal::MakeSpan( + "networkservices_v1::NetworkServicesConnection::CreateServiceBinding"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->CreateServiceBinding(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +NetworkServicesTracingConnection::CreateServiceBinding( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "networkservices_v1::NetworkServicesConnection::CreateServiceBinding"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->CreateServiceBinding( + ExperimentalTag{}, operation)); +} + future> NetworkServicesTracingConnection::DeleteServiceBinding( google::cloud::networkservices::v1::DeleteServiceBindingRequest const& @@ -372,6 +779,29 @@ NetworkServicesTracingConnection::DeleteServiceBinding( child_->DeleteServiceBinding(request)); } +StatusOr +NetworkServicesTracingConnection::DeleteServiceBinding( + ExperimentalTag, NoAwaitTag, + google::cloud::networkservices::v1::DeleteServiceBindingRequest const& + request) { + auto span = internal::MakeSpan( + "networkservices_v1::NetworkServicesConnection::DeleteServiceBinding"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->DeleteServiceBinding(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +NetworkServicesTracingConnection::DeleteServiceBinding( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "networkservices_v1::NetworkServicesConnection::DeleteServiceBinding"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->DeleteServiceBinding( + ExperimentalTag{}, operation)); +} + StreamRange NetworkServicesTracingConnection::ListMeshes( google::cloud::networkservices::v1::ListMeshesRequest request) { @@ -401,6 +831,27 @@ NetworkServicesTracingConnection::CreateMesh( return internal::EndSpan(std::move(span), child_->CreateMesh(request)); } +StatusOr +NetworkServicesTracingConnection::CreateMesh( + ExperimentalTag, NoAwaitTag, + google::cloud::networkservices::v1::CreateMeshRequest const& request) { + auto span = internal::MakeSpan( + "networkservices_v1::NetworkServicesConnection::CreateMesh"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->CreateMesh(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +NetworkServicesTracingConnection::CreateMesh( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "networkservices_v1::NetworkServicesConnection::CreateMesh"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->CreateMesh(ExperimentalTag{}, operation)); +} + future> NetworkServicesTracingConnection::UpdateMesh( google::cloud::networkservices::v1::UpdateMeshRequest const& request) { @@ -410,6 +861,27 @@ NetworkServicesTracingConnection::UpdateMesh( return internal::EndSpan(std::move(span), child_->UpdateMesh(request)); } +StatusOr +NetworkServicesTracingConnection::UpdateMesh( + ExperimentalTag, NoAwaitTag, + google::cloud::networkservices::v1::UpdateMeshRequest const& request) { + auto span = internal::MakeSpan( + "networkservices_v1::NetworkServicesConnection::UpdateMesh"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->UpdateMesh(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +NetworkServicesTracingConnection::UpdateMesh( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "networkservices_v1::NetworkServicesConnection::UpdateMesh"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->UpdateMesh(ExperimentalTag{}, operation)); +} + future> NetworkServicesTracingConnection::DeleteMesh( google::cloud::networkservices::v1::DeleteMeshRequest const& request) { @@ -419,6 +891,27 @@ NetworkServicesTracingConnection::DeleteMesh( return internal::EndSpan(std::move(span), child_->DeleteMesh(request)); } +StatusOr +NetworkServicesTracingConnection::DeleteMesh( + ExperimentalTag, NoAwaitTag, + google::cloud::networkservices::v1::DeleteMeshRequest const& request) { + auto span = internal::MakeSpan( + "networkservices_v1::NetworkServicesConnection::DeleteMesh"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->DeleteMesh(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +NetworkServicesTracingConnection::DeleteMesh( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "networkservices_v1::NetworkServicesConnection::DeleteMesh"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->DeleteMesh(ExperimentalTag{}, operation)); +} + #endif // GOOGLE_CLOUD_CPP_HAVE_OPENTELEMETRY std::shared_ptr diff --git a/google/cloud/networkservices/v1/internal/network_services_tracing_connection.h b/google/cloud/networkservices/v1/internal/network_services_tracing_connection.h index bddcbd242a7b1..c20bcd3a5b587 100644 --- a/google/cloud/networkservices/v1/internal/network_services_tracing_connection.h +++ b/google/cloud/networkservices/v1/internal/network_services_tracing_connection.h @@ -55,16 +55,46 @@ class NetworkServicesTracingConnection google::cloud::networkservices::v1::CreateEndpointPolicyRequest const& request) override; + StatusOr CreateEndpointPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::networkservices::v1::CreateEndpointPolicyRequest const& + request) override; + + future> + CreateEndpointPolicy( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateEndpointPolicy( google::cloud::networkservices::v1::UpdateEndpointPolicyRequest const& request) override; + StatusOr UpdateEndpointPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::networkservices::v1::UpdateEndpointPolicyRequest const& + request) override; + + future> + UpdateEndpointPolicy( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteEndpointPolicy( google::cloud::networkservices::v1::DeleteEndpointPolicyRequest const& request) override; + StatusOr DeleteEndpointPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::networkservices::v1::DeleteEndpointPolicyRequest const& + request) override; + + future> + DeleteEndpointPolicy( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListGateways( google::cloud::networkservices::v1::ListGatewaysRequest request) override; @@ -76,14 +106,41 @@ class NetworkServicesTracingConnection google::cloud::networkservices::v1::CreateGatewayRequest const& request) override; + StatusOr CreateGateway( + ExperimentalTag, NoAwaitTag, + google::cloud::networkservices::v1::CreateGatewayRequest const& request) + override; + + future> CreateGateway( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateGateway( google::cloud::networkservices::v1::UpdateGatewayRequest const& request) override; + StatusOr UpdateGateway( + ExperimentalTag, NoAwaitTag, + google::cloud::networkservices::v1::UpdateGatewayRequest const& request) + override; + + future> UpdateGateway( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteGateway(google::cloud::networkservices::v1::DeleteGatewayRequest const& request) override; + StatusOr DeleteGateway( + ExperimentalTag, NoAwaitTag, + google::cloud::networkservices::v1::DeleteGatewayRequest const& request) + override; + + future> + DeleteGateway(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListGrpcRoutes( google::cloud::networkservices::v1::ListGrpcRoutesRequest request) override; @@ -97,16 +154,43 @@ class NetworkServicesTracingConnection google::cloud::networkservices::v1::CreateGrpcRouteRequest const& request) override; + StatusOr CreateGrpcRoute( + ExperimentalTag, NoAwaitTag, + google::cloud::networkservices::v1::CreateGrpcRouteRequest const& request) + override; + + future> + CreateGrpcRoute(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateGrpcRoute( google::cloud::networkservices::v1::UpdateGrpcRouteRequest const& request) override; + StatusOr UpdateGrpcRoute( + ExperimentalTag, NoAwaitTag, + google::cloud::networkservices::v1::UpdateGrpcRouteRequest const& request) + override; + + future> + UpdateGrpcRoute(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteGrpcRoute( google::cloud::networkservices::v1::DeleteGrpcRouteRequest const& request) override; + StatusOr DeleteGrpcRoute( + ExperimentalTag, NoAwaitTag, + google::cloud::networkservices::v1::DeleteGrpcRouteRequest const& request) + override; + + future> + DeleteGrpcRoute(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListHttpRoutes( google::cloud::networkservices::v1::ListHttpRoutesRequest request) override; @@ -120,16 +204,43 @@ class NetworkServicesTracingConnection google::cloud::networkservices::v1::CreateHttpRouteRequest const& request) override; + StatusOr CreateHttpRoute( + ExperimentalTag, NoAwaitTag, + google::cloud::networkservices::v1::CreateHttpRouteRequest const& request) + override; + + future> + CreateHttpRoute(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateHttpRoute( google::cloud::networkservices::v1::UpdateHttpRouteRequest const& request) override; + StatusOr UpdateHttpRoute( + ExperimentalTag, NoAwaitTag, + google::cloud::networkservices::v1::UpdateHttpRouteRequest const& request) + override; + + future> + UpdateHttpRoute(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteHttpRoute( google::cloud::networkservices::v1::DeleteHttpRouteRequest const& request) override; + StatusOr DeleteHttpRoute( + ExperimentalTag, NoAwaitTag, + google::cloud::networkservices::v1::DeleteHttpRouteRequest const& request) + override; + + future> + DeleteHttpRoute(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListTcpRoutes( google::cloud::networkservices::v1::ListTcpRoutesRequest request) override; @@ -142,15 +253,42 @@ class NetworkServicesTracingConnection google::cloud::networkservices::v1::CreateTcpRouteRequest const& request) override; + StatusOr CreateTcpRoute( + ExperimentalTag, NoAwaitTag, + google::cloud::networkservices::v1::CreateTcpRouteRequest const& request) + override; + + future> CreateTcpRoute( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateTcpRoute( google::cloud::networkservices::v1::UpdateTcpRouteRequest const& request) override; + StatusOr UpdateTcpRoute( + ExperimentalTag, NoAwaitTag, + google::cloud::networkservices::v1::UpdateTcpRouteRequest const& request) + override; + + future> UpdateTcpRoute( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteTcpRoute( google::cloud::networkservices::v1::DeleteTcpRouteRequest const& request) override; + StatusOr DeleteTcpRoute( + ExperimentalTag, NoAwaitTag, + google::cloud::networkservices::v1::DeleteTcpRouteRequest const& request) + override; + + future> + DeleteTcpRoute(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListTlsRoutes( google::cloud::networkservices::v1::ListTlsRoutesRequest request) override; @@ -163,15 +301,42 @@ class NetworkServicesTracingConnection google::cloud::networkservices::v1::CreateTlsRouteRequest const& request) override; + StatusOr CreateTlsRoute( + ExperimentalTag, NoAwaitTag, + google::cloud::networkservices::v1::CreateTlsRouteRequest const& request) + override; + + future> CreateTlsRoute( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateTlsRoute( google::cloud::networkservices::v1::UpdateTlsRouteRequest const& request) override; + StatusOr UpdateTlsRoute( + ExperimentalTag, NoAwaitTag, + google::cloud::networkservices::v1::UpdateTlsRouteRequest const& request) + override; + + future> UpdateTlsRoute( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteTlsRoute( google::cloud::networkservices::v1::DeleteTlsRouteRequest const& request) override; + StatusOr DeleteTlsRoute( + ExperimentalTag, NoAwaitTag, + google::cloud::networkservices::v1::DeleteTlsRouteRequest const& request) + override; + + future> + DeleteTlsRoute(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListServiceBindings( google::cloud::networkservices::v1::ListServiceBindingsRequest request) @@ -187,11 +352,31 @@ class NetworkServicesTracingConnection google::cloud::networkservices::v1::CreateServiceBindingRequest const& request) override; + StatusOr CreateServiceBinding( + ExperimentalTag, NoAwaitTag, + google::cloud::networkservices::v1::CreateServiceBindingRequest const& + request) override; + + future> + CreateServiceBinding( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteServiceBinding( google::cloud::networkservices::v1::DeleteServiceBindingRequest const& request) override; + StatusOr DeleteServiceBinding( + ExperimentalTag, NoAwaitTag, + google::cloud::networkservices::v1::DeleteServiceBindingRequest const& + request) override; + + future> + DeleteServiceBinding( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListMeshes( google::cloud::networkservices::v1::ListMeshesRequest request) override; @@ -203,14 +388,41 @@ class NetworkServicesTracingConnection google::cloud::networkservices::v1::CreateMeshRequest const& request) override; + StatusOr CreateMesh( + ExperimentalTag, NoAwaitTag, + google::cloud::networkservices::v1::CreateMeshRequest const& request) + override; + + future> CreateMesh( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateMesh( google::cloud::networkservices::v1::UpdateMeshRequest const& request) override; + StatusOr UpdateMesh( + ExperimentalTag, NoAwaitTag, + google::cloud::networkservices::v1::UpdateMeshRequest const& request) + override; + + future> UpdateMesh( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteMesh(google::cloud::networkservices::v1::DeleteMeshRequest const& request) override; + StatusOr DeleteMesh( + ExperimentalTag, NoAwaitTag, + google::cloud::networkservices::v1::DeleteMeshRequest const& request) + override; + + future> + DeleteMesh(ExperimentalTag, + google::longrunning::Operation const& operation) override; + private: std::shared_ptr child_; }; diff --git a/google/cloud/networkservices/v1/mocks/mock_dep_connection.h b/google/cloud/networkservices/v1/mocks/mock_dep_connection.h index 17997eb1b374a..ba2ddf588220f 100644 --- a/google/cloud/networkservices/v1/mocks/mock_dep_connection.h +++ b/google/cloud/networkservices/v1/mocks/mock_dep_connection.h @@ -68,6 +68,19 @@ class MockDepServiceConnection CreateLbTrafficExtensionRequest const& request), (override)); + MOCK_METHOD(StatusOr, + CreateLbTrafficExtension, + (ExperimentalTag, NoAwaitTag, + google::cloud::networkservices::v1:: + CreateLbTrafficExtensionRequest const& request), + (override)); + + MOCK_METHOD( + future>, + CreateLbTrafficExtension, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, UpdateLbTrafficExtension, @@ -75,6 +88,19 @@ class MockDepServiceConnection UpdateLbTrafficExtensionRequest const& request), (override)); + MOCK_METHOD(StatusOr, + UpdateLbTrafficExtension, + (ExperimentalTag, NoAwaitTag, + google::cloud::networkservices::v1:: + UpdateLbTrafficExtensionRequest const& request), + (override)); + + MOCK_METHOD( + future>, + UpdateLbTrafficExtension, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteLbTrafficExtension, @@ -82,6 +108,19 @@ class MockDepServiceConnection DeleteLbTrafficExtensionRequest const& request), (override)); + MOCK_METHOD(StatusOr, + DeleteLbTrafficExtension, + (ExperimentalTag, NoAwaitTag, + google::cloud::networkservices::v1:: + DeleteLbTrafficExtensionRequest const& request), + (override)); + + MOCK_METHOD( + future>, + DeleteLbTrafficExtension, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( (StreamRange), ListLbRouteExtensions, @@ -103,6 +142,19 @@ class MockDepServiceConnection request), (override)); + MOCK_METHOD( + StatusOr, CreateLbRouteExtension, + (ExperimentalTag, NoAwaitTag, + google::cloud::networkservices::v1::CreateLbRouteExtensionRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + CreateLbRouteExtension, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, UpdateLbRouteExtension, @@ -110,12 +162,38 @@ class MockDepServiceConnection request), (override)); + MOCK_METHOD( + StatusOr, UpdateLbRouteExtension, + (ExperimentalTag, NoAwaitTag, + google::cloud::networkservices::v1::UpdateLbRouteExtensionRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + UpdateLbRouteExtension, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteLbRouteExtension, (google::cloud::networkservices::v1::DeleteLbRouteExtensionRequest const& request), (override)); + + MOCK_METHOD( + StatusOr, DeleteLbRouteExtension, + (ExperimentalTag, NoAwaitTag, + google::cloud::networkservices::v1::DeleteLbRouteExtensionRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + DeleteLbRouteExtension, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); }; GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END diff --git a/google/cloud/networkservices/v1/mocks/mock_network_services_connection.h b/google/cloud/networkservices/v1/mocks/mock_network_services_connection.h index 6ff42d8846c61..a88c6d72ce89a 100644 --- a/google/cloud/networkservices/v1/mocks/mock_network_services_connection.h +++ b/google/cloud/networkservices/v1/mocks/mock_network_services_connection.h @@ -67,6 +67,19 @@ class MockNetworkServicesConnection request), (override)); + MOCK_METHOD( + StatusOr, CreateEndpointPolicy, + (ExperimentalTag, NoAwaitTag, + google::cloud::networkservices::v1::CreateEndpointPolicyRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + CreateEndpointPolicy, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, UpdateEndpointPolicy, @@ -74,6 +87,19 @@ class MockNetworkServicesConnection request), (override)); + MOCK_METHOD( + StatusOr, UpdateEndpointPolicy, + (ExperimentalTag, NoAwaitTag, + google::cloud::networkservices::v1::UpdateEndpointPolicyRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + UpdateEndpointPolicy, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteEndpointPolicy, @@ -81,6 +107,19 @@ class MockNetworkServicesConnection request), (override)); + MOCK_METHOD( + StatusOr, DeleteEndpointPolicy, + (ExperimentalTag, NoAwaitTag, + google::cloud::networkservices::v1::DeleteEndpointPolicyRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + DeleteEndpointPolicy, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD((StreamRange), ListGateways, (google::cloud::networkservices::v1::ListGatewaysRequest request), @@ -97,18 +136,54 @@ class MockNetworkServicesConnection (google::cloud::networkservices::v1::CreateGatewayRequest const& request), (override)); + MOCK_METHOD( + StatusOr, CreateGateway, + (ExperimentalTag, NoAwaitTag, + google::cloud::networkservices::v1::CreateGatewayRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateGateway, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, UpdateGateway, (google::cloud::networkservices::v1::UpdateGatewayRequest const& request), (override)); + MOCK_METHOD( + StatusOr, UpdateGateway, + (ExperimentalTag, NoAwaitTag, + google::cloud::networkservices::v1::UpdateGatewayRequest const& request), + (override)); + + MOCK_METHOD(future>, + UpdateGateway, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteGateway, (google::cloud::networkservices::v1::DeleteGatewayRequest const& request), (override)); + MOCK_METHOD( + StatusOr, DeleteGateway, + (ExperimentalTag, NoAwaitTag, + google::cloud::networkservices::v1::DeleteGatewayRequest const& request), + (override)); + + MOCK_METHOD( + future>, + DeleteGateway, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( (StreamRange), ListGrpcRoutes, @@ -126,12 +201,36 @@ class MockNetworkServicesConnection request), (override)); + MOCK_METHOD(StatusOr, CreateGrpcRoute, + (ExperimentalTag, NoAwaitTag, + google::cloud::networkservices::v1::CreateGrpcRouteRequest const& + request), + (override)); + + MOCK_METHOD(future>, + CreateGrpcRoute, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, UpdateGrpcRoute, (google::cloud::networkservices::v1::UpdateGrpcRouteRequest const& request), (override)); + MOCK_METHOD(StatusOr, UpdateGrpcRoute, + (ExperimentalTag, NoAwaitTag, + google::cloud::networkservices::v1::UpdateGrpcRouteRequest const& + request), + (override)); + + MOCK_METHOD(future>, + UpdateGrpcRoute, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteGrpcRoute, @@ -139,6 +238,18 @@ class MockNetworkServicesConnection request), (override)); + MOCK_METHOD(StatusOr, DeleteGrpcRoute, + (ExperimentalTag, NoAwaitTag, + google::cloud::networkservices::v1::DeleteGrpcRouteRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + DeleteGrpcRoute, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( (StreamRange), ListHttpRoutes, @@ -156,12 +267,36 @@ class MockNetworkServicesConnection request), (override)); + MOCK_METHOD(StatusOr, CreateHttpRoute, + (ExperimentalTag, NoAwaitTag, + google::cloud::networkservices::v1::CreateHttpRouteRequest const& + request), + (override)); + + MOCK_METHOD(future>, + CreateHttpRoute, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, UpdateHttpRoute, (google::cloud::networkservices::v1::UpdateHttpRouteRequest const& request), (override)); + MOCK_METHOD(StatusOr, UpdateHttpRoute, + (ExperimentalTag, NoAwaitTag, + google::cloud::networkservices::v1::UpdateHttpRouteRequest const& + request), + (override)); + + MOCK_METHOD(future>, + UpdateHttpRoute, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteHttpRoute, @@ -169,6 +304,18 @@ class MockNetworkServicesConnection request), (override)); + MOCK_METHOD(StatusOr, DeleteHttpRoute, + (ExperimentalTag, NoAwaitTag, + google::cloud::networkservices::v1::DeleteHttpRouteRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + DeleteHttpRoute, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( (StreamRange), ListTcpRoutes, @@ -186,12 +333,36 @@ class MockNetworkServicesConnection request), (override)); + MOCK_METHOD(StatusOr, CreateTcpRoute, + (ExperimentalTag, NoAwaitTag, + google::cloud::networkservices::v1::CreateTcpRouteRequest const& + request), + (override)); + + MOCK_METHOD(future>, + CreateTcpRoute, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, UpdateTcpRoute, (google::cloud::networkservices::v1::UpdateTcpRouteRequest const& request), (override)); + MOCK_METHOD(StatusOr, UpdateTcpRoute, + (ExperimentalTag, NoAwaitTag, + google::cloud::networkservices::v1::UpdateTcpRouteRequest const& + request), + (override)); + + MOCK_METHOD(future>, + UpdateTcpRoute, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteTcpRoute, @@ -199,6 +370,18 @@ class MockNetworkServicesConnection request), (override)); + MOCK_METHOD(StatusOr, DeleteTcpRoute, + (ExperimentalTag, NoAwaitTag, + google::cloud::networkservices::v1::DeleteTcpRouteRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + DeleteTcpRoute, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( (StreamRange), ListTlsRoutes, @@ -216,12 +399,36 @@ class MockNetworkServicesConnection request), (override)); + MOCK_METHOD(StatusOr, CreateTlsRoute, + (ExperimentalTag, NoAwaitTag, + google::cloud::networkservices::v1::CreateTlsRouteRequest const& + request), + (override)); + + MOCK_METHOD(future>, + CreateTlsRoute, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, UpdateTlsRoute, (google::cloud::networkservices::v1::UpdateTlsRouteRequest const& request), (override)); + MOCK_METHOD(StatusOr, UpdateTlsRoute, + (ExperimentalTag, NoAwaitTag, + google::cloud::networkservices::v1::UpdateTlsRouteRequest const& + request), + (override)); + + MOCK_METHOD(future>, + UpdateTlsRoute, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteTlsRoute, @@ -229,6 +436,18 @@ class MockNetworkServicesConnection request), (override)); + MOCK_METHOD(StatusOr, DeleteTlsRoute, + (ExperimentalTag, NoAwaitTag, + google::cloud::networkservices::v1::DeleteTlsRouteRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + DeleteTlsRoute, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( (StreamRange), ListServiceBindings, @@ -249,6 +468,19 @@ class MockNetworkServicesConnection request), (override)); + MOCK_METHOD( + StatusOr, CreateServiceBinding, + (ExperimentalTag, NoAwaitTag, + google::cloud::networkservices::v1::CreateServiceBindingRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + CreateServiceBinding, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteServiceBinding, @@ -256,6 +488,19 @@ class MockNetworkServicesConnection request), (override)); + MOCK_METHOD( + StatusOr, DeleteServiceBinding, + (ExperimentalTag, NoAwaitTag, + google::cloud::networkservices::v1::DeleteServiceBindingRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + DeleteServiceBinding, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD((StreamRange), ListMeshes, (google::cloud::networkservices::v1::ListMeshesRequest request), @@ -271,16 +516,52 @@ class MockNetworkServicesConnection (google::cloud::networkservices::v1::CreateMeshRequest const& request), (override)); + MOCK_METHOD( + StatusOr, CreateMesh, + (ExperimentalTag, NoAwaitTag, + google::cloud::networkservices::v1::CreateMeshRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateMesh, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, UpdateMesh, (google::cloud::networkservices::v1::UpdateMeshRequest const& request), (override)); + MOCK_METHOD( + StatusOr, UpdateMesh, + (ExperimentalTag, NoAwaitTag, + google::cloud::networkservices::v1::UpdateMeshRequest const& request), + (override)); + + MOCK_METHOD(future>, + UpdateMesh, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteMesh, (google::cloud::networkservices::v1::DeleteMeshRequest const& request), (override)); + + MOCK_METHOD( + StatusOr, DeleteMesh, + (ExperimentalTag, NoAwaitTag, + google::cloud::networkservices::v1::DeleteMeshRequest const& request), + (override)); + + MOCK_METHOD( + future>, + DeleteMesh, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); }; GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END diff --git a/google/cloud/networkservices/v1/network_services_connection.cc b/google/cloud/networkservices/v1/network_services_connection.cc index b14d1bc1cd67d..bc5a2663d4bc9 100644 --- a/google/cloud/networkservices/v1/network_services_connection.cc +++ b/google/cloud/networkservices/v1/network_services_connection.cc @@ -60,9 +60,41 @@ NetworkServicesConnection::CreateEndpointPolicy( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +NetworkServicesConnection::CreateEndpointPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::networkservices::v1::CreateEndpointPolicyRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> +NetworkServicesConnection::CreateEndpointPolicy( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +NetworkServicesConnection::UpdateEndpointPolicy( + google::cloud::networkservices::v1::UpdateEndpointPolicyRequest const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +StatusOr NetworkServicesConnection::UpdateEndpointPolicy( + ExperimentalTag, NoAwaitTag, google::cloud::networkservices::v1::UpdateEndpointPolicyRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +NetworkServicesConnection::UpdateEndpointPolicy( + ExperimentalTag, google::longrunning::Operation const&) { return google::cloud::make_ready_future< StatusOr>( Status(StatusCode::kUnimplemented, "not implemented")); @@ -76,6 +108,22 @@ NetworkServicesConnection::DeleteEndpointPolicy( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +NetworkServicesConnection::DeleteEndpointPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::networkservices::v1::DeleteEndpointPolicyRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +NetworkServicesConnection::DeleteEndpointPolicy( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StreamRange NetworkServicesConnection::ListGateways( google::cloud::networkservices::v1:: @@ -98,9 +146,41 @@ NetworkServicesConnection::CreateGateway( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +NetworkServicesConnection::CreateGateway( + ExperimentalTag, NoAwaitTag, + google::cloud::networkservices::v1::CreateGatewayRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> +NetworkServicesConnection::CreateGateway( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +NetworkServicesConnection::UpdateGateway( + google::cloud::networkservices::v1::UpdateGatewayRequest const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +StatusOr NetworkServicesConnection::UpdateGateway( + ExperimentalTag, NoAwaitTag, google::cloud::networkservices::v1::UpdateGatewayRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +NetworkServicesConnection::UpdateGateway( + ExperimentalTag, google::longrunning::Operation const&) { return google::cloud::make_ready_future< StatusOr>( Status(StatusCode::kUnimplemented, "not implemented")); @@ -114,6 +194,22 @@ NetworkServicesConnection::DeleteGateway( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +NetworkServicesConnection::DeleteGateway( + ExperimentalTag, NoAwaitTag, + google::cloud::networkservices::v1::DeleteGatewayRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +NetworkServicesConnection::DeleteGateway( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StreamRange NetworkServicesConnection::ListGrpcRoutes( google::cloud::networkservices::v1:: @@ -136,9 +232,41 @@ NetworkServicesConnection::CreateGrpcRoute( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +NetworkServicesConnection::CreateGrpcRoute( + ExperimentalTag, NoAwaitTag, + google::cloud::networkservices::v1::CreateGrpcRouteRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> +NetworkServicesConnection::CreateGrpcRoute( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +NetworkServicesConnection::UpdateGrpcRoute( + google::cloud::networkservices::v1::UpdateGrpcRouteRequest const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +StatusOr NetworkServicesConnection::UpdateGrpcRoute( + ExperimentalTag, NoAwaitTag, google::cloud::networkservices::v1::UpdateGrpcRouteRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +NetworkServicesConnection::UpdateGrpcRoute( + ExperimentalTag, google::longrunning::Operation const&) { return google::cloud::make_ready_future< StatusOr>( Status(StatusCode::kUnimplemented, "not implemented")); @@ -152,6 +280,22 @@ NetworkServicesConnection::DeleteGrpcRoute( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +NetworkServicesConnection::DeleteGrpcRoute( + ExperimentalTag, NoAwaitTag, + google::cloud::networkservices::v1::DeleteGrpcRouteRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +NetworkServicesConnection::DeleteGrpcRoute( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StreamRange NetworkServicesConnection::ListHttpRoutes( google::cloud::networkservices::v1:: @@ -174,9 +318,41 @@ NetworkServicesConnection::CreateHttpRoute( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +NetworkServicesConnection::CreateHttpRoute( + ExperimentalTag, NoAwaitTag, + google::cloud::networkservices::v1::CreateHttpRouteRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> +NetworkServicesConnection::CreateHttpRoute( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +NetworkServicesConnection::UpdateHttpRoute( + google::cloud::networkservices::v1::UpdateHttpRouteRequest const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +StatusOr NetworkServicesConnection::UpdateHttpRoute( + ExperimentalTag, NoAwaitTag, google::cloud::networkservices::v1::UpdateHttpRouteRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +NetworkServicesConnection::UpdateHttpRoute( + ExperimentalTag, google::longrunning::Operation const&) { return google::cloud::make_ready_future< StatusOr>( Status(StatusCode::kUnimplemented, "not implemented")); @@ -190,6 +366,22 @@ NetworkServicesConnection::DeleteHttpRoute( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +NetworkServicesConnection::DeleteHttpRoute( + ExperimentalTag, NoAwaitTag, + google::cloud::networkservices::v1::DeleteHttpRouteRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +NetworkServicesConnection::DeleteHttpRoute( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StreamRange NetworkServicesConnection::ListTcpRoutes( google::cloud::networkservices::v1:: @@ -212,6 +404,22 @@ NetworkServicesConnection::CreateTcpRoute( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +NetworkServicesConnection::CreateTcpRoute( + ExperimentalTag, NoAwaitTag, + google::cloud::networkservices::v1::CreateTcpRouteRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +NetworkServicesConnection::CreateTcpRoute( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> NetworkServicesConnection::UpdateTcpRoute( google::cloud::networkservices::v1::UpdateTcpRouteRequest const&) { @@ -220,6 +428,22 @@ NetworkServicesConnection::UpdateTcpRoute( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +NetworkServicesConnection::UpdateTcpRoute( + ExperimentalTag, NoAwaitTag, + google::cloud::networkservices::v1::UpdateTcpRouteRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +NetworkServicesConnection::UpdateTcpRoute( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> NetworkServicesConnection::DeleteTcpRoute( google::cloud::networkservices::v1::DeleteTcpRouteRequest const&) { @@ -228,6 +452,22 @@ NetworkServicesConnection::DeleteTcpRoute( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +NetworkServicesConnection::DeleteTcpRoute( + ExperimentalTag, NoAwaitTag, + google::cloud::networkservices::v1::DeleteTcpRouteRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +NetworkServicesConnection::DeleteTcpRoute( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StreamRange NetworkServicesConnection::ListTlsRoutes( google::cloud::networkservices::v1:: @@ -250,6 +490,22 @@ NetworkServicesConnection::CreateTlsRoute( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +NetworkServicesConnection::CreateTlsRoute( + ExperimentalTag, NoAwaitTag, + google::cloud::networkservices::v1::CreateTlsRouteRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +NetworkServicesConnection::CreateTlsRoute( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> NetworkServicesConnection::UpdateTlsRoute( google::cloud::networkservices::v1::UpdateTlsRouteRequest const&) { @@ -258,6 +514,22 @@ NetworkServicesConnection::UpdateTlsRoute( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +NetworkServicesConnection::UpdateTlsRoute( + ExperimentalTag, NoAwaitTag, + google::cloud::networkservices::v1::UpdateTlsRouteRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +NetworkServicesConnection::UpdateTlsRoute( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> NetworkServicesConnection::DeleteTlsRoute( google::cloud::networkservices::v1::DeleteTlsRouteRequest const&) { @@ -266,6 +538,22 @@ NetworkServicesConnection::DeleteTlsRoute( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +NetworkServicesConnection::DeleteTlsRoute( + ExperimentalTag, NoAwaitTag, + google::cloud::networkservices::v1::DeleteTlsRouteRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +NetworkServicesConnection::DeleteTlsRoute( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StreamRange NetworkServicesConnection::ListServiceBindings( google::cloud::networkservices::v1:: @@ -288,6 +576,22 @@ NetworkServicesConnection::CreateServiceBinding( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +NetworkServicesConnection::CreateServiceBinding( + ExperimentalTag, NoAwaitTag, + google::cloud::networkservices::v1::CreateServiceBindingRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +NetworkServicesConnection::CreateServiceBinding( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> NetworkServicesConnection::DeleteServiceBinding( google::cloud::networkservices::v1::DeleteServiceBindingRequest const&) { @@ -296,6 +600,22 @@ NetworkServicesConnection::DeleteServiceBinding( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +NetworkServicesConnection::DeleteServiceBinding( + ExperimentalTag, NoAwaitTag, + google::cloud::networkservices::v1::DeleteServiceBindingRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +NetworkServicesConnection::DeleteServiceBinding( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StreamRange NetworkServicesConnection::ListMeshes( google::cloud::networkservices::v1:: @@ -318,6 +638,21 @@ NetworkServicesConnection::CreateMesh( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr NetworkServicesConnection::CreateMesh( + ExperimentalTag, NoAwaitTag, + google::cloud::networkservices::v1::CreateMeshRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +NetworkServicesConnection::CreateMesh(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> NetworkServicesConnection::UpdateMesh( google::cloud::networkservices::v1::UpdateMeshRequest const&) { @@ -326,6 +661,21 @@ NetworkServicesConnection::UpdateMesh( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr NetworkServicesConnection::UpdateMesh( + ExperimentalTag, NoAwaitTag, + google::cloud::networkservices::v1::UpdateMeshRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +NetworkServicesConnection::UpdateMesh(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> NetworkServicesConnection::DeleteMesh( google::cloud::networkservices::v1::DeleteMeshRequest const&) { @@ -334,6 +684,21 @@ NetworkServicesConnection::DeleteMesh( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr NetworkServicesConnection::DeleteMesh( + ExperimentalTag, NoAwaitTag, + google::cloud::networkservices::v1::DeleteMeshRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +NetworkServicesConnection::DeleteMesh(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + std::shared_ptr MakeNetworkServicesConnection( Options options) { internal::CheckExpectedOptions CreateEndpointPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::networkservices::v1::CreateEndpointPolicyRequest const& + request); + + virtual future> + CreateEndpointPolicy(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> UpdateEndpointPolicy( google::cloud::networkservices::v1::UpdateEndpointPolicyRequest const& request); + virtual StatusOr UpdateEndpointPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::networkservices::v1::UpdateEndpointPolicyRequest const& + request); + + virtual future> + UpdateEndpointPolicy(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future< StatusOr> DeleteEndpointPolicy( google::cloud::networkservices::v1::DeleteEndpointPolicyRequest const& request); + virtual StatusOr DeleteEndpointPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::networkservices::v1::DeleteEndpointPolicyRequest const& + request); + + virtual future< + StatusOr> + DeleteEndpointPolicy(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StreamRange ListGateways( google::cloud::networkservices::v1::ListGatewaysRequest request); @@ -221,15 +251,40 @@ class NetworkServicesConnection { CreateGateway( google::cloud::networkservices::v1::CreateGatewayRequest const& request); + virtual StatusOr CreateGateway( + ExperimentalTag, NoAwaitTag, + google::cloud::networkservices::v1::CreateGatewayRequest const& request); + + virtual future> + CreateGateway(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> UpdateGateway( google::cloud::networkservices::v1::UpdateGatewayRequest const& request); + virtual StatusOr UpdateGateway( + ExperimentalTag, NoAwaitTag, + google::cloud::networkservices::v1::UpdateGatewayRequest const& request); + + virtual future> + UpdateGateway(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future< StatusOr> DeleteGateway( google::cloud::networkservices::v1::DeleteGatewayRequest const& request); + virtual StatusOr DeleteGateway( + ExperimentalTag, NoAwaitTag, + google::cloud::networkservices::v1::DeleteGatewayRequest const& request); + + virtual future< + StatusOr> + DeleteGateway(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StreamRange ListGrpcRoutes( google::cloud::networkservices::v1::ListGrpcRoutesRequest request); @@ -242,17 +297,45 @@ class NetworkServicesConnection { google::cloud::networkservices::v1::CreateGrpcRouteRequest const& request); + virtual StatusOr CreateGrpcRoute( + ExperimentalTag, NoAwaitTag, + google::cloud::networkservices::v1::CreateGrpcRouteRequest const& + request); + + virtual future> + CreateGrpcRoute(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> UpdateGrpcRoute( google::cloud::networkservices::v1::UpdateGrpcRouteRequest const& request); + virtual StatusOr UpdateGrpcRoute( + ExperimentalTag, NoAwaitTag, + google::cloud::networkservices::v1::UpdateGrpcRouteRequest const& + request); + + virtual future> + UpdateGrpcRoute(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future< StatusOr> DeleteGrpcRoute( google::cloud::networkservices::v1::DeleteGrpcRouteRequest const& request); + virtual StatusOr DeleteGrpcRoute( + ExperimentalTag, NoAwaitTag, + google::cloud::networkservices::v1::DeleteGrpcRouteRequest const& + request); + + virtual future< + StatusOr> + DeleteGrpcRoute(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StreamRange ListHttpRoutes( google::cloud::networkservices::v1::ListHttpRoutesRequest request); @@ -265,17 +348,45 @@ class NetworkServicesConnection { google::cloud::networkservices::v1::CreateHttpRouteRequest const& request); + virtual StatusOr CreateHttpRoute( + ExperimentalTag, NoAwaitTag, + google::cloud::networkservices::v1::CreateHttpRouteRequest const& + request); + + virtual future> + CreateHttpRoute(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> UpdateHttpRoute( google::cloud::networkservices::v1::UpdateHttpRouteRequest const& request); + virtual StatusOr UpdateHttpRoute( + ExperimentalTag, NoAwaitTag, + google::cloud::networkservices::v1::UpdateHttpRouteRequest const& + request); + + virtual future> + UpdateHttpRoute(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future< StatusOr> DeleteHttpRoute( google::cloud::networkservices::v1::DeleteHttpRouteRequest const& request); + virtual StatusOr DeleteHttpRoute( + ExperimentalTag, NoAwaitTag, + google::cloud::networkservices::v1::DeleteHttpRouteRequest const& + request); + + virtual future< + StatusOr> + DeleteHttpRoute(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StreamRange ListTcpRoutes( google::cloud::networkservices::v1::ListTcpRoutesRequest request); @@ -287,15 +398,40 @@ class NetworkServicesConnection { CreateTcpRoute( google::cloud::networkservices::v1::CreateTcpRouteRequest const& request); + virtual StatusOr CreateTcpRoute( + ExperimentalTag, NoAwaitTag, + google::cloud::networkservices::v1::CreateTcpRouteRequest const& request); + + virtual future> + CreateTcpRoute(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> UpdateTcpRoute( google::cloud::networkservices::v1::UpdateTcpRouteRequest const& request); + virtual StatusOr UpdateTcpRoute( + ExperimentalTag, NoAwaitTag, + google::cloud::networkservices::v1::UpdateTcpRouteRequest const& request); + + virtual future> + UpdateTcpRoute(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future< StatusOr> DeleteTcpRoute( google::cloud::networkservices::v1::DeleteTcpRouteRequest const& request); + virtual StatusOr DeleteTcpRoute( + ExperimentalTag, NoAwaitTag, + google::cloud::networkservices::v1::DeleteTcpRouteRequest const& request); + + virtual future< + StatusOr> + DeleteTcpRoute(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StreamRange ListTlsRoutes( google::cloud::networkservices::v1::ListTlsRoutesRequest request); @@ -307,15 +443,40 @@ class NetworkServicesConnection { CreateTlsRoute( google::cloud::networkservices::v1::CreateTlsRouteRequest const& request); + virtual StatusOr CreateTlsRoute( + ExperimentalTag, NoAwaitTag, + google::cloud::networkservices::v1::CreateTlsRouteRequest const& request); + + virtual future> + CreateTlsRoute(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> UpdateTlsRoute( google::cloud::networkservices::v1::UpdateTlsRouteRequest const& request); + virtual StatusOr UpdateTlsRoute( + ExperimentalTag, NoAwaitTag, + google::cloud::networkservices::v1::UpdateTlsRouteRequest const& request); + + virtual future> + UpdateTlsRoute(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future< StatusOr> DeleteTlsRoute( google::cloud::networkservices::v1::DeleteTlsRouteRequest const& request); + virtual StatusOr DeleteTlsRoute( + ExperimentalTag, NoAwaitTag, + google::cloud::networkservices::v1::DeleteTlsRouteRequest const& request); + + virtual future< + StatusOr> + DeleteTlsRoute(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StreamRange ListServiceBindings( google::cloud::networkservices::v1::ListServiceBindingsRequest request); @@ -330,12 +491,31 @@ class NetworkServicesConnection { google::cloud::networkservices::v1::CreateServiceBindingRequest const& request); + virtual StatusOr CreateServiceBinding( + ExperimentalTag, NoAwaitTag, + google::cloud::networkservices::v1::CreateServiceBindingRequest const& + request); + + virtual future> + CreateServiceBinding(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future< StatusOr> DeleteServiceBinding( google::cloud::networkservices::v1::DeleteServiceBindingRequest const& request); + virtual StatusOr DeleteServiceBinding( + ExperimentalTag, NoAwaitTag, + google::cloud::networkservices::v1::DeleteServiceBindingRequest const& + request); + + virtual future< + StatusOr> + DeleteServiceBinding(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StreamRange ListMeshes( google::cloud::networkservices::v1::ListMeshesRequest request); @@ -345,13 +525,35 @@ class NetworkServicesConnection { virtual future> CreateMesh( google::cloud::networkservices::v1::CreateMeshRequest const& request); + virtual StatusOr CreateMesh( + ExperimentalTag, NoAwaitTag, + google::cloud::networkservices::v1::CreateMeshRequest const& request); + + virtual future> CreateMesh( + ExperimentalTag, google::longrunning::Operation const& operation); + virtual future> UpdateMesh( google::cloud::networkservices::v1::UpdateMeshRequest const& request); + virtual StatusOr UpdateMesh( + ExperimentalTag, NoAwaitTag, + google::cloud::networkservices::v1::UpdateMeshRequest const& request); + + virtual future> UpdateMesh( + ExperimentalTag, google::longrunning::Operation const& operation); + virtual future< StatusOr> DeleteMesh( google::cloud::networkservices::v1::DeleteMeshRequest const& request); + + virtual StatusOr DeleteMesh( + ExperimentalTag, NoAwaitTag, + google::cloud::networkservices::v1::DeleteMeshRequest const& request); + + virtual future< + StatusOr> + DeleteMesh(ExperimentalTag, google::longrunning::Operation const& operation); }; /** diff --git a/google/cloud/no_await_tag.h b/google/cloud/no_await_tag.h new file mode 100644 index 0000000000000..24c05c44ca109 --- /dev/null +++ b/google/cloud/no_await_tag.h @@ -0,0 +1,32 @@ +// 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. + +#ifndef GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_NO_AWAIT_TAG_H +#define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_NO_AWAIT_TAG_H + +#include "google/cloud/version.h" + +namespace google { +namespace cloud { +GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_BEGIN + +// Used in the overload set for RPCs that perform long-running operations (LRO) +// to signal the operation should only be started and not polled for completion. +struct NoAwaitTag {}; + +GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END +} // namespace cloud +} // namespace google + +#endif // GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_NO_AWAIT_TAG_H diff --git a/google/cloud/notebooks/v1/internal/managed_notebook_connection_impl.cc b/google/cloud/notebooks/v1/internal/managed_notebook_connection_impl.cc index 709d81d933496..533890d7db0f0 100644 --- a/google/cloud/notebooks/v1/internal/managed_notebook_connection_impl.cc +++ b/google/cloud/notebooks/v1/internal/managed_notebook_connection_impl.cc @@ -155,6 +155,58 @@ ManagedNotebookServiceConnectionImpl::CreateRuntime( polling_policy(*current), __func__); } +StatusOr +ManagedNotebookServiceConnectionImpl::CreateRuntime( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v1::CreateRuntimeRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateRuntime(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::notebooks::v1::CreateRuntimeRequest const& request) { + return stub_->CreateRuntime(context, options, request); + }, + *current, request, __func__); +} + +future> +ManagedNotebookServiceConnectionImpl::CreateRuntime( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to CreateRuntime", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::notebooks::v1::Runtime>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::notebooks::v1::Runtime>, + polling_policy(*current), __func__); +} + future> ManagedNotebookServiceConnectionImpl::UpdateRuntime( google::cloud::notebooks::v1::UpdateRuntimeRequest const& request) { @@ -194,6 +246,58 @@ ManagedNotebookServiceConnectionImpl::UpdateRuntime( polling_policy(*current), __func__); } +StatusOr +ManagedNotebookServiceConnectionImpl::UpdateRuntime( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v1::UpdateRuntimeRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UpdateRuntime(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::notebooks::v1::UpdateRuntimeRequest const& request) { + return stub_->UpdateRuntime(context, options, request); + }, + *current, request, __func__); +} + +future> +ManagedNotebookServiceConnectionImpl::UpdateRuntime( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to UpdateRuntime", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::notebooks::v1::Runtime>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::notebooks::v1::Runtime>, + polling_policy(*current), __func__); +} + future> ManagedNotebookServiceConnectionImpl::DeleteRuntime( google::cloud::notebooks::v1::DeleteRuntimeRequest const& request) { @@ -233,6 +337,59 @@ ManagedNotebookServiceConnectionImpl::DeleteRuntime( polling_policy(*current), __func__); } +StatusOr +ManagedNotebookServiceConnectionImpl::DeleteRuntime( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v1::DeleteRuntimeRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteRuntime(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::notebooks::v1::DeleteRuntimeRequest const& request) { + return stub_->DeleteRuntime(context, options, request); + }, + *current, request, __func__); +} + +future> +ManagedNotebookServiceConnectionImpl::DeleteRuntime( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteRuntime", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::notebooks::v1::OperationMetadata>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::cloud::notebooks::v1::OperationMetadata>, + polling_policy(*current), __func__); +} + future> ManagedNotebookServiceConnectionImpl::StartRuntime( google::cloud::notebooks::v1::StartRuntimeRequest const& request) { @@ -272,6 +429,57 @@ ManagedNotebookServiceConnectionImpl::StartRuntime( polling_policy(*current), __func__); } +StatusOr +ManagedNotebookServiceConnectionImpl::StartRuntime( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v1::StartRuntimeRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->StartRuntime(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::notebooks::v1::StartRuntimeRequest const& request) { + return stub_->StartRuntime(context, options, request); + }, + *current, request, __func__); +} + +future> +ManagedNotebookServiceConnectionImpl::StartRuntime( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to StartRuntime", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::notebooks::v1::Runtime>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::notebooks::v1::Runtime>, + polling_policy(*current), __func__); +} + future> ManagedNotebookServiceConnectionImpl::StopRuntime( google::cloud::notebooks::v1::StopRuntimeRequest const& request) { @@ -311,6 +519,57 @@ ManagedNotebookServiceConnectionImpl::StopRuntime( polling_policy(*current), __func__); } +StatusOr +ManagedNotebookServiceConnectionImpl::StopRuntime( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v1::StopRuntimeRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->StopRuntime(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::notebooks::v1::StopRuntimeRequest const& request) { + return stub_->StopRuntime(context, options, request); + }, + *current, request, __func__); +} + +future> +ManagedNotebookServiceConnectionImpl::StopRuntime( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to StopRuntime", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::notebooks::v1::Runtime>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::notebooks::v1::Runtime>, + polling_policy(*current), __func__); +} + future> ManagedNotebookServiceConnectionImpl::SwitchRuntime( google::cloud::notebooks::v1::SwitchRuntimeRequest const& request) { @@ -350,6 +609,58 @@ ManagedNotebookServiceConnectionImpl::SwitchRuntime( polling_policy(*current), __func__); } +StatusOr +ManagedNotebookServiceConnectionImpl::SwitchRuntime( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v1::SwitchRuntimeRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->SwitchRuntime(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::notebooks::v1::SwitchRuntimeRequest const& request) { + return stub_->SwitchRuntime(context, options, request); + }, + *current, request, __func__); +} + +future> +ManagedNotebookServiceConnectionImpl::SwitchRuntime( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to SwitchRuntime", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::notebooks::v1::Runtime>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::notebooks::v1::Runtime>, + polling_policy(*current), __func__); +} + future> ManagedNotebookServiceConnectionImpl::ResetRuntime( google::cloud::notebooks::v1::ResetRuntimeRequest const& request) { @@ -389,6 +700,57 @@ ManagedNotebookServiceConnectionImpl::ResetRuntime( polling_policy(*current), __func__); } +StatusOr +ManagedNotebookServiceConnectionImpl::ResetRuntime( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v1::ResetRuntimeRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->ResetRuntime(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::notebooks::v1::ResetRuntimeRequest const& request) { + return stub_->ResetRuntime(context, options, request); + }, + *current, request, __func__); +} + +future> +ManagedNotebookServiceConnectionImpl::ResetRuntime( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to ResetRuntime", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::notebooks::v1::Runtime>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::notebooks::v1::Runtime>, + polling_policy(*current), __func__); +} + future> ManagedNotebookServiceConnectionImpl::UpgradeRuntime( google::cloud::notebooks::v1::UpgradeRuntimeRequest const& request) { @@ -428,6 +790,58 @@ ManagedNotebookServiceConnectionImpl::UpgradeRuntime( polling_policy(*current), __func__); } +StatusOr +ManagedNotebookServiceConnectionImpl::UpgradeRuntime( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v1::UpgradeRuntimeRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UpgradeRuntime(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::notebooks::v1::UpgradeRuntimeRequest const& request) { + return stub_->UpgradeRuntime(context, options, request); + }, + *current, request, __func__); +} + +future> +ManagedNotebookServiceConnectionImpl::UpgradeRuntime( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to UpgradeRuntime", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::notebooks::v1::Runtime>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::notebooks::v1::Runtime>, + polling_policy(*current), __func__); +} + future> ManagedNotebookServiceConnectionImpl::ReportRuntimeEvent( google::cloud::notebooks::v1::ReportRuntimeEventRequest const& request) { @@ -468,6 +882,58 @@ ManagedNotebookServiceConnectionImpl::ReportRuntimeEvent( polling_policy(*current), __func__); } +StatusOr +ManagedNotebookServiceConnectionImpl::ReportRuntimeEvent( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v1::ReportRuntimeEventRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->ReportRuntimeEvent(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::notebooks::v1::ReportRuntimeEventRequest const& + request) { + return stub_->ReportRuntimeEvent(context, options, request); + }, + *current, request, __func__); +} + +future> +ManagedNotebookServiceConnectionImpl::ReportRuntimeEvent( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to ReportRuntimeEvent", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::notebooks::v1::Runtime>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::notebooks::v1::Runtime>, + polling_policy(*current), __func__); +} + StatusOr ManagedNotebookServiceConnectionImpl::RefreshRuntimeTokenInternal( google::cloud::notebooks::v1::RefreshRuntimeTokenInternalRequest const& @@ -523,6 +989,58 @@ ManagedNotebookServiceConnectionImpl::DiagnoseRuntime( polling_policy(*current), __func__); } +StatusOr +ManagedNotebookServiceConnectionImpl::DiagnoseRuntime( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v1::DiagnoseRuntimeRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DiagnoseRuntime(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::notebooks::v1::DiagnoseRuntimeRequest const& request) { + return stub_->DiagnoseRuntime(context, options, request); + }, + *current, request, __func__); +} + +future> +ManagedNotebookServiceConnectionImpl::DiagnoseRuntime( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to DiagnoseRuntime", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::notebooks::v1::Runtime>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::notebooks::v1::Runtime>, + polling_policy(*current), __func__); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace notebooks_v1_internal } // namespace cloud diff --git a/google/cloud/notebooks/v1/internal/managed_notebook_connection_impl.h b/google/cloud/notebooks/v1/internal/managed_notebook_connection_impl.h index c4d6a99be09d6..bb0ac17d09696 100644 --- a/google/cloud/notebooks/v1/internal/managed_notebook_connection_impl.h +++ b/google/cloud/notebooks/v1/internal/managed_notebook_connection_impl.h @@ -62,37 +62,117 @@ class ManagedNotebookServiceConnectionImpl google::cloud::notebooks::v1::CreateRuntimeRequest const& request) override; + StatusOr CreateRuntime( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v1::CreateRuntimeRequest const& request) + override; + + future> CreateRuntime( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateRuntime( google::cloud::notebooks::v1::UpdateRuntimeRequest const& request) override; + StatusOr UpdateRuntime( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v1::UpdateRuntimeRequest const& request) + override; + + future> UpdateRuntime( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteRuntime(google::cloud::notebooks::v1::DeleteRuntimeRequest const& request) override; + StatusOr DeleteRuntime( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v1::DeleteRuntimeRequest const& request) + override; + + future> + DeleteRuntime(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> StartRuntime( google::cloud::notebooks::v1::StartRuntimeRequest const& request) override; + StatusOr StartRuntime( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v1::StartRuntimeRequest const& request) + override; + + future> StartRuntime( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> StopRuntime( google::cloud::notebooks::v1::StopRuntimeRequest const& request) override; + StatusOr StopRuntime( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v1::StopRuntimeRequest const& request) override; + + future> StopRuntime( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> SwitchRuntime( google::cloud::notebooks::v1::SwitchRuntimeRequest const& request) override; + StatusOr SwitchRuntime( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v1::SwitchRuntimeRequest const& request) + override; + + future> SwitchRuntime( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ResetRuntime( google::cloud::notebooks::v1::ResetRuntimeRequest const& request) override; + StatusOr ResetRuntime( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v1::ResetRuntimeRequest const& request) + override; + + future> ResetRuntime( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpgradeRuntime( google::cloud::notebooks::v1::UpgradeRuntimeRequest const& request) override; + StatusOr UpgradeRuntime( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v1::UpgradeRuntimeRequest const& request) + override; + + future> UpgradeRuntime( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ReportRuntimeEvent( google::cloud::notebooks::v1::ReportRuntimeEventRequest const& request) override; + StatusOr ReportRuntimeEvent( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v1::ReportRuntimeEventRequest const& request) + override; + + future> ReportRuntimeEvent( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr RefreshRuntimeTokenInternal( google::cloud::notebooks::v1::RefreshRuntimeTokenInternalRequest const& @@ -102,6 +182,15 @@ class ManagedNotebookServiceConnectionImpl google::cloud::notebooks::v1::DiagnoseRuntimeRequest const& request) override; + StatusOr DiagnoseRuntime( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v1::DiagnoseRuntimeRequest const& request) + override; + + future> DiagnoseRuntime( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + private: std::unique_ptr background_; std::shared_ptr stub_; diff --git a/google/cloud/notebooks/v1/internal/managed_notebook_tracing_connection.cc b/google/cloud/notebooks/v1/internal/managed_notebook_tracing_connection.cc index dc8ca9a407d30..304a5b6194cab 100644 --- a/google/cloud/notebooks/v1/internal/managed_notebook_tracing_connection.cc +++ b/google/cloud/notebooks/v1/internal/managed_notebook_tracing_connection.cc @@ -63,6 +63,27 @@ ManagedNotebookServiceTracingConnection::CreateRuntime( return internal::EndSpan(std::move(span), child_->CreateRuntime(request)); } +StatusOr +ManagedNotebookServiceTracingConnection::CreateRuntime( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v1::CreateRuntimeRequest const& request) { + auto span = internal::MakeSpan( + "notebooks_v1::ManagedNotebookServiceConnection::CreateRuntime"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->CreateRuntime(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +ManagedNotebookServiceTracingConnection::CreateRuntime( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "notebooks_v1::ManagedNotebookServiceConnection::CreateRuntime"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->CreateRuntime(ExperimentalTag{}, operation)); +} + future> ManagedNotebookServiceTracingConnection::UpdateRuntime( google::cloud::notebooks::v1::UpdateRuntimeRequest const& request) { @@ -72,6 +93,27 @@ ManagedNotebookServiceTracingConnection::UpdateRuntime( return internal::EndSpan(std::move(span), child_->UpdateRuntime(request)); } +StatusOr +ManagedNotebookServiceTracingConnection::UpdateRuntime( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v1::UpdateRuntimeRequest const& request) { + auto span = internal::MakeSpan( + "notebooks_v1::ManagedNotebookServiceConnection::UpdateRuntime"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->UpdateRuntime(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +ManagedNotebookServiceTracingConnection::UpdateRuntime( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "notebooks_v1::ManagedNotebookServiceConnection::UpdateRuntime"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->UpdateRuntime(ExperimentalTag{}, operation)); +} + future> ManagedNotebookServiceTracingConnection::DeleteRuntime( google::cloud::notebooks::v1::DeleteRuntimeRequest const& request) { @@ -81,6 +123,27 @@ ManagedNotebookServiceTracingConnection::DeleteRuntime( return internal::EndSpan(std::move(span), child_->DeleteRuntime(request)); } +StatusOr +ManagedNotebookServiceTracingConnection::DeleteRuntime( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v1::DeleteRuntimeRequest const& request) { + auto span = internal::MakeSpan( + "notebooks_v1::ManagedNotebookServiceConnection::DeleteRuntime"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->DeleteRuntime(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +ManagedNotebookServiceTracingConnection::DeleteRuntime( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "notebooks_v1::ManagedNotebookServiceConnection::DeleteRuntime"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->DeleteRuntime(ExperimentalTag{}, operation)); +} + future> ManagedNotebookServiceTracingConnection::StartRuntime( google::cloud::notebooks::v1::StartRuntimeRequest const& request) { @@ -90,6 +153,27 @@ ManagedNotebookServiceTracingConnection::StartRuntime( return internal::EndSpan(std::move(span), child_->StartRuntime(request)); } +StatusOr +ManagedNotebookServiceTracingConnection::StartRuntime( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v1::StartRuntimeRequest const& request) { + auto span = internal::MakeSpan( + "notebooks_v1::ManagedNotebookServiceConnection::StartRuntime"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->StartRuntime(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +ManagedNotebookServiceTracingConnection::StartRuntime( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "notebooks_v1::ManagedNotebookServiceConnection::StartRuntime"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->StartRuntime(ExperimentalTag{}, operation)); +} + future> ManagedNotebookServiceTracingConnection::StopRuntime( google::cloud::notebooks::v1::StopRuntimeRequest const& request) { @@ -99,6 +183,27 @@ ManagedNotebookServiceTracingConnection::StopRuntime( return internal::EndSpan(std::move(span), child_->StopRuntime(request)); } +StatusOr +ManagedNotebookServiceTracingConnection::StopRuntime( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v1::StopRuntimeRequest const& request) { + auto span = internal::MakeSpan( + "notebooks_v1::ManagedNotebookServiceConnection::StopRuntime"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->StopRuntime(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +ManagedNotebookServiceTracingConnection::StopRuntime( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "notebooks_v1::ManagedNotebookServiceConnection::StopRuntime"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->StopRuntime(ExperimentalTag{}, operation)); +} + future> ManagedNotebookServiceTracingConnection::SwitchRuntime( google::cloud::notebooks::v1::SwitchRuntimeRequest const& request) { @@ -108,6 +213,27 @@ ManagedNotebookServiceTracingConnection::SwitchRuntime( return internal::EndSpan(std::move(span), child_->SwitchRuntime(request)); } +StatusOr +ManagedNotebookServiceTracingConnection::SwitchRuntime( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v1::SwitchRuntimeRequest const& request) { + auto span = internal::MakeSpan( + "notebooks_v1::ManagedNotebookServiceConnection::SwitchRuntime"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->SwitchRuntime(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +ManagedNotebookServiceTracingConnection::SwitchRuntime( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "notebooks_v1::ManagedNotebookServiceConnection::SwitchRuntime"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->SwitchRuntime(ExperimentalTag{}, operation)); +} + future> ManagedNotebookServiceTracingConnection::ResetRuntime( google::cloud::notebooks::v1::ResetRuntimeRequest const& request) { @@ -117,6 +243,27 @@ ManagedNotebookServiceTracingConnection::ResetRuntime( return internal::EndSpan(std::move(span), child_->ResetRuntime(request)); } +StatusOr +ManagedNotebookServiceTracingConnection::ResetRuntime( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v1::ResetRuntimeRequest const& request) { + auto span = internal::MakeSpan( + "notebooks_v1::ManagedNotebookServiceConnection::ResetRuntime"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->ResetRuntime(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +ManagedNotebookServiceTracingConnection::ResetRuntime( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "notebooks_v1::ManagedNotebookServiceConnection::ResetRuntime"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->ResetRuntime(ExperimentalTag{}, operation)); +} + future> ManagedNotebookServiceTracingConnection::UpgradeRuntime( google::cloud::notebooks::v1::UpgradeRuntimeRequest const& request) { @@ -126,6 +273,27 @@ ManagedNotebookServiceTracingConnection::UpgradeRuntime( return internal::EndSpan(std::move(span), child_->UpgradeRuntime(request)); } +StatusOr +ManagedNotebookServiceTracingConnection::UpgradeRuntime( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v1::UpgradeRuntimeRequest const& request) { + auto span = internal::MakeSpan( + "notebooks_v1::ManagedNotebookServiceConnection::UpgradeRuntime"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->UpgradeRuntime(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +ManagedNotebookServiceTracingConnection::UpgradeRuntime( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "notebooks_v1::ManagedNotebookServiceConnection::UpgradeRuntime"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->UpgradeRuntime(ExperimentalTag{}, operation)); +} + future> ManagedNotebookServiceTracingConnection::ReportRuntimeEvent( google::cloud::notebooks::v1::ReportRuntimeEventRequest const& request) { @@ -136,6 +304,28 @@ ManagedNotebookServiceTracingConnection::ReportRuntimeEvent( child_->ReportRuntimeEvent(request)); } +StatusOr +ManagedNotebookServiceTracingConnection::ReportRuntimeEvent( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v1::ReportRuntimeEventRequest const& request) { + auto span = internal::MakeSpan( + "notebooks_v1::ManagedNotebookServiceConnection::ReportRuntimeEvent"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->ReportRuntimeEvent(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +ManagedNotebookServiceTracingConnection::ReportRuntimeEvent( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "notebooks_v1::ManagedNotebookServiceConnection::ReportRuntimeEvent"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->ReportRuntimeEvent( + ExperimentalTag{}, operation)); +} + StatusOr ManagedNotebookServiceTracingConnection::RefreshRuntimeTokenInternal( google::cloud::notebooks::v1::RefreshRuntimeTokenInternalRequest const& @@ -156,6 +346,27 @@ ManagedNotebookServiceTracingConnection::DiagnoseRuntime( return internal::EndSpan(std::move(span), child_->DiagnoseRuntime(request)); } +StatusOr +ManagedNotebookServiceTracingConnection::DiagnoseRuntime( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v1::DiagnoseRuntimeRequest const& request) { + auto span = internal::MakeSpan( + "notebooks_v1::ManagedNotebookServiceConnection::DiagnoseRuntime"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->DiagnoseRuntime(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +ManagedNotebookServiceTracingConnection::DiagnoseRuntime( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "notebooks_v1::ManagedNotebookServiceConnection::DiagnoseRuntime"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->DiagnoseRuntime(ExperimentalTag{}, operation)); +} + #endif // GOOGLE_CLOUD_CPP_HAVE_OPENTELEMETRY std::shared_ptr diff --git a/google/cloud/notebooks/v1/internal/managed_notebook_tracing_connection.h b/google/cloud/notebooks/v1/internal/managed_notebook_tracing_connection.h index 6ba9686c58a5d..1fbf7ed0d7adf 100644 --- a/google/cloud/notebooks/v1/internal/managed_notebook_tracing_connection.h +++ b/google/cloud/notebooks/v1/internal/managed_notebook_tracing_connection.h @@ -50,37 +50,117 @@ class ManagedNotebookServiceTracingConnection google::cloud::notebooks::v1::CreateRuntimeRequest const& request) override; + StatusOr CreateRuntime( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v1::CreateRuntimeRequest const& request) + override; + + future> CreateRuntime( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateRuntime( google::cloud::notebooks::v1::UpdateRuntimeRequest const& request) override; + StatusOr UpdateRuntime( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v1::UpdateRuntimeRequest const& request) + override; + + future> UpdateRuntime( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteRuntime(google::cloud::notebooks::v1::DeleteRuntimeRequest const& request) override; + StatusOr DeleteRuntime( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v1::DeleteRuntimeRequest const& request) + override; + + future> + DeleteRuntime(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> StartRuntime( google::cloud::notebooks::v1::StartRuntimeRequest const& request) override; + StatusOr StartRuntime( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v1::StartRuntimeRequest const& request) + override; + + future> StartRuntime( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> StopRuntime( google::cloud::notebooks::v1::StopRuntimeRequest const& request) override; + StatusOr StopRuntime( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v1::StopRuntimeRequest const& request) override; + + future> StopRuntime( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> SwitchRuntime( google::cloud::notebooks::v1::SwitchRuntimeRequest const& request) override; + StatusOr SwitchRuntime( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v1::SwitchRuntimeRequest const& request) + override; + + future> SwitchRuntime( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ResetRuntime( google::cloud::notebooks::v1::ResetRuntimeRequest const& request) override; + StatusOr ResetRuntime( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v1::ResetRuntimeRequest const& request) + override; + + future> ResetRuntime( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpgradeRuntime( google::cloud::notebooks::v1::UpgradeRuntimeRequest const& request) override; + StatusOr UpgradeRuntime( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v1::UpgradeRuntimeRequest const& request) + override; + + future> UpgradeRuntime( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ReportRuntimeEvent( google::cloud::notebooks::v1::ReportRuntimeEventRequest const& request) override; + StatusOr ReportRuntimeEvent( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v1::ReportRuntimeEventRequest const& request) + override; + + future> ReportRuntimeEvent( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr RefreshRuntimeTokenInternal( google::cloud::notebooks::v1::RefreshRuntimeTokenInternalRequest const& @@ -90,6 +170,15 @@ class ManagedNotebookServiceTracingConnection google::cloud::notebooks::v1::DiagnoseRuntimeRequest const& request) override; + StatusOr DiagnoseRuntime( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v1::DiagnoseRuntimeRequest const& request) + override; + + future> DiagnoseRuntime( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + private: std::shared_ptr child_; }; diff --git a/google/cloud/notebooks/v1/internal/notebook_connection_impl.cc b/google/cloud/notebooks/v1/internal/notebook_connection_impl.cc index 81a3ebed8f141..7302206f73077 100644 --- a/google/cloud/notebooks/v1/internal/notebook_connection_impl.cc +++ b/google/cloud/notebooks/v1/internal/notebook_connection_impl.cc @@ -153,6 +153,58 @@ NotebookServiceConnectionImpl::CreateInstance( polling_policy(*current), __func__); } +StatusOr +NotebookServiceConnectionImpl::CreateInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v1::CreateInstanceRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateInstance(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::notebooks::v1::CreateInstanceRequest const& request) { + return stub_->CreateInstance(context, options, request); + }, + *current, request, __func__); +} + +future> +NotebookServiceConnectionImpl::CreateInstance( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to CreateInstance", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::notebooks::v1::Instance>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::notebooks::v1::Instance>, + polling_policy(*current), __func__); +} + future> NotebookServiceConnectionImpl::RegisterInstance( google::cloud::notebooks::v1::RegisterInstanceRequest const& request) { @@ -193,6 +245,58 @@ NotebookServiceConnectionImpl::RegisterInstance( polling_policy(*current), __func__); } +StatusOr +NotebookServiceConnectionImpl::RegisterInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v1::RegisterInstanceRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->RegisterInstance(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::notebooks::v1::RegisterInstanceRequest const& + request) { + return stub_->RegisterInstance(context, options, request); + }, + *current, request, __func__); +} + +future> +NotebookServiceConnectionImpl::RegisterInstance( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to RegisterInstance", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::notebooks::v1::Instance>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::notebooks::v1::Instance>, + polling_policy(*current), __func__); +} + future> NotebookServiceConnectionImpl::SetInstanceAccelerator( google::cloud::notebooks::v1::SetInstanceAcceleratorRequest const& @@ -234,6 +338,59 @@ NotebookServiceConnectionImpl::SetInstanceAccelerator( polling_policy(*current), __func__); } +StatusOr +NotebookServiceConnectionImpl::SetInstanceAccelerator( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v1::SetInstanceAcceleratorRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->SetInstanceAccelerator(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::notebooks::v1::SetInstanceAcceleratorRequest const& + request) { + return stub_->SetInstanceAccelerator(context, options, request); + }, + *current, request, __func__); +} + +future> +NotebookServiceConnectionImpl::SetInstanceAccelerator( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to SetInstanceAccelerator", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::notebooks::v1::Instance>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::notebooks::v1::Instance>, + polling_policy(*current), __func__); +} + future> NotebookServiceConnectionImpl::SetInstanceMachineType( google::cloud::notebooks::v1::SetInstanceMachineTypeRequest const& @@ -275,6 +432,59 @@ NotebookServiceConnectionImpl::SetInstanceMachineType( polling_policy(*current), __func__); } +StatusOr +NotebookServiceConnectionImpl::SetInstanceMachineType( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v1::SetInstanceMachineTypeRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->SetInstanceMachineType(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::notebooks::v1::SetInstanceMachineTypeRequest const& + request) { + return stub_->SetInstanceMachineType(context, options, request); + }, + *current, request, __func__); +} + +future> +NotebookServiceConnectionImpl::SetInstanceMachineType( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to SetInstanceMachineType", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::notebooks::v1::Instance>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::notebooks::v1::Instance>, + polling_policy(*current), __func__); +} + future> NotebookServiceConnectionImpl::UpdateInstanceConfig( google::cloud::notebooks::v1::UpdateInstanceConfigRequest const& request) { @@ -315,6 +525,58 @@ NotebookServiceConnectionImpl::UpdateInstanceConfig( polling_policy(*current), __func__); } +StatusOr +NotebookServiceConnectionImpl::UpdateInstanceConfig( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v1::UpdateInstanceConfigRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UpdateInstanceConfig(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::notebooks::v1::UpdateInstanceConfigRequest const& + request) { + return stub_->UpdateInstanceConfig(context, options, request); + }, + *current, request, __func__); +} + +future> +NotebookServiceConnectionImpl::UpdateInstanceConfig( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to UpdateInstanceConfig", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::notebooks::v1::Instance>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::notebooks::v1::Instance>, + polling_policy(*current), __func__); +} + future> NotebookServiceConnectionImpl::UpdateShieldedInstanceConfig( google::cloud::notebooks::v1::UpdateShieldedInstanceConfigRequest const& @@ -355,6 +617,59 @@ NotebookServiceConnectionImpl::UpdateShieldedInstanceConfig( polling_policy(*current), __func__); } +StatusOr +NotebookServiceConnectionImpl::UpdateShieldedInstanceConfig( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v1::UpdateShieldedInstanceConfigRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UpdateShieldedInstanceConfig(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::notebooks::v1:: + UpdateShieldedInstanceConfigRequest const& request) { + return stub_->UpdateShieldedInstanceConfig(context, options, request); + }, + *current, request, __func__); +} + +future> +NotebookServiceConnectionImpl::UpdateShieldedInstanceConfig( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to UpdateShieldedInstanceConfig", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::notebooks::v1::Instance>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::notebooks::v1::Instance>, + polling_policy(*current), __func__); +} + future> NotebookServiceConnectionImpl::SetInstanceLabels( google::cloud::notebooks::v1::SetInstanceLabelsRequest const& request) { @@ -395,6 +710,58 @@ NotebookServiceConnectionImpl::SetInstanceLabels( polling_policy(*current), __func__); } +StatusOr +NotebookServiceConnectionImpl::SetInstanceLabels( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v1::SetInstanceLabelsRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->SetInstanceLabels(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::notebooks::v1::SetInstanceLabelsRequest const& + request) { + return stub_->SetInstanceLabels(context, options, request); + }, + *current, request, __func__); +} + +future> +NotebookServiceConnectionImpl::SetInstanceLabels( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to SetInstanceLabels", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::notebooks::v1::Instance>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::notebooks::v1::Instance>, + polling_policy(*current), __func__); +} + StatusOr NotebookServiceConnectionImpl::UpdateInstanceMetadataItems( google::cloud::notebooks::v1::UpdateInstanceMetadataItemsRequest const& @@ -450,6 +817,59 @@ NotebookServiceConnectionImpl::DeleteInstance( polling_policy(*current), __func__); } +StatusOr +NotebookServiceConnectionImpl::DeleteInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v1::DeleteInstanceRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteInstance(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::notebooks::v1::DeleteInstanceRequest const& request) { + return stub_->DeleteInstance(context, options, request); + }, + *current, request, __func__); +} + +future> +NotebookServiceConnectionImpl::DeleteInstance( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteInstance", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::notebooks::v1::OperationMetadata>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::cloud::notebooks::v1::OperationMetadata>, + polling_policy(*current), __func__); +} + future> NotebookServiceConnectionImpl::StartInstance( google::cloud::notebooks::v1::StartInstanceRequest const& request) { @@ -489,24 +909,219 @@ NotebookServiceConnectionImpl::StartInstance( polling_policy(*current), __func__); } +StatusOr +NotebookServiceConnectionImpl::StartInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v1::StartInstanceRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->StartInstance(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::notebooks::v1::StartInstanceRequest const& request) { + return stub_->StartInstance(context, options, request); + }, + *current, request, __func__); +} + +future> +NotebookServiceConnectionImpl::StartInstance( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to StartInstance", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::notebooks::v1::Instance>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::notebooks::v1::Instance>, + polling_policy(*current), __func__); +} + +future> +NotebookServiceConnectionImpl::StopInstance( + google::cloud::notebooks::v1::StopInstanceRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + auto request_copy = request; + auto const idempotent = + idempotency_policy(*current)->StopInstance(request_copy); + return google::cloud::internal::AsyncLongRunningOperation< + google::cloud::notebooks::v1::Instance>( + background_->cq(), current, std::move(request_copy), + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::notebooks::v1::StopInstanceRequest const& request) { + return stub->AsyncStopInstance(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::notebooks::v1::Instance>, + retry_policy(*current), backoff_policy(*current), idempotent, + polling_policy(*current), __func__); +} + +StatusOr +NotebookServiceConnectionImpl::StopInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v1::StopInstanceRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->StopInstance(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::notebooks::v1::StopInstanceRequest const& request) { + return stub_->StopInstance(context, options, request); + }, + *current, request, __func__); +} + +future> +NotebookServiceConnectionImpl::StopInstance( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to StopInstance", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::notebooks::v1::Instance>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::notebooks::v1::Instance>, + polling_policy(*current), __func__); +} + +future> +NotebookServiceConnectionImpl::ResetInstance( + google::cloud::notebooks::v1::ResetInstanceRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + auto request_copy = request; + auto const idempotent = + idempotency_policy(*current)->ResetInstance(request_copy); + return google::cloud::internal::AsyncLongRunningOperation< + google::cloud::notebooks::v1::Instance>( + background_->cq(), current, std::move(request_copy), + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::notebooks::v1::ResetInstanceRequest const& request) { + return stub->AsyncResetInstance(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::notebooks::v1::Instance>, + retry_policy(*current), backoff_policy(*current), idempotent, + polling_policy(*current), __func__); +} + +StatusOr +NotebookServiceConnectionImpl::ResetInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v1::ResetInstanceRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->ResetInstance(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::notebooks::v1::ResetInstanceRequest const& request) { + return stub_->ResetInstance(context, options, request); + }, + *current, request, __func__); +} + future> -NotebookServiceConnectionImpl::StopInstance( - google::cloud::notebooks::v1::StopInstanceRequest const& request) { +NotebookServiceConnectionImpl::ResetInstance( + ExperimentalTag, google::longrunning::Operation const& operation) { auto current = google::cloud::internal::SaveCurrentOptions(); - auto request_copy = request; - auto const idempotent = - idempotency_policy(*current)->StopInstance(request_copy); - return google::cloud::internal::AsyncLongRunningOperation< + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to ResetInstance", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< google::cloud::notebooks::v1::Instance>( - background_->cq(), current, std::move(request_copy), - [stub = stub_]( - google::cloud::CompletionQueue& cq, - std::shared_ptr context, - google::cloud::internal::ImmutableOptions options, - google::cloud::notebooks::v1::StopInstanceRequest const& request) { - return stub->AsyncStopInstance(cq, std::move(context), - std::move(options), request); - }, + background_->cq(), current, operation, [stub = stub_](google::cloud::CompletionQueue& cq, std::shared_ptr context, google::cloud::internal::ImmutableOptions options, @@ -524,17 +1139,16 @@ NotebookServiceConnectionImpl::StopInstance( }, &google::cloud::internal::ExtractLongRunningResultResponse< google::cloud::notebooks::v1::Instance>, - retry_policy(*current), backoff_policy(*current), idempotent, polling_policy(*current), __func__); } future> -NotebookServiceConnectionImpl::ResetInstance( - google::cloud::notebooks::v1::ResetInstanceRequest const& request) { +NotebookServiceConnectionImpl::ReportInstanceInfo( + google::cloud::notebooks::v1::ReportInstanceInfoRequest const& request) { auto current = google::cloud::internal::SaveCurrentOptions(); auto request_copy = request; auto const idempotent = - idempotency_policy(*current)->ResetInstance(request_copy); + idempotency_policy(*current)->ReportInstanceInfo(request_copy); return google::cloud::internal::AsyncLongRunningOperation< google::cloud::notebooks::v1::Instance>( background_->cq(), current, std::move(request_copy), @@ -542,9 +1156,10 @@ NotebookServiceConnectionImpl::ResetInstance( google::cloud::CompletionQueue& cq, std::shared_ptr context, google::cloud::internal::ImmutableOptions options, - google::cloud::notebooks::v1::ResetInstanceRequest const& request) { - return stub->AsyncResetInstance(cq, std::move(context), - std::move(options), request); + google::cloud::notebooks::v1::ReportInstanceInfoRequest const& + request) { + return stub->AsyncReportInstanceInfo(cq, std::move(context), + std::move(options), request); }, [stub = stub_](google::cloud::CompletionQueue& cq, std::shared_ptr context, @@ -567,25 +1182,38 @@ NotebookServiceConnectionImpl::ResetInstance( polling_policy(*current), __func__); } -future> +StatusOr NotebookServiceConnectionImpl::ReportInstanceInfo( + ExperimentalTag, NoAwaitTag, google::cloud::notebooks::v1::ReportInstanceInfoRequest const& request) { auto current = google::cloud::internal::SaveCurrentOptions(); - auto request_copy = request; - auto const idempotent = - idempotency_policy(*current)->ReportInstanceInfo(request_copy); - return google::cloud::internal::AsyncLongRunningOperation< - google::cloud::notebooks::v1::Instance>( - background_->cq(), current, std::move(request_copy), - [stub = stub_]( - google::cloud::CompletionQueue& cq, - std::shared_ptr context, - google::cloud::internal::ImmutableOptions options, - google::cloud::notebooks::v1::ReportInstanceInfoRequest const& - request) { - return stub->AsyncReportInstanceInfo(cq, std::move(context), - std::move(options), request); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->ReportInstanceInfo(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::notebooks::v1::ReportInstanceInfoRequest const& + request) { + return stub_->ReportInstanceInfo(context, options, request); }, + *current, request, __func__); +} + +future> +NotebookServiceConnectionImpl::ReportInstanceInfo( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to ReportInstanceInfo", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::notebooks::v1::Instance>( + background_->cq(), current, operation, [stub = stub_](google::cloud::CompletionQueue& cq, std::shared_ptr context, google::cloud::internal::ImmutableOptions options, @@ -603,7 +1231,6 @@ NotebookServiceConnectionImpl::ReportInstanceInfo( }, &google::cloud::internal::ExtractLongRunningResultResponse< google::cloud::notebooks::v1::Instance>, - retry_policy(*current), backoff_policy(*current), idempotent, polling_policy(*current), __func__); } @@ -676,6 +1303,58 @@ NotebookServiceConnectionImpl::UpgradeInstance( polling_policy(*current), __func__); } +StatusOr +NotebookServiceConnectionImpl::UpgradeInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v1::UpgradeInstanceRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UpgradeInstance(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::notebooks::v1::UpgradeInstanceRequest const& request) { + return stub_->UpgradeInstance(context, options, request); + }, + *current, request, __func__); +} + +future> +NotebookServiceConnectionImpl::UpgradeInstance( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to UpgradeInstance", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::notebooks::v1::Instance>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::notebooks::v1::Instance>, + polling_policy(*current), __func__); +} + future> NotebookServiceConnectionImpl::RollbackInstance( google::cloud::notebooks::v1::RollbackInstanceRequest const& request) { @@ -716,6 +1395,58 @@ NotebookServiceConnectionImpl::RollbackInstance( polling_policy(*current), __func__); } +StatusOr +NotebookServiceConnectionImpl::RollbackInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v1::RollbackInstanceRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->RollbackInstance(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::notebooks::v1::RollbackInstanceRequest const& + request) { + return stub_->RollbackInstance(context, options, request); + }, + *current, request, __func__); +} + +future> +NotebookServiceConnectionImpl::RollbackInstance( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to RollbackInstance", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::notebooks::v1::Instance>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::notebooks::v1::Instance>, + polling_policy(*current), __func__); +} + future> NotebookServiceConnectionImpl::DiagnoseInstance( google::cloud::notebooks::v1::DiagnoseInstanceRequest const& request) { @@ -756,6 +1487,58 @@ NotebookServiceConnectionImpl::DiagnoseInstance( polling_policy(*current), __func__); } +StatusOr +NotebookServiceConnectionImpl::DiagnoseInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v1::DiagnoseInstanceRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DiagnoseInstance(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::notebooks::v1::DiagnoseInstanceRequest const& + request) { + return stub_->DiagnoseInstance(context, options, request); + }, + *current, request, __func__); +} + +future> +NotebookServiceConnectionImpl::DiagnoseInstance( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to DiagnoseInstance", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::notebooks::v1::Instance>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::notebooks::v1::Instance>, + polling_policy(*current), __func__); +} + future> NotebookServiceConnectionImpl::UpgradeInstanceInternal( google::cloud::notebooks::v1::UpgradeInstanceInternalRequest const& @@ -797,6 +1580,59 @@ NotebookServiceConnectionImpl::UpgradeInstanceInternal( polling_policy(*current), __func__); } +StatusOr +NotebookServiceConnectionImpl::UpgradeInstanceInternal( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v1::UpgradeInstanceInternalRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UpgradeInstanceInternal(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::notebooks::v1::UpgradeInstanceInternalRequest const& + request) { + return stub_->UpgradeInstanceInternal(context, options, request); + }, + *current, request, __func__); +} + +future> +NotebookServiceConnectionImpl::UpgradeInstanceInternal( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to UpgradeInstanceInternal", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::notebooks::v1::Instance>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::notebooks::v1::Instance>, + polling_policy(*current), __func__); +} + StreamRange NotebookServiceConnectionImpl::ListEnvironments( google::cloud::notebooks::v1::ListEnvironmentsRequest request) { @@ -831,40 +1667,94 @@ NotebookServiceConnectionImpl::ListEnvironments( }); } -StatusOr -NotebookServiceConnectionImpl::GetEnvironment( - google::cloud::notebooks::v1::GetEnvironmentRequest const& request) { +StatusOr +NotebookServiceConnectionImpl::GetEnvironment( + google::cloud::notebooks::v1::GetEnvironmentRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->GetEnvironment(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::notebooks::v1::GetEnvironmentRequest const& request) { + return stub_->GetEnvironment(context, options, request); + }, + *current, request, __func__); +} + +future> +NotebookServiceConnectionImpl::CreateEnvironment( + google::cloud::notebooks::v1::CreateEnvironmentRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + auto request_copy = request; + auto const idempotent = + idempotency_policy(*current)->CreateEnvironment(request_copy); + return google::cloud::internal::AsyncLongRunningOperation< + google::cloud::notebooks::v1::Environment>( + background_->cq(), current, std::move(request_copy), + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::notebooks::v1::CreateEnvironmentRequest const& + request) { + return stub->AsyncCreateEnvironment(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::notebooks::v1::Environment>, + retry_policy(*current), backoff_policy(*current), idempotent, + polling_policy(*current), __func__); +} + +StatusOr +NotebookServiceConnectionImpl::CreateEnvironment( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v1::CreateEnvironmentRequest const& request) { auto current = google::cloud::internal::SaveCurrentOptions(); return google::cloud::internal::RetryLoop( retry_policy(*current), backoff_policy(*current), - idempotency_policy(*current)->GetEnvironment(request), - [this]( - grpc::ClientContext& context, Options const& options, - google::cloud::notebooks::v1::GetEnvironmentRequest const& request) { - return stub_->GetEnvironment(context, options, request); + idempotency_policy(*current)->CreateEnvironment(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::notebooks::v1::CreateEnvironmentRequest const& + request) { + return stub_->CreateEnvironment(context, options, request); }, *current, request, __func__); } future> NotebookServiceConnectionImpl::CreateEnvironment( - google::cloud::notebooks::v1::CreateEnvironmentRequest const& request) { + ExperimentalTag, google::longrunning::Operation const& operation) { auto current = google::cloud::internal::SaveCurrentOptions(); - auto request_copy = request; - auto const idempotent = - idempotency_policy(*current)->CreateEnvironment(request_copy); - return google::cloud::internal::AsyncLongRunningOperation< + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to CreateEnvironment", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< google::cloud::notebooks::v1::Environment>( - background_->cq(), current, std::move(request_copy), - [stub = stub_]( - google::cloud::CompletionQueue& cq, - std::shared_ptr context, - google::cloud::internal::ImmutableOptions options, - google::cloud::notebooks::v1::CreateEnvironmentRequest const& - request) { - return stub->AsyncCreateEnvironment(cq, std::move(context), - std::move(options), request); - }, + background_->cq(), current, operation, [stub = stub_](google::cloud::CompletionQueue& cq, std::shared_ptr context, google::cloud::internal::ImmutableOptions options, @@ -882,7 +1772,6 @@ NotebookServiceConnectionImpl::CreateEnvironment( }, &google::cloud::internal::ExtractLongRunningResultResponse< google::cloud::notebooks::v1::Environment>, - retry_policy(*current), backoff_policy(*current), idempotent, polling_policy(*current), __func__); } @@ -926,6 +1815,59 @@ NotebookServiceConnectionImpl::DeleteEnvironment( polling_policy(*current), __func__); } +StatusOr +NotebookServiceConnectionImpl::DeleteEnvironment( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v1::DeleteEnvironmentRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteEnvironment(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::notebooks::v1::DeleteEnvironmentRequest const& + request) { + return stub_->DeleteEnvironment(context, options, request); + }, + *current, request, __func__); +} + +future> +NotebookServiceConnectionImpl::DeleteEnvironment( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteEnvironment", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::notebooks::v1::OperationMetadata>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::cloud::notebooks::v1::OperationMetadata>, + polling_policy(*current), __func__); +} + StreamRange NotebookServiceConnectionImpl::ListSchedules( google::cloud::notebooks::v1::ListSchedulesRequest request) { @@ -1013,6 +1955,59 @@ NotebookServiceConnectionImpl::DeleteSchedule( polling_policy(*current), __func__); } +StatusOr +NotebookServiceConnectionImpl::DeleteSchedule( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v1::DeleteScheduleRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteSchedule(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::notebooks::v1::DeleteScheduleRequest const& request) { + return stub_->DeleteSchedule(context, options, request); + }, + *current, request, __func__); +} + +future> +NotebookServiceConnectionImpl::DeleteSchedule( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteSchedule", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::notebooks::v1::OperationMetadata>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::cloud::notebooks::v1::OperationMetadata>, + polling_policy(*current), __func__); +} + future> NotebookServiceConnectionImpl::CreateSchedule( google::cloud::notebooks::v1::CreateScheduleRequest const& request) { @@ -1052,6 +2047,58 @@ NotebookServiceConnectionImpl::CreateSchedule( polling_policy(*current), __func__); } +StatusOr +NotebookServiceConnectionImpl::CreateSchedule( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v1::CreateScheduleRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateSchedule(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::notebooks::v1::CreateScheduleRequest const& request) { + return stub_->CreateSchedule(context, options, request); + }, + *current, request, __func__); +} + +future> +NotebookServiceConnectionImpl::CreateSchedule( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to CreateSchedule", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::notebooks::v1::Schedule>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::notebooks::v1::Schedule>, + polling_policy(*current), __func__); +} + future> NotebookServiceConnectionImpl::TriggerSchedule( google::cloud::notebooks::v1::TriggerScheduleRequest const& request) { @@ -1091,6 +2138,58 @@ NotebookServiceConnectionImpl::TriggerSchedule( polling_policy(*current), __func__); } +StatusOr +NotebookServiceConnectionImpl::TriggerSchedule( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v1::TriggerScheduleRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->TriggerSchedule(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::notebooks::v1::TriggerScheduleRequest const& request) { + return stub_->TriggerSchedule(context, options, request); + }, + *current, request, __func__); +} + +future> +NotebookServiceConnectionImpl::TriggerSchedule( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to TriggerSchedule", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::notebooks::v1::Schedule>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::notebooks::v1::Schedule>, + polling_policy(*current), __func__); +} + StreamRange NotebookServiceConnectionImpl::ListExecutions( google::cloud::notebooks::v1::ListExecutionsRequest request) { @@ -1178,6 +2277,59 @@ NotebookServiceConnectionImpl::DeleteExecution( polling_policy(*current), __func__); } +StatusOr +NotebookServiceConnectionImpl::DeleteExecution( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v1::DeleteExecutionRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteExecution(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::notebooks::v1::DeleteExecutionRequest const& request) { + return stub_->DeleteExecution(context, options, request); + }, + *current, request, __func__); +} + +future> +NotebookServiceConnectionImpl::DeleteExecution( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteExecution", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::notebooks::v1::OperationMetadata>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::cloud::notebooks::v1::OperationMetadata>, + polling_policy(*current), __func__); +} + future> NotebookServiceConnectionImpl::CreateExecution( google::cloud::notebooks::v1::CreateExecutionRequest const& request) { @@ -1217,6 +2369,58 @@ NotebookServiceConnectionImpl::CreateExecution( polling_policy(*current), __func__); } +StatusOr +NotebookServiceConnectionImpl::CreateExecution( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v1::CreateExecutionRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateExecution(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::notebooks::v1::CreateExecutionRequest const& request) { + return stub_->CreateExecution(context, options, request); + }, + *current, request, __func__); +} + +future> +NotebookServiceConnectionImpl::CreateExecution( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to CreateExecution", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::notebooks::v1::Execution>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::notebooks::v1::Execution>, + polling_policy(*current), __func__); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace notebooks_v1_internal } // namespace cloud diff --git a/google/cloud/notebooks/v1/internal/notebook_connection_impl.h b/google/cloud/notebooks/v1/internal/notebook_connection_impl.h index 69d2e99a06715..9060d56d22043 100644 --- a/google/cloud/notebooks/v1/internal/notebook_connection_impl.h +++ b/google/cloud/notebooks/v1/internal/notebook_connection_impl.h @@ -62,33 +62,99 @@ class NotebookServiceConnectionImpl google::cloud::notebooks::v1::CreateInstanceRequest const& request) override; + StatusOr CreateInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v1::CreateInstanceRequest const& request) + override; + + future> CreateInstance( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> RegisterInstance( google::cloud::notebooks::v1::RegisterInstanceRequest const& request) override; + StatusOr RegisterInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v1::RegisterInstanceRequest const& request) + override; + + future> RegisterInstance( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> SetInstanceAccelerator( google::cloud::notebooks::v1::SetInstanceAcceleratorRequest const& request) override; + StatusOr SetInstanceAccelerator( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v1::SetInstanceAcceleratorRequest const& + request) override; + + future> + SetInstanceAccelerator( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> SetInstanceMachineType( google::cloud::notebooks::v1::SetInstanceMachineTypeRequest const& request) override; + StatusOr SetInstanceMachineType( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v1::SetInstanceMachineTypeRequest const& + request) override; + + future> + SetInstanceMachineType( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateInstanceConfig( google::cloud::notebooks::v1::UpdateInstanceConfigRequest const& request) override; + StatusOr UpdateInstanceConfig( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v1::UpdateInstanceConfigRequest const& request) + override; + + future> UpdateInstanceConfig( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateShieldedInstanceConfig( google::cloud::notebooks::v1::UpdateShieldedInstanceConfigRequest const& request) override; + StatusOr UpdateShieldedInstanceConfig( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v1::UpdateShieldedInstanceConfigRequest const& + request) override; + + future> + UpdateShieldedInstanceConfig( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> SetInstanceLabels( google::cloud::notebooks::v1::SetInstanceLabelsRequest const& request) override; + StatusOr SetInstanceLabels( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v1::SetInstanceLabelsRequest const& request) + override; + + future> SetInstanceLabels( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr UpdateInstanceMetadataItems( google::cloud::notebooks::v1::UpdateInstanceMetadataItemsRequest const& @@ -98,22 +164,67 @@ class NotebookServiceConnectionImpl DeleteInstance(google::cloud::notebooks::v1::DeleteInstanceRequest const& request) override; + StatusOr DeleteInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v1::DeleteInstanceRequest const& request) + override; + + future> + DeleteInstance(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> StartInstance( google::cloud::notebooks::v1::StartInstanceRequest const& request) override; + StatusOr StartInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v1::StartInstanceRequest const& request) + override; + + future> StartInstance( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> StopInstance( google::cloud::notebooks::v1::StopInstanceRequest const& request) override; + StatusOr StopInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v1::StopInstanceRequest const& request) + override; + + future> StopInstance( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ResetInstance( google::cloud::notebooks::v1::ResetInstanceRequest const& request) override; + StatusOr ResetInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v1::ResetInstanceRequest const& request) + override; + + future> ResetInstance( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ReportInstanceInfo( google::cloud::notebooks::v1::ReportInstanceInfoRequest const& request) override; + StatusOr ReportInstanceInfo( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v1::ReportInstanceInfoRequest const& request) + override; + + future> ReportInstanceInfo( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr IsInstanceUpgradeable( google::cloud::notebooks::v1::IsInstanceUpgradeableRequest const& request) @@ -128,19 +239,56 @@ class NotebookServiceConnectionImpl google::cloud::notebooks::v1::UpgradeInstanceRequest const& request) override; + StatusOr UpgradeInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v1::UpgradeInstanceRequest const& request) + override; + + future> UpgradeInstance( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> RollbackInstance( google::cloud::notebooks::v1::RollbackInstanceRequest const& request) override; + StatusOr RollbackInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v1::RollbackInstanceRequest const& request) + override; + + future> RollbackInstance( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DiagnoseInstance( google::cloud::notebooks::v1::DiagnoseInstanceRequest const& request) override; + StatusOr DiagnoseInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v1::DiagnoseInstanceRequest const& request) + override; + + future> DiagnoseInstance( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpgradeInstanceInternal( google::cloud::notebooks::v1::UpgradeInstanceInternalRequest const& request) override; + StatusOr UpgradeInstanceInternal( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v1::UpgradeInstanceInternalRequest const& + request) override; + + future> + UpgradeInstanceInternal( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListEnvironments( google::cloud::notebooks::v1::ListEnvironmentsRequest request) override; @@ -152,11 +300,29 @@ class NotebookServiceConnectionImpl google::cloud::notebooks::v1::CreateEnvironmentRequest const& request) override; + StatusOr CreateEnvironment( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v1::CreateEnvironmentRequest const& request) + override; + + future> CreateEnvironment( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteEnvironment( google::cloud::notebooks::v1::DeleteEnvironmentRequest const& request) override; + StatusOr DeleteEnvironment( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v1::DeleteEnvironmentRequest const& request) + override; + + future> + DeleteEnvironment(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListSchedules( google::cloud::notebooks::v1::ListSchedulesRequest request) override; @@ -167,14 +333,41 @@ class NotebookServiceConnectionImpl DeleteSchedule(google::cloud::notebooks::v1::DeleteScheduleRequest const& request) override; + StatusOr DeleteSchedule( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v1::DeleteScheduleRequest const& request) + override; + + future> + DeleteSchedule(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> CreateSchedule( google::cloud::notebooks::v1::CreateScheduleRequest const& request) override; + StatusOr CreateSchedule( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v1::CreateScheduleRequest const& request) + override; + + future> CreateSchedule( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> TriggerSchedule( google::cloud::notebooks::v1::TriggerScheduleRequest const& request) override; + StatusOr TriggerSchedule( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v1::TriggerScheduleRequest const& request) + override; + + future> TriggerSchedule( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListExecutions( google::cloud::notebooks::v1::ListExecutionsRequest request) override; @@ -186,10 +379,28 @@ class NotebookServiceConnectionImpl DeleteExecution(google::cloud::notebooks::v1::DeleteExecutionRequest const& request) override; + StatusOr DeleteExecution( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v1::DeleteExecutionRequest const& request) + override; + + future> + DeleteExecution(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> CreateExecution( google::cloud::notebooks::v1::CreateExecutionRequest const& request) override; + StatusOr CreateExecution( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v1::CreateExecutionRequest const& request) + override; + + future> CreateExecution( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + private: std::unique_ptr background_; std::shared_ptr stub_; diff --git a/google/cloud/notebooks/v1/internal/notebook_tracing_connection.cc b/google/cloud/notebooks/v1/internal/notebook_tracing_connection.cc index 232bddf9bc2b1..075f0cf43e101 100644 --- a/google/cloud/notebooks/v1/internal/notebook_tracing_connection.cc +++ b/google/cloud/notebooks/v1/internal/notebook_tracing_connection.cc @@ -62,6 +62,27 @@ NotebookServiceTracingConnection::CreateInstance( return internal::EndSpan(std::move(span), child_->CreateInstance(request)); } +StatusOr +NotebookServiceTracingConnection::CreateInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v1::CreateInstanceRequest const& request) { + auto span = internal::MakeSpan( + "notebooks_v1::NotebookServiceConnection::CreateInstance"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->CreateInstance(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +NotebookServiceTracingConnection::CreateInstance( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "notebooks_v1::NotebookServiceConnection::CreateInstance"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->CreateInstance(ExperimentalTag{}, operation)); +} + future> NotebookServiceTracingConnection::RegisterInstance( google::cloud::notebooks::v1::RegisterInstanceRequest const& request) { @@ -71,6 +92,28 @@ NotebookServiceTracingConnection::RegisterInstance( return internal::EndSpan(std::move(span), child_->RegisterInstance(request)); } +StatusOr +NotebookServiceTracingConnection::RegisterInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v1::RegisterInstanceRequest const& request) { + auto span = internal::MakeSpan( + "notebooks_v1::NotebookServiceConnection::RegisterInstance"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->RegisterInstance(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +NotebookServiceTracingConnection::RegisterInstance( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "notebooks_v1::NotebookServiceConnection::RegisterInstance"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->RegisterInstance(ExperimentalTag{}, operation)); +} + future> NotebookServiceTracingConnection::SetInstanceAccelerator( google::cloud::notebooks::v1::SetInstanceAcceleratorRequest const& @@ -82,6 +125,29 @@ NotebookServiceTracingConnection::SetInstanceAccelerator( child_->SetInstanceAccelerator(request)); } +StatusOr +NotebookServiceTracingConnection::SetInstanceAccelerator( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v1::SetInstanceAcceleratorRequest const& + request) { + auto span = internal::MakeSpan( + "notebooks_v1::NotebookServiceConnection::SetInstanceAccelerator"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->SetInstanceAccelerator(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +NotebookServiceTracingConnection::SetInstanceAccelerator( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "notebooks_v1::NotebookServiceConnection::SetInstanceAccelerator"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->SetInstanceAccelerator( + ExperimentalTag{}, operation)); +} + future> NotebookServiceTracingConnection::SetInstanceMachineType( google::cloud::notebooks::v1::SetInstanceMachineTypeRequest const& @@ -93,6 +159,29 @@ NotebookServiceTracingConnection::SetInstanceMachineType( child_->SetInstanceMachineType(request)); } +StatusOr +NotebookServiceTracingConnection::SetInstanceMachineType( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v1::SetInstanceMachineTypeRequest const& + request) { + auto span = internal::MakeSpan( + "notebooks_v1::NotebookServiceConnection::SetInstanceMachineType"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->SetInstanceMachineType(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +NotebookServiceTracingConnection::SetInstanceMachineType( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "notebooks_v1::NotebookServiceConnection::SetInstanceMachineType"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->SetInstanceMachineType( + ExperimentalTag{}, operation)); +} + future> NotebookServiceTracingConnection::UpdateInstanceConfig( google::cloud::notebooks::v1::UpdateInstanceConfigRequest const& request) { @@ -103,6 +192,28 @@ NotebookServiceTracingConnection::UpdateInstanceConfig( child_->UpdateInstanceConfig(request)); } +StatusOr +NotebookServiceTracingConnection::UpdateInstanceConfig( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v1::UpdateInstanceConfigRequest const& request) { + auto span = internal::MakeSpan( + "notebooks_v1::NotebookServiceConnection::UpdateInstanceConfig"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->UpdateInstanceConfig(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +NotebookServiceTracingConnection::UpdateInstanceConfig( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "notebooks_v1::NotebookServiceConnection::UpdateInstanceConfig"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->UpdateInstanceConfig( + ExperimentalTag{}, operation)); +} + future> NotebookServiceTracingConnection::UpdateShieldedInstanceConfig( google::cloud::notebooks::v1::UpdateShieldedInstanceConfigRequest const& @@ -114,6 +225,30 @@ NotebookServiceTracingConnection::UpdateShieldedInstanceConfig( child_->UpdateShieldedInstanceConfig(request)); } +StatusOr +NotebookServiceTracingConnection::UpdateShieldedInstanceConfig( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v1::UpdateShieldedInstanceConfigRequest const& + request) { + auto span = internal::MakeSpan( + "notebooks_v1::NotebookServiceConnection::UpdateShieldedInstanceConfig"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->UpdateShieldedInstanceConfig(ExperimentalTag{}, + NoAwaitTag{}, request)); +} + +future> +NotebookServiceTracingConnection::UpdateShieldedInstanceConfig( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "notebooks_v1::NotebookServiceConnection::UpdateShieldedInstanceConfig"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), + child_->UpdateShieldedInstanceConfig(ExperimentalTag{}, operation)); +} + future> NotebookServiceTracingConnection::SetInstanceLabels( google::cloud::notebooks::v1::SetInstanceLabelsRequest const& request) { @@ -123,6 +258,28 @@ NotebookServiceTracingConnection::SetInstanceLabels( return internal::EndSpan(std::move(span), child_->SetInstanceLabels(request)); } +StatusOr +NotebookServiceTracingConnection::SetInstanceLabels( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v1::SetInstanceLabelsRequest const& request) { + auto span = internal::MakeSpan( + "notebooks_v1::NotebookServiceConnection::SetInstanceLabels"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->SetInstanceLabels(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +NotebookServiceTracingConnection::SetInstanceLabels( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "notebooks_v1::NotebookServiceConnection::SetInstanceLabels"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->SetInstanceLabels(ExperimentalTag{}, operation)); +} + StatusOr NotebookServiceTracingConnection::UpdateInstanceMetadataItems( google::cloud::notebooks::v1::UpdateInstanceMetadataItemsRequest const& @@ -142,6 +299,27 @@ NotebookServiceTracingConnection::DeleteInstance( return internal::EndSpan(std::move(span), child_->DeleteInstance(request)); } +StatusOr +NotebookServiceTracingConnection::DeleteInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v1::DeleteInstanceRequest const& request) { + auto span = internal::MakeSpan( + "notebooks_v1::NotebookServiceConnection::DeleteInstance"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->DeleteInstance(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +NotebookServiceTracingConnection::DeleteInstance( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "notebooks_v1::NotebookServiceConnection::DeleteInstance"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->DeleteInstance(ExperimentalTag{}, operation)); +} + future> NotebookServiceTracingConnection::StartInstance( google::cloud::notebooks::v1::StartInstanceRequest const& request) { @@ -151,6 +329,27 @@ NotebookServiceTracingConnection::StartInstance( return internal::EndSpan(std::move(span), child_->StartInstance(request)); } +StatusOr +NotebookServiceTracingConnection::StartInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v1::StartInstanceRequest const& request) { + auto span = internal::MakeSpan( + "notebooks_v1::NotebookServiceConnection::StartInstance"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->StartInstance(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +NotebookServiceTracingConnection::StartInstance( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "notebooks_v1::NotebookServiceConnection::StartInstance"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->StartInstance(ExperimentalTag{}, operation)); +} + future> NotebookServiceTracingConnection::StopInstance( google::cloud::notebooks::v1::StopInstanceRequest const& request) { @@ -160,6 +359,27 @@ NotebookServiceTracingConnection::StopInstance( return internal::EndSpan(std::move(span), child_->StopInstance(request)); } +StatusOr +NotebookServiceTracingConnection::StopInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v1::StopInstanceRequest const& request) { + auto span = internal::MakeSpan( + "notebooks_v1::NotebookServiceConnection::StopInstance"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->StopInstance(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +NotebookServiceTracingConnection::StopInstance( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "notebooks_v1::NotebookServiceConnection::StopInstance"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->StopInstance(ExperimentalTag{}, operation)); +} + future> NotebookServiceTracingConnection::ResetInstance( google::cloud::notebooks::v1::ResetInstanceRequest const& request) { @@ -169,6 +389,27 @@ NotebookServiceTracingConnection::ResetInstance( return internal::EndSpan(std::move(span), child_->ResetInstance(request)); } +StatusOr +NotebookServiceTracingConnection::ResetInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v1::ResetInstanceRequest const& request) { + auto span = internal::MakeSpan( + "notebooks_v1::NotebookServiceConnection::ResetInstance"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->ResetInstance(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +NotebookServiceTracingConnection::ResetInstance( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "notebooks_v1::NotebookServiceConnection::ResetInstance"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->ResetInstance(ExperimentalTag{}, operation)); +} + future> NotebookServiceTracingConnection::ReportInstanceInfo( google::cloud::notebooks::v1::ReportInstanceInfoRequest const& request) { @@ -179,6 +420,28 @@ NotebookServiceTracingConnection::ReportInstanceInfo( child_->ReportInstanceInfo(request)); } +StatusOr +NotebookServiceTracingConnection::ReportInstanceInfo( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v1::ReportInstanceInfoRequest const& request) { + auto span = internal::MakeSpan( + "notebooks_v1::NotebookServiceConnection::ReportInstanceInfo"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->ReportInstanceInfo(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +NotebookServiceTracingConnection::ReportInstanceInfo( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "notebooks_v1::NotebookServiceConnection::ReportInstanceInfo"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->ReportInstanceInfo( + ExperimentalTag{}, operation)); +} + StatusOr NotebookServiceTracingConnection::IsInstanceUpgradeable( google::cloud::notebooks::v1::IsInstanceUpgradeableRequest const& request) { @@ -206,6 +469,27 @@ NotebookServiceTracingConnection::UpgradeInstance( return internal::EndSpan(std::move(span), child_->UpgradeInstance(request)); } +StatusOr +NotebookServiceTracingConnection::UpgradeInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v1::UpgradeInstanceRequest const& request) { + auto span = internal::MakeSpan( + "notebooks_v1::NotebookServiceConnection::UpgradeInstance"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->UpgradeInstance(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +NotebookServiceTracingConnection::UpgradeInstance( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "notebooks_v1::NotebookServiceConnection::UpgradeInstance"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->UpgradeInstance(ExperimentalTag{}, operation)); +} + future> NotebookServiceTracingConnection::RollbackInstance( google::cloud::notebooks::v1::RollbackInstanceRequest const& request) { @@ -215,6 +499,28 @@ NotebookServiceTracingConnection::RollbackInstance( return internal::EndSpan(std::move(span), child_->RollbackInstance(request)); } +StatusOr +NotebookServiceTracingConnection::RollbackInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v1::RollbackInstanceRequest const& request) { + auto span = internal::MakeSpan( + "notebooks_v1::NotebookServiceConnection::RollbackInstance"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->RollbackInstance(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +NotebookServiceTracingConnection::RollbackInstance( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "notebooks_v1::NotebookServiceConnection::RollbackInstance"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->RollbackInstance(ExperimentalTag{}, operation)); +} + future> NotebookServiceTracingConnection::DiagnoseInstance( google::cloud::notebooks::v1::DiagnoseInstanceRequest const& request) { @@ -224,6 +530,28 @@ NotebookServiceTracingConnection::DiagnoseInstance( return internal::EndSpan(std::move(span), child_->DiagnoseInstance(request)); } +StatusOr +NotebookServiceTracingConnection::DiagnoseInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v1::DiagnoseInstanceRequest const& request) { + auto span = internal::MakeSpan( + "notebooks_v1::NotebookServiceConnection::DiagnoseInstance"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->DiagnoseInstance(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +NotebookServiceTracingConnection::DiagnoseInstance( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "notebooks_v1::NotebookServiceConnection::DiagnoseInstance"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->DiagnoseInstance(ExperimentalTag{}, operation)); +} + future> NotebookServiceTracingConnection::UpgradeInstanceInternal( google::cloud::notebooks::v1::UpgradeInstanceInternalRequest const& @@ -235,6 +563,29 @@ NotebookServiceTracingConnection::UpgradeInstanceInternal( child_->UpgradeInstanceInternal(request)); } +StatusOr +NotebookServiceTracingConnection::UpgradeInstanceInternal( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v1::UpgradeInstanceInternalRequest const& + request) { + auto span = internal::MakeSpan( + "notebooks_v1::NotebookServiceConnection::UpgradeInstanceInternal"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->UpgradeInstanceInternal(ExperimentalTag{}, NoAwaitTag{}, + request)); +} + +future> +NotebookServiceTracingConnection::UpgradeInstanceInternal( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "notebooks_v1::NotebookServiceConnection::UpgradeInstanceInternal"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->UpgradeInstanceInternal( + ExperimentalTag{}, operation)); +} + StreamRange NotebookServiceTracingConnection::ListEnvironments( google::cloud::notebooks::v1::ListEnvironmentsRequest request) { @@ -265,6 +616,28 @@ NotebookServiceTracingConnection::CreateEnvironment( return internal::EndSpan(std::move(span), child_->CreateEnvironment(request)); } +StatusOr +NotebookServiceTracingConnection::CreateEnvironment( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v1::CreateEnvironmentRequest const& request) { + auto span = internal::MakeSpan( + "notebooks_v1::NotebookServiceConnection::CreateEnvironment"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->CreateEnvironment(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +NotebookServiceTracingConnection::CreateEnvironment( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "notebooks_v1::NotebookServiceConnection::CreateEnvironment"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->CreateEnvironment(ExperimentalTag{}, operation)); +} + future> NotebookServiceTracingConnection::DeleteEnvironment( google::cloud::notebooks::v1::DeleteEnvironmentRequest const& request) { @@ -274,6 +647,28 @@ NotebookServiceTracingConnection::DeleteEnvironment( return internal::EndSpan(std::move(span), child_->DeleteEnvironment(request)); } +StatusOr +NotebookServiceTracingConnection::DeleteEnvironment( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v1::DeleteEnvironmentRequest const& request) { + auto span = internal::MakeSpan( + "notebooks_v1::NotebookServiceConnection::DeleteEnvironment"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->DeleteEnvironment(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +NotebookServiceTracingConnection::DeleteEnvironment( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "notebooks_v1::NotebookServiceConnection::DeleteEnvironment"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->DeleteEnvironment(ExperimentalTag{}, operation)); +} + StreamRange NotebookServiceTracingConnection::ListSchedules( google::cloud::notebooks::v1::ListSchedulesRequest request) { @@ -303,6 +698,27 @@ NotebookServiceTracingConnection::DeleteSchedule( return internal::EndSpan(std::move(span), child_->DeleteSchedule(request)); } +StatusOr +NotebookServiceTracingConnection::DeleteSchedule( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v1::DeleteScheduleRequest const& request) { + auto span = internal::MakeSpan( + "notebooks_v1::NotebookServiceConnection::DeleteSchedule"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->DeleteSchedule(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +NotebookServiceTracingConnection::DeleteSchedule( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "notebooks_v1::NotebookServiceConnection::DeleteSchedule"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->DeleteSchedule(ExperimentalTag{}, operation)); +} + future> NotebookServiceTracingConnection::CreateSchedule( google::cloud::notebooks::v1::CreateScheduleRequest const& request) { @@ -312,6 +728,27 @@ NotebookServiceTracingConnection::CreateSchedule( return internal::EndSpan(std::move(span), child_->CreateSchedule(request)); } +StatusOr +NotebookServiceTracingConnection::CreateSchedule( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v1::CreateScheduleRequest const& request) { + auto span = internal::MakeSpan( + "notebooks_v1::NotebookServiceConnection::CreateSchedule"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->CreateSchedule(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +NotebookServiceTracingConnection::CreateSchedule( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "notebooks_v1::NotebookServiceConnection::CreateSchedule"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->CreateSchedule(ExperimentalTag{}, operation)); +} + future> NotebookServiceTracingConnection::TriggerSchedule( google::cloud::notebooks::v1::TriggerScheduleRequest const& request) { @@ -321,6 +758,27 @@ NotebookServiceTracingConnection::TriggerSchedule( return internal::EndSpan(std::move(span), child_->TriggerSchedule(request)); } +StatusOr +NotebookServiceTracingConnection::TriggerSchedule( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v1::TriggerScheduleRequest const& request) { + auto span = internal::MakeSpan( + "notebooks_v1::NotebookServiceConnection::TriggerSchedule"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->TriggerSchedule(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +NotebookServiceTracingConnection::TriggerSchedule( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "notebooks_v1::NotebookServiceConnection::TriggerSchedule"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->TriggerSchedule(ExperimentalTag{}, operation)); +} + StreamRange NotebookServiceTracingConnection::ListExecutions( google::cloud::notebooks::v1::ListExecutionsRequest request) { @@ -350,6 +808,27 @@ NotebookServiceTracingConnection::DeleteExecution( return internal::EndSpan(std::move(span), child_->DeleteExecution(request)); } +StatusOr +NotebookServiceTracingConnection::DeleteExecution( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v1::DeleteExecutionRequest const& request) { + auto span = internal::MakeSpan( + "notebooks_v1::NotebookServiceConnection::DeleteExecution"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->DeleteExecution(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +NotebookServiceTracingConnection::DeleteExecution( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "notebooks_v1::NotebookServiceConnection::DeleteExecution"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->DeleteExecution(ExperimentalTag{}, operation)); +} + future> NotebookServiceTracingConnection::CreateExecution( google::cloud::notebooks::v1::CreateExecutionRequest const& request) { @@ -359,6 +838,27 @@ NotebookServiceTracingConnection::CreateExecution( return internal::EndSpan(std::move(span), child_->CreateExecution(request)); } +StatusOr +NotebookServiceTracingConnection::CreateExecution( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v1::CreateExecutionRequest const& request) { + auto span = internal::MakeSpan( + "notebooks_v1::NotebookServiceConnection::CreateExecution"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->CreateExecution(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +NotebookServiceTracingConnection::CreateExecution( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "notebooks_v1::NotebookServiceConnection::CreateExecution"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->CreateExecution(ExperimentalTag{}, operation)); +} + #endif // GOOGLE_CLOUD_CPP_HAVE_OPENTELEMETRY std::shared_ptr diff --git a/google/cloud/notebooks/v1/internal/notebook_tracing_connection.h b/google/cloud/notebooks/v1/internal/notebook_tracing_connection.h index caadab989f5c2..54789d4ea8a50 100644 --- a/google/cloud/notebooks/v1/internal/notebook_tracing_connection.h +++ b/google/cloud/notebooks/v1/internal/notebook_tracing_connection.h @@ -50,33 +50,99 @@ class NotebookServiceTracingConnection google::cloud::notebooks::v1::CreateInstanceRequest const& request) override; + StatusOr CreateInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v1::CreateInstanceRequest const& request) + override; + + future> CreateInstance( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> RegisterInstance( google::cloud::notebooks::v1::RegisterInstanceRequest const& request) override; + StatusOr RegisterInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v1::RegisterInstanceRequest const& request) + override; + + future> RegisterInstance( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> SetInstanceAccelerator( google::cloud::notebooks::v1::SetInstanceAcceleratorRequest const& request) override; + StatusOr SetInstanceAccelerator( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v1::SetInstanceAcceleratorRequest const& + request) override; + + future> + SetInstanceAccelerator( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> SetInstanceMachineType( google::cloud::notebooks::v1::SetInstanceMachineTypeRequest const& request) override; + StatusOr SetInstanceMachineType( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v1::SetInstanceMachineTypeRequest const& + request) override; + + future> + SetInstanceMachineType( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateInstanceConfig( google::cloud::notebooks::v1::UpdateInstanceConfigRequest const& request) override; + StatusOr UpdateInstanceConfig( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v1::UpdateInstanceConfigRequest const& request) + override; + + future> UpdateInstanceConfig( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateShieldedInstanceConfig( google::cloud::notebooks::v1::UpdateShieldedInstanceConfigRequest const& request) override; + StatusOr UpdateShieldedInstanceConfig( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v1::UpdateShieldedInstanceConfigRequest const& + request) override; + + future> + UpdateShieldedInstanceConfig( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> SetInstanceLabels( google::cloud::notebooks::v1::SetInstanceLabelsRequest const& request) override; + StatusOr SetInstanceLabels( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v1::SetInstanceLabelsRequest const& request) + override; + + future> SetInstanceLabels( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr UpdateInstanceMetadataItems( google::cloud::notebooks::v1::UpdateInstanceMetadataItemsRequest const& @@ -86,22 +152,67 @@ class NotebookServiceTracingConnection DeleteInstance(google::cloud::notebooks::v1::DeleteInstanceRequest const& request) override; + StatusOr DeleteInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v1::DeleteInstanceRequest const& request) + override; + + future> + DeleteInstance(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> StartInstance( google::cloud::notebooks::v1::StartInstanceRequest const& request) override; + StatusOr StartInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v1::StartInstanceRequest const& request) + override; + + future> StartInstance( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> StopInstance( google::cloud::notebooks::v1::StopInstanceRequest const& request) override; + StatusOr StopInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v1::StopInstanceRequest const& request) + override; + + future> StopInstance( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ResetInstance( google::cloud::notebooks::v1::ResetInstanceRequest const& request) override; + StatusOr ResetInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v1::ResetInstanceRequest const& request) + override; + + future> ResetInstance( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ReportInstanceInfo( google::cloud::notebooks::v1::ReportInstanceInfoRequest const& request) override; + StatusOr ReportInstanceInfo( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v1::ReportInstanceInfoRequest const& request) + override; + + future> ReportInstanceInfo( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr IsInstanceUpgradeable( google::cloud::notebooks::v1::IsInstanceUpgradeableRequest const& request) @@ -116,19 +227,56 @@ class NotebookServiceTracingConnection google::cloud::notebooks::v1::UpgradeInstanceRequest const& request) override; + StatusOr UpgradeInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v1::UpgradeInstanceRequest const& request) + override; + + future> UpgradeInstance( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> RollbackInstance( google::cloud::notebooks::v1::RollbackInstanceRequest const& request) override; + StatusOr RollbackInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v1::RollbackInstanceRequest const& request) + override; + + future> RollbackInstance( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DiagnoseInstance( google::cloud::notebooks::v1::DiagnoseInstanceRequest const& request) override; + StatusOr DiagnoseInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v1::DiagnoseInstanceRequest const& request) + override; + + future> DiagnoseInstance( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpgradeInstanceInternal( google::cloud::notebooks::v1::UpgradeInstanceInternalRequest const& request) override; + StatusOr UpgradeInstanceInternal( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v1::UpgradeInstanceInternalRequest const& + request) override; + + future> + UpgradeInstanceInternal( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListEnvironments( google::cloud::notebooks::v1::ListEnvironmentsRequest request) override; @@ -140,11 +288,29 @@ class NotebookServiceTracingConnection google::cloud::notebooks::v1::CreateEnvironmentRequest const& request) override; + StatusOr CreateEnvironment( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v1::CreateEnvironmentRequest const& request) + override; + + future> CreateEnvironment( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteEnvironment( google::cloud::notebooks::v1::DeleteEnvironmentRequest const& request) override; + StatusOr DeleteEnvironment( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v1::DeleteEnvironmentRequest const& request) + override; + + future> + DeleteEnvironment(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListSchedules( google::cloud::notebooks::v1::ListSchedulesRequest request) override; @@ -155,14 +321,41 @@ class NotebookServiceTracingConnection DeleteSchedule(google::cloud::notebooks::v1::DeleteScheduleRequest const& request) override; + StatusOr DeleteSchedule( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v1::DeleteScheduleRequest const& request) + override; + + future> + DeleteSchedule(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> CreateSchedule( google::cloud::notebooks::v1::CreateScheduleRequest const& request) override; + StatusOr CreateSchedule( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v1::CreateScheduleRequest const& request) + override; + + future> CreateSchedule( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> TriggerSchedule( google::cloud::notebooks::v1::TriggerScheduleRequest const& request) override; + StatusOr TriggerSchedule( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v1::TriggerScheduleRequest const& request) + override; + + future> TriggerSchedule( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListExecutions( google::cloud::notebooks::v1::ListExecutionsRequest request) override; @@ -174,10 +367,28 @@ class NotebookServiceTracingConnection DeleteExecution(google::cloud::notebooks::v1::DeleteExecutionRequest const& request) override; + StatusOr DeleteExecution( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v1::DeleteExecutionRequest const& request) + override; + + future> + DeleteExecution(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> CreateExecution( google::cloud::notebooks::v1::CreateExecutionRequest const& request) override; + StatusOr CreateExecution( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v1::CreateExecutionRequest const& request) + override; + + future> CreateExecution( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + private: std::shared_ptr child_; }; diff --git a/google/cloud/notebooks/v1/managed_notebook_connection.cc b/google/cloud/notebooks/v1/managed_notebook_connection.cc index bdf11688defda..c37ebbb2857c6 100644 --- a/google/cloud/notebooks/v1/managed_notebook_connection.cc +++ b/google/cloud/notebooks/v1/managed_notebook_connection.cc @@ -60,9 +60,41 @@ ManagedNotebookServiceConnection::CreateRuntime( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +ManagedNotebookServiceConnection::CreateRuntime( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v1::CreateRuntimeRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> +ManagedNotebookServiceConnection::CreateRuntime( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +ManagedNotebookServiceConnection::UpdateRuntime( + google::cloud::notebooks::v1::UpdateRuntimeRequest const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +StatusOr ManagedNotebookServiceConnection::UpdateRuntime( + ExperimentalTag, NoAwaitTag, google::cloud::notebooks::v1::UpdateRuntimeRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +ManagedNotebookServiceConnection::UpdateRuntime( + ExperimentalTag, google::longrunning::Operation const&) { return google::cloud::make_ready_future< StatusOr>( Status(StatusCode::kUnimplemented, "not implemented")); @@ -76,6 +108,22 @@ ManagedNotebookServiceConnection::DeleteRuntime( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +ManagedNotebookServiceConnection::DeleteRuntime( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v1::DeleteRuntimeRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +ManagedNotebookServiceConnection::DeleteRuntime( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> ManagedNotebookServiceConnection::StartRuntime( google::cloud::notebooks::v1::StartRuntimeRequest const&) { @@ -84,6 +132,22 @@ ManagedNotebookServiceConnection::StartRuntime( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +ManagedNotebookServiceConnection::StartRuntime( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v1::StartRuntimeRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +ManagedNotebookServiceConnection::StartRuntime( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> ManagedNotebookServiceConnection::StopRuntime( google::cloud::notebooks::v1::StopRuntimeRequest const&) { @@ -92,6 +156,22 @@ ManagedNotebookServiceConnection::StopRuntime( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +ManagedNotebookServiceConnection::StopRuntime( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v1::StopRuntimeRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +ManagedNotebookServiceConnection::StopRuntime( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> ManagedNotebookServiceConnection::SwitchRuntime( google::cloud::notebooks::v1::SwitchRuntimeRequest const&) { @@ -100,9 +180,41 @@ ManagedNotebookServiceConnection::SwitchRuntime( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +ManagedNotebookServiceConnection::SwitchRuntime( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v1::SwitchRuntimeRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> +ManagedNotebookServiceConnection::SwitchRuntime( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +ManagedNotebookServiceConnection::ResetRuntime( + google::cloud::notebooks::v1::ResetRuntimeRequest const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +StatusOr ManagedNotebookServiceConnection::ResetRuntime( + ExperimentalTag, NoAwaitTag, google::cloud::notebooks::v1::ResetRuntimeRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +ManagedNotebookServiceConnection::ResetRuntime( + ExperimentalTag, google::longrunning::Operation const&) { return google::cloud::make_ready_future< StatusOr>( Status(StatusCode::kUnimplemented, "not implemented")); @@ -116,6 +228,22 @@ ManagedNotebookServiceConnection::UpgradeRuntime( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +ManagedNotebookServiceConnection::UpgradeRuntime( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v1::UpgradeRuntimeRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +ManagedNotebookServiceConnection::UpgradeRuntime( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> ManagedNotebookServiceConnection::ReportRuntimeEvent( google::cloud::notebooks::v1::ReportRuntimeEventRequest const&) { @@ -124,6 +252,22 @@ ManagedNotebookServiceConnection::ReportRuntimeEvent( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +ManagedNotebookServiceConnection::ReportRuntimeEvent( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v1::ReportRuntimeEventRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +ManagedNotebookServiceConnection::ReportRuntimeEvent( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr ManagedNotebookServiceConnection::RefreshRuntimeTokenInternal( google::cloud::notebooks::v1::RefreshRuntimeTokenInternalRequest const&) { @@ -138,6 +282,22 @@ ManagedNotebookServiceConnection::DiagnoseRuntime( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +ManagedNotebookServiceConnection::DiagnoseRuntime( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v1::DiagnoseRuntimeRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +ManagedNotebookServiceConnection::DiagnoseRuntime( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + std::shared_ptr MakeManagedNotebookServiceConnection(Options options) { internal::CheckExpectedOptions> CreateRuntime( google::cloud::notebooks::v1::CreateRuntimeRequest const& request); + virtual StatusOr CreateRuntime( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v1::CreateRuntimeRequest const& request); + + virtual future> CreateRuntime( + ExperimentalTag, google::longrunning::Operation const& operation); + virtual future> UpdateRuntime( google::cloud::notebooks::v1::UpdateRuntimeRequest const& request); + virtual StatusOr UpdateRuntime( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v1::UpdateRuntimeRequest const& request); + + virtual future> UpdateRuntime( + ExperimentalTag, google::longrunning::Operation const& operation); + virtual future> DeleteRuntime( google::cloud::notebooks::v1::DeleteRuntimeRequest const& request); + virtual StatusOr DeleteRuntime( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v1::DeleteRuntimeRequest const& request); + + virtual future> + DeleteRuntime(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> StartRuntime( google::cloud::notebooks::v1::StartRuntimeRequest const& request); + virtual StatusOr StartRuntime( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v1::StartRuntimeRequest const& request); + + virtual future> StartRuntime( + ExperimentalTag, google::longrunning::Operation const& operation); + virtual future> StopRuntime( google::cloud::notebooks::v1::StopRuntimeRequest const& request); + virtual StatusOr StopRuntime( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v1::StopRuntimeRequest const& request); + + virtual future> StopRuntime( + ExperimentalTag, google::longrunning::Operation const& operation); + virtual future> SwitchRuntime( google::cloud::notebooks::v1::SwitchRuntimeRequest const& request); + virtual StatusOr SwitchRuntime( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v1::SwitchRuntimeRequest const& request); + + virtual future> SwitchRuntime( + ExperimentalTag, google::longrunning::Operation const& operation); + virtual future> ResetRuntime( google::cloud::notebooks::v1::ResetRuntimeRequest const& request); + virtual StatusOr ResetRuntime( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v1::ResetRuntimeRequest const& request); + + virtual future> ResetRuntime( + ExperimentalTag, google::longrunning::Operation const& operation); + virtual future> UpgradeRuntime( google::cloud::notebooks::v1::UpgradeRuntimeRequest const& request); + virtual StatusOr UpgradeRuntime( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v1::UpgradeRuntimeRequest const& request); + + virtual future> + UpgradeRuntime(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> ReportRuntimeEvent( google::cloud::notebooks::v1::ReportRuntimeEventRequest const& request); + virtual StatusOr ReportRuntimeEvent( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v1::ReportRuntimeEventRequest const& request); + + virtual future> + ReportRuntimeEvent(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StatusOr< google::cloud::notebooks::v1::RefreshRuntimeTokenInternalResponse> RefreshRuntimeTokenInternal( @@ -237,6 +305,14 @@ class ManagedNotebookServiceConnection { virtual future> DiagnoseRuntime( google::cloud::notebooks::v1::DiagnoseRuntimeRequest const& request); + + virtual StatusOr DiagnoseRuntime( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v1::DiagnoseRuntimeRequest const& request); + + virtual future> + DiagnoseRuntime(ExperimentalTag, + google::longrunning::Operation const& operation); }; /** diff --git a/google/cloud/notebooks/v1/mocks/mock_managed_notebook_connection.h b/google/cloud/notebooks/v1/mocks/mock_managed_notebook_connection.h index 87cd5f056ceae..d94c531d91c90 100644 --- a/google/cloud/notebooks/v1/mocks/mock_managed_notebook_connection.h +++ b/google/cloud/notebooks/v1/mocks/mock_managed_notebook_connection.h @@ -61,48 +61,155 @@ class MockManagedNotebookServiceConnection (google::cloud::notebooks::v1::CreateRuntimeRequest const& request), (override)); + MOCK_METHOD( + StatusOr, CreateRuntime, + (ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v1::CreateRuntimeRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateRuntime, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, UpdateRuntime, (google::cloud::notebooks::v1::UpdateRuntimeRequest const& request), (override)); + MOCK_METHOD( + StatusOr, UpdateRuntime, + (ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v1::UpdateRuntimeRequest const& request), + (override)); + + MOCK_METHOD(future>, + UpdateRuntime, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteRuntime, (google::cloud::notebooks::v1::DeleteRuntimeRequest const& request), (override)); + MOCK_METHOD( + StatusOr, DeleteRuntime, + (ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v1::DeleteRuntimeRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteRuntime, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, StartRuntime, (google::cloud::notebooks::v1::StartRuntimeRequest const& request), (override)); + MOCK_METHOD( + StatusOr, StartRuntime, + (ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v1::StartRuntimeRequest const& request), + (override)); + + MOCK_METHOD(future>, + StartRuntime, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, StopRuntime, (google::cloud::notebooks::v1::StopRuntimeRequest const& request), (override)); + MOCK_METHOD(StatusOr, StopRuntime, + (ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v1::StopRuntimeRequest const& request), + (override)); + + MOCK_METHOD(future>, + StopRuntime, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, SwitchRuntime, (google::cloud::notebooks::v1::SwitchRuntimeRequest const& request), (override)); + MOCK_METHOD( + StatusOr, SwitchRuntime, + (ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v1::SwitchRuntimeRequest const& request), + (override)); + + MOCK_METHOD(future>, + SwitchRuntime, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, ResetRuntime, (google::cloud::notebooks::v1::ResetRuntimeRequest const& request), (override)); + MOCK_METHOD( + StatusOr, ResetRuntime, + (ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v1::ResetRuntimeRequest const& request), + (override)); + + MOCK_METHOD(future>, + ResetRuntime, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, UpgradeRuntime, (google::cloud::notebooks::v1::UpgradeRuntimeRequest const& request), (override)); + MOCK_METHOD( + StatusOr, UpgradeRuntime, + (ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v1::UpgradeRuntimeRequest const& request), + (override)); + + MOCK_METHOD(future>, + UpgradeRuntime, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, ReportRuntimeEvent, (google::cloud::notebooks::v1::ReportRuntimeEventRequest const& request), (override)); + MOCK_METHOD( + StatusOr, ReportRuntimeEvent, + (ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v1::ReportRuntimeEventRequest const& request), + (override)); + + MOCK_METHOD(future>, + ReportRuntimeEvent, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr< google::cloud::notebooks::v1::RefreshRuntimeTokenInternalResponse>, @@ -115,6 +222,18 @@ class MockManagedNotebookServiceConnection future>, DiagnoseRuntime, (google::cloud::notebooks::v1::DiagnoseRuntimeRequest const& request), (override)); + + MOCK_METHOD( + StatusOr, DiagnoseRuntime, + (ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v1::DiagnoseRuntimeRequest const& request), + (override)); + + MOCK_METHOD(future>, + DiagnoseRuntime, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); }; GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END diff --git a/google/cloud/notebooks/v1/mocks/mock_notebook_connection.h b/google/cloud/notebooks/v1/mocks/mock_notebook_connection.h index 09a555efcda2e..7c3a9892fa06e 100644 --- a/google/cloud/notebooks/v1/mocks/mock_notebook_connection.h +++ b/google/cloud/notebooks/v1/mocks/mock_notebook_connection.h @@ -61,12 +61,36 @@ class MockNotebookServiceConnection (google::cloud::notebooks::v1::CreateInstanceRequest const& request), (override)); + MOCK_METHOD( + StatusOr, CreateInstance, + (ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v1::CreateInstanceRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateInstance, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, RegisterInstance, (google::cloud::notebooks::v1::RegisterInstanceRequest const& request), (override)); + MOCK_METHOD( + StatusOr, RegisterInstance, + (ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v1::RegisterInstanceRequest const& request), + (override)); + + MOCK_METHOD(future>, + RegisterInstance, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, SetInstanceAccelerator, @@ -74,6 +98,19 @@ class MockNotebookServiceConnection request), (override)); + MOCK_METHOD( + StatusOr, SetInstanceAccelerator, + (ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v1::SetInstanceAcceleratorRequest const& + request), + (override)); + + MOCK_METHOD(future>, + SetInstanceAccelerator, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, SetInstanceMachineType, @@ -81,12 +118,37 @@ class MockNotebookServiceConnection request), (override)); + MOCK_METHOD( + StatusOr, SetInstanceMachineType, + (ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v1::SetInstanceMachineTypeRequest const& + request), + (override)); + + MOCK_METHOD(future>, + SetInstanceMachineType, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, UpdateInstanceConfig, (google::cloud::notebooks::v1::UpdateInstanceConfigRequest const& request), (override)); + MOCK_METHOD(StatusOr, UpdateInstanceConfig, + (ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v1::UpdateInstanceConfigRequest const& + request), + (override)); + + MOCK_METHOD(future>, + UpdateInstanceConfig, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, UpdateShieldedInstanceConfig, @@ -94,12 +156,37 @@ class MockNotebookServiceConnection request), (override)); + MOCK_METHOD( + StatusOr, UpdateShieldedInstanceConfig, + (ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v1::UpdateShieldedInstanceConfigRequest const& + request), + (override)); + + MOCK_METHOD(future>, + UpdateShieldedInstanceConfig, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, SetInstanceLabels, (google::cloud::notebooks::v1::SetInstanceLabelsRequest const& request), (override)); + MOCK_METHOD( + StatusOr, SetInstanceLabels, + (ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v1::SetInstanceLabelsRequest const& request), + (override)); + + MOCK_METHOD(future>, + SetInstanceLabels, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr< google::cloud::notebooks::v1::UpdateInstanceMetadataItemsResponse>, @@ -114,27 +201,87 @@ class MockNotebookServiceConnection (google::cloud::notebooks::v1::DeleteInstanceRequest const& request), (override)); + MOCK_METHOD( + StatusOr, DeleteInstance, + (ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v1::DeleteInstanceRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteInstance, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, StartInstance, (google::cloud::notebooks::v1::StartInstanceRequest const& request), (override)); + MOCK_METHOD( + StatusOr, StartInstance, + (ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v1::StartInstanceRequest const& request), + (override)); + + MOCK_METHOD(future>, + StartInstance, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, StopInstance, (google::cloud::notebooks::v1::StopInstanceRequest const& request), (override)); + MOCK_METHOD( + StatusOr, StopInstance, + (ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v1::StopInstanceRequest const& request), + (override)); + + MOCK_METHOD(future>, + StopInstance, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, ResetInstance, (google::cloud::notebooks::v1::ResetInstanceRequest const& request), (override)); + MOCK_METHOD( + StatusOr, ResetInstance, + (ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v1::ResetInstanceRequest const& request), + (override)); + + MOCK_METHOD(future>, + ResetInstance, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, ReportInstanceInfo, (google::cloud::notebooks::v1::ReportInstanceInfoRequest const& request), (override)); + MOCK_METHOD( + StatusOr, ReportInstanceInfo, + (ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v1::ReportInstanceInfoRequest const& request), + (override)); + + MOCK_METHOD(future>, + ReportInstanceInfo, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr, IsInstanceUpgradeable, @@ -153,18 +300,54 @@ class MockNotebookServiceConnection (google::cloud::notebooks::v1::UpgradeInstanceRequest const& request), (override)); + MOCK_METHOD( + StatusOr, UpgradeInstance, + (ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v1::UpgradeInstanceRequest const& request), + (override)); + + MOCK_METHOD(future>, + UpgradeInstance, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, RollbackInstance, (google::cloud::notebooks::v1::RollbackInstanceRequest const& request), (override)); + MOCK_METHOD( + StatusOr, RollbackInstance, + (ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v1::RollbackInstanceRequest const& request), + (override)); + + MOCK_METHOD(future>, + RollbackInstance, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DiagnoseInstance, (google::cloud::notebooks::v1::DiagnoseInstanceRequest const& request), (override)); + MOCK_METHOD( + StatusOr, DiagnoseInstance, + (ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v1::DiagnoseInstanceRequest const& request), + (override)); + + MOCK_METHOD(future>, + DiagnoseInstance, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, UpgradeInstanceInternal, @@ -172,6 +355,19 @@ class MockNotebookServiceConnection request), (override)); + MOCK_METHOD( + StatusOr, UpgradeInstanceInternal, + (ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v1::UpgradeInstanceInternalRequest const& + request), + (override)); + + MOCK_METHOD(future>, + UpgradeInstanceInternal, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD((StreamRange), ListEnvironments, (google::cloud::notebooks::v1::ListEnvironmentsRequest request), @@ -188,12 +384,36 @@ class MockNotebookServiceConnection (google::cloud::notebooks::v1::CreateEnvironmentRequest const& request), (override)); + MOCK_METHOD( + StatusOr, CreateEnvironment, + (ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v1::CreateEnvironmentRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateEnvironment, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteEnvironment, (google::cloud::notebooks::v1::DeleteEnvironmentRequest const& request), (override)); + MOCK_METHOD( + StatusOr, DeleteEnvironment, + (ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v1::DeleteEnvironmentRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteEnvironment, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD((StreamRange), ListSchedules, (google::cloud::notebooks::v1::ListSchedulesRequest request), @@ -209,16 +429,52 @@ class MockNotebookServiceConnection (google::cloud::notebooks::v1::DeleteScheduleRequest const& request), (override)); + MOCK_METHOD( + StatusOr, DeleteSchedule, + (ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v1::DeleteScheduleRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteSchedule, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, CreateSchedule, (google::cloud::notebooks::v1::CreateScheduleRequest const& request), (override)); + MOCK_METHOD( + StatusOr, CreateSchedule, + (ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v1::CreateScheduleRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateSchedule, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, TriggerSchedule, (google::cloud::notebooks::v1::TriggerScheduleRequest const& request), (override)); + MOCK_METHOD( + StatusOr, TriggerSchedule, + (ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v1::TriggerScheduleRequest const& request), + (override)); + + MOCK_METHOD(future>, + TriggerSchedule, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD((StreamRange), ListExecutions, (google::cloud::notebooks::v1::ListExecutionsRequest request), @@ -235,11 +491,35 @@ class MockNotebookServiceConnection (google::cloud::notebooks::v1::DeleteExecutionRequest const& request), (override)); + MOCK_METHOD( + StatusOr, DeleteExecution, + (ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v1::DeleteExecutionRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteExecution, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, CreateExecution, (google::cloud::notebooks::v1::CreateExecutionRequest const& request), (override)); + + MOCK_METHOD( + StatusOr, CreateExecution, + (ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v1::CreateExecutionRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateExecution, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); }; GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END diff --git a/google/cloud/notebooks/v1/notebook_connection.cc b/google/cloud/notebooks/v1/notebook_connection.cc index 0f4c22a91fc4b..ffca39f9e9378 100644 --- a/google/cloud/notebooks/v1/notebook_connection.cc +++ b/google/cloud/notebooks/v1/notebook_connection.cc @@ -60,6 +60,22 @@ NotebookServiceConnection::CreateInstance( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +NotebookServiceConnection::CreateInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v1::CreateInstanceRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +NotebookServiceConnection::CreateInstance( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> NotebookServiceConnection::RegisterInstance( google::cloud::notebooks::v1::RegisterInstanceRequest const&) { @@ -68,6 +84,22 @@ NotebookServiceConnection::RegisterInstance( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +NotebookServiceConnection::RegisterInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v1::RegisterInstanceRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +NotebookServiceConnection::RegisterInstance( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> NotebookServiceConnection::SetInstanceAccelerator( google::cloud::notebooks::v1::SetInstanceAcceleratorRequest const&) { @@ -76,6 +108,22 @@ NotebookServiceConnection::SetInstanceAccelerator( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +NotebookServiceConnection::SetInstanceAccelerator( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v1::SetInstanceAcceleratorRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +NotebookServiceConnection::SetInstanceAccelerator( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> NotebookServiceConnection::SetInstanceMachineType( google::cloud::notebooks::v1::SetInstanceMachineTypeRequest const&) { @@ -84,9 +132,41 @@ NotebookServiceConnection::SetInstanceMachineType( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +NotebookServiceConnection::SetInstanceMachineType( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v1::SetInstanceMachineTypeRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> +NotebookServiceConnection::SetInstanceMachineType( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +NotebookServiceConnection::UpdateInstanceConfig( + google::cloud::notebooks::v1::UpdateInstanceConfigRequest const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +StatusOr NotebookServiceConnection::UpdateInstanceConfig( + ExperimentalTag, NoAwaitTag, google::cloud::notebooks::v1::UpdateInstanceConfigRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +NotebookServiceConnection::UpdateInstanceConfig( + ExperimentalTag, google::longrunning::Operation const&) { return google::cloud::make_ready_future< StatusOr>( Status(StatusCode::kUnimplemented, "not implemented")); @@ -100,6 +180,22 @@ NotebookServiceConnection::UpdateShieldedInstanceConfig( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +NotebookServiceConnection::UpdateShieldedInstanceConfig( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v1::UpdateShieldedInstanceConfigRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +NotebookServiceConnection::UpdateShieldedInstanceConfig( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> NotebookServiceConnection::SetInstanceLabels( google::cloud::notebooks::v1::SetInstanceLabelsRequest const&) { @@ -108,6 +204,22 @@ NotebookServiceConnection::SetInstanceLabels( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +NotebookServiceConnection::SetInstanceLabels( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v1::SetInstanceLabelsRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +NotebookServiceConnection::SetInstanceLabels( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr NotebookServiceConnection::UpdateInstanceMetadataItems( google::cloud::notebooks::v1::UpdateInstanceMetadataItemsRequest const&) { @@ -122,6 +234,22 @@ NotebookServiceConnection::DeleteInstance( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +NotebookServiceConnection::DeleteInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v1::DeleteInstanceRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +NotebookServiceConnection::DeleteInstance( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> NotebookServiceConnection::StartInstance( google::cloud::notebooks::v1::StartInstanceRequest const&) { @@ -130,6 +258,22 @@ NotebookServiceConnection::StartInstance( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +NotebookServiceConnection::StartInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v1::StartInstanceRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +NotebookServiceConnection::StartInstance( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> NotebookServiceConnection::StopInstance( google::cloud::notebooks::v1::StopInstanceRequest const&) { @@ -138,9 +282,41 @@ NotebookServiceConnection::StopInstance( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +NotebookServiceConnection::StopInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v1::StopInstanceRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> +NotebookServiceConnection::StopInstance(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +NotebookServiceConnection::ResetInstance( + google::cloud::notebooks::v1::ResetInstanceRequest const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +StatusOr NotebookServiceConnection::ResetInstance( + ExperimentalTag, NoAwaitTag, google::cloud::notebooks::v1::ResetInstanceRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +NotebookServiceConnection::ResetInstance( + ExperimentalTag, google::longrunning::Operation const&) { return google::cloud::make_ready_future< StatusOr>( Status(StatusCode::kUnimplemented, "not implemented")); @@ -154,6 +330,22 @@ NotebookServiceConnection::ReportInstanceInfo( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +NotebookServiceConnection::ReportInstanceInfo( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v1::ReportInstanceInfoRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +NotebookServiceConnection::ReportInstanceInfo( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr NotebookServiceConnection::IsInstanceUpgradeable( google::cloud::notebooks::v1::IsInstanceUpgradeableRequest const&) { @@ -174,6 +366,22 @@ NotebookServiceConnection::UpgradeInstance( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +NotebookServiceConnection::UpgradeInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v1::UpgradeInstanceRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +NotebookServiceConnection::UpgradeInstance( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> NotebookServiceConnection::RollbackInstance( google::cloud::notebooks::v1::RollbackInstanceRequest const&) { @@ -182,6 +390,22 @@ NotebookServiceConnection::RollbackInstance( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +NotebookServiceConnection::RollbackInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v1::RollbackInstanceRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +NotebookServiceConnection::RollbackInstance( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> NotebookServiceConnection::DiagnoseInstance( google::cloud::notebooks::v1::DiagnoseInstanceRequest const&) { @@ -190,6 +414,22 @@ NotebookServiceConnection::DiagnoseInstance( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +NotebookServiceConnection::DiagnoseInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v1::DiagnoseInstanceRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +NotebookServiceConnection::DiagnoseInstance( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> NotebookServiceConnection::UpgradeInstanceInternal( google::cloud::notebooks::v1::UpgradeInstanceInternalRequest const&) { @@ -198,6 +438,22 @@ NotebookServiceConnection::UpgradeInstanceInternal( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +NotebookServiceConnection::UpgradeInstanceInternal( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v1::UpgradeInstanceInternalRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +NotebookServiceConnection::UpgradeInstanceInternal( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StreamRange NotebookServiceConnection::ListEnvironments( google::cloud::notebooks::v1:: @@ -220,6 +476,22 @@ NotebookServiceConnection::CreateEnvironment( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +NotebookServiceConnection::CreateEnvironment( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v1::CreateEnvironmentRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +NotebookServiceConnection::CreateEnvironment( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> NotebookServiceConnection::DeleteEnvironment( google::cloud::notebooks::v1::DeleteEnvironmentRequest const&) { @@ -228,6 +500,22 @@ NotebookServiceConnection::DeleteEnvironment( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +NotebookServiceConnection::DeleteEnvironment( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v1::DeleteEnvironmentRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +NotebookServiceConnection::DeleteEnvironment( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StreamRange NotebookServiceConnection::ListSchedules( google::cloud::notebooks::v1:: @@ -250,6 +538,22 @@ NotebookServiceConnection::DeleteSchedule( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +NotebookServiceConnection::DeleteSchedule( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v1::DeleteScheduleRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +NotebookServiceConnection::DeleteSchedule( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> NotebookServiceConnection::CreateSchedule( google::cloud::notebooks::v1::CreateScheduleRequest const&) { @@ -258,9 +562,41 @@ NotebookServiceConnection::CreateSchedule( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +NotebookServiceConnection::CreateSchedule( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v1::CreateScheduleRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> +NotebookServiceConnection::CreateSchedule( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +NotebookServiceConnection::TriggerSchedule( + google::cloud::notebooks::v1::TriggerScheduleRequest const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +StatusOr NotebookServiceConnection::TriggerSchedule( + ExperimentalTag, NoAwaitTag, google::cloud::notebooks::v1::TriggerScheduleRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +NotebookServiceConnection::TriggerSchedule( + ExperimentalTag, google::longrunning::Operation const&) { return google::cloud::make_ready_future< StatusOr>( Status(StatusCode::kUnimplemented, "not implemented")); @@ -288,6 +624,22 @@ NotebookServiceConnection::DeleteExecution( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +NotebookServiceConnection::DeleteExecution( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v1::DeleteExecutionRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +NotebookServiceConnection::DeleteExecution( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> NotebookServiceConnection::CreateExecution( google::cloud::notebooks::v1::CreateExecutionRequest const&) { @@ -296,6 +648,22 @@ NotebookServiceConnection::CreateExecution( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +NotebookServiceConnection::CreateExecution( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v1::CreateExecutionRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +NotebookServiceConnection::CreateExecution( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + std::shared_ptr MakeNotebookServiceConnection( Options options) { internal::CheckExpectedOptions CreateInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v1::CreateInstanceRequest const& request); + + virtual future> + CreateInstance(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> RegisterInstance( google::cloud::notebooks::v1::RegisterInstanceRequest const& request); + virtual StatusOr RegisterInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v1::RegisterInstanceRequest const& request); + + virtual future> + RegisterInstance(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> SetInstanceAccelerator( google::cloud::notebooks::v1::SetInstanceAcceleratorRequest const& request); + virtual StatusOr SetInstanceAccelerator( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v1::SetInstanceAcceleratorRequest const& + request); + + virtual future> + SetInstanceAccelerator(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> SetInstanceMachineType( google::cloud::notebooks::v1::SetInstanceMachineTypeRequest const& request); + virtual StatusOr SetInstanceMachineType( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v1::SetInstanceMachineTypeRequest const& + request); + + virtual future> + SetInstanceMachineType(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> UpdateInstanceConfig( google::cloud::notebooks::v1::UpdateInstanceConfigRequest const& request); + virtual StatusOr UpdateInstanceConfig( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v1::UpdateInstanceConfigRequest const& request); + + virtual future> + UpdateInstanceConfig(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> UpdateShieldedInstanceConfig( google::cloud::notebooks::v1::UpdateShieldedInstanceConfigRequest const& request); + virtual StatusOr UpdateShieldedInstanceConfig( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v1::UpdateShieldedInstanceConfigRequest const& + request); + + virtual future> + UpdateShieldedInstanceConfig(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> SetInstanceLabels( google::cloud::notebooks::v1::SetInstanceLabelsRequest const& request); + virtual StatusOr SetInstanceLabels( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v1::SetInstanceLabelsRequest const& request); + + virtual future> + SetInstanceLabels(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StatusOr< google::cloud::notebooks::v1::UpdateInstanceMetadataItemsResponse> UpdateInstanceMetadataItems( @@ -233,21 +294,60 @@ class NotebookServiceConnection { DeleteInstance( google::cloud::notebooks::v1::DeleteInstanceRequest const& request); + virtual StatusOr DeleteInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v1::DeleteInstanceRequest const& request); + + virtual future> + DeleteInstance(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> StartInstance( google::cloud::notebooks::v1::StartInstanceRequest const& request); + virtual StatusOr StartInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v1::StartInstanceRequest const& request); + + virtual future> + StartInstance(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> StopInstance( google::cloud::notebooks::v1::StopInstanceRequest const& request); + virtual StatusOr StopInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v1::StopInstanceRequest const& request); + + virtual future> StopInstance( + ExperimentalTag, google::longrunning::Operation const& operation); + virtual future> ResetInstance( google::cloud::notebooks::v1::ResetInstanceRequest const& request); + virtual StatusOr ResetInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v1::ResetInstanceRequest const& request); + + virtual future> + ResetInstance(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> ReportInstanceInfo( google::cloud::notebooks::v1::ReportInstanceInfoRequest const& request); + virtual StatusOr ReportInstanceInfo( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v1::ReportInstanceInfoRequest const& request); + + virtual future> + ReportInstanceInfo(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StatusOr IsInstanceUpgradeable( google::cloud::notebooks::v1::IsInstanceUpgradeableRequest const& @@ -261,19 +361,52 @@ class NotebookServiceConnection { UpgradeInstance( google::cloud::notebooks::v1::UpgradeInstanceRequest const& request); + virtual StatusOr UpgradeInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v1::UpgradeInstanceRequest const& request); + + virtual future> + UpgradeInstance(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> RollbackInstance( google::cloud::notebooks::v1::RollbackInstanceRequest const& request); + virtual StatusOr RollbackInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v1::RollbackInstanceRequest const& request); + + virtual future> + RollbackInstance(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> DiagnoseInstance( google::cloud::notebooks::v1::DiagnoseInstanceRequest const& request); + virtual StatusOr DiagnoseInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v1::DiagnoseInstanceRequest const& request); + + virtual future> + DiagnoseInstance(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> UpgradeInstanceInternal( google::cloud::notebooks::v1::UpgradeInstanceInternalRequest const& request); + virtual StatusOr UpgradeInstanceInternal( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v1::UpgradeInstanceInternalRequest const& + request); + + virtual future> + UpgradeInstanceInternal(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StreamRange ListEnvironments( google::cloud::notebooks::v1::ListEnvironmentsRequest request); @@ -285,10 +418,26 @@ class NotebookServiceConnection { CreateEnvironment( google::cloud::notebooks::v1::CreateEnvironmentRequest const& request); + virtual StatusOr CreateEnvironment( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v1::CreateEnvironmentRequest const& request); + + virtual future> + CreateEnvironment(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> DeleteEnvironment( google::cloud::notebooks::v1::DeleteEnvironmentRequest const& request); + virtual StatusOr DeleteEnvironment( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v1::DeleteEnvironmentRequest const& request); + + virtual future> + DeleteEnvironment(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StreamRange ListSchedules( google::cloud::notebooks::v1::ListSchedulesRequest request); @@ -299,14 +448,38 @@ class NotebookServiceConnection { DeleteSchedule( google::cloud::notebooks::v1::DeleteScheduleRequest const& request); + virtual StatusOr DeleteSchedule( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v1::DeleteScheduleRequest const& request); + + virtual future> + DeleteSchedule(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> CreateSchedule( google::cloud::notebooks::v1::CreateScheduleRequest const& request); + virtual StatusOr CreateSchedule( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v1::CreateScheduleRequest const& request); + + virtual future> + CreateSchedule(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> TriggerSchedule( google::cloud::notebooks::v1::TriggerScheduleRequest const& request); + virtual StatusOr TriggerSchedule( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v1::TriggerScheduleRequest const& request); + + virtual future> + TriggerSchedule(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StreamRange ListExecutions( google::cloud::notebooks::v1::ListExecutionsRequest request); @@ -317,9 +490,25 @@ class NotebookServiceConnection { DeleteExecution( google::cloud::notebooks::v1::DeleteExecutionRequest const& request); + virtual StatusOr DeleteExecution( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v1::DeleteExecutionRequest const& request); + + virtual future> + DeleteExecution(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> CreateExecution( google::cloud::notebooks::v1::CreateExecutionRequest const& request); + + virtual StatusOr CreateExecution( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v1::CreateExecutionRequest const& request); + + virtual future> + CreateExecution(ExperimentalTag, + google::longrunning::Operation const& operation); }; /** diff --git a/google/cloud/notebooks/v2/internal/notebook_connection_impl.cc b/google/cloud/notebooks/v2/internal/notebook_connection_impl.cc index 05fb3ae703c35..657f27a70708a 100644 --- a/google/cloud/notebooks/v2/internal/notebook_connection_impl.cc +++ b/google/cloud/notebooks/v2/internal/notebook_connection_impl.cc @@ -153,6 +153,58 @@ NotebookServiceConnectionImpl::CreateInstance( polling_policy(*current), __func__); } +StatusOr +NotebookServiceConnectionImpl::CreateInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v2::CreateInstanceRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateInstance(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::notebooks::v2::CreateInstanceRequest const& request) { + return stub_->CreateInstance(context, options, request); + }, + *current, request, __func__); +} + +future> +NotebookServiceConnectionImpl::CreateInstance( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to CreateInstance", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::notebooks::v2::Instance>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::notebooks::v2::Instance>, + polling_policy(*current), __func__); +} + future> NotebookServiceConnectionImpl::UpdateInstance( google::cloud::notebooks::v2::UpdateInstanceRequest const& request) { @@ -192,6 +244,58 @@ NotebookServiceConnectionImpl::UpdateInstance( polling_policy(*current), __func__); } +StatusOr +NotebookServiceConnectionImpl::UpdateInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v2::UpdateInstanceRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UpdateInstance(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::notebooks::v2::UpdateInstanceRequest const& request) { + return stub_->UpdateInstance(context, options, request); + }, + *current, request, __func__); +} + +future> +NotebookServiceConnectionImpl::UpdateInstance( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to UpdateInstance", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::notebooks::v2::Instance>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::notebooks::v2::Instance>, + polling_policy(*current), __func__); +} + future> NotebookServiceConnectionImpl::DeleteInstance( google::cloud::notebooks::v2::DeleteInstanceRequest const& request) { @@ -231,6 +335,59 @@ NotebookServiceConnectionImpl::DeleteInstance( polling_policy(*current), __func__); } +StatusOr +NotebookServiceConnectionImpl::DeleteInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v2::DeleteInstanceRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteInstance(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::notebooks::v2::DeleteInstanceRequest const& request) { + return stub_->DeleteInstance(context, options, request); + }, + *current, request, __func__); +} + +future> +NotebookServiceConnectionImpl::DeleteInstance( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteInstance", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::notebooks::v2::OperationMetadata>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::cloud::notebooks::v2::OperationMetadata>, + polling_policy(*current), __func__); +} + future> NotebookServiceConnectionImpl::StartInstance( google::cloud::notebooks::v2::StartInstanceRequest const& request) { @@ -270,6 +427,58 @@ NotebookServiceConnectionImpl::StartInstance( polling_policy(*current), __func__); } +StatusOr +NotebookServiceConnectionImpl::StartInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v2::StartInstanceRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->StartInstance(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::notebooks::v2::StartInstanceRequest const& request) { + return stub_->StartInstance(context, options, request); + }, + *current, request, __func__); +} + +future> +NotebookServiceConnectionImpl::StartInstance( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to StartInstance", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::notebooks::v2::Instance>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::notebooks::v2::Instance>, + polling_policy(*current), __func__); +} + future> NotebookServiceConnectionImpl::StopInstance( google::cloud::notebooks::v2::StopInstanceRequest const& request) { @@ -309,6 +518,57 @@ NotebookServiceConnectionImpl::StopInstance( polling_policy(*current), __func__); } +StatusOr +NotebookServiceConnectionImpl::StopInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v2::StopInstanceRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->StopInstance(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::notebooks::v2::StopInstanceRequest const& request) { + return stub_->StopInstance(context, options, request); + }, + *current, request, __func__); +} + +future> +NotebookServiceConnectionImpl::StopInstance( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to StopInstance", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::notebooks::v2::Instance>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::notebooks::v2::Instance>, + polling_policy(*current), __func__); +} + future> NotebookServiceConnectionImpl::ResetInstance( google::cloud::notebooks::v2::ResetInstanceRequest const& request) { @@ -348,6 +608,58 @@ NotebookServiceConnectionImpl::ResetInstance( polling_policy(*current), __func__); } +StatusOr +NotebookServiceConnectionImpl::ResetInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v2::ResetInstanceRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->ResetInstance(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::notebooks::v2::ResetInstanceRequest const& request) { + return stub_->ResetInstance(context, options, request); + }, + *current, request, __func__); +} + +future> +NotebookServiceConnectionImpl::ResetInstance( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to ResetInstance", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::notebooks::v2::Instance>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::notebooks::v2::Instance>, + polling_policy(*current), __func__); +} + StatusOr NotebookServiceConnectionImpl::CheckInstanceUpgradability( google::cloud::notebooks::v2::CheckInstanceUpgradabilityRequest const& @@ -404,6 +716,58 @@ NotebookServiceConnectionImpl::UpgradeInstance( polling_policy(*current), __func__); } +StatusOr +NotebookServiceConnectionImpl::UpgradeInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v2::UpgradeInstanceRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UpgradeInstance(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::notebooks::v2::UpgradeInstanceRequest const& request) { + return stub_->UpgradeInstance(context, options, request); + }, + *current, request, __func__); +} + +future> +NotebookServiceConnectionImpl::UpgradeInstance( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to UpgradeInstance", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::notebooks::v2::Instance>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::notebooks::v2::Instance>, + polling_policy(*current), __func__); +} + future> NotebookServiceConnectionImpl::RollbackInstance( google::cloud::notebooks::v2::RollbackInstanceRequest const& request) { @@ -444,6 +808,58 @@ NotebookServiceConnectionImpl::RollbackInstance( polling_policy(*current), __func__); } +StatusOr +NotebookServiceConnectionImpl::RollbackInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v2::RollbackInstanceRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->RollbackInstance(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::notebooks::v2::RollbackInstanceRequest const& + request) { + return stub_->RollbackInstance(context, options, request); + }, + *current, request, __func__); +} + +future> +NotebookServiceConnectionImpl::RollbackInstance( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to RollbackInstance", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::notebooks::v2::Instance>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::notebooks::v2::Instance>, + polling_policy(*current), __func__); +} + future> NotebookServiceConnectionImpl::DiagnoseInstance( google::cloud::notebooks::v2::DiagnoseInstanceRequest const& request) { @@ -484,6 +900,58 @@ NotebookServiceConnectionImpl::DiagnoseInstance( polling_policy(*current), __func__); } +StatusOr +NotebookServiceConnectionImpl::DiagnoseInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v2::DiagnoseInstanceRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DiagnoseInstance(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::notebooks::v2::DiagnoseInstanceRequest const& + request) { + return stub_->DiagnoseInstance(context, options, request); + }, + *current, request, __func__); +} + +future> +NotebookServiceConnectionImpl::DiagnoseInstance( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to DiagnoseInstance", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::notebooks::v2::Instance>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::notebooks::v2::Instance>, + polling_policy(*current), __func__); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace notebooks_v2_internal } // namespace cloud diff --git a/google/cloud/notebooks/v2/internal/notebook_connection_impl.h b/google/cloud/notebooks/v2/internal/notebook_connection_impl.h index 6a844ac8f55bf..2a4d80b211541 100644 --- a/google/cloud/notebooks/v2/internal/notebook_connection_impl.h +++ b/google/cloud/notebooks/v2/internal/notebook_connection_impl.h @@ -62,26 +62,80 @@ class NotebookServiceConnectionImpl google::cloud::notebooks::v2::CreateInstanceRequest const& request) override; + StatusOr CreateInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v2::CreateInstanceRequest const& request) + override; + + future> CreateInstance( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateInstance( google::cloud::notebooks::v2::UpdateInstanceRequest const& request) override; + StatusOr UpdateInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v2::UpdateInstanceRequest const& request) + override; + + future> UpdateInstance( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteInstance(google::cloud::notebooks::v2::DeleteInstanceRequest const& request) override; + StatusOr DeleteInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v2::DeleteInstanceRequest const& request) + override; + + future> + DeleteInstance(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> StartInstance( google::cloud::notebooks::v2::StartInstanceRequest const& request) override; + StatusOr StartInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v2::StartInstanceRequest const& request) + override; + + future> StartInstance( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> StopInstance( google::cloud::notebooks::v2::StopInstanceRequest const& request) override; + StatusOr StopInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v2::StopInstanceRequest const& request) + override; + + future> StopInstance( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ResetInstance( google::cloud::notebooks::v2::ResetInstanceRequest const& request) override; + StatusOr ResetInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v2::ResetInstanceRequest const& request) + override; + + future> ResetInstance( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr CheckInstanceUpgradability( google::cloud::notebooks::v2::CheckInstanceUpgradabilityRequest const& @@ -91,14 +145,41 @@ class NotebookServiceConnectionImpl google::cloud::notebooks::v2::UpgradeInstanceRequest const& request) override; + StatusOr UpgradeInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v2::UpgradeInstanceRequest const& request) + override; + + future> UpgradeInstance( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> RollbackInstance( google::cloud::notebooks::v2::RollbackInstanceRequest const& request) override; + StatusOr RollbackInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v2::RollbackInstanceRequest const& request) + override; + + future> RollbackInstance( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DiagnoseInstance( google::cloud::notebooks::v2::DiagnoseInstanceRequest const& request) override; + StatusOr DiagnoseInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v2::DiagnoseInstanceRequest const& request) + override; + + future> DiagnoseInstance( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + private: std::unique_ptr background_; std::shared_ptr stub_; diff --git a/google/cloud/notebooks/v2/internal/notebook_tracing_connection.cc b/google/cloud/notebooks/v2/internal/notebook_tracing_connection.cc index 3406b188434eb..a6358abb2cbc2 100644 --- a/google/cloud/notebooks/v2/internal/notebook_tracing_connection.cc +++ b/google/cloud/notebooks/v2/internal/notebook_tracing_connection.cc @@ -62,6 +62,27 @@ NotebookServiceTracingConnection::CreateInstance( return internal::EndSpan(std::move(span), child_->CreateInstance(request)); } +StatusOr +NotebookServiceTracingConnection::CreateInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v2::CreateInstanceRequest const& request) { + auto span = internal::MakeSpan( + "notebooks_v2::NotebookServiceConnection::CreateInstance"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->CreateInstance(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +NotebookServiceTracingConnection::CreateInstance( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "notebooks_v2::NotebookServiceConnection::CreateInstance"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->CreateInstance(ExperimentalTag{}, operation)); +} + future> NotebookServiceTracingConnection::UpdateInstance( google::cloud::notebooks::v2::UpdateInstanceRequest const& request) { @@ -71,6 +92,27 @@ NotebookServiceTracingConnection::UpdateInstance( return internal::EndSpan(std::move(span), child_->UpdateInstance(request)); } +StatusOr +NotebookServiceTracingConnection::UpdateInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v2::UpdateInstanceRequest const& request) { + auto span = internal::MakeSpan( + "notebooks_v2::NotebookServiceConnection::UpdateInstance"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->UpdateInstance(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +NotebookServiceTracingConnection::UpdateInstance( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "notebooks_v2::NotebookServiceConnection::UpdateInstance"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->UpdateInstance(ExperimentalTag{}, operation)); +} + future> NotebookServiceTracingConnection::DeleteInstance( google::cloud::notebooks::v2::DeleteInstanceRequest const& request) { @@ -80,6 +122,27 @@ NotebookServiceTracingConnection::DeleteInstance( return internal::EndSpan(std::move(span), child_->DeleteInstance(request)); } +StatusOr +NotebookServiceTracingConnection::DeleteInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v2::DeleteInstanceRequest const& request) { + auto span = internal::MakeSpan( + "notebooks_v2::NotebookServiceConnection::DeleteInstance"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->DeleteInstance(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +NotebookServiceTracingConnection::DeleteInstance( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "notebooks_v2::NotebookServiceConnection::DeleteInstance"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->DeleteInstance(ExperimentalTag{}, operation)); +} + future> NotebookServiceTracingConnection::StartInstance( google::cloud::notebooks::v2::StartInstanceRequest const& request) { @@ -89,6 +152,27 @@ NotebookServiceTracingConnection::StartInstance( return internal::EndSpan(std::move(span), child_->StartInstance(request)); } +StatusOr +NotebookServiceTracingConnection::StartInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v2::StartInstanceRequest const& request) { + auto span = internal::MakeSpan( + "notebooks_v2::NotebookServiceConnection::StartInstance"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->StartInstance(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +NotebookServiceTracingConnection::StartInstance( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "notebooks_v2::NotebookServiceConnection::StartInstance"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->StartInstance(ExperimentalTag{}, operation)); +} + future> NotebookServiceTracingConnection::StopInstance( google::cloud::notebooks::v2::StopInstanceRequest const& request) { @@ -98,6 +182,27 @@ NotebookServiceTracingConnection::StopInstance( return internal::EndSpan(std::move(span), child_->StopInstance(request)); } +StatusOr +NotebookServiceTracingConnection::StopInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v2::StopInstanceRequest const& request) { + auto span = internal::MakeSpan( + "notebooks_v2::NotebookServiceConnection::StopInstance"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->StopInstance(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +NotebookServiceTracingConnection::StopInstance( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "notebooks_v2::NotebookServiceConnection::StopInstance"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->StopInstance(ExperimentalTag{}, operation)); +} + future> NotebookServiceTracingConnection::ResetInstance( google::cloud::notebooks::v2::ResetInstanceRequest const& request) { @@ -107,6 +212,27 @@ NotebookServiceTracingConnection::ResetInstance( return internal::EndSpan(std::move(span), child_->ResetInstance(request)); } +StatusOr +NotebookServiceTracingConnection::ResetInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v2::ResetInstanceRequest const& request) { + auto span = internal::MakeSpan( + "notebooks_v2::NotebookServiceConnection::ResetInstance"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->ResetInstance(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +NotebookServiceTracingConnection::ResetInstance( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "notebooks_v2::NotebookServiceConnection::ResetInstance"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->ResetInstance(ExperimentalTag{}, operation)); +} + StatusOr NotebookServiceTracingConnection::CheckInstanceUpgradability( google::cloud::notebooks::v2::CheckInstanceUpgradabilityRequest const& @@ -126,6 +252,27 @@ NotebookServiceTracingConnection::UpgradeInstance( return internal::EndSpan(std::move(span), child_->UpgradeInstance(request)); } +StatusOr +NotebookServiceTracingConnection::UpgradeInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v2::UpgradeInstanceRequest const& request) { + auto span = internal::MakeSpan( + "notebooks_v2::NotebookServiceConnection::UpgradeInstance"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->UpgradeInstance(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +NotebookServiceTracingConnection::UpgradeInstance( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "notebooks_v2::NotebookServiceConnection::UpgradeInstance"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->UpgradeInstance(ExperimentalTag{}, operation)); +} + future> NotebookServiceTracingConnection::RollbackInstance( google::cloud::notebooks::v2::RollbackInstanceRequest const& request) { @@ -135,6 +282,28 @@ NotebookServiceTracingConnection::RollbackInstance( return internal::EndSpan(std::move(span), child_->RollbackInstance(request)); } +StatusOr +NotebookServiceTracingConnection::RollbackInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v2::RollbackInstanceRequest const& request) { + auto span = internal::MakeSpan( + "notebooks_v2::NotebookServiceConnection::RollbackInstance"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->RollbackInstance(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +NotebookServiceTracingConnection::RollbackInstance( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "notebooks_v2::NotebookServiceConnection::RollbackInstance"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->RollbackInstance(ExperimentalTag{}, operation)); +} + future> NotebookServiceTracingConnection::DiagnoseInstance( google::cloud::notebooks::v2::DiagnoseInstanceRequest const& request) { @@ -144,6 +313,28 @@ NotebookServiceTracingConnection::DiagnoseInstance( return internal::EndSpan(std::move(span), child_->DiagnoseInstance(request)); } +StatusOr +NotebookServiceTracingConnection::DiagnoseInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v2::DiagnoseInstanceRequest const& request) { + auto span = internal::MakeSpan( + "notebooks_v2::NotebookServiceConnection::DiagnoseInstance"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->DiagnoseInstance(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +NotebookServiceTracingConnection::DiagnoseInstance( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "notebooks_v2::NotebookServiceConnection::DiagnoseInstance"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->DiagnoseInstance(ExperimentalTag{}, operation)); +} + #endif // GOOGLE_CLOUD_CPP_HAVE_OPENTELEMETRY std::shared_ptr diff --git a/google/cloud/notebooks/v2/internal/notebook_tracing_connection.h b/google/cloud/notebooks/v2/internal/notebook_tracing_connection.h index 195ca94152546..4649022aa8fc7 100644 --- a/google/cloud/notebooks/v2/internal/notebook_tracing_connection.h +++ b/google/cloud/notebooks/v2/internal/notebook_tracing_connection.h @@ -50,26 +50,80 @@ class NotebookServiceTracingConnection google::cloud::notebooks::v2::CreateInstanceRequest const& request) override; + StatusOr CreateInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v2::CreateInstanceRequest const& request) + override; + + future> CreateInstance( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateInstance( google::cloud::notebooks::v2::UpdateInstanceRequest const& request) override; + StatusOr UpdateInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v2::UpdateInstanceRequest const& request) + override; + + future> UpdateInstance( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteInstance(google::cloud::notebooks::v2::DeleteInstanceRequest const& request) override; + StatusOr DeleteInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v2::DeleteInstanceRequest const& request) + override; + + future> + DeleteInstance(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> StartInstance( google::cloud::notebooks::v2::StartInstanceRequest const& request) override; + StatusOr StartInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v2::StartInstanceRequest const& request) + override; + + future> StartInstance( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> StopInstance( google::cloud::notebooks::v2::StopInstanceRequest const& request) override; + StatusOr StopInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v2::StopInstanceRequest const& request) + override; + + future> StopInstance( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ResetInstance( google::cloud::notebooks::v2::ResetInstanceRequest const& request) override; + StatusOr ResetInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v2::ResetInstanceRequest const& request) + override; + + future> ResetInstance( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr CheckInstanceUpgradability( google::cloud::notebooks::v2::CheckInstanceUpgradabilityRequest const& @@ -79,14 +133,41 @@ class NotebookServiceTracingConnection google::cloud::notebooks::v2::UpgradeInstanceRequest const& request) override; + StatusOr UpgradeInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v2::UpgradeInstanceRequest const& request) + override; + + future> UpgradeInstance( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> RollbackInstance( google::cloud::notebooks::v2::RollbackInstanceRequest const& request) override; + StatusOr RollbackInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v2::RollbackInstanceRequest const& request) + override; + + future> RollbackInstance( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DiagnoseInstance( google::cloud::notebooks::v2::DiagnoseInstanceRequest const& request) override; + StatusOr DiagnoseInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v2::DiagnoseInstanceRequest const& request) + override; + + future> DiagnoseInstance( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + private: std::shared_ptr child_; }; diff --git a/google/cloud/notebooks/v2/mocks/mock_notebook_connection.h b/google/cloud/notebooks/v2/mocks/mock_notebook_connection.h index 6eefd376ad4bd..99715a27e604e 100644 --- a/google/cloud/notebooks/v2/mocks/mock_notebook_connection.h +++ b/google/cloud/notebooks/v2/mocks/mock_notebook_connection.h @@ -61,32 +61,104 @@ class MockNotebookServiceConnection (google::cloud::notebooks::v2::CreateInstanceRequest const& request), (override)); + MOCK_METHOD( + StatusOr, CreateInstance, + (ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v2::CreateInstanceRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateInstance, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, UpdateInstance, (google::cloud::notebooks::v2::UpdateInstanceRequest const& request), (override)); + MOCK_METHOD( + StatusOr, UpdateInstance, + (ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v2::UpdateInstanceRequest const& request), + (override)); + + MOCK_METHOD(future>, + UpdateInstance, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteInstance, (google::cloud::notebooks::v2::DeleteInstanceRequest const& request), (override)); + MOCK_METHOD( + StatusOr, DeleteInstance, + (ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v2::DeleteInstanceRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteInstance, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, StartInstance, (google::cloud::notebooks::v2::StartInstanceRequest const& request), (override)); + MOCK_METHOD( + StatusOr, StartInstance, + (ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v2::StartInstanceRequest const& request), + (override)); + + MOCK_METHOD(future>, + StartInstance, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, StopInstance, (google::cloud::notebooks::v2::StopInstanceRequest const& request), (override)); + MOCK_METHOD( + StatusOr, StopInstance, + (ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v2::StopInstanceRequest const& request), + (override)); + + MOCK_METHOD(future>, + StopInstance, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, ResetInstance, (google::cloud::notebooks::v2::ResetInstanceRequest const& request), (override)); + MOCK_METHOD( + StatusOr, ResetInstance, + (ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v2::ResetInstanceRequest const& request), + (override)); + + MOCK_METHOD(future>, + ResetInstance, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr< google::cloud::notebooks::v2::CheckInstanceUpgradabilityResponse>, @@ -100,17 +172,53 @@ class MockNotebookServiceConnection (google::cloud::notebooks::v2::UpgradeInstanceRequest const& request), (override)); + MOCK_METHOD( + StatusOr, UpgradeInstance, + (ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v2::UpgradeInstanceRequest const& request), + (override)); + + MOCK_METHOD(future>, + UpgradeInstance, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, RollbackInstance, (google::cloud::notebooks::v2::RollbackInstanceRequest const& request), (override)); + MOCK_METHOD( + StatusOr, RollbackInstance, + (ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v2::RollbackInstanceRequest const& request), + (override)); + + MOCK_METHOD(future>, + RollbackInstance, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DiagnoseInstance, (google::cloud::notebooks::v2::DiagnoseInstanceRequest const& request), (override)); + + MOCK_METHOD( + StatusOr, DiagnoseInstance, + (ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v2::DiagnoseInstanceRequest const& request), + (override)); + + MOCK_METHOD(future>, + DiagnoseInstance, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); }; GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END diff --git a/google/cloud/notebooks/v2/notebook_connection.cc b/google/cloud/notebooks/v2/notebook_connection.cc index 9b7e4a71c0aa0..84de0b48086e4 100644 --- a/google/cloud/notebooks/v2/notebook_connection.cc +++ b/google/cloud/notebooks/v2/notebook_connection.cc @@ -60,6 +60,22 @@ NotebookServiceConnection::CreateInstance( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +NotebookServiceConnection::CreateInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v2::CreateInstanceRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +NotebookServiceConnection::CreateInstance( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> NotebookServiceConnection::UpdateInstance( google::cloud::notebooks::v2::UpdateInstanceRequest const&) { @@ -68,6 +84,22 @@ NotebookServiceConnection::UpdateInstance( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +NotebookServiceConnection::UpdateInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v2::UpdateInstanceRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +NotebookServiceConnection::UpdateInstance( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> NotebookServiceConnection::DeleteInstance( google::cloud::notebooks::v2::DeleteInstanceRequest const&) { @@ -76,6 +108,22 @@ NotebookServiceConnection::DeleteInstance( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +NotebookServiceConnection::DeleteInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v2::DeleteInstanceRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +NotebookServiceConnection::DeleteInstance( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> NotebookServiceConnection::StartInstance( google::cloud::notebooks::v2::StartInstanceRequest const&) { @@ -84,6 +132,22 @@ NotebookServiceConnection::StartInstance( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +NotebookServiceConnection::StartInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v2::StartInstanceRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +NotebookServiceConnection::StartInstance( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> NotebookServiceConnection::StopInstance( google::cloud::notebooks::v2::StopInstanceRequest const&) { @@ -92,6 +156,22 @@ NotebookServiceConnection::StopInstance( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +NotebookServiceConnection::StopInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v2::StopInstanceRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +NotebookServiceConnection::StopInstance(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> NotebookServiceConnection::ResetInstance( google::cloud::notebooks::v2::ResetInstanceRequest const&) { @@ -100,6 +180,22 @@ NotebookServiceConnection::ResetInstance( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +NotebookServiceConnection::ResetInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v2::ResetInstanceRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +NotebookServiceConnection::ResetInstance( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr NotebookServiceConnection::CheckInstanceUpgradability( google::cloud::notebooks::v2::CheckInstanceUpgradabilityRequest const&) { @@ -114,6 +210,22 @@ NotebookServiceConnection::UpgradeInstance( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +NotebookServiceConnection::UpgradeInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v2::UpgradeInstanceRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +NotebookServiceConnection::UpgradeInstance( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> NotebookServiceConnection::RollbackInstance( google::cloud::notebooks::v2::RollbackInstanceRequest const&) { @@ -122,6 +234,22 @@ NotebookServiceConnection::RollbackInstance( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +NotebookServiceConnection::RollbackInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v2::RollbackInstanceRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +NotebookServiceConnection::RollbackInstance( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> NotebookServiceConnection::DiagnoseInstance( google::cloud::notebooks::v2::DiagnoseInstanceRequest const&) { @@ -130,6 +258,22 @@ NotebookServiceConnection::DiagnoseInstance( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +NotebookServiceConnection::DiagnoseInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v2::DiagnoseInstanceRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +NotebookServiceConnection::DiagnoseInstance( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + std::shared_ptr MakeNotebookServiceConnection( Options options) { internal::CheckExpectedOptions CreateInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v2::CreateInstanceRequest const& request); + + virtual future> + CreateInstance(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> UpdateInstance( google::cloud::notebooks::v2::UpdateInstanceRequest const& request); + virtual StatusOr UpdateInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v2::UpdateInstanceRequest const& request); + + virtual future> + UpdateInstance(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> DeleteInstance( google::cloud::notebooks::v2::DeleteInstanceRequest const& request); + virtual StatusOr DeleteInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v2::DeleteInstanceRequest const& request); + + virtual future> + DeleteInstance(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> StartInstance( google::cloud::notebooks::v2::StartInstanceRequest const& request); + virtual StatusOr StartInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v2::StartInstanceRequest const& request); + + virtual future> + StartInstance(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> StopInstance( google::cloud::notebooks::v2::StopInstanceRequest const& request); + virtual StatusOr StopInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v2::StopInstanceRequest const& request); + + virtual future> StopInstance( + ExperimentalTag, google::longrunning::Operation const& operation); + virtual future> ResetInstance( google::cloud::notebooks::v2::ResetInstanceRequest const& request); + virtual StatusOr ResetInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v2::ResetInstanceRequest const& request); + + virtual future> + ResetInstance(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StatusOr< google::cloud::notebooks::v2::CheckInstanceUpgradabilityResponse> CheckInstanceUpgradability( @@ -225,13 +274,37 @@ class NotebookServiceConnection { UpgradeInstance( google::cloud::notebooks::v2::UpgradeInstanceRequest const& request); + virtual StatusOr UpgradeInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v2::UpgradeInstanceRequest const& request); + + virtual future> + UpgradeInstance(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> RollbackInstance( google::cloud::notebooks::v2::RollbackInstanceRequest const& request); + virtual StatusOr RollbackInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v2::RollbackInstanceRequest const& request); + + virtual future> + RollbackInstance(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> DiagnoseInstance( google::cloud::notebooks::v2::DiagnoseInstanceRequest const& request); + + virtual StatusOr DiagnoseInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::notebooks::v2::DiagnoseInstanceRequest const& request); + + virtual future> + DiagnoseInstance(ExperimentalTag, + google::longrunning::Operation const& operation); }; /** diff --git a/google/cloud/optimization/v1/fleet_routing_connection.cc b/google/cloud/optimization/v1/fleet_routing_connection.cc index 897d77ab375b7..55c5d6cf3c0a8 100644 --- a/google/cloud/optimization/v1/fleet_routing_connection.cc +++ b/google/cloud/optimization/v1/fleet_routing_connection.cc @@ -51,6 +51,22 @@ FleetRoutingConnection::BatchOptimizeTours( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +FleetRoutingConnection::BatchOptimizeTours( + ExperimentalTag, NoAwaitTag, + google::cloud::optimization::v1::BatchOptimizeToursRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +FleetRoutingConnection::BatchOptimizeTours( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + std::shared_ptr MakeFleetRoutingConnection( Options options) { internal::CheckExpectedOptions BatchOptimizeTours( + ExperimentalTag, NoAwaitTag, + google::cloud::optimization::v1::BatchOptimizeToursRequest const& + request); + + virtual future< + StatusOr> + BatchOptimizeTours(ExperimentalTag, + google::longrunning::Operation const& operation); }; /** diff --git a/google/cloud/optimization/v1/internal/fleet_routing_connection_impl.cc b/google/cloud/optimization/v1/internal/fleet_routing_connection_impl.cc index 462fb5f17c7ea..1fdafd74d9c81 100644 --- a/google/cloud/optimization/v1/internal/fleet_routing_connection_impl.cc +++ b/google/cloud/optimization/v1/internal/fleet_routing_connection_impl.cc @@ -120,6 +120,60 @@ FleetRoutingConnectionImpl::BatchOptimizeTours( polling_policy(*current), __func__); } +StatusOr +FleetRoutingConnectionImpl::BatchOptimizeTours( + ExperimentalTag, NoAwaitTag, + google::cloud::optimization::v1::BatchOptimizeToursRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->BatchOptimizeTours(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::optimization::v1::BatchOptimizeToursRequest const& + request) { + return stub_->BatchOptimizeTours(context, options, request); + }, + *current, request, __func__); +} + +future> +FleetRoutingConnectionImpl::BatchOptimizeTours( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to BatchOptimizeTours", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::optimization::v1::BatchOptimizeToursResponse>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::optimization::v1::BatchOptimizeToursResponse>, + polling_policy(*current), __func__); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace optimization_v1_internal } // namespace cloud diff --git a/google/cloud/optimization/v1/internal/fleet_routing_connection_impl.h b/google/cloud/optimization/v1/internal/fleet_routing_connection_impl.h index 0ea8df85db80a..bf516583d0ccc 100644 --- a/google/cloud/optimization/v1/internal/fleet_routing_connection_impl.h +++ b/google/cloud/optimization/v1/internal/fleet_routing_connection_impl.h @@ -60,6 +60,15 @@ class FleetRoutingConnectionImpl google::cloud::optimization::v1::BatchOptimizeToursRequest const& request) override; + StatusOr BatchOptimizeTours( + ExperimentalTag, NoAwaitTag, + google::cloud::optimization::v1::BatchOptimizeToursRequest const& request) + override; + + future> + BatchOptimizeTours(ExperimentalTag, + google::longrunning::Operation const& operation) override; + private: std::unique_ptr background_; std::shared_ptr stub_; diff --git a/google/cloud/optimization/v1/internal/fleet_routing_tracing_connection.cc b/google/cloud/optimization/v1/internal/fleet_routing_tracing_connection.cc index 8d5877a10dc45..6bf86326aca07 100644 --- a/google/cloud/optimization/v1/internal/fleet_routing_tracing_connection.cc +++ b/google/cloud/optimization/v1/internal/fleet_routing_tracing_connection.cc @@ -51,6 +51,28 @@ FleetRoutingTracingConnection::BatchOptimizeTours( child_->BatchOptimizeTours(request)); } +StatusOr +FleetRoutingTracingConnection::BatchOptimizeTours( + ExperimentalTag, NoAwaitTag, + google::cloud::optimization::v1::BatchOptimizeToursRequest const& request) { + auto span = internal::MakeSpan( + "optimization_v1::FleetRoutingConnection::BatchOptimizeTours"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->BatchOptimizeTours(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +FleetRoutingTracingConnection::BatchOptimizeTours( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "optimization_v1::FleetRoutingConnection::BatchOptimizeTours"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->BatchOptimizeTours( + ExperimentalTag{}, operation)); +} + #endif // GOOGLE_CLOUD_CPP_HAVE_OPENTELEMETRY std::shared_ptr diff --git a/google/cloud/optimization/v1/internal/fleet_routing_tracing_connection.h b/google/cloud/optimization/v1/internal/fleet_routing_tracing_connection.h index d5eb19e7ee4dc..687448f3fb5c0 100644 --- a/google/cloud/optimization/v1/internal/fleet_routing_tracing_connection.h +++ b/google/cloud/optimization/v1/internal/fleet_routing_tracing_connection.h @@ -49,6 +49,15 @@ class FleetRoutingTracingConnection google::cloud::optimization::v1::BatchOptimizeToursRequest const& request) override; + StatusOr BatchOptimizeTours( + ExperimentalTag, NoAwaitTag, + google::cloud::optimization::v1::BatchOptimizeToursRequest const& request) + override; + + future> + BatchOptimizeTours(ExperimentalTag, + google::longrunning::Operation const& operation) override; + private: std::shared_ptr child_; }; diff --git a/google/cloud/optimization/v1/mocks/mock_fleet_routing_connection.h b/google/cloud/optimization/v1/mocks/mock_fleet_routing_connection.h index 43c66171416e2..36f73eaaeeb74 100644 --- a/google/cloud/optimization/v1/mocks/mock_fleet_routing_connection.h +++ b/google/cloud/optimization/v1/mocks/mock_fleet_routing_connection.h @@ -59,6 +59,19 @@ class MockFleetRoutingConnection (google::cloud::optimization::v1::BatchOptimizeToursRequest const& request), (override)); + + MOCK_METHOD(StatusOr, BatchOptimizeTours, + (ExperimentalTag, NoAwaitTag, + google::cloud::optimization::v1::BatchOptimizeToursRequest const& + request), + (override)); + + MOCK_METHOD(future>, + BatchOptimizeTours, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); }; GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END diff --git a/google/cloud/orgpolicy/v2/org_policy_connection.h b/google/cloud/orgpolicy/v2/org_policy_connection.h index f6c52021ad106..0e66eda8035a5 100644 --- a/google/cloud/orgpolicy/v2/org_policy_connection.h +++ b/google/cloud/orgpolicy/v2/org_policy_connection.h @@ -22,6 +22,7 @@ #include "google/cloud/orgpolicy/v2/internal/org_policy_retry_traits.h" #include "google/cloud/orgpolicy/v2/org_policy_connection_idempotency_policy.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/internal/retry_policy_impl.h" #include "google/cloud/options.h" #include "google/cloud/status_or.h" diff --git a/google/cloud/osconfig/agentendpoint/v1/agent_endpoint_connection.h b/google/cloud/osconfig/agentendpoint/v1/agent_endpoint_connection.h index 4089c9bf02e76..56accde2eea8b 100644 --- a/google/cloud/osconfig/agentendpoint/v1/agent_endpoint_connection.h +++ b/google/cloud/osconfig/agentendpoint/v1/agent_endpoint_connection.h @@ -22,6 +22,7 @@ #include "google/cloud/osconfig/agentendpoint/v1/agent_endpoint_connection_idempotency_policy.h" #include "google/cloud/osconfig/agentendpoint/v1/internal/agent_endpoint_retry_traits.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/internal/retry_policy_impl.h" #include "google/cloud/options.h" #include "google/cloud/status_or.h" diff --git a/google/cloud/osconfig/v1/internal/os_config_zonal_connection_impl.cc b/google/cloud/osconfig/v1/internal/os_config_zonal_connection_impl.cc index 80639ea26a8ba..87ad6ed22f397 100644 --- a/google/cloud/osconfig/v1/internal/os_config_zonal_connection_impl.cc +++ b/google/cloud/osconfig/v1/internal/os_config_zonal_connection_impl.cc @@ -108,6 +108,61 @@ OsConfigZonalServiceConnectionImpl::CreateOSPolicyAssignment( polling_policy(*current), __func__); } +StatusOr +OsConfigZonalServiceConnectionImpl::CreateOSPolicyAssignment( + ExperimentalTag, NoAwaitTag, + google::cloud::osconfig::v1::CreateOSPolicyAssignmentRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateOSPolicyAssignment(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::osconfig::v1::CreateOSPolicyAssignmentRequest const& + request) { + return stub_->CreateOSPolicyAssignment(context, options, request); + }, + *current, request, __func__); +} + +future> +OsConfigZonalServiceConnectionImpl::CreateOSPolicyAssignment( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to CreateOSPolicyAssignment", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::osconfig::v1::OSPolicyAssignment>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::osconfig::v1::OSPolicyAssignment>, + polling_policy(*current), __func__); +} + future> OsConfigZonalServiceConnectionImpl::UpdateOSPolicyAssignment( google::cloud::osconfig::v1::UpdateOSPolicyAssignmentRequest const& @@ -149,6 +204,61 @@ OsConfigZonalServiceConnectionImpl::UpdateOSPolicyAssignment( polling_policy(*current), __func__); } +StatusOr +OsConfigZonalServiceConnectionImpl::UpdateOSPolicyAssignment( + ExperimentalTag, NoAwaitTag, + google::cloud::osconfig::v1::UpdateOSPolicyAssignmentRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UpdateOSPolicyAssignment(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::osconfig::v1::UpdateOSPolicyAssignmentRequest const& + request) { + return stub_->UpdateOSPolicyAssignment(context, options, request); + }, + *current, request, __func__); +} + +future> +OsConfigZonalServiceConnectionImpl::UpdateOSPolicyAssignment( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to UpdateOSPolicyAssignment", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::osconfig::v1::OSPolicyAssignment>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::osconfig::v1::OSPolicyAssignment>, + polling_policy(*current), __func__); +} + StatusOr OsConfigZonalServiceConnectionImpl::GetOSPolicyAssignment( google::cloud::osconfig::v1::GetOSPolicyAssignmentRequest const& request) { @@ -281,6 +391,62 @@ OsConfigZonalServiceConnectionImpl::DeleteOSPolicyAssignment( polling_policy(*current), __func__); } +StatusOr +OsConfigZonalServiceConnectionImpl::DeleteOSPolicyAssignment( + ExperimentalTag, NoAwaitTag, + google::cloud::osconfig::v1::DeleteOSPolicyAssignmentRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteOSPolicyAssignment(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::osconfig::v1::DeleteOSPolicyAssignmentRequest const& + request) { + return stub_->DeleteOSPolicyAssignment(context, options, request); + }, + *current, request, __func__); +} + +future< + StatusOr> +OsConfigZonalServiceConnectionImpl::DeleteOSPolicyAssignment( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteOSPolicyAssignment", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::osconfig::v1::OSPolicyAssignmentOperationMetadata>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::cloud::osconfig::v1::OSPolicyAssignmentOperationMetadata>, + polling_policy(*current), __func__); +} + StatusOr OsConfigZonalServiceConnectionImpl::GetOSPolicyAssignmentReport( google::cloud::osconfig::v1::GetOSPolicyAssignmentReportRequest const& diff --git a/google/cloud/osconfig/v1/internal/os_config_zonal_connection_impl.h b/google/cloud/osconfig/v1/internal/os_config_zonal_connection_impl.h index a5c69fd7b3c4f..17f755519f497 100644 --- a/google/cloud/osconfig/v1/internal/os_config_zonal_connection_impl.h +++ b/google/cloud/osconfig/v1/internal/os_config_zonal_connection_impl.h @@ -57,11 +57,31 @@ class OsConfigZonalServiceConnectionImpl google::cloud::osconfig::v1::CreateOSPolicyAssignmentRequest const& request) override; + StatusOr CreateOSPolicyAssignment( + ExperimentalTag, NoAwaitTag, + google::cloud::osconfig::v1::CreateOSPolicyAssignmentRequest const& + request) override; + + future> + CreateOSPolicyAssignment( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateOSPolicyAssignment( google::cloud::osconfig::v1::UpdateOSPolicyAssignmentRequest const& request) override; + StatusOr UpdateOSPolicyAssignment( + ExperimentalTag, NoAwaitTag, + google::cloud::osconfig::v1::UpdateOSPolicyAssignmentRequest const& + request) override; + + future> + UpdateOSPolicyAssignment( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetOSPolicyAssignment( google::cloud::osconfig::v1::GetOSPolicyAssignmentRequest const& request) @@ -83,6 +103,17 @@ class OsConfigZonalServiceConnectionImpl google::cloud::osconfig::v1::DeleteOSPolicyAssignmentRequest const& request) override; + StatusOr DeleteOSPolicyAssignment( + ExperimentalTag, NoAwaitTag, + google::cloud::osconfig::v1::DeleteOSPolicyAssignmentRequest const& + request) override; + + future> + DeleteOSPolicyAssignment( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetOSPolicyAssignmentReport( google::cloud::osconfig::v1::GetOSPolicyAssignmentReportRequest const& diff --git a/google/cloud/osconfig/v1/internal/os_config_zonal_tracing_connection.cc b/google/cloud/osconfig/v1/internal/os_config_zonal_tracing_connection.cc index 7c837bbe2b2e2..ff28e11559a0f 100644 --- a/google/cloud/osconfig/v1/internal/os_config_zonal_tracing_connection.cc +++ b/google/cloud/osconfig/v1/internal/os_config_zonal_tracing_connection.cc @@ -44,6 +44,29 @@ OsConfigZonalServiceTracingConnection::CreateOSPolicyAssignment( child_->CreateOSPolicyAssignment(request)); } +StatusOr +OsConfigZonalServiceTracingConnection::CreateOSPolicyAssignment( + ExperimentalTag, NoAwaitTag, + google::cloud::osconfig::v1::CreateOSPolicyAssignmentRequest const& + request) { + auto span = internal::MakeSpan( + "osconfig_v1::OsConfigZonalServiceConnection::CreateOSPolicyAssignment"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->CreateOSPolicyAssignment(ExperimentalTag{}, NoAwaitTag{}, + request)); +} + +future> +OsConfigZonalServiceTracingConnection::CreateOSPolicyAssignment( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "osconfig_v1::OsConfigZonalServiceConnection::CreateOSPolicyAssignment"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->CreateOSPolicyAssignment( + ExperimentalTag{}, operation)); +} + future> OsConfigZonalServiceTracingConnection::UpdateOSPolicyAssignment( google::cloud::osconfig::v1::UpdateOSPolicyAssignmentRequest const& @@ -55,6 +78,29 @@ OsConfigZonalServiceTracingConnection::UpdateOSPolicyAssignment( child_->UpdateOSPolicyAssignment(request)); } +StatusOr +OsConfigZonalServiceTracingConnection::UpdateOSPolicyAssignment( + ExperimentalTag, NoAwaitTag, + google::cloud::osconfig::v1::UpdateOSPolicyAssignmentRequest const& + request) { + auto span = internal::MakeSpan( + "osconfig_v1::OsConfigZonalServiceConnection::UpdateOSPolicyAssignment"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->UpdateOSPolicyAssignment(ExperimentalTag{}, NoAwaitTag{}, + request)); +} + +future> +OsConfigZonalServiceTracingConnection::UpdateOSPolicyAssignment( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "osconfig_v1::OsConfigZonalServiceConnection::UpdateOSPolicyAssignment"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->UpdateOSPolicyAssignment( + ExperimentalTag{}, operation)); +} + StatusOr OsConfigZonalServiceTracingConnection::GetOSPolicyAssignment( google::cloud::osconfig::v1::GetOSPolicyAssignmentRequest const& request) { @@ -102,6 +148,30 @@ OsConfigZonalServiceTracingConnection::DeleteOSPolicyAssignment( child_->DeleteOSPolicyAssignment(request)); } +StatusOr +OsConfigZonalServiceTracingConnection::DeleteOSPolicyAssignment( + ExperimentalTag, NoAwaitTag, + google::cloud::osconfig::v1::DeleteOSPolicyAssignmentRequest const& + request) { + auto span = internal::MakeSpan( + "osconfig_v1::OsConfigZonalServiceConnection::DeleteOSPolicyAssignment"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->DeleteOSPolicyAssignment(ExperimentalTag{}, NoAwaitTag{}, + request)); +} + +future< + StatusOr> +OsConfigZonalServiceTracingConnection::DeleteOSPolicyAssignment( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "osconfig_v1::OsConfigZonalServiceConnection::DeleteOSPolicyAssignment"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->DeleteOSPolicyAssignment( + ExperimentalTag{}, operation)); +} + StatusOr OsConfigZonalServiceTracingConnection::GetOSPolicyAssignmentReport( google::cloud::osconfig::v1::GetOSPolicyAssignmentReportRequest const& diff --git a/google/cloud/osconfig/v1/internal/os_config_zonal_tracing_connection.h b/google/cloud/osconfig/v1/internal/os_config_zonal_tracing_connection.h index b3fad1a95d2a9..c2b0dcbc42e39 100644 --- a/google/cloud/osconfig/v1/internal/os_config_zonal_tracing_connection.h +++ b/google/cloud/osconfig/v1/internal/os_config_zonal_tracing_connection.h @@ -45,11 +45,31 @@ class OsConfigZonalServiceTracingConnection google::cloud::osconfig::v1::CreateOSPolicyAssignmentRequest const& request) override; + StatusOr CreateOSPolicyAssignment( + ExperimentalTag, NoAwaitTag, + google::cloud::osconfig::v1::CreateOSPolicyAssignmentRequest const& + request) override; + + future> + CreateOSPolicyAssignment( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateOSPolicyAssignment( google::cloud::osconfig::v1::UpdateOSPolicyAssignmentRequest const& request) override; + StatusOr UpdateOSPolicyAssignment( + ExperimentalTag, NoAwaitTag, + google::cloud::osconfig::v1::UpdateOSPolicyAssignmentRequest const& + request) override; + + future> + UpdateOSPolicyAssignment( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetOSPolicyAssignment( google::cloud::osconfig::v1::GetOSPolicyAssignmentRequest const& request) @@ -71,6 +91,17 @@ class OsConfigZonalServiceTracingConnection google::cloud::osconfig::v1::DeleteOSPolicyAssignmentRequest const& request) override; + StatusOr DeleteOSPolicyAssignment( + ExperimentalTag, NoAwaitTag, + google::cloud::osconfig::v1::DeleteOSPolicyAssignmentRequest const& + request) override; + + future> + DeleteOSPolicyAssignment( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetOSPolicyAssignmentReport( google::cloud::osconfig::v1::GetOSPolicyAssignmentReportRequest const& diff --git a/google/cloud/osconfig/v1/mocks/mock_os_config_zonal_connection.h b/google/cloud/osconfig/v1/mocks/mock_os_config_zonal_connection.h index c0b2366bccd71..8d79336d45dea 100644 --- a/google/cloud/osconfig/v1/mocks/mock_os_config_zonal_connection.h +++ b/google/cloud/osconfig/v1/mocks/mock_os_config_zonal_connection.h @@ -54,6 +54,19 @@ class MockOsConfigZonalServiceConnection request), (override)); + MOCK_METHOD( + StatusOr, CreateOSPolicyAssignment, + (ExperimentalTag, NoAwaitTag, + google::cloud::osconfig::v1::CreateOSPolicyAssignmentRequest const& + request), + (override)); + + MOCK_METHOD(future>, + CreateOSPolicyAssignment, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, UpdateOSPolicyAssignment, @@ -61,6 +74,19 @@ class MockOsConfigZonalServiceConnection request), (override)); + MOCK_METHOD( + StatusOr, UpdateOSPolicyAssignment, + (ExperimentalTag, NoAwaitTag, + google::cloud::osconfig::v1::UpdateOSPolicyAssignmentRequest const& + request), + (override)); + + MOCK_METHOD(future>, + UpdateOSPolicyAssignment, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(StatusOr, GetOSPolicyAssignment, (google::cloud::osconfig::v1::GetOSPolicyAssignmentRequest const& @@ -88,6 +114,20 @@ class MockOsConfigZonalServiceConnection request), (override)); + MOCK_METHOD( + StatusOr, DeleteOSPolicyAssignment, + (ExperimentalTag, NoAwaitTag, + google::cloud::osconfig::v1::DeleteOSPolicyAssignmentRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + DeleteOSPolicyAssignment, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr, GetOSPolicyAssignmentReport, diff --git a/google/cloud/osconfig/v1/os_config_connection.h b/google/cloud/osconfig/v1/os_config_connection.h index ad2751fbed287..8a08ef6d8a699 100644 --- a/google/cloud/osconfig/v1/os_config_connection.h +++ b/google/cloud/osconfig/v1/os_config_connection.h @@ -22,6 +22,7 @@ #include "google/cloud/osconfig/v1/internal/os_config_retry_traits.h" #include "google/cloud/osconfig/v1/os_config_connection_idempotency_policy.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/internal/retry_policy_impl.h" #include "google/cloud/options.h" #include "google/cloud/status_or.h" diff --git a/google/cloud/osconfig/v1/os_config_zonal_connection.cc b/google/cloud/osconfig/v1/os_config_zonal_connection.cc index 8c885307ebc7d..9960a4c3282ec 100644 --- a/google/cloud/osconfig/v1/os_config_zonal_connection.cc +++ b/google/cloud/osconfig/v1/os_config_zonal_connection.cc @@ -46,6 +46,22 @@ OsConfigZonalServiceConnection::CreateOSPolicyAssignment( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +OsConfigZonalServiceConnection::CreateOSPolicyAssignment( + ExperimentalTag, NoAwaitTag, + google::cloud::osconfig::v1::CreateOSPolicyAssignmentRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +OsConfigZonalServiceConnection::CreateOSPolicyAssignment( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> OsConfigZonalServiceConnection::UpdateOSPolicyAssignment( google::cloud::osconfig::v1::UpdateOSPolicyAssignmentRequest const&) { @@ -54,6 +70,22 @@ OsConfigZonalServiceConnection::UpdateOSPolicyAssignment( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +OsConfigZonalServiceConnection::UpdateOSPolicyAssignment( + ExperimentalTag, NoAwaitTag, + google::cloud::osconfig::v1::UpdateOSPolicyAssignmentRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +OsConfigZonalServiceConnection::UpdateOSPolicyAssignment( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr OsConfigZonalServiceConnection::GetOSPolicyAssignment( google::cloud::osconfig::v1::GetOSPolicyAssignmentRequest const&) { @@ -85,6 +117,23 @@ OsConfigZonalServiceConnection::DeleteOSPolicyAssignment( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +OsConfigZonalServiceConnection::DeleteOSPolicyAssignment( + ExperimentalTag, NoAwaitTag, + google::cloud::osconfig::v1::DeleteOSPolicyAssignmentRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future< + StatusOr> +OsConfigZonalServiceConnection::DeleteOSPolicyAssignment( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr OsConfigZonalServiceConnection::GetOSPolicyAssignmentReport( google::cloud::osconfig::v1::GetOSPolicyAssignmentReportRequest const&) { diff --git a/google/cloud/osconfig/v1/os_config_zonal_connection.h b/google/cloud/osconfig/v1/os_config_zonal_connection.h index a5718a9745e32..81db8b19b6238 100644 --- a/google/cloud/osconfig/v1/os_config_zonal_connection.h +++ b/google/cloud/osconfig/v1/os_config_zonal_connection.h @@ -22,8 +22,10 @@ #include "google/cloud/osconfig/v1/internal/os_config_zonal_retry_traits.h" #include "google/cloud/osconfig/v1/os_config_zonal_connection_idempotency_policy.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/internal/retry_policy_impl.h" +#include "google/cloud/no_await_tag.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" #include "google/cloud/status_or.h" @@ -194,11 +196,29 @@ class OsConfigZonalServiceConnection { google::cloud::osconfig::v1::CreateOSPolicyAssignmentRequest const& request); + virtual StatusOr CreateOSPolicyAssignment( + ExperimentalTag, NoAwaitTag, + google::cloud::osconfig::v1::CreateOSPolicyAssignmentRequest const& + request); + + virtual future> + CreateOSPolicyAssignment(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> UpdateOSPolicyAssignment( google::cloud::osconfig::v1::UpdateOSPolicyAssignmentRequest const& request); + virtual StatusOr UpdateOSPolicyAssignment( + ExperimentalTag, NoAwaitTag, + google::cloud::osconfig::v1::UpdateOSPolicyAssignmentRequest const& + request); + + virtual future> + UpdateOSPolicyAssignment(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StatusOr GetOSPolicyAssignment( google::cloud::osconfig::v1::GetOSPolicyAssignmentRequest const& request); @@ -218,6 +238,16 @@ class OsConfigZonalServiceConnection { google::cloud::osconfig::v1::DeleteOSPolicyAssignmentRequest const& request); + virtual StatusOr DeleteOSPolicyAssignment( + ExperimentalTag, NoAwaitTag, + google::cloud::osconfig::v1::DeleteOSPolicyAssignmentRequest const& + request); + + virtual future> + DeleteOSPolicyAssignment(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StatusOr GetOSPolicyAssignmentReport( google::cloud::osconfig::v1::GetOSPolicyAssignmentReportRequest const& diff --git a/google/cloud/oslogin/v1/os_login_connection.h b/google/cloud/oslogin/v1/os_login_connection.h index daa53d7d945a3..681108a1e6760 100644 --- a/google/cloud/oslogin/v1/os_login_connection.h +++ b/google/cloud/oslogin/v1/os_login_connection.h @@ -22,6 +22,7 @@ #include "google/cloud/oslogin/v1/internal/os_login_retry_traits.h" #include "google/cloud/oslogin/v1/os_login_connection_idempotency_policy.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/internal/retry_policy_impl.h" #include "google/cloud/options.h" #include "google/cloud/status_or.h" diff --git a/google/cloud/policysimulator/v1/internal/simulator_connection_impl.cc b/google/cloud/policysimulator/v1/internal/simulator_connection_impl.cc index e3df499d0f1b7..1d423505a5b05 100644 --- a/google/cloud/policysimulator/v1/internal/simulator_connection_impl.cc +++ b/google/cloud/policysimulator/v1/internal/simulator_connection_impl.cc @@ -121,6 +121,59 @@ SimulatorConnectionImpl::CreateReplay( polling_policy(*current), __func__); } +StatusOr SimulatorConnectionImpl::CreateReplay( + ExperimentalTag, NoAwaitTag, + google::cloud::policysimulator::v1::CreateReplayRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateReplay(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::policysimulator::v1::CreateReplayRequest const& + request) { + return stub_->CreateReplay(context, options, request); + }, + *current, request, __func__); +} + +future> +SimulatorConnectionImpl::CreateReplay( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to CreateReplay", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::policysimulator::v1::Replay>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::policysimulator::v1::Replay>, + polling_policy(*current), __func__); +} + StreamRange SimulatorConnectionImpl::ListReplayResults( google::cloud::policysimulator::v1::ListReplayResultsRequest request) { diff --git a/google/cloud/policysimulator/v1/internal/simulator_connection_impl.h b/google/cloud/policysimulator/v1/internal/simulator_connection_impl.h index fdf9b964c98fe..cea3732a4235e 100644 --- a/google/cloud/policysimulator/v1/internal/simulator_connection_impl.h +++ b/google/cloud/policysimulator/v1/internal/simulator_connection_impl.h @@ -59,6 +59,15 @@ class SimulatorConnectionImpl : public policysimulator_v1::SimulatorConnection { google::cloud::policysimulator::v1::CreateReplayRequest const& request) override; + StatusOr CreateReplay( + ExperimentalTag, NoAwaitTag, + google::cloud::policysimulator::v1::CreateReplayRequest const& request) + override; + + future> CreateReplay( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListReplayResults(google::cloud::policysimulator::v1::ListReplayResultsRequest request) override; diff --git a/google/cloud/policysimulator/v1/internal/simulator_tracing_connection.cc b/google/cloud/policysimulator/v1/internal/simulator_tracing_connection.cc index 37d016d48ec9c..4915ae524c185 100644 --- a/google/cloud/policysimulator/v1/internal/simulator_tracing_connection.cc +++ b/google/cloud/policysimulator/v1/internal/simulator_tracing_connection.cc @@ -51,6 +51,27 @@ SimulatorTracingConnection::CreateReplay( return internal::EndSpan(std::move(span), child_->CreateReplay(request)); } +StatusOr +SimulatorTracingConnection::CreateReplay( + ExperimentalTag, NoAwaitTag, + google::cloud::policysimulator::v1::CreateReplayRequest const& request) { + auto span = internal::MakeSpan( + "policysimulator_v1::SimulatorConnection::CreateReplay"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->CreateReplay(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +SimulatorTracingConnection::CreateReplay( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "policysimulator_v1::SimulatorConnection::CreateReplay"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->CreateReplay(ExperimentalTag{}, operation)); +} + StreamRange SimulatorTracingConnection::ListReplayResults( google::cloud::policysimulator::v1::ListReplayResultsRequest request) { diff --git a/google/cloud/policysimulator/v1/internal/simulator_tracing_connection.h b/google/cloud/policysimulator/v1/internal/simulator_tracing_connection.h index 1453004125631..d1fab5b7c324d 100644 --- a/google/cloud/policysimulator/v1/internal/simulator_tracing_connection.h +++ b/google/cloud/policysimulator/v1/internal/simulator_tracing_connection.h @@ -48,6 +48,15 @@ class SimulatorTracingConnection google::cloud::policysimulator::v1::CreateReplayRequest const& request) override; + StatusOr CreateReplay( + ExperimentalTag, NoAwaitTag, + google::cloud::policysimulator::v1::CreateReplayRequest const& request) + override; + + future> CreateReplay( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListReplayResults(google::cloud::policysimulator::v1::ListReplayResultsRequest request) override; diff --git a/google/cloud/policysimulator/v1/mocks/mock_simulator_connection.h b/google/cloud/policysimulator/v1/mocks/mock_simulator_connection.h index eeae70d8e9488..ad1f1e9ce34ea 100644 --- a/google/cloud/policysimulator/v1/mocks/mock_simulator_connection.h +++ b/google/cloud/policysimulator/v1/mocks/mock_simulator_connection.h @@ -57,6 +57,18 @@ class MockSimulatorConnection : public policysimulator_v1::SimulatorConnection { (google::cloud::policysimulator::v1::CreateReplayRequest const& request), (override)); + MOCK_METHOD( + StatusOr, CreateReplay, + (ExperimentalTag, NoAwaitTag, + google::cloud::policysimulator::v1::CreateReplayRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateReplay, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( (StreamRange), ListReplayResults, diff --git a/google/cloud/policysimulator/v1/simulator_connection.cc b/google/cloud/policysimulator/v1/simulator_connection.cc index ace72649a0bee..8eecd2ff96c23 100644 --- a/google/cloud/policysimulator/v1/simulator_connection.cc +++ b/google/cloud/policysimulator/v1/simulator_connection.cc @@ -52,6 +52,21 @@ SimulatorConnection::CreateReplay( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr SimulatorConnection::CreateReplay( + ExperimentalTag, NoAwaitTag, + google::cloud::policysimulator::v1::CreateReplayRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +SimulatorConnection::CreateReplay(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StreamRange SimulatorConnection::ListReplayResults( google::cloud::policysimulator::v1:: diff --git a/google/cloud/policysimulator/v1/simulator_connection.h b/google/cloud/policysimulator/v1/simulator_connection.h index 837e4235dd8fe..d143ecbf6ee45 100644 --- a/google/cloud/policysimulator/v1/simulator_connection.h +++ b/google/cloud/policysimulator/v1/simulator_connection.h @@ -22,8 +22,10 @@ #include "google/cloud/policysimulator/v1/internal/simulator_retry_traits.h" #include "google/cloud/policysimulator/v1/simulator_connection_idempotency_policy.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/internal/retry_policy_impl.h" +#include "google/cloud/no_await_tag.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" #include "google/cloud/status_or.h" @@ -191,6 +193,14 @@ class SimulatorConnection { CreateReplay( google::cloud::policysimulator::v1::CreateReplayRequest const& request); + virtual StatusOr CreateReplay( + ExperimentalTag, NoAwaitTag, + google::cloud::policysimulator::v1::CreateReplayRequest const& request); + + virtual future> + CreateReplay(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StreamRange ListReplayResults( google::cloud::policysimulator::v1::ListReplayResultsRequest request); diff --git a/google/cloud/policytroubleshooter/iam/v3/policy_troubleshooter_connection.h b/google/cloud/policytroubleshooter/iam/v3/policy_troubleshooter_connection.h index c5ca4b7587b9e..e42476acc3576 100644 --- a/google/cloud/policytroubleshooter/iam/v3/policy_troubleshooter_connection.h +++ b/google/cloud/policytroubleshooter/iam/v3/policy_troubleshooter_connection.h @@ -22,6 +22,7 @@ #include "google/cloud/policytroubleshooter/iam/v3/internal/policy_troubleshooter_retry_traits.h" #include "google/cloud/policytroubleshooter/iam/v3/policy_troubleshooter_connection_idempotency_policy.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/internal/retry_policy_impl.h" #include "google/cloud/options.h" #include "google/cloud/status_or.h" diff --git a/google/cloud/policytroubleshooter/v1/iam_checker_connection.h b/google/cloud/policytroubleshooter/v1/iam_checker_connection.h index f51ebef4c44cd..743ee119da5c3 100644 --- a/google/cloud/policytroubleshooter/v1/iam_checker_connection.h +++ b/google/cloud/policytroubleshooter/v1/iam_checker_connection.h @@ -22,6 +22,7 @@ #include "google/cloud/policytroubleshooter/v1/iam_checker_connection_idempotency_policy.h" #include "google/cloud/policytroubleshooter/v1/internal/iam_checker_retry_traits.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/internal/retry_policy_impl.h" #include "google/cloud/options.h" #include "google/cloud/status_or.h" diff --git a/google/cloud/privateca/v1/certificate_authority_connection.cc b/google/cloud/privateca/v1/certificate_authority_connection.cc index 9a0c9541c7655..2d803518e67c7 100644 --- a/google/cloud/privateca/v1/certificate_authority_connection.cc +++ b/google/cloud/privateca/v1/certificate_authority_connection.cc @@ -80,6 +80,23 @@ CertificateAuthorityServiceConnection::ActivateCertificateAuthority( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +CertificateAuthorityServiceConnection::ActivateCertificateAuthority( + ExperimentalTag, NoAwaitTag, + google::cloud::security::privateca::v1:: + ActivateCertificateAuthorityRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +CertificateAuthorityServiceConnection::ActivateCertificateAuthority( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> CertificateAuthorityServiceConnection::CreateCertificateAuthority( google::cloud::security::privateca::v1:: @@ -89,10 +106,44 @@ CertificateAuthorityServiceConnection::CreateCertificateAuthority( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +CertificateAuthorityServiceConnection::CreateCertificateAuthority( + ExperimentalTag, NoAwaitTag, + google::cloud::security::privateca::v1:: + CreateCertificateAuthorityRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> +CertificateAuthorityServiceConnection::CreateCertificateAuthority( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +CertificateAuthorityServiceConnection::DisableCertificateAuthority( + google::cloud::security::privateca::v1:: + DisableCertificateAuthorityRequest const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +StatusOr CertificateAuthorityServiceConnection::DisableCertificateAuthority( + ExperimentalTag, NoAwaitTag, google::cloud::security::privateca::v1:: DisableCertificateAuthorityRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +CertificateAuthorityServiceConnection::DisableCertificateAuthority( + ExperimentalTag, google::longrunning::Operation const&) { return google::cloud::make_ready_future< StatusOr>( Status(StatusCode::kUnimplemented, "not implemented")); @@ -107,6 +158,23 @@ CertificateAuthorityServiceConnection::EnableCertificateAuthority( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +CertificateAuthorityServiceConnection::EnableCertificateAuthority( + ExperimentalTag, NoAwaitTag, + google::cloud::security::privateca::v1:: + EnableCertificateAuthorityRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +CertificateAuthorityServiceConnection::EnableCertificateAuthority( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr CertificateAuthorityServiceConnection::FetchCertificateAuthorityCsr( @@ -139,6 +207,23 @@ CertificateAuthorityServiceConnection::UndeleteCertificateAuthority( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +CertificateAuthorityServiceConnection::UndeleteCertificateAuthority( + ExperimentalTag, NoAwaitTag, + google::cloud::security::privateca::v1:: + UndeleteCertificateAuthorityRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +CertificateAuthorityServiceConnection::UndeleteCertificateAuthority( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> CertificateAuthorityServiceConnection::DeleteCertificateAuthority( google::cloud::security::privateca::v1:: @@ -148,10 +233,44 @@ CertificateAuthorityServiceConnection::DeleteCertificateAuthority( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +CertificateAuthorityServiceConnection::DeleteCertificateAuthority( + ExperimentalTag, NoAwaitTag, + google::cloud::security::privateca::v1:: + DeleteCertificateAuthorityRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> +CertificateAuthorityServiceConnection::DeleteCertificateAuthority( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +CertificateAuthorityServiceConnection::UpdateCertificateAuthority( + google::cloud::security::privateca::v1:: + UpdateCertificateAuthorityRequest const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +StatusOr CertificateAuthorityServiceConnection::UpdateCertificateAuthority( + ExperimentalTag, NoAwaitTag, google::cloud::security::privateca::v1:: UpdateCertificateAuthorityRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +CertificateAuthorityServiceConnection::UpdateCertificateAuthority( + ExperimentalTag, google::longrunning::Operation const&) { return google::cloud::make_ready_future< StatusOr>( Status(StatusCode::kUnimplemented, "not implemented")); @@ -165,6 +284,22 @@ CertificateAuthorityServiceConnection::CreateCaPool( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +CertificateAuthorityServiceConnection::CreateCaPool( + ExperimentalTag, NoAwaitTag, + google::cloud::security::privateca::v1::CreateCaPoolRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +CertificateAuthorityServiceConnection::CreateCaPool( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> CertificateAuthorityServiceConnection::UpdateCaPool( google::cloud::security::privateca::v1::UpdateCaPoolRequest const&) { @@ -173,6 +308,22 @@ CertificateAuthorityServiceConnection::UpdateCaPool( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +CertificateAuthorityServiceConnection::UpdateCaPool( + ExperimentalTag, NoAwaitTag, + google::cloud::security::privateca::v1::UpdateCaPoolRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +CertificateAuthorityServiceConnection::UpdateCaPool( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr CertificateAuthorityServiceConnection::GetCaPool( google::cloud::security::privateca::v1::GetCaPoolRequest const&) { @@ -195,6 +346,22 @@ CertificateAuthorityServiceConnection::DeleteCaPool( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +CertificateAuthorityServiceConnection::DeleteCaPool( + ExperimentalTag, NoAwaitTag, + google::cloud::security::privateca::v1::DeleteCaPoolRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +CertificateAuthorityServiceConnection::DeleteCaPool( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr CertificateAuthorityServiceConnection::FetchCaCerts( google::cloud::security::privateca::v1::FetchCaCertsRequest const&) { @@ -226,6 +393,24 @@ CertificateAuthorityServiceConnection::UpdateCertificateRevocationList( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +CertificateAuthorityServiceConnection::UpdateCertificateRevocationList( + ExperimentalTag, NoAwaitTag, + google::cloud::security::privateca::v1:: + UpdateCertificateRevocationListRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future< + StatusOr> +CertificateAuthorityServiceConnection::UpdateCertificateRevocationList( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> CertificateAuthorityServiceConnection::CreateCertificateTemplate( google::cloud::security::privateca::v1:: @@ -235,6 +420,23 @@ CertificateAuthorityServiceConnection::CreateCertificateTemplate( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +CertificateAuthorityServiceConnection::CreateCertificateTemplate( + ExperimentalTag, NoAwaitTag, + google::cloud::security::privateca::v1:: + CreateCertificateTemplateRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +CertificateAuthorityServiceConnection::CreateCertificateTemplate( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> CertificateAuthorityServiceConnection::DeleteCertificateTemplate( google::cloud::security::privateca::v1:: @@ -244,6 +446,23 @@ CertificateAuthorityServiceConnection::DeleteCertificateTemplate( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +CertificateAuthorityServiceConnection::DeleteCertificateTemplate( + ExperimentalTag, NoAwaitTag, + google::cloud::security::privateca::v1:: + DeleteCertificateTemplateRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +CertificateAuthorityServiceConnection::DeleteCertificateTemplate( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr CertificateAuthorityServiceConnection::GetCertificateTemplate( google::cloud::security::privateca::v1:: @@ -268,6 +487,23 @@ CertificateAuthorityServiceConnection::UpdateCertificateTemplate( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +CertificateAuthorityServiceConnection::UpdateCertificateTemplate( + ExperimentalTag, NoAwaitTag, + google::cloud::security::privateca::v1:: + UpdateCertificateTemplateRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +CertificateAuthorityServiceConnection::UpdateCertificateTemplate( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + std::shared_ptr MakeCertificateAuthorityServiceConnection(Options options) { internal::CheckExpectedOptions ActivateCertificateAuthority( + ExperimentalTag, NoAwaitTag, + google::cloud::security::privateca::v1:: + ActivateCertificateAuthorityRequest const& request); + + virtual future< + StatusOr> + ActivateCertificateAuthority(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future< StatusOr> CreateCertificateAuthority( google::cloud::security::privateca::v1:: CreateCertificateAuthorityRequest const& request); + virtual StatusOr CreateCertificateAuthority( + ExperimentalTag, NoAwaitTag, + google::cloud::security::privateca::v1:: + CreateCertificateAuthorityRequest const& request); + + virtual future< + StatusOr> + CreateCertificateAuthority(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future< StatusOr> DisableCertificateAuthority( google::cloud::security::privateca::v1:: DisableCertificateAuthorityRequest const& request); + virtual StatusOr DisableCertificateAuthority( + ExperimentalTag, NoAwaitTag, + google::cloud::security::privateca::v1:: + DisableCertificateAuthorityRequest const& request); + + virtual future< + StatusOr> + DisableCertificateAuthority(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future< StatusOr> EnableCertificateAuthority( google::cloud::security::privateca::v1:: EnableCertificateAuthorityRequest const& request); + virtual StatusOr EnableCertificateAuthority( + ExperimentalTag, NoAwaitTag, + google::cloud::security::privateca::v1:: + EnableCertificateAuthorityRequest const& request); + + virtual future< + StatusOr> + EnableCertificateAuthority(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StatusOr FetchCertificateAuthorityCsr( @@ -274,28 +316,76 @@ class CertificateAuthorityServiceConnection { google::cloud::security::privateca::v1:: UndeleteCertificateAuthorityRequest const& request); + virtual StatusOr UndeleteCertificateAuthority( + ExperimentalTag, NoAwaitTag, + google::cloud::security::privateca::v1:: + UndeleteCertificateAuthorityRequest const& request); + + virtual future< + StatusOr> + UndeleteCertificateAuthority(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future< StatusOr> DeleteCertificateAuthority( google::cloud::security::privateca::v1:: DeleteCertificateAuthorityRequest const& request); + virtual StatusOr DeleteCertificateAuthority( + ExperimentalTag, NoAwaitTag, + google::cloud::security::privateca::v1:: + DeleteCertificateAuthorityRequest const& request); + + virtual future< + StatusOr> + DeleteCertificateAuthority(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future< StatusOr> UpdateCertificateAuthority( google::cloud::security::privateca::v1:: UpdateCertificateAuthorityRequest const& request); + virtual StatusOr UpdateCertificateAuthority( + ExperimentalTag, NoAwaitTag, + google::cloud::security::privateca::v1:: + UpdateCertificateAuthorityRequest const& request); + + virtual future< + StatusOr> + UpdateCertificateAuthority(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> CreateCaPool( google::cloud::security::privateca::v1::CreateCaPoolRequest const& request); + virtual StatusOr CreateCaPool( + ExperimentalTag, NoAwaitTag, + google::cloud::security::privateca::v1::CreateCaPoolRequest const& + request); + + virtual future> + CreateCaPool(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> UpdateCaPool( google::cloud::security::privateca::v1::UpdateCaPoolRequest const& request); + virtual StatusOr UpdateCaPool( + ExperimentalTag, NoAwaitTag, + google::cloud::security::privateca::v1::UpdateCaPoolRequest const& + request); + + virtual future> + UpdateCaPool(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StatusOr GetCaPool( google::cloud::security::privateca::v1::GetCaPoolRequest const& request); @@ -309,6 +399,16 @@ class CertificateAuthorityServiceConnection { google::cloud::security::privateca::v1::DeleteCaPoolRequest const& request); + virtual StatusOr DeleteCaPool( + ExperimentalTag, NoAwaitTag, + google::cloud::security::privateca::v1::DeleteCaPoolRequest const& + request); + + virtual future< + StatusOr> + DeleteCaPool(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StatusOr FetchCaCerts( google::cloud::security::privateca::v1::FetchCaCertsRequest const& @@ -332,18 +432,49 @@ class CertificateAuthorityServiceConnection { google::cloud::security::privateca::v1:: UpdateCertificateRevocationListRequest const& request); + virtual StatusOr + UpdateCertificateRevocationList( + ExperimentalTag, NoAwaitTag, + google::cloud::security::privateca::v1:: + UpdateCertificateRevocationListRequest const& request); + + virtual future> + UpdateCertificateRevocationList( + ExperimentalTag, google::longrunning::Operation const& operation); + virtual future< StatusOr> CreateCertificateTemplate( google::cloud::security::privateca::v1:: CreateCertificateTemplateRequest const& request); + virtual StatusOr CreateCertificateTemplate( + ExperimentalTag, NoAwaitTag, + google::cloud::security::privateca::v1:: + CreateCertificateTemplateRequest const& request); + + virtual future< + StatusOr> + CreateCertificateTemplate(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future< StatusOr> DeleteCertificateTemplate( google::cloud::security::privateca::v1:: DeleteCertificateTemplateRequest const& request); + virtual StatusOr DeleteCertificateTemplate( + ExperimentalTag, NoAwaitTag, + google::cloud::security::privateca::v1:: + DeleteCertificateTemplateRequest const& request); + + virtual future< + StatusOr> + DeleteCertificateTemplate(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StatusOr GetCertificateTemplate(google::cloud::security::privateca::v1:: GetCertificateTemplateRequest const& request); @@ -359,6 +490,16 @@ class CertificateAuthorityServiceConnection { UpdateCertificateTemplate( google::cloud::security::privateca::v1:: UpdateCertificateTemplateRequest const& request); + + virtual StatusOr UpdateCertificateTemplate( + ExperimentalTag, NoAwaitTag, + google::cloud::security::privateca::v1:: + UpdateCertificateTemplateRequest const& request); + + virtual future< + StatusOr> + UpdateCertificateTemplate(ExperimentalTag, + google::longrunning::Operation const& operation); }; /** diff --git a/google/cloud/privateca/v1/internal/certificate_authority_connection_impl.cc b/google/cloud/privateca/v1/internal/certificate_authority_connection_impl.cc index 253afe3fd73e7..0732e78c2d502 100644 --- a/google/cloud/privateca/v1/internal/certificate_authority_connection_impl.cc +++ b/google/cloud/privateca/v1/internal/certificate_authority_connection_impl.cc @@ -216,6 +216,61 @@ CertificateAuthorityServiceConnectionImpl::ActivateCertificateAuthority( polling_policy(*current), __func__); } +StatusOr +CertificateAuthorityServiceConnectionImpl::ActivateCertificateAuthority( + ExperimentalTag, NoAwaitTag, + google::cloud::security::privateca::v1:: + ActivateCertificateAuthorityRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->ActivateCertificateAuthority(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::security::privateca::v1:: + ActivateCertificateAuthorityRequest const& request) { + return stub_->ActivateCertificateAuthority(context, options, request); + }, + *current, request, __func__); +} + +future> +CertificateAuthorityServiceConnectionImpl::ActivateCertificateAuthority( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to ActivateCertificateAuthority", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::security::privateca::v1::CertificateAuthority>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::security::privateca::v1::CertificateAuthority>, + polling_policy(*current), __func__); +} + future> CertificateAuthorityServiceConnectionImpl::CreateCertificateAuthority( google::cloud::security::privateca::v1:: @@ -256,6 +311,61 @@ CertificateAuthorityServiceConnectionImpl::CreateCertificateAuthority( polling_policy(*current), __func__); } +StatusOr +CertificateAuthorityServiceConnectionImpl::CreateCertificateAuthority( + ExperimentalTag, NoAwaitTag, + google::cloud::security::privateca::v1:: + CreateCertificateAuthorityRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateCertificateAuthority(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::security::privateca::v1:: + CreateCertificateAuthorityRequest const& request) { + return stub_->CreateCertificateAuthority(context, options, request); + }, + *current, request, __func__); +} + +future> +CertificateAuthorityServiceConnectionImpl::CreateCertificateAuthority( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to CreateCertificateAuthority", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::security::privateca::v1::CertificateAuthority>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::security::privateca::v1::CertificateAuthority>, + polling_policy(*current), __func__); +} + future> CertificateAuthorityServiceConnectionImpl::DisableCertificateAuthority( google::cloud::security::privateca::v1:: @@ -296,6 +406,61 @@ CertificateAuthorityServiceConnectionImpl::DisableCertificateAuthority( polling_policy(*current), __func__); } +StatusOr +CertificateAuthorityServiceConnectionImpl::DisableCertificateAuthority( + ExperimentalTag, NoAwaitTag, + google::cloud::security::privateca::v1:: + DisableCertificateAuthorityRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DisableCertificateAuthority(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::security::privateca::v1:: + DisableCertificateAuthorityRequest const& request) { + return stub_->DisableCertificateAuthority(context, options, request); + }, + *current, request, __func__); +} + +future> +CertificateAuthorityServiceConnectionImpl::DisableCertificateAuthority( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DisableCertificateAuthority", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::security::privateca::v1::CertificateAuthority>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::security::privateca::v1::CertificateAuthority>, + polling_policy(*current), __func__); +} + future> CertificateAuthorityServiceConnectionImpl::EnableCertificateAuthority( google::cloud::security::privateca::v1:: @@ -336,6 +501,61 @@ CertificateAuthorityServiceConnectionImpl::EnableCertificateAuthority( polling_policy(*current), __func__); } +StatusOr +CertificateAuthorityServiceConnectionImpl::EnableCertificateAuthority( + ExperimentalTag, NoAwaitTag, + google::cloud::security::privateca::v1:: + EnableCertificateAuthorityRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->EnableCertificateAuthority(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::security::privateca::v1:: + EnableCertificateAuthorityRequest const& request) { + return stub_->EnableCertificateAuthority(context, options, request); + }, + *current, request, __func__); +} + +future> +CertificateAuthorityServiceConnectionImpl::EnableCertificateAuthority( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to EnableCertificateAuthority", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::security::privateca::v1::CertificateAuthority>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::security::privateca::v1::CertificateAuthority>, + polling_policy(*current), __func__); +} + StatusOr CertificateAuthorityServiceConnectionImpl::FetchCertificateAuthorityCsr( @@ -450,6 +670,61 @@ CertificateAuthorityServiceConnectionImpl::UndeleteCertificateAuthority( polling_policy(*current), __func__); } +StatusOr +CertificateAuthorityServiceConnectionImpl::UndeleteCertificateAuthority( + ExperimentalTag, NoAwaitTag, + google::cloud::security::privateca::v1:: + UndeleteCertificateAuthorityRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UndeleteCertificateAuthority(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::security::privateca::v1:: + UndeleteCertificateAuthorityRequest const& request) { + return stub_->UndeleteCertificateAuthority(context, options, request); + }, + *current, request, __func__); +} + +future> +CertificateAuthorityServiceConnectionImpl::UndeleteCertificateAuthority( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to UndeleteCertificateAuthority", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::security::privateca::v1::CertificateAuthority>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::security::privateca::v1::CertificateAuthority>, + polling_policy(*current), __func__); +} + future> CertificateAuthorityServiceConnectionImpl::DeleteCertificateAuthority( google::cloud::security::privateca::v1:: @@ -490,6 +765,61 @@ CertificateAuthorityServiceConnectionImpl::DeleteCertificateAuthority( polling_policy(*current), __func__); } +StatusOr +CertificateAuthorityServiceConnectionImpl::DeleteCertificateAuthority( + ExperimentalTag, NoAwaitTag, + google::cloud::security::privateca::v1:: + DeleteCertificateAuthorityRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteCertificateAuthority(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::security::privateca::v1:: + DeleteCertificateAuthorityRequest const& request) { + return stub_->DeleteCertificateAuthority(context, options, request); + }, + *current, request, __func__); +} + +future> +CertificateAuthorityServiceConnectionImpl::DeleteCertificateAuthority( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteCertificateAuthority", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::security::privateca::v1::CertificateAuthority>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::security::privateca::v1::CertificateAuthority>, + polling_policy(*current), __func__); +} + future> CertificateAuthorityServiceConnectionImpl::UpdateCertificateAuthority( google::cloud::security::privateca::v1:: @@ -525,31 +855,142 @@ CertificateAuthorityServiceConnectionImpl::UpdateCertificateAuthority( std::move(options), request); }, &google::cloud::internal::ExtractLongRunningResultResponse< - google::cloud::security::privateca::v1::CertificateAuthority>, + google::cloud::security::privateca::v1::CertificateAuthority>, + retry_policy(*current), backoff_policy(*current), idempotent, + polling_policy(*current), __func__); +} + +StatusOr +CertificateAuthorityServiceConnectionImpl::UpdateCertificateAuthority( + ExperimentalTag, NoAwaitTag, + google::cloud::security::privateca::v1:: + UpdateCertificateAuthorityRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UpdateCertificateAuthority(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::security::privateca::v1:: + UpdateCertificateAuthorityRequest const& request) { + return stub_->UpdateCertificateAuthority(context, options, request); + }, + *current, request, __func__); +} + +future> +CertificateAuthorityServiceConnectionImpl::UpdateCertificateAuthority( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to UpdateCertificateAuthority", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::security::privateca::v1::CertificateAuthority>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::security::privateca::v1::CertificateAuthority>, + polling_policy(*current), __func__); +} + +future> +CertificateAuthorityServiceConnectionImpl::CreateCaPool( + google::cloud::security::privateca::v1::CreateCaPoolRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + auto request_copy = request; + auto const idempotent = + idempotency_policy(*current)->CreateCaPool(request_copy); + return google::cloud::internal::AsyncLongRunningOperation< + google::cloud::security::privateca::v1::CaPool>( + background_->cq(), current, std::move(request_copy), + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::security::privateca::v1::CreateCaPoolRequest const& + request) { + return stub->AsyncCreateCaPool(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::security::privateca::v1::CaPool>, retry_policy(*current), backoff_policy(*current), idempotent, polling_policy(*current), __func__); } -future> +StatusOr CertificateAuthorityServiceConnectionImpl::CreateCaPool( + ExperimentalTag, NoAwaitTag, google::cloud::security::privateca::v1::CreateCaPoolRequest const& request) { auto current = google::cloud::internal::SaveCurrentOptions(); - auto request_copy = request; - auto const idempotent = - idempotency_policy(*current)->CreateCaPool(request_copy); - return google::cloud::internal::AsyncLongRunningOperation< - google::cloud::security::privateca::v1::CaPool>( - background_->cq(), current, std::move(request_copy), - [stub = stub_]( - google::cloud::CompletionQueue& cq, - std::shared_ptr context, - google::cloud::internal::ImmutableOptions options, - google::cloud::security::privateca::v1::CreateCaPoolRequest const& - request) { - return stub->AsyncCreateCaPool(cq, std::move(context), - std::move(options), request); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateCaPool(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::security::privateca::v1::CreateCaPoolRequest const& + request) { + return stub_->CreateCaPool(context, options, request); }, + *current, request, __func__); +} + +future> +CertificateAuthorityServiceConnectionImpl::CreateCaPool( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to CreateCaPool", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::security::privateca::v1::CaPool>( + background_->cq(), current, operation, [stub = stub_](google::cloud::CompletionQueue& cq, std::shared_ptr context, google::cloud::internal::ImmutableOptions options, @@ -567,7 +1008,6 @@ CertificateAuthorityServiceConnectionImpl::CreateCaPool( }, &google::cloud::internal::ExtractLongRunningResultResponse< google::cloud::security::privateca::v1::CaPool>, - retry_policy(*current), backoff_policy(*current), idempotent, polling_policy(*current), __func__); } @@ -612,6 +1052,61 @@ CertificateAuthorityServiceConnectionImpl::UpdateCaPool( polling_policy(*current), __func__); } +StatusOr +CertificateAuthorityServiceConnectionImpl::UpdateCaPool( + ExperimentalTag, NoAwaitTag, + google::cloud::security::privateca::v1::UpdateCaPoolRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UpdateCaPool(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::security::privateca::v1::UpdateCaPoolRequest const& + request) { + return stub_->UpdateCaPool(context, options, request); + }, + *current, request, __func__); +} + +future> +CertificateAuthorityServiceConnectionImpl::UpdateCaPool( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to UpdateCaPool", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::security::privateca::v1::CaPool>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::security::privateca::v1::CaPool>, + polling_policy(*current), __func__); +} + StatusOr CertificateAuthorityServiceConnectionImpl::GetCaPool( google::cloud::security::privateca::v1::GetCaPoolRequest const& request) { @@ -703,6 +1198,61 @@ CertificateAuthorityServiceConnectionImpl::DeleteCaPool( polling_policy(*current), __func__); } +StatusOr +CertificateAuthorityServiceConnectionImpl::DeleteCaPool( + ExperimentalTag, NoAwaitTag, + google::cloud::security::privateca::v1::DeleteCaPoolRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteCaPool(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::security::privateca::v1::DeleteCaPoolRequest const& + request) { + return stub_->DeleteCaPool(context, options, request); + }, + *current, request, __func__); +} + +future> +CertificateAuthorityServiceConnectionImpl::DeleteCaPool( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteCaPool", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::security::privateca::v1::OperationMetadata>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::cloud::security::privateca::v1::OperationMetadata>, + polling_policy(*current), __func__); +} + StatusOr CertificateAuthorityServiceConnectionImpl::FetchCaCerts( google::cloud::security::privateca::v1::FetchCaCertsRequest const& @@ -819,6 +1369,63 @@ CertificateAuthorityServiceConnectionImpl::UpdateCertificateRevocationList( polling_policy(*current), __func__); } +StatusOr +CertificateAuthorityServiceConnectionImpl::UpdateCertificateRevocationList( + ExperimentalTag, NoAwaitTag, + google::cloud::security::privateca::v1:: + UpdateCertificateRevocationListRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UpdateCertificateRevocationList(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::security::privateca::v1:: + UpdateCertificateRevocationListRequest const& request) { + return stub_->UpdateCertificateRevocationList(context, options, + request); + }, + *current, request, __func__); +} + +future< + StatusOr> +CertificateAuthorityServiceConnectionImpl::UpdateCertificateRevocationList( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to UpdateCertificateRevocationList", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::security::privateca::v1::CertificateRevocationList>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::security::privateca::v1::CertificateRevocationList>, + polling_policy(*current), __func__); +} + future> CertificateAuthorityServiceConnectionImpl::CreateCertificateTemplate( google::cloud::security::privateca::v1:: @@ -859,6 +1466,61 @@ CertificateAuthorityServiceConnectionImpl::CreateCertificateTemplate( polling_policy(*current), __func__); } +StatusOr +CertificateAuthorityServiceConnectionImpl::CreateCertificateTemplate( + ExperimentalTag, NoAwaitTag, + google::cloud::security::privateca::v1:: + CreateCertificateTemplateRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateCertificateTemplate(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::security::privateca::v1:: + CreateCertificateTemplateRequest const& request) { + return stub_->CreateCertificateTemplate(context, options, request); + }, + *current, request, __func__); +} + +future> +CertificateAuthorityServiceConnectionImpl::CreateCertificateTemplate( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to CreateCertificateTemplate", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::security::privateca::v1::CertificateTemplate>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::security::privateca::v1::CertificateTemplate>, + polling_policy(*current), __func__); +} + future> CertificateAuthorityServiceConnectionImpl::DeleteCertificateTemplate( google::cloud::security::privateca::v1:: @@ -899,6 +1561,61 @@ CertificateAuthorityServiceConnectionImpl::DeleteCertificateTemplate( polling_policy(*current), __func__); } +StatusOr +CertificateAuthorityServiceConnectionImpl::DeleteCertificateTemplate( + ExperimentalTag, NoAwaitTag, + google::cloud::security::privateca::v1:: + DeleteCertificateTemplateRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteCertificateTemplate(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::security::privateca::v1:: + DeleteCertificateTemplateRequest const& request) { + return stub_->DeleteCertificateTemplate(context, options, request); + }, + *current, request, __func__); +} + +future> +CertificateAuthorityServiceConnectionImpl::DeleteCertificateTemplate( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteCertificateTemplate", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::security::privateca::v1::OperationMetadata>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::cloud::security::privateca::v1::OperationMetadata>, + polling_policy(*current), __func__); +} + StatusOr CertificateAuthorityServiceConnectionImpl::GetCertificateTemplate( google::cloud::security::privateca::v1::GetCertificateTemplateRequest const& @@ -994,6 +1711,61 @@ CertificateAuthorityServiceConnectionImpl::UpdateCertificateTemplate( polling_policy(*current), __func__); } +StatusOr +CertificateAuthorityServiceConnectionImpl::UpdateCertificateTemplate( + ExperimentalTag, NoAwaitTag, + google::cloud::security::privateca::v1:: + UpdateCertificateTemplateRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UpdateCertificateTemplate(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::security::privateca::v1:: + UpdateCertificateTemplateRequest const& request) { + return stub_->UpdateCertificateTemplate(context, options, request); + }, + *current, request, __func__); +} + +future> +CertificateAuthorityServiceConnectionImpl::UpdateCertificateTemplate( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to UpdateCertificateTemplate", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::security::privateca::v1::CertificateTemplate>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::security::privateca::v1::CertificateTemplate>, + polling_policy(*current), __func__); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace privateca_v1_internal } // namespace cloud diff --git a/google/cloud/privateca/v1/internal/certificate_authority_connection_impl.h b/google/cloud/privateca/v1/internal/certificate_authority_connection_impl.h index 9664a2c63c8bc..ce19d7c11112d 100644 --- a/google/cloud/privateca/v1/internal/certificate_authority_connection_impl.h +++ b/google/cloud/privateca/v1/internal/certificate_authority_connection_impl.h @@ -82,21 +82,61 @@ class CertificateAuthorityServiceConnectionImpl google::cloud::security::privateca::v1:: ActivateCertificateAuthorityRequest const& request) override; + StatusOr ActivateCertificateAuthority( + ExperimentalTag, NoAwaitTag, + google::cloud::security::privateca::v1:: + ActivateCertificateAuthorityRequest const& request) override; + + future> + ActivateCertificateAuthority( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> CreateCertificateAuthority( google::cloud::security::privateca::v1:: CreateCertificateAuthorityRequest const& request) override; + StatusOr CreateCertificateAuthority( + ExperimentalTag, NoAwaitTag, + google::cloud::security::privateca::v1:: + CreateCertificateAuthorityRequest const& request) override; + + future> + CreateCertificateAuthority( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DisableCertificateAuthority( google::cloud::security::privateca::v1:: DisableCertificateAuthorityRequest const& request) override; + StatusOr DisableCertificateAuthority( + ExperimentalTag, NoAwaitTag, + google::cloud::security::privateca::v1:: + DisableCertificateAuthorityRequest const& request) override; + + future> + DisableCertificateAuthority( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> EnableCertificateAuthority( google::cloud::security::privateca::v1:: EnableCertificateAuthorityRequest const& request) override; + StatusOr EnableCertificateAuthority( + ExperimentalTag, NoAwaitTag, + google::cloud::security::privateca::v1:: + EnableCertificateAuthorityRequest const& request) override; + + future> + EnableCertificateAuthority( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr FetchCertificateAuthorityCsr( @@ -118,24 +158,72 @@ class CertificateAuthorityServiceConnectionImpl google::cloud::security::privateca::v1:: UndeleteCertificateAuthorityRequest const& request) override; + StatusOr UndeleteCertificateAuthority( + ExperimentalTag, NoAwaitTag, + google::cloud::security::privateca::v1:: + UndeleteCertificateAuthorityRequest const& request) override; + + future> + UndeleteCertificateAuthority( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteCertificateAuthority( google::cloud::security::privateca::v1:: DeleteCertificateAuthorityRequest const& request) override; + StatusOr DeleteCertificateAuthority( + ExperimentalTag, NoAwaitTag, + google::cloud::security::privateca::v1:: + DeleteCertificateAuthorityRequest const& request) override; + + future> + DeleteCertificateAuthority( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateCertificateAuthority( google::cloud::security::privateca::v1:: UpdateCertificateAuthorityRequest const& request) override; + StatusOr UpdateCertificateAuthority( + ExperimentalTag, NoAwaitTag, + google::cloud::security::privateca::v1:: + UpdateCertificateAuthorityRequest const& request) override; + + future> + UpdateCertificateAuthority( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> CreateCaPool( google::cloud::security::privateca::v1::CreateCaPoolRequest const& request) override; + StatusOr CreateCaPool( + ExperimentalTag, NoAwaitTag, + google::cloud::security::privateca::v1::CreateCaPoolRequest const& + request) override; + + future> CreateCaPool( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateCaPool( google::cloud::security::privateca::v1::UpdateCaPoolRequest const& request) override; + StatusOr UpdateCaPool( + ExperimentalTag, NoAwaitTag, + google::cloud::security::privateca::v1::UpdateCaPoolRequest const& + request) override; + + future> UpdateCaPool( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetCaPool( google::cloud::security::privateca::v1::GetCaPoolRequest const& request) override; @@ -149,6 +237,15 @@ class CertificateAuthorityServiceConnectionImpl google::cloud::security::privateca::v1::DeleteCaPoolRequest const& request) override; + StatusOr DeleteCaPool( + ExperimentalTag, NoAwaitTag, + google::cloud::security::privateca::v1::DeleteCaPoolRequest const& + request) override; + + future> + DeleteCaPool(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr FetchCaCerts( google::cloud::security::privateca::v1::FetchCaCertsRequest const& @@ -170,16 +267,47 @@ class CertificateAuthorityServiceConnectionImpl google::cloud::security::privateca::v1:: UpdateCertificateRevocationListRequest const& request) override; + StatusOr UpdateCertificateRevocationList( + ExperimentalTag, NoAwaitTag, + google::cloud::security::privateca::v1:: + UpdateCertificateRevocationListRequest const& request) override; + + future> + UpdateCertificateRevocationList( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> CreateCertificateTemplate( google::cloud::security::privateca::v1:: CreateCertificateTemplateRequest const& request) override; + StatusOr CreateCertificateTemplate( + ExperimentalTag, NoAwaitTag, + google::cloud::security::privateca::v1:: + CreateCertificateTemplateRequest const& request) override; + + future> + CreateCertificateTemplate( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteCertificateTemplate( google::cloud::security::privateca::v1:: DeleteCertificateTemplateRequest const& request) override; + StatusOr DeleteCertificateTemplate( + ExperimentalTag, NoAwaitTag, + google::cloud::security::privateca::v1:: + DeleteCertificateTemplateRequest const& request) override; + + future> + DeleteCertificateTemplate( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetCertificateTemplate( google::cloud::security::privateca::v1:: @@ -195,6 +323,16 @@ class CertificateAuthorityServiceConnectionImpl google::cloud::security::privateca::v1:: UpdateCertificateTemplateRequest const& request) override; + StatusOr UpdateCertificateTemplate( + ExperimentalTag, NoAwaitTag, + google::cloud::security::privateca::v1:: + UpdateCertificateTemplateRequest const& request) override; + + future> + UpdateCertificateTemplate( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + private: std::unique_ptr background_; std::shared_ptr stub_; diff --git a/google/cloud/privateca/v1/internal/certificate_authority_tracing_connection.cc b/google/cloud/privateca/v1/internal/certificate_authority_tracing_connection.cc index 7b47379438f75..7460d28debdcc 100644 --- a/google/cloud/privateca/v1/internal/certificate_authority_tracing_connection.cc +++ b/google/cloud/privateca/v1/internal/certificate_authority_tracing_connection.cc @@ -99,6 +99,32 @@ CertificateAuthorityServiceTracingConnection::ActivateCertificateAuthority( child_->ActivateCertificateAuthority(request)); } +StatusOr +CertificateAuthorityServiceTracingConnection::ActivateCertificateAuthority( + ExperimentalTag, NoAwaitTag, + google::cloud::security::privateca::v1:: + ActivateCertificateAuthorityRequest const& request) { + auto span = internal::MakeSpan( + "privateca_v1::CertificateAuthorityServiceConnection::" + "ActivateCertificateAuthority"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->ActivateCertificateAuthority(ExperimentalTag{}, + NoAwaitTag{}, request)); +} + +future> +CertificateAuthorityServiceTracingConnection::ActivateCertificateAuthority( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "privateca_v1::CertificateAuthorityServiceConnection::" + "ActivateCertificateAuthority"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), + child_->ActivateCertificateAuthority(ExperimentalTag{}, operation)); +} + future> CertificateAuthorityServiceTracingConnection::CreateCertificateAuthority( google::cloud::security::privateca::v1:: @@ -111,6 +137,31 @@ CertificateAuthorityServiceTracingConnection::CreateCertificateAuthority( child_->CreateCertificateAuthority(request)); } +StatusOr +CertificateAuthorityServiceTracingConnection::CreateCertificateAuthority( + ExperimentalTag, NoAwaitTag, + google::cloud::security::privateca::v1:: + CreateCertificateAuthorityRequest const& request) { + auto span = internal::MakeSpan( + "privateca_v1::CertificateAuthorityServiceConnection::" + "CreateCertificateAuthority"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->CreateCertificateAuthority(ExperimentalTag{}, NoAwaitTag{}, + request)); +} + +future> +CertificateAuthorityServiceTracingConnection::CreateCertificateAuthority( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "privateca_v1::CertificateAuthorityServiceConnection::" + "CreateCertificateAuthority"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->CreateCertificateAuthority( + ExperimentalTag{}, operation)); +} + future> CertificateAuthorityServiceTracingConnection::DisableCertificateAuthority( google::cloud::security::privateca::v1:: @@ -123,6 +174,31 @@ CertificateAuthorityServiceTracingConnection::DisableCertificateAuthority( child_->DisableCertificateAuthority(request)); } +StatusOr +CertificateAuthorityServiceTracingConnection::DisableCertificateAuthority( + ExperimentalTag, NoAwaitTag, + google::cloud::security::privateca::v1:: + DisableCertificateAuthorityRequest const& request) { + auto span = internal::MakeSpan( + "privateca_v1::CertificateAuthorityServiceConnection::" + "DisableCertificateAuthority"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->DisableCertificateAuthority(ExperimentalTag{}, + NoAwaitTag{}, request)); +} + +future> +CertificateAuthorityServiceTracingConnection::DisableCertificateAuthority( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "privateca_v1::CertificateAuthorityServiceConnection::" + "DisableCertificateAuthority"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->DisableCertificateAuthority( + ExperimentalTag{}, operation)); +} + future> CertificateAuthorityServiceTracingConnection::EnableCertificateAuthority( google::cloud::security::privateca::v1:: @@ -135,6 +211,31 @@ CertificateAuthorityServiceTracingConnection::EnableCertificateAuthority( child_->EnableCertificateAuthority(request)); } +StatusOr +CertificateAuthorityServiceTracingConnection::EnableCertificateAuthority( + ExperimentalTag, NoAwaitTag, + google::cloud::security::privateca::v1:: + EnableCertificateAuthorityRequest const& request) { + auto span = internal::MakeSpan( + "privateca_v1::CertificateAuthorityServiceConnection::" + "EnableCertificateAuthority"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->EnableCertificateAuthority(ExperimentalTag{}, NoAwaitTag{}, + request)); +} + +future> +CertificateAuthorityServiceTracingConnection::EnableCertificateAuthority( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "privateca_v1::CertificateAuthorityServiceConnection::" + "EnableCertificateAuthority"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->EnableCertificateAuthority( + ExperimentalTag{}, operation)); +} + StatusOr CertificateAuthorityServiceTracingConnection::FetchCertificateAuthorityCsr( @@ -185,6 +286,32 @@ CertificateAuthorityServiceTracingConnection::UndeleteCertificateAuthority( child_->UndeleteCertificateAuthority(request)); } +StatusOr +CertificateAuthorityServiceTracingConnection::UndeleteCertificateAuthority( + ExperimentalTag, NoAwaitTag, + google::cloud::security::privateca::v1:: + UndeleteCertificateAuthorityRequest const& request) { + auto span = internal::MakeSpan( + "privateca_v1::CertificateAuthorityServiceConnection::" + "UndeleteCertificateAuthority"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->UndeleteCertificateAuthority(ExperimentalTag{}, + NoAwaitTag{}, request)); +} + +future> +CertificateAuthorityServiceTracingConnection::UndeleteCertificateAuthority( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "privateca_v1::CertificateAuthorityServiceConnection::" + "UndeleteCertificateAuthority"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), + child_->UndeleteCertificateAuthority(ExperimentalTag{}, operation)); +} + future> CertificateAuthorityServiceTracingConnection::DeleteCertificateAuthority( google::cloud::security::privateca::v1:: @@ -197,6 +324,31 @@ CertificateAuthorityServiceTracingConnection::DeleteCertificateAuthority( child_->DeleteCertificateAuthority(request)); } +StatusOr +CertificateAuthorityServiceTracingConnection::DeleteCertificateAuthority( + ExperimentalTag, NoAwaitTag, + google::cloud::security::privateca::v1:: + DeleteCertificateAuthorityRequest const& request) { + auto span = internal::MakeSpan( + "privateca_v1::CertificateAuthorityServiceConnection::" + "DeleteCertificateAuthority"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->DeleteCertificateAuthority(ExperimentalTag{}, NoAwaitTag{}, + request)); +} + +future> +CertificateAuthorityServiceTracingConnection::DeleteCertificateAuthority( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "privateca_v1::CertificateAuthorityServiceConnection::" + "DeleteCertificateAuthority"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->DeleteCertificateAuthority( + ExperimentalTag{}, operation)); +} + future> CertificateAuthorityServiceTracingConnection::UpdateCertificateAuthority( google::cloud::security::privateca::v1:: @@ -209,6 +361,31 @@ CertificateAuthorityServiceTracingConnection::UpdateCertificateAuthority( child_->UpdateCertificateAuthority(request)); } +StatusOr +CertificateAuthorityServiceTracingConnection::UpdateCertificateAuthority( + ExperimentalTag, NoAwaitTag, + google::cloud::security::privateca::v1:: + UpdateCertificateAuthorityRequest const& request) { + auto span = internal::MakeSpan( + "privateca_v1::CertificateAuthorityServiceConnection::" + "UpdateCertificateAuthority"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->UpdateCertificateAuthority(ExperimentalTag{}, NoAwaitTag{}, + request)); +} + +future> +CertificateAuthorityServiceTracingConnection::UpdateCertificateAuthority( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "privateca_v1::CertificateAuthorityServiceConnection::" + "UpdateCertificateAuthority"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->UpdateCertificateAuthority( + ExperimentalTag{}, operation)); +} + future> CertificateAuthorityServiceTracingConnection::CreateCaPool( google::cloud::security::privateca::v1::CreateCaPoolRequest const& @@ -219,6 +396,28 @@ CertificateAuthorityServiceTracingConnection::CreateCaPool( return internal::EndSpan(std::move(span), child_->CreateCaPool(request)); } +StatusOr +CertificateAuthorityServiceTracingConnection::CreateCaPool( + ExperimentalTag, NoAwaitTag, + google::cloud::security::privateca::v1::CreateCaPoolRequest const& + request) { + auto span = internal::MakeSpan( + "privateca_v1::CertificateAuthorityServiceConnection::CreateCaPool"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->CreateCaPool(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +CertificateAuthorityServiceTracingConnection::CreateCaPool( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "privateca_v1::CertificateAuthorityServiceConnection::CreateCaPool"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->CreateCaPool(ExperimentalTag{}, operation)); +} + future> CertificateAuthorityServiceTracingConnection::UpdateCaPool( google::cloud::security::privateca::v1::UpdateCaPoolRequest const& @@ -229,6 +428,28 @@ CertificateAuthorityServiceTracingConnection::UpdateCaPool( return internal::EndSpan(std::move(span), child_->UpdateCaPool(request)); } +StatusOr +CertificateAuthorityServiceTracingConnection::UpdateCaPool( + ExperimentalTag, NoAwaitTag, + google::cloud::security::privateca::v1::UpdateCaPoolRequest const& + request) { + auto span = internal::MakeSpan( + "privateca_v1::CertificateAuthorityServiceConnection::UpdateCaPool"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->UpdateCaPool(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +CertificateAuthorityServiceTracingConnection::UpdateCaPool( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "privateca_v1::CertificateAuthorityServiceConnection::UpdateCaPool"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->UpdateCaPool(ExperimentalTag{}, operation)); +} + StatusOr CertificateAuthorityServiceTracingConnection::GetCaPool( google::cloud::security::privateca::v1::GetCaPoolRequest const& request) { @@ -260,6 +481,28 @@ CertificateAuthorityServiceTracingConnection::DeleteCaPool( return internal::EndSpan(std::move(span), child_->DeleteCaPool(request)); } +StatusOr +CertificateAuthorityServiceTracingConnection::DeleteCaPool( + ExperimentalTag, NoAwaitTag, + google::cloud::security::privateca::v1::DeleteCaPoolRequest const& + request) { + auto span = internal::MakeSpan( + "privateca_v1::CertificateAuthorityServiceConnection::DeleteCaPool"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->DeleteCaPool(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +CertificateAuthorityServiceTracingConnection::DeleteCaPool( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "privateca_v1::CertificateAuthorityServiceConnection::DeleteCaPool"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->DeleteCaPool(ExperimentalTag{}, operation)); +} + StatusOr CertificateAuthorityServiceTracingConnection::FetchCaCerts( google::cloud::security::privateca::v1::FetchCaCertsRequest const& @@ -309,6 +552,33 @@ CertificateAuthorityServiceTracingConnection::UpdateCertificateRevocationList( child_->UpdateCertificateRevocationList(request)); } +StatusOr +CertificateAuthorityServiceTracingConnection::UpdateCertificateRevocationList( + ExperimentalTag, NoAwaitTag, + google::cloud::security::privateca::v1:: + UpdateCertificateRevocationListRequest const& request) { + auto span = internal::MakeSpan( + "privateca_v1::CertificateAuthorityServiceConnection::" + "UpdateCertificateRevocationList"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->UpdateCertificateRevocationList(ExperimentalTag{}, + NoAwaitTag{}, request)); +} + +future< + StatusOr> +CertificateAuthorityServiceTracingConnection::UpdateCertificateRevocationList( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "privateca_v1::CertificateAuthorityServiceConnection::" + "UpdateCertificateRevocationList"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), + child_->UpdateCertificateRevocationList(ExperimentalTag{}, operation)); +} + future> CertificateAuthorityServiceTracingConnection::CreateCertificateTemplate( google::cloud::security::privateca::v1:: @@ -321,6 +591,31 @@ CertificateAuthorityServiceTracingConnection::CreateCertificateTemplate( child_->CreateCertificateTemplate(request)); } +StatusOr +CertificateAuthorityServiceTracingConnection::CreateCertificateTemplate( + ExperimentalTag, NoAwaitTag, + google::cloud::security::privateca::v1:: + CreateCertificateTemplateRequest const& request) { + auto span = internal::MakeSpan( + "privateca_v1::CertificateAuthorityServiceConnection::" + "CreateCertificateTemplate"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->CreateCertificateTemplate(ExperimentalTag{}, NoAwaitTag{}, + request)); +} + +future> +CertificateAuthorityServiceTracingConnection::CreateCertificateTemplate( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "privateca_v1::CertificateAuthorityServiceConnection::" + "CreateCertificateTemplate"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->CreateCertificateTemplate( + ExperimentalTag{}, operation)); +} + future> CertificateAuthorityServiceTracingConnection::DeleteCertificateTemplate( google::cloud::security::privateca::v1:: @@ -333,6 +628,31 @@ CertificateAuthorityServiceTracingConnection::DeleteCertificateTemplate( child_->DeleteCertificateTemplate(request)); } +StatusOr +CertificateAuthorityServiceTracingConnection::DeleteCertificateTemplate( + ExperimentalTag, NoAwaitTag, + google::cloud::security::privateca::v1:: + DeleteCertificateTemplateRequest const& request) { + auto span = internal::MakeSpan( + "privateca_v1::CertificateAuthorityServiceConnection::" + "DeleteCertificateTemplate"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->DeleteCertificateTemplate(ExperimentalTag{}, NoAwaitTag{}, + request)); +} + +future> +CertificateAuthorityServiceTracingConnection::DeleteCertificateTemplate( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "privateca_v1::CertificateAuthorityServiceConnection::" + "DeleteCertificateTemplate"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->DeleteCertificateTemplate( + ExperimentalTag{}, operation)); +} + StatusOr CertificateAuthorityServiceTracingConnection::GetCertificateTemplate( google::cloud::security::privateca::v1::GetCertificateTemplateRequest const& @@ -370,6 +690,31 @@ CertificateAuthorityServiceTracingConnection::UpdateCertificateTemplate( child_->UpdateCertificateTemplate(request)); } +StatusOr +CertificateAuthorityServiceTracingConnection::UpdateCertificateTemplate( + ExperimentalTag, NoAwaitTag, + google::cloud::security::privateca::v1:: + UpdateCertificateTemplateRequest const& request) { + auto span = internal::MakeSpan( + "privateca_v1::CertificateAuthorityServiceConnection::" + "UpdateCertificateTemplate"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->UpdateCertificateTemplate(ExperimentalTag{}, NoAwaitTag{}, + request)); +} + +future> +CertificateAuthorityServiceTracingConnection::UpdateCertificateTemplate( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "privateca_v1::CertificateAuthorityServiceConnection::" + "UpdateCertificateTemplate"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->UpdateCertificateTemplate( + ExperimentalTag{}, operation)); +} + #endif // GOOGLE_CLOUD_CPP_HAVE_OPENTELEMETRY std::shared_ptr diff --git a/google/cloud/privateca/v1/internal/certificate_authority_tracing_connection.h b/google/cloud/privateca/v1/internal/certificate_authority_tracing_connection.h index 55387a9b3b54c..9dee54852e18c 100644 --- a/google/cloud/privateca/v1/internal/certificate_authority_tracing_connection.h +++ b/google/cloud/privateca/v1/internal/certificate_authority_tracing_connection.h @@ -70,21 +70,61 @@ class CertificateAuthorityServiceTracingConnection google::cloud::security::privateca::v1:: ActivateCertificateAuthorityRequest const& request) override; + StatusOr ActivateCertificateAuthority( + ExperimentalTag, NoAwaitTag, + google::cloud::security::privateca::v1:: + ActivateCertificateAuthorityRequest const& request) override; + + future> + ActivateCertificateAuthority( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> CreateCertificateAuthority( google::cloud::security::privateca::v1:: CreateCertificateAuthorityRequest const& request) override; + StatusOr CreateCertificateAuthority( + ExperimentalTag, NoAwaitTag, + google::cloud::security::privateca::v1:: + CreateCertificateAuthorityRequest const& request) override; + + future> + CreateCertificateAuthority( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DisableCertificateAuthority( google::cloud::security::privateca::v1:: DisableCertificateAuthorityRequest const& request) override; + StatusOr DisableCertificateAuthority( + ExperimentalTag, NoAwaitTag, + google::cloud::security::privateca::v1:: + DisableCertificateAuthorityRequest const& request) override; + + future> + DisableCertificateAuthority( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> EnableCertificateAuthority( google::cloud::security::privateca::v1:: EnableCertificateAuthorityRequest const& request) override; + StatusOr EnableCertificateAuthority( + ExperimentalTag, NoAwaitTag, + google::cloud::security::privateca::v1:: + EnableCertificateAuthorityRequest const& request) override; + + future> + EnableCertificateAuthority( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr FetchCertificateAuthorityCsr( @@ -106,24 +146,72 @@ class CertificateAuthorityServiceTracingConnection google::cloud::security::privateca::v1:: UndeleteCertificateAuthorityRequest const& request) override; + StatusOr UndeleteCertificateAuthority( + ExperimentalTag, NoAwaitTag, + google::cloud::security::privateca::v1:: + UndeleteCertificateAuthorityRequest const& request) override; + + future> + UndeleteCertificateAuthority( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteCertificateAuthority( google::cloud::security::privateca::v1:: DeleteCertificateAuthorityRequest const& request) override; + StatusOr DeleteCertificateAuthority( + ExperimentalTag, NoAwaitTag, + google::cloud::security::privateca::v1:: + DeleteCertificateAuthorityRequest const& request) override; + + future> + DeleteCertificateAuthority( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateCertificateAuthority( google::cloud::security::privateca::v1:: UpdateCertificateAuthorityRequest const& request) override; + StatusOr UpdateCertificateAuthority( + ExperimentalTag, NoAwaitTag, + google::cloud::security::privateca::v1:: + UpdateCertificateAuthorityRequest const& request) override; + + future> + UpdateCertificateAuthority( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> CreateCaPool( google::cloud::security::privateca::v1::CreateCaPoolRequest const& request) override; + StatusOr CreateCaPool( + ExperimentalTag, NoAwaitTag, + google::cloud::security::privateca::v1::CreateCaPoolRequest const& + request) override; + + future> CreateCaPool( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateCaPool( google::cloud::security::privateca::v1::UpdateCaPoolRequest const& request) override; + StatusOr UpdateCaPool( + ExperimentalTag, NoAwaitTag, + google::cloud::security::privateca::v1::UpdateCaPoolRequest const& + request) override; + + future> UpdateCaPool( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetCaPool( google::cloud::security::privateca::v1::GetCaPoolRequest const& request) override; @@ -137,6 +225,15 @@ class CertificateAuthorityServiceTracingConnection google::cloud::security::privateca::v1::DeleteCaPoolRequest const& request) override; + StatusOr DeleteCaPool( + ExperimentalTag, NoAwaitTag, + google::cloud::security::privateca::v1::DeleteCaPoolRequest const& + request) override; + + future> + DeleteCaPool(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr FetchCaCerts( google::cloud::security::privateca::v1::FetchCaCertsRequest const& @@ -158,16 +255,47 @@ class CertificateAuthorityServiceTracingConnection google::cloud::security::privateca::v1:: UpdateCertificateRevocationListRequest const& request) override; + StatusOr UpdateCertificateRevocationList( + ExperimentalTag, NoAwaitTag, + google::cloud::security::privateca::v1:: + UpdateCertificateRevocationListRequest const& request) override; + + future> + UpdateCertificateRevocationList( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> CreateCertificateTemplate( google::cloud::security::privateca::v1:: CreateCertificateTemplateRequest const& request) override; + StatusOr CreateCertificateTemplate( + ExperimentalTag, NoAwaitTag, + google::cloud::security::privateca::v1:: + CreateCertificateTemplateRequest const& request) override; + + future> + CreateCertificateTemplate( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteCertificateTemplate( google::cloud::security::privateca::v1:: DeleteCertificateTemplateRequest const& request) override; + StatusOr DeleteCertificateTemplate( + ExperimentalTag, NoAwaitTag, + google::cloud::security::privateca::v1:: + DeleteCertificateTemplateRequest const& request) override; + + future> + DeleteCertificateTemplate( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetCertificateTemplate( google::cloud::security::privateca::v1:: @@ -183,6 +311,16 @@ class CertificateAuthorityServiceTracingConnection google::cloud::security::privateca::v1:: UpdateCertificateTemplateRequest const& request) override; + StatusOr UpdateCertificateTemplate( + ExperimentalTag, NoAwaitTag, + google::cloud::security::privateca::v1:: + UpdateCertificateTemplateRequest const& request) override; + + future> + UpdateCertificateTemplate( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + private: std::shared_ptr child_; }; diff --git a/google/cloud/privateca/v1/mocks/mock_certificate_authority_connection.h b/google/cloud/privateca/v1/mocks/mock_certificate_authority_connection.h index cfa556e937ae3..48096ca202547 100644 --- a/google/cloud/privateca/v1/mocks/mock_certificate_authority_connection.h +++ b/google/cloud/privateca/v1/mocks/mock_certificate_authority_connection.h @@ -89,6 +89,20 @@ class MockCertificateAuthorityServiceConnection ActivateCertificateAuthorityRequest const& request), (override)); + MOCK_METHOD(StatusOr, + ActivateCertificateAuthority, + (ExperimentalTag, NoAwaitTag, + google::cloud::security::privateca::v1:: + ActivateCertificateAuthorityRequest const& request), + (override)); + + MOCK_METHOD( + future>, + ActivateCertificateAuthority, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, @@ -97,6 +111,20 @@ class MockCertificateAuthorityServiceConnection CreateCertificateAuthorityRequest const& request), (override)); + MOCK_METHOD(StatusOr, + CreateCertificateAuthority, + (ExperimentalTag, NoAwaitTag, + google::cloud::security::privateca::v1:: + CreateCertificateAuthorityRequest const& request), + (override)); + + MOCK_METHOD( + future>, + CreateCertificateAuthority, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, @@ -105,6 +133,20 @@ class MockCertificateAuthorityServiceConnection DisableCertificateAuthorityRequest const& request), (override)); + MOCK_METHOD(StatusOr, + DisableCertificateAuthority, + (ExperimentalTag, NoAwaitTag, + google::cloud::security::privateca::v1:: + DisableCertificateAuthorityRequest const& request), + (override)); + + MOCK_METHOD( + future>, + DisableCertificateAuthority, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, @@ -113,6 +155,20 @@ class MockCertificateAuthorityServiceConnection EnableCertificateAuthorityRequest const& request), (override)); + MOCK_METHOD(StatusOr, + EnableCertificateAuthority, + (ExperimentalTag, NoAwaitTag, + google::cloud::security::privateca::v1:: + EnableCertificateAuthorityRequest const& request), + (override)); + + MOCK_METHOD( + future>, + EnableCertificateAuthority, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(StatusOr, FetchCertificateAuthorityCsr, @@ -143,6 +199,20 @@ class MockCertificateAuthorityServiceConnection UndeleteCertificateAuthorityRequest const& request), (override)); + MOCK_METHOD(StatusOr, + UndeleteCertificateAuthority, + (ExperimentalTag, NoAwaitTag, + google::cloud::security::privateca::v1:: + UndeleteCertificateAuthorityRequest const& request), + (override)); + + MOCK_METHOD( + future>, + UndeleteCertificateAuthority, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, @@ -151,6 +221,20 @@ class MockCertificateAuthorityServiceConnection DeleteCertificateAuthorityRequest const& request), (override)); + MOCK_METHOD(StatusOr, + DeleteCertificateAuthority, + (ExperimentalTag, NoAwaitTag, + google::cloud::security::privateca::v1:: + DeleteCertificateAuthorityRequest const& request), + (override)); + + MOCK_METHOD( + future>, + DeleteCertificateAuthority, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, @@ -159,6 +243,20 @@ class MockCertificateAuthorityServiceConnection UpdateCertificateAuthorityRequest const& request), (override)); + MOCK_METHOD(StatusOr, + UpdateCertificateAuthority, + (ExperimentalTag, NoAwaitTag, + google::cloud::security::privateca::v1:: + UpdateCertificateAuthorityRequest const& request), + (override)); + + MOCK_METHOD( + future>, + UpdateCertificateAuthority, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, CreateCaPool, @@ -166,6 +264,19 @@ class MockCertificateAuthorityServiceConnection request), (override)); + MOCK_METHOD( + StatusOr, CreateCaPool, + (ExperimentalTag, NoAwaitTag, + google::cloud::security::privateca::v1::CreateCaPoolRequest const& + request), + (override)); + + MOCK_METHOD(future>, + CreateCaPool, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, UpdateCaPool, @@ -173,6 +284,19 @@ class MockCertificateAuthorityServiceConnection request), (override)); + MOCK_METHOD( + StatusOr, UpdateCaPool, + (ExperimentalTag, NoAwaitTag, + google::cloud::security::privateca::v1::UpdateCaPoolRequest const& + request), + (override)); + + MOCK_METHOD(future>, + UpdateCaPool, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr, GetCaPool, (google::cloud::security::privateca::v1::GetCaPoolRequest const& request), @@ -192,6 +316,20 @@ class MockCertificateAuthorityServiceConnection request), (override)); + MOCK_METHOD( + StatusOr, DeleteCaPool, + (ExperimentalTag, NoAwaitTag, + google::cloud::security::privateca::v1::DeleteCaPoolRequest const& + request), + (override)); + + MOCK_METHOD( + future< + StatusOr>, + DeleteCaPool, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr, FetchCaCerts, @@ -223,6 +361,20 @@ class MockCertificateAuthorityServiceConnection UpdateCertificateRevocationListRequest const& request), (override)); + MOCK_METHOD(StatusOr, + UpdateCertificateRevocationList, + (ExperimentalTag, NoAwaitTag, + google::cloud::security::privateca::v1:: + UpdateCertificateRevocationListRequest const& request), + (override)); + + MOCK_METHOD( + future>, + UpdateCertificateRevocationList, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, CreateCertificateTemplate, @@ -230,6 +382,20 @@ class MockCertificateAuthorityServiceConnection CreateCertificateTemplateRequest const& request), (override)); + MOCK_METHOD(StatusOr, + CreateCertificateTemplate, + (ExperimentalTag, NoAwaitTag, + google::cloud::security::privateca::v1:: + CreateCertificateTemplateRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateCertificateTemplate, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future< StatusOr>, @@ -238,6 +404,20 @@ class MockCertificateAuthorityServiceConnection DeleteCertificateTemplateRequest const& request), (override)); + MOCK_METHOD(StatusOr, + DeleteCertificateTemplate, + (ExperimentalTag, NoAwaitTag, + google::cloud::security::privateca::v1:: + DeleteCertificateTemplateRequest const& request), + (override)); + + MOCK_METHOD( + future< + StatusOr>, + DeleteCertificateTemplate, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr, GetCertificateTemplate, @@ -259,6 +439,20 @@ class MockCertificateAuthorityServiceConnection (google::cloud::security::privateca::v1:: UpdateCertificateTemplateRequest const& request), (override)); + + MOCK_METHOD(StatusOr, + UpdateCertificateTemplate, + (ExperimentalTag, NoAwaitTag, + google::cloud::security::privateca::v1:: + UpdateCertificateTemplateRequest const& request), + (override)); + + MOCK_METHOD(future>, + UpdateCertificateTemplate, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); }; GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END diff --git a/google/cloud/profiler/v2/export_connection.h b/google/cloud/profiler/v2/export_connection.h index aa81ec7c35a7d..83ff2caf82159 100644 --- a/google/cloud/profiler/v2/export_connection.h +++ b/google/cloud/profiler/v2/export_connection.h @@ -22,6 +22,7 @@ #include "google/cloud/profiler/v2/export_connection_idempotency_policy.h" #include "google/cloud/profiler/v2/internal/export_retry_traits.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/internal/retry_policy_impl.h" #include "google/cloud/options.h" #include "google/cloud/status_or.h" diff --git a/google/cloud/profiler/v2/profiler_connection.h b/google/cloud/profiler/v2/profiler_connection.h index 9b4402c3a95c4..f23b9a607d76d 100644 --- a/google/cloud/profiler/v2/profiler_connection.h +++ b/google/cloud/profiler/v2/profiler_connection.h @@ -22,6 +22,7 @@ #include "google/cloud/profiler/v2/internal/profiler_retry_traits.h" #include "google/cloud/profiler/v2/profiler_connection_idempotency_policy.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/internal/retry_policy_impl.h" #include "google/cloud/options.h" #include "google/cloud/status_or.h" diff --git a/google/cloud/publicca/v1/public_certificate_authority_connection.h b/google/cloud/publicca/v1/public_certificate_authority_connection.h index eb46074793e50..ec6a72206e6f5 100644 --- a/google/cloud/publicca/v1/public_certificate_authority_connection.h +++ b/google/cloud/publicca/v1/public_certificate_authority_connection.h @@ -22,6 +22,7 @@ #include "google/cloud/publicca/v1/internal/public_certificate_authority_retry_traits.h" #include "google/cloud/publicca/v1/public_certificate_authority_connection_idempotency_policy.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/internal/retry_policy_impl.h" #include "google/cloud/options.h" #include "google/cloud/status_or.h" diff --git a/google/cloud/pubsub/admin/subscription_admin_connection.h b/google/cloud/pubsub/admin/subscription_admin_connection.h index 457be81453ea9..f1106d6f8f3e6 100644 --- a/google/cloud/pubsub/admin/subscription_admin_connection.h +++ b/google/cloud/pubsub/admin/subscription_admin_connection.h @@ -22,6 +22,7 @@ #include "google/cloud/pubsub/admin/internal/subscription_admin_retry_traits.h" #include "google/cloud/pubsub/admin/subscription_admin_connection_idempotency_policy.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/internal/retry_policy_impl.h" #include "google/cloud/options.h" #include "google/cloud/status_or.h" diff --git a/google/cloud/pubsub/admin/topic_admin_connection.h b/google/cloud/pubsub/admin/topic_admin_connection.h index 4b4f64c8884cd..7c9febfbd596e 100644 --- a/google/cloud/pubsub/admin/topic_admin_connection.h +++ b/google/cloud/pubsub/admin/topic_admin_connection.h @@ -22,6 +22,7 @@ #include "google/cloud/pubsub/admin/internal/topic_admin_retry_traits.h" #include "google/cloud/pubsub/admin/topic_admin_connection_idempotency_policy.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/internal/retry_policy_impl.h" #include "google/cloud/options.h" #include "google/cloud/status_or.h" diff --git a/google/cloud/pubsub/schema_connection.h b/google/cloud/pubsub/schema_connection.h index 8dae5f0d4765e..01722e736ce85 100644 --- a/google/cloud/pubsub/schema_connection.h +++ b/google/cloud/pubsub/schema_connection.h @@ -22,6 +22,7 @@ #include "google/cloud/pubsub/internal/schema_retry_traits.h" #include "google/cloud/pubsub/schema_connection_idempotency_policy.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/internal/retry_policy_impl.h" #include "google/cloud/options.h" #include "google/cloud/status_or.h" diff --git a/google/cloud/pubsublite/admin_connection.cc b/google/cloud/pubsublite/admin_connection.cc index c6428717acd17..af5a5fdb30ef5 100644 --- a/google/cloud/pubsublite/admin_connection.cc +++ b/google/cloud/pubsublite/admin_connection.cc @@ -120,6 +120,22 @@ AdminServiceConnection::SeekSubscription( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +AdminServiceConnection::SeekSubscription( + ExperimentalTag, NoAwaitTag, + google::cloud::pubsublite::v1::SeekSubscriptionRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +AdminServiceConnection::SeekSubscription( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr AdminServiceConnection::CreateReservation( google::cloud::pubsublite::v1::CreateReservationRequest const&) { diff --git a/google/cloud/pubsublite/admin_connection.h b/google/cloud/pubsublite/admin_connection.h index ce7b079cf7a24..8d2fd79baa0b9 100644 --- a/google/cloud/pubsublite/admin_connection.h +++ b/google/cloud/pubsublite/admin_connection.h @@ -22,8 +22,10 @@ #include "google/cloud/pubsublite/admin_connection_idempotency_policy.h" #include "google/cloud/pubsublite/internal/admin_retry_traits.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/internal/retry_policy_impl.h" +#include "google/cloud/no_await_tag.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" #include "google/cloud/status_or.h" @@ -232,6 +234,15 @@ class AdminServiceConnection { SeekSubscription( google::cloud::pubsublite::v1::SeekSubscriptionRequest const& request); + virtual StatusOr SeekSubscription( + ExperimentalTag, NoAwaitTag, + google::cloud::pubsublite::v1::SeekSubscriptionRequest const& request); + + virtual future< + StatusOr> + SeekSubscription(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StatusOr CreateReservation( google::cloud::pubsublite::v1::CreateReservationRequest const& request); diff --git a/google/cloud/pubsublite/internal/admin_connection_impl.cc b/google/cloud/pubsublite/internal/admin_connection_impl.cc index d7dd24e73d288..8e27d48c31bc9 100644 --- a/google/cloud/pubsublite/internal/admin_connection_impl.cc +++ b/google/cloud/pubsublite/internal/admin_connection_impl.cc @@ -336,6 +336,59 @@ AdminServiceConnectionImpl::SeekSubscription( polling_policy(*current), __func__); } +StatusOr +AdminServiceConnectionImpl::SeekSubscription( + ExperimentalTag, NoAwaitTag, + google::cloud::pubsublite::v1::SeekSubscriptionRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->SeekSubscription(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::pubsublite::v1::SeekSubscriptionRequest const& + request) { + return stub_->SeekSubscription(context, options, request); + }, + *current, request, __func__); +} + +future> +AdminServiceConnectionImpl::SeekSubscription( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to SeekSubscription", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::pubsublite::v1::SeekSubscriptionResponse>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::pubsublite::v1::SeekSubscriptionResponse>, + polling_policy(*current), __func__); +} + StatusOr AdminServiceConnectionImpl::CreateReservation( google::cloud::pubsublite::v1::CreateReservationRequest const& request) { diff --git a/google/cloud/pubsublite/internal/admin_connection_impl.h b/google/cloud/pubsublite/internal/admin_connection_impl.h index cc0d03d64ccac..bbf11003475b6 100644 --- a/google/cloud/pubsublite/internal/admin_connection_impl.h +++ b/google/cloud/pubsublite/internal/admin_connection_impl.h @@ -99,6 +99,15 @@ class AdminServiceConnectionImpl : public pubsublite::AdminServiceConnection { SeekSubscription(google::cloud::pubsublite::v1::SeekSubscriptionRequest const& request) override; + StatusOr SeekSubscription( + ExperimentalTag, NoAwaitTag, + google::cloud::pubsublite::v1::SeekSubscriptionRequest const& request) + override; + + future> + SeekSubscription(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr CreateReservation( google::cloud::pubsublite::v1::CreateReservationRequest const& request) override; diff --git a/google/cloud/pubsublite/internal/admin_tracing_connection.cc b/google/cloud/pubsublite/internal/admin_tracing_connection.cc index 851897d1fb799..1fadd081f93a8 100644 --- a/google/cloud/pubsublite/internal/admin_tracing_connection.cc +++ b/google/cloud/pubsublite/internal/admin_tracing_connection.cc @@ -154,6 +154,28 @@ AdminServiceTracingConnection::SeekSubscription( return internal::EndSpan(std::move(span), child_->SeekSubscription(request)); } +StatusOr +AdminServiceTracingConnection::SeekSubscription( + ExperimentalTag, NoAwaitTag, + google::cloud::pubsublite::v1::SeekSubscriptionRequest const& request) { + auto span = internal::MakeSpan( + "pubsublite::AdminServiceConnection::SeekSubscription"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->SeekSubscription(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +AdminServiceTracingConnection::SeekSubscription( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "pubsublite::AdminServiceConnection::SeekSubscription"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->SeekSubscription(ExperimentalTag{}, operation)); +} + StatusOr AdminServiceTracingConnection::CreateReservation( google::cloud::pubsublite::v1::CreateReservationRequest const& request) { diff --git a/google/cloud/pubsublite/internal/admin_tracing_connection.h b/google/cloud/pubsublite/internal/admin_tracing_connection.h index a0edf72233014..b0238c660db48 100644 --- a/google/cloud/pubsublite/internal/admin_tracing_connection.h +++ b/google/cloud/pubsublite/internal/admin_tracing_connection.h @@ -88,6 +88,15 @@ class AdminServiceTracingConnection SeekSubscription(google::cloud::pubsublite::v1::SeekSubscriptionRequest const& request) override; + StatusOr SeekSubscription( + ExperimentalTag, NoAwaitTag, + google::cloud::pubsublite::v1::SeekSubscriptionRequest const& request) + override; + + future> + SeekSubscription(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr CreateReservation( google::cloud::pubsublite::v1::CreateReservationRequest const& request) override; diff --git a/google/cloud/pubsublite/mocks/mock_admin_connection.h b/google/cloud/pubsublite/mocks/mock_admin_connection.h index a1b4f6f4457a6..8726694941ce4 100644 --- a/google/cloud/pubsublite/mocks/mock_admin_connection.h +++ b/google/cloud/pubsublite/mocks/mock_admin_connection.h @@ -111,6 +111,18 @@ class MockAdminServiceConnection : public pubsublite::AdminServiceConnection { (google::cloud::pubsublite::v1::SeekSubscriptionRequest const& request), (override)); + MOCK_METHOD( + StatusOr, SeekSubscription, + (ExperimentalTag, NoAwaitTag, + google::cloud::pubsublite::v1::SeekSubscriptionRequest const& request), + (override)); + + MOCK_METHOD( + future>, + SeekSubscription, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr, CreateReservation, (google::cloud::pubsublite::v1::CreateReservationRequest const& request), diff --git a/google/cloud/pubsublite/topic_stats_connection.h b/google/cloud/pubsublite/topic_stats_connection.h index afb2959507d94..eebb5a65b0a8a 100644 --- a/google/cloud/pubsublite/topic_stats_connection.h +++ b/google/cloud/pubsublite/topic_stats_connection.h @@ -22,6 +22,7 @@ #include "google/cloud/pubsublite/internal/topic_stats_retry_traits.h" #include "google/cloud/pubsublite/topic_stats_connection_idempotency_policy.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/internal/retry_policy_impl.h" #include "google/cloud/options.h" #include "google/cloud/status_or.h" diff --git a/google/cloud/rapidmigrationassessment/v1/internal/rapid_migration_assessment_connection_impl.cc b/google/cloud/rapidmigrationassessment/v1/internal/rapid_migration_assessment_connection_impl.cc index 3fdbe36ed497e..aa530dac42e5e 100644 --- a/google/cloud/rapidmigrationassessment/v1/internal/rapid_migration_assessment_connection_impl.cc +++ b/google/cloud/rapidmigrationassessment/v1/internal/rapid_migration_assessment_connection_impl.cc @@ -119,6 +119,61 @@ RapidMigrationAssessmentConnectionImpl::CreateCollector( polling_policy(*current), __func__); } +StatusOr +RapidMigrationAssessmentConnectionImpl::CreateCollector( + ExperimentalTag, NoAwaitTag, + google::cloud::rapidmigrationassessment::v1::CreateCollectorRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateCollector(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::rapidmigrationassessment::v1:: + CreateCollectorRequest const& request) { + return stub_->CreateCollector(context, options, request); + }, + *current, request, __func__); +} + +future> +RapidMigrationAssessmentConnectionImpl::CreateCollector( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to CreateCollector", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::rapidmigrationassessment::v1::Collector>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::rapidmigrationassessment::v1::Collector>, + polling_policy(*current), __func__); +} + future> RapidMigrationAssessmentConnectionImpl::CreateAnnotation( google::cloud::rapidmigrationassessment::v1::CreateAnnotationRequest const& @@ -159,6 +214,61 @@ RapidMigrationAssessmentConnectionImpl::CreateAnnotation( polling_policy(*current), __func__); } +StatusOr +RapidMigrationAssessmentConnectionImpl::CreateAnnotation( + ExperimentalTag, NoAwaitTag, + google::cloud::rapidmigrationassessment::v1::CreateAnnotationRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateAnnotation(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::rapidmigrationassessment::v1:: + CreateAnnotationRequest const& request) { + return stub_->CreateAnnotation(context, options, request); + }, + *current, request, __func__); +} + +future> +RapidMigrationAssessmentConnectionImpl::CreateAnnotation( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to CreateAnnotation", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::rapidmigrationassessment::v1::Annotation>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::rapidmigrationassessment::v1::Annotation>, + polling_policy(*current), __func__); +} + StatusOr RapidMigrationAssessmentConnectionImpl::GetAnnotation( google::cloud::rapidmigrationassessment::v1::GetAnnotationRequest const& @@ -268,6 +378,61 @@ RapidMigrationAssessmentConnectionImpl::UpdateCollector( polling_policy(*current), __func__); } +StatusOr +RapidMigrationAssessmentConnectionImpl::UpdateCollector( + ExperimentalTag, NoAwaitTag, + google::cloud::rapidmigrationassessment::v1::UpdateCollectorRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UpdateCollector(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::rapidmigrationassessment::v1:: + UpdateCollectorRequest const& request) { + return stub_->UpdateCollector(context, options, request); + }, + *current, request, __func__); +} + +future> +RapidMigrationAssessmentConnectionImpl::UpdateCollector( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to UpdateCollector", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::rapidmigrationassessment::v1::Collector>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::rapidmigrationassessment::v1::Collector>, + polling_policy(*current), __func__); +} + future> RapidMigrationAssessmentConnectionImpl::DeleteCollector( google::cloud::rapidmigrationassessment::v1::DeleteCollectorRequest const& @@ -308,6 +473,61 @@ RapidMigrationAssessmentConnectionImpl::DeleteCollector( polling_policy(*current), __func__); } +StatusOr +RapidMigrationAssessmentConnectionImpl::DeleteCollector( + ExperimentalTag, NoAwaitTag, + google::cloud::rapidmigrationassessment::v1::DeleteCollectorRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteCollector(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::rapidmigrationassessment::v1:: + DeleteCollectorRequest const& request) { + return stub_->DeleteCollector(context, options, request); + }, + *current, request, __func__); +} + +future> +RapidMigrationAssessmentConnectionImpl::DeleteCollector( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteCollector", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::rapidmigrationassessment::v1::Collector>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::rapidmigrationassessment::v1::Collector>, + polling_policy(*current), __func__); +} + future> RapidMigrationAssessmentConnectionImpl::ResumeCollector( google::cloud::rapidmigrationassessment::v1::ResumeCollectorRequest const& @@ -348,6 +568,61 @@ RapidMigrationAssessmentConnectionImpl::ResumeCollector( polling_policy(*current), __func__); } +StatusOr +RapidMigrationAssessmentConnectionImpl::ResumeCollector( + ExperimentalTag, NoAwaitTag, + google::cloud::rapidmigrationassessment::v1::ResumeCollectorRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->ResumeCollector(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::rapidmigrationassessment::v1:: + ResumeCollectorRequest const& request) { + return stub_->ResumeCollector(context, options, request); + }, + *current, request, __func__); +} + +future> +RapidMigrationAssessmentConnectionImpl::ResumeCollector( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to ResumeCollector", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::rapidmigrationassessment::v1::Collector>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::rapidmigrationassessment::v1::Collector>, + polling_policy(*current), __func__); +} + future> RapidMigrationAssessmentConnectionImpl::RegisterCollector( google::cloud::rapidmigrationassessment::v1::RegisterCollectorRequest const& @@ -388,6 +663,61 @@ RapidMigrationAssessmentConnectionImpl::RegisterCollector( polling_policy(*current), __func__); } +StatusOr +RapidMigrationAssessmentConnectionImpl::RegisterCollector( + ExperimentalTag, NoAwaitTag, + google::cloud::rapidmigrationassessment::v1::RegisterCollectorRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->RegisterCollector(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::rapidmigrationassessment::v1:: + RegisterCollectorRequest const& request) { + return stub_->RegisterCollector(context, options, request); + }, + *current, request, __func__); +} + +future> +RapidMigrationAssessmentConnectionImpl::RegisterCollector( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to RegisterCollector", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::rapidmigrationassessment::v1::Collector>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::rapidmigrationassessment::v1::Collector>, + polling_policy(*current), __func__); +} + future> RapidMigrationAssessmentConnectionImpl::PauseCollector( google::cloud::rapidmigrationassessment::v1::PauseCollectorRequest const& @@ -428,6 +758,61 @@ RapidMigrationAssessmentConnectionImpl::PauseCollector( polling_policy(*current), __func__); } +StatusOr +RapidMigrationAssessmentConnectionImpl::PauseCollector( + ExperimentalTag, NoAwaitTag, + google::cloud::rapidmigrationassessment::v1::PauseCollectorRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->PauseCollector(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::rapidmigrationassessment::v1:: + PauseCollectorRequest const& request) { + return stub_->PauseCollector(context, options, request); + }, + *current, request, __func__); +} + +future> +RapidMigrationAssessmentConnectionImpl::PauseCollector( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to PauseCollector", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::rapidmigrationassessment::v1::Collector>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::rapidmigrationassessment::v1::Collector>, + polling_policy(*current), __func__); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace rapidmigrationassessment_v1_internal } // namespace cloud diff --git a/google/cloud/rapidmigrationassessment/v1/internal/rapid_migration_assessment_connection_impl.h b/google/cloud/rapidmigrationassessment/v1/internal/rapid_migration_assessment_connection_impl.h index b2b76ede1576a..74b15677de493 100644 --- a/google/cloud/rapidmigrationassessment/v1/internal/rapid_migration_assessment_connection_impl.h +++ b/google/cloud/rapidmigrationassessment/v1/internal/rapid_migration_assessment_connection_impl.h @@ -60,10 +60,28 @@ class RapidMigrationAssessmentConnectionImpl google::cloud::rapidmigrationassessment::v1::CreateCollectorRequest const& request) override; + StatusOr CreateCollector( + ExperimentalTag, NoAwaitTag, + google::cloud::rapidmigrationassessment::v1::CreateCollectorRequest const& + request) override; + + future> + CreateCollector(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> CreateAnnotation(google::cloud::rapidmigrationassessment::v1:: CreateAnnotationRequest const& request) override; + StatusOr CreateAnnotation( + ExperimentalTag, NoAwaitTag, + google::cloud::rapidmigrationassessment::v1:: + CreateAnnotationRequest const& request) override; + + future> + CreateAnnotation(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetAnnotation( google::cloud::rapidmigrationassessment::v1::GetAnnotationRequest const& @@ -83,25 +101,70 @@ class RapidMigrationAssessmentConnectionImpl google::cloud::rapidmigrationassessment::v1::UpdateCollectorRequest const& request) override; + StatusOr UpdateCollector( + ExperimentalTag, NoAwaitTag, + google::cloud::rapidmigrationassessment::v1::UpdateCollectorRequest const& + request) override; + + future> + UpdateCollector(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteCollector( google::cloud::rapidmigrationassessment::v1::DeleteCollectorRequest const& request) override; + StatusOr DeleteCollector( + ExperimentalTag, NoAwaitTag, + google::cloud::rapidmigrationassessment::v1::DeleteCollectorRequest const& + request) override; + + future> + DeleteCollector(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ResumeCollector( google::cloud::rapidmigrationassessment::v1::ResumeCollectorRequest const& request) override; + StatusOr ResumeCollector( + ExperimentalTag, NoAwaitTag, + google::cloud::rapidmigrationassessment::v1::ResumeCollectorRequest const& + request) override; + + future> + ResumeCollector(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> RegisterCollector(google::cloud::rapidmigrationassessment::v1:: RegisterCollectorRequest const& request) override; + StatusOr RegisterCollector( + ExperimentalTag, NoAwaitTag, + google::cloud::rapidmigrationassessment::v1:: + RegisterCollectorRequest const& request) override; + + future> + RegisterCollector(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> PauseCollector( google::cloud::rapidmigrationassessment::v1::PauseCollectorRequest const& request) override; + StatusOr PauseCollector( + ExperimentalTag, NoAwaitTag, + google::cloud::rapidmigrationassessment::v1::PauseCollectorRequest const& + request) override; + + future> + PauseCollector(ExperimentalTag, + google::longrunning::Operation const& operation) override; + private: std::unique_ptr background_; std::shared_ptr< diff --git a/google/cloud/rapidmigrationassessment/v1/internal/rapid_migration_assessment_tracing_connection.cc b/google/cloud/rapidmigrationassessment/v1/internal/rapid_migration_assessment_tracing_connection.cc index 8c8b83058f9b3..a3cee9e403e77 100644 --- a/google/cloud/rapidmigrationassessment/v1/internal/rapid_migration_assessment_tracing_connection.cc +++ b/google/cloud/rapidmigrationassessment/v1/internal/rapid_migration_assessment_tracing_connection.cc @@ -48,6 +48,30 @@ RapidMigrationAssessmentTracingConnection::CreateCollector( return internal::EndSpan(std::move(span), child_->CreateCollector(request)); } +StatusOr +RapidMigrationAssessmentTracingConnection::CreateCollector( + ExperimentalTag, NoAwaitTag, + google::cloud::rapidmigrationassessment::v1::CreateCollectorRequest const& + request) { + auto span = internal::MakeSpan( + "rapidmigrationassessment_v1::RapidMigrationAssessmentConnection::" + "CreateCollector"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->CreateCollector(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +RapidMigrationAssessmentTracingConnection::CreateCollector( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "rapidmigrationassessment_v1::RapidMigrationAssessmentConnection::" + "CreateCollector"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->CreateCollector(ExperimentalTag{}, operation)); +} + future> RapidMigrationAssessmentTracingConnection::CreateAnnotation( google::cloud::rapidmigrationassessment::v1::CreateAnnotationRequest const& @@ -59,6 +83,31 @@ RapidMigrationAssessmentTracingConnection::CreateAnnotation( return internal::EndSpan(std::move(span), child_->CreateAnnotation(request)); } +StatusOr +RapidMigrationAssessmentTracingConnection::CreateAnnotation( + ExperimentalTag, NoAwaitTag, + google::cloud::rapidmigrationassessment::v1::CreateAnnotationRequest const& + request) { + auto span = internal::MakeSpan( + "rapidmigrationassessment_v1::RapidMigrationAssessmentConnection::" + "CreateAnnotation"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->CreateAnnotation(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +RapidMigrationAssessmentTracingConnection::CreateAnnotation( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "rapidmigrationassessment_v1::RapidMigrationAssessmentConnection::" + "CreateAnnotation"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->CreateAnnotation(ExperimentalTag{}, operation)); +} + StatusOr RapidMigrationAssessmentTracingConnection::GetAnnotation( google::cloud::rapidmigrationassessment::v1::GetAnnotationRequest const& @@ -106,6 +155,30 @@ RapidMigrationAssessmentTracingConnection::UpdateCollector( return internal::EndSpan(std::move(span), child_->UpdateCollector(request)); } +StatusOr +RapidMigrationAssessmentTracingConnection::UpdateCollector( + ExperimentalTag, NoAwaitTag, + google::cloud::rapidmigrationassessment::v1::UpdateCollectorRequest const& + request) { + auto span = internal::MakeSpan( + "rapidmigrationassessment_v1::RapidMigrationAssessmentConnection::" + "UpdateCollector"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->UpdateCollector(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +RapidMigrationAssessmentTracingConnection::UpdateCollector( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "rapidmigrationassessment_v1::RapidMigrationAssessmentConnection::" + "UpdateCollector"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->UpdateCollector(ExperimentalTag{}, operation)); +} + future> RapidMigrationAssessmentTracingConnection::DeleteCollector( google::cloud::rapidmigrationassessment::v1::DeleteCollectorRequest const& @@ -117,6 +190,30 @@ RapidMigrationAssessmentTracingConnection::DeleteCollector( return internal::EndSpan(std::move(span), child_->DeleteCollector(request)); } +StatusOr +RapidMigrationAssessmentTracingConnection::DeleteCollector( + ExperimentalTag, NoAwaitTag, + google::cloud::rapidmigrationassessment::v1::DeleteCollectorRequest const& + request) { + auto span = internal::MakeSpan( + "rapidmigrationassessment_v1::RapidMigrationAssessmentConnection::" + "DeleteCollector"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->DeleteCollector(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +RapidMigrationAssessmentTracingConnection::DeleteCollector( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "rapidmigrationassessment_v1::RapidMigrationAssessmentConnection::" + "DeleteCollector"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->DeleteCollector(ExperimentalTag{}, operation)); +} + future> RapidMigrationAssessmentTracingConnection::ResumeCollector( google::cloud::rapidmigrationassessment::v1::ResumeCollectorRequest const& @@ -128,6 +225,30 @@ RapidMigrationAssessmentTracingConnection::ResumeCollector( return internal::EndSpan(std::move(span), child_->ResumeCollector(request)); } +StatusOr +RapidMigrationAssessmentTracingConnection::ResumeCollector( + ExperimentalTag, NoAwaitTag, + google::cloud::rapidmigrationassessment::v1::ResumeCollectorRequest const& + request) { + auto span = internal::MakeSpan( + "rapidmigrationassessment_v1::RapidMigrationAssessmentConnection::" + "ResumeCollector"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->ResumeCollector(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +RapidMigrationAssessmentTracingConnection::ResumeCollector( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "rapidmigrationassessment_v1::RapidMigrationAssessmentConnection::" + "ResumeCollector"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->ResumeCollector(ExperimentalTag{}, operation)); +} + future> RapidMigrationAssessmentTracingConnection::RegisterCollector( google::cloud::rapidmigrationassessment::v1::RegisterCollectorRequest const& @@ -139,6 +260,31 @@ RapidMigrationAssessmentTracingConnection::RegisterCollector( return internal::EndSpan(std::move(span), child_->RegisterCollector(request)); } +StatusOr +RapidMigrationAssessmentTracingConnection::RegisterCollector( + ExperimentalTag, NoAwaitTag, + google::cloud::rapidmigrationassessment::v1::RegisterCollectorRequest const& + request) { + auto span = internal::MakeSpan( + "rapidmigrationassessment_v1::RapidMigrationAssessmentConnection::" + "RegisterCollector"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->RegisterCollector(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +RapidMigrationAssessmentTracingConnection::RegisterCollector( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "rapidmigrationassessment_v1::RapidMigrationAssessmentConnection::" + "RegisterCollector"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->RegisterCollector(ExperimentalTag{}, operation)); +} + future> RapidMigrationAssessmentTracingConnection::PauseCollector( google::cloud::rapidmigrationassessment::v1::PauseCollectorRequest const& @@ -150,6 +296,30 @@ RapidMigrationAssessmentTracingConnection::PauseCollector( return internal::EndSpan(std::move(span), child_->PauseCollector(request)); } +StatusOr +RapidMigrationAssessmentTracingConnection::PauseCollector( + ExperimentalTag, NoAwaitTag, + google::cloud::rapidmigrationassessment::v1::PauseCollectorRequest const& + request) { + auto span = internal::MakeSpan( + "rapidmigrationassessment_v1::RapidMigrationAssessmentConnection::" + "PauseCollector"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->PauseCollector(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +RapidMigrationAssessmentTracingConnection::PauseCollector( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "rapidmigrationassessment_v1::RapidMigrationAssessmentConnection::" + "PauseCollector"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->PauseCollector(ExperimentalTag{}, operation)); +} + #endif // GOOGLE_CLOUD_CPP_HAVE_OPENTELEMETRY std::shared_ptr diff --git a/google/cloud/rapidmigrationassessment/v1/internal/rapid_migration_assessment_tracing_connection.h b/google/cloud/rapidmigrationassessment/v1/internal/rapid_migration_assessment_tracing_connection.h index 009a07cac04e0..1787fbaf62771 100644 --- a/google/cloud/rapidmigrationassessment/v1/internal/rapid_migration_assessment_tracing_connection.h +++ b/google/cloud/rapidmigrationassessment/v1/internal/rapid_migration_assessment_tracing_connection.h @@ -48,10 +48,28 @@ class RapidMigrationAssessmentTracingConnection google::cloud::rapidmigrationassessment::v1::CreateCollectorRequest const& request) override; + StatusOr CreateCollector( + ExperimentalTag, NoAwaitTag, + google::cloud::rapidmigrationassessment::v1::CreateCollectorRequest const& + request) override; + + future> + CreateCollector(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> CreateAnnotation(google::cloud::rapidmigrationassessment::v1:: CreateAnnotationRequest const& request) override; + StatusOr CreateAnnotation( + ExperimentalTag, NoAwaitTag, + google::cloud::rapidmigrationassessment::v1:: + CreateAnnotationRequest const& request) override; + + future> + CreateAnnotation(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetAnnotation( google::cloud::rapidmigrationassessment::v1::GetAnnotationRequest const& @@ -71,25 +89,70 @@ class RapidMigrationAssessmentTracingConnection google::cloud::rapidmigrationassessment::v1::UpdateCollectorRequest const& request) override; + StatusOr UpdateCollector( + ExperimentalTag, NoAwaitTag, + google::cloud::rapidmigrationassessment::v1::UpdateCollectorRequest const& + request) override; + + future> + UpdateCollector(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteCollector( google::cloud::rapidmigrationassessment::v1::DeleteCollectorRequest const& request) override; + StatusOr DeleteCollector( + ExperimentalTag, NoAwaitTag, + google::cloud::rapidmigrationassessment::v1::DeleteCollectorRequest const& + request) override; + + future> + DeleteCollector(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ResumeCollector( google::cloud::rapidmigrationassessment::v1::ResumeCollectorRequest const& request) override; + StatusOr ResumeCollector( + ExperimentalTag, NoAwaitTag, + google::cloud::rapidmigrationassessment::v1::ResumeCollectorRequest const& + request) override; + + future> + ResumeCollector(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> RegisterCollector(google::cloud::rapidmigrationassessment::v1:: RegisterCollectorRequest const& request) override; + StatusOr RegisterCollector( + ExperimentalTag, NoAwaitTag, + google::cloud::rapidmigrationassessment::v1:: + RegisterCollectorRequest const& request) override; + + future> + RegisterCollector(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> PauseCollector( google::cloud::rapidmigrationassessment::v1::PauseCollectorRequest const& request) override; + StatusOr PauseCollector( + ExperimentalTag, NoAwaitTag, + google::cloud::rapidmigrationassessment::v1::PauseCollectorRequest const& + request) override; + + future> + PauseCollector(ExperimentalTag, + google::longrunning::Operation const& operation) override; + private: std::shared_ptr< rapidmigrationassessment_v1::RapidMigrationAssessmentConnection> diff --git a/google/cloud/rapidmigrationassessment/v1/mocks/mock_rapid_migration_assessment_connection.h b/google/cloud/rapidmigrationassessment/v1/mocks/mock_rapid_migration_assessment_connection.h index 551ba884bdc42..b555a07d7292a 100644 --- a/google/cloud/rapidmigrationassessment/v1/mocks/mock_rapid_migration_assessment_connection.h +++ b/google/cloud/rapidmigrationassessment/v1/mocks/mock_rapid_migration_assessment_connection.h @@ -55,6 +55,18 @@ class MockRapidMigrationAssessmentConnection CreateCollectorRequest const& request), (override)); + MOCK_METHOD(StatusOr, CreateCollector, + (ExperimentalTag, NoAwaitTag, + google::cloud::rapidmigrationassessment::v1:: + CreateCollectorRequest const& request), + (override)); + + MOCK_METHOD( + future>, + CreateCollector, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, CreateAnnotation, @@ -62,6 +74,18 @@ class MockRapidMigrationAssessmentConnection CreateAnnotationRequest const& request), (override)); + MOCK_METHOD(StatusOr, CreateAnnotation, + (ExperimentalTag, NoAwaitTag, + google::cloud::rapidmigrationassessment::v1:: + CreateAnnotationRequest const& request), + (override)); + + MOCK_METHOD( + future>, + CreateAnnotation, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr, GetAnnotation, @@ -90,6 +114,18 @@ class MockRapidMigrationAssessmentConnection UpdateCollectorRequest const& request), (override)); + MOCK_METHOD(StatusOr, UpdateCollector, + (ExperimentalTag, NoAwaitTag, + google::cloud::rapidmigrationassessment::v1:: + UpdateCollectorRequest const& request), + (override)); + + MOCK_METHOD( + future>, + UpdateCollector, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteCollector, @@ -97,6 +133,18 @@ class MockRapidMigrationAssessmentConnection DeleteCollectorRequest const& request), (override)); + MOCK_METHOD(StatusOr, DeleteCollector, + (ExperimentalTag, NoAwaitTag, + google::cloud::rapidmigrationassessment::v1:: + DeleteCollectorRequest const& request), + (override)); + + MOCK_METHOD( + future>, + DeleteCollector, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, ResumeCollector, @@ -104,6 +152,18 @@ class MockRapidMigrationAssessmentConnection ResumeCollectorRequest const& request), (override)); + MOCK_METHOD(StatusOr, ResumeCollector, + (ExperimentalTag, NoAwaitTag, + google::cloud::rapidmigrationassessment::v1:: + ResumeCollectorRequest const& request), + (override)); + + MOCK_METHOD( + future>, + ResumeCollector, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, RegisterCollector, @@ -111,12 +171,37 @@ class MockRapidMigrationAssessmentConnection RegisterCollectorRequest const& request), (override)); + MOCK_METHOD(StatusOr, RegisterCollector, + (ExperimentalTag, NoAwaitTag, + google::cloud::rapidmigrationassessment::v1:: + RegisterCollectorRequest const& request), + (override)); + + MOCK_METHOD( + future>, + RegisterCollector, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, PauseCollector, (google::cloud::rapidmigrationassessment::v1::PauseCollectorRequest const& request), (override)); + + MOCK_METHOD( + StatusOr, PauseCollector, + (ExperimentalTag, NoAwaitTag, + google::cloud::rapidmigrationassessment::v1::PauseCollectorRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + PauseCollector, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); }; GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END diff --git a/google/cloud/rapidmigrationassessment/v1/rapid_migration_assessment_connection.cc b/google/cloud/rapidmigrationassessment/v1/rapid_migration_assessment_connection.cc index 75b1913121e42..f7e4c413d6950 100644 --- a/google/cloud/rapidmigrationassessment/v1/rapid_migration_assessment_connection.cc +++ b/google/cloud/rapidmigrationassessment/v1/rapid_migration_assessment_connection.cc @@ -49,6 +49,23 @@ RapidMigrationAssessmentConnection::CreateCollector( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +RapidMigrationAssessmentConnection::CreateCollector( + ExperimentalTag, NoAwaitTag, + google::cloud::rapidmigrationassessment::v1:: + CreateCollectorRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +RapidMigrationAssessmentConnection::CreateCollector( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> RapidMigrationAssessmentConnection::CreateAnnotation( google::cloud::rapidmigrationassessment::v1:: @@ -58,6 +75,23 @@ RapidMigrationAssessmentConnection::CreateAnnotation( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +RapidMigrationAssessmentConnection::CreateAnnotation( + ExperimentalTag, NoAwaitTag, + google::cloud::rapidmigrationassessment::v1:: + CreateAnnotationRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +RapidMigrationAssessmentConnection::CreateAnnotation( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr RapidMigrationAssessmentConnection::GetAnnotation( google::cloud::rapidmigrationassessment::v1::GetAnnotationRequest const&) { @@ -87,6 +121,23 @@ RapidMigrationAssessmentConnection::UpdateCollector( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +RapidMigrationAssessmentConnection::UpdateCollector( + ExperimentalTag, NoAwaitTag, + google::cloud::rapidmigrationassessment::v1:: + UpdateCollectorRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +RapidMigrationAssessmentConnection::UpdateCollector( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> RapidMigrationAssessmentConnection::DeleteCollector( google::cloud::rapidmigrationassessment::v1:: @@ -96,6 +147,23 @@ RapidMigrationAssessmentConnection::DeleteCollector( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +RapidMigrationAssessmentConnection::DeleteCollector( + ExperimentalTag, NoAwaitTag, + google::cloud::rapidmigrationassessment::v1:: + DeleteCollectorRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +RapidMigrationAssessmentConnection::DeleteCollector( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> RapidMigrationAssessmentConnection::ResumeCollector( google::cloud::rapidmigrationassessment::v1:: @@ -105,6 +173,23 @@ RapidMigrationAssessmentConnection::ResumeCollector( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +RapidMigrationAssessmentConnection::ResumeCollector( + ExperimentalTag, NoAwaitTag, + google::cloud::rapidmigrationassessment::v1:: + ResumeCollectorRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +RapidMigrationAssessmentConnection::ResumeCollector( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> RapidMigrationAssessmentConnection::RegisterCollector( google::cloud::rapidmigrationassessment::v1:: @@ -114,9 +199,42 @@ RapidMigrationAssessmentConnection::RegisterCollector( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +RapidMigrationAssessmentConnection::RegisterCollector( + ExperimentalTag, NoAwaitTag, + google::cloud::rapidmigrationassessment::v1:: + RegisterCollectorRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> +RapidMigrationAssessmentConnection::RegisterCollector( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +RapidMigrationAssessmentConnection::PauseCollector( + google::cloud::rapidmigrationassessment::v1::PauseCollectorRequest const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +StatusOr RapidMigrationAssessmentConnection::PauseCollector( + ExperimentalTag, NoAwaitTag, google::cloud::rapidmigrationassessment::v1::PauseCollectorRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +RapidMigrationAssessmentConnection::PauseCollector( + ExperimentalTag, google::longrunning::Operation const&) { return google::cloud::make_ready_future< StatusOr>( Status(StatusCode::kUnimplemented, "not implemented")); diff --git a/google/cloud/rapidmigrationassessment/v1/rapid_migration_assessment_connection.h b/google/cloud/rapidmigrationassessment/v1/rapid_migration_assessment_connection.h index 2e0bc5f172813..1a2177590ba75 100644 --- a/google/cloud/rapidmigrationassessment/v1/rapid_migration_assessment_connection.h +++ b/google/cloud/rapidmigrationassessment/v1/rapid_migration_assessment_connection.h @@ -23,8 +23,10 @@ #include "google/cloud/rapidmigrationassessment/v1/internal/rapid_migration_assessment_retry_traits.h" #include "google/cloud/rapidmigrationassessment/v1/rapid_migration_assessment_connection_idempotency_policy.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/internal/retry_policy_impl.h" +#include "google/cloud/no_await_tag.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" #include "google/cloud/status_or.h" @@ -206,11 +208,31 @@ class RapidMigrationAssessmentConnection { google::cloud::rapidmigrationassessment::v1::CreateCollectorRequest const& request); + virtual StatusOr CreateCollector( + ExperimentalTag, NoAwaitTag, + google::cloud::rapidmigrationassessment::v1::CreateCollectorRequest const& + request); + + virtual future< + StatusOr> + CreateCollector(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future< StatusOr> CreateAnnotation(google::cloud::rapidmigrationassessment::v1:: CreateAnnotationRequest const& request); + virtual StatusOr CreateAnnotation( + ExperimentalTag, NoAwaitTag, + google::cloud::rapidmigrationassessment::v1:: + CreateAnnotationRequest const& request); + + virtual future< + StatusOr> + CreateAnnotation(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StatusOr GetAnnotation( google::cloud::rapidmigrationassessment::v1::GetAnnotationRequest const& @@ -232,28 +254,78 @@ class RapidMigrationAssessmentConnection { google::cloud::rapidmigrationassessment::v1::UpdateCollectorRequest const& request); + virtual StatusOr UpdateCollector( + ExperimentalTag, NoAwaitTag, + google::cloud::rapidmigrationassessment::v1::UpdateCollectorRequest const& + request); + + virtual future< + StatusOr> + UpdateCollector(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future< StatusOr> DeleteCollector( google::cloud::rapidmigrationassessment::v1::DeleteCollectorRequest const& request); + virtual StatusOr DeleteCollector( + ExperimentalTag, NoAwaitTag, + google::cloud::rapidmigrationassessment::v1::DeleteCollectorRequest const& + request); + + virtual future< + StatusOr> + DeleteCollector(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future< StatusOr> ResumeCollector( google::cloud::rapidmigrationassessment::v1::ResumeCollectorRequest const& request); + virtual StatusOr ResumeCollector( + ExperimentalTag, NoAwaitTag, + google::cloud::rapidmigrationassessment::v1::ResumeCollectorRequest const& + request); + + virtual future< + StatusOr> + ResumeCollector(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future< StatusOr> RegisterCollector(google::cloud::rapidmigrationassessment::v1:: RegisterCollectorRequest const& request); + virtual StatusOr RegisterCollector( + ExperimentalTag, NoAwaitTag, + google::cloud::rapidmigrationassessment::v1:: + RegisterCollectorRequest const& request); + + virtual future< + StatusOr> + RegisterCollector(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future< StatusOr> PauseCollector( google::cloud::rapidmigrationassessment::v1::PauseCollectorRequest const& request); + + virtual StatusOr PauseCollector( + ExperimentalTag, NoAwaitTag, + google::cloud::rapidmigrationassessment::v1::PauseCollectorRequest const& + request); + + virtual future< + StatusOr> + PauseCollector(ExperimentalTag, + google::longrunning::Operation const& operation); }; /** diff --git a/google/cloud/recaptchaenterprise/v1/recaptcha_enterprise_connection.h b/google/cloud/recaptchaenterprise/v1/recaptcha_enterprise_connection.h index c8c9438c3fb76..24a1acec531c6 100644 --- a/google/cloud/recaptchaenterprise/v1/recaptcha_enterprise_connection.h +++ b/google/cloud/recaptchaenterprise/v1/recaptcha_enterprise_connection.h @@ -22,6 +22,7 @@ #include "google/cloud/recaptchaenterprise/v1/internal/recaptcha_enterprise_retry_traits.h" #include "google/cloud/recaptchaenterprise/v1/recaptcha_enterprise_connection_idempotency_policy.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/internal/retry_policy_impl.h" #include "google/cloud/options.h" #include "google/cloud/status_or.h" diff --git a/google/cloud/recommender/v1/recommender_connection.h b/google/cloud/recommender/v1/recommender_connection.h index 8a3e6ebc06497..a10035155b5fd 100644 --- a/google/cloud/recommender/v1/recommender_connection.h +++ b/google/cloud/recommender/v1/recommender_connection.h @@ -22,6 +22,7 @@ #include "google/cloud/recommender/v1/internal/recommender_retry_traits.h" #include "google/cloud/recommender/v1/recommender_connection_idempotency_policy.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/internal/retry_policy_impl.h" #include "google/cloud/options.h" #include "google/cloud/status_or.h" diff --git a/google/cloud/redis/cluster/v1/cloud_redis_cluster_connection.cc b/google/cloud/redis/cluster/v1/cloud_redis_cluster_connection.cc index 7bf40b8cbbffb..ad39ef64bdd4b 100644 --- a/google/cloud/redis/cluster/v1/cloud_redis_cluster_connection.cc +++ b/google/cloud/redis/cluster/v1/cloud_redis_cluster_connection.cc @@ -60,6 +60,22 @@ CloudRedisClusterConnection::UpdateCluster( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +CloudRedisClusterConnection::UpdateCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::redis::cluster::v1::UpdateClusterRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +CloudRedisClusterConnection::UpdateCluster( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> CloudRedisClusterConnection::DeleteCluster( google::cloud::redis::cluster::v1::DeleteClusterRequest const&) { @@ -67,6 +83,21 @@ CloudRedisClusterConnection::DeleteCluster( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +CloudRedisClusterConnection::DeleteCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::redis::cluster::v1::DeleteClusterRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +CloudRedisClusterConnection::DeleteCluster( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> CloudRedisClusterConnection::CreateCluster( google::cloud::redis::cluster::v1::CreateClusterRequest const&) { @@ -75,6 +106,22 @@ CloudRedisClusterConnection::CreateCluster( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +CloudRedisClusterConnection::CreateCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::redis::cluster::v1::CreateClusterRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +CloudRedisClusterConnection::CreateCluster( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr CloudRedisClusterConnection::GetClusterCertificateAuthority( google::cloud::redis::cluster::v1:: diff --git a/google/cloud/redis/cluster/v1/cloud_redis_cluster_connection.h b/google/cloud/redis/cluster/v1/cloud_redis_cluster_connection.h index 8eadc88d11387..5df9dbce7e17e 100644 --- a/google/cloud/redis/cluster/v1/cloud_redis_cluster_connection.h +++ b/google/cloud/redis/cluster/v1/cloud_redis_cluster_connection.h @@ -22,8 +22,10 @@ #include "google/cloud/redis/cluster/v1/cloud_redis_cluster_connection_idempotency_policy.h" #include "google/cloud/redis/cluster/v1/internal/cloud_redis_cluster_retry_traits.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/internal/retry_policy_impl.h" +#include "google/cloud/no_await_tag.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" #include "google/cloud/status_or.h" @@ -196,13 +198,36 @@ class CloudRedisClusterConnection { UpdateCluster( google::cloud::redis::cluster::v1::UpdateClusterRequest const& request); + virtual StatusOr UpdateCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::redis::cluster::v1::UpdateClusterRequest const& request); + + virtual future> + UpdateCluster(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> DeleteCluster( google::cloud::redis::cluster::v1::DeleteClusterRequest const& request); + virtual StatusOr DeleteCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::redis::cluster::v1::DeleteClusterRequest const& request); + + virtual future> DeleteCluster( + ExperimentalTag, google::longrunning::Operation const& operation); + virtual future> CreateCluster( google::cloud::redis::cluster::v1::CreateClusterRequest const& request); + virtual StatusOr CreateCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::redis::cluster::v1::CreateClusterRequest const& request); + + virtual future> + CreateCluster(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StatusOr GetClusterCertificateAuthority( google::cloud::redis::cluster::v1:: diff --git a/google/cloud/redis/cluster/v1/internal/cloud_redis_cluster_connection_impl.cc b/google/cloud/redis/cluster/v1/internal/cloud_redis_cluster_connection_impl.cc index 499e01dfd2d46..17a41dca0cb03 100644 --- a/google/cloud/redis/cluster/v1/internal/cloud_redis_cluster_connection_impl.cc +++ b/google/cloud/redis/cluster/v1/internal/cloud_redis_cluster_connection_impl.cc @@ -157,6 +157,58 @@ CloudRedisClusterConnectionImpl::UpdateCluster( polling_policy(*current), __func__); } +StatusOr +CloudRedisClusterConnectionImpl::UpdateCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::redis::cluster::v1::UpdateClusterRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UpdateCluster(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::redis::cluster::v1::UpdateClusterRequest const& + request) { + return stub_->UpdateCluster(context, options, request); + }, + *current, request, __func__); +} + +future> +CloudRedisClusterConnectionImpl::UpdateCluster( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata().Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to UpdateCluster", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::redis::cluster::v1::Cluster>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::redis::cluster::v1::Cluster>, + polling_policy(*current), __func__); +} + future> CloudRedisClusterConnectionImpl::DeleteCluster( google::cloud::redis::cluster::v1::DeleteClusterRequest const& request) { @@ -197,6 +249,57 @@ CloudRedisClusterConnectionImpl::DeleteCluster( polling_policy(*current), __func__); } +StatusOr +CloudRedisClusterConnectionImpl::DeleteCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::redis::cluster::v1::DeleteClusterRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteCluster(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::redis::cluster::v1::DeleteClusterRequest const& + request) { + return stub_->DeleteCluster(context, options, request); + }, + *current, request, __func__); +} + +future> +CloudRedisClusterConnectionImpl::DeleteCluster( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata().Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteCluster", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::protobuf::Any>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::protobuf::Any>, + polling_policy(*current), __func__); +} + future> CloudRedisClusterConnectionImpl::CreateCluster( google::cloud::redis::cluster::v1::CreateClusterRequest const& request) { @@ -237,6 +340,58 @@ CloudRedisClusterConnectionImpl::CreateCluster( polling_policy(*current), __func__); } +StatusOr +CloudRedisClusterConnectionImpl::CreateCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::redis::cluster::v1::CreateClusterRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateCluster(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::redis::cluster::v1::CreateClusterRequest const& + request) { + return stub_->CreateCluster(context, options, request); + }, + *current, request, __func__); +} + +future> +CloudRedisClusterConnectionImpl::CreateCluster( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata().Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to CreateCluster", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::redis::cluster::v1::Cluster>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::redis::cluster::v1::Cluster>, + polling_policy(*current), __func__); +} + StatusOr CloudRedisClusterConnectionImpl::GetClusterCertificateAuthority( google::cloud::redis::cluster::v1:: diff --git a/google/cloud/redis/cluster/v1/internal/cloud_redis_cluster_connection_impl.h b/google/cloud/redis/cluster/v1/internal/cloud_redis_cluster_connection_impl.h index d341e457582cb..5d3d29c25f254 100644 --- a/google/cloud/redis/cluster/v1/internal/cloud_redis_cluster_connection_impl.h +++ b/google/cloud/redis/cluster/v1/internal/cloud_redis_cluster_connection_impl.h @@ -63,14 +63,41 @@ class CloudRedisClusterConnectionImpl google::cloud::redis::cluster::v1::UpdateClusterRequest const& request) override; + StatusOr UpdateCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::redis::cluster::v1::UpdateClusterRequest const& request) + override; + + future> UpdateCluster( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteCluster( google::cloud::redis::cluster::v1::DeleteClusterRequest const& request) override; + StatusOr DeleteCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::redis::cluster::v1::DeleteClusterRequest const& request) + override; + + future> DeleteCluster( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> CreateCluster( google::cloud::redis::cluster::v1::CreateClusterRequest const& request) override; + StatusOr CreateCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::redis::cluster::v1::CreateClusterRequest const& request) + override; + + future> CreateCluster( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetClusterCertificateAuthority( google::cloud::redis::cluster::v1:: diff --git a/google/cloud/redis/cluster/v1/internal/cloud_redis_cluster_tracing_connection.cc b/google/cloud/redis/cluster/v1/internal/cloud_redis_cluster_tracing_connection.cc index dc289a3e35884..8dd0ad8ecaf39 100644 --- a/google/cloud/redis/cluster/v1/internal/cloud_redis_cluster_tracing_connection.cc +++ b/google/cloud/redis/cluster/v1/internal/cloud_redis_cluster_tracing_connection.cc @@ -63,6 +63,27 @@ CloudRedisClusterTracingConnection::UpdateCluster( return internal::EndSpan(std::move(span), child_->UpdateCluster(request)); } +StatusOr +CloudRedisClusterTracingConnection::UpdateCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::redis::cluster::v1::UpdateClusterRequest const& request) { + auto span = internal::MakeSpan( + "redis_cluster_v1::CloudRedisClusterConnection::UpdateCluster"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->UpdateCluster(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +CloudRedisClusterTracingConnection::UpdateCluster( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "redis_cluster_v1::CloudRedisClusterConnection::UpdateCluster"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->UpdateCluster(ExperimentalTag{}, operation)); +} + future> CloudRedisClusterTracingConnection::DeleteCluster( google::cloud::redis::cluster::v1::DeleteClusterRequest const& request) { @@ -72,6 +93,27 @@ CloudRedisClusterTracingConnection::DeleteCluster( return internal::EndSpan(std::move(span), child_->DeleteCluster(request)); } +StatusOr +CloudRedisClusterTracingConnection::DeleteCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::redis::cluster::v1::DeleteClusterRequest const& request) { + auto span = internal::MakeSpan( + "redis_cluster_v1::CloudRedisClusterConnection::DeleteCluster"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->DeleteCluster(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +CloudRedisClusterTracingConnection::DeleteCluster( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "redis_cluster_v1::CloudRedisClusterConnection::DeleteCluster"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->DeleteCluster(ExperimentalTag{}, operation)); +} + future> CloudRedisClusterTracingConnection::CreateCluster( google::cloud::redis::cluster::v1::CreateClusterRequest const& request) { @@ -81,6 +123,27 @@ CloudRedisClusterTracingConnection::CreateCluster( return internal::EndSpan(std::move(span), child_->CreateCluster(request)); } +StatusOr +CloudRedisClusterTracingConnection::CreateCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::redis::cluster::v1::CreateClusterRequest const& request) { + auto span = internal::MakeSpan( + "redis_cluster_v1::CloudRedisClusterConnection::CreateCluster"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->CreateCluster(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +CloudRedisClusterTracingConnection::CreateCluster( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "redis_cluster_v1::CloudRedisClusterConnection::CreateCluster"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->CreateCluster(ExperimentalTag{}, operation)); +} + StatusOr CloudRedisClusterTracingConnection::GetClusterCertificateAuthority( google::cloud::redis::cluster::v1:: diff --git a/google/cloud/redis/cluster/v1/internal/cloud_redis_cluster_tracing_connection.h b/google/cloud/redis/cluster/v1/internal/cloud_redis_cluster_tracing_connection.h index 6a20be89b260e..76c2b62995b03 100644 --- a/google/cloud/redis/cluster/v1/internal/cloud_redis_cluster_tracing_connection.h +++ b/google/cloud/redis/cluster/v1/internal/cloud_redis_cluster_tracing_connection.h @@ -51,14 +51,41 @@ class CloudRedisClusterTracingConnection google::cloud::redis::cluster::v1::UpdateClusterRequest const& request) override; + StatusOr UpdateCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::redis::cluster::v1::UpdateClusterRequest const& request) + override; + + future> UpdateCluster( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteCluster( google::cloud::redis::cluster::v1::DeleteClusterRequest const& request) override; + StatusOr DeleteCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::redis::cluster::v1::DeleteClusterRequest const& request) + override; + + future> DeleteCluster( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> CreateCluster( google::cloud::redis::cluster::v1::CreateClusterRequest const& request) override; + StatusOr CreateCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::redis::cluster::v1::CreateClusterRequest const& request) + override; + + future> CreateCluster( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetClusterCertificateAuthority( google::cloud::redis::cluster::v1:: diff --git a/google/cloud/redis/cluster/v1/mocks/mock_cloud_redis_cluster_connection.h b/google/cloud/redis/cluster/v1/mocks/mock_cloud_redis_cluster_connection.h index 4d8a4f3e4324f..e6e6a911d557d 100644 --- a/google/cloud/redis/cluster/v1/mocks/mock_cloud_redis_cluster_connection.h +++ b/google/cloud/redis/cluster/v1/mocks/mock_cloud_redis_cluster_connection.h @@ -63,17 +63,52 @@ class MockCloudRedisClusterConnection (google::cloud::redis::cluster::v1::UpdateClusterRequest const& request), (override)); + MOCK_METHOD( + StatusOr, UpdateCluster, + (ExperimentalTag, NoAwaitTag, + google::cloud::redis::cluster::v1::UpdateClusterRequest const& request), + (override)); + + MOCK_METHOD(future>, + UpdateCluster, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteCluster, (google::cloud::redis::cluster::v1::DeleteClusterRequest const& request), (override)); + MOCK_METHOD( + StatusOr, DeleteCluster, + (ExperimentalTag, NoAwaitTag, + google::cloud::redis::cluster::v1::DeleteClusterRequest const& request), + (override)); + + MOCK_METHOD(future>, DeleteCluster, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, CreateCluster, (google::cloud::redis::cluster::v1::CreateClusterRequest const& request), (override)); + MOCK_METHOD( + StatusOr, CreateCluster, + (ExperimentalTag, NoAwaitTag, + google::cloud::redis::cluster::v1::CreateClusterRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateCluster, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(StatusOr, GetClusterCertificateAuthority, (google::cloud::redis::cluster::v1:: diff --git a/google/cloud/redis/v1/cloud_redis_connection.cc b/google/cloud/redis/v1/cloud_redis_connection.cc index 20a05c71289bf..91d3bcb76b3b1 100644 --- a/google/cloud/redis/v1/cloud_redis_connection.cc +++ b/google/cloud/redis/v1/cloud_redis_connection.cc @@ -65,6 +65,21 @@ CloudRedisConnection::CreateInstance( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr CloudRedisConnection::CreateInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::redis::v1::CreateInstanceRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +CloudRedisConnection::CreateInstance(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> CloudRedisConnection::UpdateInstance( google::cloud::redis::v1::UpdateInstanceRequest const&) { @@ -73,6 +88,21 @@ CloudRedisConnection::UpdateInstance( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr CloudRedisConnection::UpdateInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::redis::v1::UpdateInstanceRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +CloudRedisConnection::UpdateInstance(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> CloudRedisConnection::UpgradeInstance( google::cloud::redis::v1::UpgradeInstanceRequest const&) { @@ -81,6 +111,21 @@ CloudRedisConnection::UpgradeInstance( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr CloudRedisConnection::UpgradeInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::redis::v1::UpgradeInstanceRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +CloudRedisConnection::UpgradeInstance(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> CloudRedisConnection::ImportInstance( google::cloud::redis::v1::ImportInstanceRequest const&) { @@ -89,6 +134,21 @@ CloudRedisConnection::ImportInstance( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr CloudRedisConnection::ImportInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::redis::v1::ImportInstanceRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +CloudRedisConnection::ImportInstance(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> CloudRedisConnection::ExportInstance( google::cloud::redis::v1::ExportInstanceRequest const&) { @@ -97,6 +157,21 @@ CloudRedisConnection::ExportInstance( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr CloudRedisConnection::ExportInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::redis::v1::ExportInstanceRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +CloudRedisConnection::ExportInstance(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> CloudRedisConnection::FailoverInstance( google::cloud::redis::v1::FailoverInstanceRequest const&) { @@ -105,6 +180,21 @@ CloudRedisConnection::FailoverInstance( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr CloudRedisConnection::FailoverInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::redis::v1::FailoverInstanceRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +CloudRedisConnection::FailoverInstance(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> CloudRedisConnection::DeleteInstance( google::cloud::redis::v1::DeleteInstanceRequest const&) { @@ -113,6 +203,21 @@ CloudRedisConnection::DeleteInstance( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr CloudRedisConnection::DeleteInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::redis::v1::DeleteInstanceRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +CloudRedisConnection::DeleteInstance(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> CloudRedisConnection::RescheduleMaintenance( google::cloud::redis::v1::RescheduleMaintenanceRequest const&) { @@ -121,6 +226,22 @@ CloudRedisConnection::RescheduleMaintenance( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +CloudRedisConnection::RescheduleMaintenance( + ExperimentalTag, NoAwaitTag, + google::cloud::redis::v1::RescheduleMaintenanceRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +CloudRedisConnection::RescheduleMaintenance( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + std::shared_ptr MakeCloudRedisConnection( Options options) { internal::CheckExpectedOptions> CreateInstance( google::cloud::redis::v1::CreateInstanceRequest const& request); + virtual StatusOr CreateInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::redis::v1::CreateInstanceRequest const& request); + + virtual future> CreateInstance( + ExperimentalTag, google::longrunning::Operation const& operation); + virtual future> UpdateInstance( google::cloud::redis::v1::UpdateInstanceRequest const& request); + virtual StatusOr UpdateInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::redis::v1::UpdateInstanceRequest const& request); + + virtual future> UpdateInstance( + ExperimentalTag, google::longrunning::Operation const& operation); + virtual future> UpgradeInstance( google::cloud::redis::v1::UpgradeInstanceRequest const& request); + virtual StatusOr UpgradeInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::redis::v1::UpgradeInstanceRequest const& request); + + virtual future> UpgradeInstance( + ExperimentalTag, google::longrunning::Operation const& operation); + virtual future> ImportInstance( google::cloud::redis::v1::ImportInstanceRequest const& request); + virtual StatusOr ImportInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::redis::v1::ImportInstanceRequest const& request); + + virtual future> ImportInstance( + ExperimentalTag, google::longrunning::Operation const& operation); + virtual future> ExportInstance( google::cloud::redis::v1::ExportInstanceRequest const& request); + virtual StatusOr ExportInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::redis::v1::ExportInstanceRequest const& request); + + virtual future> ExportInstance( + ExperimentalTag, google::longrunning::Operation const& operation); + virtual future> FailoverInstance( google::cloud::redis::v1::FailoverInstanceRequest const& request); + virtual StatusOr FailoverInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::redis::v1::FailoverInstanceRequest const& request); + + virtual future> FailoverInstance( + ExperimentalTag, google::longrunning::Operation const& operation); + virtual future> DeleteInstance( google::cloud::redis::v1::DeleteInstanceRequest const& request); + virtual StatusOr DeleteInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::redis::v1::DeleteInstanceRequest const& request); + + virtual future> + DeleteInstance(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> RescheduleMaintenance( google::cloud::redis::v1::RescheduleMaintenanceRequest const& request); + + virtual StatusOr RescheduleMaintenance( + ExperimentalTag, NoAwaitTag, + google::cloud::redis::v1::RescheduleMaintenanceRequest const& request); + + virtual future> + RescheduleMaintenance(ExperimentalTag, + google::longrunning::Operation const& operation); }; /** diff --git a/google/cloud/redis/v1/internal/cloud_redis_connection_impl.cc b/google/cloud/redis/v1/internal/cloud_redis_connection_impl.cc index dc5db8adb471d..a271a417efe45 100644 --- a/google/cloud/redis/v1/internal/cloud_redis_connection_impl.cc +++ b/google/cloud/redis/v1/internal/cloud_redis_connection_impl.cc @@ -164,6 +164,57 @@ CloudRedisConnectionImpl::CreateInstance( polling_policy(*current), __func__); } +StatusOr +CloudRedisConnectionImpl::CreateInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::redis::v1::CreateInstanceRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateInstance(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::redis::v1::CreateInstanceRequest const& request) { + return stub_->CreateInstance(context, options, request); + }, + *current, request, __func__); +} + +future> +CloudRedisConnectionImpl::CreateInstance( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to CreateInstance", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::redis::v1::Instance>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::redis::v1::Instance>, + polling_policy(*current), __func__); +} + future> CloudRedisConnectionImpl::UpdateInstance( google::cloud::redis::v1::UpdateInstanceRequest const& request) { @@ -203,6 +254,57 @@ CloudRedisConnectionImpl::UpdateInstance( polling_policy(*current), __func__); } +StatusOr +CloudRedisConnectionImpl::UpdateInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::redis::v1::UpdateInstanceRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UpdateInstance(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::redis::v1::UpdateInstanceRequest const& request) { + return stub_->UpdateInstance(context, options, request); + }, + *current, request, __func__); +} + +future> +CloudRedisConnectionImpl::UpdateInstance( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to UpdateInstance", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::redis::v1::Instance>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::redis::v1::Instance>, + polling_policy(*current), __func__); +} + future> CloudRedisConnectionImpl::UpgradeInstance( google::cloud::redis::v1::UpgradeInstanceRequest const& request) { @@ -242,6 +344,57 @@ CloudRedisConnectionImpl::UpgradeInstance( polling_policy(*current), __func__); } +StatusOr +CloudRedisConnectionImpl::UpgradeInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::redis::v1::UpgradeInstanceRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UpgradeInstance(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::redis::v1::UpgradeInstanceRequest const& request) { + return stub_->UpgradeInstance(context, options, request); + }, + *current, request, __func__); +} + +future> +CloudRedisConnectionImpl::UpgradeInstance( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to UpgradeInstance", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::redis::v1::Instance>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::redis::v1::Instance>, + polling_policy(*current), __func__); +} + future> CloudRedisConnectionImpl::ImportInstance( google::cloud::redis::v1::ImportInstanceRequest const& request) { @@ -281,6 +434,57 @@ CloudRedisConnectionImpl::ImportInstance( polling_policy(*current), __func__); } +StatusOr +CloudRedisConnectionImpl::ImportInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::redis::v1::ImportInstanceRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->ImportInstance(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::redis::v1::ImportInstanceRequest const& request) { + return stub_->ImportInstance(context, options, request); + }, + *current, request, __func__); +} + +future> +CloudRedisConnectionImpl::ImportInstance( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to ImportInstance", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::redis::v1::Instance>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::redis::v1::Instance>, + polling_policy(*current), __func__); +} + future> CloudRedisConnectionImpl::ExportInstance( google::cloud::redis::v1::ExportInstanceRequest const& request) { @@ -320,6 +524,57 @@ CloudRedisConnectionImpl::ExportInstance( polling_policy(*current), __func__); } +StatusOr +CloudRedisConnectionImpl::ExportInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::redis::v1::ExportInstanceRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->ExportInstance(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::redis::v1::ExportInstanceRequest const& request) { + return stub_->ExportInstance(context, options, request); + }, + *current, request, __func__); +} + +future> +CloudRedisConnectionImpl::ExportInstance( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to ExportInstance", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::redis::v1::Instance>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::redis::v1::Instance>, + polling_policy(*current), __func__); +} + future> CloudRedisConnectionImpl::FailoverInstance( google::cloud::redis::v1::FailoverInstanceRequest const& request) { @@ -359,6 +614,57 @@ CloudRedisConnectionImpl::FailoverInstance( polling_policy(*current), __func__); } +StatusOr +CloudRedisConnectionImpl::FailoverInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::redis::v1::FailoverInstanceRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->FailoverInstance(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::redis::v1::FailoverInstanceRequest const& request) { + return stub_->FailoverInstance(context, options, request); + }, + *current, request, __func__); +} + +future> +CloudRedisConnectionImpl::FailoverInstance( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to FailoverInstance", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::redis::v1::Instance>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::redis::v1::Instance>, + polling_policy(*current), __func__); +} + future> CloudRedisConnectionImpl::DeleteInstance( google::cloud::redis::v1::DeleteInstanceRequest const& request) { @@ -398,6 +704,58 @@ CloudRedisConnectionImpl::DeleteInstance( polling_policy(*current), __func__); } +StatusOr +CloudRedisConnectionImpl::DeleteInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::redis::v1::DeleteInstanceRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteInstance(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::redis::v1::DeleteInstanceRequest const& request) { + return stub_->DeleteInstance(context, options, request); + }, + *current, request, __func__); +} + +future> +CloudRedisConnectionImpl::DeleteInstance( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteInstance", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::redis::v1::OperationMetadata>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::cloud::redis::v1::OperationMetadata>, + polling_policy(*current), __func__); +} + future> CloudRedisConnectionImpl::RescheduleMaintenance( google::cloud::redis::v1::RescheduleMaintenanceRequest const& request) { @@ -438,6 +796,58 @@ CloudRedisConnectionImpl::RescheduleMaintenance( polling_policy(*current), __func__); } +StatusOr +CloudRedisConnectionImpl::RescheduleMaintenance( + ExperimentalTag, NoAwaitTag, + google::cloud::redis::v1::RescheduleMaintenanceRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->RescheduleMaintenance(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::redis::v1::RescheduleMaintenanceRequest const& + request) { + return stub_->RescheduleMaintenance(context, options, request); + }, + *current, request, __func__); +} + +future> +CloudRedisConnectionImpl::RescheduleMaintenance( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to RescheduleMaintenance", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::redis::v1::Instance>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::redis::v1::Instance>, + polling_policy(*current), __func__); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace redis_v1_internal } // namespace cloud diff --git a/google/cloud/redis/v1/internal/cloud_redis_connection_impl.h b/google/cloud/redis/v1/internal/cloud_redis_connection_impl.h index f15397e8edfaf..95d751124a35d 100644 --- a/google/cloud/redis/v1/internal/cloud_redis_connection_impl.h +++ b/google/cloud/redis/v1/internal/cloud_redis_connection_impl.h @@ -63,29 +63,95 @@ class CloudRedisConnectionImpl : public redis_v1::CloudRedisConnection { future> CreateInstance( google::cloud::redis::v1::CreateInstanceRequest const& request) override; + StatusOr CreateInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::redis::v1::CreateInstanceRequest const& request) override; + + future> CreateInstance( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateInstance( google::cloud::redis::v1::UpdateInstanceRequest const& request) override; + StatusOr UpdateInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::redis::v1::UpdateInstanceRequest const& request) override; + + future> UpdateInstance( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpgradeInstance( google::cloud::redis::v1::UpgradeInstanceRequest const& request) override; + StatusOr UpgradeInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::redis::v1::UpgradeInstanceRequest const& request) override; + + future> UpgradeInstance( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ImportInstance( google::cloud::redis::v1::ImportInstanceRequest const& request) override; + StatusOr ImportInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::redis::v1::ImportInstanceRequest const& request) override; + + future> ImportInstance( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ExportInstance( google::cloud::redis::v1::ExportInstanceRequest const& request) override; + StatusOr ExportInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::redis::v1::ExportInstanceRequest const& request) override; + + future> ExportInstance( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> FailoverInstance( google::cloud::redis::v1::FailoverInstanceRequest const& request) override; + StatusOr FailoverInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::redis::v1::FailoverInstanceRequest const& request) + override; + + future> FailoverInstance( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteInstance( google::cloud::redis::v1::DeleteInstanceRequest const& request) override; + StatusOr DeleteInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::redis::v1::DeleteInstanceRequest const& request) override; + + future> DeleteInstance( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> RescheduleMaintenance( google::cloud::redis::v1::RescheduleMaintenanceRequest const& request) override; + StatusOr RescheduleMaintenance( + ExperimentalTag, NoAwaitTag, + google::cloud::redis::v1::RescheduleMaintenanceRequest const& request) + override; + + future> RescheduleMaintenance( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + private: std::unique_ptr background_; std::shared_ptr stub_; diff --git a/google/cloud/redis/v1/internal/cloud_redis_tracing_connection.cc b/google/cloud/redis/v1/internal/cloud_redis_tracing_connection.cc index 27eb82489c0cb..344f6238533c8 100644 --- a/google/cloud/redis/v1/internal/cloud_redis_tracing_connection.cc +++ b/google/cloud/redis/v1/internal/cloud_redis_tracing_connection.cc @@ -70,6 +70,27 @@ CloudRedisTracingConnection::CreateInstance( return internal::EndSpan(std::move(span), child_->CreateInstance(request)); } +StatusOr +CloudRedisTracingConnection::CreateInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::redis::v1::CreateInstanceRequest const& request) { + auto span = + internal::MakeSpan("redis_v1::CloudRedisConnection::CreateInstance"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->CreateInstance(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +CloudRedisTracingConnection::CreateInstance( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = + internal::MakeSpan("redis_v1::CloudRedisConnection::CreateInstance"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->CreateInstance(ExperimentalTag{}, operation)); +} + future> CloudRedisTracingConnection::UpdateInstance( google::cloud::redis::v1::UpdateInstanceRequest const& request) { @@ -79,6 +100,27 @@ CloudRedisTracingConnection::UpdateInstance( return internal::EndSpan(std::move(span), child_->UpdateInstance(request)); } +StatusOr +CloudRedisTracingConnection::UpdateInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::redis::v1::UpdateInstanceRequest const& request) { + auto span = + internal::MakeSpan("redis_v1::CloudRedisConnection::UpdateInstance"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->UpdateInstance(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +CloudRedisTracingConnection::UpdateInstance( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = + internal::MakeSpan("redis_v1::CloudRedisConnection::UpdateInstance"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->UpdateInstance(ExperimentalTag{}, operation)); +} + future> CloudRedisTracingConnection::UpgradeInstance( google::cloud::redis::v1::UpgradeInstanceRequest const& request) { @@ -88,6 +130,27 @@ CloudRedisTracingConnection::UpgradeInstance( return internal::EndSpan(std::move(span), child_->UpgradeInstance(request)); } +StatusOr +CloudRedisTracingConnection::UpgradeInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::redis::v1::UpgradeInstanceRequest const& request) { + auto span = + internal::MakeSpan("redis_v1::CloudRedisConnection::UpgradeInstance"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->UpgradeInstance(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +CloudRedisTracingConnection::UpgradeInstance( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = + internal::MakeSpan("redis_v1::CloudRedisConnection::UpgradeInstance"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->UpgradeInstance(ExperimentalTag{}, operation)); +} + future> CloudRedisTracingConnection::ImportInstance( google::cloud::redis::v1::ImportInstanceRequest const& request) { @@ -97,6 +160,27 @@ CloudRedisTracingConnection::ImportInstance( return internal::EndSpan(std::move(span), child_->ImportInstance(request)); } +StatusOr +CloudRedisTracingConnection::ImportInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::redis::v1::ImportInstanceRequest const& request) { + auto span = + internal::MakeSpan("redis_v1::CloudRedisConnection::ImportInstance"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->ImportInstance(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +CloudRedisTracingConnection::ImportInstance( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = + internal::MakeSpan("redis_v1::CloudRedisConnection::ImportInstance"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->ImportInstance(ExperimentalTag{}, operation)); +} + future> CloudRedisTracingConnection::ExportInstance( google::cloud::redis::v1::ExportInstanceRequest const& request) { @@ -106,6 +190,27 @@ CloudRedisTracingConnection::ExportInstance( return internal::EndSpan(std::move(span), child_->ExportInstance(request)); } +StatusOr +CloudRedisTracingConnection::ExportInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::redis::v1::ExportInstanceRequest const& request) { + auto span = + internal::MakeSpan("redis_v1::CloudRedisConnection::ExportInstance"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->ExportInstance(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +CloudRedisTracingConnection::ExportInstance( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = + internal::MakeSpan("redis_v1::CloudRedisConnection::ExportInstance"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->ExportInstance(ExperimentalTag{}, operation)); +} + future> CloudRedisTracingConnection::FailoverInstance( google::cloud::redis::v1::FailoverInstanceRequest const& request) { @@ -115,6 +220,28 @@ CloudRedisTracingConnection::FailoverInstance( return internal::EndSpan(std::move(span), child_->FailoverInstance(request)); } +StatusOr +CloudRedisTracingConnection::FailoverInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::redis::v1::FailoverInstanceRequest const& request) { + auto span = + internal::MakeSpan("redis_v1::CloudRedisConnection::FailoverInstance"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->FailoverInstance(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +CloudRedisTracingConnection::FailoverInstance( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = + internal::MakeSpan("redis_v1::CloudRedisConnection::FailoverInstance"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->FailoverInstance(ExperimentalTag{}, operation)); +} + future> CloudRedisTracingConnection::DeleteInstance( google::cloud::redis::v1::DeleteInstanceRequest const& request) { @@ -124,6 +251,27 @@ CloudRedisTracingConnection::DeleteInstance( return internal::EndSpan(std::move(span), child_->DeleteInstance(request)); } +StatusOr +CloudRedisTracingConnection::DeleteInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::redis::v1::DeleteInstanceRequest const& request) { + auto span = + internal::MakeSpan("redis_v1::CloudRedisConnection::DeleteInstance"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->DeleteInstance(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +CloudRedisTracingConnection::DeleteInstance( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = + internal::MakeSpan("redis_v1::CloudRedisConnection::DeleteInstance"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->DeleteInstance(ExperimentalTag{}, operation)); +} + future> CloudRedisTracingConnection::RescheduleMaintenance( google::cloud::redis::v1::RescheduleMaintenanceRequest const& request) { @@ -134,6 +282,28 @@ CloudRedisTracingConnection::RescheduleMaintenance( child_->RescheduleMaintenance(request)); } +StatusOr +CloudRedisTracingConnection::RescheduleMaintenance( + ExperimentalTag, NoAwaitTag, + google::cloud::redis::v1::RescheduleMaintenanceRequest const& request) { + auto span = internal::MakeSpan( + "redis_v1::CloudRedisConnection::RescheduleMaintenance"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->RescheduleMaintenance(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +CloudRedisTracingConnection::RescheduleMaintenance( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "redis_v1::CloudRedisConnection::RescheduleMaintenance"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->RescheduleMaintenance( + ExperimentalTag{}, operation)); +} + #endif // GOOGLE_CLOUD_CPP_HAVE_OPENTELEMETRY std::shared_ptr MakeCloudRedisTracingConnection( diff --git a/google/cloud/redis/v1/internal/cloud_redis_tracing_connection.h b/google/cloud/redis/v1/internal/cloud_redis_tracing_connection.h index 2cdb1c203257f..a5a21ec26908f 100644 --- a/google/cloud/redis/v1/internal/cloud_redis_tracing_connection.h +++ b/google/cloud/redis/v1/internal/cloud_redis_tracing_connection.h @@ -52,29 +52,95 @@ class CloudRedisTracingConnection : public redis_v1::CloudRedisConnection { future> CreateInstance( google::cloud::redis::v1::CreateInstanceRequest const& request) override; + StatusOr CreateInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::redis::v1::CreateInstanceRequest const& request) override; + + future> CreateInstance( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateInstance( google::cloud::redis::v1::UpdateInstanceRequest const& request) override; + StatusOr UpdateInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::redis::v1::UpdateInstanceRequest const& request) override; + + future> UpdateInstance( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpgradeInstance( google::cloud::redis::v1::UpgradeInstanceRequest const& request) override; + StatusOr UpgradeInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::redis::v1::UpgradeInstanceRequest const& request) override; + + future> UpgradeInstance( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ImportInstance( google::cloud::redis::v1::ImportInstanceRequest const& request) override; + StatusOr ImportInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::redis::v1::ImportInstanceRequest const& request) override; + + future> ImportInstance( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ExportInstance( google::cloud::redis::v1::ExportInstanceRequest const& request) override; + StatusOr ExportInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::redis::v1::ExportInstanceRequest const& request) override; + + future> ExportInstance( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> FailoverInstance( google::cloud::redis::v1::FailoverInstanceRequest const& request) override; + StatusOr FailoverInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::redis::v1::FailoverInstanceRequest const& request) + override; + + future> FailoverInstance( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteInstance( google::cloud::redis::v1::DeleteInstanceRequest const& request) override; + StatusOr DeleteInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::redis::v1::DeleteInstanceRequest const& request) override; + + future> DeleteInstance( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> RescheduleMaintenance( google::cloud::redis::v1::RescheduleMaintenanceRequest const& request) override; + StatusOr RescheduleMaintenance( + ExperimentalTag, NoAwaitTag, + google::cloud::redis::v1::RescheduleMaintenanceRequest const& request) + override; + + future> RescheduleMaintenance( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + private: std::shared_ptr child_; }; diff --git a/google/cloud/redis/v1/mocks/mock_cloud_redis_connection.h b/google/cloud/redis/v1/mocks/mock_cloud_redis_connection.h index 3cebc649b8337..6c96a6caae661 100644 --- a/google/cloud/redis/v1/mocks/mock_cloud_redis_connection.h +++ b/google/cloud/redis/v1/mocks/mock_cloud_redis_connection.h @@ -65,41 +65,131 @@ class MockCloudRedisConnection : public redis_v1::CloudRedisConnection { (google::cloud::redis::v1::CreateInstanceRequest const& request), (override)); + MOCK_METHOD(StatusOr, CreateInstance, + (ExperimentalTag, NoAwaitTag, + google::cloud::redis::v1::CreateInstanceRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateInstance, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, UpdateInstance, (google::cloud::redis::v1::UpdateInstanceRequest const& request), (override)); + MOCK_METHOD(StatusOr, UpdateInstance, + (ExperimentalTag, NoAwaitTag, + google::cloud::redis::v1::UpdateInstanceRequest const& request), + (override)); + + MOCK_METHOD(future>, + UpdateInstance, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, UpgradeInstance, (google::cloud::redis::v1::UpgradeInstanceRequest const& request), (override)); + MOCK_METHOD(StatusOr, UpgradeInstance, + (ExperimentalTag, NoAwaitTag, + google::cloud::redis::v1::UpgradeInstanceRequest const& request), + (override)); + + MOCK_METHOD(future>, + UpgradeInstance, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, ImportInstance, (google::cloud::redis::v1::ImportInstanceRequest const& request), (override)); + MOCK_METHOD(StatusOr, ImportInstance, + (ExperimentalTag, NoAwaitTag, + google::cloud::redis::v1::ImportInstanceRequest const& request), + (override)); + + MOCK_METHOD(future>, + ImportInstance, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, ExportInstance, (google::cloud::redis::v1::ExportInstanceRequest const& request), (override)); + MOCK_METHOD(StatusOr, ExportInstance, + (ExperimentalTag, NoAwaitTag, + google::cloud::redis::v1::ExportInstanceRequest const& request), + (override)); + + MOCK_METHOD(future>, + ExportInstance, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, FailoverInstance, (google::cloud::redis::v1::FailoverInstanceRequest const& request), (override)); + MOCK_METHOD( + StatusOr, FailoverInstance, + (ExperimentalTag, NoAwaitTag, + google::cloud::redis::v1::FailoverInstanceRequest const& request), + (override)); + + MOCK_METHOD(future>, + FailoverInstance, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, DeleteInstance, (google::cloud::redis::v1::DeleteInstanceRequest const& request), (override)); + MOCK_METHOD(StatusOr, DeleteInstance, + (ExperimentalTag, NoAwaitTag, + google::cloud::redis::v1::DeleteInstanceRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteInstance, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, RescheduleMaintenance, (google::cloud::redis::v1::RescheduleMaintenanceRequest const& request), (override)); + + MOCK_METHOD( + StatusOr, RescheduleMaintenance, + (ExperimentalTag, NoAwaitTag, + google::cloud::redis::v1::RescheduleMaintenanceRequest const& request), + (override)); + + MOCK_METHOD(future>, + RescheduleMaintenance, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); }; GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END diff --git a/google/cloud/resourcemanager/v3/folders_connection.cc b/google/cloud/resourcemanager/v3/folders_connection.cc index 2c45196f4569a..a426ba614273a 100644 --- a/google/cloud/resourcemanager/v3/folders_connection.cc +++ b/google/cloud/resourcemanager/v3/folders_connection.cc @@ -68,6 +68,21 @@ FoldersConnection::CreateFolder( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr FoldersConnection::CreateFolder( + ExperimentalTag, NoAwaitTag, + google::cloud::resourcemanager::v3::CreateFolderRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +FoldersConnection::CreateFolder(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> FoldersConnection::UpdateFolder( google::cloud::resourcemanager::v3::UpdateFolderRequest const&) { @@ -76,6 +91,21 @@ FoldersConnection::UpdateFolder( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr FoldersConnection::UpdateFolder( + ExperimentalTag, NoAwaitTag, + google::cloud::resourcemanager::v3::UpdateFolderRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +FoldersConnection::UpdateFolder(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> FoldersConnection::MoveFolder( google::cloud::resourcemanager::v3::MoveFolderRequest const&) { @@ -84,6 +114,21 @@ FoldersConnection::MoveFolder( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr FoldersConnection::MoveFolder( + ExperimentalTag, NoAwaitTag, + google::cloud::resourcemanager::v3::MoveFolderRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +FoldersConnection::MoveFolder(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> FoldersConnection::DeleteFolder( google::cloud::resourcemanager::v3::DeleteFolderRequest const&) { @@ -92,6 +137,21 @@ FoldersConnection::DeleteFolder( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr FoldersConnection::DeleteFolder( + ExperimentalTag, NoAwaitTag, + google::cloud::resourcemanager::v3::DeleteFolderRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +FoldersConnection::DeleteFolder(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> FoldersConnection::UndeleteFolder( google::cloud::resourcemanager::v3::UndeleteFolderRequest const&) { @@ -100,6 +160,21 @@ FoldersConnection::UndeleteFolder( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr FoldersConnection::UndeleteFolder( + ExperimentalTag, NoAwaitTag, + google::cloud::resourcemanager::v3::UndeleteFolderRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +FoldersConnection::UndeleteFolder(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr FoldersConnection::GetIamPolicy( google::iam::v1::GetIamPolicyRequest const&) { return Status(StatusCode::kUnimplemented, "not implemented"); diff --git a/google/cloud/resourcemanager/v3/folders_connection.h b/google/cloud/resourcemanager/v3/folders_connection.h index f03bbbf0e0ad0..0b40a539a9668 100644 --- a/google/cloud/resourcemanager/v3/folders_connection.h +++ b/google/cloud/resourcemanager/v3/folders_connection.h @@ -22,8 +22,10 @@ #include "google/cloud/resourcemanager/v3/folders_connection_idempotency_policy.h" #include "google/cloud/resourcemanager/v3/internal/folders_retry_traits.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/internal/retry_policy_impl.h" +#include "google/cloud/no_await_tag.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" #include "google/cloud/status_or.h" @@ -195,22 +197,61 @@ class FoldersConnection { CreateFolder( google::cloud::resourcemanager::v3::CreateFolderRequest const& request); + virtual StatusOr CreateFolder( + ExperimentalTag, NoAwaitTag, + google::cloud::resourcemanager::v3::CreateFolderRequest const& request); + + virtual future> + CreateFolder(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> UpdateFolder( google::cloud::resourcemanager::v3::UpdateFolderRequest const& request); + virtual StatusOr UpdateFolder( + ExperimentalTag, NoAwaitTag, + google::cloud::resourcemanager::v3::UpdateFolderRequest const& request); + + virtual future> + UpdateFolder(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> MoveFolder( google::cloud::resourcemanager::v3::MoveFolderRequest const& request); + virtual StatusOr MoveFolder( + ExperimentalTag, NoAwaitTag, + google::cloud::resourcemanager::v3::MoveFolderRequest const& request); + + virtual future> + MoveFolder(ExperimentalTag, google::longrunning::Operation const& operation); + virtual future> DeleteFolder( google::cloud::resourcemanager::v3::DeleteFolderRequest const& request); + virtual StatusOr DeleteFolder( + ExperimentalTag, NoAwaitTag, + google::cloud::resourcemanager::v3::DeleteFolderRequest const& request); + + virtual future> + DeleteFolder(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> UndeleteFolder( google::cloud::resourcemanager::v3::UndeleteFolderRequest const& request); + virtual StatusOr UndeleteFolder( + ExperimentalTag, NoAwaitTag, + google::cloud::resourcemanager::v3::UndeleteFolderRequest const& request); + + virtual future> + UndeleteFolder(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StatusOr GetIamPolicy( google::iam::v1::GetIamPolicyRequest const& request); diff --git a/google/cloud/resourcemanager/v3/internal/folders_connection_impl.cc b/google/cloud/resourcemanager/v3/internal/folders_connection_impl.cc index 2c87fb108d242..a1d37a612e1ee 100644 --- a/google/cloud/resourcemanager/v3/internal/folders_connection_impl.cc +++ b/google/cloud/resourcemanager/v3/internal/folders_connection_impl.cc @@ -188,6 +188,59 @@ FoldersConnectionImpl::CreateFolder( polling_policy(*current), __func__); } +StatusOr FoldersConnectionImpl::CreateFolder( + ExperimentalTag, NoAwaitTag, + google::cloud::resourcemanager::v3::CreateFolderRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateFolder(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::resourcemanager::v3::CreateFolderRequest const& + request) { + return stub_->CreateFolder(context, options, request); + }, + *current, request, __func__); +} + +future> +FoldersConnectionImpl::CreateFolder( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to CreateFolder", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::resourcemanager::v3::Folder>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::resourcemanager::v3::Folder>, + polling_policy(*current), __func__); +} + future> FoldersConnectionImpl::UpdateFolder( google::cloud::resourcemanager::v3::UpdateFolderRequest const& request) { @@ -228,6 +281,59 @@ FoldersConnectionImpl::UpdateFolder( polling_policy(*current), __func__); } +StatusOr FoldersConnectionImpl::UpdateFolder( + ExperimentalTag, NoAwaitTag, + google::cloud::resourcemanager::v3::UpdateFolderRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UpdateFolder(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::resourcemanager::v3::UpdateFolderRequest const& + request) { + return stub_->UpdateFolder(context, options, request); + }, + *current, request, __func__); +} + +future> +FoldersConnectionImpl::UpdateFolder( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to UpdateFolder", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::resourcemanager::v3::Folder>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::resourcemanager::v3::Folder>, + polling_policy(*current), __func__); +} + future> FoldersConnectionImpl::MoveFolder( google::cloud::resourcemanager::v3::MoveFolderRequest const& request) { @@ -268,6 +374,59 @@ FoldersConnectionImpl::MoveFolder( polling_policy(*current), __func__); } +StatusOr FoldersConnectionImpl::MoveFolder( + ExperimentalTag, NoAwaitTag, + google::cloud::resourcemanager::v3::MoveFolderRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->MoveFolder(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::resourcemanager::v3::MoveFolderRequest const& + request) { + return stub_->MoveFolder(context, options, request); + }, + *current, request, __func__); +} + +future> +FoldersConnectionImpl::MoveFolder( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to MoveFolder", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::resourcemanager::v3::Folder>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::resourcemanager::v3::Folder>, + polling_policy(*current), __func__); +} + future> FoldersConnectionImpl::DeleteFolder( google::cloud::resourcemanager::v3::DeleteFolderRequest const& request) { @@ -308,6 +467,59 @@ FoldersConnectionImpl::DeleteFolder( polling_policy(*current), __func__); } +StatusOr FoldersConnectionImpl::DeleteFolder( + ExperimentalTag, NoAwaitTag, + google::cloud::resourcemanager::v3::DeleteFolderRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteFolder(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::resourcemanager::v3::DeleteFolderRequest const& + request) { + return stub_->DeleteFolder(context, options, request); + }, + *current, request, __func__); +} + +future> +FoldersConnectionImpl::DeleteFolder( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteFolder", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::resourcemanager::v3::Folder>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::resourcemanager::v3::Folder>, + polling_policy(*current), __func__); +} + future> FoldersConnectionImpl::UndeleteFolder( google::cloud::resourcemanager::v3::UndeleteFolderRequest const& request) { @@ -348,6 +560,59 @@ FoldersConnectionImpl::UndeleteFolder( polling_policy(*current), __func__); } +StatusOr FoldersConnectionImpl::UndeleteFolder( + ExperimentalTag, NoAwaitTag, + google::cloud::resourcemanager::v3::UndeleteFolderRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UndeleteFolder(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::resourcemanager::v3::UndeleteFolderRequest const& + request) { + return stub_->UndeleteFolder(context, options, request); + }, + *current, request, __func__); +} + +future> +FoldersConnectionImpl::UndeleteFolder( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to UndeleteFolder", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::resourcemanager::v3::Folder>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::resourcemanager::v3::Folder>, + polling_policy(*current), __func__); +} + StatusOr FoldersConnectionImpl::GetIamPolicy( google::iam::v1::GetIamPolicyRequest const& request) { auto current = google::cloud::internal::SaveCurrentOptions(); diff --git a/google/cloud/resourcemanager/v3/internal/folders_connection_impl.h b/google/cloud/resourcemanager/v3/internal/folders_connection_impl.h index 94418578ec377..b6e1396601e33 100644 --- a/google/cloud/resourcemanager/v3/internal/folders_connection_impl.h +++ b/google/cloud/resourcemanager/v3/internal/folders_connection_impl.h @@ -66,22 +66,67 @@ class FoldersConnectionImpl : public resourcemanager_v3::FoldersConnection { google::cloud::resourcemanager::v3::CreateFolderRequest const& request) override; + StatusOr CreateFolder( + ExperimentalTag, NoAwaitTag, + google::cloud::resourcemanager::v3::CreateFolderRequest const& request) + override; + + future> CreateFolder( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateFolder( google::cloud::resourcemanager::v3::UpdateFolderRequest const& request) override; + StatusOr UpdateFolder( + ExperimentalTag, NoAwaitTag, + google::cloud::resourcemanager::v3::UpdateFolderRequest const& request) + override; + + future> UpdateFolder( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> MoveFolder( google::cloud::resourcemanager::v3::MoveFolderRequest const& request) override; + StatusOr MoveFolder( + ExperimentalTag, NoAwaitTag, + google::cloud::resourcemanager::v3::MoveFolderRequest const& request) + override; + + future> MoveFolder( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteFolder( google::cloud::resourcemanager::v3::DeleteFolderRequest const& request) override; + StatusOr DeleteFolder( + ExperimentalTag, NoAwaitTag, + google::cloud::resourcemanager::v3::DeleteFolderRequest const& request) + override; + + future> DeleteFolder( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UndeleteFolder( google::cloud::resourcemanager::v3::UndeleteFolderRequest const& request) override; + StatusOr UndeleteFolder( + ExperimentalTag, NoAwaitTag, + google::cloud::resourcemanager::v3::UndeleteFolderRequest const& request) + override; + + future> UndeleteFolder( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetIamPolicy( google::iam::v1::GetIamPolicyRequest const& request) override; diff --git a/google/cloud/resourcemanager/v3/internal/folders_tracing_connection.cc b/google/cloud/resourcemanager/v3/internal/folders_tracing_connection.cc index 98faeebac4986..36106bf1ea006 100644 --- a/google/cloud/resourcemanager/v3/internal/folders_tracing_connection.cc +++ b/google/cloud/resourcemanager/v3/internal/folders_tracing_connection.cc @@ -75,6 +75,26 @@ FoldersTracingConnection::CreateFolder( return internal::EndSpan(std::move(span), child_->CreateFolder(request)); } +StatusOr FoldersTracingConnection::CreateFolder( + ExperimentalTag, NoAwaitTag, + google::cloud::resourcemanager::v3::CreateFolderRequest const& request) { + auto span = + internal::MakeSpan("resourcemanager_v3::FoldersConnection::CreateFolder"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->CreateFolder(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +FoldersTracingConnection::CreateFolder( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = + internal::MakeSpan("resourcemanager_v3::FoldersConnection::CreateFolder"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->CreateFolder(ExperimentalTag{}, operation)); +} + future> FoldersTracingConnection::UpdateFolder( google::cloud::resourcemanager::v3::UpdateFolderRequest const& request) { @@ -84,6 +104,26 @@ FoldersTracingConnection::UpdateFolder( return internal::EndSpan(std::move(span), child_->UpdateFolder(request)); } +StatusOr FoldersTracingConnection::UpdateFolder( + ExperimentalTag, NoAwaitTag, + google::cloud::resourcemanager::v3::UpdateFolderRequest const& request) { + auto span = + internal::MakeSpan("resourcemanager_v3::FoldersConnection::UpdateFolder"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->UpdateFolder(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +FoldersTracingConnection::UpdateFolder( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = + internal::MakeSpan("resourcemanager_v3::FoldersConnection::UpdateFolder"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->UpdateFolder(ExperimentalTag{}, operation)); +} + future> FoldersTracingConnection::MoveFolder( google::cloud::resourcemanager::v3::MoveFolderRequest const& request) { @@ -93,6 +133,26 @@ FoldersTracingConnection::MoveFolder( return internal::EndSpan(std::move(span), child_->MoveFolder(request)); } +StatusOr FoldersTracingConnection::MoveFolder( + ExperimentalTag, NoAwaitTag, + google::cloud::resourcemanager::v3::MoveFolderRequest const& request) { + auto span = + internal::MakeSpan("resourcemanager_v3::FoldersConnection::MoveFolder"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->MoveFolder(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +FoldersTracingConnection::MoveFolder( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = + internal::MakeSpan("resourcemanager_v3::FoldersConnection::MoveFolder"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->MoveFolder(ExperimentalTag{}, operation)); +} + future> FoldersTracingConnection::DeleteFolder( google::cloud::resourcemanager::v3::DeleteFolderRequest const& request) { @@ -102,6 +162,26 @@ FoldersTracingConnection::DeleteFolder( return internal::EndSpan(std::move(span), child_->DeleteFolder(request)); } +StatusOr FoldersTracingConnection::DeleteFolder( + ExperimentalTag, NoAwaitTag, + google::cloud::resourcemanager::v3::DeleteFolderRequest const& request) { + auto span = + internal::MakeSpan("resourcemanager_v3::FoldersConnection::DeleteFolder"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->DeleteFolder(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +FoldersTracingConnection::DeleteFolder( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = + internal::MakeSpan("resourcemanager_v3::FoldersConnection::DeleteFolder"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->DeleteFolder(ExperimentalTag{}, operation)); +} + future> FoldersTracingConnection::UndeleteFolder( google::cloud::resourcemanager::v3::UndeleteFolderRequest const& request) { @@ -111,6 +191,27 @@ FoldersTracingConnection::UndeleteFolder( return internal::EndSpan(std::move(span), child_->UndeleteFolder(request)); } +StatusOr +FoldersTracingConnection::UndeleteFolder( + ExperimentalTag, NoAwaitTag, + google::cloud::resourcemanager::v3::UndeleteFolderRequest const& request) { + auto span = internal::MakeSpan( + "resourcemanager_v3::FoldersConnection::UndeleteFolder"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->UndeleteFolder(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +FoldersTracingConnection::UndeleteFolder( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "resourcemanager_v3::FoldersConnection::UndeleteFolder"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->UndeleteFolder(ExperimentalTag{}, operation)); +} + StatusOr FoldersTracingConnection::GetIamPolicy( google::iam::v1::GetIamPolicyRequest const& request) { auto span = diff --git a/google/cloud/resourcemanager/v3/internal/folders_tracing_connection.h b/google/cloud/resourcemanager/v3/internal/folders_tracing_connection.h index 2d8844ba0d0de..76c4f400e2f0c 100644 --- a/google/cloud/resourcemanager/v3/internal/folders_tracing_connection.h +++ b/google/cloud/resourcemanager/v3/internal/folders_tracing_connection.h @@ -54,22 +54,67 @@ class FoldersTracingConnection : public resourcemanager_v3::FoldersConnection { google::cloud::resourcemanager::v3::CreateFolderRequest const& request) override; + StatusOr CreateFolder( + ExperimentalTag, NoAwaitTag, + google::cloud::resourcemanager::v3::CreateFolderRequest const& request) + override; + + future> CreateFolder( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateFolder( google::cloud::resourcemanager::v3::UpdateFolderRequest const& request) override; + StatusOr UpdateFolder( + ExperimentalTag, NoAwaitTag, + google::cloud::resourcemanager::v3::UpdateFolderRequest const& request) + override; + + future> UpdateFolder( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> MoveFolder( google::cloud::resourcemanager::v3::MoveFolderRequest const& request) override; + StatusOr MoveFolder( + ExperimentalTag, NoAwaitTag, + google::cloud::resourcemanager::v3::MoveFolderRequest const& request) + override; + + future> MoveFolder( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteFolder( google::cloud::resourcemanager::v3::DeleteFolderRequest const& request) override; + StatusOr DeleteFolder( + ExperimentalTag, NoAwaitTag, + google::cloud::resourcemanager::v3::DeleteFolderRequest const& request) + override; + + future> DeleteFolder( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UndeleteFolder( google::cloud::resourcemanager::v3::UndeleteFolderRequest const& request) override; + StatusOr UndeleteFolder( + ExperimentalTag, NoAwaitTag, + google::cloud::resourcemanager::v3::UndeleteFolderRequest const& request) + override; + + future> UndeleteFolder( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetIamPolicy( google::iam::v1::GetIamPolicyRequest const& request) override; diff --git a/google/cloud/resourcemanager/v3/internal/projects_connection_impl.cc b/google/cloud/resourcemanager/v3/internal/projects_connection_impl.cc index 0f52035cf035a..6a0de4448434a 100644 --- a/google/cloud/resourcemanager/v3/internal/projects_connection_impl.cc +++ b/google/cloud/resourcemanager/v3/internal/projects_connection_impl.cc @@ -191,6 +191,59 @@ ProjectsConnectionImpl::CreateProject( polling_policy(*current), __func__); } +StatusOr ProjectsConnectionImpl::CreateProject( + ExperimentalTag, NoAwaitTag, + google::cloud::resourcemanager::v3::CreateProjectRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateProject(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::resourcemanager::v3::CreateProjectRequest const& + request) { + return stub_->CreateProject(context, options, request); + }, + *current, request, __func__); +} + +future> +ProjectsConnectionImpl::CreateProject( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to CreateProject", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::resourcemanager::v3::Project>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::resourcemanager::v3::Project>, + polling_policy(*current), __func__); +} + future> ProjectsConnectionImpl::UpdateProject( google::cloud::resourcemanager::v3::UpdateProjectRequest const& request) { @@ -231,6 +284,59 @@ ProjectsConnectionImpl::UpdateProject( polling_policy(*current), __func__); } +StatusOr ProjectsConnectionImpl::UpdateProject( + ExperimentalTag, NoAwaitTag, + google::cloud::resourcemanager::v3::UpdateProjectRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UpdateProject(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::resourcemanager::v3::UpdateProjectRequest const& + request) { + return stub_->UpdateProject(context, options, request); + }, + *current, request, __func__); +} + +future> +ProjectsConnectionImpl::UpdateProject( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to UpdateProject", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::resourcemanager::v3::Project>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::resourcemanager::v3::Project>, + polling_policy(*current), __func__); +} + future> ProjectsConnectionImpl::MoveProject( google::cloud::resourcemanager::v3::MoveProjectRequest const& request) { @@ -271,6 +377,59 @@ ProjectsConnectionImpl::MoveProject( polling_policy(*current), __func__); } +StatusOr ProjectsConnectionImpl::MoveProject( + ExperimentalTag, NoAwaitTag, + google::cloud::resourcemanager::v3::MoveProjectRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->MoveProject(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::resourcemanager::v3::MoveProjectRequest const& + request) { + return stub_->MoveProject(context, options, request); + }, + *current, request, __func__); +} + +future> +ProjectsConnectionImpl::MoveProject( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to MoveProject", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::resourcemanager::v3::Project>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::resourcemanager::v3::Project>, + polling_policy(*current), __func__); +} + future> ProjectsConnectionImpl::DeleteProject( google::cloud::resourcemanager::v3::DeleteProjectRequest const& request) { @@ -311,6 +470,59 @@ ProjectsConnectionImpl::DeleteProject( polling_policy(*current), __func__); } +StatusOr ProjectsConnectionImpl::DeleteProject( + ExperimentalTag, NoAwaitTag, + google::cloud::resourcemanager::v3::DeleteProjectRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteProject(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::resourcemanager::v3::DeleteProjectRequest const& + request) { + return stub_->DeleteProject(context, options, request); + }, + *current, request, __func__); +} + +future> +ProjectsConnectionImpl::DeleteProject( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteProject", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::resourcemanager::v3::Project>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::resourcemanager::v3::Project>, + polling_policy(*current), __func__); +} + future> ProjectsConnectionImpl::UndeleteProject( google::cloud::resourcemanager::v3::UndeleteProjectRequest const& request) { @@ -351,6 +563,60 @@ ProjectsConnectionImpl::UndeleteProject( polling_policy(*current), __func__); } +StatusOr +ProjectsConnectionImpl::UndeleteProject( + ExperimentalTag, NoAwaitTag, + google::cloud::resourcemanager::v3::UndeleteProjectRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UndeleteProject(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::resourcemanager::v3::UndeleteProjectRequest const& + request) { + return stub_->UndeleteProject(context, options, request); + }, + *current, request, __func__); +} + +future> +ProjectsConnectionImpl::UndeleteProject( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to UndeleteProject", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::resourcemanager::v3::Project>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::resourcemanager::v3::Project>, + polling_policy(*current), __func__); +} + StatusOr ProjectsConnectionImpl::GetIamPolicy( google::iam::v1::GetIamPolicyRequest const& request) { auto current = google::cloud::internal::SaveCurrentOptions(); diff --git a/google/cloud/resourcemanager/v3/internal/projects_connection_impl.h b/google/cloud/resourcemanager/v3/internal/projects_connection_impl.h index b7e13b1a833b6..276b63eab0250 100644 --- a/google/cloud/resourcemanager/v3/internal/projects_connection_impl.h +++ b/google/cloud/resourcemanager/v3/internal/projects_connection_impl.h @@ -66,22 +66,67 @@ class ProjectsConnectionImpl : public resourcemanager_v3::ProjectsConnection { google::cloud::resourcemanager::v3::CreateProjectRequest const& request) override; + StatusOr CreateProject( + ExperimentalTag, NoAwaitTag, + google::cloud::resourcemanager::v3::CreateProjectRequest const& request) + override; + + future> CreateProject( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateProject( google::cloud::resourcemanager::v3::UpdateProjectRequest const& request) override; + StatusOr UpdateProject( + ExperimentalTag, NoAwaitTag, + google::cloud::resourcemanager::v3::UpdateProjectRequest const& request) + override; + + future> UpdateProject( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> MoveProject( google::cloud::resourcemanager::v3::MoveProjectRequest const& request) override; + StatusOr MoveProject( + ExperimentalTag, NoAwaitTag, + google::cloud::resourcemanager::v3::MoveProjectRequest const& request) + override; + + future> MoveProject( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteProject( google::cloud::resourcemanager::v3::DeleteProjectRequest const& request) override; + StatusOr DeleteProject( + ExperimentalTag, NoAwaitTag, + google::cloud::resourcemanager::v3::DeleteProjectRequest const& request) + override; + + future> DeleteProject( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UndeleteProject( google::cloud::resourcemanager::v3::UndeleteProjectRequest const& request) override; + StatusOr UndeleteProject( + ExperimentalTag, NoAwaitTag, + google::cloud::resourcemanager::v3::UndeleteProjectRequest const& request) + override; + + future> UndeleteProject( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetIamPolicy( google::iam::v1::GetIamPolicyRequest const& request) override; diff --git a/google/cloud/resourcemanager/v3/internal/projects_tracing_connection.cc b/google/cloud/resourcemanager/v3/internal/projects_tracing_connection.cc index ab6b817f96808..447bf93a1b71d 100644 --- a/google/cloud/resourcemanager/v3/internal/projects_tracing_connection.cc +++ b/google/cloud/resourcemanager/v3/internal/projects_tracing_connection.cc @@ -75,6 +75,27 @@ ProjectsTracingConnection::CreateProject( return internal::EndSpan(std::move(span), child_->CreateProject(request)); } +StatusOr +ProjectsTracingConnection::CreateProject( + ExperimentalTag, NoAwaitTag, + google::cloud::resourcemanager::v3::CreateProjectRequest const& request) { + auto span = internal::MakeSpan( + "resourcemanager_v3::ProjectsConnection::CreateProject"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->CreateProject(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +ProjectsTracingConnection::CreateProject( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "resourcemanager_v3::ProjectsConnection::CreateProject"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->CreateProject(ExperimentalTag{}, operation)); +} + future> ProjectsTracingConnection::UpdateProject( google::cloud::resourcemanager::v3::UpdateProjectRequest const& request) { @@ -84,6 +105,27 @@ ProjectsTracingConnection::UpdateProject( return internal::EndSpan(std::move(span), child_->UpdateProject(request)); } +StatusOr +ProjectsTracingConnection::UpdateProject( + ExperimentalTag, NoAwaitTag, + google::cloud::resourcemanager::v3::UpdateProjectRequest const& request) { + auto span = internal::MakeSpan( + "resourcemanager_v3::ProjectsConnection::UpdateProject"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->UpdateProject(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +ProjectsTracingConnection::UpdateProject( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "resourcemanager_v3::ProjectsConnection::UpdateProject"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->UpdateProject(ExperimentalTag{}, operation)); +} + future> ProjectsTracingConnection::MoveProject( google::cloud::resourcemanager::v3::MoveProjectRequest const& request) { @@ -93,6 +135,26 @@ ProjectsTracingConnection::MoveProject( return internal::EndSpan(std::move(span), child_->MoveProject(request)); } +StatusOr ProjectsTracingConnection::MoveProject( + ExperimentalTag, NoAwaitTag, + google::cloud::resourcemanager::v3::MoveProjectRequest const& request) { + auto span = + internal::MakeSpan("resourcemanager_v3::ProjectsConnection::MoveProject"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->MoveProject(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +ProjectsTracingConnection::MoveProject( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = + internal::MakeSpan("resourcemanager_v3::ProjectsConnection::MoveProject"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->MoveProject(ExperimentalTag{}, operation)); +} + future> ProjectsTracingConnection::DeleteProject( google::cloud::resourcemanager::v3::DeleteProjectRequest const& request) { @@ -102,6 +164,27 @@ ProjectsTracingConnection::DeleteProject( return internal::EndSpan(std::move(span), child_->DeleteProject(request)); } +StatusOr +ProjectsTracingConnection::DeleteProject( + ExperimentalTag, NoAwaitTag, + google::cloud::resourcemanager::v3::DeleteProjectRequest const& request) { + auto span = internal::MakeSpan( + "resourcemanager_v3::ProjectsConnection::DeleteProject"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->DeleteProject(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +ProjectsTracingConnection::DeleteProject( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "resourcemanager_v3::ProjectsConnection::DeleteProject"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->DeleteProject(ExperimentalTag{}, operation)); +} + future> ProjectsTracingConnection::UndeleteProject( google::cloud::resourcemanager::v3::UndeleteProjectRequest const& request) { @@ -111,6 +194,27 @@ ProjectsTracingConnection::UndeleteProject( return internal::EndSpan(std::move(span), child_->UndeleteProject(request)); } +StatusOr +ProjectsTracingConnection::UndeleteProject( + ExperimentalTag, NoAwaitTag, + google::cloud::resourcemanager::v3::UndeleteProjectRequest const& request) { + auto span = internal::MakeSpan( + "resourcemanager_v3::ProjectsConnection::UndeleteProject"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->UndeleteProject(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +ProjectsTracingConnection::UndeleteProject( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "resourcemanager_v3::ProjectsConnection::UndeleteProject"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->UndeleteProject(ExperimentalTag{}, operation)); +} + StatusOr ProjectsTracingConnection::GetIamPolicy( google::iam::v1::GetIamPolicyRequest const& request) { auto span = internal::MakeSpan( diff --git a/google/cloud/resourcemanager/v3/internal/projects_tracing_connection.h b/google/cloud/resourcemanager/v3/internal/projects_tracing_connection.h index f22683fdb6a71..60e72ebff625d 100644 --- a/google/cloud/resourcemanager/v3/internal/projects_tracing_connection.h +++ b/google/cloud/resourcemanager/v3/internal/projects_tracing_connection.h @@ -55,22 +55,67 @@ class ProjectsTracingConnection google::cloud::resourcemanager::v3::CreateProjectRequest const& request) override; + StatusOr CreateProject( + ExperimentalTag, NoAwaitTag, + google::cloud::resourcemanager::v3::CreateProjectRequest const& request) + override; + + future> CreateProject( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateProject( google::cloud::resourcemanager::v3::UpdateProjectRequest const& request) override; + StatusOr UpdateProject( + ExperimentalTag, NoAwaitTag, + google::cloud::resourcemanager::v3::UpdateProjectRequest const& request) + override; + + future> UpdateProject( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> MoveProject( google::cloud::resourcemanager::v3::MoveProjectRequest const& request) override; + StatusOr MoveProject( + ExperimentalTag, NoAwaitTag, + google::cloud::resourcemanager::v3::MoveProjectRequest const& request) + override; + + future> MoveProject( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteProject( google::cloud::resourcemanager::v3::DeleteProjectRequest const& request) override; + StatusOr DeleteProject( + ExperimentalTag, NoAwaitTag, + google::cloud::resourcemanager::v3::DeleteProjectRequest const& request) + override; + + future> DeleteProject( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UndeleteProject( google::cloud::resourcemanager::v3::UndeleteProjectRequest const& request) override; + StatusOr UndeleteProject( + ExperimentalTag, NoAwaitTag, + google::cloud::resourcemanager::v3::UndeleteProjectRequest const& request) + override; + + future> UndeleteProject( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetIamPolicy( google::iam::v1::GetIamPolicyRequest const& request) override; diff --git a/google/cloud/resourcemanager/v3/internal/tag_bindings_connection_impl.cc b/google/cloud/resourcemanager/v3/internal/tag_bindings_connection_impl.cc index 4ca22679d71f8..f972528b5460c 100644 --- a/google/cloud/resourcemanager/v3/internal/tag_bindings_connection_impl.cc +++ b/google/cloud/resourcemanager/v3/internal/tag_bindings_connection_impl.cc @@ -142,6 +142,61 @@ TagBindingsConnectionImpl::CreateTagBinding( polling_policy(*current), __func__); } +StatusOr +TagBindingsConnectionImpl::CreateTagBinding( + ExperimentalTag, NoAwaitTag, + google::cloud::resourcemanager::v3::CreateTagBindingRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateTagBinding(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::resourcemanager::v3::CreateTagBindingRequest const& + request) { + return stub_->CreateTagBinding(context, options, request); + }, + *current, request, __func__); +} + +future> +TagBindingsConnectionImpl::CreateTagBinding( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to CreateTagBinding", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::resourcemanager::v3::TagBinding>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::resourcemanager::v3::TagBinding>, + polling_policy(*current), __func__); +} + future> TagBindingsConnectionImpl::DeleteTagBinding( google::cloud::resourcemanager::v3::DeleteTagBindingRequest const& @@ -183,6 +238,61 @@ TagBindingsConnectionImpl::DeleteTagBinding( polling_policy(*current), __func__); } +StatusOr +TagBindingsConnectionImpl::DeleteTagBinding( + ExperimentalTag, NoAwaitTag, + google::cloud::resourcemanager::v3::DeleteTagBindingRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteTagBinding(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::resourcemanager::v3::DeleteTagBindingRequest const& + request) { + return stub_->DeleteTagBinding(context, options, request); + }, + *current, request, __func__); +} + +future> +TagBindingsConnectionImpl::DeleteTagBinding( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteTagBinding", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::resourcemanager::v3::DeleteTagBindingMetadata>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::cloud::resourcemanager::v3::DeleteTagBindingMetadata>, + polling_policy(*current), __func__); +} + StreamRange TagBindingsConnectionImpl::ListEffectiveTags( google::cloud::resourcemanager::v3::ListEffectiveTagsRequest request) { diff --git a/google/cloud/resourcemanager/v3/internal/tag_bindings_connection_impl.h b/google/cloud/resourcemanager/v3/internal/tag_bindings_connection_impl.h index e31f499601f1c..1297cfec08f48 100644 --- a/google/cloud/resourcemanager/v3/internal/tag_bindings_connection_impl.h +++ b/google/cloud/resourcemanager/v3/internal/tag_bindings_connection_impl.h @@ -61,11 +61,29 @@ class TagBindingsConnectionImpl google::cloud::resourcemanager::v3::CreateTagBindingRequest const& request) override; + StatusOr CreateTagBinding( + ExperimentalTag, NoAwaitTag, + google::cloud::resourcemanager::v3::CreateTagBindingRequest const& + request) override; + + future> + CreateTagBinding(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteTagBinding( google::cloud::resourcemanager::v3::DeleteTagBindingRequest const& request) override; + StatusOr DeleteTagBinding( + ExperimentalTag, NoAwaitTag, + google::cloud::resourcemanager::v3::DeleteTagBindingRequest const& + request) override; + + future> + DeleteTagBinding(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListEffectiveTags(google::cloud::resourcemanager::v3::ListEffectiveTagsRequest request) override; diff --git a/google/cloud/resourcemanager/v3/internal/tag_bindings_tracing_connection.cc b/google/cloud/resourcemanager/v3/internal/tag_bindings_tracing_connection.cc index de965d2a100be..fb05e7aa5c6d2 100644 --- a/google/cloud/resourcemanager/v3/internal/tag_bindings_tracing_connection.cc +++ b/google/cloud/resourcemanager/v3/internal/tag_bindings_tracing_connection.cc @@ -55,6 +55,29 @@ TagBindingsTracingConnection::CreateTagBinding( return internal::EndSpan(std::move(span), child_->CreateTagBinding(request)); } +StatusOr +TagBindingsTracingConnection::CreateTagBinding( + ExperimentalTag, NoAwaitTag, + google::cloud::resourcemanager::v3::CreateTagBindingRequest const& + request) { + auto span = internal::MakeSpan( + "resourcemanager_v3::TagBindingsConnection::CreateTagBinding"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->CreateTagBinding(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +TagBindingsTracingConnection::CreateTagBinding( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "resourcemanager_v3::TagBindingsConnection::CreateTagBinding"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->CreateTagBinding(ExperimentalTag{}, operation)); +} + future> TagBindingsTracingConnection::DeleteTagBinding( google::cloud::resourcemanager::v3::DeleteTagBindingRequest const& @@ -65,6 +88,29 @@ TagBindingsTracingConnection::DeleteTagBinding( return internal::EndSpan(std::move(span), child_->DeleteTagBinding(request)); } +StatusOr +TagBindingsTracingConnection::DeleteTagBinding( + ExperimentalTag, NoAwaitTag, + google::cloud::resourcemanager::v3::DeleteTagBindingRequest const& + request) { + auto span = internal::MakeSpan( + "resourcemanager_v3::TagBindingsConnection::DeleteTagBinding"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->DeleteTagBinding(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +TagBindingsTracingConnection::DeleteTagBinding( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "resourcemanager_v3::TagBindingsConnection::DeleteTagBinding"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->DeleteTagBinding(ExperimentalTag{}, operation)); +} + StreamRange TagBindingsTracingConnection::ListEffectiveTags( google::cloud::resourcemanager::v3::ListEffectiveTagsRequest request) { diff --git a/google/cloud/resourcemanager/v3/internal/tag_bindings_tracing_connection.h b/google/cloud/resourcemanager/v3/internal/tag_bindings_tracing_connection.h index 47894fdbeabc9..f77c5f83c76ec 100644 --- a/google/cloud/resourcemanager/v3/internal/tag_bindings_tracing_connection.h +++ b/google/cloud/resourcemanager/v3/internal/tag_bindings_tracing_connection.h @@ -49,11 +49,29 @@ class TagBindingsTracingConnection google::cloud::resourcemanager::v3::CreateTagBindingRequest const& request) override; + StatusOr CreateTagBinding( + ExperimentalTag, NoAwaitTag, + google::cloud::resourcemanager::v3::CreateTagBindingRequest const& + request) override; + + future> + CreateTagBinding(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteTagBinding( google::cloud::resourcemanager::v3::DeleteTagBindingRequest const& request) override; + StatusOr DeleteTagBinding( + ExperimentalTag, NoAwaitTag, + google::cloud::resourcemanager::v3::DeleteTagBindingRequest const& + request) override; + + future> + DeleteTagBinding(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListEffectiveTags(google::cloud::resourcemanager::v3::ListEffectiveTagsRequest request) override; diff --git a/google/cloud/resourcemanager/v3/internal/tag_holds_connection_impl.cc b/google/cloud/resourcemanager/v3/internal/tag_holds_connection_impl.cc index 7fcbb18420ec3..c6e9f839927d8 100644 --- a/google/cloud/resourcemanager/v3/internal/tag_holds_connection_impl.cc +++ b/google/cloud/resourcemanager/v3/internal/tag_holds_connection_impl.cc @@ -106,6 +106,59 @@ TagHoldsConnectionImpl::CreateTagHold( polling_policy(*current), __func__); } +StatusOr TagHoldsConnectionImpl::CreateTagHold( + ExperimentalTag, NoAwaitTag, + google::cloud::resourcemanager::v3::CreateTagHoldRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateTagHold(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::resourcemanager::v3::CreateTagHoldRequest const& + request) { + return stub_->CreateTagHold(context, options, request); + }, + *current, request, __func__); +} + +future> +TagHoldsConnectionImpl::CreateTagHold( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to CreateTagHold", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::resourcemanager::v3::TagHold>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::resourcemanager::v3::TagHold>, + polling_policy(*current), __func__); +} + future> TagHoldsConnectionImpl::DeleteTagHold( google::cloud::resourcemanager::v3::DeleteTagHoldRequest const& request) { @@ -146,6 +199,59 @@ TagHoldsConnectionImpl::DeleteTagHold( polling_policy(*current), __func__); } +StatusOr TagHoldsConnectionImpl::DeleteTagHold( + ExperimentalTag, NoAwaitTag, + google::cloud::resourcemanager::v3::DeleteTagHoldRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteTagHold(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::resourcemanager::v3::DeleteTagHoldRequest const& + request) { + return stub_->DeleteTagHold(context, options, request); + }, + *current, request, __func__); +} + +future> +TagHoldsConnectionImpl::DeleteTagHold( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteTagHold", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::resourcemanager::v3::DeleteTagHoldMetadata>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::cloud::resourcemanager::v3::DeleteTagHoldMetadata>, + polling_policy(*current), __func__); +} + StreamRange TagHoldsConnectionImpl::ListTagHolds( google::cloud::resourcemanager::v3::ListTagHoldsRequest request) { diff --git a/google/cloud/resourcemanager/v3/internal/tag_holds_connection_impl.h b/google/cloud/resourcemanager/v3/internal/tag_holds_connection_impl.h index 0b2288cdcfb87..2f173563e20f4 100644 --- a/google/cloud/resourcemanager/v3/internal/tag_holds_connection_impl.h +++ b/google/cloud/resourcemanager/v3/internal/tag_holds_connection_impl.h @@ -55,10 +55,28 @@ class TagHoldsConnectionImpl : public resourcemanager_v3::TagHoldsConnection { google::cloud::resourcemanager::v3::CreateTagHoldRequest const& request) override; + StatusOr CreateTagHold( + ExperimentalTag, NoAwaitTag, + google::cloud::resourcemanager::v3::CreateTagHoldRequest const& request) + override; + + future> CreateTagHold( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteTagHold(google::cloud::resourcemanager::v3::DeleteTagHoldRequest const& request) override; + StatusOr DeleteTagHold( + ExperimentalTag, NoAwaitTag, + google::cloud::resourcemanager::v3::DeleteTagHoldRequest const& request) + override; + + future> + DeleteTagHold(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListTagHolds( google::cloud::resourcemanager::v3::ListTagHoldsRequest request) override; diff --git a/google/cloud/resourcemanager/v3/internal/tag_holds_tracing_connection.cc b/google/cloud/resourcemanager/v3/internal/tag_holds_tracing_connection.cc index 72923ce44872b..18d47b98e63f3 100644 --- a/google/cloud/resourcemanager/v3/internal/tag_holds_tracing_connection.cc +++ b/google/cloud/resourcemanager/v3/internal/tag_holds_tracing_connection.cc @@ -42,6 +42,27 @@ TagHoldsTracingConnection::CreateTagHold( return internal::EndSpan(std::move(span), child_->CreateTagHold(request)); } +StatusOr +TagHoldsTracingConnection::CreateTagHold( + ExperimentalTag, NoAwaitTag, + google::cloud::resourcemanager::v3::CreateTagHoldRequest const& request) { + auto span = internal::MakeSpan( + "resourcemanager_v3::TagHoldsConnection::CreateTagHold"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->CreateTagHold(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +TagHoldsTracingConnection::CreateTagHold( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "resourcemanager_v3::TagHoldsConnection::CreateTagHold"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->CreateTagHold(ExperimentalTag{}, operation)); +} + future> TagHoldsTracingConnection::DeleteTagHold( google::cloud::resourcemanager::v3::DeleteTagHoldRequest const& request) { @@ -51,6 +72,27 @@ TagHoldsTracingConnection::DeleteTagHold( return internal::EndSpan(std::move(span), child_->DeleteTagHold(request)); } +StatusOr +TagHoldsTracingConnection::DeleteTagHold( + ExperimentalTag, NoAwaitTag, + google::cloud::resourcemanager::v3::DeleteTagHoldRequest const& request) { + auto span = internal::MakeSpan( + "resourcemanager_v3::TagHoldsConnection::DeleteTagHold"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->DeleteTagHold(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +TagHoldsTracingConnection::DeleteTagHold( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "resourcemanager_v3::TagHoldsConnection::DeleteTagHold"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->DeleteTagHold(ExperimentalTag{}, operation)); +} + StreamRange TagHoldsTracingConnection::ListTagHolds( google::cloud::resourcemanager::v3::ListTagHoldsRequest request) { diff --git a/google/cloud/resourcemanager/v3/internal/tag_holds_tracing_connection.h b/google/cloud/resourcemanager/v3/internal/tag_holds_tracing_connection.h index f93b516ba57c4..21bbb22e9fb8f 100644 --- a/google/cloud/resourcemanager/v3/internal/tag_holds_tracing_connection.h +++ b/google/cloud/resourcemanager/v3/internal/tag_holds_tracing_connection.h @@ -44,10 +44,28 @@ class TagHoldsTracingConnection google::cloud::resourcemanager::v3::CreateTagHoldRequest const& request) override; + StatusOr CreateTagHold( + ExperimentalTag, NoAwaitTag, + google::cloud::resourcemanager::v3::CreateTagHoldRequest const& request) + override; + + future> CreateTagHold( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteTagHold(google::cloud::resourcemanager::v3::DeleteTagHoldRequest const& request) override; + StatusOr DeleteTagHold( + ExperimentalTag, NoAwaitTag, + google::cloud::resourcemanager::v3::DeleteTagHoldRequest const& request) + override; + + future> + DeleteTagHold(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListTagHolds( google::cloud::resourcemanager::v3::ListTagHoldsRequest request) override; diff --git a/google/cloud/resourcemanager/v3/internal/tag_keys_connection_impl.cc b/google/cloud/resourcemanager/v3/internal/tag_keys_connection_impl.cc index d0e94ac8d72ad..6fe2ede993dea 100644 --- a/google/cloud/resourcemanager/v3/internal/tag_keys_connection_impl.cc +++ b/google/cloud/resourcemanager/v3/internal/tag_keys_connection_impl.cc @@ -170,6 +170,59 @@ TagKeysConnectionImpl::CreateTagKey( polling_policy(*current), __func__); } +StatusOr TagKeysConnectionImpl::CreateTagKey( + ExperimentalTag, NoAwaitTag, + google::cloud::resourcemanager::v3::CreateTagKeyRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateTagKey(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::resourcemanager::v3::CreateTagKeyRequest const& + request) { + return stub_->CreateTagKey(context, options, request); + }, + *current, request, __func__); +} + +future> +TagKeysConnectionImpl::CreateTagKey( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to CreateTagKey", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::resourcemanager::v3::TagKey>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::resourcemanager::v3::TagKey>, + polling_policy(*current), __func__); +} + future> TagKeysConnectionImpl::UpdateTagKey( google::cloud::resourcemanager::v3::UpdateTagKeyRequest const& request) { @@ -210,6 +263,59 @@ TagKeysConnectionImpl::UpdateTagKey( polling_policy(*current), __func__); } +StatusOr TagKeysConnectionImpl::UpdateTagKey( + ExperimentalTag, NoAwaitTag, + google::cloud::resourcemanager::v3::UpdateTagKeyRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UpdateTagKey(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::resourcemanager::v3::UpdateTagKeyRequest const& + request) { + return stub_->UpdateTagKey(context, options, request); + }, + *current, request, __func__); +} + +future> +TagKeysConnectionImpl::UpdateTagKey( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to UpdateTagKey", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::resourcemanager::v3::TagKey>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::resourcemanager::v3::TagKey>, + polling_policy(*current), __func__); +} + future> TagKeysConnectionImpl::DeleteTagKey( google::cloud::resourcemanager::v3::DeleteTagKeyRequest const& request) { @@ -250,6 +356,59 @@ TagKeysConnectionImpl::DeleteTagKey( polling_policy(*current), __func__); } +StatusOr TagKeysConnectionImpl::DeleteTagKey( + ExperimentalTag, NoAwaitTag, + google::cloud::resourcemanager::v3::DeleteTagKeyRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteTagKey(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::resourcemanager::v3::DeleteTagKeyRequest const& + request) { + return stub_->DeleteTagKey(context, options, request); + }, + *current, request, __func__); +} + +future> +TagKeysConnectionImpl::DeleteTagKey( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteTagKey", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::resourcemanager::v3::TagKey>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::resourcemanager::v3::TagKey>, + polling_policy(*current), __func__); +} + StatusOr TagKeysConnectionImpl::GetIamPolicy( google::iam::v1::GetIamPolicyRequest const& request) { auto current = google::cloud::internal::SaveCurrentOptions(); diff --git a/google/cloud/resourcemanager/v3/internal/tag_keys_connection_impl.h b/google/cloud/resourcemanager/v3/internal/tag_keys_connection_impl.h index a41811131df0b..c7bf00585ab6e 100644 --- a/google/cloud/resourcemanager/v3/internal/tag_keys_connection_impl.h +++ b/google/cloud/resourcemanager/v3/internal/tag_keys_connection_impl.h @@ -66,14 +66,41 @@ class TagKeysConnectionImpl : public resourcemanager_v3::TagKeysConnection { google::cloud::resourcemanager::v3::CreateTagKeyRequest const& request) override; + StatusOr CreateTagKey( + ExperimentalTag, NoAwaitTag, + google::cloud::resourcemanager::v3::CreateTagKeyRequest const& request) + override; + + future> CreateTagKey( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateTagKey( google::cloud::resourcemanager::v3::UpdateTagKeyRequest const& request) override; + StatusOr UpdateTagKey( + ExperimentalTag, NoAwaitTag, + google::cloud::resourcemanager::v3::UpdateTagKeyRequest const& request) + override; + + future> UpdateTagKey( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteTagKey( google::cloud::resourcemanager::v3::DeleteTagKeyRequest const& request) override; + StatusOr DeleteTagKey( + ExperimentalTag, NoAwaitTag, + google::cloud::resourcemanager::v3::DeleteTagKeyRequest const& request) + override; + + future> DeleteTagKey( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetIamPolicy( google::iam::v1::GetIamPolicyRequest const& request) override; diff --git a/google/cloud/resourcemanager/v3/internal/tag_keys_tracing_connection.cc b/google/cloud/resourcemanager/v3/internal/tag_keys_tracing_connection.cc index 61f3bb65b6d61..41f43138f8e25 100644 --- a/google/cloud/resourcemanager/v3/internal/tag_keys_tracing_connection.cc +++ b/google/cloud/resourcemanager/v3/internal/tag_keys_tracing_connection.cc @@ -73,6 +73,26 @@ TagKeysTracingConnection::CreateTagKey( return internal::EndSpan(std::move(span), child_->CreateTagKey(request)); } +StatusOr TagKeysTracingConnection::CreateTagKey( + ExperimentalTag, NoAwaitTag, + google::cloud::resourcemanager::v3::CreateTagKeyRequest const& request) { + auto span = + internal::MakeSpan("resourcemanager_v3::TagKeysConnection::CreateTagKey"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->CreateTagKey(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +TagKeysTracingConnection::CreateTagKey( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = + internal::MakeSpan("resourcemanager_v3::TagKeysConnection::CreateTagKey"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->CreateTagKey(ExperimentalTag{}, operation)); +} + future> TagKeysTracingConnection::UpdateTagKey( google::cloud::resourcemanager::v3::UpdateTagKeyRequest const& request) { @@ -82,6 +102,26 @@ TagKeysTracingConnection::UpdateTagKey( return internal::EndSpan(std::move(span), child_->UpdateTagKey(request)); } +StatusOr TagKeysTracingConnection::UpdateTagKey( + ExperimentalTag, NoAwaitTag, + google::cloud::resourcemanager::v3::UpdateTagKeyRequest const& request) { + auto span = + internal::MakeSpan("resourcemanager_v3::TagKeysConnection::UpdateTagKey"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->UpdateTagKey(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +TagKeysTracingConnection::UpdateTagKey( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = + internal::MakeSpan("resourcemanager_v3::TagKeysConnection::UpdateTagKey"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->UpdateTagKey(ExperimentalTag{}, operation)); +} + future> TagKeysTracingConnection::DeleteTagKey( google::cloud::resourcemanager::v3::DeleteTagKeyRequest const& request) { @@ -91,6 +131,26 @@ TagKeysTracingConnection::DeleteTagKey( return internal::EndSpan(std::move(span), child_->DeleteTagKey(request)); } +StatusOr TagKeysTracingConnection::DeleteTagKey( + ExperimentalTag, NoAwaitTag, + google::cloud::resourcemanager::v3::DeleteTagKeyRequest const& request) { + auto span = + internal::MakeSpan("resourcemanager_v3::TagKeysConnection::DeleteTagKey"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->DeleteTagKey(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +TagKeysTracingConnection::DeleteTagKey( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = + internal::MakeSpan("resourcemanager_v3::TagKeysConnection::DeleteTagKey"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->DeleteTagKey(ExperimentalTag{}, operation)); +} + StatusOr TagKeysTracingConnection::GetIamPolicy( google::iam::v1::GetIamPolicyRequest const& request) { auto span = diff --git a/google/cloud/resourcemanager/v3/internal/tag_keys_tracing_connection.h b/google/cloud/resourcemanager/v3/internal/tag_keys_tracing_connection.h index 103e59eba7454..7e4b1f69a5837 100644 --- a/google/cloud/resourcemanager/v3/internal/tag_keys_tracing_connection.h +++ b/google/cloud/resourcemanager/v3/internal/tag_keys_tracing_connection.h @@ -54,14 +54,41 @@ class TagKeysTracingConnection : public resourcemanager_v3::TagKeysConnection { google::cloud::resourcemanager::v3::CreateTagKeyRequest const& request) override; + StatusOr CreateTagKey( + ExperimentalTag, NoAwaitTag, + google::cloud::resourcemanager::v3::CreateTagKeyRequest const& request) + override; + + future> CreateTagKey( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateTagKey( google::cloud::resourcemanager::v3::UpdateTagKeyRequest const& request) override; + StatusOr UpdateTagKey( + ExperimentalTag, NoAwaitTag, + google::cloud::resourcemanager::v3::UpdateTagKeyRequest const& request) + override; + + future> UpdateTagKey( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteTagKey( google::cloud::resourcemanager::v3::DeleteTagKeyRequest const& request) override; + StatusOr DeleteTagKey( + ExperimentalTag, NoAwaitTag, + google::cloud::resourcemanager::v3::DeleteTagKeyRequest const& request) + override; + + future> DeleteTagKey( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetIamPolicy( google::iam::v1::GetIamPolicyRequest const& request) override; diff --git a/google/cloud/resourcemanager/v3/internal/tag_values_connection_impl.cc b/google/cloud/resourcemanager/v3/internal/tag_values_connection_impl.cc index 375dcd084bb5f..90b5fffb13a33 100644 --- a/google/cloud/resourcemanager/v3/internal/tag_values_connection_impl.cc +++ b/google/cloud/resourcemanager/v3/internal/tag_values_connection_impl.cc @@ -172,6 +172,60 @@ TagValuesConnectionImpl::CreateTagValue( polling_policy(*current), __func__); } +StatusOr +TagValuesConnectionImpl::CreateTagValue( + ExperimentalTag, NoAwaitTag, + google::cloud::resourcemanager::v3::CreateTagValueRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateTagValue(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::resourcemanager::v3::CreateTagValueRequest const& + request) { + return stub_->CreateTagValue(context, options, request); + }, + *current, request, __func__); +} + +future> +TagValuesConnectionImpl::CreateTagValue( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to CreateTagValue", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::resourcemanager::v3::TagValue>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::resourcemanager::v3::TagValue>, + polling_policy(*current), __func__); +} + future> TagValuesConnectionImpl::UpdateTagValue( google::cloud::resourcemanager::v3::UpdateTagValueRequest const& request) { @@ -212,6 +266,60 @@ TagValuesConnectionImpl::UpdateTagValue( polling_policy(*current), __func__); } +StatusOr +TagValuesConnectionImpl::UpdateTagValue( + ExperimentalTag, NoAwaitTag, + google::cloud::resourcemanager::v3::UpdateTagValueRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UpdateTagValue(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::resourcemanager::v3::UpdateTagValueRequest const& + request) { + return stub_->UpdateTagValue(context, options, request); + }, + *current, request, __func__); +} + +future> +TagValuesConnectionImpl::UpdateTagValue( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to UpdateTagValue", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::resourcemanager::v3::TagValue>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::resourcemanager::v3::TagValue>, + polling_policy(*current), __func__); +} + future> TagValuesConnectionImpl::DeleteTagValue( google::cloud::resourcemanager::v3::DeleteTagValueRequest const& request) { @@ -252,6 +360,60 @@ TagValuesConnectionImpl::DeleteTagValue( polling_policy(*current), __func__); } +StatusOr +TagValuesConnectionImpl::DeleteTagValue( + ExperimentalTag, NoAwaitTag, + google::cloud::resourcemanager::v3::DeleteTagValueRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteTagValue(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::resourcemanager::v3::DeleteTagValueRequest const& + request) { + return stub_->DeleteTagValue(context, options, request); + }, + *current, request, __func__); +} + +future> +TagValuesConnectionImpl::DeleteTagValue( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteTagValue", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::resourcemanager::v3::TagValue>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::resourcemanager::v3::TagValue>, + polling_policy(*current), __func__); +} + StatusOr TagValuesConnectionImpl::GetIamPolicy( google::iam::v1::GetIamPolicyRequest const& request) { auto current = google::cloud::internal::SaveCurrentOptions(); diff --git a/google/cloud/resourcemanager/v3/internal/tag_values_connection_impl.h b/google/cloud/resourcemanager/v3/internal/tag_values_connection_impl.h index 4b0bc82cb1de8..7f0383d3f9251 100644 --- a/google/cloud/resourcemanager/v3/internal/tag_values_connection_impl.h +++ b/google/cloud/resourcemanager/v3/internal/tag_values_connection_impl.h @@ -67,14 +67,41 @@ class TagValuesConnectionImpl : public resourcemanager_v3::TagValuesConnection { google::cloud::resourcemanager::v3::CreateTagValueRequest const& request) override; + StatusOr CreateTagValue( + ExperimentalTag, NoAwaitTag, + google::cloud::resourcemanager::v3::CreateTagValueRequest const& request) + override; + + future> CreateTagValue( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateTagValue( google::cloud::resourcemanager::v3::UpdateTagValueRequest const& request) override; + StatusOr UpdateTagValue( + ExperimentalTag, NoAwaitTag, + google::cloud::resourcemanager::v3::UpdateTagValueRequest const& request) + override; + + future> UpdateTagValue( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteTagValue( google::cloud::resourcemanager::v3::DeleteTagValueRequest const& request) override; + StatusOr DeleteTagValue( + ExperimentalTag, NoAwaitTag, + google::cloud::resourcemanager::v3::DeleteTagValueRequest const& request) + override; + + future> DeleteTagValue( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetIamPolicy( google::iam::v1::GetIamPolicyRequest const& request) override; diff --git a/google/cloud/resourcemanager/v3/internal/tag_values_tracing_connection.cc b/google/cloud/resourcemanager/v3/internal/tag_values_tracing_connection.cc index f54608cc49ffa..5f0415b7f3d0c 100644 --- a/google/cloud/resourcemanager/v3/internal/tag_values_tracing_connection.cc +++ b/google/cloud/resourcemanager/v3/internal/tag_values_tracing_connection.cc @@ -73,6 +73,27 @@ TagValuesTracingConnection::CreateTagValue( return internal::EndSpan(std::move(span), child_->CreateTagValue(request)); } +StatusOr +TagValuesTracingConnection::CreateTagValue( + ExperimentalTag, NoAwaitTag, + google::cloud::resourcemanager::v3::CreateTagValueRequest const& request) { + auto span = internal::MakeSpan( + "resourcemanager_v3::TagValuesConnection::CreateTagValue"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->CreateTagValue(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +TagValuesTracingConnection::CreateTagValue( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "resourcemanager_v3::TagValuesConnection::CreateTagValue"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->CreateTagValue(ExperimentalTag{}, operation)); +} + future> TagValuesTracingConnection::UpdateTagValue( google::cloud::resourcemanager::v3::UpdateTagValueRequest const& request) { @@ -82,6 +103,27 @@ TagValuesTracingConnection::UpdateTagValue( return internal::EndSpan(std::move(span), child_->UpdateTagValue(request)); } +StatusOr +TagValuesTracingConnection::UpdateTagValue( + ExperimentalTag, NoAwaitTag, + google::cloud::resourcemanager::v3::UpdateTagValueRequest const& request) { + auto span = internal::MakeSpan( + "resourcemanager_v3::TagValuesConnection::UpdateTagValue"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->UpdateTagValue(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +TagValuesTracingConnection::UpdateTagValue( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "resourcemanager_v3::TagValuesConnection::UpdateTagValue"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->UpdateTagValue(ExperimentalTag{}, operation)); +} + future> TagValuesTracingConnection::DeleteTagValue( google::cloud::resourcemanager::v3::DeleteTagValueRequest const& request) { @@ -91,6 +133,27 @@ TagValuesTracingConnection::DeleteTagValue( return internal::EndSpan(std::move(span), child_->DeleteTagValue(request)); } +StatusOr +TagValuesTracingConnection::DeleteTagValue( + ExperimentalTag, NoAwaitTag, + google::cloud::resourcemanager::v3::DeleteTagValueRequest const& request) { + auto span = internal::MakeSpan( + "resourcemanager_v3::TagValuesConnection::DeleteTagValue"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->DeleteTagValue(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +TagValuesTracingConnection::DeleteTagValue( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "resourcemanager_v3::TagValuesConnection::DeleteTagValue"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->DeleteTagValue(ExperimentalTag{}, operation)); +} + StatusOr TagValuesTracingConnection::GetIamPolicy( google::iam::v1::GetIamPolicyRequest const& request) { auto span = internal::MakeSpan( diff --git a/google/cloud/resourcemanager/v3/internal/tag_values_tracing_connection.h b/google/cloud/resourcemanager/v3/internal/tag_values_tracing_connection.h index b4a39177a7fb4..064e2c7290f56 100644 --- a/google/cloud/resourcemanager/v3/internal/tag_values_tracing_connection.h +++ b/google/cloud/resourcemanager/v3/internal/tag_values_tracing_connection.h @@ -56,14 +56,41 @@ class TagValuesTracingConnection google::cloud::resourcemanager::v3::CreateTagValueRequest const& request) override; + StatusOr CreateTagValue( + ExperimentalTag, NoAwaitTag, + google::cloud::resourcemanager::v3::CreateTagValueRequest const& request) + override; + + future> CreateTagValue( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateTagValue( google::cloud::resourcemanager::v3::UpdateTagValueRequest const& request) override; + StatusOr UpdateTagValue( + ExperimentalTag, NoAwaitTag, + google::cloud::resourcemanager::v3::UpdateTagValueRequest const& request) + override; + + future> UpdateTagValue( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteTagValue( google::cloud::resourcemanager::v3::DeleteTagValueRequest const& request) override; + StatusOr DeleteTagValue( + ExperimentalTag, NoAwaitTag, + google::cloud::resourcemanager::v3::DeleteTagValueRequest const& request) + override; + + future> DeleteTagValue( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetIamPolicy( google::iam::v1::GetIamPolicyRequest const& request) override; diff --git a/google/cloud/resourcemanager/v3/mocks/mock_folders_connection.h b/google/cloud/resourcemanager/v3/mocks/mock_folders_connection.h index 804398710f2cc..b25381b532a8b 100644 --- a/google/cloud/resourcemanager/v3/mocks/mock_folders_connection.h +++ b/google/cloud/resourcemanager/v3/mocks/mock_folders_connection.h @@ -67,29 +67,89 @@ class MockFoldersConnection : public resourcemanager_v3::FoldersConnection { (google::cloud::resourcemanager::v3::CreateFolderRequest const& request), (override)); + MOCK_METHOD( + StatusOr, CreateFolder, + (ExperimentalTag, NoAwaitTag, + google::cloud::resourcemanager::v3::CreateFolderRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateFolder, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, UpdateFolder, (google::cloud::resourcemanager::v3::UpdateFolderRequest const& request), (override)); + MOCK_METHOD( + StatusOr, UpdateFolder, + (ExperimentalTag, NoAwaitTag, + google::cloud::resourcemanager::v3::UpdateFolderRequest const& request), + (override)); + + MOCK_METHOD(future>, + UpdateFolder, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, MoveFolder, (google::cloud::resourcemanager::v3::MoveFolderRequest const& request), (override)); + MOCK_METHOD( + StatusOr, MoveFolder, + (ExperimentalTag, NoAwaitTag, + google::cloud::resourcemanager::v3::MoveFolderRequest const& request), + (override)); + + MOCK_METHOD(future>, + MoveFolder, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteFolder, (google::cloud::resourcemanager::v3::DeleteFolderRequest const& request), (override)); + MOCK_METHOD( + StatusOr, DeleteFolder, + (ExperimentalTag, NoAwaitTag, + google::cloud::resourcemanager::v3::DeleteFolderRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteFolder, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, UndeleteFolder, (google::cloud::resourcemanager::v3::UndeleteFolderRequest const& request), (override)); + MOCK_METHOD(StatusOr, UndeleteFolder, + (ExperimentalTag, NoAwaitTag, + google::cloud::resourcemanager::v3::UndeleteFolderRequest const& + request), + (override)); + + MOCK_METHOD(future>, + UndeleteFolder, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(StatusOr, GetIamPolicy, (google::iam::v1::GetIamPolicyRequest const& request), (override)); diff --git a/google/cloud/resourcemanager/v3/mocks/mock_projects_connection.h b/google/cloud/resourcemanager/v3/mocks/mock_projects_connection.h index 62d432592a373..94cf03197c7b3 100644 --- a/google/cloud/resourcemanager/v3/mocks/mock_projects_connection.h +++ b/google/cloud/resourcemanager/v3/mocks/mock_projects_connection.h @@ -68,30 +68,90 @@ class MockProjectsConnection : public resourcemanager_v3::ProjectsConnection { (google::cloud::resourcemanager::v3::CreateProjectRequest const& request), (override)); + MOCK_METHOD( + StatusOr, CreateProject, + (ExperimentalTag, NoAwaitTag, + google::cloud::resourcemanager::v3::CreateProjectRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateProject, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, UpdateProject, (google::cloud::resourcemanager::v3::UpdateProjectRequest const& request), (override)); + MOCK_METHOD( + StatusOr, UpdateProject, + (ExperimentalTag, NoAwaitTag, + google::cloud::resourcemanager::v3::UpdateProjectRequest const& request), + (override)); + + MOCK_METHOD(future>, + UpdateProject, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, MoveProject, (google::cloud::resourcemanager::v3::MoveProjectRequest const& request), (override)); + MOCK_METHOD( + StatusOr, MoveProject, + (ExperimentalTag, NoAwaitTag, + google::cloud::resourcemanager::v3::MoveProjectRequest const& request), + (override)); + + MOCK_METHOD(future>, + MoveProject, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteProject, (google::cloud::resourcemanager::v3::DeleteProjectRequest const& request), (override)); + MOCK_METHOD( + StatusOr, DeleteProject, + (ExperimentalTag, NoAwaitTag, + google::cloud::resourcemanager::v3::DeleteProjectRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteProject, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, UndeleteProject, (google::cloud::resourcemanager::v3::UndeleteProjectRequest const& request), (override)); + MOCK_METHOD(StatusOr, UndeleteProject, + (ExperimentalTag, NoAwaitTag, + google::cloud::resourcemanager::v3::UndeleteProjectRequest const& + request), + (override)); + + MOCK_METHOD(future>, + UndeleteProject, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(StatusOr, GetIamPolicy, (google::iam::v1::GetIamPolicyRequest const& request), (override)); diff --git a/google/cloud/resourcemanager/v3/mocks/mock_tag_bindings_connection.h b/google/cloud/resourcemanager/v3/mocks/mock_tag_bindings_connection.h index d3d4b2c4b70a1..7cb0b462752e0 100644 --- a/google/cloud/resourcemanager/v3/mocks/mock_tag_bindings_connection.h +++ b/google/cloud/resourcemanager/v3/mocks/mock_tag_bindings_connection.h @@ -60,6 +60,19 @@ class MockTagBindingsConnection request), (override)); + MOCK_METHOD( + StatusOr, CreateTagBinding, + (ExperimentalTag, NoAwaitTag, + google::cloud::resourcemanager::v3::CreateTagBindingRequest const& + request), + (override)); + + MOCK_METHOD(future>, + CreateTagBinding, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, @@ -68,6 +81,20 @@ class MockTagBindingsConnection request), (override)); + MOCK_METHOD( + StatusOr, DeleteTagBinding, + (ExperimentalTag, NoAwaitTag, + google::cloud::resourcemanager::v3::DeleteTagBindingRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + DeleteTagBinding, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( (StreamRange), ListEffectiveTags, diff --git a/google/cloud/resourcemanager/v3/mocks/mock_tag_holds_connection.h b/google/cloud/resourcemanager/v3/mocks/mock_tag_holds_connection.h index 74ea692bbb286..fb45a3287fb34 100644 --- a/google/cloud/resourcemanager/v3/mocks/mock_tag_holds_connection.h +++ b/google/cloud/resourcemanager/v3/mocks/mock_tag_holds_connection.h @@ -52,6 +52,18 @@ class MockTagHoldsConnection : public resourcemanager_v3::TagHoldsConnection { (google::cloud::resourcemanager::v3::CreateTagHoldRequest const& request), (override)); + MOCK_METHOD( + StatusOr, CreateTagHold, + (ExperimentalTag, NoAwaitTag, + google::cloud::resourcemanager::v3::CreateTagHoldRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateTagHold, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future< StatusOr>, @@ -59,6 +71,19 @@ class MockTagHoldsConnection : public resourcemanager_v3::TagHoldsConnection { (google::cloud::resourcemanager::v3::DeleteTagHoldRequest const& request), (override)); + MOCK_METHOD( + StatusOr, DeleteTagHold, + (ExperimentalTag, NoAwaitTag, + google::cloud::resourcemanager::v3::DeleteTagHoldRequest const& request), + (override)); + + MOCK_METHOD( + future< + StatusOr>, + DeleteTagHold, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD((StreamRange), ListTagHolds, (google::cloud::resourcemanager::v3::ListTagHoldsRequest request), diff --git a/google/cloud/resourcemanager/v3/mocks/mock_tag_keys_connection.h b/google/cloud/resourcemanager/v3/mocks/mock_tag_keys_connection.h index fba03b6dd9ec7..4095262c69702 100644 --- a/google/cloud/resourcemanager/v3/mocks/mock_tag_keys_connection.h +++ b/google/cloud/resourcemanager/v3/mocks/mock_tag_keys_connection.h @@ -68,18 +68,54 @@ class MockTagKeysConnection : public resourcemanager_v3::TagKeysConnection { (google::cloud::resourcemanager::v3::CreateTagKeyRequest const& request), (override)); + MOCK_METHOD( + StatusOr, CreateTagKey, + (ExperimentalTag, NoAwaitTag, + google::cloud::resourcemanager::v3::CreateTagKeyRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateTagKey, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, UpdateTagKey, (google::cloud::resourcemanager::v3::UpdateTagKeyRequest const& request), (override)); + MOCK_METHOD( + StatusOr, UpdateTagKey, + (ExperimentalTag, NoAwaitTag, + google::cloud::resourcemanager::v3::UpdateTagKeyRequest const& request), + (override)); + + MOCK_METHOD(future>, + UpdateTagKey, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteTagKey, (google::cloud::resourcemanager::v3::DeleteTagKeyRequest const& request), (override)); + MOCK_METHOD( + StatusOr, DeleteTagKey, + (ExperimentalTag, NoAwaitTag, + google::cloud::resourcemanager::v3::DeleteTagKeyRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteTagKey, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(StatusOr, GetIamPolicy, (google::iam::v1::GetIamPolicyRequest const& request), (override)); diff --git a/google/cloud/resourcemanager/v3/mocks/mock_tag_values_connection.h b/google/cloud/resourcemanager/v3/mocks/mock_tag_values_connection.h index e5e10e69d86ed..2eb0980250824 100644 --- a/google/cloud/resourcemanager/v3/mocks/mock_tag_values_connection.h +++ b/google/cloud/resourcemanager/v3/mocks/mock_tag_values_connection.h @@ -70,18 +70,54 @@ class MockTagValuesConnection : public resourcemanager_v3::TagValuesConnection { request), (override)); + MOCK_METHOD(StatusOr, CreateTagValue, + (ExperimentalTag, NoAwaitTag, + google::cloud::resourcemanager::v3::CreateTagValueRequest const& + request), + (override)); + + MOCK_METHOD(future>, + CreateTagValue, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, UpdateTagValue, (google::cloud::resourcemanager::v3::UpdateTagValueRequest const& request), (override)); + MOCK_METHOD(StatusOr, UpdateTagValue, + (ExperimentalTag, NoAwaitTag, + google::cloud::resourcemanager::v3::UpdateTagValueRequest const& + request), + (override)); + + MOCK_METHOD(future>, + UpdateTagValue, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, DeleteTagValue, (google::cloud::resourcemanager::v3::DeleteTagValueRequest const& request), (override)); + MOCK_METHOD(StatusOr, DeleteTagValue, + (ExperimentalTag, NoAwaitTag, + google::cloud::resourcemanager::v3::DeleteTagValueRequest const& + request), + (override)); + + MOCK_METHOD(future>, + DeleteTagValue, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(StatusOr, GetIamPolicy, (google::iam::v1::GetIamPolicyRequest const& request), (override)); diff --git a/google/cloud/resourcemanager/v3/organizations_connection.h b/google/cloud/resourcemanager/v3/organizations_connection.h index a14585c370614..b4bc6b919c529 100644 --- a/google/cloud/resourcemanager/v3/organizations_connection.h +++ b/google/cloud/resourcemanager/v3/organizations_connection.h @@ -22,6 +22,7 @@ #include "google/cloud/resourcemanager/v3/internal/organizations_retry_traits.h" #include "google/cloud/resourcemanager/v3/organizations_connection_idempotency_policy.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/internal/retry_policy_impl.h" #include "google/cloud/options.h" #include "google/cloud/status_or.h" diff --git a/google/cloud/resourcemanager/v3/projects_connection.cc b/google/cloud/resourcemanager/v3/projects_connection.cc index 2bf66689e1396..b086c5c99e330 100644 --- a/google/cloud/resourcemanager/v3/projects_connection.cc +++ b/google/cloud/resourcemanager/v3/projects_connection.cc @@ -68,6 +68,21 @@ ProjectsConnection::CreateProject( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr ProjectsConnection::CreateProject( + ExperimentalTag, NoAwaitTag, + google::cloud::resourcemanager::v3::CreateProjectRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +ProjectsConnection::CreateProject(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> ProjectsConnection::UpdateProject( google::cloud::resourcemanager::v3::UpdateProjectRequest const&) { @@ -76,6 +91,21 @@ ProjectsConnection::UpdateProject( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr ProjectsConnection::UpdateProject( + ExperimentalTag, NoAwaitTag, + google::cloud::resourcemanager::v3::UpdateProjectRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +ProjectsConnection::UpdateProject(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> ProjectsConnection::MoveProject( google::cloud::resourcemanager::v3::MoveProjectRequest const&) { @@ -84,6 +114,21 @@ ProjectsConnection::MoveProject( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr ProjectsConnection::MoveProject( + ExperimentalTag, NoAwaitTag, + google::cloud::resourcemanager::v3::MoveProjectRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +ProjectsConnection::MoveProject(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> ProjectsConnection::DeleteProject( google::cloud::resourcemanager::v3::DeleteProjectRequest const&) { @@ -92,6 +137,21 @@ ProjectsConnection::DeleteProject( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr ProjectsConnection::DeleteProject( + ExperimentalTag, NoAwaitTag, + google::cloud::resourcemanager::v3::DeleteProjectRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +ProjectsConnection::DeleteProject(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> ProjectsConnection::UndeleteProject( google::cloud::resourcemanager::v3::UndeleteProjectRequest const&) { @@ -100,6 +160,21 @@ ProjectsConnection::UndeleteProject( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr ProjectsConnection::UndeleteProject( + ExperimentalTag, NoAwaitTag, + google::cloud::resourcemanager::v3::UndeleteProjectRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +ProjectsConnection::UndeleteProject(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr ProjectsConnection::GetIamPolicy( google::iam::v1::GetIamPolicyRequest const&) { return Status(StatusCode::kUnimplemented, "not implemented"); diff --git a/google/cloud/resourcemanager/v3/projects_connection.h b/google/cloud/resourcemanager/v3/projects_connection.h index 2612813867574..0e05332a54d15 100644 --- a/google/cloud/resourcemanager/v3/projects_connection.h +++ b/google/cloud/resourcemanager/v3/projects_connection.h @@ -22,8 +22,10 @@ #include "google/cloud/resourcemanager/v3/internal/projects_retry_traits.h" #include "google/cloud/resourcemanager/v3/projects_connection_idempotency_policy.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/internal/retry_policy_impl.h" +#include "google/cloud/no_await_tag.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" #include "google/cloud/status_or.h" @@ -196,23 +198,63 @@ class ProjectsConnection { CreateProject( google::cloud::resourcemanager::v3::CreateProjectRequest const& request); + virtual StatusOr CreateProject( + ExperimentalTag, NoAwaitTag, + google::cloud::resourcemanager::v3::CreateProjectRequest const& request); + + virtual future> + CreateProject(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> UpdateProject( google::cloud::resourcemanager::v3::UpdateProjectRequest const& request); + virtual StatusOr UpdateProject( + ExperimentalTag, NoAwaitTag, + google::cloud::resourcemanager::v3::UpdateProjectRequest const& request); + + virtual future> + UpdateProject(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> MoveProject( google::cloud::resourcemanager::v3::MoveProjectRequest const& request); + virtual StatusOr MoveProject( + ExperimentalTag, NoAwaitTag, + google::cloud::resourcemanager::v3::MoveProjectRequest const& request); + + virtual future> + MoveProject(ExperimentalTag, google::longrunning::Operation const& operation); + virtual future> DeleteProject( google::cloud::resourcemanager::v3::DeleteProjectRequest const& request); + virtual StatusOr DeleteProject( + ExperimentalTag, NoAwaitTag, + google::cloud::resourcemanager::v3::DeleteProjectRequest const& request); + + virtual future> + DeleteProject(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> UndeleteProject( google::cloud::resourcemanager::v3::UndeleteProjectRequest const& request); + virtual StatusOr UndeleteProject( + ExperimentalTag, NoAwaitTag, + google::cloud::resourcemanager::v3::UndeleteProjectRequest const& + request); + + virtual future> + UndeleteProject(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StatusOr GetIamPolicy( google::iam::v1::GetIamPolicyRequest const& request); diff --git a/google/cloud/resourcemanager/v3/tag_bindings_connection.cc b/google/cloud/resourcemanager/v3/tag_bindings_connection.cc index 50e045044f324..e36b597d9baae 100644 --- a/google/cloud/resourcemanager/v3/tag_bindings_connection.cc +++ b/google/cloud/resourcemanager/v3/tag_bindings_connection.cc @@ -54,6 +54,22 @@ TagBindingsConnection::CreateTagBinding( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +TagBindingsConnection::CreateTagBinding( + ExperimentalTag, NoAwaitTag, + google::cloud::resourcemanager::v3::CreateTagBindingRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +TagBindingsConnection::CreateTagBinding(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> TagBindingsConnection::DeleteTagBinding( google::cloud::resourcemanager::v3::DeleteTagBindingRequest const&) { @@ -62,6 +78,22 @@ TagBindingsConnection::DeleteTagBinding( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +TagBindingsConnection::DeleteTagBinding( + ExperimentalTag, NoAwaitTag, + google::cloud::resourcemanager::v3::DeleteTagBindingRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +TagBindingsConnection::DeleteTagBinding(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StreamRange TagBindingsConnection::ListEffectiveTags( google::cloud::resourcemanager::v3:: diff --git a/google/cloud/resourcemanager/v3/tag_bindings_connection.h b/google/cloud/resourcemanager/v3/tag_bindings_connection.h index 8bc640f3d4e4e..acf98918efa3e 100644 --- a/google/cloud/resourcemanager/v3/tag_bindings_connection.h +++ b/google/cloud/resourcemanager/v3/tag_bindings_connection.h @@ -22,8 +22,10 @@ #include "google/cloud/resourcemanager/v3/internal/tag_bindings_retry_traits.h" #include "google/cloud/resourcemanager/v3/tag_bindings_connection_idempotency_policy.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/internal/retry_policy_impl.h" +#include "google/cloud/no_await_tag.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" #include "google/cloud/status_or.h" @@ -193,12 +195,31 @@ class TagBindingsConnection { google::cloud::resourcemanager::v3::CreateTagBindingRequest const& request); + virtual StatusOr CreateTagBinding( + ExperimentalTag, NoAwaitTag, + google::cloud::resourcemanager::v3::CreateTagBindingRequest const& + request); + + virtual future> + CreateTagBinding(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future< StatusOr> DeleteTagBinding( google::cloud::resourcemanager::v3::DeleteTagBindingRequest const& request); + virtual StatusOr DeleteTagBinding( + ExperimentalTag, NoAwaitTag, + google::cloud::resourcemanager::v3::DeleteTagBindingRequest const& + request); + + virtual future< + StatusOr> + DeleteTagBinding(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StreamRange ListEffectiveTags( google::cloud::resourcemanager::v3::ListEffectiveTagsRequest request); diff --git a/google/cloud/resourcemanager/v3/tag_holds_connection.cc b/google/cloud/resourcemanager/v3/tag_holds_connection.cc index 2bb0496b607e1..903b2d02b7d20 100644 --- a/google/cloud/resourcemanager/v3/tag_holds_connection.cc +++ b/google/cloud/resourcemanager/v3/tag_holds_connection.cc @@ -46,6 +46,21 @@ TagHoldsConnection::CreateTagHold( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr TagHoldsConnection::CreateTagHold( + ExperimentalTag, NoAwaitTag, + google::cloud::resourcemanager::v3::CreateTagHoldRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +TagHoldsConnection::CreateTagHold(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> TagHoldsConnection::DeleteTagHold( google::cloud::resourcemanager::v3::DeleteTagHoldRequest const&) { @@ -54,6 +69,21 @@ TagHoldsConnection::DeleteTagHold( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr TagHoldsConnection::DeleteTagHold( + ExperimentalTag, NoAwaitTag, + google::cloud::resourcemanager::v3::DeleteTagHoldRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +TagHoldsConnection::DeleteTagHold(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StreamRange TagHoldsConnection::ListTagHolds( google::cloud::resourcemanager::v3:: diff --git a/google/cloud/resourcemanager/v3/tag_holds_connection.h b/google/cloud/resourcemanager/v3/tag_holds_connection.h index b688ffa0698e1..32cf7a5352bc3 100644 --- a/google/cloud/resourcemanager/v3/tag_holds_connection.h +++ b/google/cloud/resourcemanager/v3/tag_holds_connection.h @@ -22,8 +22,10 @@ #include "google/cloud/resourcemanager/v3/internal/tag_holds_retry_traits.h" #include "google/cloud/resourcemanager/v3/tag_holds_connection_idempotency_policy.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/internal/retry_policy_impl.h" +#include "google/cloud/no_await_tag.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" #include "google/cloud/status_or.h" @@ -186,11 +188,28 @@ class TagHoldsConnection { CreateTagHold( google::cloud::resourcemanager::v3::CreateTagHoldRequest const& request); + virtual StatusOr CreateTagHold( + ExperimentalTag, NoAwaitTag, + google::cloud::resourcemanager::v3::CreateTagHoldRequest const& request); + + virtual future> + CreateTagHold(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future< StatusOr> DeleteTagHold( google::cloud::resourcemanager::v3::DeleteTagHoldRequest const& request); + virtual StatusOr DeleteTagHold( + ExperimentalTag, NoAwaitTag, + google::cloud::resourcemanager::v3::DeleteTagHoldRequest const& request); + + virtual future< + StatusOr> + DeleteTagHold(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StreamRange ListTagHolds( google::cloud::resourcemanager::v3::ListTagHoldsRequest request); }; diff --git a/google/cloud/resourcemanager/v3/tag_keys_connection.cc b/google/cloud/resourcemanager/v3/tag_keys_connection.cc index c6e9b46805c96..0d7168c3228fa 100644 --- a/google/cloud/resourcemanager/v3/tag_keys_connection.cc +++ b/google/cloud/resourcemanager/v3/tag_keys_connection.cc @@ -66,6 +66,21 @@ TagKeysConnection::CreateTagKey( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr TagKeysConnection::CreateTagKey( + ExperimentalTag, NoAwaitTag, + google::cloud::resourcemanager::v3::CreateTagKeyRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +TagKeysConnection::CreateTagKey(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> TagKeysConnection::UpdateTagKey( google::cloud::resourcemanager::v3::UpdateTagKeyRequest const&) { @@ -74,6 +89,21 @@ TagKeysConnection::UpdateTagKey( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr TagKeysConnection::UpdateTagKey( + ExperimentalTag, NoAwaitTag, + google::cloud::resourcemanager::v3::UpdateTagKeyRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +TagKeysConnection::UpdateTagKey(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> TagKeysConnection::DeleteTagKey( google::cloud::resourcemanager::v3::DeleteTagKeyRequest const&) { @@ -82,6 +112,21 @@ TagKeysConnection::DeleteTagKey( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr TagKeysConnection::DeleteTagKey( + ExperimentalTag, NoAwaitTag, + google::cloud::resourcemanager::v3::DeleteTagKeyRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +TagKeysConnection::DeleteTagKey(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr TagKeysConnection::GetIamPolicy( google::iam::v1::GetIamPolicyRequest const&) { return Status(StatusCode::kUnimplemented, "not implemented"); diff --git a/google/cloud/resourcemanager/v3/tag_keys_connection.h b/google/cloud/resourcemanager/v3/tag_keys_connection.h index 3d30af51e249e..139390fb89e1c 100644 --- a/google/cloud/resourcemanager/v3/tag_keys_connection.h +++ b/google/cloud/resourcemanager/v3/tag_keys_connection.h @@ -22,8 +22,10 @@ #include "google/cloud/resourcemanager/v3/internal/tag_keys_retry_traits.h" #include "google/cloud/resourcemanager/v3/tag_keys_connection_idempotency_policy.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/internal/retry_policy_impl.h" +#include "google/cloud/no_await_tag.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" #include "google/cloud/status_or.h" @@ -197,14 +199,38 @@ class TagKeysConnection { CreateTagKey( google::cloud::resourcemanager::v3::CreateTagKeyRequest const& request); + virtual StatusOr CreateTagKey( + ExperimentalTag, NoAwaitTag, + google::cloud::resourcemanager::v3::CreateTagKeyRequest const& request); + + virtual future> + CreateTagKey(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> UpdateTagKey( google::cloud::resourcemanager::v3::UpdateTagKeyRequest const& request); + virtual StatusOr UpdateTagKey( + ExperimentalTag, NoAwaitTag, + google::cloud::resourcemanager::v3::UpdateTagKeyRequest const& request); + + virtual future> + UpdateTagKey(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> DeleteTagKey( google::cloud::resourcemanager::v3::DeleteTagKeyRequest const& request); + virtual StatusOr DeleteTagKey( + ExperimentalTag, NoAwaitTag, + google::cloud::resourcemanager::v3::DeleteTagKeyRequest const& request); + + virtual future> + DeleteTagKey(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StatusOr GetIamPolicy( google::iam::v1::GetIamPolicyRequest const& request); diff --git a/google/cloud/resourcemanager/v3/tag_values_connection.cc b/google/cloud/resourcemanager/v3/tag_values_connection.cc index 5af5317fd9511..6a9d7ba5f696b 100644 --- a/google/cloud/resourcemanager/v3/tag_values_connection.cc +++ b/google/cloud/resourcemanager/v3/tag_values_connection.cc @@ -66,6 +66,21 @@ TagValuesConnection::CreateTagValue( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr TagValuesConnection::CreateTagValue( + ExperimentalTag, NoAwaitTag, + google::cloud::resourcemanager::v3::CreateTagValueRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +TagValuesConnection::CreateTagValue(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> TagValuesConnection::UpdateTagValue( google::cloud::resourcemanager::v3::UpdateTagValueRequest const&) { @@ -74,6 +89,21 @@ TagValuesConnection::UpdateTagValue( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr TagValuesConnection::UpdateTagValue( + ExperimentalTag, NoAwaitTag, + google::cloud::resourcemanager::v3::UpdateTagValueRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +TagValuesConnection::UpdateTagValue(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> TagValuesConnection::DeleteTagValue( google::cloud::resourcemanager::v3::DeleteTagValueRequest const&) { @@ -82,6 +112,21 @@ TagValuesConnection::DeleteTagValue( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr TagValuesConnection::DeleteTagValue( + ExperimentalTag, NoAwaitTag, + google::cloud::resourcemanager::v3::DeleteTagValueRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +TagValuesConnection::DeleteTagValue(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr TagValuesConnection::GetIamPolicy( google::iam::v1::GetIamPolicyRequest const&) { return Status(StatusCode::kUnimplemented, "not implemented"); diff --git a/google/cloud/resourcemanager/v3/tag_values_connection.h b/google/cloud/resourcemanager/v3/tag_values_connection.h index dbbbe439a3128..1e032f69e9df3 100644 --- a/google/cloud/resourcemanager/v3/tag_values_connection.h +++ b/google/cloud/resourcemanager/v3/tag_values_connection.h @@ -22,8 +22,10 @@ #include "google/cloud/resourcemanager/v3/internal/tag_values_retry_traits.h" #include "google/cloud/resourcemanager/v3/tag_values_connection_idempotency_policy.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/internal/retry_policy_impl.h" +#include "google/cloud/no_await_tag.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" #include "google/cloud/status_or.h" @@ -200,14 +202,38 @@ class TagValuesConnection { CreateTagValue( google::cloud::resourcemanager::v3::CreateTagValueRequest const& request); + virtual StatusOr CreateTagValue( + ExperimentalTag, NoAwaitTag, + google::cloud::resourcemanager::v3::CreateTagValueRequest const& request); + + virtual future> + CreateTagValue(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> UpdateTagValue( google::cloud::resourcemanager::v3::UpdateTagValueRequest const& request); + virtual StatusOr UpdateTagValue( + ExperimentalTag, NoAwaitTag, + google::cloud::resourcemanager::v3::UpdateTagValueRequest const& request); + + virtual future> + UpdateTagValue(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> DeleteTagValue( google::cloud::resourcemanager::v3::DeleteTagValueRequest const& request); + virtual StatusOr DeleteTagValue( + ExperimentalTag, NoAwaitTag, + google::cloud::resourcemanager::v3::DeleteTagValueRequest const& request); + + virtual future> + DeleteTagValue(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StatusOr GetIamPolicy( google::iam::v1::GetIamPolicyRequest const& request); diff --git a/google/cloud/resourcesettings/v1/resource_settings_connection.h b/google/cloud/resourcesettings/v1/resource_settings_connection.h index 56027ef817795..67c511ed5f525 100644 --- a/google/cloud/resourcesettings/v1/resource_settings_connection.h +++ b/google/cloud/resourcesettings/v1/resource_settings_connection.h @@ -22,6 +22,7 @@ #include "google/cloud/resourcesettings/v1/internal/resource_settings_retry_traits.h" #include "google/cloud/resourcesettings/v1/resource_settings_connection_idempotency_policy.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/internal/retry_policy_impl.h" #include "google/cloud/options.h" #include "google/cloud/status_or.h" diff --git a/google/cloud/retail/v2/analytics_connection.cc b/google/cloud/retail/v2/analytics_connection.cc index d629d2157e84a..e088434ae53ff 100644 --- a/google/cloud/retail/v2/analytics_connection.cc +++ b/google/cloud/retail/v2/analytics_connection.cc @@ -45,6 +45,22 @@ AnalyticsServiceConnection::ExportAnalyticsMetrics( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +AnalyticsServiceConnection::ExportAnalyticsMetrics( + ExperimentalTag, NoAwaitTag, + google::cloud::retail::v2::ExportAnalyticsMetricsRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +AnalyticsServiceConnection::ExportAnalyticsMetrics( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + std::shared_ptr MakeAnalyticsServiceConnection( Options options) { internal::CheckExpectedOptions> ExportAnalyticsMetrics( google::cloud::retail::v2::ExportAnalyticsMetricsRequest const& request); + + virtual StatusOr ExportAnalyticsMetrics( + ExperimentalTag, NoAwaitTag, + google::cloud::retail::v2::ExportAnalyticsMetricsRequest const& request); + + virtual future< + StatusOr> + ExportAnalyticsMetrics(ExperimentalTag, + google::longrunning::Operation const& operation); }; /** diff --git a/google/cloud/retail/v2/catalog_connection.h b/google/cloud/retail/v2/catalog_connection.h index e3cd7cea13719..b29c81cb8d44d 100644 --- a/google/cloud/retail/v2/catalog_connection.h +++ b/google/cloud/retail/v2/catalog_connection.h @@ -22,6 +22,7 @@ #include "google/cloud/retail/v2/catalog_connection_idempotency_policy.h" #include "google/cloud/retail/v2/internal/catalog_retry_traits.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/internal/retry_policy_impl.h" #include "google/cloud/options.h" #include "google/cloud/status_or.h" diff --git a/google/cloud/retail/v2/completion_connection.cc b/google/cloud/retail/v2/completion_connection.cc index 3c8b004624d41..a6c3ecd1ffc9e 100644 --- a/google/cloud/retail/v2/completion_connection.cc +++ b/google/cloud/retail/v2/completion_connection.cc @@ -51,6 +51,22 @@ CompletionServiceConnection::ImportCompletionData( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +CompletionServiceConnection::ImportCompletionData( + ExperimentalTag, NoAwaitTag, + google::cloud::retail::v2::ImportCompletionDataRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +CompletionServiceConnection::ImportCompletionData( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + std::shared_ptr MakeCompletionServiceConnection( Options options) { internal::CheckExpectedOptions> ImportCompletionData( google::cloud::retail::v2::ImportCompletionDataRequest const& request); + + virtual StatusOr ImportCompletionData( + ExperimentalTag, NoAwaitTag, + google::cloud::retail::v2::ImportCompletionDataRequest const& request); + + virtual future< + StatusOr> + ImportCompletionData(ExperimentalTag, + google::longrunning::Operation const& operation); }; /** diff --git a/google/cloud/retail/v2/control_connection.h b/google/cloud/retail/v2/control_connection.h index b0897ce6f3d90..45fef1106cd0d 100644 --- a/google/cloud/retail/v2/control_connection.h +++ b/google/cloud/retail/v2/control_connection.h @@ -22,6 +22,7 @@ #include "google/cloud/retail/v2/control_connection_idempotency_policy.h" #include "google/cloud/retail/v2/internal/control_retry_traits.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/internal/retry_policy_impl.h" #include "google/cloud/options.h" #include "google/cloud/status_or.h" diff --git a/google/cloud/retail/v2/internal/analytics_connection_impl.cc b/google/cloud/retail/v2/internal/analytics_connection_impl.cc index d6d5718819f58..c8ab1c8f1296c 100644 --- a/google/cloud/retail/v2/internal/analytics_connection_impl.cc +++ b/google/cloud/retail/v2/internal/analytics_connection_impl.cc @@ -103,6 +103,59 @@ AnalyticsServiceConnectionImpl::ExportAnalyticsMetrics( polling_policy(*current), __func__); } +StatusOr +AnalyticsServiceConnectionImpl::ExportAnalyticsMetrics( + ExperimentalTag, NoAwaitTag, + google::cloud::retail::v2::ExportAnalyticsMetricsRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->ExportAnalyticsMetrics(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::retail::v2::ExportAnalyticsMetricsRequest const& + request) { + return stub_->ExportAnalyticsMetrics(context, options, request); + }, + *current, request, __func__); +} + +future> +AnalyticsServiceConnectionImpl::ExportAnalyticsMetrics( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to ExportAnalyticsMetrics", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::retail::v2::ExportAnalyticsMetricsResponse>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::retail::v2::ExportAnalyticsMetricsResponse>, + polling_policy(*current), __func__); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace retail_v2_internal } // namespace cloud diff --git a/google/cloud/retail/v2/internal/analytics_connection_impl.h b/google/cloud/retail/v2/internal/analytics_connection_impl.h index ddaebc90e9ff7..126c710532d26 100644 --- a/google/cloud/retail/v2/internal/analytics_connection_impl.h +++ b/google/cloud/retail/v2/internal/analytics_connection_impl.h @@ -56,6 +56,16 @@ class AnalyticsServiceConnectionImpl google::cloud::retail::v2::ExportAnalyticsMetricsRequest const& request) override; + StatusOr ExportAnalyticsMetrics( + ExperimentalTag, NoAwaitTag, + google::cloud::retail::v2::ExportAnalyticsMetricsRequest const& request) + override; + + future> + ExportAnalyticsMetrics( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + private: std::unique_ptr background_; std::shared_ptr stub_; diff --git a/google/cloud/retail/v2/internal/analytics_tracing_connection.cc b/google/cloud/retail/v2/internal/analytics_tracing_connection.cc index 25aba64f0ee94..98af8c2cb4ecf 100644 --- a/google/cloud/retail/v2/internal/analytics_tracing_connection.cc +++ b/google/cloud/retail/v2/internal/analytics_tracing_connection.cc @@ -42,6 +42,28 @@ AnalyticsServiceTracingConnection::ExportAnalyticsMetrics( child_->ExportAnalyticsMetrics(request)); } +StatusOr +AnalyticsServiceTracingConnection::ExportAnalyticsMetrics( + ExperimentalTag, NoAwaitTag, + google::cloud::retail::v2::ExportAnalyticsMetricsRequest const& request) { + auto span = internal::MakeSpan( + "retail_v2::AnalyticsServiceConnection::ExportAnalyticsMetrics"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->ExportAnalyticsMetrics(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +AnalyticsServiceTracingConnection::ExportAnalyticsMetrics( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "retail_v2::AnalyticsServiceConnection::ExportAnalyticsMetrics"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->ExportAnalyticsMetrics( + ExperimentalTag{}, operation)); +} + #endif // GOOGLE_CLOUD_CPP_HAVE_OPENTELEMETRY std::shared_ptr diff --git a/google/cloud/retail/v2/internal/analytics_tracing_connection.h b/google/cloud/retail/v2/internal/analytics_tracing_connection.h index 36f6ade8dcb1e..d96f2b3f3955b 100644 --- a/google/cloud/retail/v2/internal/analytics_tracing_connection.h +++ b/google/cloud/retail/v2/internal/analytics_tracing_connection.h @@ -45,6 +45,16 @@ class AnalyticsServiceTracingConnection google::cloud::retail::v2::ExportAnalyticsMetricsRequest const& request) override; + StatusOr ExportAnalyticsMetrics( + ExperimentalTag, NoAwaitTag, + google::cloud::retail::v2::ExportAnalyticsMetricsRequest const& request) + override; + + future> + ExportAnalyticsMetrics( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + private: std::shared_ptr child_; }; diff --git a/google/cloud/retail/v2/internal/completion_connection_impl.cc b/google/cloud/retail/v2/internal/completion_connection_impl.cc index 62eff593bccd0..ff65ce1c7a0b2 100644 --- a/google/cloud/retail/v2/internal/completion_connection_impl.cc +++ b/google/cloud/retail/v2/internal/completion_connection_impl.cc @@ -119,6 +119,59 @@ CompletionServiceConnectionImpl::ImportCompletionData( polling_policy(*current), __func__); } +StatusOr +CompletionServiceConnectionImpl::ImportCompletionData( + ExperimentalTag, NoAwaitTag, + google::cloud::retail::v2::ImportCompletionDataRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->ImportCompletionData(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::retail::v2::ImportCompletionDataRequest const& + request) { + return stub_->ImportCompletionData(context, options, request); + }, + *current, request, __func__); +} + +future> +CompletionServiceConnectionImpl::ImportCompletionData( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to ImportCompletionData", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::retail::v2::ImportCompletionDataResponse>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::retail::v2::ImportCompletionDataResponse>, + polling_policy(*current), __func__); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace retail_v2_internal } // namespace cloud diff --git a/google/cloud/retail/v2/internal/completion_connection_impl.h b/google/cloud/retail/v2/internal/completion_connection_impl.h index 7a42d431b7cf6..515e970157de0 100644 --- a/google/cloud/retail/v2/internal/completion_connection_impl.h +++ b/google/cloud/retail/v2/internal/completion_connection_impl.h @@ -59,6 +59,16 @@ class CompletionServiceConnectionImpl google::cloud::retail::v2::ImportCompletionDataRequest const& request) override; + StatusOr ImportCompletionData( + ExperimentalTag, NoAwaitTag, + google::cloud::retail::v2::ImportCompletionDataRequest const& request) + override; + + future> + ImportCompletionData( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + private: std::unique_ptr background_; std::shared_ptr stub_; diff --git a/google/cloud/retail/v2/internal/completion_tracing_connection.cc b/google/cloud/retail/v2/internal/completion_tracing_connection.cc index 21288d6a9271e..70d39038d589a 100644 --- a/google/cloud/retail/v2/internal/completion_tracing_connection.cc +++ b/google/cloud/retail/v2/internal/completion_tracing_connection.cc @@ -51,6 +51,28 @@ CompletionServiceTracingConnection::ImportCompletionData( child_->ImportCompletionData(request)); } +StatusOr +CompletionServiceTracingConnection::ImportCompletionData( + ExperimentalTag, NoAwaitTag, + google::cloud::retail::v2::ImportCompletionDataRequest const& request) { + auto span = internal::MakeSpan( + "retail_v2::CompletionServiceConnection::ImportCompletionData"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->ImportCompletionData(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +CompletionServiceTracingConnection::ImportCompletionData( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "retail_v2::CompletionServiceConnection::ImportCompletionData"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->ImportCompletionData( + ExperimentalTag{}, operation)); +} + #endif // GOOGLE_CLOUD_CPP_HAVE_OPENTELEMETRY std::shared_ptr diff --git a/google/cloud/retail/v2/internal/completion_tracing_connection.h b/google/cloud/retail/v2/internal/completion_tracing_connection.h index fcf0588c7b493..d1e4024b98090 100644 --- a/google/cloud/retail/v2/internal/completion_tracing_connection.h +++ b/google/cloud/retail/v2/internal/completion_tracing_connection.h @@ -48,6 +48,16 @@ class CompletionServiceTracingConnection google::cloud::retail::v2::ImportCompletionDataRequest const& request) override; + StatusOr ImportCompletionData( + ExperimentalTag, NoAwaitTag, + google::cloud::retail::v2::ImportCompletionDataRequest const& request) + override; + + future> + ImportCompletionData( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + private: std::shared_ptr child_; }; diff --git a/google/cloud/retail/v2/internal/model_connection_impl.cc b/google/cloud/retail/v2/internal/model_connection_impl.cc index 4c585fb3fcc55..0e5365299795d 100644 --- a/google/cloud/retail/v2/internal/model_connection_impl.cc +++ b/google/cloud/retail/v2/internal/model_connection_impl.cc @@ -102,6 +102,57 @@ ModelServiceConnectionImpl::CreateModel( polling_policy(*current), __func__); } +StatusOr +ModelServiceConnectionImpl::CreateModel( + ExperimentalTag, NoAwaitTag, + google::cloud::retail::v2::CreateModelRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateModel(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::retail::v2::CreateModelRequest const& request) { + return stub_->CreateModel(context, options, request); + }, + *current, request, __func__); +} + +future> +ModelServiceConnectionImpl::CreateModel( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to CreateModel", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::retail::v2::Model>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::retail::v2::Model>, + polling_policy(*current), __func__); +} + StatusOr ModelServiceConnectionImpl::GetModel( google::cloud::retail::v2::GetModelRequest const& request) { auto current = google::cloud::internal::SaveCurrentOptions(); @@ -241,6 +292,57 @@ ModelServiceConnectionImpl::TuneModel( polling_policy(*current), __func__); } +StatusOr ModelServiceConnectionImpl::TuneModel( + ExperimentalTag, NoAwaitTag, + google::cloud::retail::v2::TuneModelRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->TuneModel(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::retail::v2::TuneModelRequest const& request) { + return stub_->TuneModel(context, options, request); + }, + *current, request, __func__); +} + +future> +ModelServiceConnectionImpl::TuneModel( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to TuneModel", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::retail::v2::TuneModelResponse>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::retail::v2::TuneModelResponse>, + polling_policy(*current), __func__); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace retail_v2_internal } // namespace cloud diff --git a/google/cloud/retail/v2/internal/model_connection_impl.h b/google/cloud/retail/v2/internal/model_connection_impl.h index c12c0330ea095..2d8ee43509d2a 100644 --- a/google/cloud/retail/v2/internal/model_connection_impl.h +++ b/google/cloud/retail/v2/internal/model_connection_impl.h @@ -54,6 +54,14 @@ class ModelServiceConnectionImpl : public retail_v2::ModelServiceConnection { future> CreateModel( google::cloud::retail::v2::CreateModelRequest const& request) override; + StatusOr CreateModel( + ExperimentalTag, NoAwaitTag, + google::cloud::retail::v2::CreateModelRequest const& request) override; + + future> CreateModel( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetModel( google::cloud::retail::v2::GetModelRequest const& request) override; @@ -75,6 +83,14 @@ class ModelServiceConnectionImpl : public retail_v2::ModelServiceConnection { future> TuneModel( google::cloud::retail::v2::TuneModelRequest const& request) override; + StatusOr TuneModel( + ExperimentalTag, NoAwaitTag, + google::cloud::retail::v2::TuneModelRequest const& request) override; + + future> TuneModel( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + private: std::unique_ptr background_; std::shared_ptr stub_; diff --git a/google/cloud/retail/v2/internal/model_tracing_connection.cc b/google/cloud/retail/v2/internal/model_tracing_connection.cc index be9a3bd271ce6..e64a9d5c86eda 100644 --- a/google/cloud/retail/v2/internal/model_tracing_connection.cc +++ b/google/cloud/retail/v2/internal/model_tracing_connection.cc @@ -42,6 +42,27 @@ ModelServiceTracingConnection::CreateModel( return internal::EndSpan(std::move(span), child_->CreateModel(request)); } +StatusOr +ModelServiceTracingConnection::CreateModel( + ExperimentalTag, NoAwaitTag, + google::cloud::retail::v2::CreateModelRequest const& request) { + auto span = + internal::MakeSpan("retail_v2::ModelServiceConnection::CreateModel"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->CreateModel(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +ModelServiceTracingConnection::CreateModel( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = + internal::MakeSpan("retail_v2::ModelServiceConnection::CreateModel"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->CreateModel(ExperimentalTag{}, operation)); +} + StatusOr ModelServiceTracingConnection::GetModel( google::cloud::retail::v2::GetModelRequest const& request) { @@ -105,6 +126,27 @@ ModelServiceTracingConnection::TuneModel( return internal::EndSpan(std::move(span), child_->TuneModel(request)); } +StatusOr +ModelServiceTracingConnection::TuneModel( + ExperimentalTag, NoAwaitTag, + google::cloud::retail::v2::TuneModelRequest const& request) { + auto span = + internal::MakeSpan("retail_v2::ModelServiceConnection::TuneModel"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->TuneModel(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +ModelServiceTracingConnection::TuneModel( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = + internal::MakeSpan("retail_v2::ModelServiceConnection::TuneModel"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->TuneModel(ExperimentalTag{}, operation)); +} + #endif // GOOGLE_CLOUD_CPP_HAVE_OPENTELEMETRY std::shared_ptr diff --git a/google/cloud/retail/v2/internal/model_tracing_connection.h b/google/cloud/retail/v2/internal/model_tracing_connection.h index 59bbeab25b518..d1bcb2643c47c 100644 --- a/google/cloud/retail/v2/internal/model_tracing_connection.h +++ b/google/cloud/retail/v2/internal/model_tracing_connection.h @@ -42,6 +42,14 @@ class ModelServiceTracingConnection : public retail_v2::ModelServiceConnection { future> CreateModel( google::cloud::retail::v2::CreateModelRequest const& request) override; + StatusOr CreateModel( + ExperimentalTag, NoAwaitTag, + google::cloud::retail::v2::CreateModelRequest const& request) override; + + future> CreateModel( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetModel( google::cloud::retail::v2::GetModelRequest const& request) override; @@ -63,6 +71,14 @@ class ModelServiceTracingConnection : public retail_v2::ModelServiceConnection { future> TuneModel( google::cloud::retail::v2::TuneModelRequest const& request) override; + StatusOr TuneModel( + ExperimentalTag, NoAwaitTag, + google::cloud::retail::v2::TuneModelRequest const& request) override; + + future> TuneModel( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + private: std::shared_ptr child_; }; diff --git a/google/cloud/retail/v2/internal/product_connection_impl.cc b/google/cloud/retail/v2/internal/product_connection_impl.cc index 47437c82fac95..aff177e54660c 100644 --- a/google/cloud/retail/v2/internal/product_connection_impl.cc +++ b/google/cloud/retail/v2/internal/product_connection_impl.cc @@ -192,6 +192,58 @@ ProductServiceConnectionImpl::PurgeProducts( polling_policy(*current), __func__); } +StatusOr +ProductServiceConnectionImpl::PurgeProducts( + ExperimentalTag, NoAwaitTag, + google::cloud::retail::v2::PurgeProductsRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->PurgeProducts(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::retail::v2::PurgeProductsRequest const& request) { + return stub_->PurgeProducts(context, options, request); + }, + *current, request, __func__); +} + +future> +ProductServiceConnectionImpl::PurgeProducts( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to PurgeProducts", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::retail::v2::PurgeProductsResponse>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::retail::v2::PurgeProductsResponse>, + polling_policy(*current), __func__); +} + future> ProductServiceConnectionImpl::ImportProducts( google::cloud::retail::v2::ImportProductsRequest const& request) { @@ -231,6 +283,58 @@ ProductServiceConnectionImpl::ImportProducts( polling_policy(*current), __func__); } +StatusOr +ProductServiceConnectionImpl::ImportProducts( + ExperimentalTag, NoAwaitTag, + google::cloud::retail::v2::ImportProductsRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->ImportProducts(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::retail::v2::ImportProductsRequest const& request) { + return stub_->ImportProducts(context, options, request); + }, + *current, request, __func__); +} + +future> +ProductServiceConnectionImpl::ImportProducts( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to ImportProducts", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::retail::v2::ImportProductsResponse>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::retail::v2::ImportProductsResponse>, + polling_policy(*current), __func__); +} + future> ProductServiceConnectionImpl::SetInventory( google::cloud::retail::v2::SetInventoryRequest const& request) { @@ -270,6 +374,58 @@ ProductServiceConnectionImpl::SetInventory( polling_policy(*current), __func__); } +StatusOr +ProductServiceConnectionImpl::SetInventory( + ExperimentalTag, NoAwaitTag, + google::cloud::retail::v2::SetInventoryRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->SetInventory(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::retail::v2::SetInventoryRequest const& request) { + return stub_->SetInventory(context, options, request); + }, + *current, request, __func__); +} + +future> +ProductServiceConnectionImpl::SetInventory( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to SetInventory", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::retail::v2::SetInventoryResponse>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::retail::v2::SetInventoryResponse>, + polling_policy(*current), __func__); +} + future> ProductServiceConnectionImpl::AddFulfillmentPlaces( google::cloud::retail::v2::AddFulfillmentPlacesRequest const& request) { @@ -310,6 +466,60 @@ ProductServiceConnectionImpl::AddFulfillmentPlaces( polling_policy(*current), __func__); } +StatusOr +ProductServiceConnectionImpl::AddFulfillmentPlaces( + ExperimentalTag, NoAwaitTag, + google::cloud::retail::v2::AddFulfillmentPlacesRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->AddFulfillmentPlaces(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::retail::v2::AddFulfillmentPlacesRequest const& + request) { + return stub_->AddFulfillmentPlaces(context, options, request); + }, + *current, request, __func__); +} + +future> +ProductServiceConnectionImpl::AddFulfillmentPlaces( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to AddFulfillmentPlaces", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::retail::v2::AddFulfillmentPlacesResponse>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::retail::v2::AddFulfillmentPlacesResponse>, + polling_policy(*current), __func__); +} + future> ProductServiceConnectionImpl::RemoveFulfillmentPlaces( google::cloud::retail::v2::RemoveFulfillmentPlacesRequest const& request) { @@ -350,6 +560,60 @@ ProductServiceConnectionImpl::RemoveFulfillmentPlaces( polling_policy(*current), __func__); } +StatusOr +ProductServiceConnectionImpl::RemoveFulfillmentPlaces( + ExperimentalTag, NoAwaitTag, + google::cloud::retail::v2::RemoveFulfillmentPlacesRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->RemoveFulfillmentPlaces(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::retail::v2::RemoveFulfillmentPlacesRequest const& + request) { + return stub_->RemoveFulfillmentPlaces(context, options, request); + }, + *current, request, __func__); +} + +future> +ProductServiceConnectionImpl::RemoveFulfillmentPlaces( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to RemoveFulfillmentPlaces", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::retail::v2::RemoveFulfillmentPlacesResponse>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::retail::v2::RemoveFulfillmentPlacesResponse>, + polling_policy(*current), __func__); +} + future> ProductServiceConnectionImpl::AddLocalInventories( google::cloud::retail::v2::AddLocalInventoriesRequest const& request) { @@ -390,6 +654,60 @@ ProductServiceConnectionImpl::AddLocalInventories( polling_policy(*current), __func__); } +StatusOr +ProductServiceConnectionImpl::AddLocalInventories( + ExperimentalTag, NoAwaitTag, + google::cloud::retail::v2::AddLocalInventoriesRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->AddLocalInventories(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::retail::v2::AddLocalInventoriesRequest const& + request) { + return stub_->AddLocalInventories(context, options, request); + }, + *current, request, __func__); +} + +future> +ProductServiceConnectionImpl::AddLocalInventories( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to AddLocalInventories", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::retail::v2::AddLocalInventoriesResponse>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::retail::v2::AddLocalInventoriesResponse>, + polling_policy(*current), __func__); +} + future> ProductServiceConnectionImpl::RemoveLocalInventories( google::cloud::retail::v2::RemoveLocalInventoriesRequest const& request) { @@ -430,6 +748,60 @@ ProductServiceConnectionImpl::RemoveLocalInventories( polling_policy(*current), __func__); } +StatusOr +ProductServiceConnectionImpl::RemoveLocalInventories( + ExperimentalTag, NoAwaitTag, + google::cloud::retail::v2::RemoveLocalInventoriesRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->RemoveLocalInventories(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::retail::v2::RemoveLocalInventoriesRequest const& + request) { + return stub_->RemoveLocalInventories(context, options, request); + }, + *current, request, __func__); +} + +future> +ProductServiceConnectionImpl::RemoveLocalInventories( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to RemoveLocalInventories", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::retail::v2::RemoveLocalInventoriesResponse>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::retail::v2::RemoveLocalInventoriesResponse>, + polling_policy(*current), __func__); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace retail_v2_internal } // namespace cloud diff --git a/google/cloud/retail/v2/internal/product_connection_impl.h b/google/cloud/retail/v2/internal/product_connection_impl.h index 88c83ca373492..07e82300306de 100644 --- a/google/cloud/retail/v2/internal/product_connection_impl.h +++ b/google/cloud/retail/v2/internal/product_connection_impl.h @@ -71,34 +71,97 @@ class ProductServiceConnectionImpl PurgeProducts( google::cloud::retail::v2::PurgeProductsRequest const& request) override; + StatusOr PurgeProducts( + ExperimentalTag, NoAwaitTag, + google::cloud::retail::v2::PurgeProductsRequest const& request) override; + + future> + PurgeProducts(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ImportProducts( google::cloud::retail::v2::ImportProductsRequest const& request) override; + StatusOr ImportProducts( + ExperimentalTag, NoAwaitTag, + google::cloud::retail::v2::ImportProductsRequest const& request) override; + + future> + ImportProducts(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> SetInventory( google::cloud::retail::v2::SetInventoryRequest const& request) override; + StatusOr SetInventory( + ExperimentalTag, NoAwaitTag, + google::cloud::retail::v2::SetInventoryRequest const& request) override; + + future> + SetInventory(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> AddFulfillmentPlaces( google::cloud::retail::v2::AddFulfillmentPlacesRequest const& request) override; + StatusOr AddFulfillmentPlaces( + ExperimentalTag, NoAwaitTag, + google::cloud::retail::v2::AddFulfillmentPlacesRequest const& request) + override; + + future> + AddFulfillmentPlaces( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> RemoveFulfillmentPlaces( google::cloud::retail::v2::RemoveFulfillmentPlacesRequest const& request) override; + StatusOr RemoveFulfillmentPlaces( + ExperimentalTag, NoAwaitTag, + google::cloud::retail::v2::RemoveFulfillmentPlacesRequest const& request) + override; + + future> + RemoveFulfillmentPlaces( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> AddLocalInventories( google::cloud::retail::v2::AddLocalInventoriesRequest const& request) override; + StatusOr AddLocalInventories( + ExperimentalTag, NoAwaitTag, + google::cloud::retail::v2::AddLocalInventoriesRequest const& request) + override; + + future> + AddLocalInventories(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> RemoveLocalInventories( google::cloud::retail::v2::RemoveLocalInventoriesRequest const& request) override; + StatusOr RemoveLocalInventories( + ExperimentalTag, NoAwaitTag, + google::cloud::retail::v2::RemoveLocalInventoriesRequest const& request) + override; + + future> + RemoveLocalInventories( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + private: std::unique_ptr background_; std::shared_ptr stub_; diff --git a/google/cloud/retail/v2/internal/product_tracing_connection.cc b/google/cloud/retail/v2/internal/product_tracing_connection.cc index be359924e4812..ade33a8ce5135 100644 --- a/google/cloud/retail/v2/internal/product_tracing_connection.cc +++ b/google/cloud/retail/v2/internal/product_tracing_connection.cc @@ -88,6 +88,27 @@ ProductServiceTracingConnection::PurgeProducts( return internal::EndSpan(std::move(span), child_->PurgeProducts(request)); } +StatusOr +ProductServiceTracingConnection::PurgeProducts( + ExperimentalTag, NoAwaitTag, + google::cloud::retail::v2::PurgeProductsRequest const& request) { + auto span = + internal::MakeSpan("retail_v2::ProductServiceConnection::PurgeProducts"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->PurgeProducts(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +ProductServiceTracingConnection::PurgeProducts( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = + internal::MakeSpan("retail_v2::ProductServiceConnection::PurgeProducts"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->PurgeProducts(ExperimentalTag{}, operation)); +} + future> ProductServiceTracingConnection::ImportProducts( google::cloud::retail::v2::ImportProductsRequest const& request) { @@ -97,6 +118,27 @@ ProductServiceTracingConnection::ImportProducts( return internal::EndSpan(std::move(span), child_->ImportProducts(request)); } +StatusOr +ProductServiceTracingConnection::ImportProducts( + ExperimentalTag, NoAwaitTag, + google::cloud::retail::v2::ImportProductsRequest const& request) { + auto span = + internal::MakeSpan("retail_v2::ProductServiceConnection::ImportProducts"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->ImportProducts(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +ProductServiceTracingConnection::ImportProducts( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = + internal::MakeSpan("retail_v2::ProductServiceConnection::ImportProducts"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->ImportProducts(ExperimentalTag{}, operation)); +} + future> ProductServiceTracingConnection::SetInventory( google::cloud::retail::v2::SetInventoryRequest const& request) { @@ -106,6 +148,27 @@ ProductServiceTracingConnection::SetInventory( return internal::EndSpan(std::move(span), child_->SetInventory(request)); } +StatusOr +ProductServiceTracingConnection::SetInventory( + ExperimentalTag, NoAwaitTag, + google::cloud::retail::v2::SetInventoryRequest const& request) { + auto span = + internal::MakeSpan("retail_v2::ProductServiceConnection::SetInventory"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->SetInventory(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +ProductServiceTracingConnection::SetInventory( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = + internal::MakeSpan("retail_v2::ProductServiceConnection::SetInventory"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->SetInventory(ExperimentalTag{}, operation)); +} + future> ProductServiceTracingConnection::AddFulfillmentPlaces( google::cloud::retail::v2::AddFulfillmentPlacesRequest const& request) { @@ -116,6 +179,28 @@ ProductServiceTracingConnection::AddFulfillmentPlaces( child_->AddFulfillmentPlaces(request)); } +StatusOr +ProductServiceTracingConnection::AddFulfillmentPlaces( + ExperimentalTag, NoAwaitTag, + google::cloud::retail::v2::AddFulfillmentPlacesRequest const& request) { + auto span = internal::MakeSpan( + "retail_v2::ProductServiceConnection::AddFulfillmentPlaces"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->AddFulfillmentPlaces(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +ProductServiceTracingConnection::AddFulfillmentPlaces( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "retail_v2::ProductServiceConnection::AddFulfillmentPlaces"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->AddFulfillmentPlaces( + ExperimentalTag{}, operation)); +} + future> ProductServiceTracingConnection::RemoveFulfillmentPlaces( google::cloud::retail::v2::RemoveFulfillmentPlacesRequest const& request) { @@ -126,6 +211,28 @@ ProductServiceTracingConnection::RemoveFulfillmentPlaces( child_->RemoveFulfillmentPlaces(request)); } +StatusOr +ProductServiceTracingConnection::RemoveFulfillmentPlaces( + ExperimentalTag, NoAwaitTag, + google::cloud::retail::v2::RemoveFulfillmentPlacesRequest const& request) { + auto span = internal::MakeSpan( + "retail_v2::ProductServiceConnection::RemoveFulfillmentPlaces"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->RemoveFulfillmentPlaces(ExperimentalTag{}, NoAwaitTag{}, + request)); +} + +future> +ProductServiceTracingConnection::RemoveFulfillmentPlaces( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "retail_v2::ProductServiceConnection::RemoveFulfillmentPlaces"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->RemoveFulfillmentPlaces( + ExperimentalTag{}, operation)); +} + future> ProductServiceTracingConnection::AddLocalInventories( google::cloud::retail::v2::AddLocalInventoriesRequest const& request) { @@ -136,6 +243,28 @@ ProductServiceTracingConnection::AddLocalInventories( child_->AddLocalInventories(request)); } +StatusOr +ProductServiceTracingConnection::AddLocalInventories( + ExperimentalTag, NoAwaitTag, + google::cloud::retail::v2::AddLocalInventoriesRequest const& request) { + auto span = internal::MakeSpan( + "retail_v2::ProductServiceConnection::AddLocalInventories"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->AddLocalInventories(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +ProductServiceTracingConnection::AddLocalInventories( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "retail_v2::ProductServiceConnection::AddLocalInventories"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->AddLocalInventories( + ExperimentalTag{}, operation)); +} + future> ProductServiceTracingConnection::RemoveLocalInventories( google::cloud::retail::v2::RemoveLocalInventoriesRequest const& request) { @@ -146,6 +275,28 @@ ProductServiceTracingConnection::RemoveLocalInventories( child_->RemoveLocalInventories(request)); } +StatusOr +ProductServiceTracingConnection::RemoveLocalInventories( + ExperimentalTag, NoAwaitTag, + google::cloud::retail::v2::RemoveLocalInventoriesRequest const& request) { + auto span = internal::MakeSpan( + "retail_v2::ProductServiceConnection::RemoveLocalInventories"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->RemoveLocalInventories(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +ProductServiceTracingConnection::RemoveLocalInventories( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "retail_v2::ProductServiceConnection::RemoveLocalInventories"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->RemoveLocalInventories( + ExperimentalTag{}, operation)); +} + #endif // GOOGLE_CLOUD_CPP_HAVE_OPENTELEMETRY std::shared_ptr diff --git a/google/cloud/retail/v2/internal/product_tracing_connection.h b/google/cloud/retail/v2/internal/product_tracing_connection.h index 35b6f81dad2ab..13aa68b11de74 100644 --- a/google/cloud/retail/v2/internal/product_tracing_connection.h +++ b/google/cloud/retail/v2/internal/product_tracing_connection.h @@ -59,34 +59,97 @@ class ProductServiceTracingConnection PurgeProducts( google::cloud::retail::v2::PurgeProductsRequest const& request) override; + StatusOr PurgeProducts( + ExperimentalTag, NoAwaitTag, + google::cloud::retail::v2::PurgeProductsRequest const& request) override; + + future> + PurgeProducts(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ImportProducts( google::cloud::retail::v2::ImportProductsRequest const& request) override; + StatusOr ImportProducts( + ExperimentalTag, NoAwaitTag, + google::cloud::retail::v2::ImportProductsRequest const& request) override; + + future> + ImportProducts(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> SetInventory( google::cloud::retail::v2::SetInventoryRequest const& request) override; + StatusOr SetInventory( + ExperimentalTag, NoAwaitTag, + google::cloud::retail::v2::SetInventoryRequest const& request) override; + + future> + SetInventory(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> AddFulfillmentPlaces( google::cloud::retail::v2::AddFulfillmentPlacesRequest const& request) override; + StatusOr AddFulfillmentPlaces( + ExperimentalTag, NoAwaitTag, + google::cloud::retail::v2::AddFulfillmentPlacesRequest const& request) + override; + + future> + AddFulfillmentPlaces( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> RemoveFulfillmentPlaces( google::cloud::retail::v2::RemoveFulfillmentPlacesRequest const& request) override; + StatusOr RemoveFulfillmentPlaces( + ExperimentalTag, NoAwaitTag, + google::cloud::retail::v2::RemoveFulfillmentPlacesRequest const& request) + override; + + future> + RemoveFulfillmentPlaces( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> AddLocalInventories( google::cloud::retail::v2::AddLocalInventoriesRequest const& request) override; + StatusOr AddLocalInventories( + ExperimentalTag, NoAwaitTag, + google::cloud::retail::v2::AddLocalInventoriesRequest const& request) + override; + + future> + AddLocalInventories(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> RemoveLocalInventories( google::cloud::retail::v2::RemoveLocalInventoriesRequest const& request) override; + StatusOr RemoveLocalInventories( + ExperimentalTag, NoAwaitTag, + google::cloud::retail::v2::RemoveLocalInventoriesRequest const& request) + override; + + future> + RemoveLocalInventories( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + private: std::shared_ptr child_; }; diff --git a/google/cloud/retail/v2/internal/user_event_connection_impl.cc b/google/cloud/retail/v2/internal/user_event_connection_impl.cc index 04897dc200f49..de592e1d8bd10 100644 --- a/google/cloud/retail/v2/internal/user_event_connection_impl.cc +++ b/google/cloud/retail/v2/internal/user_event_connection_impl.cc @@ -131,6 +131,58 @@ UserEventServiceConnectionImpl::PurgeUserEvents( polling_policy(*current), __func__); } +StatusOr +UserEventServiceConnectionImpl::PurgeUserEvents( + ExperimentalTag, NoAwaitTag, + google::cloud::retail::v2::PurgeUserEventsRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->PurgeUserEvents(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::retail::v2::PurgeUserEventsRequest const& request) { + return stub_->PurgeUserEvents(context, options, request); + }, + *current, request, __func__); +} + +future> +UserEventServiceConnectionImpl::PurgeUserEvents( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to PurgeUserEvents", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::retail::v2::PurgeUserEventsResponse>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::retail::v2::PurgeUserEventsResponse>, + polling_policy(*current), __func__); +} + future> UserEventServiceConnectionImpl::ImportUserEvents( google::cloud::retail::v2::ImportUserEventsRequest const& request) { @@ -170,6 +222,59 @@ UserEventServiceConnectionImpl::ImportUserEvents( polling_policy(*current), __func__); } +StatusOr +UserEventServiceConnectionImpl::ImportUserEvents( + ExperimentalTag, NoAwaitTag, + google::cloud::retail::v2::ImportUserEventsRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->ImportUserEvents(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::retail::v2::ImportUserEventsRequest const& request) { + return stub_->ImportUserEvents(context, options, request); + }, + *current, request, __func__); +} + +future> +UserEventServiceConnectionImpl::ImportUserEvents( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to ImportUserEvents", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::retail::v2::ImportUserEventsResponse>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::retail::v2::ImportUserEventsResponse>, + polling_policy(*current), __func__); +} + future> UserEventServiceConnectionImpl::RejoinUserEvents( google::cloud::retail::v2::RejoinUserEventsRequest const& request) { @@ -209,6 +314,60 @@ UserEventServiceConnectionImpl::RejoinUserEvents( polling_policy(*current), __func__); } +StatusOr +UserEventServiceConnectionImpl::RejoinUserEvents( + ExperimentalTag, NoAwaitTag, + google::cloud::retail::v2::RejoinUserEventsRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->RejoinUserEvents(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::retail::v2::RejoinUserEventsRequest const& request) { + return stub_->RejoinUserEvents(context, options, request); + }, + *current, request, __func__); +} + +future> +UserEventServiceConnectionImpl::RejoinUserEvents( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to RejoinUserEvents", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::retail::v2::RejoinUserEventsResponse>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::retail::v2::RejoinUserEventsResponse>, + polling_policy(*current), __func__); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace retail_v2_internal } // namespace cloud diff --git a/google/cloud/retail/v2/internal/user_event_connection_impl.h b/google/cloud/retail/v2/internal/user_event_connection_impl.h index 97dd5dc34c39f..5a332ae33228a 100644 --- a/google/cloud/retail/v2/internal/user_event_connection_impl.h +++ b/google/cloud/retail/v2/internal/user_event_connection_impl.h @@ -62,14 +62,41 @@ class UserEventServiceConnectionImpl PurgeUserEvents(google::cloud::retail::v2::PurgeUserEventsRequest const& request) override; + StatusOr PurgeUserEvents( + ExperimentalTag, NoAwaitTag, + google::cloud::retail::v2::PurgeUserEventsRequest const& request) + override; + + future> + PurgeUserEvents(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ImportUserEvents(google::cloud::retail::v2::ImportUserEventsRequest const& request) override; + StatusOr ImportUserEvents( + ExperimentalTag, NoAwaitTag, + google::cloud::retail::v2::ImportUserEventsRequest const& request) + override; + + future> + ImportUserEvents(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> RejoinUserEvents(google::cloud::retail::v2::RejoinUserEventsRequest const& request) override; + StatusOr RejoinUserEvents( + ExperimentalTag, NoAwaitTag, + google::cloud::retail::v2::RejoinUserEventsRequest const& request) + override; + + future> + RejoinUserEvents(ExperimentalTag, + google::longrunning::Operation const& operation) override; + private: std::unique_ptr background_; std::shared_ptr stub_; diff --git a/google/cloud/retail/v2/internal/user_event_tracing_connection.cc b/google/cloud/retail/v2/internal/user_event_tracing_connection.cc index 53e4547cf57ed..8b847519af652 100644 --- a/google/cloud/retail/v2/internal/user_event_tracing_connection.cc +++ b/google/cloud/retail/v2/internal/user_event_tracing_connection.cc @@ -59,6 +59,27 @@ UserEventServiceTracingConnection::PurgeUserEvents( return internal::EndSpan(std::move(span), child_->PurgeUserEvents(request)); } +StatusOr +UserEventServiceTracingConnection::PurgeUserEvents( + ExperimentalTag, NoAwaitTag, + google::cloud::retail::v2::PurgeUserEventsRequest const& request) { + auto span = internal::MakeSpan( + "retail_v2::UserEventServiceConnection::PurgeUserEvents"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->PurgeUserEvents(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +UserEventServiceTracingConnection::PurgeUserEvents( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "retail_v2::UserEventServiceConnection::PurgeUserEvents"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->PurgeUserEvents(ExperimentalTag{}, operation)); +} + future> UserEventServiceTracingConnection::ImportUserEvents( google::cloud::retail::v2::ImportUserEventsRequest const& request) { @@ -68,6 +89,28 @@ UserEventServiceTracingConnection::ImportUserEvents( return internal::EndSpan(std::move(span), child_->ImportUserEvents(request)); } +StatusOr +UserEventServiceTracingConnection::ImportUserEvents( + ExperimentalTag, NoAwaitTag, + google::cloud::retail::v2::ImportUserEventsRequest const& request) { + auto span = internal::MakeSpan( + "retail_v2::UserEventServiceConnection::ImportUserEvents"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->ImportUserEvents(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +UserEventServiceTracingConnection::ImportUserEvents( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "retail_v2::UserEventServiceConnection::ImportUserEvents"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->ImportUserEvents(ExperimentalTag{}, operation)); +} + future> UserEventServiceTracingConnection::RejoinUserEvents( google::cloud::retail::v2::RejoinUserEventsRequest const& request) { @@ -77,6 +120,28 @@ UserEventServiceTracingConnection::RejoinUserEvents( return internal::EndSpan(std::move(span), child_->RejoinUserEvents(request)); } +StatusOr +UserEventServiceTracingConnection::RejoinUserEvents( + ExperimentalTag, NoAwaitTag, + google::cloud::retail::v2::RejoinUserEventsRequest const& request) { + auto span = internal::MakeSpan( + "retail_v2::UserEventServiceConnection::RejoinUserEvents"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->RejoinUserEvents(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +UserEventServiceTracingConnection::RejoinUserEvents( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "retail_v2::UserEventServiceConnection::RejoinUserEvents"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->RejoinUserEvents(ExperimentalTag{}, operation)); +} + #endif // GOOGLE_CLOUD_CPP_HAVE_OPENTELEMETRY std::shared_ptr diff --git a/google/cloud/retail/v2/internal/user_event_tracing_connection.h b/google/cloud/retail/v2/internal/user_event_tracing_connection.h index 206214c9c5a3a..a6e31fdc914e4 100644 --- a/google/cloud/retail/v2/internal/user_event_tracing_connection.h +++ b/google/cloud/retail/v2/internal/user_event_tracing_connection.h @@ -51,14 +51,41 @@ class UserEventServiceTracingConnection PurgeUserEvents(google::cloud::retail::v2::PurgeUserEventsRequest const& request) override; + StatusOr PurgeUserEvents( + ExperimentalTag, NoAwaitTag, + google::cloud::retail::v2::PurgeUserEventsRequest const& request) + override; + + future> + PurgeUserEvents(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ImportUserEvents(google::cloud::retail::v2::ImportUserEventsRequest const& request) override; + StatusOr ImportUserEvents( + ExperimentalTag, NoAwaitTag, + google::cloud::retail::v2::ImportUserEventsRequest const& request) + override; + + future> + ImportUserEvents(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> RejoinUserEvents(google::cloud::retail::v2::RejoinUserEventsRequest const& request) override; + StatusOr RejoinUserEvents( + ExperimentalTag, NoAwaitTag, + google::cloud::retail::v2::RejoinUserEventsRequest const& request) + override; + + future> + RejoinUserEvents(ExperimentalTag, + google::longrunning::Operation const& operation) override; + private: std::shared_ptr child_; }; diff --git a/google/cloud/retail/v2/mocks/mock_analytics_connection.h b/google/cloud/retail/v2/mocks/mock_analytics_connection.h index be826efbfb7cc..887768c00ac3f 100644 --- a/google/cloud/retail/v2/mocks/mock_analytics_connection.h +++ b/google/cloud/retail/v2/mocks/mock_analytics_connection.h @@ -53,6 +53,19 @@ class MockAnalyticsServiceConnection ExportAnalyticsMetrics, (google::cloud::retail::v2::ExportAnalyticsMetricsRequest const& request), (override)); + + MOCK_METHOD( + StatusOr, ExportAnalyticsMetrics, + (ExperimentalTag, NoAwaitTag, + google::cloud::retail::v2::ExportAnalyticsMetricsRequest const& request), + (override)); + + MOCK_METHOD( + future< + StatusOr>, + ExportAnalyticsMetrics, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); }; GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END diff --git a/google/cloud/retail/v2/mocks/mock_completion_connection.h b/google/cloud/retail/v2/mocks/mock_completion_connection.h index af7fd864dac6c..6a0ac3c4de428 100644 --- a/google/cloud/retail/v2/mocks/mock_completion_connection.h +++ b/google/cloud/retail/v2/mocks/mock_completion_connection.h @@ -57,6 +57,18 @@ class MockCompletionServiceConnection ImportCompletionData, (google::cloud::retail::v2::ImportCompletionDataRequest const& request), (override)); + + MOCK_METHOD( + StatusOr, ImportCompletionData, + (ExperimentalTag, NoAwaitTag, + google::cloud::retail::v2::ImportCompletionDataRequest const& request), + (override)); + + MOCK_METHOD( + future>, + ImportCompletionData, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); }; GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END diff --git a/google/cloud/retail/v2/mocks/mock_model_connection.h b/google/cloud/retail/v2/mocks/mock_model_connection.h index 0da551206a5c7..f2c5ae1e5d3de 100644 --- a/google/cloud/retail/v2/mocks/mock_model_connection.h +++ b/google/cloud/retail/v2/mocks/mock_model_connection.h @@ -50,6 +50,16 @@ class MockModelServiceConnection : public retail_v2::ModelServiceConnection { (google::cloud::retail::v2::CreateModelRequest const& request), (override)); + MOCK_METHOD(StatusOr, CreateModel, + (ExperimentalTag, NoAwaitTag, + google::cloud::retail::v2::CreateModelRequest const& request), + (override)); + + MOCK_METHOD(future>, CreateModel, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(StatusOr, GetModel, (google::cloud::retail::v2::GetModelRequest const& request), (override)); @@ -78,6 +88,17 @@ class MockModelServiceConnection : public retail_v2::ModelServiceConnection { TuneModel, (google::cloud::retail::v2::TuneModelRequest const& request), (override)); + + MOCK_METHOD(StatusOr, TuneModel, + (ExperimentalTag, NoAwaitTag, + google::cloud::retail::v2::TuneModelRequest const& request), + (override)); + + MOCK_METHOD(future>, + TuneModel, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); }; GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END diff --git a/google/cloud/retail/v2/mocks/mock_product_connection.h b/google/cloud/retail/v2/mocks/mock_product_connection.h index 1950cc33ea8df..ae71b0b4d0ac0 100644 --- a/google/cloud/retail/v2/mocks/mock_product_connection.h +++ b/google/cloud/retail/v2/mocks/mock_product_connection.h @@ -73,23 +73,68 @@ class MockProductServiceConnection (google::cloud::retail::v2::PurgeProductsRequest const& request), (override)); + MOCK_METHOD(StatusOr, PurgeProducts, + (ExperimentalTag, NoAwaitTag, + google::cloud::retail::v2::PurgeProductsRequest const& request), + (override)); + + MOCK_METHOD( + future>, + PurgeProducts, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, ImportProducts, (google::cloud::retail::v2::ImportProductsRequest const& request), (override)); + MOCK_METHOD(StatusOr, ImportProducts, + (ExperimentalTag, NoAwaitTag, + google::cloud::retail::v2::ImportProductsRequest const& request), + (override)); + + MOCK_METHOD( + future>, + ImportProducts, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, SetInventory, (google::cloud::retail::v2::SetInventoryRequest const& request), (override)); + MOCK_METHOD(StatusOr, SetInventory, + (ExperimentalTag, NoAwaitTag, + google::cloud::retail::v2::SetInventoryRequest const& request), + (override)); + + MOCK_METHOD(future>, + SetInventory, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, AddFulfillmentPlaces, (google::cloud::retail::v2::AddFulfillmentPlacesRequest const& request), (override)); + MOCK_METHOD( + StatusOr, AddFulfillmentPlaces, + (ExperimentalTag, NoAwaitTag, + google::cloud::retail::v2::AddFulfillmentPlacesRequest const& request), + (override)); + + MOCK_METHOD( + future>, + AddFulfillmentPlaces, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future< StatusOr>, @@ -98,18 +143,56 @@ class MockProductServiceConnection request), (override)); + MOCK_METHOD(StatusOr, RemoveFulfillmentPlaces, + (ExperimentalTag, NoAwaitTag, + google::cloud::retail::v2::RemoveFulfillmentPlacesRequest const& + request), + (override)); + + MOCK_METHOD( + future< + StatusOr>, + RemoveFulfillmentPlaces, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, AddLocalInventories, (google::cloud::retail::v2::AddLocalInventoriesRequest const& request), (override)); + MOCK_METHOD( + StatusOr, AddLocalInventories, + (ExperimentalTag, NoAwaitTag, + google::cloud::retail::v2::AddLocalInventoriesRequest const& request), + (override)); + + MOCK_METHOD( + future>, + AddLocalInventories, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future< StatusOr>, RemoveLocalInventories, (google::cloud::retail::v2::RemoveLocalInventoriesRequest const& request), (override)); + + MOCK_METHOD( + StatusOr, RemoveLocalInventories, + (ExperimentalTag, NoAwaitTag, + google::cloud::retail::v2::RemoveLocalInventoriesRequest const& request), + (override)); + + MOCK_METHOD( + future< + StatusOr>, + RemoveLocalInventories, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); }; GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END diff --git a/google/cloud/retail/v2/mocks/mock_user_event_connection.h b/google/cloud/retail/v2/mocks/mock_user_event_connection.h index d42e0d4dd49cc..fd2ce43c134a3 100644 --- a/google/cloud/retail/v2/mocks/mock_user_event_connection.h +++ b/google/cloud/retail/v2/mocks/mock_user_event_connection.h @@ -62,17 +62,53 @@ class MockUserEventServiceConnection (google::cloud::retail::v2::PurgeUserEventsRequest const& request), (override)); + MOCK_METHOD( + StatusOr, PurgeUserEvents, + (ExperimentalTag, NoAwaitTag, + google::cloud::retail::v2::PurgeUserEventsRequest const& request), + (override)); + + MOCK_METHOD( + future>, + PurgeUserEvents, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, ImportUserEvents, (google::cloud::retail::v2::ImportUserEventsRequest const& request), (override)); + MOCK_METHOD( + StatusOr, ImportUserEvents, + (ExperimentalTag, NoAwaitTag, + google::cloud::retail::v2::ImportUserEventsRequest const& request), + (override)); + + MOCK_METHOD( + future>, + ImportUserEvents, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, RejoinUserEvents, (google::cloud::retail::v2::RejoinUserEventsRequest const& request), (override)); + + MOCK_METHOD( + StatusOr, RejoinUserEvents, + (ExperimentalTag, NoAwaitTag, + google::cloud::retail::v2::RejoinUserEventsRequest const& request), + (override)); + + MOCK_METHOD( + future>, + RejoinUserEvents, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); }; GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END diff --git a/google/cloud/retail/v2/model_connection.cc b/google/cloud/retail/v2/model_connection.cc index 5b9dd84d83ff0..9399732a78a02 100644 --- a/google/cloud/retail/v2/model_connection.cc +++ b/google/cloud/retail/v2/model_connection.cc @@ -46,6 +46,21 @@ ModelServiceConnection::CreateModel( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr ModelServiceConnection::CreateModel( + ExperimentalTag, NoAwaitTag, + google::cloud::retail::v2::CreateModelRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +ModelServiceConnection::CreateModel(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr ModelServiceConnection::GetModel( google::cloud::retail::v2::GetModelRequest const&) { return Status(StatusCode::kUnimplemented, "not implemented"); @@ -87,6 +102,21 @@ ModelServiceConnection::TuneModel( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr ModelServiceConnection::TuneModel( + ExperimentalTag, NoAwaitTag, + google::cloud::retail::v2::TuneModelRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +ModelServiceConnection::TuneModel(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + std::shared_ptr MakeModelServiceConnection( Options options) { internal::CheckExpectedOptions> CreateModel( google::cloud::retail::v2::CreateModelRequest const& request); + virtual StatusOr CreateModel( + ExperimentalTag, NoAwaitTag, + google::cloud::retail::v2::CreateModelRequest const& request); + + virtual future> CreateModel( + ExperimentalTag, google::longrunning::Operation const& operation); + virtual StatusOr GetModel( google::cloud::retail::v2::GetModelRequest const& request); @@ -208,6 +217,13 @@ class ModelServiceConnection { virtual future> TuneModel(google::cloud::retail::v2::TuneModelRequest const& request); + + virtual StatusOr TuneModel( + ExperimentalTag, NoAwaitTag, + google::cloud::retail::v2::TuneModelRequest const& request); + + virtual future> + TuneModel(ExperimentalTag, google::longrunning::Operation const& operation); }; /** diff --git a/google/cloud/retail/v2/prediction_connection.h b/google/cloud/retail/v2/prediction_connection.h index 9289fc79a05b4..e2ee3ff428de9 100644 --- a/google/cloud/retail/v2/prediction_connection.h +++ b/google/cloud/retail/v2/prediction_connection.h @@ -22,6 +22,7 @@ #include "google/cloud/retail/v2/internal/prediction_retry_traits.h" #include "google/cloud/retail/v2/prediction_connection_idempotency_policy.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/internal/retry_policy_impl.h" #include "google/cloud/options.h" #include "google/cloud/status_or.h" diff --git a/google/cloud/retail/v2/product_connection.cc b/google/cloud/retail/v2/product_connection.cc index 8b560b60fc8d6..898a268a4c8bd 100644 --- a/google/cloud/retail/v2/product_connection.cc +++ b/google/cloud/retail/v2/product_connection.cc @@ -77,6 +77,22 @@ ProductServiceConnection::PurgeProducts( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +ProductServiceConnection::PurgeProducts( + ExperimentalTag, NoAwaitTag, + google::cloud::retail::v2::PurgeProductsRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +ProductServiceConnection::PurgeProducts(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> ProductServiceConnection::ImportProducts( google::cloud::retail::v2::ImportProductsRequest const&) { @@ -85,6 +101,22 @@ ProductServiceConnection::ImportProducts( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +ProductServiceConnection::ImportProducts( + ExperimentalTag, NoAwaitTag, + google::cloud::retail::v2::ImportProductsRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +ProductServiceConnection::ImportProducts( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> ProductServiceConnection::SetInventory( google::cloud::retail::v2::SetInventoryRequest const&) { @@ -93,6 +125,21 @@ ProductServiceConnection::SetInventory( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr ProductServiceConnection::SetInventory( + ExperimentalTag, NoAwaitTag, + google::cloud::retail::v2::SetInventoryRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +ProductServiceConnection::SetInventory(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> ProductServiceConnection::AddFulfillmentPlaces( google::cloud::retail::v2::AddFulfillmentPlacesRequest const&) { @@ -101,6 +148,22 @@ ProductServiceConnection::AddFulfillmentPlaces( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +ProductServiceConnection::AddFulfillmentPlaces( + ExperimentalTag, NoAwaitTag, + google::cloud::retail::v2::AddFulfillmentPlacesRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +ProductServiceConnection::AddFulfillmentPlaces( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> ProductServiceConnection::RemoveFulfillmentPlaces( google::cloud::retail::v2::RemoveFulfillmentPlacesRequest const&) { @@ -109,6 +172,22 @@ ProductServiceConnection::RemoveFulfillmentPlaces( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +ProductServiceConnection::RemoveFulfillmentPlaces( + ExperimentalTag, NoAwaitTag, + google::cloud::retail::v2::RemoveFulfillmentPlacesRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +ProductServiceConnection::RemoveFulfillmentPlaces( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> ProductServiceConnection::AddLocalInventories( google::cloud::retail::v2::AddLocalInventoriesRequest const&) { @@ -117,6 +196,22 @@ ProductServiceConnection::AddLocalInventories( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +ProductServiceConnection::AddLocalInventories( + ExperimentalTag, NoAwaitTag, + google::cloud::retail::v2::AddLocalInventoriesRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +ProductServiceConnection::AddLocalInventories( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> ProductServiceConnection::RemoveLocalInventories( google::cloud::retail::v2::RemoveLocalInventoriesRequest const&) { @@ -125,6 +220,22 @@ ProductServiceConnection::RemoveLocalInventories( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +ProductServiceConnection::RemoveLocalInventories( + ExperimentalTag, NoAwaitTag, + google::cloud::retail::v2::RemoveLocalInventoriesRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +ProductServiceConnection::RemoveLocalInventories( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + std::shared_ptr MakeProductServiceConnection( Options options) { internal::CheckExpectedOptions> PurgeProducts(google::cloud::retail::v2::PurgeProductsRequest const& request); + virtual StatusOr PurgeProducts( + ExperimentalTag, NoAwaitTag, + google::cloud::retail::v2::PurgeProductsRequest const& request); + + virtual future> + PurgeProducts(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> ImportProducts( google::cloud::retail::v2::ImportProductsRequest const& request); + virtual StatusOr ImportProducts( + ExperimentalTag, NoAwaitTag, + google::cloud::retail::v2::ImportProductsRequest const& request); + + virtual future> + ImportProducts(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> SetInventory(google::cloud::retail::v2::SetInventoryRequest const& request); + virtual StatusOr SetInventory( + ExperimentalTag, NoAwaitTag, + google::cloud::retail::v2::SetInventoryRequest const& request); + + virtual future> + SetInventory(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future< StatusOr> AddFulfillmentPlaces( google::cloud::retail::v2::AddFulfillmentPlacesRequest const& request); + virtual StatusOr AddFulfillmentPlaces( + ExperimentalTag, NoAwaitTag, + google::cloud::retail::v2::AddFulfillmentPlacesRequest const& request); + + virtual future< + StatusOr> + AddFulfillmentPlaces(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future< StatusOr> RemoveFulfillmentPlaces( google::cloud::retail::v2::RemoveFulfillmentPlacesRequest const& request); + virtual StatusOr RemoveFulfillmentPlaces( + ExperimentalTag, NoAwaitTag, + google::cloud::retail::v2::RemoveFulfillmentPlacesRequest const& request); + + virtual future< + StatusOr> + RemoveFulfillmentPlaces(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future< StatusOr> AddLocalInventories( google::cloud::retail::v2::AddLocalInventoriesRequest const& request); + virtual StatusOr AddLocalInventories( + ExperimentalTag, NoAwaitTag, + google::cloud::retail::v2::AddLocalInventoriesRequest const& request); + + virtual future< + StatusOr> + AddLocalInventories(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future< StatusOr> RemoveLocalInventories( google::cloud::retail::v2::RemoveLocalInventoriesRequest const& request); + + virtual StatusOr RemoveLocalInventories( + ExperimentalTag, NoAwaitTag, + google::cloud::retail::v2::RemoveLocalInventoriesRequest const& request); + + virtual future< + StatusOr> + RemoveLocalInventories(ExperimentalTag, + google::longrunning::Operation const& operation); }; /** diff --git a/google/cloud/retail/v2/search_connection.h b/google/cloud/retail/v2/search_connection.h index 18a5d2ee8ba74..a7ffb29c75704 100644 --- a/google/cloud/retail/v2/search_connection.h +++ b/google/cloud/retail/v2/search_connection.h @@ -22,6 +22,7 @@ #include "google/cloud/retail/v2/internal/search_retry_traits.h" #include "google/cloud/retail/v2/search_connection_idempotency_policy.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/internal/retry_policy_impl.h" #include "google/cloud/options.h" #include "google/cloud/status_or.h" diff --git a/google/cloud/retail/v2/serving_config_connection.h b/google/cloud/retail/v2/serving_config_connection.h index bedf93387bec7..5e6d534e31ff4 100644 --- a/google/cloud/retail/v2/serving_config_connection.h +++ b/google/cloud/retail/v2/serving_config_connection.h @@ -22,6 +22,7 @@ #include "google/cloud/retail/v2/internal/serving_config_retry_traits.h" #include "google/cloud/retail/v2/serving_config_connection_idempotency_policy.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/internal/retry_policy_impl.h" #include "google/cloud/options.h" #include "google/cloud/status_or.h" diff --git a/google/cloud/retail/v2/user_event_connection.cc b/google/cloud/retail/v2/user_event_connection.cc index 36d289ec6b0ad..441bede1f24dd 100644 --- a/google/cloud/retail/v2/user_event_connection.cc +++ b/google/cloud/retail/v2/user_event_connection.cc @@ -56,6 +56,22 @@ UserEventServiceConnection::PurgeUserEvents( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +UserEventServiceConnection::PurgeUserEvents( + ExperimentalTag, NoAwaitTag, + google::cloud::retail::v2::PurgeUserEventsRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +UserEventServiceConnection::PurgeUserEvents( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> UserEventServiceConnection::ImportUserEvents( google::cloud::retail::v2::ImportUserEventsRequest const&) { @@ -64,6 +80,22 @@ UserEventServiceConnection::ImportUserEvents( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +UserEventServiceConnection::ImportUserEvents( + ExperimentalTag, NoAwaitTag, + google::cloud::retail::v2::ImportUserEventsRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +UserEventServiceConnection::ImportUserEvents( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> UserEventServiceConnection::RejoinUserEvents( google::cloud::retail::v2::RejoinUserEventsRequest const&) { @@ -72,6 +104,22 @@ UserEventServiceConnection::RejoinUserEvents( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +UserEventServiceConnection::RejoinUserEvents( + ExperimentalTag, NoAwaitTag, + google::cloud::retail::v2::RejoinUserEventsRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +UserEventServiceConnection::RejoinUserEvents( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + std::shared_ptr MakeUserEventServiceConnection( Options options) { internal::CheckExpectedOptions PurgeUserEvents( + ExperimentalTag, NoAwaitTag, + google::cloud::retail::v2::PurgeUserEventsRequest const& request); + + virtual future> + PurgeUserEvents(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> ImportUserEvents( google::cloud::retail::v2::ImportUserEventsRequest const& request); + virtual StatusOr ImportUserEvents( + ExperimentalTag, NoAwaitTag, + google::cloud::retail::v2::ImportUserEventsRequest const& request); + + virtual future> + ImportUserEvents(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> RejoinUserEvents( google::cloud::retail::v2::RejoinUserEventsRequest const& request); + + virtual StatusOr RejoinUserEvents( + ExperimentalTag, NoAwaitTag, + google::cloud::retail::v2::RejoinUserEventsRequest const& request); + + virtual future> + RejoinUserEvents(ExperimentalTag, + google::longrunning::Operation const& operation); }; /** diff --git a/google/cloud/run/v2/executions_connection.cc b/google/cloud/run/v2/executions_connection.cc index dec5a561d0481..6af80b70ee075 100644 --- a/google/cloud/run/v2/executions_connection.cc +++ b/google/cloud/run/v2/executions_connection.cc @@ -59,6 +59,21 @@ ExecutionsConnection::DeleteExecution( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr ExecutionsConnection::DeleteExecution( + ExperimentalTag, NoAwaitTag, + google::cloud::run::v2::DeleteExecutionRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +ExecutionsConnection::DeleteExecution(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> ExecutionsConnection::CancelExecution( google::cloud::run::v2::CancelExecutionRequest const&) { @@ -67,6 +82,21 @@ ExecutionsConnection::CancelExecution( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr ExecutionsConnection::CancelExecution( + ExperimentalTag, NoAwaitTag, + google::cloud::run::v2::CancelExecutionRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +ExecutionsConnection::CancelExecution(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + std::shared_ptr MakeExecutionsConnection( Options options) { internal::CheckExpectedOptions> DeleteExecution( google::cloud::run::v2::DeleteExecutionRequest const& request); + virtual StatusOr DeleteExecution( + ExperimentalTag, NoAwaitTag, + google::cloud::run::v2::DeleteExecutionRequest const& request); + + virtual future> DeleteExecution( + ExperimentalTag, google::longrunning::Operation const& operation); + virtual future> CancelExecution( google::cloud::run::v2::CancelExecutionRequest const& request); + + virtual StatusOr CancelExecution( + ExperimentalTag, NoAwaitTag, + google::cloud::run::v2::CancelExecutionRequest const& request); + + virtual future> CancelExecution( + ExperimentalTag, google::longrunning::Operation const& operation); }; /** diff --git a/google/cloud/run/v2/internal/executions_connection_impl.cc b/google/cloud/run/v2/internal/executions_connection_impl.cc index 5171b3e74ecef..8b496e5222d3a 100644 --- a/google/cloud/run/v2/internal/executions_connection_impl.cc +++ b/google/cloud/run/v2/internal/executions_connection_impl.cc @@ -149,6 +149,56 @@ ExecutionsConnectionImpl::DeleteExecution( polling_policy(*current), __func__); } +StatusOr +ExecutionsConnectionImpl::DeleteExecution( + ExperimentalTag, NoAwaitTag, + google::cloud::run::v2::DeleteExecutionRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteExecution(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::run::v2::DeleteExecutionRequest const& request) { + return stub_->DeleteExecution(context, options, request); + }, + *current, request, __func__); +} + +future> +ExecutionsConnectionImpl::DeleteExecution( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata().Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteExecution", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::run::v2::Execution>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::run::v2::Execution>, + polling_policy(*current), __func__); +} + future> ExecutionsConnectionImpl::CancelExecution( google::cloud::run::v2::CancelExecutionRequest const& request) { @@ -188,6 +238,56 @@ ExecutionsConnectionImpl::CancelExecution( polling_policy(*current), __func__); } +StatusOr +ExecutionsConnectionImpl::CancelExecution( + ExperimentalTag, NoAwaitTag, + google::cloud::run::v2::CancelExecutionRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CancelExecution(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::run::v2::CancelExecutionRequest const& request) { + return stub_->CancelExecution(context, options, request); + }, + *current, request, __func__); +} + +future> +ExecutionsConnectionImpl::CancelExecution( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata().Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to CancelExecution", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::run::v2::Execution>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::run::v2::Execution>, + polling_policy(*current), __func__); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace run_v2_internal } // namespace cloud diff --git a/google/cloud/run/v2/internal/executions_connection_impl.h b/google/cloud/run/v2/internal/executions_connection_impl.h index 79be1cd5dcfd0..0816e362bdba0 100644 --- a/google/cloud/run/v2/internal/executions_connection_impl.h +++ b/google/cloud/run/v2/internal/executions_connection_impl.h @@ -59,9 +59,25 @@ class ExecutionsConnectionImpl : public run_v2::ExecutionsConnection { future> DeleteExecution( google::cloud::run::v2::DeleteExecutionRequest const& request) override; + StatusOr DeleteExecution( + ExperimentalTag, NoAwaitTag, + google::cloud::run::v2::DeleteExecutionRequest const& request) override; + + future> DeleteExecution( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> CancelExecution( google::cloud::run::v2::CancelExecutionRequest const& request) override; + StatusOr CancelExecution( + ExperimentalTag, NoAwaitTag, + google::cloud::run::v2::CancelExecutionRequest const& request) override; + + future> CancelExecution( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + private: std::unique_ptr background_; std::shared_ptr stub_; diff --git a/google/cloud/run/v2/internal/executions_tracing_connection.cc b/google/cloud/run/v2/internal/executions_tracing_connection.cc index ec67c0c98c64a..8765c9c9c5261 100644 --- a/google/cloud/run/v2/internal/executions_tracing_connection.cc +++ b/google/cloud/run/v2/internal/executions_tracing_connection.cc @@ -61,6 +61,27 @@ ExecutionsTracingConnection::DeleteExecution( return internal::EndSpan(std::move(span), child_->DeleteExecution(request)); } +StatusOr +ExecutionsTracingConnection::DeleteExecution( + ExperimentalTag, NoAwaitTag, + google::cloud::run::v2::DeleteExecutionRequest const& request) { + auto span = + internal::MakeSpan("run_v2::ExecutionsConnection::DeleteExecution"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->DeleteExecution(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +ExecutionsTracingConnection::DeleteExecution( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = + internal::MakeSpan("run_v2::ExecutionsConnection::DeleteExecution"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->DeleteExecution(ExperimentalTag{}, operation)); +} + future> ExecutionsTracingConnection::CancelExecution( google::cloud::run::v2::CancelExecutionRequest const& request) { @@ -70,6 +91,27 @@ ExecutionsTracingConnection::CancelExecution( return internal::EndSpan(std::move(span), child_->CancelExecution(request)); } +StatusOr +ExecutionsTracingConnection::CancelExecution( + ExperimentalTag, NoAwaitTag, + google::cloud::run::v2::CancelExecutionRequest const& request) { + auto span = + internal::MakeSpan("run_v2::ExecutionsConnection::CancelExecution"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->CancelExecution(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +ExecutionsTracingConnection::CancelExecution( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = + internal::MakeSpan("run_v2::ExecutionsConnection::CancelExecution"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->CancelExecution(ExperimentalTag{}, operation)); +} + #endif // GOOGLE_CLOUD_CPP_HAVE_OPENTELEMETRY std::shared_ptr MakeExecutionsTracingConnection( diff --git a/google/cloud/run/v2/internal/executions_tracing_connection.h b/google/cloud/run/v2/internal/executions_tracing_connection.h index f3ce19deb0b5c..135f0d57f5691 100644 --- a/google/cloud/run/v2/internal/executions_tracing_connection.h +++ b/google/cloud/run/v2/internal/executions_tracing_connection.h @@ -48,9 +48,25 @@ class ExecutionsTracingConnection : public run_v2::ExecutionsConnection { future> DeleteExecution( google::cloud::run::v2::DeleteExecutionRequest const& request) override; + StatusOr DeleteExecution( + ExperimentalTag, NoAwaitTag, + google::cloud::run::v2::DeleteExecutionRequest const& request) override; + + future> DeleteExecution( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> CancelExecution( google::cloud::run::v2::CancelExecutionRequest const& request) override; + StatusOr CancelExecution( + ExperimentalTag, NoAwaitTag, + google::cloud::run::v2::CancelExecutionRequest const& request) override; + + future> CancelExecution( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + private: std::shared_ptr child_; }; diff --git a/google/cloud/run/v2/internal/jobs_connection_impl.cc b/google/cloud/run/v2/internal/jobs_connection_impl.cc index 807a3ab0f8530..42acfc41b713b 100644 --- a/google/cloud/run/v2/internal/jobs_connection_impl.cc +++ b/google/cloud/run/v2/internal/jobs_connection_impl.cc @@ -96,6 +96,54 @@ future> JobsConnectionImpl::CreateJob( polling_policy(*current), __func__); } +StatusOr JobsConnectionImpl::CreateJob( + ExperimentalTag, NoAwaitTag, + google::cloud::run::v2::CreateJobRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateJob(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::run::v2::CreateJobRequest const& request) { + return stub_->CreateJob(context, options, request); + }, + *current, request, __func__); +} + +future> JobsConnectionImpl::CreateJob( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata().Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to CreateJob", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::run::v2::Job>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::run::v2::Job>, + polling_policy(*current), __func__); +} + StatusOr JobsConnectionImpl::GetJob( google::cloud::run::v2::GetJobRequest const& request) { auto current = google::cloud::internal::SaveCurrentOptions(); @@ -175,6 +223,54 @@ future> JobsConnectionImpl::UpdateJob( polling_policy(*current), __func__); } +StatusOr JobsConnectionImpl::UpdateJob( + ExperimentalTag, NoAwaitTag, + google::cloud::run::v2::UpdateJobRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UpdateJob(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::run::v2::UpdateJobRequest const& request) { + return stub_->UpdateJob(context, options, request); + }, + *current, request, __func__); +} + +future> JobsConnectionImpl::UpdateJob( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata().Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to UpdateJob", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::run::v2::Job>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::run::v2::Job>, + polling_policy(*current), __func__); +} + future> JobsConnectionImpl::DeleteJob( google::cloud::run::v2::DeleteJobRequest const& request) { auto current = google::cloud::internal::SaveCurrentOptions(); @@ -211,6 +307,54 @@ future> JobsConnectionImpl::DeleteJob( polling_policy(*current), __func__); } +StatusOr JobsConnectionImpl::DeleteJob( + ExperimentalTag, NoAwaitTag, + google::cloud::run::v2::DeleteJobRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteJob(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::run::v2::DeleteJobRequest const& request) { + return stub_->DeleteJob(context, options, request); + }, + *current, request, __func__); +} + +future> JobsConnectionImpl::DeleteJob( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata().Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteJob", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::run::v2::Job>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::run::v2::Job>, + polling_policy(*current), __func__); +} + future> JobsConnectionImpl::RunJob( google::cloud::run::v2::RunJobRequest const& request) { auto current = google::cloud::internal::SaveCurrentOptions(); @@ -247,6 +391,54 @@ future> JobsConnectionImpl::RunJob( polling_policy(*current), __func__); } +StatusOr JobsConnectionImpl::RunJob( + ExperimentalTag, NoAwaitTag, + google::cloud::run::v2::RunJobRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->RunJob(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::run::v2::RunJobRequest const& request) { + return stub_->RunJob(context, options, request); + }, + *current, request, __func__); +} + +future> JobsConnectionImpl::RunJob( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata().Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to RunJob", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::run::v2::Execution>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::run::v2::Execution>, + polling_policy(*current), __func__); +} + StatusOr JobsConnectionImpl::GetIamPolicy( google::iam::v1::GetIamPolicyRequest const& request) { auto current = google::cloud::internal::SaveCurrentOptions(); diff --git a/google/cloud/run/v2/internal/jobs_connection_impl.h b/google/cloud/run/v2/internal/jobs_connection_impl.h index bcdd0c5cf4293..1dfb1390b61d4 100644 --- a/google/cloud/run/v2/internal/jobs_connection_impl.h +++ b/google/cloud/run/v2/internal/jobs_connection_impl.h @@ -53,6 +53,14 @@ class JobsConnectionImpl : public run_v2::JobsConnection { future> CreateJob( google::cloud::run::v2::CreateJobRequest const& request) override; + StatusOr CreateJob( + ExperimentalTag, NoAwaitTag, + google::cloud::run::v2::CreateJobRequest const& request) override; + + future> CreateJob( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetJob( google::cloud::run::v2::GetJobRequest const& request) override; @@ -62,12 +70,36 @@ class JobsConnectionImpl : public run_v2::JobsConnection { future> UpdateJob( google::cloud::run::v2::UpdateJobRequest const& request) override; + StatusOr UpdateJob( + ExperimentalTag, NoAwaitTag, + google::cloud::run::v2::UpdateJobRequest const& request) override; + + future> UpdateJob( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteJob( google::cloud::run::v2::DeleteJobRequest const& request) override; + StatusOr DeleteJob( + ExperimentalTag, NoAwaitTag, + google::cloud::run::v2::DeleteJobRequest const& request) override; + + future> DeleteJob( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> RunJob( google::cloud::run::v2::RunJobRequest const& request) override; + StatusOr RunJob( + ExperimentalTag, NoAwaitTag, + google::cloud::run::v2::RunJobRequest const& request) override; + + future> RunJob( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetIamPolicy( google::iam::v1::GetIamPolicyRequest const& request) override; diff --git a/google/cloud/run/v2/internal/jobs_tracing_connection.cc b/google/cloud/run/v2/internal/jobs_tracing_connection.cc index f3b5f79486ec4..f0a5d9af10daf 100644 --- a/google/cloud/run/v2/internal/jobs_tracing_connection.cc +++ b/google/cloud/run/v2/internal/jobs_tracing_connection.cc @@ -40,6 +40,23 @@ future> JobsTracingConnection::CreateJob( return internal::EndSpan(std::move(span), child_->CreateJob(request)); } +StatusOr JobsTracingConnection::CreateJob( + ExperimentalTag, NoAwaitTag, + google::cloud::run::v2::CreateJobRequest const& request) { + auto span = internal::MakeSpan("run_v2::JobsConnection::CreateJob"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->CreateJob(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> JobsTracingConnection::CreateJob( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan("run_v2::JobsConnection::CreateJob"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->CreateJob(ExperimentalTag{}, operation)); +} + StatusOr JobsTracingConnection::GetJob( google::cloud::run::v2::GetJobRequest const& request) { auto span = internal::MakeSpan("run_v2::JobsConnection::GetJob"); @@ -63,6 +80,23 @@ future> JobsTracingConnection::UpdateJob( return internal::EndSpan(std::move(span), child_->UpdateJob(request)); } +StatusOr JobsTracingConnection::UpdateJob( + ExperimentalTag, NoAwaitTag, + google::cloud::run::v2::UpdateJobRequest const& request) { + auto span = internal::MakeSpan("run_v2::JobsConnection::UpdateJob"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->UpdateJob(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> JobsTracingConnection::UpdateJob( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan("run_v2::JobsConnection::UpdateJob"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->UpdateJob(ExperimentalTag{}, operation)); +} + future> JobsTracingConnection::DeleteJob( google::cloud::run::v2::DeleteJobRequest const& request) { auto span = internal::MakeSpan("run_v2::JobsConnection::DeleteJob"); @@ -70,6 +104,23 @@ future> JobsTracingConnection::DeleteJob( return internal::EndSpan(std::move(span), child_->DeleteJob(request)); } +StatusOr JobsTracingConnection::DeleteJob( + ExperimentalTag, NoAwaitTag, + google::cloud::run::v2::DeleteJobRequest const& request) { + auto span = internal::MakeSpan("run_v2::JobsConnection::DeleteJob"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->DeleteJob(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> JobsTracingConnection::DeleteJob( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan("run_v2::JobsConnection::DeleteJob"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->DeleteJob(ExperimentalTag{}, operation)); +} + future> JobsTracingConnection::RunJob( google::cloud::run::v2::RunJobRequest const& request) { @@ -78,6 +129,24 @@ JobsTracingConnection::RunJob( return internal::EndSpan(std::move(span), child_->RunJob(request)); } +StatusOr JobsTracingConnection::RunJob( + ExperimentalTag, NoAwaitTag, + google::cloud::run::v2::RunJobRequest const& request) { + auto span = internal::MakeSpan("run_v2::JobsConnection::RunJob"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->RunJob(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +JobsTracingConnection::RunJob(ExperimentalTag, + google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan("run_v2::JobsConnection::RunJob"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->RunJob(ExperimentalTag{}, operation)); +} + StatusOr JobsTracingConnection::GetIamPolicy( google::iam::v1::GetIamPolicyRequest const& request) { auto span = internal::MakeSpan("run_v2::JobsConnection::GetIamPolicy"); diff --git a/google/cloud/run/v2/internal/jobs_tracing_connection.h b/google/cloud/run/v2/internal/jobs_tracing_connection.h index 56aa23bb7c87e..e07d915d30487 100644 --- a/google/cloud/run/v2/internal/jobs_tracing_connection.h +++ b/google/cloud/run/v2/internal/jobs_tracing_connection.h @@ -41,6 +41,14 @@ class JobsTracingConnection : public run_v2::JobsConnection { future> CreateJob( google::cloud::run::v2::CreateJobRequest const& request) override; + StatusOr CreateJob( + ExperimentalTag, NoAwaitTag, + google::cloud::run::v2::CreateJobRequest const& request) override; + + future> CreateJob( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetJob( google::cloud::run::v2::GetJobRequest const& request) override; @@ -50,12 +58,36 @@ class JobsTracingConnection : public run_v2::JobsConnection { future> UpdateJob( google::cloud::run::v2::UpdateJobRequest const& request) override; + StatusOr UpdateJob( + ExperimentalTag, NoAwaitTag, + google::cloud::run::v2::UpdateJobRequest const& request) override; + + future> UpdateJob( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteJob( google::cloud::run::v2::DeleteJobRequest const& request) override; + StatusOr DeleteJob( + ExperimentalTag, NoAwaitTag, + google::cloud::run::v2::DeleteJobRequest const& request) override; + + future> DeleteJob( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> RunJob( google::cloud::run::v2::RunJobRequest const& request) override; + StatusOr RunJob( + ExperimentalTag, NoAwaitTag, + google::cloud::run::v2::RunJobRequest const& request) override; + + future> RunJob( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetIamPolicy( google::iam::v1::GetIamPolicyRequest const& request) override; diff --git a/google/cloud/run/v2/internal/revisions_connection_impl.cc b/google/cloud/run/v2/internal/revisions_connection_impl.cc index 28b6e0ff592ea..4cd4922e65174 100644 --- a/google/cloud/run/v2/internal/revisions_connection_impl.cc +++ b/google/cloud/run/v2/internal/revisions_connection_impl.cc @@ -148,6 +148,56 @@ RevisionsConnectionImpl::DeleteRevision( polling_policy(*current), __func__); } +StatusOr +RevisionsConnectionImpl::DeleteRevision( + ExperimentalTag, NoAwaitTag, + google::cloud::run::v2::DeleteRevisionRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteRevision(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::run::v2::DeleteRevisionRequest const& request) { + return stub_->DeleteRevision(context, options, request); + }, + *current, request, __func__); +} + +future> +RevisionsConnectionImpl::DeleteRevision( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata().Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteRevision", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::run::v2::Revision>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::run::v2::Revision>, + polling_policy(*current), __func__); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace run_v2_internal } // namespace cloud diff --git a/google/cloud/run/v2/internal/revisions_connection_impl.h b/google/cloud/run/v2/internal/revisions_connection_impl.h index b9a87868ed77f..60c231a7ea8f3 100644 --- a/google/cloud/run/v2/internal/revisions_connection_impl.h +++ b/google/cloud/run/v2/internal/revisions_connection_impl.h @@ -59,6 +59,14 @@ class RevisionsConnectionImpl : public run_v2::RevisionsConnection { future> DeleteRevision( google::cloud::run::v2::DeleteRevisionRequest const& request) override; + StatusOr DeleteRevision( + ExperimentalTag, NoAwaitTag, + google::cloud::run::v2::DeleteRevisionRequest const& request) override; + + future> DeleteRevision( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + private: std::unique_ptr background_; std::shared_ptr stub_; diff --git a/google/cloud/run/v2/internal/revisions_tracing_connection.cc b/google/cloud/run/v2/internal/revisions_tracing_connection.cc index 7696850abd486..db0b765364a81 100644 --- a/google/cloud/run/v2/internal/revisions_tracing_connection.cc +++ b/google/cloud/run/v2/internal/revisions_tracing_connection.cc @@ -59,6 +59,25 @@ RevisionsTracingConnection::DeleteRevision( return internal::EndSpan(std::move(span), child_->DeleteRevision(request)); } +StatusOr +RevisionsTracingConnection::DeleteRevision( + ExperimentalTag, NoAwaitTag, + google::cloud::run::v2::DeleteRevisionRequest const& request) { + auto span = internal::MakeSpan("run_v2::RevisionsConnection::DeleteRevision"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->DeleteRevision(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +RevisionsTracingConnection::DeleteRevision( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan("run_v2::RevisionsConnection::DeleteRevision"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->DeleteRevision(ExperimentalTag{}, operation)); +} + #endif // GOOGLE_CLOUD_CPP_HAVE_OPENTELEMETRY std::shared_ptr MakeRevisionsTracingConnection( diff --git a/google/cloud/run/v2/internal/revisions_tracing_connection.h b/google/cloud/run/v2/internal/revisions_tracing_connection.h index 1d2c4688fb2d0..cc90b987791fa 100644 --- a/google/cloud/run/v2/internal/revisions_tracing_connection.h +++ b/google/cloud/run/v2/internal/revisions_tracing_connection.h @@ -48,6 +48,14 @@ class RevisionsTracingConnection : public run_v2::RevisionsConnection { future> DeleteRevision( google::cloud::run::v2::DeleteRevisionRequest const& request) override; + StatusOr DeleteRevision( + ExperimentalTag, NoAwaitTag, + google::cloud::run::v2::DeleteRevisionRequest const& request) override; + + future> DeleteRevision( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + private: std::shared_ptr child_; }; diff --git a/google/cloud/run/v2/internal/services_connection_impl.cc b/google/cloud/run/v2/internal/services_connection_impl.cc index eadfd154d93a2..f8ae59a145d29 100644 --- a/google/cloud/run/v2/internal/services_connection_impl.cc +++ b/google/cloud/run/v2/internal/services_connection_impl.cc @@ -101,6 +101,55 @@ ServicesConnectionImpl::CreateService( polling_policy(*current), __func__); } +StatusOr ServicesConnectionImpl::CreateService( + ExperimentalTag, NoAwaitTag, + google::cloud::run::v2::CreateServiceRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateService(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::run::v2::CreateServiceRequest const& request) { + return stub_->CreateService(context, options, request); + }, + *current, request, __func__); +} + +future> +ServicesConnectionImpl::CreateService( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata().Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to CreateService", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::run::v2::Service>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::run::v2::Service>, + polling_policy(*current), __func__); +} + StatusOr ServicesConnectionImpl::GetService( google::cloud::run::v2::GetServiceRequest const& request) { auto current = google::cloud::internal::SaveCurrentOptions(); @@ -186,6 +235,55 @@ ServicesConnectionImpl::UpdateService( polling_policy(*current), __func__); } +StatusOr ServicesConnectionImpl::UpdateService( + ExperimentalTag, NoAwaitTag, + google::cloud::run::v2::UpdateServiceRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UpdateService(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::run::v2::UpdateServiceRequest const& request) { + return stub_->UpdateService(context, options, request); + }, + *current, request, __func__); +} + +future> +ServicesConnectionImpl::UpdateService( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata().Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to UpdateService", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::run::v2::Service>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::run::v2::Service>, + polling_policy(*current), __func__); +} + future> ServicesConnectionImpl::DeleteService( google::cloud::run::v2::DeleteServiceRequest const& request) { @@ -225,6 +323,55 @@ ServicesConnectionImpl::DeleteService( polling_policy(*current), __func__); } +StatusOr ServicesConnectionImpl::DeleteService( + ExperimentalTag, NoAwaitTag, + google::cloud::run::v2::DeleteServiceRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteService(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::run::v2::DeleteServiceRequest const& request) { + return stub_->DeleteService(context, options, request); + }, + *current, request, __func__); +} + +future> +ServicesConnectionImpl::DeleteService( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata().Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteService", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::run::v2::Service>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::run::v2::Service>, + polling_policy(*current), __func__); +} + StatusOr ServicesConnectionImpl::GetIamPolicy( google::iam::v1::GetIamPolicyRequest const& request) { auto current = google::cloud::internal::SaveCurrentOptions(); diff --git a/google/cloud/run/v2/internal/services_connection_impl.h b/google/cloud/run/v2/internal/services_connection_impl.h index d51df1e6c38c7..02cf8c21f3f5e 100644 --- a/google/cloud/run/v2/internal/services_connection_impl.h +++ b/google/cloud/run/v2/internal/services_connection_impl.h @@ -53,6 +53,14 @@ class ServicesConnectionImpl : public run_v2::ServicesConnection { future> CreateService( google::cloud::run::v2::CreateServiceRequest const& request) override; + StatusOr CreateService( + ExperimentalTag, NoAwaitTag, + google::cloud::run::v2::CreateServiceRequest const& request) override; + + future> CreateService( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetService( google::cloud::run::v2::GetServiceRequest const& request) override; @@ -62,9 +70,25 @@ class ServicesConnectionImpl : public run_v2::ServicesConnection { future> UpdateService( google::cloud::run::v2::UpdateServiceRequest const& request) override; + StatusOr UpdateService( + ExperimentalTag, NoAwaitTag, + google::cloud::run::v2::UpdateServiceRequest const& request) override; + + future> UpdateService( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteService( google::cloud::run::v2::DeleteServiceRequest const& request) override; + StatusOr DeleteService( + ExperimentalTag, NoAwaitTag, + google::cloud::run::v2::DeleteServiceRequest const& request) override; + + future> DeleteService( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetIamPolicy( google::iam::v1::GetIamPolicyRequest const& request) override; diff --git a/google/cloud/run/v2/internal/services_tracing_connection.cc b/google/cloud/run/v2/internal/services_tracing_connection.cc index 3cf5db8899c48..5aae6937e0ecb 100644 --- a/google/cloud/run/v2/internal/services_tracing_connection.cc +++ b/google/cloud/run/v2/internal/services_tracing_connection.cc @@ -41,6 +41,25 @@ ServicesTracingConnection::CreateService( return internal::EndSpan(std::move(span), child_->CreateService(request)); } +StatusOr +ServicesTracingConnection::CreateService( + ExperimentalTag, NoAwaitTag, + google::cloud::run::v2::CreateServiceRequest const& request) { + auto span = internal::MakeSpan("run_v2::ServicesConnection::CreateService"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->CreateService(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +ServicesTracingConnection::CreateService( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan("run_v2::ServicesConnection::CreateService"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->CreateService(ExperimentalTag{}, operation)); +} + StatusOr ServicesTracingConnection::GetService( google::cloud::run::v2::GetServiceRequest const& request) { auto span = internal::MakeSpan("run_v2::ServicesConnection::GetService"); @@ -66,6 +85,25 @@ ServicesTracingConnection::UpdateService( return internal::EndSpan(std::move(span), child_->UpdateService(request)); } +StatusOr +ServicesTracingConnection::UpdateService( + ExperimentalTag, NoAwaitTag, + google::cloud::run::v2::UpdateServiceRequest const& request) { + auto span = internal::MakeSpan("run_v2::ServicesConnection::UpdateService"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->UpdateService(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +ServicesTracingConnection::UpdateService( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan("run_v2::ServicesConnection::UpdateService"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->UpdateService(ExperimentalTag{}, operation)); +} + future> ServicesTracingConnection::DeleteService( google::cloud::run::v2::DeleteServiceRequest const& request) { @@ -74,6 +112,25 @@ ServicesTracingConnection::DeleteService( return internal::EndSpan(std::move(span), child_->DeleteService(request)); } +StatusOr +ServicesTracingConnection::DeleteService( + ExperimentalTag, NoAwaitTag, + google::cloud::run::v2::DeleteServiceRequest const& request) { + auto span = internal::MakeSpan("run_v2::ServicesConnection::DeleteService"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->DeleteService(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +ServicesTracingConnection::DeleteService( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan("run_v2::ServicesConnection::DeleteService"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->DeleteService(ExperimentalTag{}, operation)); +} + StatusOr ServicesTracingConnection::GetIamPolicy( google::iam::v1::GetIamPolicyRequest const& request) { auto span = internal::MakeSpan("run_v2::ServicesConnection::GetIamPolicy"); diff --git a/google/cloud/run/v2/internal/services_tracing_connection.h b/google/cloud/run/v2/internal/services_tracing_connection.h index 092b5e7700a8a..9d9537c1866f0 100644 --- a/google/cloud/run/v2/internal/services_tracing_connection.h +++ b/google/cloud/run/v2/internal/services_tracing_connection.h @@ -42,6 +42,14 @@ class ServicesTracingConnection : public run_v2::ServicesConnection { future> CreateService( google::cloud::run::v2::CreateServiceRequest const& request) override; + StatusOr CreateService( + ExperimentalTag, NoAwaitTag, + google::cloud::run::v2::CreateServiceRequest const& request) override; + + future> CreateService( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetService( google::cloud::run::v2::GetServiceRequest const& request) override; @@ -51,9 +59,25 @@ class ServicesTracingConnection : public run_v2::ServicesConnection { future> UpdateService( google::cloud::run::v2::UpdateServiceRequest const& request) override; + StatusOr UpdateService( + ExperimentalTag, NoAwaitTag, + google::cloud::run::v2::UpdateServiceRequest const& request) override; + + future> UpdateService( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteService( google::cloud::run::v2::DeleteServiceRequest const& request) override; + StatusOr DeleteService( + ExperimentalTag, NoAwaitTag, + google::cloud::run::v2::DeleteServiceRequest const& request) override; + + future> DeleteService( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetIamPolicy( google::iam::v1::GetIamPolicyRequest const& request) override; diff --git a/google/cloud/run/v2/jobs_connection.cc b/google/cloud/run/v2/jobs_connection.cc index 0a804c7e9c952..c59c5e1dd3237 100644 --- a/google/cloud/run/v2/jobs_connection.cc +++ b/google/cloud/run/v2/jobs_connection.cc @@ -45,6 +45,20 @@ future> JobsConnection::CreateJob( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr JobsConnection::CreateJob( + ExperimentalTag, NoAwaitTag, + google::cloud::run::v2::CreateJobRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> JobsConnection::CreateJob( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr JobsConnection::GetJob( google::cloud::run::v2::GetJobRequest const&) { return Status(StatusCode::kUnimplemented, "not implemented"); @@ -64,6 +78,20 @@ future> JobsConnection::UpdateJob( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr JobsConnection::UpdateJob( + ExperimentalTag, NoAwaitTag, + google::cloud::run::v2::UpdateJobRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> JobsConnection::UpdateJob( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> JobsConnection::DeleteJob( google::cloud::run::v2::DeleteJobRequest const&) { return google::cloud::make_ready_future< @@ -71,6 +99,20 @@ future> JobsConnection::DeleteJob( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr JobsConnection::DeleteJob( + ExperimentalTag, NoAwaitTag, + google::cloud::run::v2::DeleteJobRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> JobsConnection::DeleteJob( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> JobsConnection::RunJob( google::cloud::run::v2::RunJobRequest const&) { return google::cloud::make_ready_future< @@ -78,6 +120,19 @@ future> JobsConnection::RunJob( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr JobsConnection::RunJob( + ExperimentalTag, NoAwaitTag, google::cloud::run::v2::RunJobRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> JobsConnection::RunJob( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr JobsConnection::GetIamPolicy( google::iam::v1::GetIamPolicyRequest const&) { return Status(StatusCode::kUnimplemented, "not implemented"); diff --git a/google/cloud/run/v2/jobs_connection.h b/google/cloud/run/v2/jobs_connection.h index 2db4449354bed..089fc6ff27107 100644 --- a/google/cloud/run/v2/jobs_connection.h +++ b/google/cloud/run/v2/jobs_connection.h @@ -22,8 +22,10 @@ #include "google/cloud/run/v2/internal/jobs_retry_traits.h" #include "google/cloud/run/v2/jobs_connection_idempotency_policy.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/internal/retry_policy_impl.h" +#include "google/cloud/no_await_tag.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" #include "google/cloud/status_or.h" @@ -184,6 +186,13 @@ class JobsConnection { virtual future> CreateJob( google::cloud::run::v2::CreateJobRequest const& request); + virtual StatusOr CreateJob( + ExperimentalTag, NoAwaitTag, + google::cloud::run::v2::CreateJobRequest const& request); + + virtual future> CreateJob( + ExperimentalTag, google::longrunning::Operation const& operation); + virtual StatusOr GetJob( google::cloud::run::v2::GetJobRequest const& request); @@ -193,12 +202,33 @@ class JobsConnection { virtual future> UpdateJob( google::cloud::run::v2::UpdateJobRequest const& request); + virtual StatusOr UpdateJob( + ExperimentalTag, NoAwaitTag, + google::cloud::run::v2::UpdateJobRequest const& request); + + virtual future> UpdateJob( + ExperimentalTag, google::longrunning::Operation const& operation); + virtual future> DeleteJob( google::cloud::run::v2::DeleteJobRequest const& request); + virtual StatusOr DeleteJob( + ExperimentalTag, NoAwaitTag, + google::cloud::run::v2::DeleteJobRequest const& request); + + virtual future> DeleteJob( + ExperimentalTag, google::longrunning::Operation const& operation); + virtual future> RunJob( google::cloud::run::v2::RunJobRequest const& request); + virtual StatusOr RunJob( + ExperimentalTag, NoAwaitTag, + google::cloud::run::v2::RunJobRequest const& request); + + virtual future> RunJob( + ExperimentalTag, google::longrunning::Operation const& operation); + virtual StatusOr GetIamPolicy( google::iam::v1::GetIamPolicyRequest const& request); diff --git a/google/cloud/run/v2/mocks/mock_executions_connection.h b/google/cloud/run/v2/mocks/mock_executions_connection.h index 7dc48c5e0a694..d0e06126918d6 100644 --- a/google/cloud/run/v2/mocks/mock_executions_connection.h +++ b/google/cloud/run/v2/mocks/mock_executions_connection.h @@ -59,10 +59,32 @@ class MockExecutionsConnection : public run_v2::ExecutionsConnection { (google::cloud::run::v2::DeleteExecutionRequest const& request), (override)); + MOCK_METHOD(StatusOr, DeleteExecution, + (ExperimentalTag, NoAwaitTag, + google::cloud::run::v2::DeleteExecutionRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteExecution, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, CancelExecution, (google::cloud::run::v2::CancelExecutionRequest const& request), (override)); + + MOCK_METHOD(StatusOr, CancelExecution, + (ExperimentalTag, NoAwaitTag, + google::cloud::run::v2::CancelExecutionRequest const& request), + (override)); + + MOCK_METHOD(future>, + CancelExecution, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); }; GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END diff --git a/google/cloud/run/v2/mocks/mock_jobs_connection.h b/google/cloud/run/v2/mocks/mock_jobs_connection.h index 17de06be73f72..0079aaeb57613 100644 --- a/google/cloud/run/v2/mocks/mock_jobs_connection.h +++ b/google/cloud/run/v2/mocks/mock_jobs_connection.h @@ -50,6 +50,16 @@ class MockJobsConnection : public run_v2::JobsConnection { (google::cloud::run::v2::CreateJobRequest const& request), (override)); + MOCK_METHOD(StatusOr, CreateJob, + (ExperimentalTag, NoAwaitTag, + google::cloud::run::v2::CreateJobRequest const& request), + (override)); + + MOCK_METHOD(future>, CreateJob, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(StatusOr, GetJob, (google::cloud::run::v2::GetJobRequest const& request), (override)); @@ -61,14 +71,44 @@ class MockJobsConnection : public run_v2::JobsConnection { (google::cloud::run::v2::UpdateJobRequest const& request), (override)); + MOCK_METHOD(StatusOr, UpdateJob, + (ExperimentalTag, NoAwaitTag, + google::cloud::run::v2::UpdateJobRequest const& request), + (override)); + + MOCK_METHOD(future>, UpdateJob, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, DeleteJob, (google::cloud::run::v2::DeleteJobRequest const& request), (override)); + MOCK_METHOD(StatusOr, DeleteJob, + (ExperimentalTag, NoAwaitTag, + google::cloud::run::v2::DeleteJobRequest const& request), + (override)); + + MOCK_METHOD(future>, DeleteJob, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, RunJob, (google::cloud::run::v2::RunJobRequest const& request), (override)); + MOCK_METHOD(StatusOr, RunJob, + (ExperimentalTag, NoAwaitTag, + google::cloud::run::v2::RunJobRequest const& request), + (override)); + + MOCK_METHOD(future>, RunJob, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(StatusOr, GetIamPolicy, (google::iam::v1::GetIamPolicyRequest const& request), (override)); diff --git a/google/cloud/run/v2/mocks/mock_revisions_connection.h b/google/cloud/run/v2/mocks/mock_revisions_connection.h index 02520df8eb3e0..291844bda8c1f 100644 --- a/google/cloud/run/v2/mocks/mock_revisions_connection.h +++ b/google/cloud/run/v2/mocks/mock_revisions_connection.h @@ -58,6 +58,17 @@ class MockRevisionsConnection : public run_v2::RevisionsConnection { DeleteRevision, (google::cloud::run::v2::DeleteRevisionRequest const& request), (override)); + + MOCK_METHOD(StatusOr, DeleteRevision, + (ExperimentalTag, NoAwaitTag, + google::cloud::run::v2::DeleteRevisionRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteRevision, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); }; GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END diff --git a/google/cloud/run/v2/mocks/mock_services_connection.h b/google/cloud/run/v2/mocks/mock_services_connection.h index 71b678c37f0c3..2e8815a302202 100644 --- a/google/cloud/run/v2/mocks/mock_services_connection.h +++ b/google/cloud/run/v2/mocks/mock_services_connection.h @@ -50,6 +50,16 @@ class MockServicesConnection : public run_v2::ServicesConnection { (google::cloud::run::v2::CreateServiceRequest const& request), (override)); + MOCK_METHOD(StatusOr, CreateService, + (ExperimentalTag, NoAwaitTag, + google::cloud::run::v2::CreateServiceRequest const& request), + (override)); + + MOCK_METHOD(future>, CreateService, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(StatusOr, GetService, (google::cloud::run::v2::GetServiceRequest const& request), (override)); @@ -62,10 +72,30 @@ class MockServicesConnection : public run_v2::ServicesConnection { (google::cloud::run::v2::UpdateServiceRequest const& request), (override)); + MOCK_METHOD(StatusOr, UpdateService, + (ExperimentalTag, NoAwaitTag, + google::cloud::run::v2::UpdateServiceRequest const& request), + (override)); + + MOCK_METHOD(future>, UpdateService, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, DeleteService, (google::cloud::run::v2::DeleteServiceRequest const& request), (override)); + MOCK_METHOD(StatusOr, DeleteService, + (ExperimentalTag, NoAwaitTag, + google::cloud::run::v2::DeleteServiceRequest const& request), + (override)); + + MOCK_METHOD(future>, DeleteService, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(StatusOr, GetIamPolicy, (google::iam::v1::GetIamPolicyRequest const& request), (override)); diff --git a/google/cloud/run/v2/revisions_connection.cc b/google/cloud/run/v2/revisions_connection.cc index ea83af5d02ea9..daa7e9e8d31fd 100644 --- a/google/cloud/run/v2/revisions_connection.cc +++ b/google/cloud/run/v2/revisions_connection.cc @@ -59,6 +59,21 @@ RevisionsConnection::DeleteRevision( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr RevisionsConnection::DeleteRevision( + ExperimentalTag, NoAwaitTag, + google::cloud::run::v2::DeleteRevisionRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +RevisionsConnection::DeleteRevision(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + std::shared_ptr MakeRevisionsConnection(Options options) { internal::CheckExpectedOptions> DeleteRevision( google::cloud::run::v2::DeleteRevisionRequest const& request); + + virtual StatusOr DeleteRevision( + ExperimentalTag, NoAwaitTag, + google::cloud::run::v2::DeleteRevisionRequest const& request); + + virtual future> DeleteRevision( + ExperimentalTag, google::longrunning::Operation const& operation); }; /** diff --git a/google/cloud/run/v2/services_connection.cc b/google/cloud/run/v2/services_connection.cc index aa5239d5dd210..5852773e84426 100644 --- a/google/cloud/run/v2/services_connection.cc +++ b/google/cloud/run/v2/services_connection.cc @@ -46,6 +46,21 @@ ServicesConnection::CreateService( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr ServicesConnection::CreateService( + ExperimentalTag, NoAwaitTag, + google::cloud::run::v2::CreateServiceRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +ServicesConnection::CreateService(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr ServicesConnection::GetService( google::cloud::run::v2::GetServiceRequest const&) { return Status(StatusCode::kUnimplemented, "not implemented"); @@ -66,6 +81,21 @@ ServicesConnection::UpdateService( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr ServicesConnection::UpdateService( + ExperimentalTag, NoAwaitTag, + google::cloud::run::v2::UpdateServiceRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +ServicesConnection::UpdateService(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> ServicesConnection::DeleteService( google::cloud::run::v2::DeleteServiceRequest const&) { @@ -74,6 +104,21 @@ ServicesConnection::DeleteService( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr ServicesConnection::DeleteService( + ExperimentalTag, NoAwaitTag, + google::cloud::run::v2::DeleteServiceRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +ServicesConnection::DeleteService(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr ServicesConnection::GetIamPolicy( google::iam::v1::GetIamPolicyRequest const&) { return Status(StatusCode::kUnimplemented, "not implemented"); diff --git a/google/cloud/run/v2/services_connection.h b/google/cloud/run/v2/services_connection.h index a169c444737ff..88c354dbd9bb3 100644 --- a/google/cloud/run/v2/services_connection.h +++ b/google/cloud/run/v2/services_connection.h @@ -22,8 +22,10 @@ #include "google/cloud/run/v2/internal/services_retry_traits.h" #include "google/cloud/run/v2/services_connection_idempotency_policy.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/internal/retry_policy_impl.h" +#include "google/cloud/no_await_tag.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" #include "google/cloud/status_or.h" @@ -185,6 +187,13 @@ class ServicesConnection { virtual future> CreateService( google::cloud::run::v2::CreateServiceRequest const& request); + virtual StatusOr CreateService( + ExperimentalTag, NoAwaitTag, + google::cloud::run::v2::CreateServiceRequest const& request); + + virtual future> CreateService( + ExperimentalTag, google::longrunning::Operation const& operation); + virtual StatusOr GetService( google::cloud::run::v2::GetServiceRequest const& request); @@ -194,9 +203,23 @@ class ServicesConnection { virtual future> UpdateService( google::cloud::run::v2::UpdateServiceRequest const& request); + virtual StatusOr UpdateService( + ExperimentalTag, NoAwaitTag, + google::cloud::run::v2::UpdateServiceRequest const& request); + + virtual future> UpdateService( + ExperimentalTag, google::longrunning::Operation const& operation); + virtual future> DeleteService( google::cloud::run::v2::DeleteServiceRequest const& request); + virtual StatusOr DeleteService( + ExperimentalTag, NoAwaitTag, + google::cloud::run::v2::DeleteServiceRequest const& request); + + virtual future> DeleteService( + ExperimentalTag, google::longrunning::Operation const& operation); + virtual StatusOr GetIamPolicy( google::iam::v1::GetIamPolicyRequest const& request); diff --git a/google/cloud/run/v2/tasks_connection.h b/google/cloud/run/v2/tasks_connection.h index ba62eee3ccf44..bda42cd5dadde 100644 --- a/google/cloud/run/v2/tasks_connection.h +++ b/google/cloud/run/v2/tasks_connection.h @@ -22,6 +22,7 @@ #include "google/cloud/run/v2/internal/tasks_retry_traits.h" #include "google/cloud/run/v2/tasks_connection_idempotency_policy.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/internal/retry_policy_impl.h" #include "google/cloud/options.h" #include "google/cloud/status_or.h" diff --git a/google/cloud/scheduler/v1/cloud_scheduler_connection.h b/google/cloud/scheduler/v1/cloud_scheduler_connection.h index 5b470ec5a2f2d..f104e66124258 100644 --- a/google/cloud/scheduler/v1/cloud_scheduler_connection.h +++ b/google/cloud/scheduler/v1/cloud_scheduler_connection.h @@ -22,6 +22,7 @@ #include "google/cloud/scheduler/v1/cloud_scheduler_connection_idempotency_policy.h" #include "google/cloud/scheduler/v1/internal/cloud_scheduler_retry_traits.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/internal/retry_policy_impl.h" #include "google/cloud/options.h" #include "google/cloud/status_or.h" diff --git a/google/cloud/secretmanager/v1/secret_manager_connection.h b/google/cloud/secretmanager/v1/secret_manager_connection.h index 12245c6cdb2a0..2ad113ca8acd8 100644 --- a/google/cloud/secretmanager/v1/secret_manager_connection.h +++ b/google/cloud/secretmanager/v1/secret_manager_connection.h @@ -22,6 +22,7 @@ #include "google/cloud/secretmanager/v1/internal/secret_manager_retry_traits.h" #include "google/cloud/secretmanager/v1/secret_manager_connection_idempotency_policy.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/internal/retry_policy_impl.h" #include "google/cloud/options.h" #include "google/cloud/status_or.h" diff --git a/google/cloud/securesourcemanager/v1/internal/secure_source_manager_connection_impl.cc b/google/cloud/securesourcemanager/v1/internal/secure_source_manager_connection_impl.cc index a3c0e6d9c158a..7b21af8d2233b 100644 --- a/google/cloud/securesourcemanager/v1/internal/secure_source_manager_connection_impl.cc +++ b/google/cloud/securesourcemanager/v1/internal/secure_source_manager_connection_impl.cc @@ -165,6 +165,62 @@ SecureSourceManagerConnectionImpl::CreateInstance( polling_policy(*current), __func__); } +StatusOr +SecureSourceManagerConnectionImpl::CreateInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::securesourcemanager::v1::CreateInstanceRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateInstance(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::securesourcemanager::v1::CreateInstanceRequest const& + request) { + return stub_->CreateInstance(context, options, request); + }, + *current, request, __func__); +} + +future> +SecureSourceManagerConnectionImpl::CreateInstance( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to CreateInstance", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::securesourcemanager::v1::Instance>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::securesourcemanager::v1::Instance>, + polling_policy(*current), __func__); +} + future> SecureSourceManagerConnectionImpl::DeleteInstance( google::cloud::securesourcemanager::v1::DeleteInstanceRequest const& @@ -206,6 +262,62 @@ SecureSourceManagerConnectionImpl::DeleteInstance( polling_policy(*current), __func__); } +StatusOr +SecureSourceManagerConnectionImpl::DeleteInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::securesourcemanager::v1::DeleteInstanceRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteInstance(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::securesourcemanager::v1::DeleteInstanceRequest const& + request) { + return stub_->DeleteInstance(context, options, request); + }, + *current, request, __func__); +} + +future> +SecureSourceManagerConnectionImpl::DeleteInstance( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteInstance", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::securesourcemanager::v1::OperationMetadata>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::cloud::securesourcemanager::v1::OperationMetadata>, + polling_policy(*current), __func__); +} + StreamRange SecureSourceManagerConnectionImpl::ListRepositories( google::cloud::securesourcemanager::v1::ListRepositoriesRequest request) { @@ -299,6 +411,62 @@ SecureSourceManagerConnectionImpl::CreateRepository( polling_policy(*current), __func__); } +StatusOr +SecureSourceManagerConnectionImpl::CreateRepository( + ExperimentalTag, NoAwaitTag, + google::cloud::securesourcemanager::v1::CreateRepositoryRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateRepository(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::securesourcemanager::v1::CreateRepositoryRequest const& + request) { + return stub_->CreateRepository(context, options, request); + }, + *current, request, __func__); +} + +future> +SecureSourceManagerConnectionImpl::CreateRepository( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to CreateRepository", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::securesourcemanager::v1::Repository>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::securesourcemanager::v1::Repository>, + polling_policy(*current), __func__); +} + future> SecureSourceManagerConnectionImpl::DeleteRepository( google::cloud::securesourcemanager::v1::DeleteRepositoryRequest const& @@ -340,6 +508,62 @@ SecureSourceManagerConnectionImpl::DeleteRepository( polling_policy(*current), __func__); } +StatusOr +SecureSourceManagerConnectionImpl::DeleteRepository( + ExperimentalTag, NoAwaitTag, + google::cloud::securesourcemanager::v1::DeleteRepositoryRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteRepository(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::securesourcemanager::v1::DeleteRepositoryRequest const& + request) { + return stub_->DeleteRepository(context, options, request); + }, + *current, request, __func__); +} + +future> +SecureSourceManagerConnectionImpl::DeleteRepository( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteRepository", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::securesourcemanager::v1::OperationMetadata>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::cloud::securesourcemanager::v1::OperationMetadata>, + polling_policy(*current), __func__); +} + StatusOr SecureSourceManagerConnectionImpl::GetIamPolicyRepo( google::iam::v1::GetIamPolicyRequest const& request) { diff --git a/google/cloud/securesourcemanager/v1/internal/secure_source_manager_connection_impl.h b/google/cloud/securesourcemanager/v1/internal/secure_source_manager_connection_impl.h index 681ed3abada49..dd4d69ee2cc77 100644 --- a/google/cloud/securesourcemanager/v1/internal/secure_source_manager_connection_impl.h +++ b/google/cloud/securesourcemanager/v1/internal/secure_source_manager_connection_impl.h @@ -66,11 +66,29 @@ class SecureSourceManagerConnectionImpl google::cloud::securesourcemanager::v1::CreateInstanceRequest const& request) override; + StatusOr CreateInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::securesourcemanager::v1::CreateInstanceRequest const& + request) override; + + future> + CreateInstance(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteInstance( google::cloud::securesourcemanager::v1::DeleteInstanceRequest const& request) override; + StatusOr DeleteInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::securesourcemanager::v1::DeleteInstanceRequest const& + request) override; + + future> + DeleteInstance(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListRepositories( google::cloud::securesourcemanager::v1::ListRepositoriesRequest request) @@ -85,11 +103,29 @@ class SecureSourceManagerConnectionImpl google::cloud::securesourcemanager::v1::CreateRepositoryRequest const& request) override; + StatusOr CreateRepository( + ExperimentalTag, NoAwaitTag, + google::cloud::securesourcemanager::v1::CreateRepositoryRequest const& + request) override; + + future> + CreateRepository(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteRepository( google::cloud::securesourcemanager::v1::DeleteRepositoryRequest const& request) override; + StatusOr DeleteRepository( + ExperimentalTag, NoAwaitTag, + google::cloud::securesourcemanager::v1::DeleteRepositoryRequest const& + request) override; + + future> + DeleteRepository(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetIamPolicyRepo( google::iam::v1::GetIamPolicyRequest const& request) override; diff --git a/google/cloud/securesourcemanager/v1/internal/secure_source_manager_tracing_connection.cc b/google/cloud/securesourcemanager/v1/internal/secure_source_manager_tracing_connection.cc index 73ffe2bafe20f..7f4d8d9284763 100644 --- a/google/cloud/securesourcemanager/v1/internal/secure_source_manager_tracing_connection.cc +++ b/google/cloud/securesourcemanager/v1/internal/secure_source_manager_tracing_connection.cc @@ -65,6 +65,28 @@ SecureSourceManagerTracingConnection::CreateInstance( return internal::EndSpan(std::move(span), child_->CreateInstance(request)); } +StatusOr +SecureSourceManagerTracingConnection::CreateInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::securesourcemanager::v1::CreateInstanceRequest const& + request) { + auto span = internal::MakeSpan( + "securesourcemanager_v1::SecureSourceManagerConnection::CreateInstance"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->CreateInstance(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +SecureSourceManagerTracingConnection::CreateInstance( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "securesourcemanager_v1::SecureSourceManagerConnection::CreateInstance"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->CreateInstance(ExperimentalTag{}, operation)); +} + future> SecureSourceManagerTracingConnection::DeleteInstance( google::cloud::securesourcemanager::v1::DeleteInstanceRequest const& @@ -75,6 +97,28 @@ SecureSourceManagerTracingConnection::DeleteInstance( return internal::EndSpan(std::move(span), child_->DeleteInstance(request)); } +StatusOr +SecureSourceManagerTracingConnection::DeleteInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::securesourcemanager::v1::DeleteInstanceRequest const& + request) { + auto span = internal::MakeSpan( + "securesourcemanager_v1::SecureSourceManagerConnection::DeleteInstance"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->DeleteInstance(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +SecureSourceManagerTracingConnection::DeleteInstance( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "securesourcemanager_v1::SecureSourceManagerConnection::DeleteInstance"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->DeleteInstance(ExperimentalTag{}, operation)); +} + StreamRange SecureSourceManagerTracingConnection::ListRepositories( google::cloud::securesourcemanager::v1::ListRepositoriesRequest request) { @@ -109,6 +153,31 @@ SecureSourceManagerTracingConnection::CreateRepository( return internal::EndSpan(std::move(span), child_->CreateRepository(request)); } +StatusOr +SecureSourceManagerTracingConnection::CreateRepository( + ExperimentalTag, NoAwaitTag, + google::cloud::securesourcemanager::v1::CreateRepositoryRequest const& + request) { + auto span = internal::MakeSpan( + "securesourcemanager_v1::SecureSourceManagerConnection::" + "CreateRepository"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->CreateRepository(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +SecureSourceManagerTracingConnection::CreateRepository( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "securesourcemanager_v1::SecureSourceManagerConnection::" + "CreateRepository"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->CreateRepository(ExperimentalTag{}, operation)); +} + future> SecureSourceManagerTracingConnection::DeleteRepository( google::cloud::securesourcemanager::v1::DeleteRepositoryRequest const& @@ -120,6 +189,31 @@ SecureSourceManagerTracingConnection::DeleteRepository( return internal::EndSpan(std::move(span), child_->DeleteRepository(request)); } +StatusOr +SecureSourceManagerTracingConnection::DeleteRepository( + ExperimentalTag, NoAwaitTag, + google::cloud::securesourcemanager::v1::DeleteRepositoryRequest const& + request) { + auto span = internal::MakeSpan( + "securesourcemanager_v1::SecureSourceManagerConnection::" + "DeleteRepository"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->DeleteRepository(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +SecureSourceManagerTracingConnection::DeleteRepository( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "securesourcemanager_v1::SecureSourceManagerConnection::" + "DeleteRepository"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->DeleteRepository(ExperimentalTag{}, operation)); +} + StatusOr SecureSourceManagerTracingConnection::GetIamPolicyRepo( google::iam::v1::GetIamPolicyRequest const& request) { diff --git a/google/cloud/securesourcemanager/v1/internal/secure_source_manager_tracing_connection.h b/google/cloud/securesourcemanager/v1/internal/secure_source_manager_tracing_connection.h index efbbcba831315..acd8394e881b2 100644 --- a/google/cloud/securesourcemanager/v1/internal/secure_source_manager_tracing_connection.h +++ b/google/cloud/securesourcemanager/v1/internal/secure_source_manager_tracing_connection.h @@ -54,11 +54,29 @@ class SecureSourceManagerTracingConnection google::cloud::securesourcemanager::v1::CreateInstanceRequest const& request) override; + StatusOr CreateInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::securesourcemanager::v1::CreateInstanceRequest const& + request) override; + + future> + CreateInstance(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteInstance( google::cloud::securesourcemanager::v1::DeleteInstanceRequest const& request) override; + StatusOr DeleteInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::securesourcemanager::v1::DeleteInstanceRequest const& + request) override; + + future> + DeleteInstance(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListRepositories( google::cloud::securesourcemanager::v1::ListRepositoriesRequest request) @@ -73,11 +91,29 @@ class SecureSourceManagerTracingConnection google::cloud::securesourcemanager::v1::CreateRepositoryRequest const& request) override; + StatusOr CreateRepository( + ExperimentalTag, NoAwaitTag, + google::cloud::securesourcemanager::v1::CreateRepositoryRequest const& + request) override; + + future> + CreateRepository(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteRepository( google::cloud::securesourcemanager::v1::DeleteRepositoryRequest const& request) override; + StatusOr DeleteRepository( + ExperimentalTag, NoAwaitTag, + google::cloud::securesourcemanager::v1::DeleteRepositoryRequest const& + request) override; + + future> + DeleteRepository(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetIamPolicyRepo( google::iam::v1::GetIamPolicyRequest const& request) override; diff --git a/google/cloud/securesourcemanager/v1/mocks/mock_secure_source_manager_connection.h b/google/cloud/securesourcemanager/v1/mocks/mock_secure_source_manager_connection.h index e0cb3900e7406..a4ee301720ae8 100644 --- a/google/cloud/securesourcemanager/v1/mocks/mock_secure_source_manager_connection.h +++ b/google/cloud/securesourcemanager/v1/mocks/mock_secure_source_manager_connection.h @@ -66,6 +66,19 @@ class MockSecureSourceManagerConnection request), (override)); + MOCK_METHOD( + StatusOr, CreateInstance, + (ExperimentalTag, NoAwaitTag, + google::cloud::securesourcemanager::v1::CreateInstanceRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + CreateInstance, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future< StatusOr>, @@ -74,6 +87,20 @@ class MockSecureSourceManagerConnection request), (override)); + MOCK_METHOD( + StatusOr, DeleteInstance, + (ExperimentalTag, NoAwaitTag, + google::cloud::securesourcemanager::v1::DeleteInstanceRequest const& + request), + (override)); + + MOCK_METHOD( + future< + StatusOr>, + DeleteInstance, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( (StreamRange), ListRepositories, @@ -94,6 +121,19 @@ class MockSecureSourceManagerConnection request), (override)); + MOCK_METHOD( + StatusOr, CreateRepository, + (ExperimentalTag, NoAwaitTag, + google::cloud::securesourcemanager::v1::CreateRepositoryRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + CreateRepository, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future< StatusOr>, @@ -102,6 +142,20 @@ class MockSecureSourceManagerConnection request), (override)); + MOCK_METHOD( + StatusOr, DeleteRepository, + (ExperimentalTag, NoAwaitTag, + google::cloud::securesourcemanager::v1::DeleteRepositoryRequest const& + request), + (override)); + + MOCK_METHOD( + future< + StatusOr>, + DeleteRepository, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(StatusOr, GetIamPolicyRepo, (google::iam::v1::GetIamPolicyRequest const& request), (override)); diff --git a/google/cloud/securesourcemanager/v1/secure_source_manager_connection.cc b/google/cloud/securesourcemanager/v1/secure_source_manager_connection.cc index 4eeb767482ee0..30331812c6499 100644 --- a/google/cloud/securesourcemanager/v1/secure_source_manager_connection.cc +++ b/google/cloud/securesourcemanager/v1/secure_source_manager_connection.cc @@ -60,6 +60,22 @@ SecureSourceManagerConnection::CreateInstance( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +SecureSourceManagerConnection::CreateInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::securesourcemanager::v1::CreateInstanceRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +SecureSourceManagerConnection::CreateInstance( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> SecureSourceManagerConnection::DeleteInstance( google::cloud::securesourcemanager::v1::DeleteInstanceRequest const&) { @@ -68,6 +84,22 @@ SecureSourceManagerConnection::DeleteInstance( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +SecureSourceManagerConnection::DeleteInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::securesourcemanager::v1::DeleteInstanceRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +SecureSourceManagerConnection::DeleteInstance( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StreamRange SecureSourceManagerConnection::ListRepositories( google::cloud::securesourcemanager::v1:: @@ -90,6 +122,22 @@ SecureSourceManagerConnection::CreateRepository( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +SecureSourceManagerConnection::CreateRepository( + ExperimentalTag, NoAwaitTag, + google::cloud::securesourcemanager::v1::CreateRepositoryRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +SecureSourceManagerConnection::CreateRepository( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> SecureSourceManagerConnection::DeleteRepository( google::cloud::securesourcemanager::v1::DeleteRepositoryRequest const&) { @@ -98,6 +146,22 @@ SecureSourceManagerConnection::DeleteRepository( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +SecureSourceManagerConnection::DeleteRepository( + ExperimentalTag, NoAwaitTag, + google::cloud::securesourcemanager::v1::DeleteRepositoryRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +SecureSourceManagerConnection::DeleteRepository( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr SecureSourceManagerConnection::GetIamPolicyRepo( google::iam::v1::GetIamPolicyRequest const&) { diff --git a/google/cloud/securesourcemanager/v1/secure_source_manager_connection.h b/google/cloud/securesourcemanager/v1/secure_source_manager_connection.h index da49e0f91218d..28e3b0a4ccb1e 100644 --- a/google/cloud/securesourcemanager/v1/secure_source_manager_connection.h +++ b/google/cloud/securesourcemanager/v1/secure_source_manager_connection.h @@ -22,8 +22,10 @@ #include "google/cloud/securesourcemanager/v1/internal/secure_source_manager_retry_traits.h" #include "google/cloud/securesourcemanager/v1/secure_source_manager_connection_idempotency_policy.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/internal/retry_policy_impl.h" +#include "google/cloud/no_await_tag.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" #include "google/cloud/status_or.h" @@ -202,12 +204,31 @@ class SecureSourceManagerConnection { google::cloud::securesourcemanager::v1::CreateInstanceRequest const& request); + virtual StatusOr CreateInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::securesourcemanager::v1::CreateInstanceRequest const& + request); + + virtual future> + CreateInstance(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future< StatusOr> DeleteInstance( google::cloud::securesourcemanager::v1::DeleteInstanceRequest const& request); + virtual StatusOr DeleteInstance( + ExperimentalTag, NoAwaitTag, + google::cloud::securesourcemanager::v1::DeleteInstanceRequest const& + request); + + virtual future< + StatusOr> + DeleteInstance(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StreamRange ListRepositories( google::cloud::securesourcemanager::v1::ListRepositoriesRequest request); @@ -222,12 +243,31 @@ class SecureSourceManagerConnection { google::cloud::securesourcemanager::v1::CreateRepositoryRequest const& request); + virtual StatusOr CreateRepository( + ExperimentalTag, NoAwaitTag, + google::cloud::securesourcemanager::v1::CreateRepositoryRequest const& + request); + + virtual future> + CreateRepository(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future< StatusOr> DeleteRepository( google::cloud::securesourcemanager::v1::DeleteRepositoryRequest const& request); + virtual StatusOr DeleteRepository( + ExperimentalTag, NoAwaitTag, + google::cloud::securesourcemanager::v1::DeleteRepositoryRequest const& + request); + + virtual future< + StatusOr> + DeleteRepository(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StatusOr GetIamPolicyRepo( google::iam::v1::GetIamPolicyRequest const& request); diff --git a/google/cloud/securitycenter/v1/internal/security_center_connection_impl.cc b/google/cloud/securitycenter/v1/internal/security_center_connection_impl.cc index 35705fc2f9719..44a085db3b855 100644 --- a/google/cloud/securitycenter/v1/internal/security_center_connection_impl.cc +++ b/google/cloud/securitycenter/v1/internal/security_center_connection_impl.cc @@ -107,6 +107,58 @@ SecurityCenterConnectionImpl::BulkMuteFindings( polling_policy(*current), __func__); } +StatusOr +SecurityCenterConnectionImpl::BulkMuteFindings( + ExperimentalTag, NoAwaitTag, + google::cloud::securitycenter::v1::BulkMuteFindingsRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->BulkMuteFindings(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::securitycenter::v1::BulkMuteFindingsRequest const& + request) { + return stub_->BulkMuteFindings(context, options, request); + }, + *current, request, __func__); +} + +future> +SecurityCenterConnectionImpl::BulkMuteFindings( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata().Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to BulkMuteFindings", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::securitycenter::v1::BulkMuteFindingsResponse>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::securitycenter::v1::BulkMuteFindingsResponse>, + polling_policy(*current), __func__); +} + StatusOr SecurityCenterConnectionImpl::CreateSecurityHealthAnalyticsCustomModule( google::cloud::securitycenter::v1:: @@ -788,6 +840,59 @@ SecurityCenterConnectionImpl::RunAssetDiscovery( polling_policy(*current), __func__); } +StatusOr +SecurityCenterConnectionImpl::RunAssetDiscovery( + ExperimentalTag, NoAwaitTag, + google::cloud::securitycenter::v1::RunAssetDiscoveryRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->RunAssetDiscovery(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::securitycenter::v1::RunAssetDiscoveryRequest const& + request) { + return stub_->RunAssetDiscovery(context, options, request); + }, + *current, request, __func__); +} + +future> +SecurityCenterConnectionImpl::RunAssetDiscovery( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata().Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to RunAssetDiscovery", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::securitycenter::v1::RunAssetDiscoveryResponse>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::securitycenter::v1::RunAssetDiscoveryResponse>, + polling_policy(*current), __func__); +} + StatusOr SecurityCenterConnectionImpl::SetFindingState( google::cloud::securitycenter::v1::SetFindingStateRequest const& request) { diff --git a/google/cloud/securitycenter/v1/internal/security_center_connection_impl.h b/google/cloud/securitycenter/v1/internal/security_center_connection_impl.h index 282e1d8e43474..44d8238a0152a 100644 --- a/google/cloud/securitycenter/v1/internal/security_center_connection_impl.h +++ b/google/cloud/securitycenter/v1/internal/security_center_connection_impl.h @@ -57,6 +57,15 @@ class SecurityCenterConnectionImpl google::cloud::securitycenter::v1::BulkMuteFindingsRequest const& request) override; + StatusOr BulkMuteFindings( + ExperimentalTag, NoAwaitTag, + google::cloud::securitycenter::v1::BulkMuteFindingsRequest const& request) + override; + + future> + BulkMuteFindings(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr< google::cloud::securitycenter::v1::SecurityHealthAnalyticsCustomModule> CreateSecurityHealthAnalyticsCustomModule( @@ -186,6 +195,15 @@ class SecurityCenterConnectionImpl google::cloud::securitycenter::v1::RunAssetDiscoveryRequest const& request) override; + StatusOr RunAssetDiscovery( + ExperimentalTag, NoAwaitTag, + google::cloud::securitycenter::v1::RunAssetDiscoveryRequest const& + request) override; + + future> + RunAssetDiscovery(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr SetFindingState( google::cloud::securitycenter::v1::SetFindingStateRequest const& request) override; diff --git a/google/cloud/securitycenter/v1/internal/security_center_tracing_connection.cc b/google/cloud/securitycenter/v1/internal/security_center_tracing_connection.cc index 26c0ca9194f7b..efc5fe9dd2135 100644 --- a/google/cloud/securitycenter/v1/internal/security_center_tracing_connection.cc +++ b/google/cloud/securitycenter/v1/internal/security_center_tracing_connection.cc @@ -42,6 +42,28 @@ SecurityCenterTracingConnection::BulkMuteFindings( return internal::EndSpan(std::move(span), child_->BulkMuteFindings(request)); } +StatusOr +SecurityCenterTracingConnection::BulkMuteFindings( + ExperimentalTag, NoAwaitTag, + google::cloud::securitycenter::v1::BulkMuteFindingsRequest const& request) { + auto span = internal::MakeSpan( + "securitycenter_v1::SecurityCenterConnection::BulkMuteFindings"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->BulkMuteFindings(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +SecurityCenterTracingConnection::BulkMuteFindings( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "securitycenter_v1::SecurityCenterConnection::BulkMuteFindings"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->BulkMuteFindings(ExperimentalTag{}, operation)); +} + StatusOr SecurityCenterTracingConnection::CreateSecurityHealthAnalyticsCustomModule( google::cloud::securitycenter::v1:: @@ -350,6 +372,29 @@ SecurityCenterTracingConnection::RunAssetDiscovery( return internal::EndSpan(std::move(span), child_->RunAssetDiscovery(request)); } +StatusOr +SecurityCenterTracingConnection::RunAssetDiscovery( + ExperimentalTag, NoAwaitTag, + google::cloud::securitycenter::v1::RunAssetDiscoveryRequest const& + request) { + auto span = internal::MakeSpan( + "securitycenter_v1::SecurityCenterConnection::RunAssetDiscovery"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->RunAssetDiscovery(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +SecurityCenterTracingConnection::RunAssetDiscovery( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "securitycenter_v1::SecurityCenterConnection::RunAssetDiscovery"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->RunAssetDiscovery(ExperimentalTag{}, operation)); +} + StatusOr SecurityCenterTracingConnection::SetFindingState( google::cloud::securitycenter::v1::SetFindingStateRequest const& request) { diff --git a/google/cloud/securitycenter/v1/internal/security_center_tracing_connection.h b/google/cloud/securitycenter/v1/internal/security_center_tracing_connection.h index 2e33b5341cf3c..faef3e5cc4414 100644 --- a/google/cloud/securitycenter/v1/internal/security_center_tracing_connection.h +++ b/google/cloud/securitycenter/v1/internal/security_center_tracing_connection.h @@ -45,6 +45,15 @@ class SecurityCenterTracingConnection google::cloud::securitycenter::v1::BulkMuteFindingsRequest const& request) override; + StatusOr BulkMuteFindings( + ExperimentalTag, NoAwaitTag, + google::cloud::securitycenter::v1::BulkMuteFindingsRequest const& request) + override; + + future> + BulkMuteFindings(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr< google::cloud::securitycenter::v1::SecurityHealthAnalyticsCustomModule> CreateSecurityHealthAnalyticsCustomModule( @@ -174,6 +183,15 @@ class SecurityCenterTracingConnection google::cloud::securitycenter::v1::RunAssetDiscoveryRequest const& request) override; + StatusOr RunAssetDiscovery( + ExperimentalTag, NoAwaitTag, + google::cloud::securitycenter::v1::RunAssetDiscoveryRequest const& + request) override; + + future> + RunAssetDiscovery(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr SetFindingState( google::cloud::securitycenter::v1::SetFindingStateRequest const& request) override; diff --git a/google/cloud/securitycenter/v1/mocks/mock_security_center_connection.h b/google/cloud/securitycenter/v1/mocks/mock_security_center_connection.h index 820dd3fb81361..84841a1cb0259 100644 --- a/google/cloud/securitycenter/v1/mocks/mock_security_center_connection.h +++ b/google/cloud/securitycenter/v1/mocks/mock_security_center_connection.h @@ -54,6 +54,19 @@ class MockSecurityCenterConnection request), (override)); + MOCK_METHOD(StatusOr, BulkMuteFindings, + (ExperimentalTag, NoAwaitTag, + google::cloud::securitycenter::v1::BulkMuteFindingsRequest const& + request), + (override)); + + MOCK_METHOD(future>, + BulkMuteFindings, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr, @@ -224,6 +237,20 @@ class MockSecurityCenterConnection request), (override)); + MOCK_METHOD( + StatusOr, RunAssetDiscovery, + (ExperimentalTag, NoAwaitTag, + google::cloud::securitycenter::v1::RunAssetDiscoveryRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + RunAssetDiscovery, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(StatusOr, SetFindingState, (google::cloud::securitycenter::v1::SetFindingStateRequest const& diff --git a/google/cloud/securitycenter/v1/security_center_connection.cc b/google/cloud/securitycenter/v1/security_center_connection.cc index c06ae8d0c2ead..c582c962eb02e 100644 --- a/google/cloud/securitycenter/v1/security_center_connection.cc +++ b/google/cloud/securitycenter/v1/security_center_connection.cc @@ -46,6 +46,22 @@ SecurityCenterConnection::BulkMuteFindings( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +SecurityCenterConnection::BulkMuteFindings( + ExperimentalTag, NoAwaitTag, + google::cloud::securitycenter::v1::BulkMuteFindingsRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +SecurityCenterConnection::BulkMuteFindings( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr SecurityCenterConnection::CreateSecurityHealthAnalyticsCustomModule( google::cloud::securitycenter::v1:: @@ -241,6 +257,22 @@ SecurityCenterConnection::RunAssetDiscovery( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +SecurityCenterConnection::RunAssetDiscovery( + ExperimentalTag, NoAwaitTag, + google::cloud::securitycenter::v1::RunAssetDiscoveryRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +SecurityCenterConnection::RunAssetDiscovery( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr SecurityCenterConnection::SetFindingState( google::cloud::securitycenter::v1::SetFindingStateRequest const&) { diff --git a/google/cloud/securitycenter/v1/security_center_connection.h b/google/cloud/securitycenter/v1/security_center_connection.h index 62e490f5dd02b..0fa112b2bf4ae 100644 --- a/google/cloud/securitycenter/v1/security_center_connection.h +++ b/google/cloud/securitycenter/v1/security_center_connection.h @@ -22,8 +22,10 @@ #include "google/cloud/securitycenter/v1/internal/security_center_retry_traits.h" #include "google/cloud/securitycenter/v1/security_center_connection_idempotency_policy.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/internal/retry_policy_impl.h" +#include "google/cloud/no_await_tag.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" #include "google/cloud/status_or.h" @@ -191,6 +193,16 @@ class SecurityCenterConnection { google::cloud::securitycenter::v1::BulkMuteFindingsRequest const& request); + virtual StatusOr BulkMuteFindings( + ExperimentalTag, NoAwaitTag, + google::cloud::securitycenter::v1::BulkMuteFindingsRequest const& + request); + + virtual future< + StatusOr> + BulkMuteFindings(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StatusOr< google::cloud::securitycenter::v1::SecurityHealthAnalyticsCustomModule> CreateSecurityHealthAnalyticsCustomModule( @@ -313,6 +325,16 @@ class SecurityCenterConnection { google::cloud::securitycenter::v1::RunAssetDiscoveryRequest const& request); + virtual StatusOr RunAssetDiscovery( + ExperimentalTag, NoAwaitTag, + google::cloud::securitycenter::v1::RunAssetDiscoveryRequest const& + request); + + virtual future< + StatusOr> + RunAssetDiscovery(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StatusOr SetFindingState( google::cloud::securitycenter::v1::SetFindingStateRequest const& request); diff --git a/google/cloud/securitycenter/v2/internal/security_center_connection_impl.cc b/google/cloud/securitycenter/v2/internal/security_center_connection_impl.cc index 70bd08fc11b2e..551b4dd955895 100644 --- a/google/cloud/securitycenter/v2/internal/security_center_connection_impl.cc +++ b/google/cloud/securitycenter/v2/internal/security_center_connection_impl.cc @@ -125,6 +125,58 @@ SecurityCenterConnectionImpl::BulkMuteFindings( polling_policy(*current), __func__); } +StatusOr +SecurityCenterConnectionImpl::BulkMuteFindings( + ExperimentalTag, NoAwaitTag, + google::cloud::securitycenter::v2::BulkMuteFindingsRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->BulkMuteFindings(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::securitycenter::v2::BulkMuteFindingsRequest const& + request) { + return stub_->BulkMuteFindings(context, options, request); + }, + *current, request, __func__); +} + +future> +SecurityCenterConnectionImpl::BulkMuteFindings( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata().Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to BulkMuteFindings", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::securitycenter::v2::BulkMuteFindingsResponse>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::securitycenter::v2::BulkMuteFindingsResponse>, + polling_policy(*current), __func__); +} + StatusOr SecurityCenterConnectionImpl::CreateBigQueryExport( google::cloud::securitycenter::v2::CreateBigQueryExportRequest const& diff --git a/google/cloud/securitycenter/v2/internal/security_center_connection_impl.h b/google/cloud/securitycenter/v2/internal/security_center_connection_impl.h index 87f828a0bdad1..4ca0e18d1caed 100644 --- a/google/cloud/securitycenter/v2/internal/security_center_connection_impl.h +++ b/google/cloud/securitycenter/v2/internal/security_center_connection_impl.h @@ -63,6 +63,15 @@ class SecurityCenterConnectionImpl google::cloud::securitycenter::v2::BulkMuteFindingsRequest const& request) override; + StatusOr BulkMuteFindings( + ExperimentalTag, NoAwaitTag, + google::cloud::securitycenter::v2::BulkMuteFindingsRequest const& request) + override; + + future> + BulkMuteFindings(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr CreateBigQueryExport( google::cloud::securitycenter::v2::CreateBigQueryExportRequest const& diff --git a/google/cloud/securitycenter/v2/internal/security_center_tracing_connection.cc b/google/cloud/securitycenter/v2/internal/security_center_tracing_connection.cc index 572ca96c38be8..dda98bb72f3f8 100644 --- a/google/cloud/securitycenter/v2/internal/security_center_tracing_connection.cc +++ b/google/cloud/securitycenter/v2/internal/security_center_tracing_connection.cc @@ -55,6 +55,28 @@ SecurityCenterTracingConnection::BulkMuteFindings( return internal::EndSpan(std::move(span), child_->BulkMuteFindings(request)); } +StatusOr +SecurityCenterTracingConnection::BulkMuteFindings( + ExperimentalTag, NoAwaitTag, + google::cloud::securitycenter::v2::BulkMuteFindingsRequest const& request) { + auto span = internal::MakeSpan( + "securitycenter_v2::SecurityCenterConnection::BulkMuteFindings"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->BulkMuteFindings(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +SecurityCenterTracingConnection::BulkMuteFindings( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "securitycenter_v2::SecurityCenterConnection::BulkMuteFindings"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->BulkMuteFindings(ExperimentalTag{}, operation)); +} + StatusOr SecurityCenterTracingConnection::CreateBigQueryExport( google::cloud::securitycenter::v2::CreateBigQueryExportRequest const& diff --git a/google/cloud/securitycenter/v2/internal/security_center_tracing_connection.h b/google/cloud/securitycenter/v2/internal/security_center_tracing_connection.h index d67e8af2862ac..ca138fda97dc7 100644 --- a/google/cloud/securitycenter/v2/internal/security_center_tracing_connection.h +++ b/google/cloud/securitycenter/v2/internal/security_center_tracing_connection.h @@ -51,6 +51,15 @@ class SecurityCenterTracingConnection google::cloud::securitycenter::v2::BulkMuteFindingsRequest const& request) override; + StatusOr BulkMuteFindings( + ExperimentalTag, NoAwaitTag, + google::cloud::securitycenter::v2::BulkMuteFindingsRequest const& request) + override; + + future> + BulkMuteFindings(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr CreateBigQueryExport( google::cloud::securitycenter::v2::CreateBigQueryExportRequest const& diff --git a/google/cloud/securitycenter/v2/mocks/mock_security_center_connection.h b/google/cloud/securitycenter/v2/mocks/mock_security_center_connection.h index 1e91dfd7e2ca9..cac3d9c9dcb38 100644 --- a/google/cloud/securitycenter/v2/mocks/mock_security_center_connection.h +++ b/google/cloud/securitycenter/v2/mocks/mock_security_center_connection.h @@ -61,6 +61,19 @@ class MockSecurityCenterConnection request), (override)); + MOCK_METHOD(StatusOr, BulkMuteFindings, + (ExperimentalTag, NoAwaitTag, + google::cloud::securitycenter::v2::BulkMuteFindingsRequest const& + request), + (override)); + + MOCK_METHOD(future>, + BulkMuteFindings, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr, CreateBigQueryExport, diff --git a/google/cloud/securitycenter/v2/security_center_connection.cc b/google/cloud/securitycenter/v2/security_center_connection.cc index 6512b5f4071fd..050e8938bc895 100644 --- a/google/cloud/securitycenter/v2/security_center_connection.cc +++ b/google/cloud/securitycenter/v2/security_center_connection.cc @@ -54,6 +54,22 @@ SecurityCenterConnection::BulkMuteFindings( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +SecurityCenterConnection::BulkMuteFindings( + ExperimentalTag, NoAwaitTag, + google::cloud::securitycenter::v2::BulkMuteFindingsRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +SecurityCenterConnection::BulkMuteFindings( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr SecurityCenterConnection::CreateBigQueryExport( google::cloud::securitycenter::v2::CreateBigQueryExportRequest const&) { diff --git a/google/cloud/securitycenter/v2/security_center_connection.h b/google/cloud/securitycenter/v2/security_center_connection.h index 63bb531682f14..7a301302c7640 100644 --- a/google/cloud/securitycenter/v2/security_center_connection.h +++ b/google/cloud/securitycenter/v2/security_center_connection.h @@ -22,8 +22,10 @@ #include "google/cloud/securitycenter/v2/internal/security_center_retry_traits.h" #include "google/cloud/securitycenter/v2/security_center_connection_idempotency_policy.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/internal/retry_policy_impl.h" +#include "google/cloud/no_await_tag.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" #include "google/cloud/status_or.h" @@ -197,6 +199,16 @@ class SecurityCenterConnection { google::cloud::securitycenter::v2::BulkMuteFindingsRequest const& request); + virtual StatusOr BulkMuteFindings( + ExperimentalTag, NoAwaitTag, + google::cloud::securitycenter::v2::BulkMuteFindingsRequest const& + request); + + virtual future< + StatusOr> + BulkMuteFindings(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StatusOr CreateBigQueryExport( google::cloud::securitycenter::v2::CreateBigQueryExportRequest const& diff --git a/google/cloud/securitycentermanagement/v1/security_center_management_connection.h b/google/cloud/securitycentermanagement/v1/security_center_management_connection.h index f023e6a4fde3d..6ebc558d86c3d 100644 --- a/google/cloud/securitycentermanagement/v1/security_center_management_connection.h +++ b/google/cloud/securitycentermanagement/v1/security_center_management_connection.h @@ -23,6 +23,7 @@ #include "google/cloud/securitycentermanagement/v1/internal/security_center_management_retry_traits.h" #include "google/cloud/securitycentermanagement/v1/security_center_management_connection_idempotency_policy.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/internal/retry_policy_impl.h" #include "google/cloud/options.h" #include "google/cloud/status_or.h" diff --git a/google/cloud/servicecontrol/v1/quota_controller_connection.h b/google/cloud/servicecontrol/v1/quota_controller_connection.h index 9e8f65c30f43d..a6064639ddc15 100644 --- a/google/cloud/servicecontrol/v1/quota_controller_connection.h +++ b/google/cloud/servicecontrol/v1/quota_controller_connection.h @@ -22,6 +22,7 @@ #include "google/cloud/servicecontrol/v1/internal/quota_controller_retry_traits.h" #include "google/cloud/servicecontrol/v1/quota_controller_connection_idempotency_policy.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/internal/retry_policy_impl.h" #include "google/cloud/options.h" #include "google/cloud/status_or.h" diff --git a/google/cloud/servicecontrol/v1/service_controller_connection.h b/google/cloud/servicecontrol/v1/service_controller_connection.h index 5475e099a3396..144b2b5a41a42 100644 --- a/google/cloud/servicecontrol/v1/service_controller_connection.h +++ b/google/cloud/servicecontrol/v1/service_controller_connection.h @@ -22,6 +22,7 @@ #include "google/cloud/servicecontrol/v1/internal/service_controller_retry_traits.h" #include "google/cloud/servicecontrol/v1/service_controller_connection_idempotency_policy.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/internal/retry_policy_impl.h" #include "google/cloud/options.h" #include "google/cloud/status_or.h" diff --git a/google/cloud/servicecontrol/v2/service_controller_connection.h b/google/cloud/servicecontrol/v2/service_controller_connection.h index 1cfbdfd836578..69f4b5f3026ae 100644 --- a/google/cloud/servicecontrol/v2/service_controller_connection.h +++ b/google/cloud/servicecontrol/v2/service_controller_connection.h @@ -22,6 +22,7 @@ #include "google/cloud/servicecontrol/v2/internal/service_controller_retry_traits.h" #include "google/cloud/servicecontrol/v2/service_controller_connection_idempotency_policy.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/internal/retry_policy_impl.h" #include "google/cloud/options.h" #include "google/cloud/status_or.h" diff --git a/google/cloud/servicedirectory/v1/lookup_connection.h b/google/cloud/servicedirectory/v1/lookup_connection.h index 4370b41e76d49..67bf163baa30c 100644 --- a/google/cloud/servicedirectory/v1/lookup_connection.h +++ b/google/cloud/servicedirectory/v1/lookup_connection.h @@ -22,6 +22,7 @@ #include "google/cloud/servicedirectory/v1/internal/lookup_retry_traits.h" #include "google/cloud/servicedirectory/v1/lookup_connection_idempotency_policy.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/internal/retry_policy_impl.h" #include "google/cloud/options.h" #include "google/cloud/status_or.h" diff --git a/google/cloud/servicedirectory/v1/registration_connection.h b/google/cloud/servicedirectory/v1/registration_connection.h index de5c856664ca8..c6406f01abfa8 100644 --- a/google/cloud/servicedirectory/v1/registration_connection.h +++ b/google/cloud/servicedirectory/v1/registration_connection.h @@ -22,6 +22,7 @@ #include "google/cloud/servicedirectory/v1/internal/registration_retry_traits.h" #include "google/cloud/servicedirectory/v1/registration_connection_idempotency_policy.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/internal/retry_policy_impl.h" #include "google/cloud/options.h" #include "google/cloud/status_or.h" diff --git a/google/cloud/servicehealth/v1/service_health_connection.h b/google/cloud/servicehealth/v1/service_health_connection.h index 20daebad87d19..a0f914f0bc305 100644 --- a/google/cloud/servicehealth/v1/service_health_connection.h +++ b/google/cloud/servicehealth/v1/service_health_connection.h @@ -22,6 +22,7 @@ #include "google/cloud/servicehealth/v1/internal/service_health_retry_traits.h" #include "google/cloud/servicehealth/v1/service_health_connection_idempotency_policy.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/internal/retry_policy_impl.h" #include "google/cloud/options.h" #include "google/cloud/status_or.h" diff --git a/google/cloud/servicemanagement/v1/internal/service_manager_connection_impl.cc b/google/cloud/servicemanagement/v1/internal/service_manager_connection_impl.cc index 204f33009b5db..cd061dd34ce33 100644 --- a/google/cloud/servicemanagement/v1/internal/service_manager_connection_impl.cc +++ b/google/cloud/servicemanagement/v1/internal/service_manager_connection_impl.cc @@ -158,6 +158,60 @@ ServiceManagerConnectionImpl::CreateService( polling_policy(*current), __func__); } +StatusOr +ServiceManagerConnectionImpl::CreateService( + ExperimentalTag, NoAwaitTag, + google::api::servicemanagement::v1::CreateServiceRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateService(request), + [this](grpc::ClientContext& context, Options const& options, + google::api::servicemanagement::v1::CreateServiceRequest const& + request) { + return stub_->CreateService(context, options, request); + }, + *current, request, __func__); +} + +future> +ServiceManagerConnectionImpl::CreateService( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to CreateService", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::api::servicemanagement::v1::ManagedService>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::api::servicemanagement::v1::ManagedService>, + polling_policy(*current), __func__); +} + future> ServiceManagerConnectionImpl::DeleteService( google::api::servicemanagement::v1::DeleteServiceRequest const& request) { @@ -198,6 +252,60 @@ ServiceManagerConnectionImpl::DeleteService( polling_policy(*current), __func__); } +StatusOr +ServiceManagerConnectionImpl::DeleteService( + ExperimentalTag, NoAwaitTag, + google::api::servicemanagement::v1::DeleteServiceRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteService(request), + [this](grpc::ClientContext& context, Options const& options, + google::api::servicemanagement::v1::DeleteServiceRequest const& + request) { + return stub_->DeleteService(context, options, request); + }, + *current, request, __func__); +} + +future> +ServiceManagerConnectionImpl::DeleteService( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteService", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::api::servicemanagement::v1::OperationMetadata>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::api::servicemanagement::v1::OperationMetadata>, + polling_policy(*current), __func__); +} + future> ServiceManagerConnectionImpl::UndeleteService( google::api::servicemanagement::v1::UndeleteServiceRequest const& request) { @@ -238,6 +346,60 @@ ServiceManagerConnectionImpl::UndeleteService( polling_policy(*current), __func__); } +StatusOr +ServiceManagerConnectionImpl::UndeleteService( + ExperimentalTag, NoAwaitTag, + google::api::servicemanagement::v1::UndeleteServiceRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UndeleteService(request), + [this](grpc::ClientContext& context, Options const& options, + google::api::servicemanagement::v1::UndeleteServiceRequest const& + request) { + return stub_->UndeleteService(context, options, request); + }, + *current, request, __func__); +} + +future> +ServiceManagerConnectionImpl::UndeleteService( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to UndeleteService", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::api::servicemanagement::v1::UndeleteServiceResponse>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::api::servicemanagement::v1::UndeleteServiceResponse>, + polling_policy(*current), __func__); +} + StreamRange ServiceManagerConnectionImpl::ListServiceConfigs( google::api::servicemanagement::v1::ListServiceConfigsRequest request) { @@ -345,6 +507,62 @@ ServiceManagerConnectionImpl::SubmitConfigSource( polling_policy(*current), __func__); } +StatusOr +ServiceManagerConnectionImpl::SubmitConfigSource( + ExperimentalTag, NoAwaitTag, + google::api::servicemanagement::v1::SubmitConfigSourceRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->SubmitConfigSource(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::api::servicemanagement::v1::SubmitConfigSourceRequest const& + request) { + return stub_->SubmitConfigSource(context, options, request); + }, + *current, request, __func__); +} + +future> +ServiceManagerConnectionImpl::SubmitConfigSource( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to SubmitConfigSource", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::api::servicemanagement::v1::SubmitConfigSourceResponse>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::api::servicemanagement::v1::SubmitConfigSourceResponse>, + polling_policy(*current), __func__); +} + StreamRange ServiceManagerConnectionImpl::ListServiceRollouts( google::api::servicemanagement::v1::ListServiceRolloutsRequest request) { @@ -437,6 +655,62 @@ ServiceManagerConnectionImpl::CreateServiceRollout( polling_policy(*current), __func__); } +StatusOr +ServiceManagerConnectionImpl::CreateServiceRollout( + ExperimentalTag, NoAwaitTag, + google::api::servicemanagement::v1::CreateServiceRolloutRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateServiceRollout(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::api::servicemanagement::v1::CreateServiceRolloutRequest const& + request) { + return stub_->CreateServiceRollout(context, options, request); + }, + *current, request, __func__); +} + +future> +ServiceManagerConnectionImpl::CreateServiceRollout( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to CreateServiceRollout", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::api::servicemanagement::v1::Rollout>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::api::servicemanagement::v1::Rollout>, + polling_policy(*current), __func__); +} + StatusOr ServiceManagerConnectionImpl::GenerateConfigReport( google::api::servicemanagement::v1::GenerateConfigReportRequest const& diff --git a/google/cloud/servicemanagement/v1/internal/service_manager_connection_impl.h b/google/cloud/servicemanagement/v1/internal/service_manager_connection_impl.h index 03fe775358d91..d46510d8d5fbe 100644 --- a/google/cloud/servicemanagement/v1/internal/service_manager_connection_impl.h +++ b/google/cloud/servicemanagement/v1/internal/service_manager_connection_impl.h @@ -63,15 +63,42 @@ class ServiceManagerConnectionImpl CreateService(google::api::servicemanagement::v1::CreateServiceRequest const& request) override; + StatusOr CreateService( + ExperimentalTag, NoAwaitTag, + google::api::servicemanagement::v1::CreateServiceRequest const& request) + override; + + future> + CreateService(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteService(google::api::servicemanagement::v1::DeleteServiceRequest const& request) override; + StatusOr DeleteService( + ExperimentalTag, NoAwaitTag, + google::api::servicemanagement::v1::DeleteServiceRequest const& request) + override; + + future> + DeleteService(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UndeleteService( google::api::servicemanagement::v1::UndeleteServiceRequest const& request) override; + StatusOr UndeleteService( + ExperimentalTag, NoAwaitTag, + google::api::servicemanagement::v1::UndeleteServiceRequest const& request) + override; + + future> + UndeleteService(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListServiceConfigs( google::api::servicemanagement::v1::ListServiceConfigsRequest request) override; @@ -90,6 +117,16 @@ class ServiceManagerConnectionImpl google::api::servicemanagement::v1::SubmitConfigSourceRequest const& request) override; + StatusOr SubmitConfigSource( + ExperimentalTag, NoAwaitTag, + google::api::servicemanagement::v1::SubmitConfigSourceRequest const& + request) override; + + future< + StatusOr> + SubmitConfigSource(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListServiceRollouts( google::api::servicemanagement::v1::ListServiceRolloutsRequest request) override; @@ -103,6 +140,16 @@ class ServiceManagerConnectionImpl google::api::servicemanagement::v1::CreateServiceRolloutRequest const& request) override; + StatusOr CreateServiceRollout( + ExperimentalTag, NoAwaitTag, + google::api::servicemanagement::v1::CreateServiceRolloutRequest const& + request) override; + + future> + CreateServiceRollout( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GenerateConfigReport( google::api::servicemanagement::v1::GenerateConfigReportRequest const& diff --git a/google/cloud/servicemanagement/v1/internal/service_manager_tracing_connection.cc b/google/cloud/servicemanagement/v1/internal/service_manager_tracing_connection.cc index 0c42b1595c5dc..f49777f301e47 100644 --- a/google/cloud/servicemanagement/v1/internal/service_manager_tracing_connection.cc +++ b/google/cloud/servicemanagement/v1/internal/service_manager_tracing_connection.cc @@ -63,6 +63,27 @@ ServiceManagerTracingConnection::CreateService( return internal::EndSpan(std::move(span), child_->CreateService(request)); } +StatusOr +ServiceManagerTracingConnection::CreateService( + ExperimentalTag, NoAwaitTag, + google::api::servicemanagement::v1::CreateServiceRequest const& request) { + auto span = internal::MakeSpan( + "servicemanagement_v1::ServiceManagerConnection::CreateService"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->CreateService(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +ServiceManagerTracingConnection::CreateService( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "servicemanagement_v1::ServiceManagerConnection::CreateService"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->CreateService(ExperimentalTag{}, operation)); +} + future> ServiceManagerTracingConnection::DeleteService( google::api::servicemanagement::v1::DeleteServiceRequest const& request) { @@ -72,6 +93,27 @@ ServiceManagerTracingConnection::DeleteService( return internal::EndSpan(std::move(span), child_->DeleteService(request)); } +StatusOr +ServiceManagerTracingConnection::DeleteService( + ExperimentalTag, NoAwaitTag, + google::api::servicemanagement::v1::DeleteServiceRequest const& request) { + auto span = internal::MakeSpan( + "servicemanagement_v1::ServiceManagerConnection::DeleteService"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->DeleteService(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +ServiceManagerTracingConnection::DeleteService( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "servicemanagement_v1::ServiceManagerConnection::DeleteService"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->DeleteService(ExperimentalTag{}, operation)); +} + future> ServiceManagerTracingConnection::UndeleteService( google::api::servicemanagement::v1::UndeleteServiceRequest const& request) { @@ -81,6 +123,27 @@ ServiceManagerTracingConnection::UndeleteService( return internal::EndSpan(std::move(span), child_->UndeleteService(request)); } +StatusOr +ServiceManagerTracingConnection::UndeleteService( + ExperimentalTag, NoAwaitTag, + google::api::servicemanagement::v1::UndeleteServiceRequest const& request) { + auto span = internal::MakeSpan( + "servicemanagement_v1::ServiceManagerConnection::UndeleteService"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->UndeleteService(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +ServiceManagerTracingConnection::UndeleteService( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "servicemanagement_v1::ServiceManagerConnection::UndeleteService"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->UndeleteService(ExperimentalTag{}, operation)); +} + StreamRange ServiceManagerTracingConnection::ListServiceConfigs( google::api::servicemanagement::v1::ListServiceConfigsRequest request) { @@ -123,6 +186,29 @@ ServiceManagerTracingConnection::SubmitConfigSource( child_->SubmitConfigSource(request)); } +StatusOr +ServiceManagerTracingConnection::SubmitConfigSource( + ExperimentalTag, NoAwaitTag, + google::api::servicemanagement::v1::SubmitConfigSourceRequest const& + request) { + auto span = internal::MakeSpan( + "servicemanagement_v1::ServiceManagerConnection::SubmitConfigSource"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->SubmitConfigSource(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +ServiceManagerTracingConnection::SubmitConfigSource( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "servicemanagement_v1::ServiceManagerConnection::SubmitConfigSource"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->SubmitConfigSource( + ExperimentalTag{}, operation)); +} + StreamRange ServiceManagerTracingConnection::ListServiceRollouts( google::api::servicemanagement::v1::ListServiceRolloutsRequest request) { @@ -156,6 +242,29 @@ ServiceManagerTracingConnection::CreateServiceRollout( child_->CreateServiceRollout(request)); } +StatusOr +ServiceManagerTracingConnection::CreateServiceRollout( + ExperimentalTag, NoAwaitTag, + google::api::servicemanagement::v1::CreateServiceRolloutRequest const& + request) { + auto span = internal::MakeSpan( + "servicemanagement_v1::ServiceManagerConnection::CreateServiceRollout"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->CreateServiceRollout(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +ServiceManagerTracingConnection::CreateServiceRollout( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "servicemanagement_v1::ServiceManagerConnection::CreateServiceRollout"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->CreateServiceRollout( + ExperimentalTag{}, operation)); +} + StatusOr ServiceManagerTracingConnection::GenerateConfigReport( google::api::servicemanagement::v1::GenerateConfigReportRequest const& diff --git a/google/cloud/servicemanagement/v1/internal/service_manager_tracing_connection.h b/google/cloud/servicemanagement/v1/internal/service_manager_tracing_connection.h index 865d7585f973c..469934dbe1471 100644 --- a/google/cloud/servicemanagement/v1/internal/service_manager_tracing_connection.h +++ b/google/cloud/servicemanagement/v1/internal/service_manager_tracing_connection.h @@ -51,15 +51,42 @@ class ServiceManagerTracingConnection CreateService(google::api::servicemanagement::v1::CreateServiceRequest const& request) override; + StatusOr CreateService( + ExperimentalTag, NoAwaitTag, + google::api::servicemanagement::v1::CreateServiceRequest const& request) + override; + + future> + CreateService(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteService(google::api::servicemanagement::v1::DeleteServiceRequest const& request) override; + StatusOr DeleteService( + ExperimentalTag, NoAwaitTag, + google::api::servicemanagement::v1::DeleteServiceRequest const& request) + override; + + future> + DeleteService(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UndeleteService( google::api::servicemanagement::v1::UndeleteServiceRequest const& request) override; + StatusOr UndeleteService( + ExperimentalTag, NoAwaitTag, + google::api::servicemanagement::v1::UndeleteServiceRequest const& request) + override; + + future> + UndeleteService(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListServiceConfigs( google::api::servicemanagement::v1::ListServiceConfigsRequest request) override; @@ -78,6 +105,16 @@ class ServiceManagerTracingConnection google::api::servicemanagement::v1::SubmitConfigSourceRequest const& request) override; + StatusOr SubmitConfigSource( + ExperimentalTag, NoAwaitTag, + google::api::servicemanagement::v1::SubmitConfigSourceRequest const& + request) override; + + future< + StatusOr> + SubmitConfigSource(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListServiceRollouts( google::api::servicemanagement::v1::ListServiceRolloutsRequest request) override; @@ -91,6 +128,16 @@ class ServiceManagerTracingConnection google::api::servicemanagement::v1::CreateServiceRolloutRequest const& request) override; + StatusOr CreateServiceRollout( + ExperimentalTag, NoAwaitTag, + google::api::servicemanagement::v1::CreateServiceRolloutRequest const& + request) override; + + future> + CreateServiceRollout( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GenerateConfigReport( google::api::servicemanagement::v1::GenerateConfigReportRequest const& diff --git a/google/cloud/servicemanagement/v1/mocks/mock_service_manager_connection.h b/google/cloud/servicemanagement/v1/mocks/mock_service_manager_connection.h index ae5aa5c84bef3..214479a9b984b 100644 --- a/google/cloud/servicemanagement/v1/mocks/mock_service_manager_connection.h +++ b/google/cloud/servicemanagement/v1/mocks/mock_service_manager_connection.h @@ -63,12 +63,36 @@ class MockServiceManagerConnection (google::api::servicemanagement::v1::CreateServiceRequest const& request), (override)); + MOCK_METHOD( + StatusOr, CreateService, + (ExperimentalTag, NoAwaitTag, + google::api::servicemanagement::v1::CreateServiceRequest const& request), + (override)); + + MOCK_METHOD( + future>, + CreateService, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteService, (google::api::servicemanagement::v1::DeleteServiceRequest const& request), (override)); + MOCK_METHOD( + StatusOr, DeleteService, + (ExperimentalTag, NoAwaitTag, + google::api::servicemanagement::v1::DeleteServiceRequest const& request), + (override)); + + MOCK_METHOD( + future>, + DeleteService, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, UndeleteService, @@ -76,6 +100,19 @@ class MockServiceManagerConnection request), (override)); + MOCK_METHOD(StatusOr, UndeleteService, + (ExperimentalTag, NoAwaitTag, + google::api::servicemanagement::v1::UndeleteServiceRequest const& + request), + (override)); + + MOCK_METHOD(future>, + UndeleteService, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( (StreamRange), ListServiceConfigs, (google::api::servicemanagement::v1::ListServiceConfigsRequest request), @@ -101,6 +138,20 @@ class MockServiceManagerConnection request), (override)); + MOCK_METHOD( + StatusOr, SubmitConfigSource, + (ExperimentalTag, NoAwaitTag, + google::api::servicemanagement::v1::SubmitConfigSourceRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + SubmitConfigSource, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( (StreamRange), ListServiceRollouts, @@ -120,6 +171,19 @@ class MockServiceManagerConnection request), (override)); + MOCK_METHOD( + StatusOr, CreateServiceRollout, + (ExperimentalTag, NoAwaitTag, + google::api::servicemanagement::v1::CreateServiceRolloutRequest const& + request), + (override)); + + MOCK_METHOD(future>, + CreateServiceRollout, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr< google::api::servicemanagement::v1::GenerateConfigReportResponse>, diff --git a/google/cloud/servicemanagement/v1/service_manager_connection.cc b/google/cloud/servicemanagement/v1/service_manager_connection.cc index 8a1b2fcbfbcb7..613e72e0b4db4 100644 --- a/google/cloud/servicemanagement/v1/service_manager_connection.cc +++ b/google/cloud/servicemanagement/v1/service_manager_connection.cc @@ -60,6 +60,22 @@ ServiceManagerConnection::CreateService( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +ServiceManagerConnection::CreateService( + ExperimentalTag, NoAwaitTag, + google::api::servicemanagement::v1::CreateServiceRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +ServiceManagerConnection::CreateService(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> ServiceManagerConnection::DeleteService( google::api::servicemanagement::v1::DeleteServiceRequest const&) { @@ -68,6 +84,22 @@ ServiceManagerConnection::DeleteService( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +ServiceManagerConnection::DeleteService( + ExperimentalTag, NoAwaitTag, + google::api::servicemanagement::v1::DeleteServiceRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +ServiceManagerConnection::DeleteService(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> ServiceManagerConnection::UndeleteService( google::api::servicemanagement::v1::UndeleteServiceRequest const&) { @@ -76,6 +108,22 @@ ServiceManagerConnection::UndeleteService( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +ServiceManagerConnection::UndeleteService( + ExperimentalTag, NoAwaitTag, + google::api::servicemanagement::v1::UndeleteServiceRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +ServiceManagerConnection::UndeleteService( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StreamRange ServiceManagerConnection::ListServiceConfigs( google::api::servicemanagement::v1:: ListServiceConfigsRequest) { // NOLINT(performance-unnecessary-value-param) @@ -101,6 +149,22 @@ ServiceManagerConnection::SubmitConfigSource( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +ServiceManagerConnection::SubmitConfigSource( + ExperimentalTag, NoAwaitTag, + google::api::servicemanagement::v1::SubmitConfigSourceRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +ServiceManagerConnection::SubmitConfigSource( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StreamRange ServiceManagerConnection::ListServiceRollouts( google::api::servicemanagement::v1:: @@ -123,6 +187,22 @@ ServiceManagerConnection::CreateServiceRollout( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +ServiceManagerConnection::CreateServiceRollout( + ExperimentalTag, NoAwaitTag, + google::api::servicemanagement::v1::CreateServiceRolloutRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +ServiceManagerConnection::CreateServiceRollout( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr ServiceManagerConnection::GenerateConfigReport( google::api::servicemanagement::v1::GenerateConfigReportRequest const&) { diff --git a/google/cloud/servicemanagement/v1/service_manager_connection.h b/google/cloud/servicemanagement/v1/service_manager_connection.h index e679bf9aa8508..fd7ba6628b8c6 100644 --- a/google/cloud/servicemanagement/v1/service_manager_connection.h +++ b/google/cloud/servicemanagement/v1/service_manager_connection.h @@ -22,8 +22,10 @@ #include "google/cloud/servicemanagement/v1/internal/service_manager_retry_traits.h" #include "google/cloud/servicemanagement/v1/service_manager_connection_idempotency_policy.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/internal/retry_policy_impl.h" +#include "google/cloud/no_await_tag.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" #include "google/cloud/status_or.h" @@ -196,17 +198,44 @@ class ServiceManagerConnection { CreateService( google::api::servicemanagement::v1::CreateServiceRequest const& request); + virtual StatusOr CreateService( + ExperimentalTag, NoAwaitTag, + google::api::servicemanagement::v1::CreateServiceRequest const& request); + + virtual future> + CreateService(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future< StatusOr> DeleteService( google::api::servicemanagement::v1::DeleteServiceRequest const& request); + virtual StatusOr DeleteService( + ExperimentalTag, NoAwaitTag, + google::api::servicemanagement::v1::DeleteServiceRequest const& request); + + virtual future< + StatusOr> + DeleteService(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future< StatusOr> UndeleteService( google::api::servicemanagement::v1::UndeleteServiceRequest const& request); + virtual StatusOr UndeleteService( + ExperimentalTag, NoAwaitTag, + google::api::servicemanagement::v1::UndeleteServiceRequest const& + request); + + virtual future< + StatusOr> + UndeleteService(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StreamRange ListServiceConfigs( google::api::servicemanagement::v1::ListServiceConfigsRequest request); @@ -224,6 +253,16 @@ class ServiceManagerConnection { google::api::servicemanagement::v1::SubmitConfigSourceRequest const& request); + virtual StatusOr SubmitConfigSource( + ExperimentalTag, NoAwaitTag, + google::api::servicemanagement::v1::SubmitConfigSourceRequest const& + request); + + virtual future< + StatusOr> + SubmitConfigSource(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StreamRange ListServiceRollouts( google::api::servicemanagement::v1::ListServiceRolloutsRequest request); @@ -238,6 +277,15 @@ class ServiceManagerConnection { google::api::servicemanagement::v1::CreateServiceRolloutRequest const& request); + virtual StatusOr CreateServiceRollout( + ExperimentalTag, NoAwaitTag, + google::api::servicemanagement::v1::CreateServiceRolloutRequest const& + request); + + virtual future> + CreateServiceRollout(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StatusOr< google::api::servicemanagement::v1::GenerateConfigReportResponse> GenerateConfigReport( diff --git a/google/cloud/serviceusage/v1/internal/service_usage_connection_impl.cc b/google/cloud/serviceusage/v1/internal/service_usage_connection_impl.cc index 8c99196d2d2fc..ccc106ace65d8 100644 --- a/google/cloud/serviceusage/v1/internal/service_usage_connection_impl.cc +++ b/google/cloud/serviceusage/v1/internal/service_usage_connection_impl.cc @@ -105,6 +105,59 @@ ServiceUsageConnectionImpl::EnableService( polling_policy(*current), __func__); } +StatusOr +ServiceUsageConnectionImpl::EnableService( + ExperimentalTag, NoAwaitTag, + google::api::serviceusage::v1::EnableServiceRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->EnableService(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::api::serviceusage::v1::EnableServiceRequest const& request) { + return stub_->EnableService(context, options, request); + }, + *current, request, __func__); +} + +future> +ServiceUsageConnectionImpl::EnableService( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to EnableService", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::api::serviceusage::v1::EnableServiceResponse>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::api::serviceusage::v1::EnableServiceResponse>, + polling_policy(*current), __func__); +} + future> ServiceUsageConnectionImpl::DisableService( google::api::serviceusage::v1::DisableServiceRequest const& request) { @@ -144,6 +197,59 @@ ServiceUsageConnectionImpl::DisableService( polling_policy(*current), __func__); } +StatusOr +ServiceUsageConnectionImpl::DisableService( + ExperimentalTag, NoAwaitTag, + google::api::serviceusage::v1::DisableServiceRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DisableService(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::api::serviceusage::v1::DisableServiceRequest const& request) { + return stub_->DisableService(context, options, request); + }, + *current, request, __func__); +} + +future> +ServiceUsageConnectionImpl::DisableService( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DisableService", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::api::serviceusage::v1::DisableServiceResponse>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::api::serviceusage::v1::DisableServiceResponse>, + polling_policy(*current), __func__); +} + StatusOr ServiceUsageConnectionImpl::GetService( google::api::serviceusage::v1::GetServiceRequest const& request) { @@ -232,6 +338,59 @@ ServiceUsageConnectionImpl::BatchEnableServices( polling_policy(*current), __func__); } +StatusOr +ServiceUsageConnectionImpl::BatchEnableServices( + ExperimentalTag, NoAwaitTag, + google::api::serviceusage::v1::BatchEnableServicesRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->BatchEnableServices(request), + [this](grpc::ClientContext& context, Options const& options, + google::api::serviceusage::v1::BatchEnableServicesRequest const& + request) { + return stub_->BatchEnableServices(context, options, request); + }, + *current, request, __func__); +} + +future> +ServiceUsageConnectionImpl::BatchEnableServices( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to BatchEnableServices", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::api::serviceusage::v1::BatchEnableServicesResponse>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::api::serviceusage::v1::BatchEnableServicesResponse>, + polling_policy(*current), __func__); +} + StatusOr ServiceUsageConnectionImpl::BatchGetServices( google::api::serviceusage::v1::BatchGetServicesRequest const& request) { diff --git a/google/cloud/serviceusage/v1/internal/service_usage_connection_impl.h b/google/cloud/serviceusage/v1/internal/service_usage_connection_impl.h index 8dd6b38798599..00bb8caf687c5 100644 --- a/google/cloud/serviceusage/v1/internal/service_usage_connection_impl.h +++ b/google/cloud/serviceusage/v1/internal/service_usage_connection_impl.h @@ -56,10 +56,28 @@ class ServiceUsageConnectionImpl EnableService(google::api::serviceusage::v1::EnableServiceRequest const& request) override; + StatusOr EnableService( + ExperimentalTag, NoAwaitTag, + google::api::serviceusage::v1::EnableServiceRequest const& request) + override; + + future> + EnableService(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DisableService(google::api::serviceusage::v1::DisableServiceRequest const& request) override; + StatusOr DisableService( + ExperimentalTag, NoAwaitTag, + google::api::serviceusage::v1::DisableServiceRequest const& request) + override; + + future> + DisableService(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetService( google::api::serviceusage::v1::GetServiceRequest const& request) override; @@ -71,6 +89,15 @@ class ServiceUsageConnectionImpl google::api::serviceusage::v1::BatchEnableServicesRequest const& request) override; + StatusOr BatchEnableServices( + ExperimentalTag, NoAwaitTag, + google::api::serviceusage::v1::BatchEnableServicesRequest const& request) + override; + + future> + BatchEnableServices(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr BatchGetServices(google::api::serviceusage::v1::BatchGetServicesRequest const& request) override; diff --git a/google/cloud/serviceusage/v1/internal/service_usage_tracing_connection.cc b/google/cloud/serviceusage/v1/internal/service_usage_tracing_connection.cc index 804523f1fc3ec..2326715e0bd64 100644 --- a/google/cloud/serviceusage/v1/internal/service_usage_tracing_connection.cc +++ b/google/cloud/serviceusage/v1/internal/service_usage_tracing_connection.cc @@ -42,6 +42,27 @@ ServiceUsageTracingConnection::EnableService( return internal::EndSpan(std::move(span), child_->EnableService(request)); } +StatusOr +ServiceUsageTracingConnection::EnableService( + ExperimentalTag, NoAwaitTag, + google::api::serviceusage::v1::EnableServiceRequest const& request) { + auto span = internal::MakeSpan( + "serviceusage_v1::ServiceUsageConnection::EnableService"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->EnableService(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +ServiceUsageTracingConnection::EnableService( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "serviceusage_v1::ServiceUsageConnection::EnableService"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->EnableService(ExperimentalTag{}, operation)); +} + future> ServiceUsageTracingConnection::DisableService( google::api::serviceusage::v1::DisableServiceRequest const& request) { @@ -51,6 +72,27 @@ ServiceUsageTracingConnection::DisableService( return internal::EndSpan(std::move(span), child_->DisableService(request)); } +StatusOr +ServiceUsageTracingConnection::DisableService( + ExperimentalTag, NoAwaitTag, + google::api::serviceusage::v1::DisableServiceRequest const& request) { + auto span = internal::MakeSpan( + "serviceusage_v1::ServiceUsageConnection::DisableService"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->DisableService(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +ServiceUsageTracingConnection::DisableService( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "serviceusage_v1::ServiceUsageConnection::DisableService"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->DisableService(ExperimentalTag{}, operation)); +} + StatusOr ServiceUsageTracingConnection::GetService( google::api::serviceusage::v1::GetServiceRequest const& request) { @@ -81,6 +123,28 @@ ServiceUsageTracingConnection::BatchEnableServices( child_->BatchEnableServices(request)); } +StatusOr +ServiceUsageTracingConnection::BatchEnableServices( + ExperimentalTag, NoAwaitTag, + google::api::serviceusage::v1::BatchEnableServicesRequest const& request) { + auto span = internal::MakeSpan( + "serviceusage_v1::ServiceUsageConnection::BatchEnableServices"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->BatchEnableServices(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +ServiceUsageTracingConnection::BatchEnableServices( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "serviceusage_v1::ServiceUsageConnection::BatchEnableServices"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->BatchEnableServices( + ExperimentalTag{}, operation)); +} + StatusOr ServiceUsageTracingConnection::BatchGetServices( google::api::serviceusage::v1::BatchGetServicesRequest const& request) { diff --git a/google/cloud/serviceusage/v1/internal/service_usage_tracing_connection.h b/google/cloud/serviceusage/v1/internal/service_usage_tracing_connection.h index ead06d964cc5a..50743dc814f43 100644 --- a/google/cloud/serviceusage/v1/internal/service_usage_tracing_connection.h +++ b/google/cloud/serviceusage/v1/internal/service_usage_tracing_connection.h @@ -44,10 +44,28 @@ class ServiceUsageTracingConnection EnableService(google::api::serviceusage::v1::EnableServiceRequest const& request) override; + StatusOr EnableService( + ExperimentalTag, NoAwaitTag, + google::api::serviceusage::v1::EnableServiceRequest const& request) + override; + + future> + EnableService(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DisableService(google::api::serviceusage::v1::DisableServiceRequest const& request) override; + StatusOr DisableService( + ExperimentalTag, NoAwaitTag, + google::api::serviceusage::v1::DisableServiceRequest const& request) + override; + + future> + DisableService(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetService( google::api::serviceusage::v1::GetServiceRequest const& request) override; @@ -59,6 +77,15 @@ class ServiceUsageTracingConnection google::api::serviceusage::v1::BatchEnableServicesRequest const& request) override; + StatusOr BatchEnableServices( + ExperimentalTag, NoAwaitTag, + google::api::serviceusage::v1::BatchEnableServicesRequest const& request) + override; + + future> + BatchEnableServices(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr BatchGetServices(google::api::serviceusage::v1::BatchGetServicesRequest const& request) override; diff --git a/google/cloud/serviceusage/v1/mocks/mock_service_usage_connection.h b/google/cloud/serviceusage/v1/mocks/mock_service_usage_connection.h index 87a32a31a3c50..68b044a9b429d 100644 --- a/google/cloud/serviceusage/v1/mocks/mock_service_usage_connection.h +++ b/google/cloud/serviceusage/v1/mocks/mock_service_usage_connection.h @@ -53,12 +53,36 @@ class MockServiceUsageConnection (google::api::serviceusage::v1::EnableServiceRequest const& request), (override)); + MOCK_METHOD( + StatusOr, EnableService, + (ExperimentalTag, NoAwaitTag, + google::api::serviceusage::v1::EnableServiceRequest const& request), + (override)); + + MOCK_METHOD( + future>, + EnableService, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DisableService, (google::api::serviceusage::v1::DisableServiceRequest const& request), (override)); + MOCK_METHOD( + StatusOr, DisableService, + (ExperimentalTag, NoAwaitTag, + google::api::serviceusage::v1::DisableServiceRequest const& request), + (override)); + + MOCK_METHOD( + future>, + DisableService, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(StatusOr, GetService, (google::api::serviceusage::v1::GetServiceRequest const& request), (override)); @@ -76,6 +100,19 @@ class MockServiceUsageConnection request), (override)); + MOCK_METHOD(StatusOr, BatchEnableServices, + (ExperimentalTag, NoAwaitTag, + google::api::serviceusage::v1::BatchEnableServicesRequest const& + request), + (override)); + + MOCK_METHOD( + future< + StatusOr>, + BatchEnableServices, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr, BatchGetServices, diff --git a/google/cloud/serviceusage/v1/service_usage_connection.cc b/google/cloud/serviceusage/v1/service_usage_connection.cc index 84bd3c025d75f..6abb10f1ea006 100644 --- a/google/cloud/serviceusage/v1/service_usage_connection.cc +++ b/google/cloud/serviceusage/v1/service_usage_connection.cc @@ -46,6 +46,21 @@ ServiceUsageConnection::EnableService( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr ServiceUsageConnection::EnableService( + ExperimentalTag, NoAwaitTag, + google::api::serviceusage::v1::EnableServiceRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +ServiceUsageConnection::EnableService(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> ServiceUsageConnection::DisableService( google::api::serviceusage::v1::DisableServiceRequest const&) { @@ -54,6 +69,21 @@ ServiceUsageConnection::DisableService( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr ServiceUsageConnection::DisableService( + ExperimentalTag, NoAwaitTag, + google::api::serviceusage::v1::DisableServiceRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +ServiceUsageConnection::DisableService(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr ServiceUsageConnection::GetService( google::api::serviceusage::v1::GetServiceRequest const&) { @@ -76,6 +106,22 @@ ServiceUsageConnection::BatchEnableServices( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +ServiceUsageConnection::BatchEnableServices( + ExperimentalTag, NoAwaitTag, + google::api::serviceusage::v1::BatchEnableServicesRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +ServiceUsageConnection::BatchEnableServices( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr ServiceUsageConnection::BatchGetServices( google::api::serviceusage::v1::BatchGetServicesRequest const&) { diff --git a/google/cloud/serviceusage/v1/service_usage_connection.h b/google/cloud/serviceusage/v1/service_usage_connection.h index 626d343846a1a..336751d036030 100644 --- a/google/cloud/serviceusage/v1/service_usage_connection.h +++ b/google/cloud/serviceusage/v1/service_usage_connection.h @@ -22,8 +22,10 @@ #include "google/cloud/serviceusage/v1/internal/service_usage_retry_traits.h" #include "google/cloud/serviceusage/v1/service_usage_connection_idempotency_policy.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/internal/retry_policy_impl.h" +#include "google/cloud/no_await_tag.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" #include "google/cloud/status_or.h" @@ -189,11 +191,28 @@ class ServiceUsageConnection { EnableService( google::api::serviceusage::v1::EnableServiceRequest const& request); + virtual StatusOr EnableService( + ExperimentalTag, NoAwaitTag, + google::api::serviceusage::v1::EnableServiceRequest const& request); + + virtual future> + EnableService(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future< StatusOr> DisableService( google::api::serviceusage::v1::DisableServiceRequest const& request); + virtual StatusOr DisableService( + ExperimentalTag, NoAwaitTag, + google::api::serviceusage::v1::DisableServiceRequest const& request); + + virtual future< + StatusOr> + DisableService(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StatusOr GetService( google::api::serviceusage::v1::GetServiceRequest const& request); @@ -205,6 +224,15 @@ class ServiceUsageConnection { BatchEnableServices( google::api::serviceusage::v1::BatchEnableServicesRequest const& request); + virtual StatusOr BatchEnableServices( + ExperimentalTag, NoAwaitTag, + google::api::serviceusage::v1::BatchEnableServicesRequest const& request); + + virtual future< + StatusOr> + BatchEnableServices(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StatusOr BatchGetServices( google::api::serviceusage::v1::BatchGetServicesRequest const& request); diff --git a/google/cloud/shell/v1/cloud_shell_connection.cc b/google/cloud/shell/v1/cloud_shell_connection.cc index 11cf4edb3f839..23b28b77503ed 100644 --- a/google/cloud/shell/v1/cloud_shell_connection.cc +++ b/google/cloud/shell/v1/cloud_shell_connection.cc @@ -51,6 +51,22 @@ CloudShellServiceConnection::StartEnvironment( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +CloudShellServiceConnection::StartEnvironment( + ExperimentalTag, NoAwaitTag, + google::cloud::shell::v1::StartEnvironmentRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +CloudShellServiceConnection::StartEnvironment( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> CloudShellServiceConnection::AuthorizeEnvironment( google::cloud::shell::v1::AuthorizeEnvironmentRequest const&) { @@ -59,6 +75,22 @@ CloudShellServiceConnection::AuthorizeEnvironment( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +CloudShellServiceConnection::AuthorizeEnvironment( + ExperimentalTag, NoAwaitTag, + google::cloud::shell::v1::AuthorizeEnvironmentRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +CloudShellServiceConnection::AuthorizeEnvironment( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> CloudShellServiceConnection::AddPublicKey( google::cloud::shell::v1::AddPublicKeyRequest const&) { @@ -67,6 +99,22 @@ CloudShellServiceConnection::AddPublicKey( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +CloudShellServiceConnection::AddPublicKey( + ExperimentalTag, NoAwaitTag, + google::cloud::shell::v1::AddPublicKeyRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +CloudShellServiceConnection::AddPublicKey( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> CloudShellServiceConnection::RemovePublicKey( google::cloud::shell::v1::RemovePublicKeyRequest const&) { @@ -75,6 +123,22 @@ CloudShellServiceConnection::RemovePublicKey( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +CloudShellServiceConnection::RemovePublicKey( + ExperimentalTag, NoAwaitTag, + google::cloud::shell::v1::RemovePublicKeyRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +CloudShellServiceConnection::RemovePublicKey( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + std::shared_ptr MakeCloudShellServiceConnection( Options options) { internal::CheckExpectedOptions StartEnvironment( + ExperimentalTag, NoAwaitTag, + google::cloud::shell::v1::StartEnvironmentRequest const& request); + + virtual future> + StartEnvironment(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future< StatusOr> AuthorizeEnvironment( google::cloud::shell::v1::AuthorizeEnvironmentRequest const& request); + virtual StatusOr AuthorizeEnvironment( + ExperimentalTag, NoAwaitTag, + google::cloud::shell::v1::AuthorizeEnvironmentRequest const& request); + + virtual future< + StatusOr> + AuthorizeEnvironment(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> AddPublicKey(google::cloud::shell::v1::AddPublicKeyRequest const& request); + virtual StatusOr AddPublicKey( + ExperimentalTag, NoAwaitTag, + google::cloud::shell::v1::AddPublicKeyRequest const& request); + + virtual future> + AddPublicKey(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> RemovePublicKey( google::cloud::shell::v1::RemovePublicKeyRequest const& request); + + virtual StatusOr RemovePublicKey( + ExperimentalTag, NoAwaitTag, + google::cloud::shell::v1::RemovePublicKeyRequest const& request); + + virtual future> + RemovePublicKey(ExperimentalTag, + google::longrunning::Operation const& operation); }; /** diff --git a/google/cloud/shell/v1/internal/cloud_shell_connection_impl.cc b/google/cloud/shell/v1/internal/cloud_shell_connection_impl.cc index 09f999b348b9a..13d789266ca95 100644 --- a/google/cloud/shell/v1/internal/cloud_shell_connection_impl.cc +++ b/google/cloud/shell/v1/internal/cloud_shell_connection_impl.cc @@ -116,6 +116,58 @@ CloudShellServiceConnectionImpl::StartEnvironment( polling_policy(*current), __func__); } +StatusOr +CloudShellServiceConnectionImpl::StartEnvironment( + ExperimentalTag, NoAwaitTag, + google::cloud::shell::v1::StartEnvironmentRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->StartEnvironment(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::shell::v1::StartEnvironmentRequest const& request) { + return stub_->StartEnvironment(context, options, request); + }, + *current, request, __func__); +} + +future> +CloudShellServiceConnectionImpl::StartEnvironment( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to StartEnvironment", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::shell::v1::StartEnvironmentResponse>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::shell::v1::StartEnvironmentResponse>, + polling_policy(*current), __func__); +} + future> CloudShellServiceConnectionImpl::AuthorizeEnvironment( google::cloud::shell::v1::AuthorizeEnvironmentRequest const& request) { @@ -156,6 +208,60 @@ CloudShellServiceConnectionImpl::AuthorizeEnvironment( polling_policy(*current), __func__); } +StatusOr +CloudShellServiceConnectionImpl::AuthorizeEnvironment( + ExperimentalTag, NoAwaitTag, + google::cloud::shell::v1::AuthorizeEnvironmentRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->AuthorizeEnvironment(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::shell::v1::AuthorizeEnvironmentRequest const& + request) { + return stub_->AuthorizeEnvironment(context, options, request); + }, + *current, request, __func__); +} + +future> +CloudShellServiceConnectionImpl::AuthorizeEnvironment( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to AuthorizeEnvironment", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::shell::v1::AuthorizeEnvironmentResponse>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::shell::v1::AuthorizeEnvironmentResponse>, + polling_policy(*current), __func__); +} + future> CloudShellServiceConnectionImpl::AddPublicKey( google::cloud::shell::v1::AddPublicKeyRequest const& request) { @@ -195,6 +301,58 @@ CloudShellServiceConnectionImpl::AddPublicKey( polling_policy(*current), __func__); } +StatusOr +CloudShellServiceConnectionImpl::AddPublicKey( + ExperimentalTag, NoAwaitTag, + google::cloud::shell::v1::AddPublicKeyRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->AddPublicKey(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::shell::v1::AddPublicKeyRequest const& request) { + return stub_->AddPublicKey(context, options, request); + }, + *current, request, __func__); +} + +future> +CloudShellServiceConnectionImpl::AddPublicKey( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to AddPublicKey", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::shell::v1::AddPublicKeyResponse>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::shell::v1::AddPublicKeyResponse>, + polling_policy(*current), __func__); +} + future> CloudShellServiceConnectionImpl::RemovePublicKey( google::cloud::shell::v1::RemovePublicKeyRequest const& request) { @@ -234,6 +392,58 @@ CloudShellServiceConnectionImpl::RemovePublicKey( polling_policy(*current), __func__); } +StatusOr +CloudShellServiceConnectionImpl::RemovePublicKey( + ExperimentalTag, NoAwaitTag, + google::cloud::shell::v1::RemovePublicKeyRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->RemovePublicKey(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::shell::v1::RemovePublicKeyRequest const& request) { + return stub_->RemovePublicKey(context, options, request); + }, + *current, request, __func__); +} + +future> +CloudShellServiceConnectionImpl::RemovePublicKey( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to RemovePublicKey", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::shell::v1::RemovePublicKeyResponse>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::shell::v1::RemovePublicKeyResponse>, + polling_policy(*current), __func__); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace shell_v1_internal } // namespace cloud diff --git a/google/cloud/shell/v1/internal/cloud_shell_connection_impl.h b/google/cloud/shell/v1/internal/cloud_shell_connection_impl.h index 2c4ef9307aaab..9e9f5f9b9e710 100644 --- a/google/cloud/shell/v1/internal/cloud_shell_connection_impl.h +++ b/google/cloud/shell/v1/internal/cloud_shell_connection_impl.h @@ -58,18 +58,53 @@ class CloudShellServiceConnectionImpl StartEnvironment(google::cloud::shell::v1::StartEnvironmentRequest const& request) override; + StatusOr StartEnvironment( + ExperimentalTag, NoAwaitTag, + google::cloud::shell::v1::StartEnvironmentRequest const& request) + override; + + future> + StartEnvironment(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> AuthorizeEnvironment( google::cloud::shell::v1::AuthorizeEnvironmentRequest const& request) override; + StatusOr AuthorizeEnvironment( + ExperimentalTag, NoAwaitTag, + google::cloud::shell::v1::AuthorizeEnvironmentRequest const& request) + override; + + future> + AuthorizeEnvironment( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> AddPublicKey( google::cloud::shell::v1::AddPublicKeyRequest const& request) override; + StatusOr AddPublicKey( + ExperimentalTag, NoAwaitTag, + google::cloud::shell::v1::AddPublicKeyRequest const& request) override; + + future> AddPublicKey( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> RemovePublicKey( google::cloud::shell::v1::RemovePublicKeyRequest const& request) override; + StatusOr RemovePublicKey( + ExperimentalTag, NoAwaitTag, + google::cloud::shell::v1::RemovePublicKeyRequest const& request) override; + + future> + RemovePublicKey(ExperimentalTag, + google::longrunning::Operation const& operation) override; + private: std::unique_ptr background_; std::shared_ptr stub_; diff --git a/google/cloud/shell/v1/internal/cloud_shell_tracing_connection.cc b/google/cloud/shell/v1/internal/cloud_shell_tracing_connection.cc index bfbab738cf97d..327598369ea1e 100644 --- a/google/cloud/shell/v1/internal/cloud_shell_tracing_connection.cc +++ b/google/cloud/shell/v1/internal/cloud_shell_tracing_connection.cc @@ -50,6 +50,28 @@ CloudShellServiceTracingConnection::StartEnvironment( return internal::EndSpan(std::move(span), child_->StartEnvironment(request)); } +StatusOr +CloudShellServiceTracingConnection::StartEnvironment( + ExperimentalTag, NoAwaitTag, + google::cloud::shell::v1::StartEnvironmentRequest const& request) { + auto span = internal::MakeSpan( + "shell_v1::CloudShellServiceConnection::StartEnvironment"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->StartEnvironment(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +CloudShellServiceTracingConnection::StartEnvironment( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "shell_v1::CloudShellServiceConnection::StartEnvironment"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->StartEnvironment(ExperimentalTag{}, operation)); +} + future> CloudShellServiceTracingConnection::AuthorizeEnvironment( google::cloud::shell::v1::AuthorizeEnvironmentRequest const& request) { @@ -60,6 +82,28 @@ CloudShellServiceTracingConnection::AuthorizeEnvironment( child_->AuthorizeEnvironment(request)); } +StatusOr +CloudShellServiceTracingConnection::AuthorizeEnvironment( + ExperimentalTag, NoAwaitTag, + google::cloud::shell::v1::AuthorizeEnvironmentRequest const& request) { + auto span = internal::MakeSpan( + "shell_v1::CloudShellServiceConnection::AuthorizeEnvironment"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->AuthorizeEnvironment(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +CloudShellServiceTracingConnection::AuthorizeEnvironment( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "shell_v1::CloudShellServiceConnection::AuthorizeEnvironment"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->AuthorizeEnvironment( + ExperimentalTag{}, operation)); +} + future> CloudShellServiceTracingConnection::AddPublicKey( google::cloud::shell::v1::AddPublicKeyRequest const& request) { @@ -69,6 +113,27 @@ CloudShellServiceTracingConnection::AddPublicKey( return internal::EndSpan(std::move(span), child_->AddPublicKey(request)); } +StatusOr +CloudShellServiceTracingConnection::AddPublicKey( + ExperimentalTag, NoAwaitTag, + google::cloud::shell::v1::AddPublicKeyRequest const& request) { + auto span = + internal::MakeSpan("shell_v1::CloudShellServiceConnection::AddPublicKey"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->AddPublicKey(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +CloudShellServiceTracingConnection::AddPublicKey( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = + internal::MakeSpan("shell_v1::CloudShellServiceConnection::AddPublicKey"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->AddPublicKey(ExperimentalTag{}, operation)); +} + future> CloudShellServiceTracingConnection::RemovePublicKey( google::cloud::shell::v1::RemovePublicKeyRequest const& request) { @@ -78,6 +143,27 @@ CloudShellServiceTracingConnection::RemovePublicKey( return internal::EndSpan(std::move(span), child_->RemovePublicKey(request)); } +StatusOr +CloudShellServiceTracingConnection::RemovePublicKey( + ExperimentalTag, NoAwaitTag, + google::cloud::shell::v1::RemovePublicKeyRequest const& request) { + auto span = internal::MakeSpan( + "shell_v1::CloudShellServiceConnection::RemovePublicKey"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->RemovePublicKey(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +CloudShellServiceTracingConnection::RemovePublicKey( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "shell_v1::CloudShellServiceConnection::RemovePublicKey"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->RemovePublicKey(ExperimentalTag{}, operation)); +} + #endif // GOOGLE_CLOUD_CPP_HAVE_OPENTELEMETRY std::shared_ptr diff --git a/google/cloud/shell/v1/internal/cloud_shell_tracing_connection.h b/google/cloud/shell/v1/internal/cloud_shell_tracing_connection.h index 3ce57a9ed9696..e608023a27637 100644 --- a/google/cloud/shell/v1/internal/cloud_shell_tracing_connection.h +++ b/google/cloud/shell/v1/internal/cloud_shell_tracing_connection.h @@ -47,18 +47,53 @@ class CloudShellServiceTracingConnection StartEnvironment(google::cloud::shell::v1::StartEnvironmentRequest const& request) override; + StatusOr StartEnvironment( + ExperimentalTag, NoAwaitTag, + google::cloud::shell::v1::StartEnvironmentRequest const& request) + override; + + future> + StartEnvironment(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> AuthorizeEnvironment( google::cloud::shell::v1::AuthorizeEnvironmentRequest const& request) override; + StatusOr AuthorizeEnvironment( + ExperimentalTag, NoAwaitTag, + google::cloud::shell::v1::AuthorizeEnvironmentRequest const& request) + override; + + future> + AuthorizeEnvironment( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> AddPublicKey( google::cloud::shell::v1::AddPublicKeyRequest const& request) override; + StatusOr AddPublicKey( + ExperimentalTag, NoAwaitTag, + google::cloud::shell::v1::AddPublicKeyRequest const& request) override; + + future> AddPublicKey( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> RemovePublicKey( google::cloud::shell::v1::RemovePublicKeyRequest const& request) override; + StatusOr RemovePublicKey( + ExperimentalTag, NoAwaitTag, + google::cloud::shell::v1::RemovePublicKeyRequest const& request) override; + + future> + RemovePublicKey(ExperimentalTag, + google::longrunning::Operation const& operation) override; + private: std::shared_ptr child_; }; diff --git a/google/cloud/shell/v1/mocks/mock_cloud_shell_connection.h b/google/cloud/shell/v1/mocks/mock_cloud_shell_connection.h index d10ed3db8a2a4..7cf8e609574ce 100644 --- a/google/cloud/shell/v1/mocks/mock_cloud_shell_connection.h +++ b/google/cloud/shell/v1/mocks/mock_cloud_shell_connection.h @@ -57,22 +57,68 @@ class MockCloudShellServiceConnection (google::cloud::shell::v1::StartEnvironmentRequest const& request), (override)); + MOCK_METHOD( + StatusOr, StartEnvironment, + (ExperimentalTag, NoAwaitTag, + google::cloud::shell::v1::StartEnvironmentRequest const& request), + (override)); + + MOCK_METHOD( + future>, + StartEnvironment, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, AuthorizeEnvironment, (google::cloud::shell::v1::AuthorizeEnvironmentRequest const& request), (override)); + MOCK_METHOD( + StatusOr, AuthorizeEnvironment, + (ExperimentalTag, NoAwaitTag, + google::cloud::shell::v1::AuthorizeEnvironmentRequest const& request), + (override)); + + MOCK_METHOD( + future>, + AuthorizeEnvironment, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, AddPublicKey, (google::cloud::shell::v1::AddPublicKeyRequest const& request), (override)); + MOCK_METHOD(StatusOr, AddPublicKey, + (ExperimentalTag, NoAwaitTag, + google::cloud::shell::v1::AddPublicKeyRequest const& request), + (override)); + + MOCK_METHOD(future>, + AddPublicKey, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, RemovePublicKey, (google::cloud::shell::v1::RemovePublicKeyRequest const& request), (override)); + + MOCK_METHOD(StatusOr, RemovePublicKey, + (ExperimentalTag, NoAwaitTag, + google::cloud::shell::v1::RemovePublicKeyRequest const& request), + (override)); + + MOCK_METHOD( + future>, + RemovePublicKey, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); }; GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END diff --git a/google/cloud/spanner/admin/database_admin_connection.cc b/google/cloud/spanner/admin/database_admin_connection.cc index 0aced61c1976f..36977b0583e45 100644 --- a/google/cloud/spanner/admin/database_admin_connection.cc +++ b/google/cloud/spanner/admin/database_admin_connection.cc @@ -54,6 +54,22 @@ DatabaseAdminConnection::CreateDatabase( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +DatabaseAdminConnection::CreateDatabase( + ExperimentalTag, NoAwaitTag, + google::spanner::admin::database::v1::CreateDatabaseRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +DatabaseAdminConnection::CreateDatabase(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr DatabaseAdminConnection::GetDatabase( google::spanner::admin::database::v1::GetDatabaseRequest const&) { @@ -68,6 +84,22 @@ DatabaseAdminConnection::UpdateDatabase( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +DatabaseAdminConnection::UpdateDatabase( + ExperimentalTag, NoAwaitTag, + google::spanner::admin::database::v1::UpdateDatabaseRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +DatabaseAdminConnection::UpdateDatabase(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future< StatusOr> DatabaseAdminConnection::UpdateDatabaseDdl( @@ -77,6 +109,23 @@ DatabaseAdminConnection::UpdateDatabaseDdl( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +DatabaseAdminConnection::UpdateDatabaseDdl( + ExperimentalTag, NoAwaitTag, + google::spanner::admin::database::v1::UpdateDatabaseDdlRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future< + StatusOr> +DatabaseAdminConnection::UpdateDatabaseDdl( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + Status DatabaseAdminConnection::DropDatabase( google::spanner::admin::database::v1::DropDatabaseRequest const&) { return Status(StatusCode::kUnimplemented, "not implemented"); @@ -112,6 +161,21 @@ DatabaseAdminConnection::CreateBackup( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr DatabaseAdminConnection::CreateBackup( + ExperimentalTag, NoAwaitTag, + google::spanner::admin::database::v1::CreateBackupRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +DatabaseAdminConnection::CreateBackup(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> DatabaseAdminConnection::CopyBackup( google::spanner::admin::database::v1::CopyBackupRequest const&) { @@ -120,6 +184,21 @@ DatabaseAdminConnection::CopyBackup( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr DatabaseAdminConnection::CopyBackup( + ExperimentalTag, NoAwaitTag, + google::spanner::admin::database::v1::CopyBackupRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +DatabaseAdminConnection::CopyBackup(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr DatabaseAdminConnection::GetBackup( google::spanner::admin::database::v1::GetBackupRequest const&) { @@ -153,6 +232,22 @@ DatabaseAdminConnection::RestoreDatabase( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +DatabaseAdminConnection::RestoreDatabase( + ExperimentalTag, NoAwaitTag, + google::spanner::admin::database::v1::RestoreDatabaseRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +DatabaseAdminConnection::RestoreDatabase( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StreamRange DatabaseAdminConnection::ListDatabaseOperations( google::spanner::admin::database::v1:: diff --git a/google/cloud/spanner/admin/database_admin_connection.h b/google/cloud/spanner/admin/database_admin_connection.h index d50e980dc3492..80225e7c4bc1b 100644 --- a/google/cloud/spanner/admin/database_admin_connection.h +++ b/google/cloud/spanner/admin/database_admin_connection.h @@ -22,8 +22,10 @@ #include "google/cloud/spanner/admin/database_admin_connection_idempotency_policy.h" #include "google/cloud/spanner/admin/internal/database_admin_retry_traits.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/internal/retry_policy_impl.h" +#include "google/cloud/no_await_tag.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" #include "google/cloud/status_or.h" @@ -194,6 +196,15 @@ class DatabaseAdminConnection { google::spanner::admin::database::v1::CreateDatabaseRequest const& request); + virtual StatusOr CreateDatabase( + ExperimentalTag, NoAwaitTag, + google::spanner::admin::database::v1::CreateDatabaseRequest const& + request); + + virtual future> + CreateDatabase(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StatusOr GetDatabase( google::spanner::admin::database::v1::GetDatabaseRequest const& request); @@ -202,12 +213,31 @@ class DatabaseAdminConnection { google::spanner::admin::database::v1::UpdateDatabaseRequest const& request); + virtual StatusOr UpdateDatabase( + ExperimentalTag, NoAwaitTag, + google::spanner::admin::database::v1::UpdateDatabaseRequest const& + request); + + virtual future> + UpdateDatabase(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future< StatusOr> UpdateDatabaseDdl( google::spanner::admin::database::v1::UpdateDatabaseDdlRequest const& request); + virtual StatusOr UpdateDatabaseDdl( + ExperimentalTag, NoAwaitTag, + google::spanner::admin::database::v1::UpdateDatabaseDdlRequest const& + request); + + virtual future< + StatusOr> + UpdateDatabaseDdl(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual Status DropDatabase( google::spanner::admin::database::v1::DropDatabaseRequest const& request); @@ -229,10 +259,25 @@ class DatabaseAdminConnection { CreateBackup( google::spanner::admin::database::v1::CreateBackupRequest const& request); + virtual StatusOr CreateBackup( + ExperimentalTag, NoAwaitTag, + google::spanner::admin::database::v1::CreateBackupRequest const& request); + + virtual future> + CreateBackup(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> CopyBackup( google::spanner::admin::database::v1::CopyBackupRequest const& request); + virtual StatusOr CopyBackup( + ExperimentalTag, NoAwaitTag, + google::spanner::admin::database::v1::CopyBackupRequest const& request); + + virtual future> + CopyBackup(ExperimentalTag, google::longrunning::Operation const& operation); + virtual StatusOr GetBackup( google::spanner::admin::database::v1::GetBackupRequest const& request); @@ -250,6 +295,15 @@ class DatabaseAdminConnection { google::spanner::admin::database::v1::RestoreDatabaseRequest const& request); + virtual StatusOr RestoreDatabase( + ExperimentalTag, NoAwaitTag, + google::spanner::admin::database::v1::RestoreDatabaseRequest const& + request); + + virtual future> + RestoreDatabase(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StreamRange ListDatabaseOperations( google::spanner::admin::database::v1::ListDatabaseOperationsRequest request); diff --git a/google/cloud/spanner/admin/instance_admin_connection.cc b/google/cloud/spanner/admin/instance_admin_connection.cc index c9506e0f0856b..711c6871e4901 100644 --- a/google/cloud/spanner/admin/instance_admin_connection.cc +++ b/google/cloud/spanner/admin/instance_admin_connection.cc @@ -60,6 +60,22 @@ InstanceAdminConnection::CreateInstanceConfig( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +InstanceAdminConnection::CreateInstanceConfig( + ExperimentalTag, NoAwaitTag, + google::spanner::admin::instance::v1::CreateInstanceConfigRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +InstanceAdminConnection::CreateInstanceConfig( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> InstanceAdminConnection::UpdateInstanceConfig( google::spanner::admin::instance::v1::UpdateInstanceConfigRequest const&) { @@ -68,6 +84,22 @@ InstanceAdminConnection::UpdateInstanceConfig( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +InstanceAdminConnection::UpdateInstanceConfig( + ExperimentalTag, NoAwaitTag, + google::spanner::admin::instance::v1::UpdateInstanceConfigRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +InstanceAdminConnection::UpdateInstanceConfig( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + Status InstanceAdminConnection::DeleteInstanceConfig( google::spanner::admin::instance::v1::DeleteInstanceConfigRequest const&) { return Status(StatusCode::kUnimplemented, "not implemented"); @@ -111,6 +143,22 @@ InstanceAdminConnection::CreateInstance( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +InstanceAdminConnection::CreateInstance( + ExperimentalTag, NoAwaitTag, + google::spanner::admin::instance::v1::CreateInstanceRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +InstanceAdminConnection::CreateInstance(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> InstanceAdminConnection::UpdateInstance( google::spanner::admin::instance::v1::UpdateInstanceRequest const&) { @@ -119,6 +167,22 @@ InstanceAdminConnection::UpdateInstance( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +InstanceAdminConnection::UpdateInstance( + ExperimentalTag, NoAwaitTag, + google::spanner::admin::instance::v1::UpdateInstanceRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +InstanceAdminConnection::UpdateInstance(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + Status InstanceAdminConnection::DeleteInstance( google::spanner::admin::instance::v1::DeleteInstanceRequest const&) { return Status(StatusCode::kUnimplemented, "not implemented"); @@ -155,6 +219,23 @@ InstanceAdminConnection::CreateInstancePartition( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +InstanceAdminConnection::CreateInstancePartition( + ExperimentalTag, NoAwaitTag, + google::spanner::admin::instance::v1:: + CreateInstancePartitionRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +InstanceAdminConnection::CreateInstancePartition( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + Status InstanceAdminConnection::DeleteInstancePartition( google::spanner::admin::instance::v1:: DeleteInstancePartitionRequest const&) { @@ -170,6 +251,23 @@ InstanceAdminConnection::UpdateInstancePartition( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +InstanceAdminConnection::UpdateInstancePartition( + ExperimentalTag, NoAwaitTag, + google::spanner::admin::instance::v1:: + UpdateInstancePartitionRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +InstanceAdminConnection::UpdateInstancePartition( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StreamRange InstanceAdminConnection::ListInstancePartitionOperations( google::spanner::admin::instance::v1:: diff --git a/google/cloud/spanner/admin/instance_admin_connection.h b/google/cloud/spanner/admin/instance_admin_connection.h index 4a0f354bf4968..63499aa616c70 100644 --- a/google/cloud/spanner/admin/instance_admin_connection.h +++ b/google/cloud/spanner/admin/instance_admin_connection.h @@ -22,8 +22,10 @@ #include "google/cloud/spanner/admin/instance_admin_connection_idempotency_policy.h" #include "google/cloud/spanner/admin/internal/instance_admin_retry_traits.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/internal/retry_policy_impl.h" +#include "google/cloud/no_await_tag.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" #include "google/cloud/status_or.h" @@ -199,11 +201,29 @@ class InstanceAdminConnection { google::spanner::admin::instance::v1::CreateInstanceConfigRequest const& request); + virtual StatusOr CreateInstanceConfig( + ExperimentalTag, NoAwaitTag, + google::spanner::admin::instance::v1::CreateInstanceConfigRequest const& + request); + + virtual future> + CreateInstanceConfig(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> UpdateInstanceConfig( google::spanner::admin::instance::v1::UpdateInstanceConfigRequest const& request); + virtual StatusOr UpdateInstanceConfig( + ExperimentalTag, NoAwaitTag, + google::spanner::admin::instance::v1::UpdateInstanceConfigRequest const& + request); + + virtual future> + UpdateInstanceConfig(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual Status DeleteInstanceConfig( google::spanner::admin::instance::v1::DeleteInstanceConfigRequest const& request); @@ -230,11 +250,29 @@ class InstanceAdminConnection { google::spanner::admin::instance::v1::CreateInstanceRequest const& request); + virtual StatusOr CreateInstance( + ExperimentalTag, NoAwaitTag, + google::spanner::admin::instance::v1::CreateInstanceRequest const& + request); + + virtual future> + CreateInstance(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> UpdateInstance( google::spanner::admin::instance::v1::UpdateInstanceRequest const& request); + virtual StatusOr UpdateInstance( + ExperimentalTag, NoAwaitTag, + google::spanner::admin::instance::v1::UpdateInstanceRequest const& + request); + + virtual future> + UpdateInstance(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual Status DeleteInstance( google::spanner::admin::instance::v1::DeleteInstanceRequest const& request); @@ -258,6 +296,16 @@ class InstanceAdminConnection { CreateInstancePartition(google::spanner::admin::instance::v1:: CreateInstancePartitionRequest const& request); + virtual StatusOr CreateInstancePartition( + ExperimentalTag, NoAwaitTag, + google::spanner::admin::instance::v1:: + CreateInstancePartitionRequest const& request); + + virtual future< + StatusOr> + CreateInstancePartition(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual Status DeleteInstancePartition( google::spanner::admin::instance::v1:: DeleteInstancePartitionRequest const& request); @@ -267,6 +315,16 @@ class InstanceAdminConnection { UpdateInstancePartition(google::spanner::admin::instance::v1:: UpdateInstancePartitionRequest const& request); + virtual StatusOr UpdateInstancePartition( + ExperimentalTag, NoAwaitTag, + google::spanner::admin::instance::v1:: + UpdateInstancePartitionRequest const& request); + + virtual future< + StatusOr> + UpdateInstancePartition(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StreamRange ListInstancePartitionOperations( google::spanner::admin::instance::v1:: diff --git a/google/cloud/spanner/admin/internal/database_admin_connection_impl.cc b/google/cloud/spanner/admin/internal/database_admin_connection_impl.cc index f787409538ac6..167cf39fd90df 100644 --- a/google/cloud/spanner/admin/internal/database_admin_connection_impl.cc +++ b/google/cloud/spanner/admin/internal/database_admin_connection_impl.cc @@ -141,6 +141,61 @@ DatabaseAdminConnectionImpl::CreateDatabase( polling_policy(*current), __func__); } +StatusOr +DatabaseAdminConnectionImpl::CreateDatabase( + ExperimentalTag, NoAwaitTag, + google::spanner::admin::database::v1::CreateDatabaseRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateDatabase(request), + [this](grpc::ClientContext& context, Options const& options, + google::spanner::admin::database::v1::CreateDatabaseRequest const& + request) { + return stub_->CreateDatabase(context, options, request); + }, + *current, request, __func__); +} + +future> +DatabaseAdminConnectionImpl::CreateDatabase( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to CreateDatabase", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::spanner::admin::database::v1::Database>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::spanner::admin::database::v1::Database>, + polling_policy(*current), __func__); +} + StatusOr DatabaseAdminConnectionImpl::GetDatabase( google::spanner::admin::database::v1::GetDatabaseRequest const& request) { @@ -197,6 +252,61 @@ DatabaseAdminConnectionImpl::UpdateDatabase( polling_policy(*current), __func__); } +StatusOr +DatabaseAdminConnectionImpl::UpdateDatabase( + ExperimentalTag, NoAwaitTag, + google::spanner::admin::database::v1::UpdateDatabaseRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UpdateDatabase(request), + [this](grpc::ClientContext& context, Options const& options, + google::spanner::admin::database::v1::UpdateDatabaseRequest const& + request) { + return stub_->UpdateDatabase(context, options, request); + }, + *current, request, __func__); +} + +future> +DatabaseAdminConnectionImpl::UpdateDatabase( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to UpdateDatabase", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::spanner::admin::database::v1::Database>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::spanner::admin::database::v1::Database>, + polling_policy(*current), __func__); +} + future< StatusOr> DatabaseAdminConnectionImpl::UpdateDatabaseDdl( @@ -239,6 +349,63 @@ DatabaseAdminConnectionImpl::UpdateDatabaseDdl( polling_policy(*current), __func__); } +StatusOr +DatabaseAdminConnectionImpl::UpdateDatabaseDdl( + ExperimentalTag, NoAwaitTag, + google::spanner::admin::database::v1::UpdateDatabaseDdlRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UpdateDatabaseDdl(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::spanner::admin::database::v1::UpdateDatabaseDdlRequest const& + request) { + return stub_->UpdateDatabaseDdl(context, options, request); + }, + *current, request, __func__); +} + +future< + StatusOr> +DatabaseAdminConnectionImpl::UpdateDatabaseDdl( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to UpdateDatabaseDdl", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::spanner::admin::database::v1::UpdateDatabaseDdlMetadata>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::spanner::admin::database::v1::UpdateDatabaseDdlMetadata>, + polling_policy(*current), __func__); +} + Status DatabaseAdminConnectionImpl::DropDatabase( google::spanner::admin::database::v1::DropDatabaseRequest const& request) { auto current = google::cloud::internal::SaveCurrentOptions(); @@ -349,6 +516,60 @@ DatabaseAdminConnectionImpl::CreateBackup( polling_policy(*current), __func__); } +StatusOr +DatabaseAdminConnectionImpl::CreateBackup( + ExperimentalTag, NoAwaitTag, + google::spanner::admin::database::v1::CreateBackupRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateBackup(request), + [this](grpc::ClientContext& context, Options const& options, + google::spanner::admin::database::v1::CreateBackupRequest const& + request) { + return stub_->CreateBackup(context, options, request); + }, + *current, request, __func__); +} + +future> +DatabaseAdminConnectionImpl::CreateBackup( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to CreateBackup", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::spanner::admin::database::v1::Backup>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::spanner::admin::database::v1::Backup>, + polling_policy(*current), __func__); +} + future> DatabaseAdminConnectionImpl::CopyBackup( google::spanner::admin::database::v1::CopyBackupRequest const& request) { @@ -389,6 +610,60 @@ DatabaseAdminConnectionImpl::CopyBackup( polling_policy(*current), __func__); } +StatusOr +DatabaseAdminConnectionImpl::CopyBackup( + ExperimentalTag, NoAwaitTag, + google::spanner::admin::database::v1::CopyBackupRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CopyBackup(request), + [this](grpc::ClientContext& context, Options const& options, + google::spanner::admin::database::v1::CopyBackupRequest const& + request) { + return stub_->CopyBackup(context, options, request); + }, + *current, request, __func__); +} + +future> +DatabaseAdminConnectionImpl::CopyBackup( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to CopyBackup", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::spanner::admin::database::v1::Backup>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::spanner::admin::database::v1::Backup>, + polling_policy(*current), __func__); +} + StatusOr DatabaseAdminConnectionImpl::GetBackup( google::spanner::admin::database::v1::GetBackupRequest const& request) { @@ -509,6 +784,61 @@ DatabaseAdminConnectionImpl::RestoreDatabase( polling_policy(*current), __func__); } +StatusOr +DatabaseAdminConnectionImpl::RestoreDatabase( + ExperimentalTag, NoAwaitTag, + google::spanner::admin::database::v1::RestoreDatabaseRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->RestoreDatabase(request), + [this](grpc::ClientContext& context, Options const& options, + google::spanner::admin::database::v1::RestoreDatabaseRequest const& + request) { + return stub_->RestoreDatabase(context, options, request); + }, + *current, request, __func__); +} + +future> +DatabaseAdminConnectionImpl::RestoreDatabase( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to RestoreDatabase", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::spanner::admin::database::v1::Database>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::spanner::admin::database::v1::Database>, + polling_policy(*current), __func__); +} + StreamRange DatabaseAdminConnectionImpl::ListDatabaseOperations( google::spanner::admin::database::v1::ListDatabaseOperationsRequest diff --git a/google/cloud/spanner/admin/internal/database_admin_connection_impl.h b/google/cloud/spanner/admin/internal/database_admin_connection_impl.h index 1bb17ebc33628..5d5b429cbc2e0 100644 --- a/google/cloud/spanner/admin/internal/database_admin_connection_impl.h +++ b/google/cloud/spanner/admin/internal/database_admin_connection_impl.h @@ -61,6 +61,15 @@ class DatabaseAdminConnectionImpl google::spanner::admin::database::v1::CreateDatabaseRequest const& request) override; + StatusOr CreateDatabase( + ExperimentalTag, NoAwaitTag, + google::spanner::admin::database::v1::CreateDatabaseRequest const& + request) override; + + future> + CreateDatabase(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetDatabase( google::spanner::admin::database::v1::GetDatabaseRequest const& request) override; @@ -70,12 +79,31 @@ class DatabaseAdminConnectionImpl google::spanner::admin::database::v1::UpdateDatabaseRequest const& request) override; + StatusOr UpdateDatabase( + ExperimentalTag, NoAwaitTag, + google::spanner::admin::database::v1::UpdateDatabaseRequest const& + request) override; + + future> + UpdateDatabase(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future< StatusOr> UpdateDatabaseDdl( google::spanner::admin::database::v1::UpdateDatabaseDdlRequest const& request) override; + StatusOr UpdateDatabaseDdl( + ExperimentalTag, NoAwaitTag, + google::spanner::admin::database::v1::UpdateDatabaseDdlRequest const& + request) override; + + future< + StatusOr> + UpdateDatabaseDdl(ExperimentalTag, + google::longrunning::Operation const& operation) override; + Status DropDatabase( google::spanner::admin::database::v1::DropDatabaseRequest const& request) override; @@ -98,10 +126,28 @@ class DatabaseAdminConnectionImpl google::spanner::admin::database::v1::CreateBackupRequest const& request) override; + StatusOr CreateBackup( + ExperimentalTag, NoAwaitTag, + google::spanner::admin::database::v1::CreateBackupRequest const& request) + override; + + future> CreateBackup( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> CopyBackup( google::spanner::admin::database::v1::CopyBackupRequest const& request) override; + StatusOr CopyBackup( + ExperimentalTag, NoAwaitTag, + google::spanner::admin::database::v1::CopyBackupRequest const& request) + override; + + future> CopyBackup( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetBackup( google::spanner::admin::database::v1::GetBackupRequest const& request) override; @@ -123,6 +169,15 @@ class DatabaseAdminConnectionImpl google::spanner::admin::database::v1::RestoreDatabaseRequest const& request) override; + StatusOr RestoreDatabase( + ExperimentalTag, NoAwaitTag, + google::spanner::admin::database::v1::RestoreDatabaseRequest const& + request) override; + + future> + RestoreDatabase(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListDatabaseOperations( google::spanner::admin::database::v1::ListDatabaseOperationsRequest request) override; diff --git a/google/cloud/spanner/admin/internal/database_admin_rest_connection_impl.cc b/google/cloud/spanner/admin/internal/database_admin_rest_connection_impl.cc index c3e13999cb9fc..b24fde70a7719 100644 --- a/google/cloud/spanner/admin/internal/database_admin_rest_connection_impl.cc +++ b/google/cloud/spanner/admin/internal/database_admin_rest_connection_impl.cc @@ -116,6 +116,60 @@ DatabaseAdminRestConnectionImpl::CreateDatabase( polling_policy(*current), __func__); } +StatusOr +DatabaseAdminRestConnectionImpl::CreateDatabase( + ExperimentalTag, NoAwaitTag, + google::spanner::admin::database::v1::CreateDatabaseRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateDatabase(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::spanner::admin::database::v1::CreateDatabaseRequest const& + request) { + return stub_->CreateDatabase(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +DatabaseAdminRestConnectionImpl::CreateDatabase( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to CreateDatabase", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::spanner::admin::database::v1::Database>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::spanner::admin::database::v1::Database>, + polling_policy(*current), __func__); +} + StatusOr DatabaseAdminRestConnectionImpl::GetDatabase( google::spanner::admin::database::v1::GetDatabaseRequest const& request) { @@ -170,6 +224,60 @@ DatabaseAdminRestConnectionImpl::UpdateDatabase( polling_policy(*current), __func__); } +StatusOr +DatabaseAdminRestConnectionImpl::UpdateDatabase( + ExperimentalTag, NoAwaitTag, + google::spanner::admin::database::v1::UpdateDatabaseRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UpdateDatabase(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::spanner::admin::database::v1::UpdateDatabaseRequest const& + request) { + return stub_->UpdateDatabase(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +DatabaseAdminRestConnectionImpl::UpdateDatabase( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to UpdateDatabase", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::spanner::admin::database::v1::Database>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::spanner::admin::database::v1::Database>, + polling_policy(*current), __func__); +} + future< StatusOr> DatabaseAdminRestConnectionImpl::UpdateDatabaseDdl( @@ -210,6 +318,62 @@ DatabaseAdminRestConnectionImpl::UpdateDatabaseDdl( polling_policy(*current), __func__); } +StatusOr +DatabaseAdminRestConnectionImpl::UpdateDatabaseDdl( + ExperimentalTag, NoAwaitTag, + google::spanner::admin::database::v1::UpdateDatabaseDdlRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UpdateDatabaseDdl(request), + [this]( + rest_internal::RestContext& rest_context, Options const& options, + google::spanner::admin::database::v1::UpdateDatabaseDdlRequest const& + request) { + return stub_->UpdateDatabaseDdl(rest_context, options, request); + }, + *current, request, __func__); +} + +future< + StatusOr> +DatabaseAdminRestConnectionImpl::UpdateDatabaseDdl( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to UpdateDatabaseDdl", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::spanner::admin::database::v1::UpdateDatabaseDdlMetadata>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::spanner::admin::database::v1::UpdateDatabaseDdlMetadata>, + polling_policy(*current), __func__); +} + Status DatabaseAdminRestConnectionImpl::DropDatabase( google::spanner::admin::database::v1::DropDatabaseRequest const& request) { auto current = google::cloud::internal::SaveCurrentOptions(); @@ -318,6 +482,59 @@ DatabaseAdminRestConnectionImpl::CreateBackup( polling_policy(*current), __func__); } +StatusOr +DatabaseAdminRestConnectionImpl::CreateBackup( + ExperimentalTag, NoAwaitTag, + google::spanner::admin::database::v1::CreateBackupRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateBackup(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::spanner::admin::database::v1::CreateBackupRequest const& + request) { + return stub_->CreateBackup(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +DatabaseAdminRestConnectionImpl::CreateBackup( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to CreateBackup", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::spanner::admin::database::v1::Backup>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::spanner::admin::database::v1::Backup>, + polling_policy(*current), __func__); +} + future> DatabaseAdminRestConnectionImpl::CopyBackup( google::spanner::admin::database::v1::CopyBackupRequest const& request) { @@ -356,6 +573,59 @@ DatabaseAdminRestConnectionImpl::CopyBackup( polling_policy(*current), __func__); } +StatusOr +DatabaseAdminRestConnectionImpl::CopyBackup( + ExperimentalTag, NoAwaitTag, + google::spanner::admin::database::v1::CopyBackupRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CopyBackup(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::spanner::admin::database::v1::CopyBackupRequest const& + request) { + return stub_->CopyBackup(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +DatabaseAdminRestConnectionImpl::CopyBackup( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to CopyBackup", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::spanner::admin::database::v1::Backup>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::spanner::admin::database::v1::Backup>, + polling_policy(*current), __func__); +} + StatusOr DatabaseAdminRestConnectionImpl::GetBackup( google::spanner::admin::database::v1::GetBackupRequest const& request) { @@ -475,6 +745,60 @@ DatabaseAdminRestConnectionImpl::RestoreDatabase( polling_policy(*current), __func__); } +StatusOr +DatabaseAdminRestConnectionImpl::RestoreDatabase( + ExperimentalTag, NoAwaitTag, + google::spanner::admin::database::v1::RestoreDatabaseRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->RestoreDatabase(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::spanner::admin::database::v1::RestoreDatabaseRequest const& + request) { + return stub_->RestoreDatabase(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +DatabaseAdminRestConnectionImpl::RestoreDatabase( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to RestoreDatabase", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::spanner::admin::database::v1::Database>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::spanner::admin::database::v1::Database>, + polling_policy(*current), __func__); +} + StreamRange DatabaseAdminRestConnectionImpl::ListDatabaseOperations( google::spanner::admin::database::v1::ListDatabaseOperationsRequest diff --git a/google/cloud/spanner/admin/internal/database_admin_rest_connection_impl.h b/google/cloud/spanner/admin/internal/database_admin_rest_connection_impl.h index 7e55df0a2d09c..8a079fcc3f455 100644 --- a/google/cloud/spanner/admin/internal/database_admin_rest_connection_impl.h +++ b/google/cloud/spanner/admin/internal/database_admin_rest_connection_impl.h @@ -59,6 +59,15 @@ class DatabaseAdminRestConnectionImpl google::spanner::admin::database::v1::CreateDatabaseRequest const& request) override; + StatusOr CreateDatabase( + ExperimentalTag, NoAwaitTag, + google::spanner::admin::database::v1::CreateDatabaseRequest const& + request) override; + + future> + CreateDatabase(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetDatabase( google::spanner::admin::database::v1::GetDatabaseRequest const& request) override; @@ -68,12 +77,31 @@ class DatabaseAdminRestConnectionImpl google::spanner::admin::database::v1::UpdateDatabaseRequest const& request) override; + StatusOr UpdateDatabase( + ExperimentalTag, NoAwaitTag, + google::spanner::admin::database::v1::UpdateDatabaseRequest const& + request) override; + + future> + UpdateDatabase(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future< StatusOr> UpdateDatabaseDdl( google::spanner::admin::database::v1::UpdateDatabaseDdlRequest const& request) override; + StatusOr UpdateDatabaseDdl( + ExperimentalTag, NoAwaitTag, + google::spanner::admin::database::v1::UpdateDatabaseDdlRequest const& + request) override; + + future< + StatusOr> + UpdateDatabaseDdl(ExperimentalTag, + google::longrunning::Operation const& operation) override; + Status DropDatabase( google::spanner::admin::database::v1::DropDatabaseRequest const& request) override; @@ -96,10 +124,28 @@ class DatabaseAdminRestConnectionImpl google::spanner::admin::database::v1::CreateBackupRequest const& request) override; + StatusOr CreateBackup( + ExperimentalTag, NoAwaitTag, + google::spanner::admin::database::v1::CreateBackupRequest const& request) + override; + + future> CreateBackup( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> CopyBackup( google::spanner::admin::database::v1::CopyBackupRequest const& request) override; + StatusOr CopyBackup( + ExperimentalTag, NoAwaitTag, + google::spanner::admin::database::v1::CopyBackupRequest const& request) + override; + + future> CopyBackup( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetBackup( google::spanner::admin::database::v1::GetBackupRequest const& request) override; @@ -121,6 +167,15 @@ class DatabaseAdminRestConnectionImpl google::spanner::admin::database::v1::RestoreDatabaseRequest const& request) override; + StatusOr RestoreDatabase( + ExperimentalTag, NoAwaitTag, + google::spanner::admin::database::v1::RestoreDatabaseRequest const& + request) override; + + future> + RestoreDatabase(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListDatabaseOperations( google::spanner::admin::database::v1::ListDatabaseOperationsRequest request) override; diff --git a/google/cloud/spanner/admin/internal/database_admin_tracing_connection.cc b/google/cloud/spanner/admin/internal/database_admin_tracing_connection.cc index 7f9af39cd3cb4..036847bd1726c 100644 --- a/google/cloud/spanner/admin/internal/database_admin_tracing_connection.cc +++ b/google/cloud/spanner/admin/internal/database_admin_tracing_connection.cc @@ -55,6 +55,28 @@ DatabaseAdminTracingConnection::CreateDatabase( return internal::EndSpan(std::move(span), child_->CreateDatabase(request)); } +StatusOr +DatabaseAdminTracingConnection::CreateDatabase( + ExperimentalTag, NoAwaitTag, + google::spanner::admin::database::v1::CreateDatabaseRequest const& + request) { + auto span = internal::MakeSpan( + "spanner_admin::DatabaseAdminConnection::CreateDatabase"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->CreateDatabase(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +DatabaseAdminTracingConnection::CreateDatabase( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "spanner_admin::DatabaseAdminConnection::CreateDatabase"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->CreateDatabase(ExperimentalTag{}, operation)); +} + StatusOr DatabaseAdminTracingConnection::GetDatabase( google::spanner::admin::database::v1::GetDatabaseRequest const& request) { @@ -74,6 +96,28 @@ DatabaseAdminTracingConnection::UpdateDatabase( return internal::EndSpan(std::move(span), child_->UpdateDatabase(request)); } +StatusOr +DatabaseAdminTracingConnection::UpdateDatabase( + ExperimentalTag, NoAwaitTag, + google::spanner::admin::database::v1::UpdateDatabaseRequest const& + request) { + auto span = internal::MakeSpan( + "spanner_admin::DatabaseAdminConnection::UpdateDatabase"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->UpdateDatabase(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +DatabaseAdminTracingConnection::UpdateDatabase( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "spanner_admin::DatabaseAdminConnection::UpdateDatabase"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->UpdateDatabase(ExperimentalTag{}, operation)); +} + future< StatusOr> DatabaseAdminTracingConnection::UpdateDatabaseDdl( @@ -85,6 +129,30 @@ DatabaseAdminTracingConnection::UpdateDatabaseDdl( return internal::EndSpan(std::move(span), child_->UpdateDatabaseDdl(request)); } +StatusOr +DatabaseAdminTracingConnection::UpdateDatabaseDdl( + ExperimentalTag, NoAwaitTag, + google::spanner::admin::database::v1::UpdateDatabaseDdlRequest const& + request) { + auto span = internal::MakeSpan( + "spanner_admin::DatabaseAdminConnection::UpdateDatabaseDdl"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->UpdateDatabaseDdl(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future< + StatusOr> +DatabaseAdminTracingConnection::UpdateDatabaseDdl( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "spanner_admin::DatabaseAdminConnection::UpdateDatabaseDdl"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->UpdateDatabaseDdl(ExperimentalTag{}, operation)); +} + Status DatabaseAdminTracingConnection::DropDatabase( google::spanner::admin::database::v1::DropDatabaseRequest const& request) { auto span = internal::MakeSpan( @@ -137,6 +205,27 @@ DatabaseAdminTracingConnection::CreateBackup( return internal::EndSpan(std::move(span), child_->CreateBackup(request)); } +StatusOr +DatabaseAdminTracingConnection::CreateBackup( + ExperimentalTag, NoAwaitTag, + google::spanner::admin::database::v1::CreateBackupRequest const& request) { + auto span = internal::MakeSpan( + "spanner_admin::DatabaseAdminConnection::CreateBackup"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->CreateBackup(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +DatabaseAdminTracingConnection::CreateBackup( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "spanner_admin::DatabaseAdminConnection::CreateBackup"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->CreateBackup(ExperimentalTag{}, operation)); +} + future> DatabaseAdminTracingConnection::CopyBackup( google::spanner::admin::database::v1::CopyBackupRequest const& request) { @@ -146,6 +235,27 @@ DatabaseAdminTracingConnection::CopyBackup( return internal::EndSpan(std::move(span), child_->CopyBackup(request)); } +StatusOr +DatabaseAdminTracingConnection::CopyBackup( + ExperimentalTag, NoAwaitTag, + google::spanner::admin::database::v1::CopyBackupRequest const& request) { + auto span = + internal::MakeSpan("spanner_admin::DatabaseAdminConnection::CopyBackup"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->CopyBackup(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +DatabaseAdminTracingConnection::CopyBackup( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = + internal::MakeSpan("spanner_admin::DatabaseAdminConnection::CopyBackup"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->CopyBackup(ExperimentalTag{}, operation)); +} + StatusOr DatabaseAdminTracingConnection::GetBackup( google::spanner::admin::database::v1::GetBackupRequest const& request) { @@ -194,6 +304,28 @@ DatabaseAdminTracingConnection::RestoreDatabase( return internal::EndSpan(std::move(span), child_->RestoreDatabase(request)); } +StatusOr +DatabaseAdminTracingConnection::RestoreDatabase( + ExperimentalTag, NoAwaitTag, + google::spanner::admin::database::v1::RestoreDatabaseRequest const& + request) { + auto span = internal::MakeSpan( + "spanner_admin::DatabaseAdminConnection::RestoreDatabase"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->RestoreDatabase(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +DatabaseAdminTracingConnection::RestoreDatabase( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "spanner_admin::DatabaseAdminConnection::RestoreDatabase"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->RestoreDatabase(ExperimentalTag{}, operation)); +} + StreamRange DatabaseAdminTracingConnection::ListDatabaseOperations( google::spanner::admin::database::v1::ListDatabaseOperationsRequest diff --git a/google/cloud/spanner/admin/internal/database_admin_tracing_connection.h b/google/cloud/spanner/admin/internal/database_admin_tracing_connection.h index 9987795e247ad..817fdf4810d3c 100644 --- a/google/cloud/spanner/admin/internal/database_admin_tracing_connection.h +++ b/google/cloud/spanner/admin/internal/database_admin_tracing_connection.h @@ -49,6 +49,15 @@ class DatabaseAdminTracingConnection google::spanner::admin::database::v1::CreateDatabaseRequest const& request) override; + StatusOr CreateDatabase( + ExperimentalTag, NoAwaitTag, + google::spanner::admin::database::v1::CreateDatabaseRequest const& + request) override; + + future> + CreateDatabase(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetDatabase( google::spanner::admin::database::v1::GetDatabaseRequest const& request) override; @@ -58,12 +67,31 @@ class DatabaseAdminTracingConnection google::spanner::admin::database::v1::UpdateDatabaseRequest const& request) override; + StatusOr UpdateDatabase( + ExperimentalTag, NoAwaitTag, + google::spanner::admin::database::v1::UpdateDatabaseRequest const& + request) override; + + future> + UpdateDatabase(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future< StatusOr> UpdateDatabaseDdl( google::spanner::admin::database::v1::UpdateDatabaseDdlRequest const& request) override; + StatusOr UpdateDatabaseDdl( + ExperimentalTag, NoAwaitTag, + google::spanner::admin::database::v1::UpdateDatabaseDdlRequest const& + request) override; + + future< + StatusOr> + UpdateDatabaseDdl(ExperimentalTag, + google::longrunning::Operation const& operation) override; + Status DropDatabase( google::spanner::admin::database::v1::DropDatabaseRequest const& request) override; @@ -86,10 +114,28 @@ class DatabaseAdminTracingConnection google::spanner::admin::database::v1::CreateBackupRequest const& request) override; + StatusOr CreateBackup( + ExperimentalTag, NoAwaitTag, + google::spanner::admin::database::v1::CreateBackupRequest const& request) + override; + + future> CreateBackup( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> CopyBackup( google::spanner::admin::database::v1::CopyBackupRequest const& request) override; + StatusOr CopyBackup( + ExperimentalTag, NoAwaitTag, + google::spanner::admin::database::v1::CopyBackupRequest const& request) + override; + + future> CopyBackup( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetBackup( google::spanner::admin::database::v1::GetBackupRequest const& request) override; @@ -111,6 +157,15 @@ class DatabaseAdminTracingConnection google::spanner::admin::database::v1::RestoreDatabaseRequest const& request) override; + StatusOr RestoreDatabase( + ExperimentalTag, NoAwaitTag, + google::spanner::admin::database::v1::RestoreDatabaseRequest const& + request) override; + + future> + RestoreDatabase(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListDatabaseOperations( google::spanner::admin::database::v1::ListDatabaseOperationsRequest request) override; diff --git a/google/cloud/spanner/admin/internal/instance_admin_connection_impl.cc b/google/cloud/spanner/admin/internal/instance_admin_connection_impl.cc index cb1afd51babdb..97e5c10cec36d 100644 --- a/google/cloud/spanner/admin/internal/instance_admin_connection_impl.cc +++ b/google/cloud/spanner/admin/internal/instance_admin_connection_impl.cc @@ -157,6 +157,61 @@ InstanceAdminConnectionImpl::CreateInstanceConfig( polling_policy(*current), __func__); } +StatusOr +InstanceAdminConnectionImpl::CreateInstanceConfig( + ExperimentalTag, NoAwaitTag, + google::spanner::admin::instance::v1::CreateInstanceConfigRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateInstanceConfig(request), + [this](grpc::ClientContext& context, Options const& options, + google::spanner::admin::instance::v1:: + CreateInstanceConfigRequest const& request) { + return stub_->CreateInstanceConfig(context, options, request); + }, + *current, request, __func__); +} + +future> +InstanceAdminConnectionImpl::CreateInstanceConfig( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to CreateInstanceConfig", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::spanner::admin::instance::v1::InstanceConfig>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::spanner::admin::instance::v1::InstanceConfig>, + polling_policy(*current), __func__); +} + future> InstanceAdminConnectionImpl::UpdateInstanceConfig( google::spanner::admin::instance::v1::UpdateInstanceConfigRequest const& @@ -197,6 +252,61 @@ InstanceAdminConnectionImpl::UpdateInstanceConfig( polling_policy(*current), __func__); } +StatusOr +InstanceAdminConnectionImpl::UpdateInstanceConfig( + ExperimentalTag, NoAwaitTag, + google::spanner::admin::instance::v1::UpdateInstanceConfigRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UpdateInstanceConfig(request), + [this](grpc::ClientContext& context, Options const& options, + google::spanner::admin::instance::v1:: + UpdateInstanceConfigRequest const& request) { + return stub_->UpdateInstanceConfig(context, options, request); + }, + *current, request, __func__); +} + +future> +InstanceAdminConnectionImpl::UpdateInstanceConfig( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to UpdateInstanceConfig", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::spanner::admin::instance::v1::InstanceConfig>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::spanner::admin::instance::v1::InstanceConfig>, + polling_policy(*current), __func__); +} + Status InstanceAdminConnectionImpl::DeleteInstanceConfig( google::spanner::admin::instance::v1::DeleteInstanceConfigRequest const& request) { @@ -378,6 +488,61 @@ InstanceAdminConnectionImpl::CreateInstance( polling_policy(*current), __func__); } +StatusOr +InstanceAdminConnectionImpl::CreateInstance( + ExperimentalTag, NoAwaitTag, + google::spanner::admin::instance::v1::CreateInstanceRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateInstance(request), + [this](grpc::ClientContext& context, Options const& options, + google::spanner::admin::instance::v1::CreateInstanceRequest const& + request) { + return stub_->CreateInstance(context, options, request); + }, + *current, request, __func__); +} + +future> +InstanceAdminConnectionImpl::CreateInstance( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to CreateInstance", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::spanner::admin::instance::v1::Instance>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::spanner::admin::instance::v1::Instance>, + polling_policy(*current), __func__); +} + future> InstanceAdminConnectionImpl::UpdateInstance( google::spanner::admin::instance::v1::UpdateInstanceRequest const& @@ -419,6 +584,61 @@ InstanceAdminConnectionImpl::UpdateInstance( polling_policy(*current), __func__); } +StatusOr +InstanceAdminConnectionImpl::UpdateInstance( + ExperimentalTag, NoAwaitTag, + google::spanner::admin::instance::v1::UpdateInstanceRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UpdateInstance(request), + [this](grpc::ClientContext& context, Options const& options, + google::spanner::admin::instance::v1::UpdateInstanceRequest const& + request) { + return stub_->UpdateInstance(context, options, request); + }, + *current, request, __func__); +} + +future> +InstanceAdminConnectionImpl::UpdateInstance( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to UpdateInstance", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::spanner::admin::instance::v1::Instance>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::spanner::admin::instance::v1::Instance>, + polling_policy(*current), __func__); +} + Status InstanceAdminConnectionImpl::DeleteInstance( google::spanner::admin::instance::v1::DeleteInstanceRequest const& request) { @@ -530,6 +750,61 @@ InstanceAdminConnectionImpl::CreateInstancePartition( polling_policy(*current), __func__); } +StatusOr +InstanceAdminConnectionImpl::CreateInstancePartition( + ExperimentalTag, NoAwaitTag, + google::spanner::admin::instance::v1::CreateInstancePartitionRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateInstancePartition(request), + [this](grpc::ClientContext& context, Options const& options, + google::spanner::admin::instance::v1:: + CreateInstancePartitionRequest const& request) { + return stub_->CreateInstancePartition(context, options, request); + }, + *current, request, __func__); +} + +future> +InstanceAdminConnectionImpl::CreateInstancePartition( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to CreateInstancePartition", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::spanner::admin::instance::v1::InstancePartition>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::spanner::admin::instance::v1::InstancePartition>, + polling_policy(*current), __func__); +} + Status InstanceAdminConnectionImpl::DeleteInstancePartition( google::spanner::admin::instance::v1::DeleteInstancePartitionRequest const& request) { @@ -585,6 +860,61 @@ InstanceAdminConnectionImpl::UpdateInstancePartition( polling_policy(*current), __func__); } +StatusOr +InstanceAdminConnectionImpl::UpdateInstancePartition( + ExperimentalTag, NoAwaitTag, + google::spanner::admin::instance::v1::UpdateInstancePartitionRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UpdateInstancePartition(request), + [this](grpc::ClientContext& context, Options const& options, + google::spanner::admin::instance::v1:: + UpdateInstancePartitionRequest const& request) { + return stub_->UpdateInstancePartition(context, options, request); + }, + *current, request, __func__); +} + +future> +InstanceAdminConnectionImpl::UpdateInstancePartition( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to UpdateInstancePartition", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::spanner::admin::instance::v1::InstancePartition>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::spanner::admin::instance::v1::InstancePartition>, + polling_policy(*current), __func__); +} + StreamRange InstanceAdminConnectionImpl::ListInstancePartitionOperations( google::spanner::admin::instance::v1::ListInstancePartitionOperationsRequest diff --git a/google/cloud/spanner/admin/internal/instance_admin_connection_impl.h b/google/cloud/spanner/admin/internal/instance_admin_connection_impl.h index 22e6fb2ac92a9..13508d476dcc2 100644 --- a/google/cloud/spanner/admin/internal/instance_admin_connection_impl.h +++ b/google/cloud/spanner/admin/internal/instance_admin_connection_impl.h @@ -67,11 +67,31 @@ class InstanceAdminConnectionImpl google::spanner::admin::instance::v1::CreateInstanceConfigRequest const& request) override; + StatusOr CreateInstanceConfig( + ExperimentalTag, NoAwaitTag, + google::spanner::admin::instance::v1::CreateInstanceConfigRequest const& + request) override; + + future> + CreateInstanceConfig( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateInstanceConfig( google::spanner::admin::instance::v1::UpdateInstanceConfigRequest const& request) override; + StatusOr UpdateInstanceConfig( + ExperimentalTag, NoAwaitTag, + google::spanner::admin::instance::v1::UpdateInstanceConfigRequest const& + request) override; + + future> + UpdateInstanceConfig( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + Status DeleteInstanceConfig( google::spanner::admin::instance::v1::DeleteInstanceConfigRequest const& request) override; @@ -98,11 +118,29 @@ class InstanceAdminConnectionImpl google::spanner::admin::instance::v1::CreateInstanceRequest const& request) override; + StatusOr CreateInstance( + ExperimentalTag, NoAwaitTag, + google::spanner::admin::instance::v1::CreateInstanceRequest const& + request) override; + + future> + CreateInstance(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateInstance( google::spanner::admin::instance::v1::UpdateInstanceRequest const& request) override; + StatusOr UpdateInstance( + ExperimentalTag, NoAwaitTag, + google::spanner::admin::instance::v1::UpdateInstanceRequest const& + request) override; + + future> + UpdateInstance(ExperimentalTag, + google::longrunning::Operation const& operation) override; + Status DeleteInstance( google::spanner::admin::instance::v1::DeleteInstanceRequest const& request) override; @@ -126,6 +164,16 @@ class InstanceAdminConnectionImpl google::spanner::admin::instance::v1:: CreateInstancePartitionRequest const& request) override; + StatusOr CreateInstancePartition( + ExperimentalTag, NoAwaitTag, + google::spanner::admin::instance::v1:: + CreateInstancePartitionRequest const& request) override; + + future> + CreateInstancePartition( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + Status DeleteInstancePartition( google::spanner::admin::instance::v1:: DeleteInstancePartitionRequest const& request) override; @@ -135,6 +183,16 @@ class InstanceAdminConnectionImpl google::spanner::admin::instance::v1:: UpdateInstancePartitionRequest const& request) override; + StatusOr UpdateInstancePartition( + ExperimentalTag, NoAwaitTag, + google::spanner::admin::instance::v1:: + UpdateInstancePartitionRequest const& request) override; + + future> + UpdateInstancePartition( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListInstancePartitionOperations( google::spanner::admin::instance::v1:: ListInstancePartitionOperationsRequest request) override; diff --git a/google/cloud/spanner/admin/internal/instance_admin_rest_connection_impl.cc b/google/cloud/spanner/admin/internal/instance_admin_rest_connection_impl.cc index 86315b60a7c76..a6f1498b739eb 100644 --- a/google/cloud/spanner/admin/internal/instance_admin_rest_connection_impl.cc +++ b/google/cloud/spanner/admin/internal/instance_admin_rest_connection_impl.cc @@ -132,6 +132,60 @@ InstanceAdminRestConnectionImpl::CreateInstanceConfig( polling_policy(*current), __func__); } +StatusOr +InstanceAdminRestConnectionImpl::CreateInstanceConfig( + ExperimentalTag, NoAwaitTag, + google::spanner::admin::instance::v1::CreateInstanceConfigRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateInstanceConfig(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::spanner::admin::instance::v1:: + CreateInstanceConfigRequest const& request) { + return stub_->CreateInstanceConfig(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +InstanceAdminRestConnectionImpl::CreateInstanceConfig( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to CreateInstanceConfig", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::spanner::admin::instance::v1::InstanceConfig>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::spanner::admin::instance::v1::InstanceConfig>, + polling_policy(*current), __func__); +} + future> InstanceAdminRestConnectionImpl::UpdateInstanceConfig( google::spanner::admin::instance::v1::UpdateInstanceConfigRequest const& @@ -170,6 +224,60 @@ InstanceAdminRestConnectionImpl::UpdateInstanceConfig( polling_policy(*current), __func__); } +StatusOr +InstanceAdminRestConnectionImpl::UpdateInstanceConfig( + ExperimentalTag, NoAwaitTag, + google::spanner::admin::instance::v1::UpdateInstanceConfigRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UpdateInstanceConfig(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::spanner::admin::instance::v1:: + UpdateInstanceConfigRequest const& request) { + return stub_->UpdateInstanceConfig(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +InstanceAdminRestConnectionImpl::UpdateInstanceConfig( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to UpdateInstanceConfig", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::spanner::admin::instance::v1::InstanceConfig>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::spanner::admin::instance::v1::InstanceConfig>, + polling_policy(*current), __func__); +} + Status InstanceAdminRestConnectionImpl::DeleteInstanceConfig( google::spanner::admin::instance::v1::DeleteInstanceConfigRequest const& request) { @@ -353,6 +461,60 @@ InstanceAdminRestConnectionImpl::CreateInstance( polling_policy(*current), __func__); } +StatusOr +InstanceAdminRestConnectionImpl::CreateInstance( + ExperimentalTag, NoAwaitTag, + google::spanner::admin::instance::v1::CreateInstanceRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateInstance(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::spanner::admin::instance::v1::CreateInstanceRequest const& + request) { + return stub_->CreateInstance(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +InstanceAdminRestConnectionImpl::CreateInstance( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to CreateInstance", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::spanner::admin::instance::v1::Instance>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::spanner::admin::instance::v1::Instance>, + polling_policy(*current), __func__); +} + future> InstanceAdminRestConnectionImpl::UpdateInstance( google::spanner::admin::instance::v1::UpdateInstanceRequest const& @@ -392,6 +554,60 @@ InstanceAdminRestConnectionImpl::UpdateInstance( polling_policy(*current), __func__); } +StatusOr +InstanceAdminRestConnectionImpl::UpdateInstance( + ExperimentalTag, NoAwaitTag, + google::spanner::admin::instance::v1::UpdateInstanceRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UpdateInstance(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::spanner::admin::instance::v1::UpdateInstanceRequest const& + request) { + return stub_->UpdateInstance(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +InstanceAdminRestConnectionImpl::UpdateInstance( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to UpdateInstance", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::spanner::admin::instance::v1::Instance>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::spanner::admin::instance::v1::Instance>, + polling_policy(*current), __func__); +} + Status InstanceAdminRestConnectionImpl::DeleteInstance( google::spanner::admin::instance::v1::DeleteInstanceRequest const& request) { @@ -501,6 +717,60 @@ InstanceAdminRestConnectionImpl::CreateInstancePartition( polling_policy(*current), __func__); } +StatusOr +InstanceAdminRestConnectionImpl::CreateInstancePartition( + ExperimentalTag, NoAwaitTag, + google::spanner::admin::instance::v1::CreateInstancePartitionRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateInstancePartition(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::spanner::admin::instance::v1:: + CreateInstancePartitionRequest const& request) { + return stub_->CreateInstancePartition(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +InstanceAdminRestConnectionImpl::CreateInstancePartition( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to CreateInstancePartition", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::spanner::admin::instance::v1::InstancePartition>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::spanner::admin::instance::v1::InstancePartition>, + polling_policy(*current), __func__); +} + Status InstanceAdminRestConnectionImpl::DeleteInstancePartition( google::spanner::admin::instance::v1::DeleteInstancePartitionRequest const& request) { @@ -554,6 +824,60 @@ InstanceAdminRestConnectionImpl::UpdateInstancePartition( polling_policy(*current), __func__); } +StatusOr +InstanceAdminRestConnectionImpl::UpdateInstancePartition( + ExperimentalTag, NoAwaitTag, + google::spanner::admin::instance::v1::UpdateInstancePartitionRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::rest_internal::RestRetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UpdateInstancePartition(request), + [this](rest_internal::RestContext& rest_context, Options const& options, + google::spanner::admin::instance::v1:: + UpdateInstancePartitionRequest const& request) { + return stub_->UpdateInstancePartition(rest_context, options, request); + }, + *current, request, __func__); +} + +future> +InstanceAdminRestConnectionImpl::UpdateInstancePartition( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to UpdateInstancePartition", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + return rest_internal::AsyncRestAwaitLongRunningOperation< + google::spanner::admin::instance::v1::InstancePartition>( + background_->cq(), current, operation, + [stub = stub_](CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + CompletionQueue& cq, + std::unique_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::spanner::admin::instance::v1::InstancePartition>, + polling_policy(*current), __func__); +} + StreamRange InstanceAdminRestConnectionImpl::ListInstancePartitionOperations( google::spanner::admin::instance::v1::ListInstancePartitionOperationsRequest diff --git a/google/cloud/spanner/admin/internal/instance_admin_rest_connection_impl.h b/google/cloud/spanner/admin/internal/instance_admin_rest_connection_impl.h index 9b82593772879..f8b39ebd06596 100644 --- a/google/cloud/spanner/admin/internal/instance_admin_rest_connection_impl.h +++ b/google/cloud/spanner/admin/internal/instance_admin_rest_connection_impl.h @@ -65,11 +65,31 @@ class InstanceAdminRestConnectionImpl google::spanner::admin::instance::v1::CreateInstanceConfigRequest const& request) override; + StatusOr CreateInstanceConfig( + ExperimentalTag, NoAwaitTag, + google::spanner::admin::instance::v1::CreateInstanceConfigRequest const& + request) override; + + future> + CreateInstanceConfig( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateInstanceConfig( google::spanner::admin::instance::v1::UpdateInstanceConfigRequest const& request) override; + StatusOr UpdateInstanceConfig( + ExperimentalTag, NoAwaitTag, + google::spanner::admin::instance::v1::UpdateInstanceConfigRequest const& + request) override; + + future> + UpdateInstanceConfig( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + Status DeleteInstanceConfig( google::spanner::admin::instance::v1::DeleteInstanceConfigRequest const& request) override; @@ -96,11 +116,29 @@ class InstanceAdminRestConnectionImpl google::spanner::admin::instance::v1::CreateInstanceRequest const& request) override; + StatusOr CreateInstance( + ExperimentalTag, NoAwaitTag, + google::spanner::admin::instance::v1::CreateInstanceRequest const& + request) override; + + future> + CreateInstance(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateInstance( google::spanner::admin::instance::v1::UpdateInstanceRequest const& request) override; + StatusOr UpdateInstance( + ExperimentalTag, NoAwaitTag, + google::spanner::admin::instance::v1::UpdateInstanceRequest const& + request) override; + + future> + UpdateInstance(ExperimentalTag, + google::longrunning::Operation const& operation) override; + Status DeleteInstance( google::spanner::admin::instance::v1::DeleteInstanceRequest const& request) override; @@ -124,6 +162,16 @@ class InstanceAdminRestConnectionImpl google::spanner::admin::instance::v1:: CreateInstancePartitionRequest const& request) override; + StatusOr CreateInstancePartition( + ExperimentalTag, NoAwaitTag, + google::spanner::admin::instance::v1:: + CreateInstancePartitionRequest const& request) override; + + future> + CreateInstancePartition( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + Status DeleteInstancePartition( google::spanner::admin::instance::v1:: DeleteInstancePartitionRequest const& request) override; @@ -133,6 +181,16 @@ class InstanceAdminRestConnectionImpl google::spanner::admin::instance::v1:: UpdateInstancePartitionRequest const& request) override; + StatusOr UpdateInstancePartition( + ExperimentalTag, NoAwaitTag, + google::spanner::admin::instance::v1:: + UpdateInstancePartitionRequest const& request) override; + + future> + UpdateInstancePartition( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListInstancePartitionOperations( google::spanner::admin::instance::v1:: ListInstancePartitionOperationsRequest request) override; diff --git a/google/cloud/spanner/admin/internal/instance_admin_tracing_connection.cc b/google/cloud/spanner/admin/internal/instance_admin_tracing_connection.cc index 28799b6ba835c..0cf30a48d9544 100644 --- a/google/cloud/spanner/admin/internal/instance_admin_tracing_connection.cc +++ b/google/cloud/spanner/admin/internal/instance_admin_tracing_connection.cc @@ -66,6 +66,29 @@ InstanceAdminTracingConnection::CreateInstanceConfig( child_->CreateInstanceConfig(request)); } +StatusOr +InstanceAdminTracingConnection::CreateInstanceConfig( + ExperimentalTag, NoAwaitTag, + google::spanner::admin::instance::v1::CreateInstanceConfigRequest const& + request) { + auto span = internal::MakeSpan( + "spanner_admin::InstanceAdminConnection::CreateInstanceConfig"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->CreateInstanceConfig(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +InstanceAdminTracingConnection::CreateInstanceConfig( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "spanner_admin::InstanceAdminConnection::CreateInstanceConfig"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->CreateInstanceConfig( + ExperimentalTag{}, operation)); +} + future> InstanceAdminTracingConnection::UpdateInstanceConfig( google::spanner::admin::instance::v1::UpdateInstanceConfigRequest const& @@ -77,6 +100,29 @@ InstanceAdminTracingConnection::UpdateInstanceConfig( child_->UpdateInstanceConfig(request)); } +StatusOr +InstanceAdminTracingConnection::UpdateInstanceConfig( + ExperimentalTag, NoAwaitTag, + google::spanner::admin::instance::v1::UpdateInstanceConfigRequest const& + request) { + auto span = internal::MakeSpan( + "spanner_admin::InstanceAdminConnection::UpdateInstanceConfig"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->UpdateInstanceConfig(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +InstanceAdminTracingConnection::UpdateInstanceConfig( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "spanner_admin::InstanceAdminConnection::UpdateInstanceConfig"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->UpdateInstanceConfig( + ExperimentalTag{}, operation)); +} + Status InstanceAdminTracingConnection::DeleteInstanceConfig( google::spanner::admin::instance::v1::DeleteInstanceConfigRequest const& request) { @@ -142,6 +188,28 @@ InstanceAdminTracingConnection::CreateInstance( return internal::EndSpan(std::move(span), child_->CreateInstance(request)); } +StatusOr +InstanceAdminTracingConnection::CreateInstance( + ExperimentalTag, NoAwaitTag, + google::spanner::admin::instance::v1::CreateInstanceRequest const& + request) { + auto span = internal::MakeSpan( + "spanner_admin::InstanceAdminConnection::CreateInstance"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->CreateInstance(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +InstanceAdminTracingConnection::CreateInstance( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "spanner_admin::InstanceAdminConnection::CreateInstance"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->CreateInstance(ExperimentalTag{}, operation)); +} + future> InstanceAdminTracingConnection::UpdateInstance( google::spanner::admin::instance::v1::UpdateInstanceRequest const& @@ -152,6 +220,28 @@ InstanceAdminTracingConnection::UpdateInstance( return internal::EndSpan(std::move(span), child_->UpdateInstance(request)); } +StatusOr +InstanceAdminTracingConnection::UpdateInstance( + ExperimentalTag, NoAwaitTag, + google::spanner::admin::instance::v1::UpdateInstanceRequest const& + request) { + auto span = internal::MakeSpan( + "spanner_admin::InstanceAdminConnection::UpdateInstance"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->UpdateInstance(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +InstanceAdminTracingConnection::UpdateInstance( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "spanner_admin::InstanceAdminConnection::UpdateInstance"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->UpdateInstance(ExperimentalTag{}, operation)); +} + Status InstanceAdminTracingConnection::DeleteInstance( google::spanner::admin::instance::v1::DeleteInstanceRequest const& request) { @@ -207,6 +297,29 @@ InstanceAdminTracingConnection::CreateInstancePartition( child_->CreateInstancePartition(request)); } +StatusOr +InstanceAdminTracingConnection::CreateInstancePartition( + ExperimentalTag, NoAwaitTag, + google::spanner::admin::instance::v1::CreateInstancePartitionRequest const& + request) { + auto span = internal::MakeSpan( + "spanner_admin::InstanceAdminConnection::CreateInstancePartition"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->CreateInstancePartition(ExperimentalTag{}, NoAwaitTag{}, + request)); +} + +future> +InstanceAdminTracingConnection::CreateInstancePartition( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "spanner_admin::InstanceAdminConnection::CreateInstancePartition"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->CreateInstancePartition( + ExperimentalTag{}, operation)); +} + Status InstanceAdminTracingConnection::DeleteInstancePartition( google::spanner::admin::instance::v1::DeleteInstancePartitionRequest const& request) { @@ -227,6 +340,29 @@ InstanceAdminTracingConnection::UpdateInstancePartition( child_->UpdateInstancePartition(request)); } +StatusOr +InstanceAdminTracingConnection::UpdateInstancePartition( + ExperimentalTag, NoAwaitTag, + google::spanner::admin::instance::v1::UpdateInstancePartitionRequest const& + request) { + auto span = internal::MakeSpan( + "spanner_admin::InstanceAdminConnection::UpdateInstancePartition"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->UpdateInstancePartition(ExperimentalTag{}, NoAwaitTag{}, + request)); +} + +future> +InstanceAdminTracingConnection::UpdateInstancePartition( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "spanner_admin::InstanceAdminConnection::UpdateInstancePartition"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->UpdateInstancePartition( + ExperimentalTag{}, operation)); +} + StreamRange InstanceAdminTracingConnection::ListInstancePartitionOperations( google::spanner::admin::instance::v1::ListInstancePartitionOperationsRequest diff --git a/google/cloud/spanner/admin/internal/instance_admin_tracing_connection.h b/google/cloud/spanner/admin/internal/instance_admin_tracing_connection.h index 00a7a896f0435..5f4252c6f108a 100644 --- a/google/cloud/spanner/admin/internal/instance_admin_tracing_connection.h +++ b/google/cloud/spanner/admin/internal/instance_admin_tracing_connection.h @@ -55,11 +55,31 @@ class InstanceAdminTracingConnection google::spanner::admin::instance::v1::CreateInstanceConfigRequest const& request) override; + StatusOr CreateInstanceConfig( + ExperimentalTag, NoAwaitTag, + google::spanner::admin::instance::v1::CreateInstanceConfigRequest const& + request) override; + + future> + CreateInstanceConfig( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateInstanceConfig( google::spanner::admin::instance::v1::UpdateInstanceConfigRequest const& request) override; + StatusOr UpdateInstanceConfig( + ExperimentalTag, NoAwaitTag, + google::spanner::admin::instance::v1::UpdateInstanceConfigRequest const& + request) override; + + future> + UpdateInstanceConfig( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + Status DeleteInstanceConfig( google::spanner::admin::instance::v1::DeleteInstanceConfigRequest const& request) override; @@ -86,11 +106,29 @@ class InstanceAdminTracingConnection google::spanner::admin::instance::v1::CreateInstanceRequest const& request) override; + StatusOr CreateInstance( + ExperimentalTag, NoAwaitTag, + google::spanner::admin::instance::v1::CreateInstanceRequest const& + request) override; + + future> + CreateInstance(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateInstance( google::spanner::admin::instance::v1::UpdateInstanceRequest const& request) override; + StatusOr UpdateInstance( + ExperimentalTag, NoAwaitTag, + google::spanner::admin::instance::v1::UpdateInstanceRequest const& + request) override; + + future> + UpdateInstance(ExperimentalTag, + google::longrunning::Operation const& operation) override; + Status DeleteInstance( google::spanner::admin::instance::v1::DeleteInstanceRequest const& request) override; @@ -114,6 +152,16 @@ class InstanceAdminTracingConnection google::spanner::admin::instance::v1:: CreateInstancePartitionRequest const& request) override; + StatusOr CreateInstancePartition( + ExperimentalTag, NoAwaitTag, + google::spanner::admin::instance::v1:: + CreateInstancePartitionRequest const& request) override; + + future> + CreateInstancePartition( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + Status DeleteInstancePartition( google::spanner::admin::instance::v1:: DeleteInstancePartitionRequest const& request) override; @@ -123,6 +171,16 @@ class InstanceAdminTracingConnection google::spanner::admin::instance::v1:: UpdateInstancePartitionRequest const& request) override; + StatusOr UpdateInstancePartition( + ExperimentalTag, NoAwaitTag, + google::spanner::admin::instance::v1:: + UpdateInstancePartitionRequest const& request) override; + + future> + UpdateInstancePartition( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListInstancePartitionOperations( google::spanner::admin::instance::v1:: ListInstancePartitionOperationsRequest request) override; diff --git a/google/cloud/spanner/admin/mocks/mock_database_admin_connection.h b/google/cloud/spanner/admin/mocks/mock_database_admin_connection.h index 0bf138ae2fce6..62d90af0d25ca 100644 --- a/google/cloud/spanner/admin/mocks/mock_database_admin_connection.h +++ b/google/cloud/spanner/admin/mocks/mock_database_admin_connection.h @@ -60,6 +60,19 @@ class MockDatabaseAdminConnection request), (override)); + MOCK_METHOD( + StatusOr, CreateDatabase, + (ExperimentalTag, NoAwaitTag, + google::spanner::admin::database::v1::CreateDatabaseRequest const& + request), + (override)); + + MOCK_METHOD(future>, + CreateDatabase, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr, GetDatabase, (google::spanner::admin::database::v1::GetDatabaseRequest const& request), @@ -72,6 +85,19 @@ class MockDatabaseAdminConnection request), (override)); + MOCK_METHOD( + StatusOr, UpdateDatabase, + (ExperimentalTag, NoAwaitTag, + google::spanner::admin::database::v1::UpdateDatabaseRequest const& + request), + (override)); + + MOCK_METHOD(future>, + UpdateDatabase, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, @@ -80,6 +106,20 @@ class MockDatabaseAdminConnection request), (override)); + MOCK_METHOD( + StatusOr, UpdateDatabaseDdl, + (ExperimentalTag, NoAwaitTag, + google::spanner::admin::database::v1::UpdateDatabaseDdlRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + UpdateDatabaseDdl, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(Status, DropDatabase, (google::spanner::admin::database::v1::DropDatabaseRequest const& request), @@ -111,12 +151,36 @@ class MockDatabaseAdminConnection request), (override)); + MOCK_METHOD(StatusOr, CreateBackup, + (ExperimentalTag, NoAwaitTag, + google::spanner::admin::database::v1::CreateBackupRequest const& + request), + (override)); + + MOCK_METHOD(future>, + CreateBackup, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, CopyBackup, (google::spanner::admin::database::v1::CopyBackupRequest const& request), (override)); + MOCK_METHOD( + StatusOr, CopyBackup, + (ExperimentalTag, NoAwaitTag, + google::spanner::admin::database::v1::CopyBackupRequest const& request), + (override)); + + MOCK_METHOD(future>, + CopyBackup, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr, GetBackup, (google::spanner::admin::database::v1::GetBackupRequest const& request), @@ -145,6 +209,19 @@ class MockDatabaseAdminConnection request), (override)); + MOCK_METHOD( + StatusOr, RestoreDatabase, + (ExperimentalTag, NoAwaitTag, + google::spanner::admin::database::v1::RestoreDatabaseRequest const& + request), + (override)); + + MOCK_METHOD(future>, + RestoreDatabase, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( (StreamRange), ListDatabaseOperations, (google::spanner::admin::database::v1::ListDatabaseOperationsRequest diff --git a/google/cloud/spanner/admin/mocks/mock_instance_admin_connection.h b/google/cloud/spanner/admin/mocks/mock_instance_admin_connection.h index 37e3e9dc9d108..a40464aa8dbd6 100644 --- a/google/cloud/spanner/admin/mocks/mock_instance_admin_connection.h +++ b/google/cloud/spanner/admin/mocks/mock_instance_admin_connection.h @@ -68,6 +68,19 @@ class MockInstanceAdminConnection request), (override)); + MOCK_METHOD( + StatusOr, CreateInstanceConfig, + (ExperimentalTag, NoAwaitTag, + google::spanner::admin::instance::v1::CreateInstanceConfigRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + CreateInstanceConfig, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, UpdateInstanceConfig, @@ -75,6 +88,19 @@ class MockInstanceAdminConnection request), (override)); + MOCK_METHOD( + StatusOr, UpdateInstanceConfig, + (ExperimentalTag, NoAwaitTag, + google::spanner::admin::instance::v1::UpdateInstanceConfigRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + UpdateInstanceConfig, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( Status, DeleteInstanceConfig, (google::spanner::admin::instance::v1::DeleteInstanceConfigRequest const& @@ -113,6 +139,19 @@ class MockInstanceAdminConnection request), (override)); + MOCK_METHOD( + StatusOr, CreateInstance, + (ExperimentalTag, NoAwaitTag, + google::spanner::admin::instance::v1::CreateInstanceRequest const& + request), + (override)); + + MOCK_METHOD(future>, + CreateInstance, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, UpdateInstance, @@ -120,6 +159,19 @@ class MockInstanceAdminConnection request), (override)); + MOCK_METHOD( + StatusOr, UpdateInstance, + (ExperimentalTag, NoAwaitTag, + google::spanner::admin::instance::v1::UpdateInstanceRequest const& + request), + (override)); + + MOCK_METHOD(future>, + UpdateInstance, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( Status, DeleteInstance, (google::spanner::admin::instance::v1::DeleteInstanceRequest const& @@ -153,6 +205,18 @@ class MockInstanceAdminConnection CreateInstancePartitionRequest const& request), (override)); + MOCK_METHOD(StatusOr, CreateInstancePartition, + (ExperimentalTag, NoAwaitTag, + google::spanner::admin::instance::v1:: + CreateInstancePartitionRequest const& request), + (override)); + + MOCK_METHOD( + future>, + CreateInstancePartition, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(Status, DeleteInstancePartition, (google::spanner::admin::instance::v1:: DeleteInstancePartitionRequest const& request), @@ -165,6 +229,18 @@ class MockInstanceAdminConnection UpdateInstancePartitionRequest const& request), (override)); + MOCK_METHOD(StatusOr, UpdateInstancePartition, + (ExperimentalTag, NoAwaitTag, + google::spanner::admin::instance::v1:: + UpdateInstancePartitionRequest const& request), + (override)); + + MOCK_METHOD( + future>, + UpdateInstancePartition, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD((StreamRange), ListInstancePartitionOperations, (google::spanner::admin::instance::v1:: diff --git a/google/cloud/speech/v1/adaptation_connection.h b/google/cloud/speech/v1/adaptation_connection.h index 85a6ab05dcc52..58d1863ea92b5 100644 --- a/google/cloud/speech/v1/adaptation_connection.h +++ b/google/cloud/speech/v1/adaptation_connection.h @@ -22,6 +22,7 @@ #include "google/cloud/speech/v1/adaptation_connection_idempotency_policy.h" #include "google/cloud/speech/v1/internal/adaptation_retry_traits.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/internal/retry_policy_impl.h" #include "google/cloud/options.h" #include "google/cloud/status_or.h" diff --git a/google/cloud/speech/v1/internal/speech_connection_impl.cc b/google/cloud/speech/v1/internal/speech_connection_impl.cc index a6f7d7775a35b..297fbaa5b1872 100644 --- a/google/cloud/speech/v1/internal/speech_connection_impl.cc +++ b/google/cloud/speech/v1/internal/speech_connection_impl.cc @@ -115,6 +115,60 @@ SpeechConnectionImpl::LongRunningRecognize( polling_policy(*current), __func__); } +StatusOr +SpeechConnectionImpl::LongRunningRecognize( + ExperimentalTag, NoAwaitTag, + google::cloud::speech::v1::LongRunningRecognizeRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->LongRunningRecognize(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::speech::v1::LongRunningRecognizeRequest const& + request) { + return stub_->LongRunningRecognize(context, options, request); + }, + *current, request, __func__); +} + +future> +SpeechConnectionImpl::LongRunningRecognize( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to LongRunningRecognize", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::speech::v1::LongRunningRecognizeResponse>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::speech::v1::LongRunningRecognizeResponse>, + polling_policy(*current), __func__); +} + std::unique_ptr<::google::cloud::AsyncStreamingReadWriteRpc< google::cloud::speech::v1::StreamingRecognizeRequest, google::cloud::speech::v1::StreamingRecognizeResponse>> diff --git a/google/cloud/speech/v1/internal/speech_connection_impl.h b/google/cloud/speech/v1/internal/speech_connection_impl.h index ff3ff83293f32..0b22625518286 100644 --- a/google/cloud/speech/v1/internal/speech_connection_impl.h +++ b/google/cloud/speech/v1/internal/speech_connection_impl.h @@ -58,6 +58,16 @@ class SpeechConnectionImpl : public speech_v1::SpeechConnection { google::cloud::speech::v1::LongRunningRecognizeRequest const& request) override; + StatusOr LongRunningRecognize( + ExperimentalTag, NoAwaitTag, + google::cloud::speech::v1::LongRunningRecognizeRequest const& request) + override; + + future> + LongRunningRecognize( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + std::unique_ptr<::google::cloud::AsyncStreamingReadWriteRpc< google::cloud::speech::v1::StreamingRecognizeRequest, google::cloud::speech::v1::StreamingRecognizeResponse>> diff --git a/google/cloud/speech/v1/internal/speech_tracing_connection.cc b/google/cloud/speech/v1/internal/speech_tracing_connection.cc index a84222ed62c74..bbc3ece8ccf07 100644 --- a/google/cloud/speech/v1/internal/speech_tracing_connection.cc +++ b/google/cloud/speech/v1/internal/speech_tracing_connection.cc @@ -50,6 +50,28 @@ SpeechTracingConnection::LongRunningRecognize( child_->LongRunningRecognize(request)); } +StatusOr +SpeechTracingConnection::LongRunningRecognize( + ExperimentalTag, NoAwaitTag, + google::cloud::speech::v1::LongRunningRecognizeRequest const& request) { + auto span = + internal::MakeSpan("speech_v1::SpeechConnection::LongRunningRecognize"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->LongRunningRecognize(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +SpeechTracingConnection::LongRunningRecognize( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = + internal::MakeSpan("speech_v1::SpeechConnection::LongRunningRecognize"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->LongRunningRecognize( + ExperimentalTag{}, operation)); +} + std::unique_ptr<::google::cloud::AsyncStreamingReadWriteRpc< google::cloud::speech::v1::StreamingRecognizeRequest, google::cloud::speech::v1::StreamingRecognizeResponse>> diff --git a/google/cloud/speech/v1/internal/speech_tracing_connection.h b/google/cloud/speech/v1/internal/speech_tracing_connection.h index 42eb1a2342b55..d61eb86d82240 100644 --- a/google/cloud/speech/v1/internal/speech_tracing_connection.h +++ b/google/cloud/speech/v1/internal/speech_tracing_connection.h @@ -47,6 +47,16 @@ class SpeechTracingConnection : public speech_v1::SpeechConnection { google::cloud::speech::v1::LongRunningRecognizeRequest const& request) override; + StatusOr LongRunningRecognize( + ExperimentalTag, NoAwaitTag, + google::cloud::speech::v1::LongRunningRecognizeRequest const& request) + override; + + future> + LongRunningRecognize( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + std::unique_ptr<::google::cloud::AsyncStreamingReadWriteRpc< google::cloud::speech::v1::StreamingRecognizeRequest, google::cloud::speech::v1::StreamingRecognizeResponse>> diff --git a/google/cloud/speech/v1/mocks/mock_speech_connection.h b/google/cloud/speech/v1/mocks/mock_speech_connection.h index 96a6623f190d1..095323d15fedd 100644 --- a/google/cloud/speech/v1/mocks/mock_speech_connection.h +++ b/google/cloud/speech/v1/mocks/mock_speech_connection.h @@ -56,6 +56,18 @@ class MockSpeechConnection : public speech_v1::SpeechConnection { (google::cloud::speech::v1::LongRunningRecognizeRequest const& request), (override)); + MOCK_METHOD( + StatusOr, LongRunningRecognize, + (ExperimentalTag, NoAwaitTag, + google::cloud::speech::v1::LongRunningRecognizeRequest const& request), + (override)); + + MOCK_METHOD( + future>, + LongRunningRecognize, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD((std::unique_ptr<::google::cloud::AsyncStreamingReadWriteRpc< google::cloud::speech::v1::StreamingRecognizeRequest, google::cloud::speech::v1::StreamingRecognizeResponse>>), diff --git a/google/cloud/speech/v1/speech_connection.cc b/google/cloud/speech/v1/speech_connection.cc index 1ef8d6cd91a09..4bfcc1e249e88 100644 --- a/google/cloud/speech/v1/speech_connection.cc +++ b/google/cloud/speech/v1/speech_connection.cc @@ -51,6 +51,21 @@ SpeechConnection::LongRunningRecognize( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr SpeechConnection::LongRunningRecognize( + ExperimentalTag, NoAwaitTag, + google::cloud::speech::v1::LongRunningRecognizeRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +SpeechConnection::LongRunningRecognize(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + std::unique_ptr<::google::cloud::AsyncStreamingReadWriteRpc< google::cloud::speech::v1::StreamingRecognizeRequest, google::cloud::speech::v1::StreamingRecognizeResponse>> diff --git a/google/cloud/speech/v1/speech_connection.h b/google/cloud/speech/v1/speech_connection.h index 24b5a0150de4e..1da9555e80cfe 100644 --- a/google/cloud/speech/v1/speech_connection.h +++ b/google/cloud/speech/v1/speech_connection.h @@ -22,9 +22,11 @@ #include "google/cloud/speech/v1/internal/speech_retry_traits.h" #include "google/cloud/speech/v1/speech_connection_idempotency_policy.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/internal/async_read_write_stream_impl.h" #include "google/cloud/internal/retry_policy_impl.h" +#include "google/cloud/no_await_tag.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" #include "google/cloud/status_or.h" @@ -189,6 +191,15 @@ class SpeechConnection { LongRunningRecognize( google::cloud::speech::v1::LongRunningRecognizeRequest const& request); + virtual StatusOr LongRunningRecognize( + ExperimentalTag, NoAwaitTag, + google::cloud::speech::v1::LongRunningRecognizeRequest const& request); + + virtual future< + StatusOr> + LongRunningRecognize(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual std::unique_ptr<::google::cloud::AsyncStreamingReadWriteRpc< google::cloud::speech::v1::StreamingRecognizeRequest, google::cloud::speech::v1::StreamingRecognizeResponse>> diff --git a/google/cloud/speech/v2/internal/speech_connection_impl.cc b/google/cloud/speech/v2/internal/speech_connection_impl.cc index f056c6bf599e9..54366f9fe63d8 100644 --- a/google/cloud/speech/v2/internal/speech_connection_impl.cc +++ b/google/cloud/speech/v2/internal/speech_connection_impl.cc @@ -101,6 +101,57 @@ SpeechConnectionImpl::CreateRecognizer( polling_policy(*current), __func__); } +StatusOr SpeechConnectionImpl::CreateRecognizer( + ExperimentalTag, NoAwaitTag, + google::cloud::speech::v2::CreateRecognizerRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateRecognizer(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::speech::v2::CreateRecognizerRequest const& request) { + return stub_->CreateRecognizer(context, options, request); + }, + *current, request, __func__); +} + +future> +SpeechConnectionImpl::CreateRecognizer( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to CreateRecognizer", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::speech::v2::Recognizer>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::speech::v2::Recognizer>, + polling_policy(*current), __func__); +} + StreamRange SpeechConnectionImpl::ListRecognizers( google::cloud::speech::v2::ListRecognizersRequest request) { @@ -188,6 +239,57 @@ SpeechConnectionImpl::UpdateRecognizer( polling_policy(*current), __func__); } +StatusOr SpeechConnectionImpl::UpdateRecognizer( + ExperimentalTag, NoAwaitTag, + google::cloud::speech::v2::UpdateRecognizerRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UpdateRecognizer(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::speech::v2::UpdateRecognizerRequest const& request) { + return stub_->UpdateRecognizer(context, options, request); + }, + *current, request, __func__); +} + +future> +SpeechConnectionImpl::UpdateRecognizer( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to UpdateRecognizer", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::speech::v2::Recognizer>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::speech::v2::Recognizer>, + polling_policy(*current), __func__); +} + future> SpeechConnectionImpl::DeleteRecognizer( google::cloud::speech::v2::DeleteRecognizerRequest const& request) { @@ -227,6 +329,57 @@ SpeechConnectionImpl::DeleteRecognizer( polling_policy(*current), __func__); } +StatusOr SpeechConnectionImpl::DeleteRecognizer( + ExperimentalTag, NoAwaitTag, + google::cloud::speech::v2::DeleteRecognizerRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteRecognizer(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::speech::v2::DeleteRecognizerRequest const& request) { + return stub_->DeleteRecognizer(context, options, request); + }, + *current, request, __func__); +} + +future> +SpeechConnectionImpl::DeleteRecognizer( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteRecognizer", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::speech::v2::Recognizer>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::speech::v2::Recognizer>, + polling_policy(*current), __func__); +} + future> SpeechConnectionImpl::UndeleteRecognizer( google::cloud::speech::v2::UndeleteRecognizerRequest const& request) { @@ -266,6 +419,58 @@ SpeechConnectionImpl::UndeleteRecognizer( polling_policy(*current), __func__); } +StatusOr +SpeechConnectionImpl::UndeleteRecognizer( + ExperimentalTag, NoAwaitTag, + google::cloud::speech::v2::UndeleteRecognizerRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UndeleteRecognizer(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::speech::v2::UndeleteRecognizerRequest const& request) { + return stub_->UndeleteRecognizer(context, options, request); + }, + *current, request, __func__); +} + +future> +SpeechConnectionImpl::UndeleteRecognizer( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to UndeleteRecognizer", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::speech::v2::Recognizer>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::speech::v2::Recognizer>, + polling_policy(*current), __func__); +} + StatusOr SpeechConnectionImpl::Recognize( google::cloud::speech::v2::RecognizeRequest const& request) { @@ -328,6 +533,57 @@ SpeechConnectionImpl::BatchRecognize( polling_policy(*current), __func__); } +StatusOr SpeechConnectionImpl::BatchRecognize( + ExperimentalTag, NoAwaitTag, + google::cloud::speech::v2::BatchRecognizeRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->BatchRecognize(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::speech::v2::BatchRecognizeRequest const& request) { + return stub_->BatchRecognize(context, options, request); + }, + *current, request, __func__); +} + +future> +SpeechConnectionImpl::BatchRecognize( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to BatchRecognize", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::speech::v2::BatchRecognizeResponse>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::speech::v2::BatchRecognizeResponse>, + polling_policy(*current), __func__); +} + StatusOr SpeechConnectionImpl::GetConfig( google::cloud::speech::v2::GetConfigRequest const& request) { auto current = google::cloud::internal::SaveCurrentOptions(); @@ -393,6 +649,58 @@ SpeechConnectionImpl::CreateCustomClass( polling_policy(*current), __func__); } +StatusOr +SpeechConnectionImpl::CreateCustomClass( + ExperimentalTag, NoAwaitTag, + google::cloud::speech::v2::CreateCustomClassRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateCustomClass(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::speech::v2::CreateCustomClassRequest const& request) { + return stub_->CreateCustomClass(context, options, request); + }, + *current, request, __func__); +} + +future> +SpeechConnectionImpl::CreateCustomClass( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to CreateCustomClass", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::speech::v2::CustomClass>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::speech::v2::CustomClass>, + polling_policy(*current), __func__); +} + StreamRange SpeechConnectionImpl::ListCustomClasses( google::cloud::speech::v2::ListCustomClassesRequest request) { @@ -480,6 +788,58 @@ SpeechConnectionImpl::UpdateCustomClass( polling_policy(*current), __func__); } +StatusOr +SpeechConnectionImpl::UpdateCustomClass( + ExperimentalTag, NoAwaitTag, + google::cloud::speech::v2::UpdateCustomClassRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UpdateCustomClass(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::speech::v2::UpdateCustomClassRequest const& request) { + return stub_->UpdateCustomClass(context, options, request); + }, + *current, request, __func__); +} + +future> +SpeechConnectionImpl::UpdateCustomClass( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to UpdateCustomClass", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::speech::v2::CustomClass>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::speech::v2::CustomClass>, + polling_policy(*current), __func__); +} + future> SpeechConnectionImpl::DeleteCustomClass( google::cloud::speech::v2::DeleteCustomClassRequest const& request) { @@ -519,6 +879,58 @@ SpeechConnectionImpl::DeleteCustomClass( polling_policy(*current), __func__); } +StatusOr +SpeechConnectionImpl::DeleteCustomClass( + ExperimentalTag, NoAwaitTag, + google::cloud::speech::v2::DeleteCustomClassRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteCustomClass(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::speech::v2::DeleteCustomClassRequest const& request) { + return stub_->DeleteCustomClass(context, options, request); + }, + *current, request, __func__); +} + +future> +SpeechConnectionImpl::DeleteCustomClass( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteCustomClass", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::speech::v2::CustomClass>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::speech::v2::CustomClass>, + polling_policy(*current), __func__); +} + future> SpeechConnectionImpl::UndeleteCustomClass( google::cloud::speech::v2::UndeleteCustomClassRequest const& request) { @@ -559,6 +971,58 @@ SpeechConnectionImpl::UndeleteCustomClass( polling_policy(*current), __func__); } +StatusOr +SpeechConnectionImpl::UndeleteCustomClass( + ExperimentalTag, NoAwaitTag, + google::cloud::speech::v2::UndeleteCustomClassRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UndeleteCustomClass(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::speech::v2::UndeleteCustomClassRequest const& + request) { + return stub_->UndeleteCustomClass(context, options, request); + }, + *current, request, __func__); +} + +future> +SpeechConnectionImpl::UndeleteCustomClass( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to UndeleteCustomClass", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::speech::v2::CustomClass>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::speech::v2::CustomClass>, + polling_policy(*current), __func__); +} + future> SpeechConnectionImpl::CreatePhraseSet( google::cloud::speech::v2::CreatePhraseSetRequest const& request) { @@ -598,6 +1062,56 @@ SpeechConnectionImpl::CreatePhraseSet( polling_policy(*current), __func__); } +StatusOr SpeechConnectionImpl::CreatePhraseSet( + ExperimentalTag, NoAwaitTag, + google::cloud::speech::v2::CreatePhraseSetRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreatePhraseSet(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::speech::v2::CreatePhraseSetRequest const& request) { + return stub_->CreatePhraseSet(context, options, request); + }, + *current, request, __func__); +} + +future> +SpeechConnectionImpl::CreatePhraseSet( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to CreatePhraseSet", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::speech::v2::PhraseSet>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::speech::v2::PhraseSet>, + polling_policy(*current), __func__); +} + StreamRange SpeechConnectionImpl::ListPhraseSets( google::cloud::speech::v2::ListPhraseSetsRequest request) { @@ -685,6 +1199,56 @@ SpeechConnectionImpl::UpdatePhraseSet( polling_policy(*current), __func__); } +StatusOr SpeechConnectionImpl::UpdatePhraseSet( + ExperimentalTag, NoAwaitTag, + google::cloud::speech::v2::UpdatePhraseSetRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UpdatePhraseSet(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::speech::v2::UpdatePhraseSetRequest const& request) { + return stub_->UpdatePhraseSet(context, options, request); + }, + *current, request, __func__); +} + +future> +SpeechConnectionImpl::UpdatePhraseSet( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to UpdatePhraseSet", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::speech::v2::PhraseSet>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::speech::v2::PhraseSet>, + polling_policy(*current), __func__); +} + future> SpeechConnectionImpl::DeletePhraseSet( google::cloud::speech::v2::DeletePhraseSetRequest const& request) { @@ -724,6 +1288,56 @@ SpeechConnectionImpl::DeletePhraseSet( polling_policy(*current), __func__); } +StatusOr SpeechConnectionImpl::DeletePhraseSet( + ExperimentalTag, NoAwaitTag, + google::cloud::speech::v2::DeletePhraseSetRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeletePhraseSet(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::speech::v2::DeletePhraseSetRequest const& request) { + return stub_->DeletePhraseSet(context, options, request); + }, + *current, request, __func__); +} + +future> +SpeechConnectionImpl::DeletePhraseSet( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to DeletePhraseSet", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::speech::v2::PhraseSet>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::speech::v2::PhraseSet>, + polling_policy(*current), __func__); +} + future> SpeechConnectionImpl::UndeletePhraseSet( google::cloud::speech::v2::UndeletePhraseSetRequest const& request) { @@ -763,6 +1377,58 @@ SpeechConnectionImpl::UndeletePhraseSet( polling_policy(*current), __func__); } +StatusOr +SpeechConnectionImpl::UndeletePhraseSet( + ExperimentalTag, NoAwaitTag, + google::cloud::speech::v2::UndeletePhraseSetRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UndeletePhraseSet(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::speech::v2::UndeletePhraseSetRequest const& request) { + return stub_->UndeletePhraseSet(context, options, request); + }, + *current, request, __func__); +} + +future> +SpeechConnectionImpl::UndeletePhraseSet( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to UndeletePhraseSet", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::speech::v2::PhraseSet>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::speech::v2::PhraseSet>, + polling_policy(*current), __func__); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace speech_v2_internal } // namespace cloud diff --git a/google/cloud/speech/v2/internal/speech_connection_impl.h b/google/cloud/speech/v2/internal/speech_connection_impl.h index 15d9ca9756325..baca5915b2fa1 100644 --- a/google/cloud/speech/v2/internal/speech_connection_impl.h +++ b/google/cloud/speech/v2/internal/speech_connection_impl.h @@ -55,6 +55,15 @@ class SpeechConnectionImpl : public speech_v2::SpeechConnection { google::cloud::speech::v2::CreateRecognizerRequest const& request) override; + StatusOr CreateRecognizer( + ExperimentalTag, NoAwaitTag, + google::cloud::speech::v2::CreateRecognizerRequest const& request) + override; + + future> CreateRecognizer( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListRecognizers( google::cloud::speech::v2::ListRecognizersRequest request) override; @@ -65,14 +74,41 @@ class SpeechConnectionImpl : public speech_v2::SpeechConnection { google::cloud::speech::v2::UpdateRecognizerRequest const& request) override; + StatusOr UpdateRecognizer( + ExperimentalTag, NoAwaitTag, + google::cloud::speech::v2::UpdateRecognizerRequest const& request) + override; + + future> UpdateRecognizer( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteRecognizer( google::cloud::speech::v2::DeleteRecognizerRequest const& request) override; + StatusOr DeleteRecognizer( + ExperimentalTag, NoAwaitTag, + google::cloud::speech::v2::DeleteRecognizerRequest const& request) + override; + + future> DeleteRecognizer( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UndeleteRecognizer( google::cloud::speech::v2::UndeleteRecognizerRequest const& request) override; + StatusOr UndeleteRecognizer( + ExperimentalTag, NoAwaitTag, + google::cloud::speech::v2::UndeleteRecognizerRequest const& request) + override; + + future> UndeleteRecognizer( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr Recognize( google::cloud::speech::v2::RecognizeRequest const& request) override; @@ -85,6 +121,14 @@ class SpeechConnectionImpl : public speech_v2::SpeechConnection { BatchRecognize( google::cloud::speech::v2::BatchRecognizeRequest const& request) override; + StatusOr BatchRecognize( + ExperimentalTag, NoAwaitTag, + google::cloud::speech::v2::BatchRecognizeRequest const& request) override; + + future> + BatchRecognize(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetConfig( google::cloud::speech::v2::GetConfigRequest const& request) override; @@ -95,6 +139,15 @@ class SpeechConnectionImpl : public speech_v2::SpeechConnection { google::cloud::speech::v2::CreateCustomClassRequest const& request) override; + StatusOr CreateCustomClass( + ExperimentalTag, NoAwaitTag, + google::cloud::speech::v2::CreateCustomClassRequest const& request) + override; + + future> CreateCustomClass( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListCustomClasses( google::cloud::speech::v2::ListCustomClassesRequest request) override; @@ -105,18 +158,54 @@ class SpeechConnectionImpl : public speech_v2::SpeechConnection { google::cloud::speech::v2::UpdateCustomClassRequest const& request) override; + StatusOr UpdateCustomClass( + ExperimentalTag, NoAwaitTag, + google::cloud::speech::v2::UpdateCustomClassRequest const& request) + override; + + future> UpdateCustomClass( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteCustomClass( google::cloud::speech::v2::DeleteCustomClassRequest const& request) override; + StatusOr DeleteCustomClass( + ExperimentalTag, NoAwaitTag, + google::cloud::speech::v2::DeleteCustomClassRequest const& request) + override; + + future> DeleteCustomClass( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UndeleteCustomClass( google::cloud::speech::v2::UndeleteCustomClassRequest const& request) override; + StatusOr UndeleteCustomClass( + ExperimentalTag, NoAwaitTag, + google::cloud::speech::v2::UndeleteCustomClassRequest const& request) + override; + + future> UndeleteCustomClass( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> CreatePhraseSet( google::cloud::speech::v2::CreatePhraseSetRequest const& request) override; + StatusOr CreatePhraseSet( + ExperimentalTag, NoAwaitTag, + google::cloud::speech::v2::CreatePhraseSetRequest const& request) + override; + + future> CreatePhraseSet( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListPhraseSets( google::cloud::speech::v2::ListPhraseSetsRequest request) override; @@ -127,14 +216,41 @@ class SpeechConnectionImpl : public speech_v2::SpeechConnection { google::cloud::speech::v2::UpdatePhraseSetRequest const& request) override; + StatusOr UpdatePhraseSet( + ExperimentalTag, NoAwaitTag, + google::cloud::speech::v2::UpdatePhraseSetRequest const& request) + override; + + future> UpdatePhraseSet( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeletePhraseSet( google::cloud::speech::v2::DeletePhraseSetRequest const& request) override; + StatusOr DeletePhraseSet( + ExperimentalTag, NoAwaitTag, + google::cloud::speech::v2::DeletePhraseSetRequest const& request) + override; + + future> DeletePhraseSet( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UndeletePhraseSet( google::cloud::speech::v2::UndeletePhraseSetRequest const& request) override; + StatusOr UndeletePhraseSet( + ExperimentalTag, NoAwaitTag, + google::cloud::speech::v2::UndeletePhraseSetRequest const& request) + override; + + future> UndeletePhraseSet( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + private: std::unique_ptr background_; std::shared_ptr stub_; diff --git a/google/cloud/speech/v2/internal/speech_tracing_connection.cc b/google/cloud/speech/v2/internal/speech_tracing_connection.cc index a7c4c9561fa37..6ca42cf5de390 100644 --- a/google/cloud/speech/v2/internal/speech_tracing_connection.cc +++ b/google/cloud/speech/v2/internal/speech_tracing_connection.cc @@ -42,6 +42,28 @@ SpeechTracingConnection::CreateRecognizer( return internal::EndSpan(std::move(span), child_->CreateRecognizer(request)); } +StatusOr +SpeechTracingConnection::CreateRecognizer( + ExperimentalTag, NoAwaitTag, + google::cloud::speech::v2::CreateRecognizerRequest const& request) { + auto span = + internal::MakeSpan("speech_v2::SpeechConnection::CreateRecognizer"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->CreateRecognizer(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +SpeechTracingConnection::CreateRecognizer( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = + internal::MakeSpan("speech_v2::SpeechConnection::CreateRecognizer"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->CreateRecognizer(ExperimentalTag{}, operation)); +} + StreamRange SpeechTracingConnection::ListRecognizers( google::cloud::speech::v2::ListRecognizersRequest request) { @@ -70,6 +92,28 @@ SpeechTracingConnection::UpdateRecognizer( return internal::EndSpan(std::move(span), child_->UpdateRecognizer(request)); } +StatusOr +SpeechTracingConnection::UpdateRecognizer( + ExperimentalTag, NoAwaitTag, + google::cloud::speech::v2::UpdateRecognizerRequest const& request) { + auto span = + internal::MakeSpan("speech_v2::SpeechConnection::UpdateRecognizer"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->UpdateRecognizer(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +SpeechTracingConnection::UpdateRecognizer( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = + internal::MakeSpan("speech_v2::SpeechConnection::UpdateRecognizer"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->UpdateRecognizer(ExperimentalTag{}, operation)); +} + future> SpeechTracingConnection::DeleteRecognizer( google::cloud::speech::v2::DeleteRecognizerRequest const& request) { @@ -79,6 +123,28 @@ SpeechTracingConnection::DeleteRecognizer( return internal::EndSpan(std::move(span), child_->DeleteRecognizer(request)); } +StatusOr +SpeechTracingConnection::DeleteRecognizer( + ExperimentalTag, NoAwaitTag, + google::cloud::speech::v2::DeleteRecognizerRequest const& request) { + auto span = + internal::MakeSpan("speech_v2::SpeechConnection::DeleteRecognizer"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->DeleteRecognizer(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +SpeechTracingConnection::DeleteRecognizer( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = + internal::MakeSpan("speech_v2::SpeechConnection::DeleteRecognizer"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->DeleteRecognizer(ExperimentalTag{}, operation)); +} + future> SpeechTracingConnection::UndeleteRecognizer( google::cloud::speech::v2::UndeleteRecognizerRequest const& request) { @@ -89,6 +155,28 @@ SpeechTracingConnection::UndeleteRecognizer( child_->UndeleteRecognizer(request)); } +StatusOr +SpeechTracingConnection::UndeleteRecognizer( + ExperimentalTag, NoAwaitTag, + google::cloud::speech::v2::UndeleteRecognizerRequest const& request) { + auto span = + internal::MakeSpan("speech_v2::SpeechConnection::UndeleteRecognizer"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->UndeleteRecognizer(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +SpeechTracingConnection::UndeleteRecognizer( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = + internal::MakeSpan("speech_v2::SpeechConnection::UndeleteRecognizer"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->UndeleteRecognizer( + ExperimentalTag{}, operation)); +} + StatusOr SpeechTracingConnection::Recognize( google::cloud::speech::v2::RecognizeRequest const& request) { @@ -112,6 +200,25 @@ SpeechTracingConnection::BatchRecognize( return internal::EndSpan(std::move(span), child_->BatchRecognize(request)); } +StatusOr +SpeechTracingConnection::BatchRecognize( + ExperimentalTag, NoAwaitTag, + google::cloud::speech::v2::BatchRecognizeRequest const& request) { + auto span = internal::MakeSpan("speech_v2::SpeechConnection::BatchRecognize"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->BatchRecognize(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +SpeechTracingConnection::BatchRecognize( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan("speech_v2::SpeechConnection::BatchRecognize"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->BatchRecognize(ExperimentalTag{}, operation)); +} + StatusOr SpeechTracingConnection::GetConfig( google::cloud::speech::v2::GetConfigRequest const& request) { auto span = internal::MakeSpan("speech_v2::SpeechConnection::GetConfig"); @@ -136,6 +243,28 @@ SpeechTracingConnection::CreateCustomClass( return internal::EndSpan(std::move(span), child_->CreateCustomClass(request)); } +StatusOr +SpeechTracingConnection::CreateCustomClass( + ExperimentalTag, NoAwaitTag, + google::cloud::speech::v2::CreateCustomClassRequest const& request) { + auto span = + internal::MakeSpan("speech_v2::SpeechConnection::CreateCustomClass"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->CreateCustomClass(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +SpeechTracingConnection::CreateCustomClass( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = + internal::MakeSpan("speech_v2::SpeechConnection::CreateCustomClass"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->CreateCustomClass(ExperimentalTag{}, operation)); +} + StreamRange SpeechTracingConnection::ListCustomClasses( google::cloud::speech::v2::ListCustomClassesRequest request) { @@ -164,6 +293,28 @@ SpeechTracingConnection::UpdateCustomClass( return internal::EndSpan(std::move(span), child_->UpdateCustomClass(request)); } +StatusOr +SpeechTracingConnection::UpdateCustomClass( + ExperimentalTag, NoAwaitTag, + google::cloud::speech::v2::UpdateCustomClassRequest const& request) { + auto span = + internal::MakeSpan("speech_v2::SpeechConnection::UpdateCustomClass"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->UpdateCustomClass(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +SpeechTracingConnection::UpdateCustomClass( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = + internal::MakeSpan("speech_v2::SpeechConnection::UpdateCustomClass"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->UpdateCustomClass(ExperimentalTag{}, operation)); +} + future> SpeechTracingConnection::DeleteCustomClass( google::cloud::speech::v2::DeleteCustomClassRequest const& request) { @@ -173,6 +324,28 @@ SpeechTracingConnection::DeleteCustomClass( return internal::EndSpan(std::move(span), child_->DeleteCustomClass(request)); } +StatusOr +SpeechTracingConnection::DeleteCustomClass( + ExperimentalTag, NoAwaitTag, + google::cloud::speech::v2::DeleteCustomClassRequest const& request) { + auto span = + internal::MakeSpan("speech_v2::SpeechConnection::DeleteCustomClass"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->DeleteCustomClass(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +SpeechTracingConnection::DeleteCustomClass( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = + internal::MakeSpan("speech_v2::SpeechConnection::DeleteCustomClass"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->DeleteCustomClass(ExperimentalTag{}, operation)); +} + future> SpeechTracingConnection::UndeleteCustomClass( google::cloud::speech::v2::UndeleteCustomClassRequest const& request) { @@ -183,6 +356,28 @@ SpeechTracingConnection::UndeleteCustomClass( child_->UndeleteCustomClass(request)); } +StatusOr +SpeechTracingConnection::UndeleteCustomClass( + ExperimentalTag, NoAwaitTag, + google::cloud::speech::v2::UndeleteCustomClassRequest const& request) { + auto span = + internal::MakeSpan("speech_v2::SpeechConnection::UndeleteCustomClass"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->UndeleteCustomClass(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +SpeechTracingConnection::UndeleteCustomClass( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = + internal::MakeSpan("speech_v2::SpeechConnection::UndeleteCustomClass"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->UndeleteCustomClass( + ExperimentalTag{}, operation)); +} + future> SpeechTracingConnection::CreatePhraseSet( google::cloud::speech::v2::CreatePhraseSetRequest const& request) { @@ -192,6 +387,27 @@ SpeechTracingConnection::CreatePhraseSet( return internal::EndSpan(std::move(span), child_->CreatePhraseSet(request)); } +StatusOr +SpeechTracingConnection::CreatePhraseSet( + ExperimentalTag, NoAwaitTag, + google::cloud::speech::v2::CreatePhraseSetRequest const& request) { + auto span = + internal::MakeSpan("speech_v2::SpeechConnection::CreatePhraseSet"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->CreatePhraseSet(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +SpeechTracingConnection::CreatePhraseSet( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = + internal::MakeSpan("speech_v2::SpeechConnection::CreatePhraseSet"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->CreatePhraseSet(ExperimentalTag{}, operation)); +} + StreamRange SpeechTracingConnection::ListPhraseSets( google::cloud::speech::v2::ListPhraseSetsRequest request) { @@ -219,6 +435,27 @@ SpeechTracingConnection::UpdatePhraseSet( return internal::EndSpan(std::move(span), child_->UpdatePhraseSet(request)); } +StatusOr +SpeechTracingConnection::UpdatePhraseSet( + ExperimentalTag, NoAwaitTag, + google::cloud::speech::v2::UpdatePhraseSetRequest const& request) { + auto span = + internal::MakeSpan("speech_v2::SpeechConnection::UpdatePhraseSet"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->UpdatePhraseSet(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +SpeechTracingConnection::UpdatePhraseSet( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = + internal::MakeSpan("speech_v2::SpeechConnection::UpdatePhraseSet"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->UpdatePhraseSet(ExperimentalTag{}, operation)); +} + future> SpeechTracingConnection::DeletePhraseSet( google::cloud::speech::v2::DeletePhraseSetRequest const& request) { @@ -228,6 +465,27 @@ SpeechTracingConnection::DeletePhraseSet( return internal::EndSpan(std::move(span), child_->DeletePhraseSet(request)); } +StatusOr +SpeechTracingConnection::DeletePhraseSet( + ExperimentalTag, NoAwaitTag, + google::cloud::speech::v2::DeletePhraseSetRequest const& request) { + auto span = + internal::MakeSpan("speech_v2::SpeechConnection::DeletePhraseSet"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->DeletePhraseSet(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +SpeechTracingConnection::DeletePhraseSet( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = + internal::MakeSpan("speech_v2::SpeechConnection::DeletePhraseSet"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->DeletePhraseSet(ExperimentalTag{}, operation)); +} + future> SpeechTracingConnection::UndeletePhraseSet( google::cloud::speech::v2::UndeletePhraseSetRequest const& request) { @@ -237,6 +495,28 @@ SpeechTracingConnection::UndeletePhraseSet( return internal::EndSpan(std::move(span), child_->UndeletePhraseSet(request)); } +StatusOr +SpeechTracingConnection::UndeletePhraseSet( + ExperimentalTag, NoAwaitTag, + google::cloud::speech::v2::UndeletePhraseSetRequest const& request) { + auto span = + internal::MakeSpan("speech_v2::SpeechConnection::UndeletePhraseSet"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->UndeletePhraseSet(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +SpeechTracingConnection::UndeletePhraseSet( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = + internal::MakeSpan("speech_v2::SpeechConnection::UndeletePhraseSet"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->UndeletePhraseSet(ExperimentalTag{}, operation)); +} + #endif // GOOGLE_CLOUD_CPP_HAVE_OPENTELEMETRY std::shared_ptr MakeSpeechTracingConnection( diff --git a/google/cloud/speech/v2/internal/speech_tracing_connection.h b/google/cloud/speech/v2/internal/speech_tracing_connection.h index 53a26e63d6765..d3e193c921416 100644 --- a/google/cloud/speech/v2/internal/speech_tracing_connection.h +++ b/google/cloud/speech/v2/internal/speech_tracing_connection.h @@ -43,6 +43,15 @@ class SpeechTracingConnection : public speech_v2::SpeechConnection { google::cloud::speech::v2::CreateRecognizerRequest const& request) override; + StatusOr CreateRecognizer( + ExperimentalTag, NoAwaitTag, + google::cloud::speech::v2::CreateRecognizerRequest const& request) + override; + + future> CreateRecognizer( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListRecognizers( google::cloud::speech::v2::ListRecognizersRequest request) override; @@ -53,14 +62,41 @@ class SpeechTracingConnection : public speech_v2::SpeechConnection { google::cloud::speech::v2::UpdateRecognizerRequest const& request) override; + StatusOr UpdateRecognizer( + ExperimentalTag, NoAwaitTag, + google::cloud::speech::v2::UpdateRecognizerRequest const& request) + override; + + future> UpdateRecognizer( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteRecognizer( google::cloud::speech::v2::DeleteRecognizerRequest const& request) override; + StatusOr DeleteRecognizer( + ExperimentalTag, NoAwaitTag, + google::cloud::speech::v2::DeleteRecognizerRequest const& request) + override; + + future> DeleteRecognizer( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UndeleteRecognizer( google::cloud::speech::v2::UndeleteRecognizerRequest const& request) override; + StatusOr UndeleteRecognizer( + ExperimentalTag, NoAwaitTag, + google::cloud::speech::v2::UndeleteRecognizerRequest const& request) + override; + + future> UndeleteRecognizer( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr Recognize( google::cloud::speech::v2::RecognizeRequest const& request) override; @@ -73,6 +109,14 @@ class SpeechTracingConnection : public speech_v2::SpeechConnection { BatchRecognize( google::cloud::speech::v2::BatchRecognizeRequest const& request) override; + StatusOr BatchRecognize( + ExperimentalTag, NoAwaitTag, + google::cloud::speech::v2::BatchRecognizeRequest const& request) override; + + future> + BatchRecognize(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetConfig( google::cloud::speech::v2::GetConfigRequest const& request) override; @@ -83,6 +127,15 @@ class SpeechTracingConnection : public speech_v2::SpeechConnection { google::cloud::speech::v2::CreateCustomClassRequest const& request) override; + StatusOr CreateCustomClass( + ExperimentalTag, NoAwaitTag, + google::cloud::speech::v2::CreateCustomClassRequest const& request) + override; + + future> CreateCustomClass( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListCustomClasses( google::cloud::speech::v2::ListCustomClassesRequest request) override; @@ -93,18 +146,54 @@ class SpeechTracingConnection : public speech_v2::SpeechConnection { google::cloud::speech::v2::UpdateCustomClassRequest const& request) override; + StatusOr UpdateCustomClass( + ExperimentalTag, NoAwaitTag, + google::cloud::speech::v2::UpdateCustomClassRequest const& request) + override; + + future> UpdateCustomClass( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteCustomClass( google::cloud::speech::v2::DeleteCustomClassRequest const& request) override; + StatusOr DeleteCustomClass( + ExperimentalTag, NoAwaitTag, + google::cloud::speech::v2::DeleteCustomClassRequest const& request) + override; + + future> DeleteCustomClass( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UndeleteCustomClass( google::cloud::speech::v2::UndeleteCustomClassRequest const& request) override; + StatusOr UndeleteCustomClass( + ExperimentalTag, NoAwaitTag, + google::cloud::speech::v2::UndeleteCustomClassRequest const& request) + override; + + future> UndeleteCustomClass( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> CreatePhraseSet( google::cloud::speech::v2::CreatePhraseSetRequest const& request) override; + StatusOr CreatePhraseSet( + ExperimentalTag, NoAwaitTag, + google::cloud::speech::v2::CreatePhraseSetRequest const& request) + override; + + future> CreatePhraseSet( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListPhraseSets( google::cloud::speech::v2::ListPhraseSetsRequest request) override; @@ -115,14 +204,41 @@ class SpeechTracingConnection : public speech_v2::SpeechConnection { google::cloud::speech::v2::UpdatePhraseSetRequest const& request) override; + StatusOr UpdatePhraseSet( + ExperimentalTag, NoAwaitTag, + google::cloud::speech::v2::UpdatePhraseSetRequest const& request) + override; + + future> UpdatePhraseSet( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeletePhraseSet( google::cloud::speech::v2::DeletePhraseSetRequest const& request) override; + StatusOr DeletePhraseSet( + ExperimentalTag, NoAwaitTag, + google::cloud::speech::v2::DeletePhraseSetRequest const& request) + override; + + future> DeletePhraseSet( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UndeletePhraseSet( google::cloud::speech::v2::UndeletePhraseSetRequest const& request) override; + StatusOr UndeletePhraseSet( + ExperimentalTag, NoAwaitTag, + google::cloud::speech::v2::UndeletePhraseSetRequest const& request) + override; + + future> UndeletePhraseSet( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + private: std::shared_ptr child_; }; diff --git a/google/cloud/speech/v2/mocks/mock_speech_connection.h b/google/cloud/speech/v2/mocks/mock_speech_connection.h index 582628973d7a2..3a3279a9634cb 100644 --- a/google/cloud/speech/v2/mocks/mock_speech_connection.h +++ b/google/cloud/speech/v2/mocks/mock_speech_connection.h @@ -51,6 +51,18 @@ class MockSpeechConnection : public speech_v2::SpeechConnection { (google::cloud::speech::v2::CreateRecognizerRequest const& request), (override)); + MOCK_METHOD( + StatusOr, CreateRecognizer, + (ExperimentalTag, NoAwaitTag, + google::cloud::speech::v2::CreateRecognizerRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateRecognizer, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD((StreamRange), ListRecognizers, (google::cloud::speech::v2::ListRecognizersRequest request), @@ -65,17 +77,53 @@ class MockSpeechConnection : public speech_v2::SpeechConnection { (google::cloud::speech::v2::UpdateRecognizerRequest const& request), (override)); + MOCK_METHOD( + StatusOr, UpdateRecognizer, + (ExperimentalTag, NoAwaitTag, + google::cloud::speech::v2::UpdateRecognizerRequest const& request), + (override)); + + MOCK_METHOD(future>, + UpdateRecognizer, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteRecognizer, (google::cloud::speech::v2::DeleteRecognizerRequest const& request), (override)); + MOCK_METHOD( + StatusOr, DeleteRecognizer, + (ExperimentalTag, NoAwaitTag, + google::cloud::speech::v2::DeleteRecognizerRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteRecognizer, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, UndeleteRecognizer, (google::cloud::speech::v2::UndeleteRecognizerRequest const& request), (override)); + MOCK_METHOD( + StatusOr, UndeleteRecognizer, + (ExperimentalTag, NoAwaitTag, + google::cloud::speech::v2::UndeleteRecognizerRequest const& request), + (override)); + + MOCK_METHOD(future>, + UndeleteRecognizer, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(StatusOr, Recognize, (google::cloud::speech::v2::RecognizeRequest const& request), (override)); @@ -91,6 +139,17 @@ class MockSpeechConnection : public speech_v2::SpeechConnection { (google::cloud::speech::v2::BatchRecognizeRequest const& request), (override)); + MOCK_METHOD(StatusOr, BatchRecognize, + (ExperimentalTag, NoAwaitTag, + google::cloud::speech::v2::BatchRecognizeRequest const& request), + (override)); + + MOCK_METHOD( + future>, + BatchRecognize, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(StatusOr, GetConfig, (google::cloud::speech::v2::GetConfigRequest const& request), (override)); @@ -105,6 +164,18 @@ class MockSpeechConnection : public speech_v2::SpeechConnection { (google::cloud::speech::v2::CreateCustomClassRequest const& request), (override)); + MOCK_METHOD( + StatusOr, CreateCustomClass, + (ExperimentalTag, NoAwaitTag, + google::cloud::speech::v2::CreateCustomClassRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateCustomClass, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD((StreamRange), ListCustomClasses, (google::cloud::speech::v2::ListCustomClassesRequest request), @@ -120,23 +191,71 @@ class MockSpeechConnection : public speech_v2::SpeechConnection { (google::cloud::speech::v2::UpdateCustomClassRequest const& request), (override)); + MOCK_METHOD( + StatusOr, UpdateCustomClass, + (ExperimentalTag, NoAwaitTag, + google::cloud::speech::v2::UpdateCustomClassRequest const& request), + (override)); + + MOCK_METHOD(future>, + UpdateCustomClass, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteCustomClass, (google::cloud::speech::v2::DeleteCustomClassRequest const& request), (override)); + MOCK_METHOD( + StatusOr, DeleteCustomClass, + (ExperimentalTag, NoAwaitTag, + google::cloud::speech::v2::DeleteCustomClassRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteCustomClass, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, UndeleteCustomClass, (google::cloud::speech::v2::UndeleteCustomClassRequest const& request), (override)); + MOCK_METHOD( + StatusOr, UndeleteCustomClass, + (ExperimentalTag, NoAwaitTag, + google::cloud::speech::v2::UndeleteCustomClassRequest const& request), + (override)); + + MOCK_METHOD(future>, + UndeleteCustomClass, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, CreatePhraseSet, (google::cloud::speech::v2::CreatePhraseSetRequest const& request), (override)); + MOCK_METHOD( + StatusOr, CreatePhraseSet, + (ExperimentalTag, NoAwaitTag, + google::cloud::speech::v2::CreatePhraseSetRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreatePhraseSet, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD((StreamRange), ListPhraseSets, (google::cloud::speech::v2::ListPhraseSetsRequest request), @@ -151,15 +270,51 @@ class MockSpeechConnection : public speech_v2::SpeechConnection { (google::cloud::speech::v2::UpdatePhraseSetRequest const& request), (override)); + MOCK_METHOD( + StatusOr, UpdatePhraseSet, + (ExperimentalTag, NoAwaitTag, + google::cloud::speech::v2::UpdatePhraseSetRequest const& request), + (override)); + + MOCK_METHOD(future>, + UpdatePhraseSet, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeletePhraseSet, (google::cloud::speech::v2::DeletePhraseSetRequest const& request), (override)); + MOCK_METHOD( + StatusOr, DeletePhraseSet, + (ExperimentalTag, NoAwaitTag, + google::cloud::speech::v2::DeletePhraseSetRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeletePhraseSet, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, UndeletePhraseSet, (google::cloud::speech::v2::UndeletePhraseSetRequest const& request), (override)); + + MOCK_METHOD( + StatusOr, UndeletePhraseSet, + (ExperimentalTag, NoAwaitTag, + google::cloud::speech::v2::UndeletePhraseSetRequest const& request), + (override)); + + MOCK_METHOD(future>, + UndeletePhraseSet, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); }; GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END diff --git a/google/cloud/speech/v2/speech_connection.cc b/google/cloud/speech/v2/speech_connection.cc index dc42f03d72bc6..4647e75327f77 100644 --- a/google/cloud/speech/v2/speech_connection.cc +++ b/google/cloud/speech/v2/speech_connection.cc @@ -46,6 +46,21 @@ SpeechConnection::CreateRecognizer( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr SpeechConnection::CreateRecognizer( + ExperimentalTag, NoAwaitTag, + google::cloud::speech::v2::CreateRecognizerRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +SpeechConnection::CreateRecognizer(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StreamRange SpeechConnection::ListRecognizers( google::cloud::speech::v2:: @@ -67,6 +82,21 @@ SpeechConnection::UpdateRecognizer( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr SpeechConnection::UpdateRecognizer( + ExperimentalTag, NoAwaitTag, + google::cloud::speech::v2::UpdateRecognizerRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +SpeechConnection::UpdateRecognizer(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> SpeechConnection::DeleteRecognizer( google::cloud::speech::v2::DeleteRecognizerRequest const&) { @@ -75,6 +105,21 @@ SpeechConnection::DeleteRecognizer( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr SpeechConnection::DeleteRecognizer( + ExperimentalTag, NoAwaitTag, + google::cloud::speech::v2::DeleteRecognizerRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +SpeechConnection::DeleteRecognizer(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> SpeechConnection::UndeleteRecognizer( google::cloud::speech::v2::UndeleteRecognizerRequest const&) { @@ -83,6 +128,21 @@ SpeechConnection::UndeleteRecognizer( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr SpeechConnection::UndeleteRecognizer( + ExperimentalTag, NoAwaitTag, + google::cloud::speech::v2::UndeleteRecognizerRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +SpeechConnection::UndeleteRecognizer(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr SpeechConnection::Recognize( google::cloud::speech::v2::RecognizeRequest const&) { @@ -108,6 +168,21 @@ SpeechConnection::BatchRecognize( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr SpeechConnection::BatchRecognize( + ExperimentalTag, NoAwaitTag, + google::cloud::speech::v2::BatchRecognizeRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +SpeechConnection::BatchRecognize(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr SpeechConnection::GetConfig( google::cloud::speech::v2::GetConfigRequest const&) { return Status(StatusCode::kUnimplemented, "not implemented"); @@ -126,6 +201,21 @@ SpeechConnection::CreateCustomClass( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr SpeechConnection::CreateCustomClass( + ExperimentalTag, NoAwaitTag, + google::cloud::speech::v2::CreateCustomClassRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +SpeechConnection::CreateCustomClass(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StreamRange SpeechConnection::ListCustomClasses( google::cloud::speech::v2:: @@ -148,6 +238,21 @@ SpeechConnection::UpdateCustomClass( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr SpeechConnection::UpdateCustomClass( + ExperimentalTag, NoAwaitTag, + google::cloud::speech::v2::UpdateCustomClassRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +SpeechConnection::UpdateCustomClass(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> SpeechConnection::DeleteCustomClass( google::cloud::speech::v2::DeleteCustomClassRequest const&) { @@ -156,6 +261,21 @@ SpeechConnection::DeleteCustomClass( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr SpeechConnection::DeleteCustomClass( + ExperimentalTag, NoAwaitTag, + google::cloud::speech::v2::DeleteCustomClassRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +SpeechConnection::DeleteCustomClass(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> SpeechConnection::UndeleteCustomClass( google::cloud::speech::v2::UndeleteCustomClassRequest const&) { @@ -164,6 +284,21 @@ SpeechConnection::UndeleteCustomClass( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr SpeechConnection::UndeleteCustomClass( + ExperimentalTag, NoAwaitTag, + google::cloud::speech::v2::UndeleteCustomClassRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +SpeechConnection::UndeleteCustomClass(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> SpeechConnection::CreatePhraseSet( google::cloud::speech::v2::CreatePhraseSetRequest const&) { @@ -172,6 +307,21 @@ SpeechConnection::CreatePhraseSet( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr SpeechConnection::CreatePhraseSet( + ExperimentalTag, NoAwaitTag, + google::cloud::speech::v2::CreatePhraseSetRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +SpeechConnection::CreatePhraseSet(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StreamRange SpeechConnection::ListPhraseSets( google::cloud::speech::v2:: @@ -193,6 +343,21 @@ SpeechConnection::UpdatePhraseSet( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr SpeechConnection::UpdatePhraseSet( + ExperimentalTag, NoAwaitTag, + google::cloud::speech::v2::UpdatePhraseSetRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +SpeechConnection::UpdatePhraseSet(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> SpeechConnection::DeletePhraseSet( google::cloud::speech::v2::DeletePhraseSetRequest const&) { @@ -201,6 +366,21 @@ SpeechConnection::DeletePhraseSet( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr SpeechConnection::DeletePhraseSet( + ExperimentalTag, NoAwaitTag, + google::cloud::speech::v2::DeletePhraseSetRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +SpeechConnection::DeletePhraseSet(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> SpeechConnection::UndeletePhraseSet( google::cloud::speech::v2::UndeletePhraseSetRequest const&) { @@ -209,6 +389,21 @@ SpeechConnection::UndeletePhraseSet( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr SpeechConnection::UndeletePhraseSet( + ExperimentalTag, NoAwaitTag, + google::cloud::speech::v2::UndeletePhraseSetRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +SpeechConnection::UndeletePhraseSet(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + std::shared_ptr MakeSpeechConnection( std::string const& location, Options options) { internal::CheckExpectedOptions CreateRecognizer( + ExperimentalTag, NoAwaitTag, + google::cloud::speech::v2::CreateRecognizerRequest const& request); + + virtual future> + CreateRecognizer(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StreamRange ListRecognizers( google::cloud::speech::v2::ListRecognizersRequest request); @@ -197,14 +207,38 @@ class SpeechConnection { UpdateRecognizer( google::cloud::speech::v2::UpdateRecognizerRequest const& request); + virtual StatusOr UpdateRecognizer( + ExperimentalTag, NoAwaitTag, + google::cloud::speech::v2::UpdateRecognizerRequest const& request); + + virtual future> + UpdateRecognizer(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> DeleteRecognizer( google::cloud::speech::v2::DeleteRecognizerRequest const& request); + virtual StatusOr DeleteRecognizer( + ExperimentalTag, NoAwaitTag, + google::cloud::speech::v2::DeleteRecognizerRequest const& request); + + virtual future> + DeleteRecognizer(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> UndeleteRecognizer( google::cloud::speech::v2::UndeleteRecognizerRequest const& request); + virtual StatusOr UndeleteRecognizer( + ExperimentalTag, NoAwaitTag, + google::cloud::speech::v2::UndeleteRecognizerRequest const& request); + + virtual future> + UndeleteRecognizer(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StatusOr Recognize( google::cloud::speech::v2::RecognizeRequest const& request); @@ -217,6 +251,14 @@ class SpeechConnection { BatchRecognize( google::cloud::speech::v2::BatchRecognizeRequest const& request); + virtual StatusOr BatchRecognize( + ExperimentalTag, NoAwaitTag, + google::cloud::speech::v2::BatchRecognizeRequest const& request); + + virtual future> + BatchRecognize(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StatusOr GetConfig( google::cloud::speech::v2::GetConfigRequest const& request); @@ -227,6 +269,14 @@ class SpeechConnection { CreateCustomClass( google::cloud::speech::v2::CreateCustomClassRequest const& request); + virtual StatusOr CreateCustomClass( + ExperimentalTag, NoAwaitTag, + google::cloud::speech::v2::CreateCustomClassRequest const& request); + + virtual future> + CreateCustomClass(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StreamRange ListCustomClasses( google::cloud::speech::v2::ListCustomClassesRequest request); @@ -237,18 +287,50 @@ class SpeechConnection { UpdateCustomClass( google::cloud::speech::v2::UpdateCustomClassRequest const& request); + virtual StatusOr UpdateCustomClass( + ExperimentalTag, NoAwaitTag, + google::cloud::speech::v2::UpdateCustomClassRequest const& request); + + virtual future> + UpdateCustomClass(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> DeleteCustomClass( google::cloud::speech::v2::DeleteCustomClassRequest const& request); + virtual StatusOr DeleteCustomClass( + ExperimentalTag, NoAwaitTag, + google::cloud::speech::v2::DeleteCustomClassRequest const& request); + + virtual future> + DeleteCustomClass(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> UndeleteCustomClass( google::cloud::speech::v2::UndeleteCustomClassRequest const& request); + virtual StatusOr UndeleteCustomClass( + ExperimentalTag, NoAwaitTag, + google::cloud::speech::v2::UndeleteCustomClassRequest const& request); + + virtual future> + UndeleteCustomClass(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> CreatePhraseSet( google::cloud::speech::v2::CreatePhraseSetRequest const& request); + virtual StatusOr CreatePhraseSet( + ExperimentalTag, NoAwaitTag, + google::cloud::speech::v2::CreatePhraseSetRequest const& request); + + virtual future> + CreatePhraseSet(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StreamRange ListPhraseSets( google::cloud::speech::v2::ListPhraseSetsRequest request); @@ -259,13 +341,37 @@ class SpeechConnection { UpdatePhraseSet( google::cloud::speech::v2::UpdatePhraseSetRequest const& request); + virtual StatusOr UpdatePhraseSet( + ExperimentalTag, NoAwaitTag, + google::cloud::speech::v2::UpdatePhraseSetRequest const& request); + + virtual future> + UpdatePhraseSet(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> DeletePhraseSet( google::cloud::speech::v2::DeletePhraseSetRequest const& request); + virtual StatusOr DeletePhraseSet( + ExperimentalTag, NoAwaitTag, + google::cloud::speech::v2::DeletePhraseSetRequest const& request); + + virtual future> + DeletePhraseSet(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> UndeletePhraseSet( google::cloud::speech::v2::UndeletePhraseSetRequest const& request); + + virtual StatusOr UndeletePhraseSet( + ExperimentalTag, NoAwaitTag, + google::cloud::speech::v2::UndeletePhraseSetRequest const& request); + + virtual future> + UndeletePhraseSet(ExperimentalTag, + google::longrunning::Operation const& operation); }; /** diff --git a/google/cloud/sql/v1/sql_available_database_versions_connection.h b/google/cloud/sql/v1/sql_available_database_versions_connection.h index 6576fac464dec..cc0bb5f7e5105 100644 --- a/google/cloud/sql/v1/sql_available_database_versions_connection.h +++ b/google/cloud/sql/v1/sql_available_database_versions_connection.h @@ -22,6 +22,7 @@ #include "google/cloud/sql/v1/internal/sql_available_database_versions_retry_traits.h" #include "google/cloud/sql/v1/sql_available_database_versions_connection_idempotency_policy.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/internal/retry_policy_impl.h" #include "google/cloud/options.h" #include "google/cloud/status_or.h" diff --git a/google/cloud/sql/v1/sql_backup_runs_connection.h b/google/cloud/sql/v1/sql_backup_runs_connection.h index efcd57cd843fd..c9300a96f5711 100644 --- a/google/cloud/sql/v1/sql_backup_runs_connection.h +++ b/google/cloud/sql/v1/sql_backup_runs_connection.h @@ -22,6 +22,7 @@ #include "google/cloud/sql/v1/internal/sql_backup_runs_retry_traits.h" #include "google/cloud/sql/v1/sql_backup_runs_connection_idempotency_policy.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/internal/retry_policy_impl.h" #include "google/cloud/options.h" #include "google/cloud/status_or.h" diff --git a/google/cloud/sql/v1/sql_connect_connection.h b/google/cloud/sql/v1/sql_connect_connection.h index 774ae47a898d4..7250621410741 100644 --- a/google/cloud/sql/v1/sql_connect_connection.h +++ b/google/cloud/sql/v1/sql_connect_connection.h @@ -22,6 +22,7 @@ #include "google/cloud/sql/v1/internal/sql_connect_retry_traits.h" #include "google/cloud/sql/v1/sql_connect_connection_idempotency_policy.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/internal/retry_policy_impl.h" #include "google/cloud/options.h" #include "google/cloud/status_or.h" diff --git a/google/cloud/sql/v1/sql_databases_connection.h b/google/cloud/sql/v1/sql_databases_connection.h index 504b9dca07ae0..1c275ccb30d76 100644 --- a/google/cloud/sql/v1/sql_databases_connection.h +++ b/google/cloud/sql/v1/sql_databases_connection.h @@ -22,6 +22,7 @@ #include "google/cloud/sql/v1/internal/sql_databases_retry_traits.h" #include "google/cloud/sql/v1/sql_databases_connection_idempotency_policy.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/internal/retry_policy_impl.h" #include "google/cloud/options.h" #include "google/cloud/status_or.h" diff --git a/google/cloud/sql/v1/sql_events_connection.h b/google/cloud/sql/v1/sql_events_connection.h index 722f9fa85596f..35e7c39c7d371 100644 --- a/google/cloud/sql/v1/sql_events_connection.h +++ b/google/cloud/sql/v1/sql_events_connection.h @@ -22,6 +22,7 @@ #include "google/cloud/sql/v1/internal/sql_events_retry_traits.h" #include "google/cloud/sql/v1/sql_events_connection_idempotency_policy.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/internal/retry_policy_impl.h" #include "google/cloud/options.h" #include "google/cloud/status_or.h" diff --git a/google/cloud/sql/v1/sql_flags_connection.h b/google/cloud/sql/v1/sql_flags_connection.h index 1f43563e386af..c1248577d062a 100644 --- a/google/cloud/sql/v1/sql_flags_connection.h +++ b/google/cloud/sql/v1/sql_flags_connection.h @@ -22,6 +22,7 @@ #include "google/cloud/sql/v1/internal/sql_flags_retry_traits.h" #include "google/cloud/sql/v1/sql_flags_connection_idempotency_policy.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/internal/retry_policy_impl.h" #include "google/cloud/options.h" #include "google/cloud/status_or.h" diff --git a/google/cloud/sql/v1/sql_iam_policies_connection.h b/google/cloud/sql/v1/sql_iam_policies_connection.h index 4e3bb2d488d49..670c2abbf4e96 100644 --- a/google/cloud/sql/v1/sql_iam_policies_connection.h +++ b/google/cloud/sql/v1/sql_iam_policies_connection.h @@ -22,6 +22,7 @@ #include "google/cloud/sql/v1/internal/sql_iam_policies_retry_traits.h" #include "google/cloud/sql/v1/sql_iam_policies_connection_idempotency_policy.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/internal/retry_policy_impl.h" #include "google/cloud/options.h" #include "google/cloud/status_or.h" diff --git a/google/cloud/sql/v1/sql_instance_names_connection.h b/google/cloud/sql/v1/sql_instance_names_connection.h index c9886606e6633..5116bb5900b2a 100644 --- a/google/cloud/sql/v1/sql_instance_names_connection.h +++ b/google/cloud/sql/v1/sql_instance_names_connection.h @@ -22,6 +22,7 @@ #include "google/cloud/sql/v1/internal/sql_instance_names_retry_traits.h" #include "google/cloud/sql/v1/sql_instance_names_connection_idempotency_policy.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/internal/retry_policy_impl.h" #include "google/cloud/options.h" #include "google/cloud/status_or.h" diff --git a/google/cloud/sql/v1/sql_instances_connection.h b/google/cloud/sql/v1/sql_instances_connection.h index f60d5e083112b..030a41bdcffe2 100644 --- a/google/cloud/sql/v1/sql_instances_connection.h +++ b/google/cloud/sql/v1/sql_instances_connection.h @@ -22,6 +22,7 @@ #include "google/cloud/sql/v1/internal/sql_instances_retry_traits.h" #include "google/cloud/sql/v1/sql_instances_connection_idempotency_policy.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/internal/retry_policy_impl.h" #include "google/cloud/options.h" #include "google/cloud/status_or.h" diff --git a/google/cloud/sql/v1/sql_operations_connection.h b/google/cloud/sql/v1/sql_operations_connection.h index 308c5c0d0a6dc..95729f8440d24 100644 --- a/google/cloud/sql/v1/sql_operations_connection.h +++ b/google/cloud/sql/v1/sql_operations_connection.h @@ -22,6 +22,7 @@ #include "google/cloud/sql/v1/internal/sql_operations_retry_traits.h" #include "google/cloud/sql/v1/sql_operations_connection_idempotency_policy.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/internal/retry_policy_impl.h" #include "google/cloud/options.h" #include "google/cloud/status_or.h" diff --git a/google/cloud/sql/v1/sql_regions_connection.h b/google/cloud/sql/v1/sql_regions_connection.h index 49a891c1ba1d6..82a177645b61f 100644 --- a/google/cloud/sql/v1/sql_regions_connection.h +++ b/google/cloud/sql/v1/sql_regions_connection.h @@ -22,6 +22,7 @@ #include "google/cloud/sql/v1/internal/sql_regions_retry_traits.h" #include "google/cloud/sql/v1/sql_regions_connection_idempotency_policy.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/internal/retry_policy_impl.h" #include "google/cloud/options.h" #include "google/cloud/status_or.h" diff --git a/google/cloud/sql/v1/sql_ssl_certs_connection.h b/google/cloud/sql/v1/sql_ssl_certs_connection.h index 72c02c2404fdc..ab5bbb20636fc 100644 --- a/google/cloud/sql/v1/sql_ssl_certs_connection.h +++ b/google/cloud/sql/v1/sql_ssl_certs_connection.h @@ -22,6 +22,7 @@ #include "google/cloud/sql/v1/internal/sql_ssl_certs_retry_traits.h" #include "google/cloud/sql/v1/sql_ssl_certs_connection_idempotency_policy.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/internal/retry_policy_impl.h" #include "google/cloud/options.h" #include "google/cloud/status_or.h" diff --git a/google/cloud/sql/v1/sql_tiers_connection.h b/google/cloud/sql/v1/sql_tiers_connection.h index 2f911d7176dd2..158b3e99249a9 100644 --- a/google/cloud/sql/v1/sql_tiers_connection.h +++ b/google/cloud/sql/v1/sql_tiers_connection.h @@ -22,6 +22,7 @@ #include "google/cloud/sql/v1/internal/sql_tiers_retry_traits.h" #include "google/cloud/sql/v1/sql_tiers_connection_idempotency_policy.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/internal/retry_policy_impl.h" #include "google/cloud/options.h" #include "google/cloud/status_or.h" diff --git a/google/cloud/sql/v1/sql_users_connection.h b/google/cloud/sql/v1/sql_users_connection.h index c46c470fe8d31..64d831f56ed15 100644 --- a/google/cloud/sql/v1/sql_users_connection.h +++ b/google/cloud/sql/v1/sql_users_connection.h @@ -22,6 +22,7 @@ #include "google/cloud/sql/v1/internal/sql_users_retry_traits.h" #include "google/cloud/sql/v1/sql_users_connection_idempotency_policy.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/internal/retry_policy_impl.h" #include "google/cloud/options.h" #include "google/cloud/status_or.h" diff --git a/google/cloud/storagecontrol/v2/internal/storage_control_connection_impl.cc b/google/cloud/storagecontrol/v2/internal/storage_control_connection_impl.cc index 69a2035ef0186..5b3947e9400dc 100644 --- a/google/cloud/storagecontrol/v2/internal/storage_control_connection_impl.cc +++ b/google/cloud/storagecontrol/v2/internal/storage_control_connection_impl.cc @@ -196,6 +196,57 @@ StorageControlConnectionImpl::RenameFolder( polling_policy(*current), __func__); } +StatusOr +StorageControlConnectionImpl::RenameFolder( + ExperimentalTag, NoAwaitTag, + google::storage::control::v2::RenameFolderRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->RenameFolder(request), + [this](grpc::ClientContext& context, Options const& options, + google::storage::control::v2::RenameFolderRequest const& request) { + return stub_->RenameFolder(context, options, request); + }, + *current, request, __func__); +} + +future> +StorageControlConnectionImpl::RenameFolder( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to RenameFolder", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::storage::control::v2::Folder>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::storage::control::v2::Folder>, + polling_policy(*current), __func__); +} + StatusOr StorageControlConnectionImpl::GetStorageLayout( google::storage::control::v2::GetStorageLayoutRequest const& request) { diff --git a/google/cloud/storagecontrol/v2/internal/storage_control_connection_impl.h b/google/cloud/storagecontrol/v2/internal/storage_control_connection_impl.h index 66e79cf95748d..535f5e31ab4da 100644 --- a/google/cloud/storagecontrol/v2/internal/storage_control_connection_impl.h +++ b/google/cloud/storagecontrol/v2/internal/storage_control_connection_impl.h @@ -70,6 +70,15 @@ class StorageControlConnectionImpl google::storage::control::v2::RenameFolderRequest const& request) override; + StatusOr RenameFolder( + ExperimentalTag, NoAwaitTag, + google::storage::control::v2::RenameFolderRequest const& request) + override; + + future> RenameFolder( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetStorageLayout( google::storage::control::v2::GetStorageLayoutRequest const& request) override; diff --git a/google/cloud/storagecontrol/v2/internal/storage_control_tracing_connection.cc b/google/cloud/storagecontrol/v2/internal/storage_control_tracing_connection.cc index d1bebbd5b3fd5..17830aba8c527 100644 --- a/google/cloud/storagecontrol/v2/internal/storage_control_tracing_connection.cc +++ b/google/cloud/storagecontrol/v2/internal/storage_control_tracing_connection.cc @@ -79,6 +79,27 @@ StorageControlTracingConnection::RenameFolder( return internal::EndSpan(std::move(span), child_->RenameFolder(request)); } +StatusOr +StorageControlTracingConnection::RenameFolder( + ExperimentalTag, NoAwaitTag, + google::storage::control::v2::RenameFolderRequest const& request) { + auto span = internal::MakeSpan( + "storagecontrol_v2::StorageControlConnection::RenameFolder"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->RenameFolder(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +StorageControlTracingConnection::RenameFolder( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "storagecontrol_v2::StorageControlConnection::RenameFolder"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->RenameFolder(ExperimentalTag{}, operation)); +} + StatusOr StorageControlTracingConnection::GetStorageLayout( google::storage::control::v2::GetStorageLayoutRequest const& request) { diff --git a/google/cloud/storagecontrol/v2/internal/storage_control_tracing_connection.h b/google/cloud/storagecontrol/v2/internal/storage_control_tracing_connection.h index 661eb1dfd5938..18c655f81dbfc 100644 --- a/google/cloud/storagecontrol/v2/internal/storage_control_tracing_connection.h +++ b/google/cloud/storagecontrol/v2/internal/storage_control_tracing_connection.h @@ -57,6 +57,15 @@ class StorageControlTracingConnection google::storage::control::v2::RenameFolderRequest const& request) override; + StatusOr RenameFolder( + ExperimentalTag, NoAwaitTag, + google::storage::control::v2::RenameFolderRequest const& request) + override; + + future> RenameFolder( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetStorageLayout( google::storage::control::v2::GetStorageLayoutRequest const& request) override; diff --git a/google/cloud/storagecontrol/v2/mocks/mock_storage_control_connection.h b/google/cloud/storagecontrol/v2/mocks/mock_storage_control_connection.h index 42eea3e991590..92cc389680fab 100644 --- a/google/cloud/storagecontrol/v2/mocks/mock_storage_control_connection.h +++ b/google/cloud/storagecontrol/v2/mocks/mock_storage_control_connection.h @@ -70,6 +70,18 @@ class MockStorageControlConnection (google::storage::control::v2::RenameFolderRequest const& request), (override)); + MOCK_METHOD( + StatusOr, RenameFolder, + (ExperimentalTag, NoAwaitTag, + google::storage::control::v2::RenameFolderRequest const& request), + (override)); + + MOCK_METHOD(future>, + RenameFolder, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr, GetStorageLayout, (google::storage::control::v2::GetStorageLayoutRequest const& request), diff --git a/google/cloud/storagecontrol/v2/storage_control_connection.cc b/google/cloud/storagecontrol/v2/storage_control_connection.cc index 00bb387d2301c..fe82fa76e1a19 100644 --- a/google/cloud/storagecontrol/v2/storage_control_connection.cc +++ b/google/cloud/storagecontrol/v2/storage_control_connection.cc @@ -71,6 +71,21 @@ StorageControlConnection::RenameFolder( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr StorageControlConnection::RenameFolder( + ExperimentalTag, NoAwaitTag, + google::storage::control::v2::RenameFolderRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +StorageControlConnection::RenameFolder(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr StorageControlConnection::GetStorageLayout( google::storage::control::v2::GetStorageLayoutRequest const&) { diff --git a/google/cloud/storagecontrol/v2/storage_control_connection.h b/google/cloud/storagecontrol/v2/storage_control_connection.h index b47eadfa64845..a201fea506bcd 100644 --- a/google/cloud/storagecontrol/v2/storage_control_connection.h +++ b/google/cloud/storagecontrol/v2/storage_control_connection.h @@ -22,8 +22,10 @@ #include "google/cloud/storagecontrol/v2/internal/storage_control_retry_traits.h" #include "google/cloud/storagecontrol/v2/storage_control_connection_idempotency_policy.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/internal/retry_policy_impl.h" +#include "google/cloud/no_await_tag.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" #include "google/cloud/status_or.h" @@ -208,6 +210,13 @@ class StorageControlConnection { virtual future> RenameFolder( google::storage::control::v2::RenameFolderRequest const& request); + virtual StatusOr RenameFolder( + ExperimentalTag, NoAwaitTag, + google::storage::control::v2::RenameFolderRequest const& request); + + virtual future> RenameFolder( + ExperimentalTag, google::longrunning::Operation const& operation); + virtual StatusOr GetStorageLayout( google::storage::control::v2::GetStorageLayoutRequest const& request); diff --git a/google/cloud/storageinsights/v1/storage_insights_connection.h b/google/cloud/storageinsights/v1/storage_insights_connection.h index c788c33c0579e..ea2bddbb1cf88 100644 --- a/google/cloud/storageinsights/v1/storage_insights_connection.h +++ b/google/cloud/storageinsights/v1/storage_insights_connection.h @@ -22,6 +22,7 @@ #include "google/cloud/storageinsights/v1/internal/storage_insights_retry_traits.h" #include "google/cloud/storageinsights/v1/storage_insights_connection_idempotency_policy.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/internal/retry_policy_impl.h" #include "google/cloud/options.h" #include "google/cloud/status_or.h" diff --git a/google/cloud/storagetransfer/v1/internal/storage_transfer_connection_impl.cc b/google/cloud/storagetransfer/v1/internal/storage_transfer_connection_impl.cc index 02b57d814fecc..ba9c68e19f1ac 100644 --- a/google/cloud/storagetransfer/v1/internal/storage_transfer_connection_impl.cc +++ b/google/cloud/storagetransfer/v1/internal/storage_transfer_connection_impl.cc @@ -237,6 +237,59 @@ StorageTransferServiceConnectionImpl::RunTransferJob( polling_policy(*current), __func__); } +StatusOr +StorageTransferServiceConnectionImpl::RunTransferJob( + ExperimentalTag, NoAwaitTag, + google::storagetransfer::v1::RunTransferJobRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->RunTransferJob(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::storagetransfer::v1::RunTransferJobRequest const& request) { + return stub_->RunTransferJob(context, options, request); + }, + *current, request, __func__); +} + +future> +StorageTransferServiceConnectionImpl::RunTransferJob( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to RunTransferJob", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::storagetransfer::v1::TransferOperation>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::storagetransfer::v1::TransferOperation>, + polling_policy(*current), __func__); +} + Status StorageTransferServiceConnectionImpl::DeleteTransferJob( google::storagetransfer::v1::DeleteTransferJobRequest const& request) { auto current = google::cloud::internal::SaveCurrentOptions(); diff --git a/google/cloud/storagetransfer/v1/internal/storage_transfer_connection_impl.h b/google/cloud/storagetransfer/v1/internal/storage_transfer_connection_impl.h index e5b6052bd9a54..1e01e69125f48 100644 --- a/google/cloud/storagetransfer/v1/internal/storage_transfer_connection_impl.h +++ b/google/cloud/storagetransfer/v1/internal/storage_transfer_connection_impl.h @@ -85,6 +85,15 @@ class StorageTransferServiceConnectionImpl RunTransferJob(google::storagetransfer::v1::RunTransferJobRequest const& request) override; + StatusOr RunTransferJob( + ExperimentalTag, NoAwaitTag, + google::storagetransfer::v1::RunTransferJobRequest const& request) + override; + + future> + RunTransferJob(ExperimentalTag, + google::longrunning::Operation const& operation) override; + Status DeleteTransferJob( google::storagetransfer::v1::DeleteTransferJobRequest const& request) override; diff --git a/google/cloud/storagetransfer/v1/internal/storage_transfer_tracing_connection.cc b/google/cloud/storagetransfer/v1/internal/storage_transfer_tracing_connection.cc index 64ca84e47d25f..60a879a109a42 100644 --- a/google/cloud/storagetransfer/v1/internal/storage_transfer_tracing_connection.cc +++ b/google/cloud/storagetransfer/v1/internal/storage_transfer_tracing_connection.cc @@ -114,6 +114,27 @@ StorageTransferServiceTracingConnection::RunTransferJob( return internal::EndSpan(std::move(span), child_->RunTransferJob(request)); } +StatusOr +StorageTransferServiceTracingConnection::RunTransferJob( + ExperimentalTag, NoAwaitTag, + google::storagetransfer::v1::RunTransferJobRequest const& request) { + auto span = internal::MakeSpan( + "storagetransfer_v1::StorageTransferServiceConnection::RunTransferJob"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->RunTransferJob(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +StorageTransferServiceTracingConnection::RunTransferJob( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "storagetransfer_v1::StorageTransferServiceConnection::RunTransferJob"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->RunTransferJob(ExperimentalTag{}, operation)); +} + Status StorageTransferServiceTracingConnection::DeleteTransferJob( google::storagetransfer::v1::DeleteTransferJobRequest const& request) { auto span = internal::MakeSpan( diff --git a/google/cloud/storagetransfer/v1/internal/storage_transfer_tracing_connection.h b/google/cloud/storagetransfer/v1/internal/storage_transfer_tracing_connection.h index 1d30e2df92729..0d9c1af7db5c9 100644 --- a/google/cloud/storagetransfer/v1/internal/storage_transfer_tracing_connection.h +++ b/google/cloud/storagetransfer/v1/internal/storage_transfer_tracing_connection.h @@ -73,6 +73,15 @@ class StorageTransferServiceTracingConnection RunTransferJob(google::storagetransfer::v1::RunTransferJobRequest const& request) override; + StatusOr RunTransferJob( + ExperimentalTag, NoAwaitTag, + google::storagetransfer::v1::RunTransferJobRequest const& request) + override; + + future> + RunTransferJob(ExperimentalTag, + google::longrunning::Operation const& operation) override; + Status DeleteTransferJob( google::storagetransfer::v1::DeleteTransferJobRequest const& request) override; diff --git a/google/cloud/storagetransfer/v1/mocks/mock_storage_transfer_connection.h b/google/cloud/storagetransfer/v1/mocks/mock_storage_transfer_connection.h index 42d8aa6ab354d..e7e977fc5f4da 100644 --- a/google/cloud/storagetransfer/v1/mocks/mock_storage_transfer_connection.h +++ b/google/cloud/storagetransfer/v1/mocks/mock_storage_transfer_connection.h @@ -91,6 +91,18 @@ class MockStorageTransferServiceConnection (google::storagetransfer::v1::RunTransferJobRequest const& request), (override)); + MOCK_METHOD( + StatusOr, RunTransferJob, + (ExperimentalTag, NoAwaitTag, + google::storagetransfer::v1::RunTransferJobRequest const& request), + (override)); + + MOCK_METHOD(future>, + RunTransferJob, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( Status, DeleteTransferJob, (google::storagetransfer::v1::DeleteTransferJobRequest const& request), diff --git a/google/cloud/storagetransfer/v1/storage_transfer_connection.cc b/google/cloud/storagetransfer/v1/storage_transfer_connection.cc index b63056433c832..bc8462faa859d 100644 --- a/google/cloud/storagetransfer/v1/storage_transfer_connection.cc +++ b/google/cloud/storagetransfer/v1/storage_transfer_connection.cc @@ -88,6 +88,22 @@ StorageTransferServiceConnection::RunTransferJob( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +StorageTransferServiceConnection::RunTransferJob( + ExperimentalTag, NoAwaitTag, + google::storagetransfer::v1::RunTransferJobRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +StorageTransferServiceConnection::RunTransferJob( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + Status StorageTransferServiceConnection::DeleteTransferJob( google::storagetransfer::v1::DeleteTransferJobRequest const&) { return Status(StatusCode::kUnimplemented, "not implemented"); diff --git a/google/cloud/storagetransfer/v1/storage_transfer_connection.h b/google/cloud/storagetransfer/v1/storage_transfer_connection.h index 92aa6890ef16f..cc8580c237b70 100644 --- a/google/cloud/storagetransfer/v1/storage_transfer_connection.h +++ b/google/cloud/storagetransfer/v1/storage_transfer_connection.h @@ -22,8 +22,10 @@ #include "google/cloud/storagetransfer/v1/internal/storage_transfer_retry_traits.h" #include "google/cloud/storagetransfer/v1/storage_transfer_connection_idempotency_policy.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/internal/retry_policy_impl.h" +#include "google/cloud/no_await_tag.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" #include "google/cloud/status_or.h" @@ -222,6 +224,14 @@ class StorageTransferServiceConnection { RunTransferJob( google::storagetransfer::v1::RunTransferJobRequest const& request); + virtual StatusOr RunTransferJob( + ExperimentalTag, NoAwaitTag, + google::storagetransfer::v1::RunTransferJobRequest const& request); + + virtual future> + RunTransferJob(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual Status DeleteTransferJob( google::storagetransfer::v1::DeleteTransferJobRequest const& request); diff --git a/google/cloud/support/v2/case_attachment_connection.h b/google/cloud/support/v2/case_attachment_connection.h index cbb912a173e51..261974a8b890c 100644 --- a/google/cloud/support/v2/case_attachment_connection.h +++ b/google/cloud/support/v2/case_attachment_connection.h @@ -22,6 +22,7 @@ #include "google/cloud/support/v2/case_attachment_connection_idempotency_policy.h" #include "google/cloud/support/v2/internal/case_attachment_retry_traits.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/internal/retry_policy_impl.h" #include "google/cloud/options.h" #include "google/cloud/status_or.h" diff --git a/google/cloud/support/v2/case_connection.h b/google/cloud/support/v2/case_connection.h index d3f8a93246066..988705d3b4bf8 100644 --- a/google/cloud/support/v2/case_connection.h +++ b/google/cloud/support/v2/case_connection.h @@ -22,6 +22,7 @@ #include "google/cloud/support/v2/case_connection_idempotency_policy.h" #include "google/cloud/support/v2/internal/case_retry_traits.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/internal/retry_policy_impl.h" #include "google/cloud/options.h" #include "google/cloud/status_or.h" diff --git a/google/cloud/support/v2/comment_connection.h b/google/cloud/support/v2/comment_connection.h index 05673b43ea1aa..4d1561808a8f9 100644 --- a/google/cloud/support/v2/comment_connection.h +++ b/google/cloud/support/v2/comment_connection.h @@ -22,6 +22,7 @@ #include "google/cloud/support/v2/comment_connection_idempotency_policy.h" #include "google/cloud/support/v2/internal/comment_retry_traits.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/internal/retry_policy_impl.h" #include "google/cloud/options.h" #include "google/cloud/status_or.h" diff --git a/google/cloud/talent/v4/company_connection.h b/google/cloud/talent/v4/company_connection.h index a107ff041fe03..3c8744d54916c 100644 --- a/google/cloud/talent/v4/company_connection.h +++ b/google/cloud/talent/v4/company_connection.h @@ -22,6 +22,7 @@ #include "google/cloud/talent/v4/company_connection_idempotency_policy.h" #include "google/cloud/talent/v4/internal/company_retry_traits.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/internal/retry_policy_impl.h" #include "google/cloud/options.h" #include "google/cloud/status_or.h" diff --git a/google/cloud/talent/v4/completion_connection.h b/google/cloud/talent/v4/completion_connection.h index c17847cc053dd..78d62749762e9 100644 --- a/google/cloud/talent/v4/completion_connection.h +++ b/google/cloud/talent/v4/completion_connection.h @@ -22,6 +22,7 @@ #include "google/cloud/talent/v4/completion_connection_idempotency_policy.h" #include "google/cloud/talent/v4/internal/completion_retry_traits.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/internal/retry_policy_impl.h" #include "google/cloud/options.h" #include "google/cloud/status_or.h" diff --git a/google/cloud/talent/v4/event_connection.h b/google/cloud/talent/v4/event_connection.h index 9d95989d6cd34..9d1563e9707fe 100644 --- a/google/cloud/talent/v4/event_connection.h +++ b/google/cloud/talent/v4/event_connection.h @@ -22,6 +22,7 @@ #include "google/cloud/talent/v4/event_connection_idempotency_policy.h" #include "google/cloud/talent/v4/internal/event_retry_traits.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/internal/retry_policy_impl.h" #include "google/cloud/options.h" #include "google/cloud/status_or.h" diff --git a/google/cloud/talent/v4/internal/job_connection_impl.cc b/google/cloud/talent/v4/internal/job_connection_impl.cc index 0c0fcea0478ee..ebc653ef77ade 100644 --- a/google/cloud/talent/v4/internal/job_connection_impl.cc +++ b/google/cloud/talent/v4/internal/job_connection_impl.cc @@ -114,6 +114,58 @@ JobServiceConnectionImpl::BatchCreateJobs( polling_policy(*current), __func__); } +StatusOr +JobServiceConnectionImpl::BatchCreateJobs( + ExperimentalTag, NoAwaitTag, + google::cloud::talent::v4::BatchCreateJobsRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->BatchCreateJobs(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::talent::v4::BatchCreateJobsRequest const& request) { + return stub_->BatchCreateJobs(context, options, request); + }, + *current, request, __func__); +} + +future> +JobServiceConnectionImpl::BatchCreateJobs( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to BatchCreateJobs", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::talent::v4::BatchCreateJobsResponse>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::talent::v4::BatchCreateJobsResponse>, + polling_policy(*current), __func__); +} + StatusOr JobServiceConnectionImpl::GetJob( google::cloud::talent::v4::GetJobRequest const& request) { auto current = google::cloud::internal::SaveCurrentOptions(); @@ -179,6 +231,58 @@ JobServiceConnectionImpl::BatchUpdateJobs( polling_policy(*current), __func__); } +StatusOr +JobServiceConnectionImpl::BatchUpdateJobs( + ExperimentalTag, NoAwaitTag, + google::cloud::talent::v4::BatchUpdateJobsRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->BatchUpdateJobs(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::talent::v4::BatchUpdateJobsRequest const& request) { + return stub_->BatchUpdateJobs(context, options, request); + }, + *current, request, __func__); +} + +future> +JobServiceConnectionImpl::BatchUpdateJobs( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to BatchUpdateJobs", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::talent::v4::BatchUpdateJobsResponse>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::talent::v4::BatchUpdateJobsResponse>, + polling_policy(*current), __func__); +} + Status JobServiceConnectionImpl::DeleteJob( google::cloud::talent::v4::DeleteJobRequest const& request) { auto current = google::cloud::internal::SaveCurrentOptions(); @@ -231,6 +335,58 @@ JobServiceConnectionImpl::BatchDeleteJobs( polling_policy(*current), __func__); } +StatusOr +JobServiceConnectionImpl::BatchDeleteJobs( + ExperimentalTag, NoAwaitTag, + google::cloud::talent::v4::BatchDeleteJobsRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->BatchDeleteJobs(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::talent::v4::BatchDeleteJobsRequest const& request) { + return stub_->BatchDeleteJobs(context, options, request); + }, + *current, request, __func__); +} + +future> +JobServiceConnectionImpl::BatchDeleteJobs( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to BatchDeleteJobs", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::talent::v4::BatchDeleteJobsResponse>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::talent::v4::BatchDeleteJobsResponse>, + polling_policy(*current), __func__); +} + StreamRange JobServiceConnectionImpl::ListJobs( google::cloud::talent::v4::ListJobsRequest request) { request.clear_page_token(); diff --git a/google/cloud/talent/v4/internal/job_connection_impl.h b/google/cloud/talent/v4/internal/job_connection_impl.h index d03b38dda045c..1ddb79627ad73 100644 --- a/google/cloud/talent/v4/internal/job_connection_impl.h +++ b/google/cloud/talent/v4/internal/job_connection_impl.h @@ -58,6 +58,15 @@ class JobServiceConnectionImpl : public talent_v4::JobServiceConnection { BatchCreateJobs(google::cloud::talent::v4::BatchCreateJobsRequest const& request) override; + StatusOr BatchCreateJobs( + ExperimentalTag, NoAwaitTag, + google::cloud::talent::v4::BatchCreateJobsRequest const& request) + override; + + future> + BatchCreateJobs(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetJob( google::cloud::talent::v4::GetJobRequest const& request) override; @@ -68,6 +77,15 @@ class JobServiceConnectionImpl : public talent_v4::JobServiceConnection { BatchUpdateJobs(google::cloud::talent::v4::BatchUpdateJobsRequest const& request) override; + StatusOr BatchUpdateJobs( + ExperimentalTag, NoAwaitTag, + google::cloud::talent::v4::BatchUpdateJobsRequest const& request) + override; + + future> + BatchUpdateJobs(ExperimentalTag, + google::longrunning::Operation const& operation) override; + Status DeleteJob( google::cloud::talent::v4::DeleteJobRequest const& request) override; @@ -75,6 +93,15 @@ class JobServiceConnectionImpl : public talent_v4::JobServiceConnection { BatchDeleteJobs(google::cloud::talent::v4::BatchDeleteJobsRequest const& request) override; + StatusOr BatchDeleteJobs( + ExperimentalTag, NoAwaitTag, + google::cloud::talent::v4::BatchDeleteJobsRequest const& request) + override; + + future> + BatchDeleteJobs(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListJobs( google::cloud::talent::v4::ListJobsRequest request) override; diff --git a/google/cloud/talent/v4/internal/job_tracing_connection.cc b/google/cloud/talent/v4/internal/job_tracing_connection.cc index 5acb764ac7b20..677220d7c6778 100644 --- a/google/cloud/talent/v4/internal/job_tracing_connection.cc +++ b/google/cloud/talent/v4/internal/job_tracing_connection.cc @@ -49,6 +49,27 @@ JobServiceTracingConnection::BatchCreateJobs( return internal::EndSpan(std::move(span), child_->BatchCreateJobs(request)); } +StatusOr +JobServiceTracingConnection::BatchCreateJobs( + ExperimentalTag, NoAwaitTag, + google::cloud::talent::v4::BatchCreateJobsRequest const& request) { + auto span = + internal::MakeSpan("talent_v4::JobServiceConnection::BatchCreateJobs"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->BatchCreateJobs(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +JobServiceTracingConnection::BatchCreateJobs( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = + internal::MakeSpan("talent_v4::JobServiceConnection::BatchCreateJobs"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->BatchCreateJobs(ExperimentalTag{}, operation)); +} + StatusOr JobServiceTracingConnection::GetJob( google::cloud::talent::v4::GetJobRequest const& request) { auto span = internal::MakeSpan("talent_v4::JobServiceConnection::GetJob"); @@ -72,6 +93,27 @@ JobServiceTracingConnection::BatchUpdateJobs( return internal::EndSpan(std::move(span), child_->BatchUpdateJobs(request)); } +StatusOr +JobServiceTracingConnection::BatchUpdateJobs( + ExperimentalTag, NoAwaitTag, + google::cloud::talent::v4::BatchUpdateJobsRequest const& request) { + auto span = + internal::MakeSpan("talent_v4::JobServiceConnection::BatchUpdateJobs"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->BatchUpdateJobs(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +JobServiceTracingConnection::BatchUpdateJobs( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = + internal::MakeSpan("talent_v4::JobServiceConnection::BatchUpdateJobs"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->BatchUpdateJobs(ExperimentalTag{}, operation)); +} + Status JobServiceTracingConnection::DeleteJob( google::cloud::talent::v4::DeleteJobRequest const& request) { auto span = internal::MakeSpan("talent_v4::JobServiceConnection::DeleteJob"); @@ -88,6 +130,27 @@ JobServiceTracingConnection::BatchDeleteJobs( return internal::EndSpan(std::move(span), child_->BatchDeleteJobs(request)); } +StatusOr +JobServiceTracingConnection::BatchDeleteJobs( + ExperimentalTag, NoAwaitTag, + google::cloud::talent::v4::BatchDeleteJobsRequest const& request) { + auto span = + internal::MakeSpan("talent_v4::JobServiceConnection::BatchDeleteJobs"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->BatchDeleteJobs(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +JobServiceTracingConnection::BatchDeleteJobs( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = + internal::MakeSpan("talent_v4::JobServiceConnection::BatchDeleteJobs"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->BatchDeleteJobs(ExperimentalTag{}, operation)); +} + StreamRange JobServiceTracingConnection::ListJobs( google::cloud::talent::v4::ListJobsRequest request) { diff --git a/google/cloud/talent/v4/internal/job_tracing_connection.h b/google/cloud/talent/v4/internal/job_tracing_connection.h index dfaf79dd2355c..0b4f3a2fafb8b 100644 --- a/google/cloud/talent/v4/internal/job_tracing_connection.h +++ b/google/cloud/talent/v4/internal/job_tracing_connection.h @@ -46,6 +46,15 @@ class JobServiceTracingConnection : public talent_v4::JobServiceConnection { BatchCreateJobs(google::cloud::talent::v4::BatchCreateJobsRequest const& request) override; + StatusOr BatchCreateJobs( + ExperimentalTag, NoAwaitTag, + google::cloud::talent::v4::BatchCreateJobsRequest const& request) + override; + + future> + BatchCreateJobs(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetJob( google::cloud::talent::v4::GetJobRequest const& request) override; @@ -56,6 +65,15 @@ class JobServiceTracingConnection : public talent_v4::JobServiceConnection { BatchUpdateJobs(google::cloud::talent::v4::BatchUpdateJobsRequest const& request) override; + StatusOr BatchUpdateJobs( + ExperimentalTag, NoAwaitTag, + google::cloud::talent::v4::BatchUpdateJobsRequest const& request) + override; + + future> + BatchUpdateJobs(ExperimentalTag, + google::longrunning::Operation const& operation) override; + Status DeleteJob( google::cloud::talent::v4::DeleteJobRequest const& request) override; @@ -63,6 +81,15 @@ class JobServiceTracingConnection : public talent_v4::JobServiceConnection { BatchDeleteJobs(google::cloud::talent::v4::BatchDeleteJobsRequest const& request) override; + StatusOr BatchDeleteJobs( + ExperimentalTag, NoAwaitTag, + google::cloud::talent::v4::BatchDeleteJobsRequest const& request) + override; + + future> + BatchDeleteJobs(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListJobs( google::cloud::talent::v4::ListJobsRequest request) override; diff --git a/google/cloud/talent/v4/job_connection.cc b/google/cloud/talent/v4/job_connection.cc index b053a49bd3892..b7556002dd061 100644 --- a/google/cloud/talent/v4/job_connection.cc +++ b/google/cloud/talent/v4/job_connection.cc @@ -51,6 +51,21 @@ JobServiceConnection::BatchCreateJobs( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr JobServiceConnection::BatchCreateJobs( + ExperimentalTag, NoAwaitTag, + google::cloud::talent::v4::BatchCreateJobsRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +JobServiceConnection::BatchCreateJobs(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr JobServiceConnection::GetJob( google::cloud::talent::v4::GetJobRequest const&) { return Status(StatusCode::kUnimplemented, "not implemented"); @@ -69,6 +84,21 @@ JobServiceConnection::BatchUpdateJobs( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr JobServiceConnection::BatchUpdateJobs( + ExperimentalTag, NoAwaitTag, + google::cloud::talent::v4::BatchUpdateJobsRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +JobServiceConnection::BatchUpdateJobs(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + Status JobServiceConnection::DeleteJob( google::cloud::talent::v4::DeleteJobRequest const&) { return Status(StatusCode::kUnimplemented, "not implemented"); @@ -82,6 +112,21 @@ JobServiceConnection::BatchDeleteJobs( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr JobServiceConnection::BatchDeleteJobs( + ExperimentalTag, NoAwaitTag, + google::cloud::talent::v4::BatchDeleteJobsRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +JobServiceConnection::BatchDeleteJobs(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StreamRange JobServiceConnection::ListJobs( google::cloud::talent::v4:: ListJobsRequest) { // NOLINT(performance-unnecessary-value-param) diff --git a/google/cloud/talent/v4/job_connection.h b/google/cloud/talent/v4/job_connection.h index 7bb8e3ea7a50a..2511b4e9d76e2 100644 --- a/google/cloud/talent/v4/job_connection.h +++ b/google/cloud/talent/v4/job_connection.h @@ -22,8 +22,10 @@ #include "google/cloud/talent/v4/internal/job_retry_traits.h" #include "google/cloud/talent/v4/job_connection_idempotency_policy.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/internal/retry_policy_impl.h" +#include "google/cloud/no_await_tag.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" #include "google/cloud/status_or.h" @@ -191,6 +193,14 @@ class JobServiceConnection { BatchCreateJobs( google::cloud::talent::v4::BatchCreateJobsRequest const& request); + virtual StatusOr BatchCreateJobs( + ExperimentalTag, NoAwaitTag, + google::cloud::talent::v4::BatchCreateJobsRequest const& request); + + virtual future> + BatchCreateJobs(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StatusOr GetJob( google::cloud::talent::v4::GetJobRequest const& request); @@ -201,6 +211,14 @@ class JobServiceConnection { BatchUpdateJobs( google::cloud::talent::v4::BatchUpdateJobsRequest const& request); + virtual StatusOr BatchUpdateJobs( + ExperimentalTag, NoAwaitTag, + google::cloud::talent::v4::BatchUpdateJobsRequest const& request); + + virtual future> + BatchUpdateJobs(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual Status DeleteJob( google::cloud::talent::v4::DeleteJobRequest const& request); @@ -208,6 +226,14 @@ class JobServiceConnection { BatchDeleteJobs( google::cloud::talent::v4::BatchDeleteJobsRequest const& request); + virtual StatusOr BatchDeleteJobs( + ExperimentalTag, NoAwaitTag, + google::cloud::talent::v4::BatchDeleteJobsRequest const& request); + + virtual future> + BatchDeleteJobs(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StreamRange ListJobs( google::cloud::talent::v4::ListJobsRequest request); diff --git a/google/cloud/talent/v4/mocks/mock_job_connection.h b/google/cloud/talent/v4/mocks/mock_job_connection.h index 7f82d96e50c70..a2ae5ba395855 100644 --- a/google/cloud/talent/v4/mocks/mock_job_connection.h +++ b/google/cloud/talent/v4/mocks/mock_job_connection.h @@ -56,6 +56,18 @@ class MockJobServiceConnection : public talent_v4::JobServiceConnection { (google::cloud::talent::v4::BatchCreateJobsRequest const& request), (override)); + MOCK_METHOD( + StatusOr, BatchCreateJobs, + (ExperimentalTag, NoAwaitTag, + google::cloud::talent::v4::BatchCreateJobsRequest const& request), + (override)); + + MOCK_METHOD( + future>, + BatchCreateJobs, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(StatusOr, GetJob, (google::cloud::talent::v4::GetJobRequest const& request), (override)); @@ -70,6 +82,18 @@ class MockJobServiceConnection : public talent_v4::JobServiceConnection { (google::cloud::talent::v4::BatchUpdateJobsRequest const& request), (override)); + MOCK_METHOD( + StatusOr, BatchUpdateJobs, + (ExperimentalTag, NoAwaitTag, + google::cloud::talent::v4::BatchUpdateJobsRequest const& request), + (override)); + + MOCK_METHOD( + future>, + BatchUpdateJobs, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(Status, DeleteJob, (google::cloud::talent::v4::DeleteJobRequest const& request), (override)); @@ -80,6 +104,18 @@ class MockJobServiceConnection : public talent_v4::JobServiceConnection { (google::cloud::talent::v4::BatchDeleteJobsRequest const& request), (override)); + MOCK_METHOD( + StatusOr, BatchDeleteJobs, + (ExperimentalTag, NoAwaitTag, + google::cloud::talent::v4::BatchDeleteJobsRequest const& request), + (override)); + + MOCK_METHOD( + future>, + BatchDeleteJobs, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD((StreamRange), ListJobs, (google::cloud::talent::v4::ListJobsRequest request), (override)); diff --git a/google/cloud/talent/v4/tenant_connection.h b/google/cloud/talent/v4/tenant_connection.h index 662b7320de467..39786eec4c7a0 100644 --- a/google/cloud/talent/v4/tenant_connection.h +++ b/google/cloud/talent/v4/tenant_connection.h @@ -22,6 +22,7 @@ #include "google/cloud/talent/v4/internal/tenant_retry_traits.h" #include "google/cloud/talent/v4/tenant_connection_idempotency_policy.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/internal/retry_policy_impl.h" #include "google/cloud/options.h" #include "google/cloud/status_or.h" diff --git a/google/cloud/tasks/v2/cloud_tasks_connection.h b/google/cloud/tasks/v2/cloud_tasks_connection.h index 7a62b8e510020..c7972b9e2074d 100644 --- a/google/cloud/tasks/v2/cloud_tasks_connection.h +++ b/google/cloud/tasks/v2/cloud_tasks_connection.h @@ -22,6 +22,7 @@ #include "google/cloud/tasks/v2/cloud_tasks_connection_idempotency_policy.h" #include "google/cloud/tasks/v2/internal/cloud_tasks_retry_traits.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/internal/retry_policy_impl.h" #include "google/cloud/options.h" #include "google/cloud/status_or.h" diff --git a/google/cloud/telcoautomation/v1/internal/telco_automation_connection_impl.cc b/google/cloud/telcoautomation/v1/internal/telco_automation_connection_impl.cc index a5d16e79116d0..209b8b00834a7 100644 --- a/google/cloud/telcoautomation/v1/internal/telco_automation_connection_impl.cc +++ b/google/cloud/telcoautomation/v1/internal/telco_automation_connection_impl.cc @@ -162,6 +162,61 @@ TelcoAutomationConnectionImpl::CreateOrchestrationCluster( polling_policy(*current), __func__); } +StatusOr +TelcoAutomationConnectionImpl::CreateOrchestrationCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::telcoautomation::v1::CreateOrchestrationClusterRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateOrchestrationCluster(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::telcoautomation::v1:: + CreateOrchestrationClusterRequest const& request) { + return stub_->CreateOrchestrationCluster(context, options, request); + }, + *current, request, __func__); +} + +future> +TelcoAutomationConnectionImpl::CreateOrchestrationCluster( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to CreateOrchestrationCluster", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::telcoautomation::v1::OrchestrationCluster>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::telcoautomation::v1::OrchestrationCluster>, + polling_policy(*current), __func__); +} + future> TelcoAutomationConnectionImpl::DeleteOrchestrationCluster( google::cloud::telcoautomation::v1::DeleteOrchestrationClusterRequest const& @@ -202,6 +257,61 @@ TelcoAutomationConnectionImpl::DeleteOrchestrationCluster( polling_policy(*current), __func__); } +StatusOr +TelcoAutomationConnectionImpl::DeleteOrchestrationCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::telcoautomation::v1::DeleteOrchestrationClusterRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteOrchestrationCluster(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::telcoautomation::v1:: + DeleteOrchestrationClusterRequest const& request) { + return stub_->DeleteOrchestrationCluster(context, options, request); + }, + *current, request, __func__); +} + +future> +TelcoAutomationConnectionImpl::DeleteOrchestrationCluster( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteOrchestrationCluster", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::telcoautomation::v1::OperationMetadata>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::cloud::telcoautomation::v1::OperationMetadata>, + polling_policy(*current), __func__); +} + StreamRange TelcoAutomationConnectionImpl::ListEdgeSlms( google::cloud::telcoautomation::v1::ListEdgeSlmsRequest request) { @@ -292,6 +402,60 @@ TelcoAutomationConnectionImpl::CreateEdgeSlm( polling_policy(*current), __func__); } +StatusOr +TelcoAutomationConnectionImpl::CreateEdgeSlm( + ExperimentalTag, NoAwaitTag, + google::cloud::telcoautomation::v1::CreateEdgeSlmRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateEdgeSlm(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::telcoautomation::v1::CreateEdgeSlmRequest const& + request) { + return stub_->CreateEdgeSlm(context, options, request); + }, + *current, request, __func__); +} + +future> +TelcoAutomationConnectionImpl::CreateEdgeSlm( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to CreateEdgeSlm", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::telcoautomation::v1::EdgeSlm>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::telcoautomation::v1::EdgeSlm>, + polling_policy(*current), __func__); +} + future> TelcoAutomationConnectionImpl::DeleteEdgeSlm( google::cloud::telcoautomation::v1::DeleteEdgeSlmRequest const& request) { @@ -332,6 +496,60 @@ TelcoAutomationConnectionImpl::DeleteEdgeSlm( polling_policy(*current), __func__); } +StatusOr +TelcoAutomationConnectionImpl::DeleteEdgeSlm( + ExperimentalTag, NoAwaitTag, + google::cloud::telcoautomation::v1::DeleteEdgeSlmRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteEdgeSlm(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::telcoautomation::v1::DeleteEdgeSlmRequest const& + request) { + return stub_->DeleteEdgeSlm(context, options, request); + }, + *current, request, __func__); +} + +future> +TelcoAutomationConnectionImpl::DeleteEdgeSlm( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteEdgeSlm", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::telcoautomation::v1::OperationMetadata>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::cloud::telcoautomation::v1::OperationMetadata>, + polling_policy(*current), __func__); +} + StatusOr TelcoAutomationConnectionImpl::CreateBlueprint( google::cloud::telcoautomation::v1::CreateBlueprintRequest const& request) { diff --git a/google/cloud/telcoautomation/v1/internal/telco_automation_connection_impl.h b/google/cloud/telcoautomation/v1/internal/telco_automation_connection_impl.h index de44084723c1e..efaa9f651cb45 100644 --- a/google/cloud/telcoautomation/v1/internal/telco_automation_connection_impl.h +++ b/google/cloud/telcoautomation/v1/internal/telco_automation_connection_impl.h @@ -67,11 +67,31 @@ class TelcoAutomationConnectionImpl google::cloud::telcoautomation::v1:: CreateOrchestrationClusterRequest const& request) override; + StatusOr CreateOrchestrationCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::telcoautomation::v1:: + CreateOrchestrationClusterRequest const& request) override; + + future> + CreateOrchestrationCluster( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteOrchestrationCluster( google::cloud::telcoautomation::v1:: DeleteOrchestrationClusterRequest const& request) override; + StatusOr DeleteOrchestrationCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::telcoautomation::v1:: + DeleteOrchestrationClusterRequest const& request) override; + + future> + DeleteOrchestrationCluster( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListEdgeSlms( google::cloud::telcoautomation::v1::ListEdgeSlmsRequest request) override; @@ -83,10 +103,28 @@ class TelcoAutomationConnectionImpl google::cloud::telcoautomation::v1::CreateEdgeSlmRequest const& request) override; + StatusOr CreateEdgeSlm( + ExperimentalTag, NoAwaitTag, + google::cloud::telcoautomation::v1::CreateEdgeSlmRequest const& request) + override; + + future> CreateEdgeSlm( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteEdgeSlm(google::cloud::telcoautomation::v1::DeleteEdgeSlmRequest const& request) override; + StatusOr DeleteEdgeSlm( + ExperimentalTag, NoAwaitTag, + google::cloud::telcoautomation::v1::DeleteEdgeSlmRequest const& request) + override; + + future> + DeleteEdgeSlm(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr CreateBlueprint( google::cloud::telcoautomation::v1::CreateBlueprintRequest const& request) override; diff --git a/google/cloud/telcoautomation/v1/internal/telco_automation_tracing_connection.cc b/google/cloud/telcoautomation/v1/internal/telco_automation_tracing_connection.cc index 79858d9cec041..6ed945a7aaf0c 100644 --- a/google/cloud/telcoautomation/v1/internal/telco_automation_tracing_connection.cc +++ b/google/cloud/telcoautomation/v1/internal/telco_automation_tracing_connection.cc @@ -69,6 +69,31 @@ TelcoAutomationTracingConnection::CreateOrchestrationCluster( child_->CreateOrchestrationCluster(request)); } +StatusOr +TelcoAutomationTracingConnection::CreateOrchestrationCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::telcoautomation::v1::CreateOrchestrationClusterRequest const& + request) { + auto span = internal::MakeSpan( + "telcoautomation_v1::TelcoAutomationConnection::" + "CreateOrchestrationCluster"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->CreateOrchestrationCluster(ExperimentalTag{}, NoAwaitTag{}, + request)); +} + +future> +TelcoAutomationTracingConnection::CreateOrchestrationCluster( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "telcoautomation_v1::TelcoAutomationConnection::" + "CreateOrchestrationCluster"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->CreateOrchestrationCluster( + ExperimentalTag{}, operation)); +} + future> TelcoAutomationTracingConnection::DeleteOrchestrationCluster( google::cloud::telcoautomation::v1::DeleteOrchestrationClusterRequest const& @@ -81,6 +106,31 @@ TelcoAutomationTracingConnection::DeleteOrchestrationCluster( child_->DeleteOrchestrationCluster(request)); } +StatusOr +TelcoAutomationTracingConnection::DeleteOrchestrationCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::telcoautomation::v1::DeleteOrchestrationClusterRequest const& + request) { + auto span = internal::MakeSpan( + "telcoautomation_v1::TelcoAutomationConnection::" + "DeleteOrchestrationCluster"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->DeleteOrchestrationCluster(ExperimentalTag{}, NoAwaitTag{}, + request)); +} + +future> +TelcoAutomationTracingConnection::DeleteOrchestrationCluster( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "telcoautomation_v1::TelcoAutomationConnection::" + "DeleteOrchestrationCluster"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->DeleteOrchestrationCluster( + ExperimentalTag{}, operation)); +} + StreamRange TelcoAutomationTracingConnection::ListEdgeSlms( google::cloud::telcoautomation::v1::ListEdgeSlmsRequest request) { @@ -111,6 +161,27 @@ TelcoAutomationTracingConnection::CreateEdgeSlm( return internal::EndSpan(std::move(span), child_->CreateEdgeSlm(request)); } +StatusOr +TelcoAutomationTracingConnection::CreateEdgeSlm( + ExperimentalTag, NoAwaitTag, + google::cloud::telcoautomation::v1::CreateEdgeSlmRequest const& request) { + auto span = internal::MakeSpan( + "telcoautomation_v1::TelcoAutomationConnection::CreateEdgeSlm"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->CreateEdgeSlm(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +TelcoAutomationTracingConnection::CreateEdgeSlm( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "telcoautomation_v1::TelcoAutomationConnection::CreateEdgeSlm"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->CreateEdgeSlm(ExperimentalTag{}, operation)); +} + future> TelcoAutomationTracingConnection::DeleteEdgeSlm( google::cloud::telcoautomation::v1::DeleteEdgeSlmRequest const& request) { @@ -120,6 +191,27 @@ TelcoAutomationTracingConnection::DeleteEdgeSlm( return internal::EndSpan(std::move(span), child_->DeleteEdgeSlm(request)); } +StatusOr +TelcoAutomationTracingConnection::DeleteEdgeSlm( + ExperimentalTag, NoAwaitTag, + google::cloud::telcoautomation::v1::DeleteEdgeSlmRequest const& request) { + auto span = internal::MakeSpan( + "telcoautomation_v1::TelcoAutomationConnection::DeleteEdgeSlm"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->DeleteEdgeSlm(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +TelcoAutomationTracingConnection::DeleteEdgeSlm( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "telcoautomation_v1::TelcoAutomationConnection::DeleteEdgeSlm"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->DeleteEdgeSlm(ExperimentalTag{}, operation)); +} + StatusOr TelcoAutomationTracingConnection::CreateBlueprint( google::cloud::telcoautomation::v1::CreateBlueprintRequest const& request) { diff --git a/google/cloud/telcoautomation/v1/internal/telco_automation_tracing_connection.h b/google/cloud/telcoautomation/v1/internal/telco_automation_tracing_connection.h index 04ada07c5bbf5..4d4aae9094b3e 100644 --- a/google/cloud/telcoautomation/v1/internal/telco_automation_tracing_connection.h +++ b/google/cloud/telcoautomation/v1/internal/telco_automation_tracing_connection.h @@ -55,11 +55,31 @@ class TelcoAutomationTracingConnection google::cloud::telcoautomation::v1:: CreateOrchestrationClusterRequest const& request) override; + StatusOr CreateOrchestrationCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::telcoautomation::v1:: + CreateOrchestrationClusterRequest const& request) override; + + future> + CreateOrchestrationCluster( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteOrchestrationCluster( google::cloud::telcoautomation::v1:: DeleteOrchestrationClusterRequest const& request) override; + StatusOr DeleteOrchestrationCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::telcoautomation::v1:: + DeleteOrchestrationClusterRequest const& request) override; + + future> + DeleteOrchestrationCluster( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListEdgeSlms( google::cloud::telcoautomation::v1::ListEdgeSlmsRequest request) override; @@ -71,10 +91,28 @@ class TelcoAutomationTracingConnection google::cloud::telcoautomation::v1::CreateEdgeSlmRequest const& request) override; + StatusOr CreateEdgeSlm( + ExperimentalTag, NoAwaitTag, + google::cloud::telcoautomation::v1::CreateEdgeSlmRequest const& request) + override; + + future> CreateEdgeSlm( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteEdgeSlm(google::cloud::telcoautomation::v1::DeleteEdgeSlmRequest const& request) override; + StatusOr DeleteEdgeSlm( + ExperimentalTag, NoAwaitTag, + google::cloud::telcoautomation::v1::DeleteEdgeSlmRequest const& request) + override; + + future> + DeleteEdgeSlm(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr CreateBlueprint( google::cloud::telcoautomation::v1::CreateBlueprintRequest const& request) override; diff --git a/google/cloud/telcoautomation/v1/mocks/mock_telco_automation_connection.h b/google/cloud/telcoautomation/v1/mocks/mock_telco_automation_connection.h index ed35251872693..d1424d4f97431 100644 --- a/google/cloud/telcoautomation/v1/mocks/mock_telco_automation_connection.h +++ b/google/cloud/telcoautomation/v1/mocks/mock_telco_automation_connection.h @@ -69,6 +69,20 @@ class MockTelcoAutomationConnection CreateOrchestrationClusterRequest const& request), (override)); + MOCK_METHOD(StatusOr, + CreateOrchestrationCluster, + (ExperimentalTag, NoAwaitTag, + google::cloud::telcoautomation::v1:: + CreateOrchestrationClusterRequest const& request), + (override)); + + MOCK_METHOD( + future< + StatusOr>, + CreateOrchestrationCluster, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteOrchestrationCluster, @@ -76,6 +90,19 @@ class MockTelcoAutomationConnection DeleteOrchestrationClusterRequest const& request), (override)); + MOCK_METHOD(StatusOr, + DeleteOrchestrationCluster, + (ExperimentalTag, NoAwaitTag, + google::cloud::telcoautomation::v1:: + DeleteOrchestrationClusterRequest const& request), + (override)); + + MOCK_METHOD( + future>, + DeleteOrchestrationCluster, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD((StreamRange), ListEdgeSlms, (google::cloud::telcoautomation::v1::ListEdgeSlmsRequest request), @@ -92,12 +119,36 @@ class MockTelcoAutomationConnection (google::cloud::telcoautomation::v1::CreateEdgeSlmRequest const& request), (override)); + MOCK_METHOD( + StatusOr, CreateEdgeSlm, + (ExperimentalTag, NoAwaitTag, + google::cloud::telcoautomation::v1::CreateEdgeSlmRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateEdgeSlm, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteEdgeSlm, (google::cloud::telcoautomation::v1::DeleteEdgeSlmRequest const& request), (override)); + MOCK_METHOD( + StatusOr, DeleteEdgeSlm, + (ExperimentalTag, NoAwaitTag, + google::cloud::telcoautomation::v1::DeleteEdgeSlmRequest const& request), + (override)); + + MOCK_METHOD( + future>, + DeleteEdgeSlm, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(StatusOr, CreateBlueprint, (google::cloud::telcoautomation::v1::CreateBlueprintRequest const& diff --git a/google/cloud/telcoautomation/v1/telco_automation_connection.cc b/google/cloud/telcoautomation/v1/telco_automation_connection.cc index fc7326c8dadac..12376b01b7f78 100644 --- a/google/cloud/telcoautomation/v1/telco_automation_connection.cc +++ b/google/cloud/telcoautomation/v1/telco_automation_connection.cc @@ -61,6 +61,23 @@ TelcoAutomationConnection::CreateOrchestrationCluster( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +TelcoAutomationConnection::CreateOrchestrationCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::telcoautomation::v1:: + CreateOrchestrationClusterRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +TelcoAutomationConnection::CreateOrchestrationCluster( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> TelcoAutomationConnection::DeleteOrchestrationCluster( google::cloud::telcoautomation::v1:: @@ -70,6 +87,23 @@ TelcoAutomationConnection::DeleteOrchestrationCluster( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +TelcoAutomationConnection::DeleteOrchestrationCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::telcoautomation::v1:: + DeleteOrchestrationClusterRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +TelcoAutomationConnection::DeleteOrchestrationCluster( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StreamRange TelcoAutomationConnection::ListEdgeSlms( google::cloud::telcoautomation::v1:: @@ -92,6 +126,22 @@ TelcoAutomationConnection::CreateEdgeSlm( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +TelcoAutomationConnection::CreateEdgeSlm( + ExperimentalTag, NoAwaitTag, + google::cloud::telcoautomation::v1::CreateEdgeSlmRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +TelcoAutomationConnection::CreateEdgeSlm( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> TelcoAutomationConnection::DeleteEdgeSlm( google::cloud::telcoautomation::v1::DeleteEdgeSlmRequest const&) { @@ -100,6 +150,22 @@ TelcoAutomationConnection::DeleteEdgeSlm( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +TelcoAutomationConnection::DeleteEdgeSlm( + ExperimentalTag, NoAwaitTag, + google::cloud::telcoautomation::v1::DeleteEdgeSlmRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +TelcoAutomationConnection::DeleteEdgeSlm( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr TelcoAutomationConnection::CreateBlueprint( google::cloud::telcoautomation::v1::CreateBlueprintRequest const&) { diff --git a/google/cloud/telcoautomation/v1/telco_automation_connection.h b/google/cloud/telcoautomation/v1/telco_automation_connection.h index 14dafebb4e584..8f75431c98fcd 100644 --- a/google/cloud/telcoautomation/v1/telco_automation_connection.h +++ b/google/cloud/telcoautomation/v1/telco_automation_connection.h @@ -22,8 +22,10 @@ #include "google/cloud/telcoautomation/v1/internal/telco_automation_retry_traits.h" #include "google/cloud/telcoautomation/v1/telco_automation_connection_idempotency_policy.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/internal/retry_policy_impl.h" +#include "google/cloud/no_await_tag.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" #include "google/cloud/status_or.h" @@ -202,12 +204,32 @@ class TelcoAutomationConnection { google::cloud::telcoautomation::v1:: CreateOrchestrationClusterRequest const& request); + virtual StatusOr CreateOrchestrationCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::telcoautomation::v1:: + CreateOrchestrationClusterRequest const& request); + + virtual future< + StatusOr> + CreateOrchestrationCluster(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future< StatusOr> DeleteOrchestrationCluster( google::cloud::telcoautomation::v1:: DeleteOrchestrationClusterRequest const& request); + virtual StatusOr DeleteOrchestrationCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::telcoautomation::v1:: + DeleteOrchestrationClusterRequest const& request); + + virtual future< + StatusOr> + DeleteOrchestrationCluster(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StreamRange ListEdgeSlms( google::cloud::telcoautomation::v1::ListEdgeSlmsRequest request); @@ -218,11 +240,28 @@ class TelcoAutomationConnection { CreateEdgeSlm( google::cloud::telcoautomation::v1::CreateEdgeSlmRequest const& request); + virtual StatusOr CreateEdgeSlm( + ExperimentalTag, NoAwaitTag, + google::cloud::telcoautomation::v1::CreateEdgeSlmRequest const& request); + + virtual future> + CreateEdgeSlm(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future< StatusOr> DeleteEdgeSlm( google::cloud::telcoautomation::v1::DeleteEdgeSlmRequest const& request); + virtual StatusOr DeleteEdgeSlm( + ExperimentalTag, NoAwaitTag, + google::cloud::telcoautomation::v1::DeleteEdgeSlmRequest const& request); + + virtual future< + StatusOr> + DeleteEdgeSlm(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StatusOr CreateBlueprint( google::cloud::telcoautomation::v1::CreateBlueprintRequest const& diff --git a/google/cloud/texttospeech/v1/text_to_speech_connection.h b/google/cloud/texttospeech/v1/text_to_speech_connection.h index 2ab1c8df7fc24..4490e83738f43 100644 --- a/google/cloud/texttospeech/v1/text_to_speech_connection.h +++ b/google/cloud/texttospeech/v1/text_to_speech_connection.h @@ -22,6 +22,7 @@ #include "google/cloud/texttospeech/v1/internal/text_to_speech_retry_traits.h" #include "google/cloud/texttospeech/v1/text_to_speech_connection_idempotency_policy.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/internal/retry_policy_impl.h" #include "google/cloud/options.h" #include "google/cloud/status_or.h" diff --git a/google/cloud/timeseriesinsights/v1/timeseries_insights_controller_connection.h b/google/cloud/timeseriesinsights/v1/timeseries_insights_controller_connection.h index 69fd5b335f1b0..a3f3dfaebb0c2 100644 --- a/google/cloud/timeseriesinsights/v1/timeseries_insights_controller_connection.h +++ b/google/cloud/timeseriesinsights/v1/timeseries_insights_controller_connection.h @@ -22,6 +22,7 @@ #include "google/cloud/timeseriesinsights/v1/internal/timeseries_insights_controller_retry_traits.h" #include "google/cloud/timeseriesinsights/v1/timeseries_insights_controller_connection_idempotency_policy.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/internal/retry_policy_impl.h" #include "google/cloud/options.h" #include "google/cloud/status_or.h" diff --git a/google/cloud/tpu/v1/internal/tpu_connection_impl.cc b/google/cloud/tpu/v1/internal/tpu_connection_impl.cc index 257899f7c0826..be0c0122dda3e 100644 --- a/google/cloud/tpu/v1/internal/tpu_connection_impl.cc +++ b/google/cloud/tpu/v1/internal/tpu_connection_impl.cc @@ -140,6 +140,55 @@ future> TpuConnectionImpl::CreateNode( polling_policy(*current), __func__); } +StatusOr TpuConnectionImpl::CreateNode( + ExperimentalTag, NoAwaitTag, + google::cloud::tpu::v1::CreateNodeRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateNode(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::tpu::v1::CreateNodeRequest const& request) { + return stub_->CreateNode(context, options, request); + }, + *current, request, __func__); +} + +future> TpuConnectionImpl::CreateNode( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to CreateNode", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::tpu::v1::Node>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::tpu::v1::Node>, + polling_policy(*current), __func__); +} + future> TpuConnectionImpl::DeleteNode( google::cloud::tpu::v1::DeleteNodeRequest const& request) { auto current = google::cloud::internal::SaveCurrentOptions(); @@ -177,6 +226,55 @@ future> TpuConnectionImpl::DeleteNode( polling_policy(*current), __func__); } +StatusOr TpuConnectionImpl::DeleteNode( + ExperimentalTag, NoAwaitTag, + google::cloud::tpu::v1::DeleteNodeRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteNode(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::tpu::v1::DeleteNodeRequest const& request) { + return stub_->DeleteNode(context, options, request); + }, + *current, request, __func__); +} + +future> TpuConnectionImpl::DeleteNode( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteNode", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::tpu::v1::Node>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::tpu::v1::Node>, + polling_policy(*current), __func__); +} + future> TpuConnectionImpl::ReimageNode( google::cloud::tpu::v1::ReimageNodeRequest const& request) { auto current = google::cloud::internal::SaveCurrentOptions(); @@ -215,6 +313,55 @@ future> TpuConnectionImpl::ReimageNode( polling_policy(*current), __func__); } +StatusOr TpuConnectionImpl::ReimageNode( + ExperimentalTag, NoAwaitTag, + google::cloud::tpu::v1::ReimageNodeRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->ReimageNode(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::tpu::v1::ReimageNodeRequest const& request) { + return stub_->ReimageNode(context, options, request); + }, + *current, request, __func__); +} + +future> TpuConnectionImpl::ReimageNode( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to ReimageNode", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::tpu::v1::Node>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::tpu::v1::Node>, + polling_policy(*current), __func__); +} + future> TpuConnectionImpl::StopNode( google::cloud::tpu::v1::StopNodeRequest const& request) { auto current = google::cloud::internal::SaveCurrentOptions(); @@ -251,6 +398,55 @@ future> TpuConnectionImpl::StopNode( polling_policy(*current), __func__); } +StatusOr TpuConnectionImpl::StopNode( + ExperimentalTag, NoAwaitTag, + google::cloud::tpu::v1::StopNodeRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->StopNode(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::tpu::v1::StopNodeRequest const& request) { + return stub_->StopNode(context, options, request); + }, + *current, request, __func__); +} + +future> TpuConnectionImpl::StopNode( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to StopNode", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::tpu::v1::Node>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::tpu::v1::Node>, + polling_policy(*current), __func__); +} + future> TpuConnectionImpl::StartNode( google::cloud::tpu::v1::StartNodeRequest const& request) { auto current = google::cloud::internal::SaveCurrentOptions(); @@ -287,6 +483,55 @@ future> TpuConnectionImpl::StartNode( polling_policy(*current), __func__); } +StatusOr TpuConnectionImpl::StartNode( + ExperimentalTag, NoAwaitTag, + google::cloud::tpu::v1::StartNodeRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->StartNode(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::tpu::v1::StartNodeRequest const& request) { + return stub_->StartNode(context, options, request); + }, + *current, request, __func__); +} + +future> TpuConnectionImpl::StartNode( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to StartNode", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::tpu::v1::Node>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::tpu::v1::Node>, + polling_policy(*current), __func__); +} + StreamRange TpuConnectionImpl::ListTensorFlowVersions( google::cloud::tpu::v1::ListTensorFlowVersionsRequest request) { diff --git a/google/cloud/tpu/v1/internal/tpu_connection_impl.h b/google/cloud/tpu/v1/internal/tpu_connection_impl.h index f23ee4562f017..c4e81e571ef5f 100644 --- a/google/cloud/tpu/v1/internal/tpu_connection_impl.h +++ b/google/cloud/tpu/v1/internal/tpu_connection_impl.h @@ -59,18 +59,58 @@ class TpuConnectionImpl : public tpu_v1::TpuConnection { future> CreateNode( google::cloud::tpu::v1::CreateNodeRequest const& request) override; + StatusOr CreateNode( + ExperimentalTag, NoAwaitTag, + google::cloud::tpu::v1::CreateNodeRequest const& request) override; + + future> CreateNode( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteNode( google::cloud::tpu::v1::DeleteNodeRequest const& request) override; + StatusOr DeleteNode( + ExperimentalTag, NoAwaitTag, + google::cloud::tpu::v1::DeleteNodeRequest const& request) override; + + future> DeleteNode( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ReimageNode( google::cloud::tpu::v1::ReimageNodeRequest const& request) override; + StatusOr ReimageNode( + ExperimentalTag, NoAwaitTag, + google::cloud::tpu::v1::ReimageNodeRequest const& request) override; + + future> ReimageNode( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> StopNode( google::cloud::tpu::v1::StopNodeRequest const& request) override; + StatusOr StopNode( + ExperimentalTag, NoAwaitTag, + google::cloud::tpu::v1::StopNodeRequest const& request) override; + + future> StopNode( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> StartNode( google::cloud::tpu::v1::StartNodeRequest const& request) override; + StatusOr StartNode( + ExperimentalTag, NoAwaitTag, + google::cloud::tpu::v1::StartNodeRequest const& request) override; + + future> StartNode( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListTensorFlowVersions( google::cloud::tpu::v1::ListTensorFlowVersionsRequest request) override; diff --git a/google/cloud/tpu/v1/internal/tpu_tracing_connection.cc b/google/cloud/tpu/v1/internal/tpu_tracing_connection.cc index f46cbedf2503d..28d7f72057570 100644 --- a/google/cloud/tpu/v1/internal/tpu_tracing_connection.cc +++ b/google/cloud/tpu/v1/internal/tpu_tracing_connection.cc @@ -56,6 +56,23 @@ future> TpuTracingConnection::CreateNode( return internal::EndSpan(std::move(span), child_->CreateNode(request)); } +StatusOr TpuTracingConnection::CreateNode( + ExperimentalTag, NoAwaitTag, + google::cloud::tpu::v1::CreateNodeRequest const& request) { + auto span = internal::MakeSpan("tpu_v1::TpuConnection::CreateNode"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->CreateNode(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> TpuTracingConnection::CreateNode( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan("tpu_v1::TpuConnection::CreateNode"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->CreateNode(ExperimentalTag{}, operation)); +} + future> TpuTracingConnection::DeleteNode( google::cloud::tpu::v1::DeleteNodeRequest const& request) { auto span = internal::MakeSpan("tpu_v1::TpuConnection::DeleteNode"); @@ -63,6 +80,23 @@ future> TpuTracingConnection::DeleteNode( return internal::EndSpan(std::move(span), child_->DeleteNode(request)); } +StatusOr TpuTracingConnection::DeleteNode( + ExperimentalTag, NoAwaitTag, + google::cloud::tpu::v1::DeleteNodeRequest const& request) { + auto span = internal::MakeSpan("tpu_v1::TpuConnection::DeleteNode"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->DeleteNode(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> TpuTracingConnection::DeleteNode( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan("tpu_v1::TpuConnection::DeleteNode"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->DeleteNode(ExperimentalTag{}, operation)); +} + future> TpuTracingConnection::ReimageNode( google::cloud::tpu::v1::ReimageNodeRequest const& request) { @@ -71,6 +105,24 @@ TpuTracingConnection::ReimageNode( return internal::EndSpan(std::move(span), child_->ReimageNode(request)); } +StatusOr TpuTracingConnection::ReimageNode( + ExperimentalTag, NoAwaitTag, + google::cloud::tpu::v1::ReimageNodeRequest const& request) { + auto span = internal::MakeSpan("tpu_v1::TpuConnection::ReimageNode"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->ReimageNode(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +TpuTracingConnection::ReimageNode( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan("tpu_v1::TpuConnection::ReimageNode"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->ReimageNode(ExperimentalTag{}, operation)); +} + future> TpuTracingConnection::StopNode( google::cloud::tpu::v1::StopNodeRequest const& request) { auto span = internal::MakeSpan("tpu_v1::TpuConnection::StopNode"); @@ -78,6 +130,23 @@ future> TpuTracingConnection::StopNode( return internal::EndSpan(std::move(span), child_->StopNode(request)); } +StatusOr TpuTracingConnection::StopNode( + ExperimentalTag, NoAwaitTag, + google::cloud::tpu::v1::StopNodeRequest const& request) { + auto span = internal::MakeSpan("tpu_v1::TpuConnection::StopNode"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->StopNode(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> TpuTracingConnection::StopNode( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan("tpu_v1::TpuConnection::StopNode"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->StopNode(ExperimentalTag{}, operation)); +} + future> TpuTracingConnection::StartNode( google::cloud::tpu::v1::StartNodeRequest const& request) { auto span = internal::MakeSpan("tpu_v1::TpuConnection::StartNode"); @@ -85,6 +154,23 @@ future> TpuTracingConnection::StartNode( return internal::EndSpan(std::move(span), child_->StartNode(request)); } +StatusOr TpuTracingConnection::StartNode( + ExperimentalTag, NoAwaitTag, + google::cloud::tpu::v1::StartNodeRequest const& request) { + auto span = internal::MakeSpan("tpu_v1::TpuConnection::StartNode"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->StartNode(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> TpuTracingConnection::StartNode( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan("tpu_v1::TpuConnection::StartNode"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->StartNode(ExperimentalTag{}, operation)); +} + StreamRange TpuTracingConnection::ListTensorFlowVersions( google::cloud::tpu::v1::ListTensorFlowVersionsRequest request) { diff --git a/google/cloud/tpu/v1/internal/tpu_tracing_connection.h b/google/cloud/tpu/v1/internal/tpu_tracing_connection.h index 2260fd5d24fbc..1249d6c3486c5 100644 --- a/google/cloud/tpu/v1/internal/tpu_tracing_connection.h +++ b/google/cloud/tpu/v1/internal/tpu_tracing_connection.h @@ -47,18 +47,58 @@ class TpuTracingConnection : public tpu_v1::TpuConnection { future> CreateNode( google::cloud::tpu::v1::CreateNodeRequest const& request) override; + StatusOr CreateNode( + ExperimentalTag, NoAwaitTag, + google::cloud::tpu::v1::CreateNodeRequest const& request) override; + + future> CreateNode( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteNode( google::cloud::tpu::v1::DeleteNodeRequest const& request) override; + StatusOr DeleteNode( + ExperimentalTag, NoAwaitTag, + google::cloud::tpu::v1::DeleteNodeRequest const& request) override; + + future> DeleteNode( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ReimageNode( google::cloud::tpu::v1::ReimageNodeRequest const& request) override; + StatusOr ReimageNode( + ExperimentalTag, NoAwaitTag, + google::cloud::tpu::v1::ReimageNodeRequest const& request) override; + + future> ReimageNode( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> StopNode( google::cloud::tpu::v1::StopNodeRequest const& request) override; + StatusOr StopNode( + ExperimentalTag, NoAwaitTag, + google::cloud::tpu::v1::StopNodeRequest const& request) override; + + future> StopNode( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> StartNode( google::cloud::tpu::v1::StartNodeRequest const& request) override; + StatusOr StartNode( + ExperimentalTag, NoAwaitTag, + google::cloud::tpu::v1::StartNodeRequest const& request) override; + + future> StartNode( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListTensorFlowVersions( google::cloud::tpu::v1::ListTensorFlowVersionsRequest request) override; diff --git a/google/cloud/tpu/v1/mocks/mock_tpu_connection.h b/google/cloud/tpu/v1/mocks/mock_tpu_connection.h index 99773e4c84414..849e3e5acc208 100644 --- a/google/cloud/tpu/v1/mocks/mock_tpu_connection.h +++ b/google/cloud/tpu/v1/mocks/mock_tpu_connection.h @@ -57,22 +57,72 @@ class MockTpuConnection : public tpu_v1::TpuConnection { (google::cloud::tpu::v1::CreateNodeRequest const& request), (override)); + MOCK_METHOD(StatusOr, CreateNode, + (ExperimentalTag, NoAwaitTag, + google::cloud::tpu::v1::CreateNodeRequest const& request), + (override)); + + MOCK_METHOD(future>, CreateNode, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, DeleteNode, (google::cloud::tpu::v1::DeleteNodeRequest const& request), (override)); + MOCK_METHOD(StatusOr, DeleteNode, + (ExperimentalTag, NoAwaitTag, + google::cloud::tpu::v1::DeleteNodeRequest const& request), + (override)); + + MOCK_METHOD(future>, DeleteNode, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, ReimageNode, (google::cloud::tpu::v1::ReimageNodeRequest const& request), (override)); + MOCK_METHOD(StatusOr, ReimageNode, + (ExperimentalTag, NoAwaitTag, + google::cloud::tpu::v1::ReimageNodeRequest const& request), + (override)); + + MOCK_METHOD(future>, ReimageNode, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, StopNode, (google::cloud::tpu::v1::StopNodeRequest const& request), (override)); + MOCK_METHOD(StatusOr, StopNode, + (ExperimentalTag, NoAwaitTag, + google::cloud::tpu::v1::StopNodeRequest const& request), + (override)); + + MOCK_METHOD(future>, StopNode, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, StartNode, (google::cloud::tpu::v1::StartNodeRequest const& request), (override)); + MOCK_METHOD(StatusOr, StartNode, + (ExperimentalTag, NoAwaitTag, + google::cloud::tpu::v1::StartNodeRequest const& request), + (override)); + + MOCK_METHOD(future>, StartNode, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD((StreamRange), ListTensorFlowVersions, (google::cloud::tpu::v1::ListTensorFlowVersionsRequest request), diff --git a/google/cloud/tpu/v1/tpu_connection.cc b/google/cloud/tpu/v1/tpu_connection.cc index 4744ffe986bd3..938d7ab12ce35 100644 --- a/google/cloud/tpu/v1/tpu_connection.cc +++ b/google/cloud/tpu/v1/tpu_connection.cc @@ -57,6 +57,20 @@ future> TpuConnection::CreateNode( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr TpuConnection::CreateNode( + ExperimentalTag, NoAwaitTag, + google::cloud::tpu::v1::CreateNodeRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> TpuConnection::CreateNode( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> TpuConnection::DeleteNode( google::cloud::tpu::v1::DeleteNodeRequest const&) { return google::cloud::make_ready_future< @@ -64,6 +78,20 @@ future> TpuConnection::DeleteNode( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr TpuConnection::DeleteNode( + ExperimentalTag, NoAwaitTag, + google::cloud::tpu::v1::DeleteNodeRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> TpuConnection::DeleteNode( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> TpuConnection::ReimageNode( google::cloud::tpu::v1::ReimageNodeRequest const&) { return google::cloud::make_ready_future< @@ -71,6 +99,20 @@ future> TpuConnection::ReimageNode( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr TpuConnection::ReimageNode( + ExperimentalTag, NoAwaitTag, + google::cloud::tpu::v1::ReimageNodeRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> TpuConnection::ReimageNode( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> TpuConnection::StopNode( google::cloud::tpu::v1::StopNodeRequest const&) { return google::cloud::make_ready_future< @@ -78,6 +120,20 @@ future> TpuConnection::StopNode( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr TpuConnection::StopNode( + ExperimentalTag, NoAwaitTag, + google::cloud::tpu::v1::StopNodeRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> TpuConnection::StopNode( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> TpuConnection::StartNode( google::cloud::tpu::v1::StartNodeRequest const&) { return google::cloud::make_ready_future< @@ -85,6 +141,20 @@ future> TpuConnection::StartNode( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr TpuConnection::StartNode( + ExperimentalTag, NoAwaitTag, + google::cloud::tpu::v1::StartNodeRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> TpuConnection::StartNode( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StreamRange TpuConnection::ListTensorFlowVersions( google::cloud::tpu::v1:: diff --git a/google/cloud/tpu/v1/tpu_connection.h b/google/cloud/tpu/v1/tpu_connection.h index 2f47dcba6c57d..30d85a9e1d7b8 100644 --- a/google/cloud/tpu/v1/tpu_connection.h +++ b/google/cloud/tpu/v1/tpu_connection.h @@ -22,8 +22,10 @@ #include "google/cloud/tpu/v1/internal/tpu_retry_traits.h" #include "google/cloud/tpu/v1/tpu_connection_idempotency_policy.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/internal/retry_policy_impl.h" +#include "google/cloud/no_await_tag.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" #include "google/cloud/status_or.h" @@ -190,18 +192,53 @@ class TpuConnection { virtual future> CreateNode( google::cloud::tpu::v1::CreateNodeRequest const& request); + virtual StatusOr CreateNode( + ExperimentalTag, NoAwaitTag, + google::cloud::tpu::v1::CreateNodeRequest const& request); + + virtual future> CreateNode( + ExperimentalTag, google::longrunning::Operation const& operation); + virtual future> DeleteNode( google::cloud::tpu::v1::DeleteNodeRequest const& request); + virtual StatusOr DeleteNode( + ExperimentalTag, NoAwaitTag, + google::cloud::tpu::v1::DeleteNodeRequest const& request); + + virtual future> DeleteNode( + ExperimentalTag, google::longrunning::Operation const& operation); + virtual future> ReimageNode( google::cloud::tpu::v1::ReimageNodeRequest const& request); + virtual StatusOr ReimageNode( + ExperimentalTag, NoAwaitTag, + google::cloud::tpu::v1::ReimageNodeRequest const& request); + + virtual future> ReimageNode( + ExperimentalTag, google::longrunning::Operation const& operation); + virtual future> StopNode( google::cloud::tpu::v1::StopNodeRequest const& request); + virtual StatusOr StopNode( + ExperimentalTag, NoAwaitTag, + google::cloud::tpu::v1::StopNodeRequest const& request); + + virtual future> StopNode( + ExperimentalTag, google::longrunning::Operation const& operation); + virtual future> StartNode( google::cloud::tpu::v1::StartNodeRequest const& request); + virtual StatusOr StartNode( + ExperimentalTag, NoAwaitTag, + google::cloud::tpu::v1::StartNodeRequest const& request); + + virtual future> StartNode( + ExperimentalTag, google::longrunning::Operation const& operation); + virtual StreamRange ListTensorFlowVersions( google::cloud::tpu::v1::ListTensorFlowVersionsRequest request); diff --git a/google/cloud/tpu/v2/internal/tpu_connection_impl.cc b/google/cloud/tpu/v2/internal/tpu_connection_impl.cc index 8aa5f7f8f1278..ee694ff463236 100644 --- a/google/cloud/tpu/v2/internal/tpu_connection_impl.cc +++ b/google/cloud/tpu/v2/internal/tpu_connection_impl.cc @@ -140,6 +140,55 @@ future> TpuConnectionImpl::CreateNode( polling_policy(*current), __func__); } +StatusOr TpuConnectionImpl::CreateNode( + ExperimentalTag, NoAwaitTag, + google::cloud::tpu::v2::CreateNodeRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateNode(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::tpu::v2::CreateNodeRequest const& request) { + return stub_->CreateNode(context, options, request); + }, + *current, request, __func__); +} + +future> TpuConnectionImpl::CreateNode( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to CreateNode", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::tpu::v2::Node>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::tpu::v2::Node>, + polling_policy(*current), __func__); +} + future> TpuConnectionImpl::DeleteNode( google::cloud::tpu::v2::DeleteNodeRequest const& request) { @@ -178,6 +227,57 @@ TpuConnectionImpl::DeleteNode( polling_policy(*current), __func__); } +StatusOr TpuConnectionImpl::DeleteNode( + ExperimentalTag, NoAwaitTag, + google::cloud::tpu::v2::DeleteNodeRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteNode(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::tpu::v2::DeleteNodeRequest const& request) { + return stub_->DeleteNode(context, options, request); + }, + *current, request, __func__); +} + +future> +TpuConnectionImpl::DeleteNode(ExperimentalTag, + google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteNode", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::tpu::v2::OperationMetadata>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::cloud::tpu::v2::OperationMetadata>, + polling_policy(*current), __func__); +} + future> TpuConnectionImpl::StopNode( google::cloud::tpu::v2::StopNodeRequest const& request) { auto current = google::cloud::internal::SaveCurrentOptions(); @@ -214,6 +314,55 @@ future> TpuConnectionImpl::StopNode( polling_policy(*current), __func__); } +StatusOr TpuConnectionImpl::StopNode( + ExperimentalTag, NoAwaitTag, + google::cloud::tpu::v2::StopNodeRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->StopNode(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::tpu::v2::StopNodeRequest const& request) { + return stub_->StopNode(context, options, request); + }, + *current, request, __func__); +} + +future> TpuConnectionImpl::StopNode( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to StopNode", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::tpu::v2::Node>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::tpu::v2::Node>, + polling_policy(*current), __func__); +} + future> TpuConnectionImpl::StartNode( google::cloud::tpu::v2::StartNodeRequest const& request) { auto current = google::cloud::internal::SaveCurrentOptions(); @@ -250,6 +399,55 @@ future> TpuConnectionImpl::StartNode( polling_policy(*current), __func__); } +StatusOr TpuConnectionImpl::StartNode( + ExperimentalTag, NoAwaitTag, + google::cloud::tpu::v2::StartNodeRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->StartNode(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::tpu::v2::StartNodeRequest const& request) { + return stub_->StartNode(context, options, request); + }, + *current, request, __func__); +} + +future> TpuConnectionImpl::StartNode( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to StartNode", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::tpu::v2::Node>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::tpu::v2::Node>, + polling_policy(*current), __func__); +} + future> TpuConnectionImpl::UpdateNode( google::cloud::tpu::v2::UpdateNodeRequest const& request) { auto current = google::cloud::internal::SaveCurrentOptions(); @@ -287,6 +485,55 @@ future> TpuConnectionImpl::UpdateNode( polling_policy(*current), __func__); } +StatusOr TpuConnectionImpl::UpdateNode( + ExperimentalTag, NoAwaitTag, + google::cloud::tpu::v2::UpdateNodeRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UpdateNode(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::tpu::v2::UpdateNodeRequest const& request) { + return stub_->UpdateNode(context, options, request); + }, + *current, request, __func__); +} + +future> TpuConnectionImpl::UpdateNode( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to UpdateNode", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::tpu::v2::Node>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::tpu::v2::Node>, + polling_policy(*current), __func__); +} + StatusOr TpuConnectionImpl::GenerateServiceIdentity( google::cloud::tpu::v2::GenerateServiceIdentityRequest const& request) { diff --git a/google/cloud/tpu/v2/internal/tpu_connection_impl.h b/google/cloud/tpu/v2/internal/tpu_connection_impl.h index 7e9cd3026ef14..df4af663fc7a3 100644 --- a/google/cloud/tpu/v2/internal/tpu_connection_impl.h +++ b/google/cloud/tpu/v2/internal/tpu_connection_impl.h @@ -59,18 +59,58 @@ class TpuConnectionImpl : public tpu_v2::TpuConnection { future> CreateNode( google::cloud::tpu::v2::CreateNodeRequest const& request) override; + StatusOr CreateNode( + ExperimentalTag, NoAwaitTag, + google::cloud::tpu::v2::CreateNodeRequest const& request) override; + + future> CreateNode( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteNode( google::cloud::tpu::v2::DeleteNodeRequest const& request) override; + StatusOr DeleteNode( + ExperimentalTag, NoAwaitTag, + google::cloud::tpu::v2::DeleteNodeRequest const& request) override; + + future> DeleteNode( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> StopNode( google::cloud::tpu::v2::StopNodeRequest const& request) override; + StatusOr StopNode( + ExperimentalTag, NoAwaitTag, + google::cloud::tpu::v2::StopNodeRequest const& request) override; + + future> StopNode( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> StartNode( google::cloud::tpu::v2::StartNodeRequest const& request) override; + StatusOr StartNode( + ExperimentalTag, NoAwaitTag, + google::cloud::tpu::v2::StartNodeRequest const& request) override; + + future> StartNode( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateNode( google::cloud::tpu::v2::UpdateNodeRequest const& request) override; + StatusOr UpdateNode( + ExperimentalTag, NoAwaitTag, + google::cloud::tpu::v2::UpdateNodeRequest const& request) override; + + future> UpdateNode( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GenerateServiceIdentity( google::cloud::tpu::v2::GenerateServiceIdentityRequest const& request) diff --git a/google/cloud/tpu/v2/internal/tpu_tracing_connection.cc b/google/cloud/tpu/v2/internal/tpu_tracing_connection.cc index ac7bcb76c13cd..3eed8a7790287 100644 --- a/google/cloud/tpu/v2/internal/tpu_tracing_connection.cc +++ b/google/cloud/tpu/v2/internal/tpu_tracing_connection.cc @@ -56,6 +56,23 @@ future> TpuTracingConnection::CreateNode( return internal::EndSpan(std::move(span), child_->CreateNode(request)); } +StatusOr TpuTracingConnection::CreateNode( + ExperimentalTag, NoAwaitTag, + google::cloud::tpu::v2::CreateNodeRequest const& request) { + auto span = internal::MakeSpan("tpu_v2::TpuConnection::CreateNode"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->CreateNode(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> TpuTracingConnection::CreateNode( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan("tpu_v2::TpuConnection::CreateNode"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->CreateNode(ExperimentalTag{}, operation)); +} + future> TpuTracingConnection::DeleteNode( google::cloud::tpu::v2::DeleteNodeRequest const& request) { @@ -64,6 +81,24 @@ TpuTracingConnection::DeleteNode( return internal::EndSpan(std::move(span), child_->DeleteNode(request)); } +StatusOr TpuTracingConnection::DeleteNode( + ExperimentalTag, NoAwaitTag, + google::cloud::tpu::v2::DeleteNodeRequest const& request) { + auto span = internal::MakeSpan("tpu_v2::TpuConnection::DeleteNode"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->DeleteNode(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +TpuTracingConnection::DeleteNode( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan("tpu_v2::TpuConnection::DeleteNode"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->DeleteNode(ExperimentalTag{}, operation)); +} + future> TpuTracingConnection::StopNode( google::cloud::tpu::v2::StopNodeRequest const& request) { auto span = internal::MakeSpan("tpu_v2::TpuConnection::StopNode"); @@ -71,6 +106,23 @@ future> TpuTracingConnection::StopNode( return internal::EndSpan(std::move(span), child_->StopNode(request)); } +StatusOr TpuTracingConnection::StopNode( + ExperimentalTag, NoAwaitTag, + google::cloud::tpu::v2::StopNodeRequest const& request) { + auto span = internal::MakeSpan("tpu_v2::TpuConnection::StopNode"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->StopNode(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> TpuTracingConnection::StopNode( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan("tpu_v2::TpuConnection::StopNode"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->StopNode(ExperimentalTag{}, operation)); +} + future> TpuTracingConnection::StartNode( google::cloud::tpu::v2::StartNodeRequest const& request) { auto span = internal::MakeSpan("tpu_v2::TpuConnection::StartNode"); @@ -78,6 +130,23 @@ future> TpuTracingConnection::StartNode( return internal::EndSpan(std::move(span), child_->StartNode(request)); } +StatusOr TpuTracingConnection::StartNode( + ExperimentalTag, NoAwaitTag, + google::cloud::tpu::v2::StartNodeRequest const& request) { + auto span = internal::MakeSpan("tpu_v2::TpuConnection::StartNode"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->StartNode(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> TpuTracingConnection::StartNode( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan("tpu_v2::TpuConnection::StartNode"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->StartNode(ExperimentalTag{}, operation)); +} + future> TpuTracingConnection::UpdateNode( google::cloud::tpu::v2::UpdateNodeRequest const& request) { auto span = internal::MakeSpan("tpu_v2::TpuConnection::UpdateNode"); @@ -85,6 +154,23 @@ future> TpuTracingConnection::UpdateNode( return internal::EndSpan(std::move(span), child_->UpdateNode(request)); } +StatusOr TpuTracingConnection::UpdateNode( + ExperimentalTag, NoAwaitTag, + google::cloud::tpu::v2::UpdateNodeRequest const& request) { + auto span = internal::MakeSpan("tpu_v2::TpuConnection::UpdateNode"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->UpdateNode(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> TpuTracingConnection::UpdateNode( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan("tpu_v2::TpuConnection::UpdateNode"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->UpdateNode(ExperimentalTag{}, operation)); +} + StatusOr TpuTracingConnection::GenerateServiceIdentity( google::cloud::tpu::v2::GenerateServiceIdentityRequest const& request) { diff --git a/google/cloud/tpu/v2/internal/tpu_tracing_connection.h b/google/cloud/tpu/v2/internal/tpu_tracing_connection.h index a1ff0cef69566..35cc324a082c5 100644 --- a/google/cloud/tpu/v2/internal/tpu_tracing_connection.h +++ b/google/cloud/tpu/v2/internal/tpu_tracing_connection.h @@ -47,18 +47,58 @@ class TpuTracingConnection : public tpu_v2::TpuConnection { future> CreateNode( google::cloud::tpu::v2::CreateNodeRequest const& request) override; + StatusOr CreateNode( + ExperimentalTag, NoAwaitTag, + google::cloud::tpu::v2::CreateNodeRequest const& request) override; + + future> CreateNode( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteNode( google::cloud::tpu::v2::DeleteNodeRequest const& request) override; + StatusOr DeleteNode( + ExperimentalTag, NoAwaitTag, + google::cloud::tpu::v2::DeleteNodeRequest const& request) override; + + future> DeleteNode( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> StopNode( google::cloud::tpu::v2::StopNodeRequest const& request) override; + StatusOr StopNode( + ExperimentalTag, NoAwaitTag, + google::cloud::tpu::v2::StopNodeRequest const& request) override; + + future> StopNode( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> StartNode( google::cloud::tpu::v2::StartNodeRequest const& request) override; + StatusOr StartNode( + ExperimentalTag, NoAwaitTag, + google::cloud::tpu::v2::StartNodeRequest const& request) override; + + future> StartNode( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateNode( google::cloud::tpu::v2::UpdateNodeRequest const& request) override; + StatusOr UpdateNode( + ExperimentalTag, NoAwaitTag, + google::cloud::tpu::v2::UpdateNodeRequest const& request) override; + + future> UpdateNode( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GenerateServiceIdentity( google::cloud::tpu::v2::GenerateServiceIdentityRequest const& request) diff --git a/google/cloud/tpu/v2/mocks/mock_tpu_connection.h b/google/cloud/tpu/v2/mocks/mock_tpu_connection.h index 5094be979387c..8cb9f75d8968e 100644 --- a/google/cloud/tpu/v2/mocks/mock_tpu_connection.h +++ b/google/cloud/tpu/v2/mocks/mock_tpu_connection.h @@ -57,23 +57,74 @@ class MockTpuConnection : public tpu_v2::TpuConnection { (google::cloud::tpu::v2::CreateNodeRequest const& request), (override)); + MOCK_METHOD(StatusOr, CreateNode, + (ExperimentalTag, NoAwaitTag, + google::cloud::tpu::v2::CreateNodeRequest const& request), + (override)); + + MOCK_METHOD(future>, CreateNode, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, DeleteNode, (google::cloud::tpu::v2::DeleteNodeRequest const& request), (override)); + MOCK_METHOD(StatusOr, DeleteNode, + (ExperimentalTag, NoAwaitTag, + google::cloud::tpu::v2::DeleteNodeRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteNode, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, StopNode, (google::cloud::tpu::v2::StopNodeRequest const& request), (override)); + MOCK_METHOD(StatusOr, StopNode, + (ExperimentalTag, NoAwaitTag, + google::cloud::tpu::v2::StopNodeRequest const& request), + (override)); + + MOCK_METHOD(future>, StopNode, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, StartNode, (google::cloud::tpu::v2::StartNodeRequest const& request), (override)); + MOCK_METHOD(StatusOr, StartNode, + (ExperimentalTag, NoAwaitTag, + google::cloud::tpu::v2::StartNodeRequest const& request), + (override)); + + MOCK_METHOD(future>, StartNode, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, UpdateNode, (google::cloud::tpu::v2::UpdateNodeRequest const& request), (override)); + MOCK_METHOD(StatusOr, UpdateNode, + (ExperimentalTag, NoAwaitTag, + google::cloud::tpu::v2::UpdateNodeRequest const& request), + (override)); + + MOCK_METHOD(future>, UpdateNode, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr, GenerateServiceIdentity, diff --git a/google/cloud/tpu/v2/tpu_connection.cc b/google/cloud/tpu/v2/tpu_connection.cc index 52d97b0d41696..6011b25d34f82 100644 --- a/google/cloud/tpu/v2/tpu_connection.cc +++ b/google/cloud/tpu/v2/tpu_connection.cc @@ -57,6 +57,20 @@ future> TpuConnection::CreateNode( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr TpuConnection::CreateNode( + ExperimentalTag, NoAwaitTag, + google::cloud::tpu::v2::CreateNodeRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> TpuConnection::CreateNode( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> TpuConnection::DeleteNode(google::cloud::tpu::v2::DeleteNodeRequest const&) { return google::cloud::make_ready_future< @@ -64,6 +78,21 @@ TpuConnection::DeleteNode(google::cloud::tpu::v2::DeleteNodeRequest const&) { Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr TpuConnection::DeleteNode( + ExperimentalTag, NoAwaitTag, + google::cloud::tpu::v2::DeleteNodeRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +TpuConnection::DeleteNode(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> TpuConnection::StopNode( google::cloud::tpu::v2::StopNodeRequest const&) { return google::cloud::make_ready_future< @@ -71,6 +100,20 @@ future> TpuConnection::StopNode( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr TpuConnection::StopNode( + ExperimentalTag, NoAwaitTag, + google::cloud::tpu::v2::StopNodeRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> TpuConnection::StopNode( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> TpuConnection::StartNode( google::cloud::tpu::v2::StartNodeRequest const&) { return google::cloud::make_ready_future< @@ -78,6 +121,20 @@ future> TpuConnection::StartNode( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr TpuConnection::StartNode( + ExperimentalTag, NoAwaitTag, + google::cloud::tpu::v2::StartNodeRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> TpuConnection::StartNode( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> TpuConnection::UpdateNode( google::cloud::tpu::v2::UpdateNodeRequest const&) { return google::cloud::make_ready_future< @@ -85,6 +142,20 @@ future> TpuConnection::UpdateNode( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr TpuConnection::UpdateNode( + ExperimentalTag, NoAwaitTag, + google::cloud::tpu::v2::UpdateNodeRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> TpuConnection::UpdateNode( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr TpuConnection::GenerateServiceIdentity( google::cloud::tpu::v2::GenerateServiceIdentityRequest const&) { diff --git a/google/cloud/tpu/v2/tpu_connection.h b/google/cloud/tpu/v2/tpu_connection.h index 53df4a70e32a0..62de1e1bdefd8 100644 --- a/google/cloud/tpu/v2/tpu_connection.h +++ b/google/cloud/tpu/v2/tpu_connection.h @@ -22,8 +22,10 @@ #include "google/cloud/tpu/v2/internal/tpu_retry_traits.h" #include "google/cloud/tpu/v2/tpu_connection_idempotency_policy.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/internal/retry_policy_impl.h" +#include "google/cloud/no_await_tag.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" #include "google/cloud/status_or.h" @@ -190,18 +192,53 @@ class TpuConnection { virtual future> CreateNode( google::cloud::tpu::v2::CreateNodeRequest const& request); + virtual StatusOr CreateNode( + ExperimentalTag, NoAwaitTag, + google::cloud::tpu::v2::CreateNodeRequest const& request); + + virtual future> CreateNode( + ExperimentalTag, google::longrunning::Operation const& operation); + virtual future> DeleteNode(google::cloud::tpu::v2::DeleteNodeRequest const& request); + virtual StatusOr DeleteNode( + ExperimentalTag, NoAwaitTag, + google::cloud::tpu::v2::DeleteNodeRequest const& request); + + virtual future> + DeleteNode(ExperimentalTag, google::longrunning::Operation const& operation); + virtual future> StopNode( google::cloud::tpu::v2::StopNodeRequest const& request); + virtual StatusOr StopNode( + ExperimentalTag, NoAwaitTag, + google::cloud::tpu::v2::StopNodeRequest const& request); + + virtual future> StopNode( + ExperimentalTag, google::longrunning::Operation const& operation); + virtual future> StartNode( google::cloud::tpu::v2::StartNodeRequest const& request); + virtual StatusOr StartNode( + ExperimentalTag, NoAwaitTag, + google::cloud::tpu::v2::StartNodeRequest const& request); + + virtual future> StartNode( + ExperimentalTag, google::longrunning::Operation const& operation); + virtual future> UpdateNode( google::cloud::tpu::v2::UpdateNodeRequest const& request); + virtual StatusOr UpdateNode( + ExperimentalTag, NoAwaitTag, + google::cloud::tpu::v2::UpdateNodeRequest const& request); + + virtual future> UpdateNode( + ExperimentalTag, google::longrunning::Operation const& operation); + virtual StatusOr GenerateServiceIdentity( google::cloud::tpu::v2::GenerateServiceIdentityRequest const& request); diff --git a/google/cloud/trace/v1/trace_connection.h b/google/cloud/trace/v1/trace_connection.h index e46e6f34a9f06..4d2e7bbb21a71 100644 --- a/google/cloud/trace/v1/trace_connection.h +++ b/google/cloud/trace/v1/trace_connection.h @@ -22,6 +22,7 @@ #include "google/cloud/trace/v1/internal/trace_retry_traits.h" #include "google/cloud/trace/v1/trace_connection_idempotency_policy.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/internal/retry_policy_impl.h" #include "google/cloud/options.h" #include "google/cloud/status_or.h" diff --git a/google/cloud/trace/v2/trace_connection.h b/google/cloud/trace/v2/trace_connection.h index cdf9dbad28684..40869295f002c 100644 --- a/google/cloud/trace/v2/trace_connection.h +++ b/google/cloud/trace/v2/trace_connection.h @@ -22,6 +22,7 @@ #include "google/cloud/trace/v2/internal/trace_retry_traits.h" #include "google/cloud/trace/v2/trace_connection_idempotency_policy.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/internal/retry_policy_impl.h" #include "google/cloud/options.h" #include "google/cloud/status_or.h" diff --git a/google/cloud/translate/v3/internal/translation_connection_impl.cc b/google/cloud/translate/v3/internal/translation_connection_impl.cc index b47aab283803c..cf585368d99c1 100644 --- a/google/cloud/translate/v3/internal/translation_connection_impl.cc +++ b/google/cloud/translate/v3/internal/translation_connection_impl.cc @@ -168,6 +168,60 @@ TranslationServiceConnectionImpl::BatchTranslateText( polling_policy(*current), __func__); } +StatusOr +TranslationServiceConnectionImpl::BatchTranslateText( + ExperimentalTag, NoAwaitTag, + google::cloud::translation::v3::BatchTranslateTextRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->BatchTranslateText(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::translation::v3::BatchTranslateTextRequest const& + request) { + return stub_->BatchTranslateText(context, options, request); + }, + *current, request, __func__); +} + +future> +TranslationServiceConnectionImpl::BatchTranslateText( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to BatchTranslateText", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::translation::v3::BatchTranslateResponse>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::translation::v3::BatchTranslateResponse>, + polling_policy(*current), __func__); +} + future> TranslationServiceConnectionImpl::BatchTranslateDocument( google::cloud::translation::v3::BatchTranslateDocumentRequest const& @@ -209,6 +263,62 @@ TranslationServiceConnectionImpl::BatchTranslateDocument( polling_policy(*current), __func__); } +StatusOr +TranslationServiceConnectionImpl::BatchTranslateDocument( + ExperimentalTag, NoAwaitTag, + google::cloud::translation::v3::BatchTranslateDocumentRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->BatchTranslateDocument(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::translation::v3::BatchTranslateDocumentRequest const& + request) { + return stub_->BatchTranslateDocument(context, options, request); + }, + *current, request, __func__); +} + +future> +TranslationServiceConnectionImpl::BatchTranslateDocument( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to BatchTranslateDocument", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::translation::v3::BatchTranslateDocumentResponse>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::translation::v3::BatchTranslateDocumentResponse>, + polling_policy(*current), __func__); +} + future> TranslationServiceConnectionImpl::CreateGlossary( google::cloud::translation::v3::CreateGlossaryRequest const& request) { @@ -249,6 +359,60 @@ TranslationServiceConnectionImpl::CreateGlossary( polling_policy(*current), __func__); } +StatusOr +TranslationServiceConnectionImpl::CreateGlossary( + ExperimentalTag, NoAwaitTag, + google::cloud::translation::v3::CreateGlossaryRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateGlossary(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::translation::v3::CreateGlossaryRequest const& + request) { + return stub_->CreateGlossary(context, options, request); + }, + *current, request, __func__); +} + +future> +TranslationServiceConnectionImpl::CreateGlossary( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to CreateGlossary", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::translation::v3::Glossary>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::translation::v3::Glossary>, + polling_policy(*current), __func__); +} + StreamRange TranslationServiceConnectionImpl::ListGlossaries( google::cloud::translation::v3::ListGlossariesRequest request) { @@ -338,6 +502,60 @@ TranslationServiceConnectionImpl::DeleteGlossary( polling_policy(*current), __func__); } +StatusOr +TranslationServiceConnectionImpl::DeleteGlossary( + ExperimentalTag, NoAwaitTag, + google::cloud::translation::v3::DeleteGlossaryRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteGlossary(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::translation::v3::DeleteGlossaryRequest const& + request) { + return stub_->DeleteGlossary(context, options, request); + }, + *current, request, __func__); +} + +future> +TranslationServiceConnectionImpl::DeleteGlossary( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteGlossary", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::translation::v3::DeleteGlossaryResponse>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::translation::v3::DeleteGlossaryResponse>, + polling_policy(*current), __func__); +} + StatusOr TranslationServiceConnectionImpl::CreateAdaptiveMtDataset( google::cloud::translation::v3::CreateAdaptiveMtDatasetRequest const& diff --git a/google/cloud/translate/v3/internal/translation_connection_impl.h b/google/cloud/translate/v3/internal/translation_connection_impl.h index 38a75236d01b7..ffda3d040ecc3 100644 --- a/google/cloud/translate/v3/internal/translation_connection_impl.h +++ b/google/cloud/translate/v3/internal/translation_connection_impl.h @@ -75,16 +75,45 @@ class TranslationServiceConnectionImpl google::cloud::translation::v3::BatchTranslateTextRequest const& request) override; + StatusOr BatchTranslateText( + ExperimentalTag, NoAwaitTag, + google::cloud::translation::v3::BatchTranslateTextRequest const& request) + override; + + future> + BatchTranslateText(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future< StatusOr> BatchTranslateDocument( google::cloud::translation::v3::BatchTranslateDocumentRequest const& request) override; + StatusOr BatchTranslateDocument( + ExperimentalTag, NoAwaitTag, + google::cloud::translation::v3::BatchTranslateDocumentRequest const& + request) override; + + future< + StatusOr> + BatchTranslateDocument( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> CreateGlossary( google::cloud::translation::v3::CreateGlossaryRequest const& request) override; + StatusOr CreateGlossary( + ExperimentalTag, NoAwaitTag, + google::cloud::translation::v3::CreateGlossaryRequest const& request) + override; + + future> CreateGlossary( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListGlossaries( google::cloud::translation::v3::ListGlossariesRequest request) override; @@ -96,6 +125,15 @@ class TranslationServiceConnectionImpl DeleteGlossary(google::cloud::translation::v3::DeleteGlossaryRequest const& request) override; + StatusOr DeleteGlossary( + ExperimentalTag, NoAwaitTag, + google::cloud::translation::v3::DeleteGlossaryRequest const& request) + override; + + future> + DeleteGlossary(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr CreateAdaptiveMtDataset( google::cloud::translation::v3::CreateAdaptiveMtDatasetRequest const& diff --git a/google/cloud/translate/v3/internal/translation_tracing_connection.cc b/google/cloud/translate/v3/internal/translation_tracing_connection.cc index 0f35ba0d253ed..1809fea1861fd 100644 --- a/google/cloud/translate/v3/internal/translation_tracing_connection.cc +++ b/google/cloud/translate/v3/internal/translation_tracing_connection.cc @@ -80,6 +80,28 @@ TranslationServiceTracingConnection::BatchTranslateText( child_->BatchTranslateText(request)); } +StatusOr +TranslationServiceTracingConnection::BatchTranslateText( + ExperimentalTag, NoAwaitTag, + google::cloud::translation::v3::BatchTranslateTextRequest const& request) { + auto span = internal::MakeSpan( + "translate_v3::TranslationServiceConnection::BatchTranslateText"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->BatchTranslateText(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +TranslationServiceTracingConnection::BatchTranslateText( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "translate_v3::TranslationServiceConnection::BatchTranslateText"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->BatchTranslateText( + ExperimentalTag{}, operation)); +} + future> TranslationServiceTracingConnection::BatchTranslateDocument( google::cloud::translation::v3::BatchTranslateDocumentRequest const& @@ -91,6 +113,29 @@ TranslationServiceTracingConnection::BatchTranslateDocument( child_->BatchTranslateDocument(request)); } +StatusOr +TranslationServiceTracingConnection::BatchTranslateDocument( + ExperimentalTag, NoAwaitTag, + google::cloud::translation::v3::BatchTranslateDocumentRequest const& + request) { + auto span = internal::MakeSpan( + "translate_v3::TranslationServiceConnection::BatchTranslateDocument"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->BatchTranslateDocument(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +TranslationServiceTracingConnection::BatchTranslateDocument( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "translate_v3::TranslationServiceConnection::BatchTranslateDocument"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->BatchTranslateDocument( + ExperimentalTag{}, operation)); +} + future> TranslationServiceTracingConnection::CreateGlossary( google::cloud::translation::v3::CreateGlossaryRequest const& request) { @@ -100,6 +145,27 @@ TranslationServiceTracingConnection::CreateGlossary( return internal::EndSpan(std::move(span), child_->CreateGlossary(request)); } +StatusOr +TranslationServiceTracingConnection::CreateGlossary( + ExperimentalTag, NoAwaitTag, + google::cloud::translation::v3::CreateGlossaryRequest const& request) { + auto span = internal::MakeSpan( + "translate_v3::TranslationServiceConnection::CreateGlossary"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->CreateGlossary(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +TranslationServiceTracingConnection::CreateGlossary( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "translate_v3::TranslationServiceConnection::CreateGlossary"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->CreateGlossary(ExperimentalTag{}, operation)); +} + StreamRange TranslationServiceTracingConnection::ListGlossaries( google::cloud::translation::v3::ListGlossariesRequest request) { @@ -129,6 +195,27 @@ TranslationServiceTracingConnection::DeleteGlossary( return internal::EndSpan(std::move(span), child_->DeleteGlossary(request)); } +StatusOr +TranslationServiceTracingConnection::DeleteGlossary( + ExperimentalTag, NoAwaitTag, + google::cloud::translation::v3::DeleteGlossaryRequest const& request) { + auto span = internal::MakeSpan( + "translate_v3::TranslationServiceConnection::DeleteGlossary"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->DeleteGlossary(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +TranslationServiceTracingConnection::DeleteGlossary( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "translate_v3::TranslationServiceConnection::DeleteGlossary"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->DeleteGlossary(ExperimentalTag{}, operation)); +} + StatusOr TranslationServiceTracingConnection::CreateAdaptiveMtDataset( google::cloud::translation::v3::CreateAdaptiveMtDatasetRequest const& diff --git a/google/cloud/translate/v3/internal/translation_tracing_connection.h b/google/cloud/translate/v3/internal/translation_tracing_connection.h index fffa86a2c28b0..fd26e11762023 100644 --- a/google/cloud/translate/v3/internal/translation_tracing_connection.h +++ b/google/cloud/translate/v3/internal/translation_tracing_connection.h @@ -63,16 +63,45 @@ class TranslationServiceTracingConnection google::cloud::translation::v3::BatchTranslateTextRequest const& request) override; + StatusOr BatchTranslateText( + ExperimentalTag, NoAwaitTag, + google::cloud::translation::v3::BatchTranslateTextRequest const& request) + override; + + future> + BatchTranslateText(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future< StatusOr> BatchTranslateDocument( google::cloud::translation::v3::BatchTranslateDocumentRequest const& request) override; + StatusOr BatchTranslateDocument( + ExperimentalTag, NoAwaitTag, + google::cloud::translation::v3::BatchTranslateDocumentRequest const& + request) override; + + future< + StatusOr> + BatchTranslateDocument( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> CreateGlossary( google::cloud::translation::v3::CreateGlossaryRequest const& request) override; + StatusOr CreateGlossary( + ExperimentalTag, NoAwaitTag, + google::cloud::translation::v3::CreateGlossaryRequest const& request) + override; + + future> CreateGlossary( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListGlossaries( google::cloud::translation::v3::ListGlossariesRequest request) override; @@ -84,6 +113,15 @@ class TranslationServiceTracingConnection DeleteGlossary(google::cloud::translation::v3::DeleteGlossaryRequest const& request) override; + StatusOr DeleteGlossary( + ExperimentalTag, NoAwaitTag, + google::cloud::translation::v3::DeleteGlossaryRequest const& request) + override; + + future> + DeleteGlossary(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr CreateAdaptiveMtDataset( google::cloud::translation::v3::CreateAdaptiveMtDatasetRequest const& diff --git a/google/cloud/translate/v3/mocks/mock_translation_connection.h b/google/cloud/translate/v3/mocks/mock_translation_connection.h index 08eb33da9eff8..164ba614933bb 100644 --- a/google/cloud/translate/v3/mocks/mock_translation_connection.h +++ b/google/cloud/translate/v3/mocks/mock_translation_connection.h @@ -79,6 +79,18 @@ class MockTranslationServiceConnection request), (override)); + MOCK_METHOD(StatusOr, BatchTranslateText, + (ExperimentalTag, NoAwaitTag, + google::cloud::translation::v3::BatchTranslateTextRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + BatchTranslateText, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, @@ -87,12 +99,38 @@ class MockTranslationServiceConnection request), (override)); + MOCK_METHOD( + StatusOr, BatchTranslateDocument, + (ExperimentalTag, NoAwaitTag, + google::cloud::translation::v3::BatchTranslateDocumentRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + BatchTranslateDocument, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, CreateGlossary, (google::cloud::translation::v3::CreateGlossaryRequest const& request), (override)); + MOCK_METHOD( + StatusOr, CreateGlossary, + (ExperimentalTag, NoAwaitTag, + google::cloud::translation::v3::CreateGlossaryRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateGlossary, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD((StreamRange), ListGlossaries, (google::cloud::translation::v3::ListGlossariesRequest request), @@ -109,6 +147,18 @@ class MockTranslationServiceConnection (google::cloud::translation::v3::DeleteGlossaryRequest const& request), (override)); + MOCK_METHOD( + StatusOr, DeleteGlossary, + (ExperimentalTag, NoAwaitTag, + google::cloud::translation::v3::DeleteGlossaryRequest const& request), + (override)); + + MOCK_METHOD( + future>, + DeleteGlossary, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr, CreateAdaptiveMtDataset, diff --git a/google/cloud/translate/v3/translation_connection.cc b/google/cloud/translate/v3/translation_connection.cc index 92f278b9b724b..07a4a3f8c831a 100644 --- a/google/cloud/translate/v3/translation_connection.cc +++ b/google/cloud/translate/v3/translation_connection.cc @@ -70,6 +70,22 @@ TranslationServiceConnection::BatchTranslateText( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +TranslationServiceConnection::BatchTranslateText( + ExperimentalTag, NoAwaitTag, + google::cloud::translation::v3::BatchTranslateTextRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +TranslationServiceConnection::BatchTranslateText( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> TranslationServiceConnection::BatchTranslateDocument( google::cloud::translation::v3::BatchTranslateDocumentRequest const&) { @@ -78,6 +94,22 @@ TranslationServiceConnection::BatchTranslateDocument( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +TranslationServiceConnection::BatchTranslateDocument( + ExperimentalTag, NoAwaitTag, + google::cloud::translation::v3::BatchTranslateDocumentRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +TranslationServiceConnection::BatchTranslateDocument( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> TranslationServiceConnection::CreateGlossary( google::cloud::translation::v3::CreateGlossaryRequest const&) { @@ -86,6 +118,22 @@ TranslationServiceConnection::CreateGlossary( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +TranslationServiceConnection::CreateGlossary( + ExperimentalTag, NoAwaitTag, + google::cloud::translation::v3::CreateGlossaryRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +TranslationServiceConnection::CreateGlossary( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StreamRange TranslationServiceConnection::ListGlossaries( google::cloud::translation::v3:: @@ -108,6 +156,22 @@ TranslationServiceConnection::DeleteGlossary( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +TranslationServiceConnection::DeleteGlossary( + ExperimentalTag, NoAwaitTag, + google::cloud::translation::v3::DeleteGlossaryRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +TranslationServiceConnection::DeleteGlossary( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr TranslationServiceConnection::CreateAdaptiveMtDataset( google::cloud::translation::v3::CreateAdaptiveMtDatasetRequest const&) { diff --git a/google/cloud/translate/v3/translation_connection.h b/google/cloud/translate/v3/translation_connection.h index fe1c33ee1b51e..a9a660a09eb1f 100644 --- a/google/cloud/translate/v3/translation_connection.h +++ b/google/cloud/translate/v3/translation_connection.h @@ -22,8 +22,10 @@ #include "google/cloud/translate/v3/internal/translation_retry_traits.h" #include "google/cloud/translate/v3/translation_connection_idempotency_policy.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/internal/retry_policy_impl.h" +#include "google/cloud/no_await_tag.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" #include "google/cloud/status_or.h" @@ -210,16 +212,43 @@ class TranslationServiceConnection { BatchTranslateText( google::cloud::translation::v3::BatchTranslateTextRequest const& request); + virtual StatusOr BatchTranslateText( + ExperimentalTag, NoAwaitTag, + google::cloud::translation::v3::BatchTranslateTextRequest const& request); + + virtual future< + StatusOr> + BatchTranslateText(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future< StatusOr> BatchTranslateDocument( google::cloud::translation::v3::BatchTranslateDocumentRequest const& request); + virtual StatusOr BatchTranslateDocument( + ExperimentalTag, NoAwaitTag, + google::cloud::translation::v3::BatchTranslateDocumentRequest const& + request); + + virtual future< + StatusOr> + BatchTranslateDocument(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> CreateGlossary( google::cloud::translation::v3::CreateGlossaryRequest const& request); + virtual StatusOr CreateGlossary( + ExperimentalTag, NoAwaitTag, + google::cloud::translation::v3::CreateGlossaryRequest const& request); + + virtual future> + CreateGlossary(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StreamRange ListGlossaries( google::cloud::translation::v3::ListGlossariesRequest request); @@ -231,6 +260,15 @@ class TranslationServiceConnection { DeleteGlossary( google::cloud::translation::v3::DeleteGlossaryRequest const& request); + virtual StatusOr DeleteGlossary( + ExperimentalTag, NoAwaitTag, + google::cloud::translation::v3::DeleteGlossaryRequest const& request); + + virtual future< + StatusOr> + DeleteGlossary(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StatusOr CreateAdaptiveMtDataset( google::cloud::translation::v3::CreateAdaptiveMtDatasetRequest const& diff --git a/google/cloud/video/livestream/v1/internal/livestream_connection_impl.cc b/google/cloud/video/livestream/v1/internal/livestream_connection_impl.cc index ac2e697310754..bc157b3b712c1 100644 --- a/google/cloud/video/livestream/v1/internal/livestream_connection_impl.cc +++ b/google/cloud/video/livestream/v1/internal/livestream_connection_impl.cc @@ -111,6 +111,60 @@ LivestreamServiceConnectionImpl::CreateChannel( polling_policy(*current), __func__); } +StatusOr +LivestreamServiceConnectionImpl::CreateChannel( + ExperimentalTag, NoAwaitTag, + google::cloud::video::livestream::v1::CreateChannelRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateChannel(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::video::livestream::v1::CreateChannelRequest const& + request) { + return stub_->CreateChannel(context, options, request); + }, + *current, request, __func__); +} + +future> +LivestreamServiceConnectionImpl::CreateChannel( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to CreateChannel", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::video::livestream::v1::Channel>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::video::livestream::v1::Channel>, + polling_policy(*current), __func__); +} + StreamRange LivestreamServiceConnectionImpl::ListChannels( google::cloud::video::livestream::v1::ListChannelsRequest request) { @@ -202,6 +256,60 @@ LivestreamServiceConnectionImpl::DeleteChannel( polling_policy(*current), __func__); } +StatusOr +LivestreamServiceConnectionImpl::DeleteChannel( + ExperimentalTag, NoAwaitTag, + google::cloud::video::livestream::v1::DeleteChannelRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteChannel(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::video::livestream::v1::DeleteChannelRequest const& + request) { + return stub_->DeleteChannel(context, options, request); + }, + *current, request, __func__); +} + +future> +LivestreamServiceConnectionImpl::DeleteChannel( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteChannel", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::video::livestream::v1::OperationMetadata>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::cloud::video::livestream::v1::OperationMetadata>, + polling_policy(*current), __func__); +} + future> LivestreamServiceConnectionImpl::UpdateChannel( google::cloud::video::livestream::v1::UpdateChannelRequest const& request) { @@ -242,6 +350,60 @@ LivestreamServiceConnectionImpl::UpdateChannel( polling_policy(*current), __func__); } +StatusOr +LivestreamServiceConnectionImpl::UpdateChannel( + ExperimentalTag, NoAwaitTag, + google::cloud::video::livestream::v1::UpdateChannelRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UpdateChannel(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::video::livestream::v1::UpdateChannelRequest const& + request) { + return stub_->UpdateChannel(context, options, request); + }, + *current, request, __func__); +} + +future> +LivestreamServiceConnectionImpl::UpdateChannel( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to UpdateChannel", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::video::livestream::v1::Channel>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::video::livestream::v1::Channel>, + polling_policy(*current), __func__); +} + future> LivestreamServiceConnectionImpl::StartChannel( google::cloud::video::livestream::v1::StartChannelRequest const& request) { @@ -282,6 +444,60 @@ LivestreamServiceConnectionImpl::StartChannel( polling_policy(*current), __func__); } +StatusOr +LivestreamServiceConnectionImpl::StartChannel( + ExperimentalTag, NoAwaitTag, + google::cloud::video::livestream::v1::StartChannelRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->StartChannel(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::video::livestream::v1::StartChannelRequest const& + request) { + return stub_->StartChannel(context, options, request); + }, + *current, request, __func__); +} + +future> +LivestreamServiceConnectionImpl::StartChannel( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to StartChannel", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::video::livestream::v1::ChannelOperationResponse>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::video::livestream::v1::ChannelOperationResponse>, + polling_policy(*current), __func__); +} + future> LivestreamServiceConnectionImpl::StopChannel( google::cloud::video::livestream::v1::StopChannelRequest const& request) { @@ -322,6 +538,60 @@ LivestreamServiceConnectionImpl::StopChannel( polling_policy(*current), __func__); } +StatusOr +LivestreamServiceConnectionImpl::StopChannel( + ExperimentalTag, NoAwaitTag, + google::cloud::video::livestream::v1::StopChannelRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->StopChannel(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::video::livestream::v1::StopChannelRequest const& + request) { + return stub_->StopChannel(context, options, request); + }, + *current, request, __func__); +} + +future> +LivestreamServiceConnectionImpl::StopChannel( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to StopChannel", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::video::livestream::v1::ChannelOperationResponse>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::video::livestream::v1::ChannelOperationResponse>, + polling_policy(*current), __func__); +} + future> LivestreamServiceConnectionImpl::CreateInput( google::cloud::video::livestream::v1::CreateInputRequest const& request) { @@ -362,6 +632,60 @@ LivestreamServiceConnectionImpl::CreateInput( polling_policy(*current), __func__); } +StatusOr +LivestreamServiceConnectionImpl::CreateInput( + ExperimentalTag, NoAwaitTag, + google::cloud::video::livestream::v1::CreateInputRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateInput(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::video::livestream::v1::CreateInputRequest const& + request) { + return stub_->CreateInput(context, options, request); + }, + *current, request, __func__); +} + +future> +LivestreamServiceConnectionImpl::CreateInput( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to CreateInput", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::video::livestream::v1::Input>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::video::livestream::v1::Input>, + polling_policy(*current), __func__); +} + StreamRange LivestreamServiceConnectionImpl::ListInputs( google::cloud::video::livestream::v1::ListInputsRequest request) { @@ -453,6 +777,60 @@ LivestreamServiceConnectionImpl::DeleteInput( polling_policy(*current), __func__); } +StatusOr +LivestreamServiceConnectionImpl::DeleteInput( + ExperimentalTag, NoAwaitTag, + google::cloud::video::livestream::v1::DeleteInputRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteInput(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::video::livestream::v1::DeleteInputRequest const& + request) { + return stub_->DeleteInput(context, options, request); + }, + *current, request, __func__); +} + +future> +LivestreamServiceConnectionImpl::DeleteInput( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteInput", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::video::livestream::v1::OperationMetadata>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::cloud::video::livestream::v1::OperationMetadata>, + polling_policy(*current), __func__); +} + future> LivestreamServiceConnectionImpl::UpdateInput( google::cloud::video::livestream::v1::UpdateInputRequest const& request) { @@ -493,6 +871,60 @@ LivestreamServiceConnectionImpl::UpdateInput( polling_policy(*current), __func__); } +StatusOr +LivestreamServiceConnectionImpl::UpdateInput( + ExperimentalTag, NoAwaitTag, + google::cloud::video::livestream::v1::UpdateInputRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UpdateInput(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::video::livestream::v1::UpdateInputRequest const& + request) { + return stub_->UpdateInput(context, options, request); + }, + *current, request, __func__); +} + +future> +LivestreamServiceConnectionImpl::UpdateInput( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to UpdateInput", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::video::livestream::v1::Input>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::video::livestream::v1::Input>, + polling_policy(*current), __func__); +} + StatusOr LivestreamServiceConnectionImpl::CreateEvent( google::cloud::video::livestream::v1::CreateEventRequest const& request) { @@ -613,6 +1045,60 @@ LivestreamServiceConnectionImpl::CreateAsset( polling_policy(*current), __func__); } +StatusOr +LivestreamServiceConnectionImpl::CreateAsset( + ExperimentalTag, NoAwaitTag, + google::cloud::video::livestream::v1::CreateAssetRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateAsset(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::video::livestream::v1::CreateAssetRequest const& + request) { + return stub_->CreateAsset(context, options, request); + }, + *current, request, __func__); +} + +future> +LivestreamServiceConnectionImpl::CreateAsset( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to CreateAsset", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::video::livestream::v1::Asset>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::video::livestream::v1::Asset>, + polling_policy(*current), __func__); +} + future> LivestreamServiceConnectionImpl::DeleteAsset( google::cloud::video::livestream::v1::DeleteAssetRequest const& request) { @@ -653,6 +1139,60 @@ LivestreamServiceConnectionImpl::DeleteAsset( polling_policy(*current), __func__); } +StatusOr +LivestreamServiceConnectionImpl::DeleteAsset( + ExperimentalTag, NoAwaitTag, + google::cloud::video::livestream::v1::DeleteAssetRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteAsset(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::video::livestream::v1::DeleteAssetRequest const& + request) { + return stub_->DeleteAsset(context, options, request); + }, + *current, request, __func__); +} + +future> +LivestreamServiceConnectionImpl::DeleteAsset( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteAsset", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::video::livestream::v1::OperationMetadata>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::cloud::video::livestream::v1::OperationMetadata>, + polling_policy(*current), __func__); +} + StatusOr LivestreamServiceConnectionImpl::GetAsset( google::cloud::video::livestream::v1::GetAssetRequest const& request) { @@ -759,6 +1299,60 @@ LivestreamServiceConnectionImpl::UpdatePool( polling_policy(*current), __func__); } +StatusOr +LivestreamServiceConnectionImpl::UpdatePool( + ExperimentalTag, NoAwaitTag, + google::cloud::video::livestream::v1::UpdatePoolRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UpdatePool(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::video::livestream::v1::UpdatePoolRequest const& + request) { + return stub_->UpdatePool(context, options, request); + }, + *current, request, __func__); +} + +future> +LivestreamServiceConnectionImpl::UpdatePool( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to UpdatePool", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::video::livestream::v1::Pool>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::video::livestream::v1::Pool>, + polling_policy(*current), __func__); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace video_livestream_v1_internal } // namespace cloud diff --git a/google/cloud/video/livestream/v1/internal/livestream_connection_impl.h b/google/cloud/video/livestream/v1/internal/livestream_connection_impl.h index 2e135d942637e..f283dc8bd9e18 100644 --- a/google/cloud/video/livestream/v1/internal/livestream_connection_impl.h +++ b/google/cloud/video/livestream/v1/internal/livestream_connection_impl.h @@ -56,6 +56,15 @@ class LivestreamServiceConnectionImpl google::cloud::video::livestream::v1::CreateChannelRequest const& request) override; + StatusOr CreateChannel( + ExperimentalTag, NoAwaitTag, + google::cloud::video::livestream::v1::CreateChannelRequest const& request) + override; + + future> CreateChannel( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListChannels( google::cloud::video::livestream::v1::ListChannelsRequest request) override; @@ -69,24 +78,71 @@ class LivestreamServiceConnectionImpl google::cloud::video::livestream::v1::DeleteChannelRequest const& request) override; + StatusOr DeleteChannel( + ExperimentalTag, NoAwaitTag, + google::cloud::video::livestream::v1::DeleteChannelRequest const& request) + override; + + future> + DeleteChannel(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateChannel( google::cloud::video::livestream::v1::UpdateChannelRequest const& request) override; + StatusOr UpdateChannel( + ExperimentalTag, NoAwaitTag, + google::cloud::video::livestream::v1::UpdateChannelRequest const& request) + override; + + future> UpdateChannel( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future< StatusOr> StartChannel(google::cloud::video::livestream::v1::StartChannelRequest const& request) override; + StatusOr StartChannel( + ExperimentalTag, NoAwaitTag, + google::cloud::video::livestream::v1::StartChannelRequest const& request) + override; + + future< + StatusOr> + StartChannel(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future< StatusOr> StopChannel(google::cloud::video::livestream::v1::StopChannelRequest const& request) override; + StatusOr StopChannel( + ExperimentalTag, NoAwaitTag, + google::cloud::video::livestream::v1::StopChannelRequest const& request) + override; + + future< + StatusOr> + StopChannel(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> CreateInput( google::cloud::video::livestream::v1::CreateInputRequest const& request) override; + StatusOr CreateInput( + ExperimentalTag, NoAwaitTag, + google::cloud::video::livestream::v1::CreateInputRequest const& request) + override; + + future> CreateInput( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListInputs( google::cloud::video::livestream::v1::ListInputsRequest request) override; @@ -98,10 +154,28 @@ class LivestreamServiceConnectionImpl DeleteInput(google::cloud::video::livestream::v1::DeleteInputRequest const& request) override; + StatusOr DeleteInput( + ExperimentalTag, NoAwaitTag, + google::cloud::video::livestream::v1::DeleteInputRequest const& request) + override; + + future> + DeleteInput(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateInput( google::cloud::video::livestream::v1::UpdateInputRequest const& request) override; + StatusOr UpdateInput( + ExperimentalTag, NoAwaitTag, + google::cloud::video::livestream::v1::UpdateInputRequest const& request) + override; + + future> UpdateInput( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr CreateEvent( google::cloud::video::livestream::v1::CreateEventRequest const& request) override; @@ -121,10 +195,28 @@ class LivestreamServiceConnectionImpl google::cloud::video::livestream::v1::CreateAssetRequest const& request) override; + StatusOr CreateAsset( + ExperimentalTag, NoAwaitTag, + google::cloud::video::livestream::v1::CreateAssetRequest const& request) + override; + + future> CreateAsset( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteAsset(google::cloud::video::livestream::v1::DeleteAssetRequest const& request) override; + StatusOr DeleteAsset( + ExperimentalTag, NoAwaitTag, + google::cloud::video::livestream::v1::DeleteAssetRequest const& request) + override; + + future> + DeleteAsset(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetAsset( google::cloud::video::livestream::v1::GetAssetRequest const& request) override; @@ -140,6 +232,15 @@ class LivestreamServiceConnectionImpl google::cloud::video::livestream::v1::UpdatePoolRequest const& request) override; + StatusOr UpdatePool( + ExperimentalTag, NoAwaitTag, + google::cloud::video::livestream::v1::UpdatePoolRequest const& request) + override; + + future> UpdatePool( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + private: std::unique_ptr background_; std::shared_ptr stub_; diff --git a/google/cloud/video/livestream/v1/internal/livestream_tracing_connection.cc b/google/cloud/video/livestream/v1/internal/livestream_tracing_connection.cc index d7445ec9aa45e..85bdd8b744b35 100644 --- a/google/cloud/video/livestream/v1/internal/livestream_tracing_connection.cc +++ b/google/cloud/video/livestream/v1/internal/livestream_tracing_connection.cc @@ -42,6 +42,27 @@ LivestreamServiceTracingConnection::CreateChannel( return internal::EndSpan(std::move(span), child_->CreateChannel(request)); } +StatusOr +LivestreamServiceTracingConnection::CreateChannel( + ExperimentalTag, NoAwaitTag, + google::cloud::video::livestream::v1::CreateChannelRequest const& request) { + auto span = internal::MakeSpan( + "video_livestream_v1::LivestreamServiceConnection::CreateChannel"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->CreateChannel(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +LivestreamServiceTracingConnection::CreateChannel( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "video_livestream_v1::LivestreamServiceConnection::CreateChannel"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->CreateChannel(ExperimentalTag{}, operation)); +} + StreamRange LivestreamServiceTracingConnection::ListChannels( google::cloud::video::livestream::v1::ListChannelsRequest request) { @@ -72,6 +93,27 @@ LivestreamServiceTracingConnection::DeleteChannel( return internal::EndSpan(std::move(span), child_->DeleteChannel(request)); } +StatusOr +LivestreamServiceTracingConnection::DeleteChannel( + ExperimentalTag, NoAwaitTag, + google::cloud::video::livestream::v1::DeleteChannelRequest const& request) { + auto span = internal::MakeSpan( + "video_livestream_v1::LivestreamServiceConnection::DeleteChannel"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->DeleteChannel(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +LivestreamServiceTracingConnection::DeleteChannel( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "video_livestream_v1::LivestreamServiceConnection::DeleteChannel"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->DeleteChannel(ExperimentalTag{}, operation)); +} + future> LivestreamServiceTracingConnection::UpdateChannel( google::cloud::video::livestream::v1::UpdateChannelRequest const& request) { @@ -81,6 +123,27 @@ LivestreamServiceTracingConnection::UpdateChannel( return internal::EndSpan(std::move(span), child_->UpdateChannel(request)); } +StatusOr +LivestreamServiceTracingConnection::UpdateChannel( + ExperimentalTag, NoAwaitTag, + google::cloud::video::livestream::v1::UpdateChannelRequest const& request) { + auto span = internal::MakeSpan( + "video_livestream_v1::LivestreamServiceConnection::UpdateChannel"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->UpdateChannel(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +LivestreamServiceTracingConnection::UpdateChannel( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "video_livestream_v1::LivestreamServiceConnection::UpdateChannel"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->UpdateChannel(ExperimentalTag{}, operation)); +} + future> LivestreamServiceTracingConnection::StartChannel( google::cloud::video::livestream::v1::StartChannelRequest const& request) { @@ -90,6 +153,27 @@ LivestreamServiceTracingConnection::StartChannel( return internal::EndSpan(std::move(span), child_->StartChannel(request)); } +StatusOr +LivestreamServiceTracingConnection::StartChannel( + ExperimentalTag, NoAwaitTag, + google::cloud::video::livestream::v1::StartChannelRequest const& request) { + auto span = internal::MakeSpan( + "video_livestream_v1::LivestreamServiceConnection::StartChannel"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->StartChannel(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +LivestreamServiceTracingConnection::StartChannel( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "video_livestream_v1::LivestreamServiceConnection::StartChannel"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->StartChannel(ExperimentalTag{}, operation)); +} + future> LivestreamServiceTracingConnection::StopChannel( google::cloud::video::livestream::v1::StopChannelRequest const& request) { @@ -99,6 +183,27 @@ LivestreamServiceTracingConnection::StopChannel( return internal::EndSpan(std::move(span), child_->StopChannel(request)); } +StatusOr +LivestreamServiceTracingConnection::StopChannel( + ExperimentalTag, NoAwaitTag, + google::cloud::video::livestream::v1::StopChannelRequest const& request) { + auto span = internal::MakeSpan( + "video_livestream_v1::LivestreamServiceConnection::StopChannel"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->StopChannel(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +LivestreamServiceTracingConnection::StopChannel( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "video_livestream_v1::LivestreamServiceConnection::StopChannel"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->StopChannel(ExperimentalTag{}, operation)); +} + future> LivestreamServiceTracingConnection::CreateInput( google::cloud::video::livestream::v1::CreateInputRequest const& request) { @@ -108,6 +213,27 @@ LivestreamServiceTracingConnection::CreateInput( return internal::EndSpan(std::move(span), child_->CreateInput(request)); } +StatusOr +LivestreamServiceTracingConnection::CreateInput( + ExperimentalTag, NoAwaitTag, + google::cloud::video::livestream::v1::CreateInputRequest const& request) { + auto span = internal::MakeSpan( + "video_livestream_v1::LivestreamServiceConnection::CreateInput"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->CreateInput(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +LivestreamServiceTracingConnection::CreateInput( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "video_livestream_v1::LivestreamServiceConnection::CreateInput"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->CreateInput(ExperimentalTag{}, operation)); +} + StreamRange LivestreamServiceTracingConnection::ListInputs( google::cloud::video::livestream::v1::ListInputsRequest request) { @@ -138,6 +264,27 @@ LivestreamServiceTracingConnection::DeleteInput( return internal::EndSpan(std::move(span), child_->DeleteInput(request)); } +StatusOr +LivestreamServiceTracingConnection::DeleteInput( + ExperimentalTag, NoAwaitTag, + google::cloud::video::livestream::v1::DeleteInputRequest const& request) { + auto span = internal::MakeSpan( + "video_livestream_v1::LivestreamServiceConnection::DeleteInput"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->DeleteInput(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +LivestreamServiceTracingConnection::DeleteInput( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "video_livestream_v1::LivestreamServiceConnection::DeleteInput"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->DeleteInput(ExperimentalTag{}, operation)); +} + future> LivestreamServiceTracingConnection::UpdateInput( google::cloud::video::livestream::v1::UpdateInputRequest const& request) { @@ -147,6 +294,27 @@ LivestreamServiceTracingConnection::UpdateInput( return internal::EndSpan(std::move(span), child_->UpdateInput(request)); } +StatusOr +LivestreamServiceTracingConnection::UpdateInput( + ExperimentalTag, NoAwaitTag, + google::cloud::video::livestream::v1::UpdateInputRequest const& request) { + auto span = internal::MakeSpan( + "video_livestream_v1::LivestreamServiceConnection::UpdateInput"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->UpdateInput(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +LivestreamServiceTracingConnection::UpdateInput( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "video_livestream_v1::LivestreamServiceConnection::UpdateInput"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->UpdateInput(ExperimentalTag{}, operation)); +} + StatusOr LivestreamServiceTracingConnection::CreateEvent( google::cloud::video::livestream::v1::CreateEventRequest const& request) { @@ -194,6 +362,27 @@ LivestreamServiceTracingConnection::CreateAsset( return internal::EndSpan(std::move(span), child_->CreateAsset(request)); } +StatusOr +LivestreamServiceTracingConnection::CreateAsset( + ExperimentalTag, NoAwaitTag, + google::cloud::video::livestream::v1::CreateAssetRequest const& request) { + auto span = internal::MakeSpan( + "video_livestream_v1::LivestreamServiceConnection::CreateAsset"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->CreateAsset(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +LivestreamServiceTracingConnection::CreateAsset( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "video_livestream_v1::LivestreamServiceConnection::CreateAsset"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->CreateAsset(ExperimentalTag{}, operation)); +} + future> LivestreamServiceTracingConnection::DeleteAsset( google::cloud::video::livestream::v1::DeleteAssetRequest const& request) { @@ -203,6 +392,27 @@ LivestreamServiceTracingConnection::DeleteAsset( return internal::EndSpan(std::move(span), child_->DeleteAsset(request)); } +StatusOr +LivestreamServiceTracingConnection::DeleteAsset( + ExperimentalTag, NoAwaitTag, + google::cloud::video::livestream::v1::DeleteAssetRequest const& request) { + auto span = internal::MakeSpan( + "video_livestream_v1::LivestreamServiceConnection::DeleteAsset"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->DeleteAsset(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +LivestreamServiceTracingConnection::DeleteAsset( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "video_livestream_v1::LivestreamServiceConnection::DeleteAsset"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->DeleteAsset(ExperimentalTag{}, operation)); +} + StatusOr LivestreamServiceTracingConnection::GetAsset( google::cloud::video::livestream::v1::GetAssetRequest const& request) { @@ -242,6 +452,27 @@ LivestreamServiceTracingConnection::UpdatePool( return internal::EndSpan(std::move(span), child_->UpdatePool(request)); } +StatusOr +LivestreamServiceTracingConnection::UpdatePool( + ExperimentalTag, NoAwaitTag, + google::cloud::video::livestream::v1::UpdatePoolRequest const& request) { + auto span = internal::MakeSpan( + "video_livestream_v1::LivestreamServiceConnection::UpdatePool"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->UpdatePool(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +LivestreamServiceTracingConnection::UpdatePool( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "video_livestream_v1::LivestreamServiceConnection::UpdatePool"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->UpdatePool(ExperimentalTag{}, operation)); +} + #endif // GOOGLE_CLOUD_CPP_HAVE_OPENTELEMETRY std::shared_ptr diff --git a/google/cloud/video/livestream/v1/internal/livestream_tracing_connection.h b/google/cloud/video/livestream/v1/internal/livestream_tracing_connection.h index 2f06f88f1effe..427664471fc0a 100644 --- a/google/cloud/video/livestream/v1/internal/livestream_tracing_connection.h +++ b/google/cloud/video/livestream/v1/internal/livestream_tracing_connection.h @@ -44,6 +44,15 @@ class LivestreamServiceTracingConnection google::cloud::video::livestream::v1::CreateChannelRequest const& request) override; + StatusOr CreateChannel( + ExperimentalTag, NoAwaitTag, + google::cloud::video::livestream::v1::CreateChannelRequest const& request) + override; + + future> CreateChannel( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListChannels( google::cloud::video::livestream::v1::ListChannelsRequest request) override; @@ -57,24 +66,71 @@ class LivestreamServiceTracingConnection google::cloud::video::livestream::v1::DeleteChannelRequest const& request) override; + StatusOr DeleteChannel( + ExperimentalTag, NoAwaitTag, + google::cloud::video::livestream::v1::DeleteChannelRequest const& request) + override; + + future> + DeleteChannel(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateChannel( google::cloud::video::livestream::v1::UpdateChannelRequest const& request) override; + StatusOr UpdateChannel( + ExperimentalTag, NoAwaitTag, + google::cloud::video::livestream::v1::UpdateChannelRequest const& request) + override; + + future> UpdateChannel( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future< StatusOr> StartChannel(google::cloud::video::livestream::v1::StartChannelRequest const& request) override; + StatusOr StartChannel( + ExperimentalTag, NoAwaitTag, + google::cloud::video::livestream::v1::StartChannelRequest const& request) + override; + + future< + StatusOr> + StartChannel(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future< StatusOr> StopChannel(google::cloud::video::livestream::v1::StopChannelRequest const& request) override; + StatusOr StopChannel( + ExperimentalTag, NoAwaitTag, + google::cloud::video::livestream::v1::StopChannelRequest const& request) + override; + + future< + StatusOr> + StopChannel(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> CreateInput( google::cloud::video::livestream::v1::CreateInputRequest const& request) override; + StatusOr CreateInput( + ExperimentalTag, NoAwaitTag, + google::cloud::video::livestream::v1::CreateInputRequest const& request) + override; + + future> CreateInput( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListInputs( google::cloud::video::livestream::v1::ListInputsRequest request) override; @@ -86,10 +142,28 @@ class LivestreamServiceTracingConnection DeleteInput(google::cloud::video::livestream::v1::DeleteInputRequest const& request) override; + StatusOr DeleteInput( + ExperimentalTag, NoAwaitTag, + google::cloud::video::livestream::v1::DeleteInputRequest const& request) + override; + + future> + DeleteInput(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateInput( google::cloud::video::livestream::v1::UpdateInputRequest const& request) override; + StatusOr UpdateInput( + ExperimentalTag, NoAwaitTag, + google::cloud::video::livestream::v1::UpdateInputRequest const& request) + override; + + future> UpdateInput( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr CreateEvent( google::cloud::video::livestream::v1::CreateEventRequest const& request) override; @@ -109,10 +183,28 @@ class LivestreamServiceTracingConnection google::cloud::video::livestream::v1::CreateAssetRequest const& request) override; + StatusOr CreateAsset( + ExperimentalTag, NoAwaitTag, + google::cloud::video::livestream::v1::CreateAssetRequest const& request) + override; + + future> CreateAsset( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteAsset(google::cloud::video::livestream::v1::DeleteAssetRequest const& request) override; + StatusOr DeleteAsset( + ExperimentalTag, NoAwaitTag, + google::cloud::video::livestream::v1::DeleteAssetRequest const& request) + override; + + future> + DeleteAsset(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetAsset( google::cloud::video::livestream::v1::GetAssetRequest const& request) override; @@ -128,6 +220,15 @@ class LivestreamServiceTracingConnection google::cloud::video::livestream::v1::UpdatePoolRequest const& request) override; + StatusOr UpdatePool( + ExperimentalTag, NoAwaitTag, + google::cloud::video::livestream::v1::UpdatePoolRequest const& request) + override; + + future> UpdatePool( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + private: std::shared_ptr child_; }; diff --git a/google/cloud/video/livestream/v1/livestream_connection.cc b/google/cloud/video/livestream/v1/livestream_connection.cc index 30856ac5d2925..6cc8eade5225f 100644 --- a/google/cloud/video/livestream/v1/livestream_connection.cc +++ b/google/cloud/video/livestream/v1/livestream_connection.cc @@ -46,6 +46,22 @@ LivestreamServiceConnection::CreateChannel( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +LivestreamServiceConnection::CreateChannel( + ExperimentalTag, NoAwaitTag, + google::cloud::video::livestream::v1::CreateChannelRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +LivestreamServiceConnection::CreateChannel( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StreamRange LivestreamServiceConnection::ListChannels( google::cloud::video::livestream::v1:: @@ -68,6 +84,22 @@ LivestreamServiceConnection::DeleteChannel( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +LivestreamServiceConnection::DeleteChannel( + ExperimentalTag, NoAwaitTag, + google::cloud::video::livestream::v1::DeleteChannelRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +LivestreamServiceConnection::DeleteChannel( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> LivestreamServiceConnection::UpdateChannel( google::cloud::video::livestream::v1::UpdateChannelRequest const&) { @@ -76,6 +108,22 @@ LivestreamServiceConnection::UpdateChannel( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +LivestreamServiceConnection::UpdateChannel( + ExperimentalTag, NoAwaitTag, + google::cloud::video::livestream::v1::UpdateChannelRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +LivestreamServiceConnection::UpdateChannel( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> LivestreamServiceConnection::StartChannel( google::cloud::video::livestream::v1::StartChannelRequest const&) { @@ -84,6 +132,22 @@ LivestreamServiceConnection::StartChannel( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +LivestreamServiceConnection::StartChannel( + ExperimentalTag, NoAwaitTag, + google::cloud::video::livestream::v1::StartChannelRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +LivestreamServiceConnection::StartChannel( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> LivestreamServiceConnection::StopChannel( google::cloud::video::livestream::v1::StopChannelRequest const&) { @@ -92,6 +156,22 @@ LivestreamServiceConnection::StopChannel( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +LivestreamServiceConnection::StopChannel( + ExperimentalTag, NoAwaitTag, + google::cloud::video::livestream::v1::StopChannelRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +LivestreamServiceConnection::StopChannel( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> LivestreamServiceConnection::CreateInput( google::cloud::video::livestream::v1::CreateInputRequest const&) { @@ -100,6 +180,22 @@ LivestreamServiceConnection::CreateInput( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +LivestreamServiceConnection::CreateInput( + ExperimentalTag, NoAwaitTag, + google::cloud::video::livestream::v1::CreateInputRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +LivestreamServiceConnection::CreateInput( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StreamRange LivestreamServiceConnection::ListInputs( google::cloud::video::livestream::v1:: @@ -122,6 +218,22 @@ LivestreamServiceConnection::DeleteInput( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +LivestreamServiceConnection::DeleteInput( + ExperimentalTag, NoAwaitTag, + google::cloud::video::livestream::v1::DeleteInputRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +LivestreamServiceConnection::DeleteInput( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> LivestreamServiceConnection::UpdateInput( google::cloud::video::livestream::v1::UpdateInputRequest const&) { @@ -130,6 +242,22 @@ LivestreamServiceConnection::UpdateInput( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +LivestreamServiceConnection::UpdateInput( + ExperimentalTag, NoAwaitTag, + google::cloud::video::livestream::v1::UpdateInputRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +LivestreamServiceConnection::UpdateInput( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr LivestreamServiceConnection::CreateEvent( google::cloud::video::livestream::v1::CreateEventRequest const&) { @@ -163,6 +291,22 @@ LivestreamServiceConnection::CreateAsset( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +LivestreamServiceConnection::CreateAsset( + ExperimentalTag, NoAwaitTag, + google::cloud::video::livestream::v1::CreateAssetRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +LivestreamServiceConnection::CreateAsset( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> LivestreamServiceConnection::DeleteAsset( google::cloud::video::livestream::v1::DeleteAssetRequest const&) { @@ -171,6 +315,22 @@ LivestreamServiceConnection::DeleteAsset( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +LivestreamServiceConnection::DeleteAsset( + ExperimentalTag, NoAwaitTag, + google::cloud::video::livestream::v1::DeleteAssetRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +LivestreamServiceConnection::DeleteAsset( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr LivestreamServiceConnection::GetAsset( google::cloud::video::livestream::v1::GetAssetRequest const&) { @@ -199,6 +359,22 @@ LivestreamServiceConnection::UpdatePool( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +LivestreamServiceConnection::UpdatePool( + ExperimentalTag, NoAwaitTag, + google::cloud::video::livestream::v1::UpdatePoolRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +LivestreamServiceConnection::UpdatePool(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + std::shared_ptr MakeLivestreamServiceConnection( Options options) { internal::CheckExpectedOptions CreateChannel( + ExperimentalTag, NoAwaitTag, + google::cloud::video::livestream::v1::CreateChannelRequest const& + request); + + virtual future> + CreateChannel(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StreamRange ListChannels( google::cloud::video::livestream::v1::ListChannelsRequest request); @@ -205,25 +216,68 @@ class LivestreamServiceConnection { google::cloud::video::livestream::v1::DeleteChannelRequest const& request); + virtual StatusOr DeleteChannel( + ExperimentalTag, NoAwaitTag, + google::cloud::video::livestream::v1::DeleteChannelRequest const& + request); + + virtual future< + StatusOr> + DeleteChannel(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> UpdateChannel( google::cloud::video::livestream::v1::UpdateChannelRequest const& request); + virtual StatusOr UpdateChannel( + ExperimentalTag, NoAwaitTag, + google::cloud::video::livestream::v1::UpdateChannelRequest const& + request); + + virtual future> + UpdateChannel(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future< StatusOr> StartChannel( google::cloud::video::livestream::v1::StartChannelRequest const& request); + virtual StatusOr StartChannel( + ExperimentalTag, NoAwaitTag, + google::cloud::video::livestream::v1::StartChannelRequest const& request); + + virtual future< + StatusOr> + StartChannel(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future< StatusOr> StopChannel( google::cloud::video::livestream::v1::StopChannelRequest const& request); + virtual StatusOr StopChannel( + ExperimentalTag, NoAwaitTag, + google::cloud::video::livestream::v1::StopChannelRequest const& request); + + virtual future< + StatusOr> + StopChannel(ExperimentalTag, google::longrunning::Operation const& operation); + virtual future> CreateInput( google::cloud::video::livestream::v1::CreateInputRequest const& request); + virtual StatusOr CreateInput( + ExperimentalTag, NoAwaitTag, + google::cloud::video::livestream::v1::CreateInputRequest const& request); + + virtual future> + CreateInput(ExperimentalTag, google::longrunning::Operation const& operation); + virtual StreamRange ListInputs( google::cloud::video::livestream::v1::ListInputsRequest request); @@ -235,10 +289,25 @@ class LivestreamServiceConnection { DeleteInput( google::cloud::video::livestream::v1::DeleteInputRequest const& request); + virtual StatusOr DeleteInput( + ExperimentalTag, NoAwaitTag, + google::cloud::video::livestream::v1::DeleteInputRequest const& request); + + virtual future< + StatusOr> + DeleteInput(ExperimentalTag, google::longrunning::Operation const& operation); + virtual future> UpdateInput( google::cloud::video::livestream::v1::UpdateInputRequest const& request); + virtual StatusOr UpdateInput( + ExperimentalTag, NoAwaitTag, + google::cloud::video::livestream::v1::UpdateInputRequest const& request); + + virtual future> + UpdateInput(ExperimentalTag, google::longrunning::Operation const& operation); + virtual StatusOr CreateEvent( google::cloud::video::livestream::v1::CreateEventRequest const& request); @@ -255,11 +324,26 @@ class LivestreamServiceConnection { CreateAsset( google::cloud::video::livestream::v1::CreateAssetRequest const& request); + virtual StatusOr CreateAsset( + ExperimentalTag, NoAwaitTag, + google::cloud::video::livestream::v1::CreateAssetRequest const& request); + + virtual future> + CreateAsset(ExperimentalTag, google::longrunning::Operation const& operation); + virtual future< StatusOr> DeleteAsset( google::cloud::video::livestream::v1::DeleteAssetRequest const& request); + virtual StatusOr DeleteAsset( + ExperimentalTag, NoAwaitTag, + google::cloud::video::livestream::v1::DeleteAssetRequest const& request); + + virtual future< + StatusOr> + DeleteAsset(ExperimentalTag, google::longrunning::Operation const& operation); + virtual StatusOr GetAsset( google::cloud::video::livestream::v1::GetAssetRequest const& request); @@ -272,6 +356,13 @@ class LivestreamServiceConnection { virtual future> UpdatePool( google::cloud::video::livestream::v1::UpdatePoolRequest const& request); + + virtual StatusOr UpdatePool( + ExperimentalTag, NoAwaitTag, + google::cloud::video::livestream::v1::UpdatePoolRequest const& request); + + virtual future> + UpdatePool(ExperimentalTag, google::longrunning::Operation const& operation); }; /** diff --git a/google/cloud/video/livestream/v1/mocks/mock_livestream_connection.h b/google/cloud/video/livestream/v1/mocks/mock_livestream_connection.h index f95eb0fe48cb3..812cf35d07e75 100644 --- a/google/cloud/video/livestream/v1/mocks/mock_livestream_connection.h +++ b/google/cloud/video/livestream/v1/mocks/mock_livestream_connection.h @@ -53,6 +53,18 @@ class MockLivestreamServiceConnection request), (override)); + MOCK_METHOD(StatusOr, CreateChannel, + (ExperimentalTag, NoAwaitTag, + google::cloud::video::livestream::v1::CreateChannelRequest const& + request), + (override)); + + MOCK_METHOD(future>, + CreateChannel, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( (StreamRange), ListChannels, @@ -71,12 +83,36 @@ class MockLivestreamServiceConnection request), (override)); + MOCK_METHOD(StatusOr, DeleteChannel, + (ExperimentalTag, NoAwaitTag, + google::cloud::video::livestream::v1::DeleteChannelRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + DeleteChannel, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, UpdateChannel, (google::cloud::video::livestream::v1::UpdateChannelRequest const& request), (override)); + MOCK_METHOD(StatusOr, UpdateChannel, + (ExperimentalTag, NoAwaitTag, + google::cloud::video::livestream::v1::UpdateChannelRequest const& + request), + (override)); + + MOCK_METHOD(future>, + UpdateChannel, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, @@ -85,6 +121,19 @@ class MockLivestreamServiceConnection request), (override)); + MOCK_METHOD(StatusOr, StartChannel, + (ExperimentalTag, NoAwaitTag, + google::cloud::video::livestream::v1::StartChannelRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + StartChannel, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, @@ -92,12 +141,37 @@ class MockLivestreamServiceConnection (google::cloud::video::livestream::v1::StopChannelRequest const& request), (override)); + MOCK_METHOD( + StatusOr, StopChannel, + (ExperimentalTag, NoAwaitTag, + google::cloud::video::livestream::v1::StopChannelRequest const& request), + (override)); + + MOCK_METHOD( + future>, + StopChannel, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, CreateInput, (google::cloud::video::livestream::v1::CreateInputRequest const& request), (override)); + MOCK_METHOD( + StatusOr, CreateInput, + (ExperimentalTag, NoAwaitTag, + google::cloud::video::livestream::v1::CreateInputRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateInput, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD((StreamRange), ListInputs, (google::cloud::video::livestream::v1::ListInputsRequest request), @@ -114,12 +188,36 @@ class MockLivestreamServiceConnection (google::cloud::video::livestream::v1::DeleteInputRequest const& request), (override)); + MOCK_METHOD( + StatusOr, DeleteInput, + (ExperimentalTag, NoAwaitTag, + google::cloud::video::livestream::v1::DeleteInputRequest const& request), + (override)); + + MOCK_METHOD( + future>, + DeleteInput, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, UpdateInput, (google::cloud::video::livestream::v1::UpdateInputRequest const& request), (override)); + MOCK_METHOD( + StatusOr, UpdateInput, + (ExperimentalTag, NoAwaitTag, + google::cloud::video::livestream::v1::UpdateInputRequest const& request), + (override)); + + MOCK_METHOD(future>, + UpdateInput, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr, CreateEvent, (google::cloud::video::livestream::v1::CreateEventRequest const& request), @@ -146,12 +244,36 @@ class MockLivestreamServiceConnection (google::cloud::video::livestream::v1::CreateAssetRequest const& request), (override)); + MOCK_METHOD( + StatusOr, CreateAsset, + (ExperimentalTag, NoAwaitTag, + google::cloud::video::livestream::v1::CreateAssetRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateAsset, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteAsset, (google::cloud::video::livestream::v1::DeleteAssetRequest const& request), (override)); + MOCK_METHOD( + StatusOr, DeleteAsset, + (ExperimentalTag, NoAwaitTag, + google::cloud::video::livestream::v1::DeleteAssetRequest const& request), + (override)); + + MOCK_METHOD( + future>, + DeleteAsset, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr, GetAsset, (google::cloud::video::livestream::v1::GetAssetRequest const& request), @@ -171,6 +293,18 @@ class MockLivestreamServiceConnection future>, UpdatePool, (google::cloud::video::livestream::v1::UpdatePoolRequest const& request), (override)); + + MOCK_METHOD( + StatusOr, UpdatePool, + (ExperimentalTag, NoAwaitTag, + google::cloud::video::livestream::v1::UpdatePoolRequest const& request), + (override)); + + MOCK_METHOD(future>, + UpdatePool, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); }; GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END diff --git a/google/cloud/video/stitcher/v1/internal/video_stitcher_connection_impl.cc b/google/cloud/video/stitcher/v1/internal/video_stitcher_connection_impl.cc index 98db1d3a4fc8e..7acd387d4baa1 100644 --- a/google/cloud/video/stitcher/v1/internal/video_stitcher_connection_impl.cc +++ b/google/cloud/video/stitcher/v1/internal/video_stitcher_connection_impl.cc @@ -112,6 +112,60 @@ VideoStitcherServiceConnectionImpl::CreateCdnKey( polling_policy(*current), __func__); } +StatusOr +VideoStitcherServiceConnectionImpl::CreateCdnKey( + ExperimentalTag, NoAwaitTag, + google::cloud::video::stitcher::v1::CreateCdnKeyRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateCdnKey(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::video::stitcher::v1::CreateCdnKeyRequest const& + request) { + return stub_->CreateCdnKey(context, options, request); + }, + *current, request, __func__); +} + +future> +VideoStitcherServiceConnectionImpl::CreateCdnKey( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to CreateCdnKey", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::video::stitcher::v1::CdnKey>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::video::stitcher::v1::CdnKey>, + polling_policy(*current), __func__); +} + StreamRange VideoStitcherServiceConnectionImpl::ListCdnKeys( google::cloud::video::stitcher::v1::ListCdnKeysRequest request) { @@ -202,6 +256,60 @@ VideoStitcherServiceConnectionImpl::DeleteCdnKey( polling_policy(*current), __func__); } +StatusOr +VideoStitcherServiceConnectionImpl::DeleteCdnKey( + ExperimentalTag, NoAwaitTag, + google::cloud::video::stitcher::v1::DeleteCdnKeyRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteCdnKey(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::video::stitcher::v1::DeleteCdnKeyRequest const& + request) { + return stub_->DeleteCdnKey(context, options, request); + }, + *current, request, __func__); +} + +future> +VideoStitcherServiceConnectionImpl::DeleteCdnKey( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteCdnKey", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::video::stitcher::v1::OperationMetadata>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::cloud::video::stitcher::v1::OperationMetadata>, + polling_policy(*current), __func__); +} + future> VideoStitcherServiceConnectionImpl::UpdateCdnKey( google::cloud::video::stitcher::v1::UpdateCdnKeyRequest const& request) { @@ -242,6 +350,60 @@ VideoStitcherServiceConnectionImpl::UpdateCdnKey( polling_policy(*current), __func__); } +StatusOr +VideoStitcherServiceConnectionImpl::UpdateCdnKey( + ExperimentalTag, NoAwaitTag, + google::cloud::video::stitcher::v1::UpdateCdnKeyRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UpdateCdnKey(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::video::stitcher::v1::UpdateCdnKeyRequest const& + request) { + return stub_->UpdateCdnKey(context, options, request); + }, + *current, request, __func__); +} + +future> +VideoStitcherServiceConnectionImpl::UpdateCdnKey( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to UpdateCdnKey", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::video::stitcher::v1::CdnKey>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::video::stitcher::v1::CdnKey>, + polling_policy(*current), __func__); +} + StatusOr VideoStitcherServiceConnectionImpl::CreateVodSession( google::cloud::video::stitcher::v1::CreateVodSessionRequest const& @@ -473,6 +635,60 @@ VideoStitcherServiceConnectionImpl::CreateSlate( polling_policy(*current), __func__); } +StatusOr +VideoStitcherServiceConnectionImpl::CreateSlate( + ExperimentalTag, NoAwaitTag, + google::cloud::video::stitcher::v1::CreateSlateRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateSlate(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::video::stitcher::v1::CreateSlateRequest const& + request) { + return stub_->CreateSlate(context, options, request); + }, + *current, request, __func__); +} + +future> +VideoStitcherServiceConnectionImpl::CreateSlate( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to CreateSlate", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::video::stitcher::v1::Slate>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::video::stitcher::v1::Slate>, + polling_policy(*current), __func__); +} + StreamRange VideoStitcherServiceConnectionImpl::ListSlates( google::cloud::video::stitcher::v1::ListSlatesRequest request) { @@ -563,6 +779,60 @@ VideoStitcherServiceConnectionImpl::UpdateSlate( polling_policy(*current), __func__); } +StatusOr +VideoStitcherServiceConnectionImpl::UpdateSlate( + ExperimentalTag, NoAwaitTag, + google::cloud::video::stitcher::v1::UpdateSlateRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UpdateSlate(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::video::stitcher::v1::UpdateSlateRequest const& + request) { + return stub_->UpdateSlate(context, options, request); + }, + *current, request, __func__); +} + +future> +VideoStitcherServiceConnectionImpl::UpdateSlate( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to UpdateSlate", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::video::stitcher::v1::Slate>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::video::stitcher::v1::Slate>, + polling_policy(*current), __func__); +} + future> VideoStitcherServiceConnectionImpl::DeleteSlate( google::cloud::video::stitcher::v1::DeleteSlateRequest const& request) { @@ -603,6 +873,60 @@ VideoStitcherServiceConnectionImpl::DeleteSlate( polling_policy(*current), __func__); } +StatusOr +VideoStitcherServiceConnectionImpl::DeleteSlate( + ExperimentalTag, NoAwaitTag, + google::cloud::video::stitcher::v1::DeleteSlateRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteSlate(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::video::stitcher::v1::DeleteSlateRequest const& + request) { + return stub_->DeleteSlate(context, options, request); + }, + *current, request, __func__); +} + +future> +VideoStitcherServiceConnectionImpl::DeleteSlate( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteSlate", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::video::stitcher::v1::OperationMetadata>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::cloud::video::stitcher::v1::OperationMetadata>, + polling_policy(*current), __func__); +} + StatusOr VideoStitcherServiceConnectionImpl::CreateLiveSession( google::cloud::video::stitcher::v1::CreateLiveSessionRequest const& @@ -675,6 +999,61 @@ VideoStitcherServiceConnectionImpl::CreateLiveConfig( polling_policy(*current), __func__); } +StatusOr +VideoStitcherServiceConnectionImpl::CreateLiveConfig( + ExperimentalTag, NoAwaitTag, + google::cloud::video::stitcher::v1::CreateLiveConfigRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateLiveConfig(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::video::stitcher::v1::CreateLiveConfigRequest const& + request) { + return stub_->CreateLiveConfig(context, options, request); + }, + *current, request, __func__); +} + +future> +VideoStitcherServiceConnectionImpl::CreateLiveConfig( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to CreateLiveConfig", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::video::stitcher::v1::LiveConfig>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::video::stitcher::v1::LiveConfig>, + polling_policy(*current), __func__); +} + StreamRange VideoStitcherServiceConnectionImpl::ListLiveConfigs( google::cloud::video::stitcher::v1::ListLiveConfigsRequest request) { @@ -766,6 +1145,61 @@ VideoStitcherServiceConnectionImpl::DeleteLiveConfig( polling_policy(*current), __func__); } +StatusOr +VideoStitcherServiceConnectionImpl::DeleteLiveConfig( + ExperimentalTag, NoAwaitTag, + google::cloud::video::stitcher::v1::DeleteLiveConfigRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteLiveConfig(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::video::stitcher::v1::DeleteLiveConfigRequest const& + request) { + return stub_->DeleteLiveConfig(context, options, request); + }, + *current, request, __func__); +} + +future> +VideoStitcherServiceConnectionImpl::DeleteLiveConfig( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteLiveConfig", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::video::stitcher::v1::OperationMetadata>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::cloud::video::stitcher::v1::OperationMetadata>, + polling_policy(*current), __func__); +} + future> VideoStitcherServiceConnectionImpl::UpdateLiveConfig( google::cloud::video::stitcher::v1::UpdateLiveConfigRequest const& @@ -807,6 +1241,61 @@ VideoStitcherServiceConnectionImpl::UpdateLiveConfig( polling_policy(*current), __func__); } +StatusOr +VideoStitcherServiceConnectionImpl::UpdateLiveConfig( + ExperimentalTag, NoAwaitTag, + google::cloud::video::stitcher::v1::UpdateLiveConfigRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UpdateLiveConfig(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::video::stitcher::v1::UpdateLiveConfigRequest const& + request) { + return stub_->UpdateLiveConfig(context, options, request); + }, + *current, request, __func__); +} + +future> +VideoStitcherServiceConnectionImpl::UpdateLiveConfig( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to UpdateLiveConfig", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::video::stitcher::v1::LiveConfig>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::video::stitcher::v1::LiveConfig>, + polling_policy(*current), __func__); +} + future> VideoStitcherServiceConnectionImpl::CreateVodConfig( google::cloud::video::stitcher::v1::CreateVodConfigRequest const& request) { @@ -847,6 +1336,60 @@ VideoStitcherServiceConnectionImpl::CreateVodConfig( polling_policy(*current), __func__); } +StatusOr +VideoStitcherServiceConnectionImpl::CreateVodConfig( + ExperimentalTag, NoAwaitTag, + google::cloud::video::stitcher::v1::CreateVodConfigRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateVodConfig(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::video::stitcher::v1::CreateVodConfigRequest const& + request) { + return stub_->CreateVodConfig(context, options, request); + }, + *current, request, __func__); +} + +future> +VideoStitcherServiceConnectionImpl::CreateVodConfig( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to CreateVodConfig", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::video::stitcher::v1::VodConfig>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::video::stitcher::v1::VodConfig>, + polling_policy(*current), __func__); +} + StreamRange VideoStitcherServiceConnectionImpl::ListVodConfigs( google::cloud::video::stitcher::v1::ListVodConfigsRequest request) { @@ -938,6 +1481,60 @@ VideoStitcherServiceConnectionImpl::DeleteVodConfig( polling_policy(*current), __func__); } +StatusOr +VideoStitcherServiceConnectionImpl::DeleteVodConfig( + ExperimentalTag, NoAwaitTag, + google::cloud::video::stitcher::v1::DeleteVodConfigRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteVodConfig(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::video::stitcher::v1::DeleteVodConfigRequest const& + request) { + return stub_->DeleteVodConfig(context, options, request); + }, + *current, request, __func__); +} + +future> +VideoStitcherServiceConnectionImpl::DeleteVodConfig( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteVodConfig", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::video::stitcher::v1::OperationMetadata>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::cloud::video::stitcher::v1::OperationMetadata>, + polling_policy(*current), __func__); +} + future> VideoStitcherServiceConnectionImpl::UpdateVodConfig( google::cloud::video::stitcher::v1::UpdateVodConfigRequest const& request) { @@ -978,6 +1575,60 @@ VideoStitcherServiceConnectionImpl::UpdateVodConfig( polling_policy(*current), __func__); } +StatusOr +VideoStitcherServiceConnectionImpl::UpdateVodConfig( + ExperimentalTag, NoAwaitTag, + google::cloud::video::stitcher::v1::UpdateVodConfigRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UpdateVodConfig(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::video::stitcher::v1::UpdateVodConfigRequest const& + request) { + return stub_->UpdateVodConfig(context, options, request); + }, + *current, request, __func__); +} + +future> +VideoStitcherServiceConnectionImpl::UpdateVodConfig( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to UpdateVodConfig", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::video::stitcher::v1::VodConfig>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::video::stitcher::v1::VodConfig>, + polling_policy(*current), __func__); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace video_stitcher_v1_internal } // namespace cloud diff --git a/google/cloud/video/stitcher/v1/internal/video_stitcher_connection_impl.h b/google/cloud/video/stitcher/v1/internal/video_stitcher_connection_impl.h index 7b9056eff02d0..c5acf6d699dc9 100644 --- a/google/cloud/video/stitcher/v1/internal/video_stitcher_connection_impl.h +++ b/google/cloud/video/stitcher/v1/internal/video_stitcher_connection_impl.h @@ -57,6 +57,15 @@ class VideoStitcherServiceConnectionImpl google::cloud::video::stitcher::v1::CreateCdnKeyRequest const& request) override; + StatusOr CreateCdnKey( + ExperimentalTag, NoAwaitTag, + google::cloud::video::stitcher::v1::CreateCdnKeyRequest const& request) + override; + + future> CreateCdnKey( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListCdnKeys( google::cloud::video::stitcher::v1::ListCdnKeysRequest request) override; @@ -68,10 +77,28 @@ class VideoStitcherServiceConnectionImpl DeleteCdnKey(google::cloud::video::stitcher::v1::DeleteCdnKeyRequest const& request) override; + StatusOr DeleteCdnKey( + ExperimentalTag, NoAwaitTag, + google::cloud::video::stitcher::v1::DeleteCdnKeyRequest const& request) + override; + + future> + DeleteCdnKey(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateCdnKey( google::cloud::video::stitcher::v1::UpdateCdnKeyRequest const& request) override; + StatusOr UpdateCdnKey( + ExperimentalTag, NoAwaitTag, + google::cloud::video::stitcher::v1::UpdateCdnKeyRequest const& request) + override; + + future> UpdateCdnKey( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr CreateVodSession( google::cloud::video::stitcher::v1::CreateVodSessionRequest const& request) override; @@ -114,6 +141,15 @@ class VideoStitcherServiceConnectionImpl google::cloud::video::stitcher::v1::CreateSlateRequest const& request) override; + StatusOr CreateSlate( + ExperimentalTag, NoAwaitTag, + google::cloud::video::stitcher::v1::CreateSlateRequest const& request) + override; + + future> CreateSlate( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListSlates( google::cloud::video::stitcher::v1::ListSlatesRequest request) override; @@ -125,10 +161,28 @@ class VideoStitcherServiceConnectionImpl google::cloud::video::stitcher::v1::UpdateSlateRequest const& request) override; + StatusOr UpdateSlate( + ExperimentalTag, NoAwaitTag, + google::cloud::video::stitcher::v1::UpdateSlateRequest const& request) + override; + + future> UpdateSlate( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteSlate(google::cloud::video::stitcher::v1::DeleteSlateRequest const& request) override; + StatusOr DeleteSlate( + ExperimentalTag, NoAwaitTag, + google::cloud::video::stitcher::v1::DeleteSlateRequest const& request) + override; + + future> + DeleteSlate(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr CreateLiveSession( google::cloud::video::stitcher::v1::CreateLiveSessionRequest const& request) override; @@ -142,6 +196,15 @@ class VideoStitcherServiceConnectionImpl google::cloud::video::stitcher::v1::CreateLiveConfigRequest const& request) override; + StatusOr CreateLiveConfig( + ExperimentalTag, NoAwaitTag, + google::cloud::video::stitcher::v1::CreateLiveConfigRequest const& + request) override; + + future> + CreateLiveConfig(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListLiveConfigs( google::cloud::video::stitcher::v1::ListLiveConfigsRequest request) override; @@ -155,16 +218,43 @@ class VideoStitcherServiceConnectionImpl google::cloud::video::stitcher::v1::DeleteLiveConfigRequest const& request) override; + StatusOr DeleteLiveConfig( + ExperimentalTag, NoAwaitTag, + google::cloud::video::stitcher::v1::DeleteLiveConfigRequest const& + request) override; + + future> + DeleteLiveConfig(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateLiveConfig( google::cloud::video::stitcher::v1::UpdateLiveConfigRequest const& request) override; + StatusOr UpdateLiveConfig( + ExperimentalTag, NoAwaitTag, + google::cloud::video::stitcher::v1::UpdateLiveConfigRequest const& + request) override; + + future> + UpdateLiveConfig(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> CreateVodConfig( google::cloud::video::stitcher::v1::CreateVodConfigRequest const& request) override; + StatusOr CreateVodConfig( + ExperimentalTag, NoAwaitTag, + google::cloud::video::stitcher::v1::CreateVodConfigRequest const& request) + override; + + future> + CreateVodConfig(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListVodConfigs( google::cloud::video::stitcher::v1::ListVodConfigsRequest request) override; @@ -178,11 +268,29 @@ class VideoStitcherServiceConnectionImpl google::cloud::video::stitcher::v1::DeleteVodConfigRequest const& request) override; + StatusOr DeleteVodConfig( + ExperimentalTag, NoAwaitTag, + google::cloud::video::stitcher::v1::DeleteVodConfigRequest const& request) + override; + + future> + DeleteVodConfig(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateVodConfig( google::cloud::video::stitcher::v1::UpdateVodConfigRequest const& request) override; + StatusOr UpdateVodConfig( + ExperimentalTag, NoAwaitTag, + google::cloud::video::stitcher::v1::UpdateVodConfigRequest const& request) + override; + + future> + UpdateVodConfig(ExperimentalTag, + google::longrunning::Operation const& operation) override; + private: std::unique_ptr background_; std::shared_ptr stub_; diff --git a/google/cloud/video/stitcher/v1/internal/video_stitcher_tracing_connection.cc b/google/cloud/video/stitcher/v1/internal/video_stitcher_tracing_connection.cc index 98b1c66717a4c..ad09a8f2938c4 100644 --- a/google/cloud/video/stitcher/v1/internal/video_stitcher_tracing_connection.cc +++ b/google/cloud/video/stitcher/v1/internal/video_stitcher_tracing_connection.cc @@ -42,6 +42,27 @@ VideoStitcherServiceTracingConnection::CreateCdnKey( return internal::EndSpan(std::move(span), child_->CreateCdnKey(request)); } +StatusOr +VideoStitcherServiceTracingConnection::CreateCdnKey( + ExperimentalTag, NoAwaitTag, + google::cloud::video::stitcher::v1::CreateCdnKeyRequest const& request) { + auto span = internal::MakeSpan( + "video_stitcher_v1::VideoStitcherServiceConnection::CreateCdnKey"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->CreateCdnKey(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +VideoStitcherServiceTracingConnection::CreateCdnKey( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "video_stitcher_v1::VideoStitcherServiceConnection::CreateCdnKey"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->CreateCdnKey(ExperimentalTag{}, operation)); +} + StreamRange VideoStitcherServiceTracingConnection::ListCdnKeys( google::cloud::video::stitcher::v1::ListCdnKeysRequest request) { @@ -72,6 +93,27 @@ VideoStitcherServiceTracingConnection::DeleteCdnKey( return internal::EndSpan(std::move(span), child_->DeleteCdnKey(request)); } +StatusOr +VideoStitcherServiceTracingConnection::DeleteCdnKey( + ExperimentalTag, NoAwaitTag, + google::cloud::video::stitcher::v1::DeleteCdnKeyRequest const& request) { + auto span = internal::MakeSpan( + "video_stitcher_v1::VideoStitcherServiceConnection::DeleteCdnKey"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->DeleteCdnKey(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +VideoStitcherServiceTracingConnection::DeleteCdnKey( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "video_stitcher_v1::VideoStitcherServiceConnection::DeleteCdnKey"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->DeleteCdnKey(ExperimentalTag{}, operation)); +} + future> VideoStitcherServiceTracingConnection::UpdateCdnKey( google::cloud::video::stitcher::v1::UpdateCdnKeyRequest const& request) { @@ -81,6 +123,27 @@ VideoStitcherServiceTracingConnection::UpdateCdnKey( return internal::EndSpan(std::move(span), child_->UpdateCdnKey(request)); } +StatusOr +VideoStitcherServiceTracingConnection::UpdateCdnKey( + ExperimentalTag, NoAwaitTag, + google::cloud::video::stitcher::v1::UpdateCdnKeyRequest const& request) { + auto span = internal::MakeSpan( + "video_stitcher_v1::VideoStitcherServiceConnection::UpdateCdnKey"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->UpdateCdnKey(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +VideoStitcherServiceTracingConnection::UpdateCdnKey( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "video_stitcher_v1::VideoStitcherServiceConnection::UpdateCdnKey"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->UpdateCdnKey(ExperimentalTag{}, operation)); +} + StatusOr VideoStitcherServiceTracingConnection::CreateVodSession( google::cloud::video::stitcher::v1::CreateVodSessionRequest const& @@ -177,6 +240,27 @@ VideoStitcherServiceTracingConnection::CreateSlate( return internal::EndSpan(std::move(span), child_->CreateSlate(request)); } +StatusOr +VideoStitcherServiceTracingConnection::CreateSlate( + ExperimentalTag, NoAwaitTag, + google::cloud::video::stitcher::v1::CreateSlateRequest const& request) { + auto span = internal::MakeSpan( + "video_stitcher_v1::VideoStitcherServiceConnection::CreateSlate"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->CreateSlate(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +VideoStitcherServiceTracingConnection::CreateSlate( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "video_stitcher_v1::VideoStitcherServiceConnection::CreateSlate"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->CreateSlate(ExperimentalTag{}, operation)); +} + StreamRange VideoStitcherServiceTracingConnection::ListSlates( google::cloud::video::stitcher::v1::ListSlatesRequest request) { @@ -207,6 +291,27 @@ VideoStitcherServiceTracingConnection::UpdateSlate( return internal::EndSpan(std::move(span), child_->UpdateSlate(request)); } +StatusOr +VideoStitcherServiceTracingConnection::UpdateSlate( + ExperimentalTag, NoAwaitTag, + google::cloud::video::stitcher::v1::UpdateSlateRequest const& request) { + auto span = internal::MakeSpan( + "video_stitcher_v1::VideoStitcherServiceConnection::UpdateSlate"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->UpdateSlate(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +VideoStitcherServiceTracingConnection::UpdateSlate( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "video_stitcher_v1::VideoStitcherServiceConnection::UpdateSlate"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->UpdateSlate(ExperimentalTag{}, operation)); +} + future> VideoStitcherServiceTracingConnection::DeleteSlate( google::cloud::video::stitcher::v1::DeleteSlateRequest const& request) { @@ -216,6 +321,27 @@ VideoStitcherServiceTracingConnection::DeleteSlate( return internal::EndSpan(std::move(span), child_->DeleteSlate(request)); } +StatusOr +VideoStitcherServiceTracingConnection::DeleteSlate( + ExperimentalTag, NoAwaitTag, + google::cloud::video::stitcher::v1::DeleteSlateRequest const& request) { + auto span = internal::MakeSpan( + "video_stitcher_v1::VideoStitcherServiceConnection::DeleteSlate"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->DeleteSlate(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +VideoStitcherServiceTracingConnection::DeleteSlate( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "video_stitcher_v1::VideoStitcherServiceConnection::DeleteSlate"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->DeleteSlate(ExperimentalTag{}, operation)); +} + StatusOr VideoStitcherServiceTracingConnection::CreateLiveSession( google::cloud::video::stitcher::v1::CreateLiveSessionRequest const& @@ -245,6 +371,29 @@ VideoStitcherServiceTracingConnection::CreateLiveConfig( return internal::EndSpan(std::move(span), child_->CreateLiveConfig(request)); } +StatusOr +VideoStitcherServiceTracingConnection::CreateLiveConfig( + ExperimentalTag, NoAwaitTag, + google::cloud::video::stitcher::v1::CreateLiveConfigRequest const& + request) { + auto span = internal::MakeSpan( + "video_stitcher_v1::VideoStitcherServiceConnection::CreateLiveConfig"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->CreateLiveConfig(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +VideoStitcherServiceTracingConnection::CreateLiveConfig( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "video_stitcher_v1::VideoStitcherServiceConnection::CreateLiveConfig"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->CreateLiveConfig(ExperimentalTag{}, operation)); +} + StreamRange VideoStitcherServiceTracingConnection::ListLiveConfigs( google::cloud::video::stitcher::v1::ListLiveConfigsRequest request) { @@ -276,6 +425,29 @@ VideoStitcherServiceTracingConnection::DeleteLiveConfig( return internal::EndSpan(std::move(span), child_->DeleteLiveConfig(request)); } +StatusOr +VideoStitcherServiceTracingConnection::DeleteLiveConfig( + ExperimentalTag, NoAwaitTag, + google::cloud::video::stitcher::v1::DeleteLiveConfigRequest const& + request) { + auto span = internal::MakeSpan( + "video_stitcher_v1::VideoStitcherServiceConnection::DeleteLiveConfig"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->DeleteLiveConfig(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +VideoStitcherServiceTracingConnection::DeleteLiveConfig( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "video_stitcher_v1::VideoStitcherServiceConnection::DeleteLiveConfig"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->DeleteLiveConfig(ExperimentalTag{}, operation)); +} + future> VideoStitcherServiceTracingConnection::UpdateLiveConfig( google::cloud::video::stitcher::v1::UpdateLiveConfigRequest const& @@ -286,6 +458,29 @@ VideoStitcherServiceTracingConnection::UpdateLiveConfig( return internal::EndSpan(std::move(span), child_->UpdateLiveConfig(request)); } +StatusOr +VideoStitcherServiceTracingConnection::UpdateLiveConfig( + ExperimentalTag, NoAwaitTag, + google::cloud::video::stitcher::v1::UpdateLiveConfigRequest const& + request) { + auto span = internal::MakeSpan( + "video_stitcher_v1::VideoStitcherServiceConnection::UpdateLiveConfig"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->UpdateLiveConfig(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +VideoStitcherServiceTracingConnection::UpdateLiveConfig( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "video_stitcher_v1::VideoStitcherServiceConnection::UpdateLiveConfig"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->UpdateLiveConfig(ExperimentalTag{}, operation)); +} + future> VideoStitcherServiceTracingConnection::CreateVodConfig( google::cloud::video::stitcher::v1::CreateVodConfigRequest const& request) { @@ -295,6 +490,27 @@ VideoStitcherServiceTracingConnection::CreateVodConfig( return internal::EndSpan(std::move(span), child_->CreateVodConfig(request)); } +StatusOr +VideoStitcherServiceTracingConnection::CreateVodConfig( + ExperimentalTag, NoAwaitTag, + google::cloud::video::stitcher::v1::CreateVodConfigRequest const& request) { + auto span = internal::MakeSpan( + "video_stitcher_v1::VideoStitcherServiceConnection::CreateVodConfig"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->CreateVodConfig(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +VideoStitcherServiceTracingConnection::CreateVodConfig( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "video_stitcher_v1::VideoStitcherServiceConnection::CreateVodConfig"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->CreateVodConfig(ExperimentalTag{}, operation)); +} + StreamRange VideoStitcherServiceTracingConnection::ListVodConfigs( google::cloud::video::stitcher::v1::ListVodConfigsRequest request) { @@ -325,6 +541,27 @@ VideoStitcherServiceTracingConnection::DeleteVodConfig( return internal::EndSpan(std::move(span), child_->DeleteVodConfig(request)); } +StatusOr +VideoStitcherServiceTracingConnection::DeleteVodConfig( + ExperimentalTag, NoAwaitTag, + google::cloud::video::stitcher::v1::DeleteVodConfigRequest const& request) { + auto span = internal::MakeSpan( + "video_stitcher_v1::VideoStitcherServiceConnection::DeleteVodConfig"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->DeleteVodConfig(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +VideoStitcherServiceTracingConnection::DeleteVodConfig( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "video_stitcher_v1::VideoStitcherServiceConnection::DeleteVodConfig"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->DeleteVodConfig(ExperimentalTag{}, operation)); +} + future> VideoStitcherServiceTracingConnection::UpdateVodConfig( google::cloud::video::stitcher::v1::UpdateVodConfigRequest const& request) { @@ -334,6 +571,27 @@ VideoStitcherServiceTracingConnection::UpdateVodConfig( return internal::EndSpan(std::move(span), child_->UpdateVodConfig(request)); } +StatusOr +VideoStitcherServiceTracingConnection::UpdateVodConfig( + ExperimentalTag, NoAwaitTag, + google::cloud::video::stitcher::v1::UpdateVodConfigRequest const& request) { + auto span = internal::MakeSpan( + "video_stitcher_v1::VideoStitcherServiceConnection::UpdateVodConfig"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->UpdateVodConfig(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +VideoStitcherServiceTracingConnection::UpdateVodConfig( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "video_stitcher_v1::VideoStitcherServiceConnection::UpdateVodConfig"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->UpdateVodConfig(ExperimentalTag{}, operation)); +} + #endif // GOOGLE_CLOUD_CPP_HAVE_OPENTELEMETRY std::shared_ptr diff --git a/google/cloud/video/stitcher/v1/internal/video_stitcher_tracing_connection.h b/google/cloud/video/stitcher/v1/internal/video_stitcher_tracing_connection.h index 7f950b40be62e..cac585054085c 100644 --- a/google/cloud/video/stitcher/v1/internal/video_stitcher_tracing_connection.h +++ b/google/cloud/video/stitcher/v1/internal/video_stitcher_tracing_connection.h @@ -44,6 +44,15 @@ class VideoStitcherServiceTracingConnection google::cloud::video::stitcher::v1::CreateCdnKeyRequest const& request) override; + StatusOr CreateCdnKey( + ExperimentalTag, NoAwaitTag, + google::cloud::video::stitcher::v1::CreateCdnKeyRequest const& request) + override; + + future> CreateCdnKey( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListCdnKeys( google::cloud::video::stitcher::v1::ListCdnKeysRequest request) override; @@ -55,10 +64,28 @@ class VideoStitcherServiceTracingConnection DeleteCdnKey(google::cloud::video::stitcher::v1::DeleteCdnKeyRequest const& request) override; + StatusOr DeleteCdnKey( + ExperimentalTag, NoAwaitTag, + google::cloud::video::stitcher::v1::DeleteCdnKeyRequest const& request) + override; + + future> + DeleteCdnKey(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateCdnKey( google::cloud::video::stitcher::v1::UpdateCdnKeyRequest const& request) override; + StatusOr UpdateCdnKey( + ExperimentalTag, NoAwaitTag, + google::cloud::video::stitcher::v1::UpdateCdnKeyRequest const& request) + override; + + future> UpdateCdnKey( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr CreateVodSession( google::cloud::video::stitcher::v1::CreateVodSessionRequest const& request) override; @@ -101,6 +128,15 @@ class VideoStitcherServiceTracingConnection google::cloud::video::stitcher::v1::CreateSlateRequest const& request) override; + StatusOr CreateSlate( + ExperimentalTag, NoAwaitTag, + google::cloud::video::stitcher::v1::CreateSlateRequest const& request) + override; + + future> CreateSlate( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListSlates( google::cloud::video::stitcher::v1::ListSlatesRequest request) override; @@ -112,10 +148,28 @@ class VideoStitcherServiceTracingConnection google::cloud::video::stitcher::v1::UpdateSlateRequest const& request) override; + StatusOr UpdateSlate( + ExperimentalTag, NoAwaitTag, + google::cloud::video::stitcher::v1::UpdateSlateRequest const& request) + override; + + future> UpdateSlate( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteSlate(google::cloud::video::stitcher::v1::DeleteSlateRequest const& request) override; + StatusOr DeleteSlate( + ExperimentalTag, NoAwaitTag, + google::cloud::video::stitcher::v1::DeleteSlateRequest const& request) + override; + + future> + DeleteSlate(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr CreateLiveSession( google::cloud::video::stitcher::v1::CreateLiveSessionRequest const& request) override; @@ -129,6 +183,15 @@ class VideoStitcherServiceTracingConnection google::cloud::video::stitcher::v1::CreateLiveConfigRequest const& request) override; + StatusOr CreateLiveConfig( + ExperimentalTag, NoAwaitTag, + google::cloud::video::stitcher::v1::CreateLiveConfigRequest const& + request) override; + + future> + CreateLiveConfig(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListLiveConfigs( google::cloud::video::stitcher::v1::ListLiveConfigsRequest request) override; @@ -142,16 +205,43 @@ class VideoStitcherServiceTracingConnection google::cloud::video::stitcher::v1::DeleteLiveConfigRequest const& request) override; + StatusOr DeleteLiveConfig( + ExperimentalTag, NoAwaitTag, + google::cloud::video::stitcher::v1::DeleteLiveConfigRequest const& + request) override; + + future> + DeleteLiveConfig(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateLiveConfig( google::cloud::video::stitcher::v1::UpdateLiveConfigRequest const& request) override; + StatusOr UpdateLiveConfig( + ExperimentalTag, NoAwaitTag, + google::cloud::video::stitcher::v1::UpdateLiveConfigRequest const& + request) override; + + future> + UpdateLiveConfig(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> CreateVodConfig( google::cloud::video::stitcher::v1::CreateVodConfigRequest const& request) override; + StatusOr CreateVodConfig( + ExperimentalTag, NoAwaitTag, + google::cloud::video::stitcher::v1::CreateVodConfigRequest const& request) + override; + + future> + CreateVodConfig(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListVodConfigs( google::cloud::video::stitcher::v1::ListVodConfigsRequest request) override; @@ -165,11 +255,29 @@ class VideoStitcherServiceTracingConnection google::cloud::video::stitcher::v1::DeleteVodConfigRequest const& request) override; + StatusOr DeleteVodConfig( + ExperimentalTag, NoAwaitTag, + google::cloud::video::stitcher::v1::DeleteVodConfigRequest const& request) + override; + + future> + DeleteVodConfig(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateVodConfig( google::cloud::video::stitcher::v1::UpdateVodConfigRequest const& request) override; + StatusOr UpdateVodConfig( + ExperimentalTag, NoAwaitTag, + google::cloud::video::stitcher::v1::UpdateVodConfigRequest const& request) + override; + + future> + UpdateVodConfig(ExperimentalTag, + google::longrunning::Operation const& operation) override; + private: std::shared_ptr child_; }; diff --git a/google/cloud/video/stitcher/v1/mocks/mock_video_stitcher_connection.h b/google/cloud/video/stitcher/v1/mocks/mock_video_stitcher_connection.h index 7156e290190d6..feeecdb55aec0 100644 --- a/google/cloud/video/stitcher/v1/mocks/mock_video_stitcher_connection.h +++ b/google/cloud/video/stitcher/v1/mocks/mock_video_stitcher_connection.h @@ -53,6 +53,18 @@ class MockVideoStitcherServiceConnection (google::cloud::video::stitcher::v1::CreateCdnKeyRequest const& request), (override)); + MOCK_METHOD( + StatusOr, CreateCdnKey, + (ExperimentalTag, NoAwaitTag, + google::cloud::video::stitcher::v1::CreateCdnKeyRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateCdnKey, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD((StreamRange), ListCdnKeys, (google::cloud::video::stitcher::v1::ListCdnKeysRequest request), @@ -69,12 +81,36 @@ class MockVideoStitcherServiceConnection (google::cloud::video::stitcher::v1::DeleteCdnKeyRequest const& request), (override)); + MOCK_METHOD( + StatusOr, DeleteCdnKey, + (ExperimentalTag, NoAwaitTag, + google::cloud::video::stitcher::v1::DeleteCdnKeyRequest const& request), + (override)); + + MOCK_METHOD( + future>, + DeleteCdnKey, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, UpdateCdnKey, (google::cloud::video::stitcher::v1::UpdateCdnKeyRequest const& request), (override)); + MOCK_METHOD( + StatusOr, UpdateCdnKey, + (ExperimentalTag, NoAwaitTag, + google::cloud::video::stitcher::v1::UpdateCdnKeyRequest const& request), + (override)); + + MOCK_METHOD(future>, + UpdateCdnKey, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr, CreateVodSession, @@ -131,6 +167,18 @@ class MockVideoStitcherServiceConnection (google::cloud::video::stitcher::v1::CreateSlateRequest const& request), (override)); + MOCK_METHOD( + StatusOr, CreateSlate, + (ExperimentalTag, NoAwaitTag, + google::cloud::video::stitcher::v1::CreateSlateRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateSlate, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD((StreamRange), ListSlates, (google::cloud::video::stitcher::v1::ListSlatesRequest request), @@ -146,12 +194,36 @@ class MockVideoStitcherServiceConnection (google::cloud::video::stitcher::v1::UpdateSlateRequest const& request), (override)); + MOCK_METHOD( + StatusOr, UpdateSlate, + (ExperimentalTag, NoAwaitTag, + google::cloud::video::stitcher::v1::UpdateSlateRequest const& request), + (override)); + + MOCK_METHOD(future>, + UpdateSlate, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteSlate, (google::cloud::video::stitcher::v1::DeleteSlateRequest const& request), (override)); + MOCK_METHOD( + StatusOr, DeleteSlate, + (ExperimentalTag, NoAwaitTag, + google::cloud::video::stitcher::v1::DeleteSlateRequest const& request), + (override)); + + MOCK_METHOD( + future>, + DeleteSlate, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr, CreateLiveSession, @@ -172,6 +244,19 @@ class MockVideoStitcherServiceConnection request), (override)); + MOCK_METHOD( + StatusOr, CreateLiveConfig, + (ExperimentalTag, NoAwaitTag, + google::cloud::video::stitcher::v1::CreateLiveConfigRequest const& + request), + (override)); + + MOCK_METHOD(future>, + CreateLiveConfig, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( (StreamRange), ListLiveConfigs, @@ -190,6 +275,19 @@ class MockVideoStitcherServiceConnection request), (override)); + MOCK_METHOD( + StatusOr, DeleteLiveConfig, + (ExperimentalTag, NoAwaitTag, + google::cloud::video::stitcher::v1::DeleteLiveConfigRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + DeleteLiveConfig, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, UpdateLiveConfig, @@ -197,12 +295,37 @@ class MockVideoStitcherServiceConnection request), (override)); + MOCK_METHOD( + StatusOr, UpdateLiveConfig, + (ExperimentalTag, NoAwaitTag, + google::cloud::video::stitcher::v1::UpdateLiveConfigRequest const& + request), + (override)); + + MOCK_METHOD(future>, + UpdateLiveConfig, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, CreateVodConfig, (google::cloud::video::stitcher::v1::CreateVodConfigRequest const& request), (override)); + MOCK_METHOD(StatusOr, CreateVodConfig, + (ExperimentalTag, NoAwaitTag, + google::cloud::video::stitcher::v1::CreateVodConfigRequest const& + request), + (override)); + + MOCK_METHOD(future>, + CreateVodConfig, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( (StreamRange), ListVodConfigs, @@ -221,11 +344,35 @@ class MockVideoStitcherServiceConnection request), (override)); + MOCK_METHOD(StatusOr, DeleteVodConfig, + (ExperimentalTag, NoAwaitTag, + google::cloud::video::stitcher::v1::DeleteVodConfigRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + DeleteVodConfig, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, UpdateVodConfig, (google::cloud::video::stitcher::v1::UpdateVodConfigRequest const& request), (override)); + + MOCK_METHOD(StatusOr, UpdateVodConfig, + (ExperimentalTag, NoAwaitTag, + google::cloud::video::stitcher::v1::UpdateVodConfigRequest const& + request), + (override)); + + MOCK_METHOD(future>, + UpdateVodConfig, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); }; GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END diff --git a/google/cloud/video/stitcher/v1/video_stitcher_connection.cc b/google/cloud/video/stitcher/v1/video_stitcher_connection.cc index de6a79164ad81..2d353e60d4d33 100644 --- a/google/cloud/video/stitcher/v1/video_stitcher_connection.cc +++ b/google/cloud/video/stitcher/v1/video_stitcher_connection.cc @@ -46,6 +46,22 @@ VideoStitcherServiceConnection::CreateCdnKey( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +VideoStitcherServiceConnection::CreateCdnKey( + ExperimentalTag, NoAwaitTag, + google::cloud::video::stitcher::v1::CreateCdnKeyRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +VideoStitcherServiceConnection::CreateCdnKey( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StreamRange VideoStitcherServiceConnection::ListCdnKeys( google::cloud::video::stitcher::v1:: @@ -68,6 +84,22 @@ VideoStitcherServiceConnection::DeleteCdnKey( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +VideoStitcherServiceConnection::DeleteCdnKey( + ExperimentalTag, NoAwaitTag, + google::cloud::video::stitcher::v1::DeleteCdnKeyRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +VideoStitcherServiceConnection::DeleteCdnKey( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> VideoStitcherServiceConnection::UpdateCdnKey( google::cloud::video::stitcher::v1::UpdateCdnKeyRequest const&) { @@ -76,6 +108,22 @@ VideoStitcherServiceConnection::UpdateCdnKey( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +VideoStitcherServiceConnection::UpdateCdnKey( + ExperimentalTag, NoAwaitTag, + google::cloud::video::stitcher::v1::UpdateCdnKeyRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +VideoStitcherServiceConnection::UpdateCdnKey( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr VideoStitcherServiceConnection::CreateVodSession( google::cloud::video::stitcher::v1::CreateVodSessionRequest const&) { @@ -138,6 +186,22 @@ VideoStitcherServiceConnection::CreateSlate( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +VideoStitcherServiceConnection::CreateSlate( + ExperimentalTag, NoAwaitTag, + google::cloud::video::stitcher::v1::CreateSlateRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +VideoStitcherServiceConnection::CreateSlate( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StreamRange VideoStitcherServiceConnection::ListSlates( google::cloud::video::stitcher::v1:: @@ -160,6 +224,22 @@ VideoStitcherServiceConnection::UpdateSlate( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +VideoStitcherServiceConnection::UpdateSlate( + ExperimentalTag, NoAwaitTag, + google::cloud::video::stitcher::v1::UpdateSlateRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +VideoStitcherServiceConnection::UpdateSlate( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> VideoStitcherServiceConnection::DeleteSlate( google::cloud::video::stitcher::v1::DeleteSlateRequest const&) { @@ -168,6 +248,22 @@ VideoStitcherServiceConnection::DeleteSlate( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +VideoStitcherServiceConnection::DeleteSlate( + ExperimentalTag, NoAwaitTag, + google::cloud::video::stitcher::v1::DeleteSlateRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +VideoStitcherServiceConnection::DeleteSlate( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr VideoStitcherServiceConnection::CreateLiveSession( google::cloud::video::stitcher::v1::CreateLiveSessionRequest const&) { @@ -188,6 +284,22 @@ VideoStitcherServiceConnection::CreateLiveConfig( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +VideoStitcherServiceConnection::CreateLiveConfig( + ExperimentalTag, NoAwaitTag, + google::cloud::video::stitcher::v1::CreateLiveConfigRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +VideoStitcherServiceConnection::CreateLiveConfig( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StreamRange VideoStitcherServiceConnection::ListLiveConfigs( google::cloud::video::stitcher::v1:: @@ -210,6 +322,22 @@ VideoStitcherServiceConnection::DeleteLiveConfig( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +VideoStitcherServiceConnection::DeleteLiveConfig( + ExperimentalTag, NoAwaitTag, + google::cloud::video::stitcher::v1::DeleteLiveConfigRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +VideoStitcherServiceConnection::DeleteLiveConfig( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> VideoStitcherServiceConnection::UpdateLiveConfig( google::cloud::video::stitcher::v1::UpdateLiveConfigRequest const&) { @@ -218,6 +346,22 @@ VideoStitcherServiceConnection::UpdateLiveConfig( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +VideoStitcherServiceConnection::UpdateLiveConfig( + ExperimentalTag, NoAwaitTag, + google::cloud::video::stitcher::v1::UpdateLiveConfigRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +VideoStitcherServiceConnection::UpdateLiveConfig( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> VideoStitcherServiceConnection::CreateVodConfig( google::cloud::video::stitcher::v1::CreateVodConfigRequest const&) { @@ -226,6 +370,22 @@ VideoStitcherServiceConnection::CreateVodConfig( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +VideoStitcherServiceConnection::CreateVodConfig( + ExperimentalTag, NoAwaitTag, + google::cloud::video::stitcher::v1::CreateVodConfigRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +VideoStitcherServiceConnection::CreateVodConfig( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StreamRange VideoStitcherServiceConnection::ListVodConfigs( google::cloud::video::stitcher::v1:: @@ -248,6 +408,22 @@ VideoStitcherServiceConnection::DeleteVodConfig( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +VideoStitcherServiceConnection::DeleteVodConfig( + ExperimentalTag, NoAwaitTag, + google::cloud::video::stitcher::v1::DeleteVodConfigRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +VideoStitcherServiceConnection::DeleteVodConfig( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> VideoStitcherServiceConnection::UpdateVodConfig( google::cloud::video::stitcher::v1::UpdateVodConfigRequest const&) { @@ -256,6 +432,22 @@ VideoStitcherServiceConnection::UpdateVodConfig( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +VideoStitcherServiceConnection::UpdateVodConfig( + ExperimentalTag, NoAwaitTag, + google::cloud::video::stitcher::v1::UpdateVodConfigRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +VideoStitcherServiceConnection::UpdateVodConfig( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + std::shared_ptr MakeVideoStitcherServiceConnection(Options options) { internal::CheckExpectedOptions CreateCdnKey( + ExperimentalTag, NoAwaitTag, + google::cloud::video::stitcher::v1::CreateCdnKeyRequest const& request); + + virtual future> + CreateCdnKey(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StreamRange ListCdnKeys( google::cloud::video::stitcher::v1::ListCdnKeysRequest request); @@ -205,10 +215,27 @@ class VideoStitcherServiceConnection { DeleteCdnKey( google::cloud::video::stitcher::v1::DeleteCdnKeyRequest const& request); + virtual StatusOr DeleteCdnKey( + ExperimentalTag, NoAwaitTag, + google::cloud::video::stitcher::v1::DeleteCdnKeyRequest const& request); + + virtual future< + StatusOr> + DeleteCdnKey(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> UpdateCdnKey( google::cloud::video::stitcher::v1::UpdateCdnKeyRequest const& request); + virtual StatusOr UpdateCdnKey( + ExperimentalTag, NoAwaitTag, + google::cloud::video::stitcher::v1::UpdateCdnKeyRequest const& request); + + virtual future> + UpdateCdnKey(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StatusOr CreateVodSession( google::cloud::video::stitcher::v1::CreateVodSessionRequest const& @@ -249,6 +276,13 @@ class VideoStitcherServiceConnection { CreateSlate( google::cloud::video::stitcher::v1::CreateSlateRequest const& request); + virtual StatusOr CreateSlate( + ExperimentalTag, NoAwaitTag, + google::cloud::video::stitcher::v1::CreateSlateRequest const& request); + + virtual future> + CreateSlate(ExperimentalTag, google::longrunning::Operation const& operation); + virtual StreamRange ListSlates( google::cloud::video::stitcher::v1::ListSlatesRequest request); @@ -259,11 +293,26 @@ class VideoStitcherServiceConnection { UpdateSlate( google::cloud::video::stitcher::v1::UpdateSlateRequest const& request); + virtual StatusOr UpdateSlate( + ExperimentalTag, NoAwaitTag, + google::cloud::video::stitcher::v1::UpdateSlateRequest const& request); + + virtual future> + UpdateSlate(ExperimentalTag, google::longrunning::Operation const& operation); + virtual future< StatusOr> DeleteSlate( google::cloud::video::stitcher::v1::DeleteSlateRequest const& request); + virtual StatusOr DeleteSlate( + ExperimentalTag, NoAwaitTag, + google::cloud::video::stitcher::v1::DeleteSlateRequest const& request); + + virtual future< + StatusOr> + DeleteSlate(ExperimentalTag, google::longrunning::Operation const& operation); + virtual StatusOr CreateLiveSession( google::cloud::video::stitcher::v1::CreateLiveSessionRequest const& @@ -278,6 +327,15 @@ class VideoStitcherServiceConnection { google::cloud::video::stitcher::v1::CreateLiveConfigRequest const& request); + virtual StatusOr CreateLiveConfig( + ExperimentalTag, NoAwaitTag, + google::cloud::video::stitcher::v1::CreateLiveConfigRequest const& + request); + + virtual future> + CreateLiveConfig(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StreamRange ListLiveConfigs( google::cloud::video::stitcher::v1::ListLiveConfigsRequest request); @@ -292,16 +350,44 @@ class VideoStitcherServiceConnection { google::cloud::video::stitcher::v1::DeleteLiveConfigRequest const& request); + virtual StatusOr DeleteLiveConfig( + ExperimentalTag, NoAwaitTag, + google::cloud::video::stitcher::v1::DeleteLiveConfigRequest const& + request); + + virtual future< + StatusOr> + DeleteLiveConfig(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> UpdateLiveConfig( google::cloud::video::stitcher::v1::UpdateLiveConfigRequest const& request); + virtual StatusOr UpdateLiveConfig( + ExperimentalTag, NoAwaitTag, + google::cloud::video::stitcher::v1::UpdateLiveConfigRequest const& + request); + + virtual future> + UpdateLiveConfig(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> CreateVodConfig( google::cloud::video::stitcher::v1::CreateVodConfigRequest const& request); + virtual StatusOr CreateVodConfig( + ExperimentalTag, NoAwaitTag, + google::cloud::video::stitcher::v1::CreateVodConfigRequest const& + request); + + virtual future> + CreateVodConfig(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StreamRange ListVodConfigs( google::cloud::video::stitcher::v1::ListVodConfigsRequest request); @@ -315,10 +401,29 @@ class VideoStitcherServiceConnection { google::cloud::video::stitcher::v1::DeleteVodConfigRequest const& request); + virtual StatusOr DeleteVodConfig( + ExperimentalTag, NoAwaitTag, + google::cloud::video::stitcher::v1::DeleteVodConfigRequest const& + request); + + virtual future< + StatusOr> + DeleteVodConfig(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> UpdateVodConfig( google::cloud::video::stitcher::v1::UpdateVodConfigRequest const& request); + + virtual StatusOr UpdateVodConfig( + ExperimentalTag, NoAwaitTag, + google::cloud::video::stitcher::v1::UpdateVodConfigRequest const& + request); + + virtual future> + UpdateVodConfig(ExperimentalTag, + google::longrunning::Operation const& operation); }; /** diff --git a/google/cloud/video/transcoder/v1/transcoder_connection.h b/google/cloud/video/transcoder/v1/transcoder_connection.h index ba26962f261d0..ed23a8846ad36 100644 --- a/google/cloud/video/transcoder/v1/transcoder_connection.h +++ b/google/cloud/video/transcoder/v1/transcoder_connection.h @@ -22,6 +22,7 @@ #include "google/cloud/video/transcoder/v1/internal/transcoder_retry_traits.h" #include "google/cloud/video/transcoder/v1/transcoder_connection_idempotency_policy.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/internal/retry_policy_impl.h" #include "google/cloud/options.h" #include "google/cloud/status_or.h" diff --git a/google/cloud/videointelligence/v1/internal/video_intelligence_connection_impl.cc b/google/cloud/videointelligence/v1/internal/video_intelligence_connection_impl.cc index cda89a81ce696..e146c812d5886 100644 --- a/google/cloud/videointelligence/v1/internal/video_intelligence_connection_impl.cc +++ b/google/cloud/videointelligence/v1/internal/video_intelligence_connection_impl.cc @@ -112,6 +112,60 @@ VideoIntelligenceServiceConnectionImpl::AnnotateVideo( polling_policy(*current), __func__); } +StatusOr +VideoIntelligenceServiceConnectionImpl::AnnotateVideo( + ExperimentalTag, NoAwaitTag, + google::cloud::videointelligence::v1::AnnotateVideoRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->AnnotateVideo(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::videointelligence::v1::AnnotateVideoRequest const& + request) { + return stub_->AnnotateVideo(context, options, request); + }, + *current, request, __func__); +} + +future> +VideoIntelligenceServiceConnectionImpl::AnnotateVideo( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to AnnotateVideo", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::videointelligence::v1::AnnotateVideoResponse>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::videointelligence::v1::AnnotateVideoResponse>, + polling_policy(*current), __func__); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace videointelligence_v1_internal } // namespace cloud diff --git a/google/cloud/videointelligence/v1/internal/video_intelligence_connection_impl.h b/google/cloud/videointelligence/v1/internal/video_intelligence_connection_impl.h index bfc99ab7bb71a..191a6281f6476 100644 --- a/google/cloud/videointelligence/v1/internal/video_intelligence_connection_impl.h +++ b/google/cloud/videointelligence/v1/internal/video_intelligence_connection_impl.h @@ -58,6 +58,15 @@ class VideoIntelligenceServiceConnectionImpl google::cloud::videointelligence::v1::AnnotateVideoRequest const& request) override; + StatusOr AnnotateVideo( + ExperimentalTag, NoAwaitTag, + google::cloud::videointelligence::v1::AnnotateVideoRequest const& request) + override; + + future> + AnnotateVideo(ExperimentalTag, + google::longrunning::Operation const& operation) override; + private: std::unique_ptr background_; std::shared_ptr diff --git a/google/cloud/videointelligence/v1/internal/video_intelligence_tracing_connection.cc b/google/cloud/videointelligence/v1/internal/video_intelligence_tracing_connection.cc index cf926e6f19b67..8b0f71fbcb7c8 100644 --- a/google/cloud/videointelligence/v1/internal/video_intelligence_tracing_connection.cc +++ b/google/cloud/videointelligence/v1/internal/video_intelligence_tracing_connection.cc @@ -45,6 +45,29 @@ VideoIntelligenceServiceTracingConnection::AnnotateVideo( return internal::EndSpan(std::move(span), child_->AnnotateVideo(request)); } +StatusOr +VideoIntelligenceServiceTracingConnection::AnnotateVideo( + ExperimentalTag, NoAwaitTag, + google::cloud::videointelligence::v1::AnnotateVideoRequest const& request) { + auto span = internal::MakeSpan( + "videointelligence_v1::VideoIntelligenceServiceConnection::" + "AnnotateVideo"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->AnnotateVideo(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +VideoIntelligenceServiceTracingConnection::AnnotateVideo( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "videointelligence_v1::VideoIntelligenceServiceConnection::" + "AnnotateVideo"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->AnnotateVideo(ExperimentalTag{}, operation)); +} + #endif // GOOGLE_CLOUD_CPP_HAVE_OPENTELEMETRY std::shared_ptr diff --git a/google/cloud/videointelligence/v1/internal/video_intelligence_tracing_connection.h b/google/cloud/videointelligence/v1/internal/video_intelligence_tracing_connection.h index 4a2b74c713dd6..c2a2bd1d7ef5f 100644 --- a/google/cloud/videointelligence/v1/internal/video_intelligence_tracing_connection.h +++ b/google/cloud/videointelligence/v1/internal/video_intelligence_tracing_connection.h @@ -46,6 +46,15 @@ class VideoIntelligenceServiceTracingConnection google::cloud::videointelligence::v1::AnnotateVideoRequest const& request) override; + StatusOr AnnotateVideo( + ExperimentalTag, NoAwaitTag, + google::cloud::videointelligence::v1::AnnotateVideoRequest const& request) + override; + + future> + AnnotateVideo(ExperimentalTag, + google::longrunning::Operation const& operation) override; + private: std::shared_ptr child_; diff --git a/google/cloud/videointelligence/v1/mocks/mock_video_intelligence_connection.h b/google/cloud/videointelligence/v1/mocks/mock_video_intelligence_connection.h index 8da58bd789231..c95807baa12ff 100644 --- a/google/cloud/videointelligence/v1/mocks/mock_video_intelligence_connection.h +++ b/google/cloud/videointelligence/v1/mocks/mock_video_intelligence_connection.h @@ -53,6 +53,19 @@ class MockVideoIntelligenceServiceConnection (google::cloud::videointelligence::v1::AnnotateVideoRequest const& request), (override)); + + MOCK_METHOD(StatusOr, AnnotateVideo, + (ExperimentalTag, NoAwaitTag, + google::cloud::videointelligence::v1::AnnotateVideoRequest const& + request), + (override)); + + MOCK_METHOD(future>, + AnnotateVideo, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); }; GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END diff --git a/google/cloud/videointelligence/v1/video_intelligence_connection.cc b/google/cloud/videointelligence/v1/video_intelligence_connection.cc index 4b504e0437029..74aa47893dc23 100644 --- a/google/cloud/videointelligence/v1/video_intelligence_connection.cc +++ b/google/cloud/videointelligence/v1/video_intelligence_connection.cc @@ -46,6 +46,22 @@ VideoIntelligenceServiceConnection::AnnotateVideo( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +VideoIntelligenceServiceConnection::AnnotateVideo( + ExperimentalTag, NoAwaitTag, + google::cloud::videointelligence::v1::AnnotateVideoRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +VideoIntelligenceServiceConnection::AnnotateVideo( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + std::shared_ptr MakeVideoIntelligenceServiceConnection(Options options) { internal::CheckExpectedOptions AnnotateVideo( + ExperimentalTag, NoAwaitTag, + google::cloud::videointelligence::v1::AnnotateVideoRequest const& + request); + + virtual future< + StatusOr> + AnnotateVideo(ExperimentalTag, + google::longrunning::Operation const& operation); }; /** diff --git a/google/cloud/vision/v1/image_annotator_connection.cc b/google/cloud/vision/v1/image_annotator_connection.cc index e7e23ecb55956..607ab066adb31 100644 --- a/google/cloud/vision/v1/image_annotator_connection.cc +++ b/google/cloud/vision/v1/image_annotator_connection.cc @@ -57,6 +57,22 @@ ImageAnnotatorConnection::AsyncBatchAnnotateImages( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +ImageAnnotatorConnection::AsyncBatchAnnotateImages( + ExperimentalTag, NoAwaitTag, + google::cloud::vision::v1::AsyncBatchAnnotateImagesRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +ImageAnnotatorConnection::AsyncBatchAnnotateImages( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> ImageAnnotatorConnection::AsyncBatchAnnotateFiles( google::cloud::vision::v1::AsyncBatchAnnotateFilesRequest const&) { @@ -65,6 +81,22 @@ ImageAnnotatorConnection::AsyncBatchAnnotateFiles( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +ImageAnnotatorConnection::AsyncBatchAnnotateFiles( + ExperimentalTag, NoAwaitTag, + google::cloud::vision::v1::AsyncBatchAnnotateFilesRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +ImageAnnotatorConnection::AsyncBatchAnnotateFiles( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + std::shared_ptr MakeImageAnnotatorConnection( Options options) { internal::CheckExpectedOptions AsyncBatchAnnotateImages( + ExperimentalTag, NoAwaitTag, + google::cloud::vision::v1::AsyncBatchAnnotateImagesRequest const& + request); + + virtual future< + StatusOr> + AsyncBatchAnnotateImages(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future< StatusOr> AsyncBatchAnnotateFiles( google::cloud::vision::v1::AsyncBatchAnnotateFilesRequest const& request); + + virtual StatusOr AsyncBatchAnnotateFiles( + ExperimentalTag, NoAwaitTag, + google::cloud::vision::v1::AsyncBatchAnnotateFilesRequest const& request); + + virtual future< + StatusOr> + AsyncBatchAnnotateFiles(ExperimentalTag, + google::longrunning::Operation const& operation); }; /** diff --git a/google/cloud/vision/v1/internal/image_annotator_connection_impl.cc b/google/cloud/vision/v1/internal/image_annotator_connection_impl.cc index 93844fd540fbe..54e52cf5953cc 100644 --- a/google/cloud/vision/v1/internal/image_annotator_connection_impl.cc +++ b/google/cloud/vision/v1/internal/image_annotator_connection_impl.cc @@ -133,6 +133,59 @@ ImageAnnotatorConnectionImpl::AsyncBatchAnnotateImages( polling_policy(*current), __func__); } +StatusOr +ImageAnnotatorConnectionImpl::AsyncBatchAnnotateImages( + ExperimentalTag, NoAwaitTag, + google::cloud::vision::v1::AsyncBatchAnnotateImagesRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->AsyncBatchAnnotateImages(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::vision::v1::AsyncBatchAnnotateImagesRequest const& + request) { + return stub_->AsyncBatchAnnotateImages(context, options, request); + }, + *current, request, __func__); +} + +future> +ImageAnnotatorConnectionImpl::AsyncBatchAnnotateImages( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to AsyncBatchAnnotateImages", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::vision::v1::AsyncBatchAnnotateImagesResponse>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::vision::v1::AsyncBatchAnnotateImagesResponse>, + polling_policy(*current), __func__); +} + future> ImageAnnotatorConnectionImpl::AsyncBatchAnnotateFiles( google::cloud::vision::v1::AsyncBatchAnnotateFilesRequest const& request) { @@ -173,6 +226,59 @@ ImageAnnotatorConnectionImpl::AsyncBatchAnnotateFiles( polling_policy(*current), __func__); } +StatusOr +ImageAnnotatorConnectionImpl::AsyncBatchAnnotateFiles( + ExperimentalTag, NoAwaitTag, + google::cloud::vision::v1::AsyncBatchAnnotateFilesRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->AsyncBatchAnnotateFiles(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::vision::v1::AsyncBatchAnnotateFilesRequest const& + request) { + return stub_->AsyncBatchAnnotateFiles(context, options, request); + }, + *current, request, __func__); +} + +future> +ImageAnnotatorConnectionImpl::AsyncBatchAnnotateFiles( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to AsyncBatchAnnotateFiles", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::vision::v1::AsyncBatchAnnotateFilesResponse>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::vision::v1::AsyncBatchAnnotateFilesResponse>, + polling_policy(*current), __func__); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace vision_v1_internal } // namespace cloud diff --git a/google/cloud/vision/v1/internal/image_annotator_connection_impl.h b/google/cloud/vision/v1/internal/image_annotator_connection_impl.h index 46facda2a9ba3..30674afb363ce 100644 --- a/google/cloud/vision/v1/internal/image_annotator_connection_impl.h +++ b/google/cloud/vision/v1/internal/image_annotator_connection_impl.h @@ -65,11 +65,31 @@ class ImageAnnotatorConnectionImpl google::cloud::vision::v1::AsyncBatchAnnotateImagesRequest const& request) override; + StatusOr AsyncBatchAnnotateImages( + ExperimentalTag, NoAwaitTag, + google::cloud::vision::v1::AsyncBatchAnnotateImagesRequest const& request) + override; + + future> + AsyncBatchAnnotateImages( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> AsyncBatchAnnotateFiles( google::cloud::vision::v1::AsyncBatchAnnotateFilesRequest const& request) override; + StatusOr AsyncBatchAnnotateFiles( + ExperimentalTag, NoAwaitTag, + google::cloud::vision::v1::AsyncBatchAnnotateFilesRequest const& request) + override; + + future> + AsyncBatchAnnotateFiles( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + private: std::unique_ptr background_; std::shared_ptr stub_; diff --git a/google/cloud/vision/v1/internal/image_annotator_tracing_connection.cc b/google/cloud/vision/v1/internal/image_annotator_tracing_connection.cc index 632b60dd43d19..d062fa402f3e0 100644 --- a/google/cloud/vision/v1/internal/image_annotator_tracing_connection.cc +++ b/google/cloud/vision/v1/internal/image_annotator_tracing_connection.cc @@ -60,6 +60,28 @@ ImageAnnotatorTracingConnection::AsyncBatchAnnotateImages( child_->AsyncBatchAnnotateImages(request)); } +StatusOr +ImageAnnotatorTracingConnection::AsyncBatchAnnotateImages( + ExperimentalTag, NoAwaitTag, + google::cloud::vision::v1::AsyncBatchAnnotateImagesRequest const& request) { + auto span = internal::MakeSpan( + "vision_v1::ImageAnnotatorConnection::AsyncBatchAnnotateImages"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->AsyncBatchAnnotateImages(ExperimentalTag{}, NoAwaitTag{}, + request)); +} + +future> +ImageAnnotatorTracingConnection::AsyncBatchAnnotateImages( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "vision_v1::ImageAnnotatorConnection::AsyncBatchAnnotateImages"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->AsyncBatchAnnotateImages( + ExperimentalTag{}, operation)); +} + future> ImageAnnotatorTracingConnection::AsyncBatchAnnotateFiles( google::cloud::vision::v1::AsyncBatchAnnotateFilesRequest const& request) { @@ -70,6 +92,28 @@ ImageAnnotatorTracingConnection::AsyncBatchAnnotateFiles( child_->AsyncBatchAnnotateFiles(request)); } +StatusOr +ImageAnnotatorTracingConnection::AsyncBatchAnnotateFiles( + ExperimentalTag, NoAwaitTag, + google::cloud::vision::v1::AsyncBatchAnnotateFilesRequest const& request) { + auto span = internal::MakeSpan( + "vision_v1::ImageAnnotatorConnection::AsyncBatchAnnotateFiles"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->AsyncBatchAnnotateFiles(ExperimentalTag{}, NoAwaitTag{}, + request)); +} + +future> +ImageAnnotatorTracingConnection::AsyncBatchAnnotateFiles( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "vision_v1::ImageAnnotatorConnection::AsyncBatchAnnotateFiles"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->AsyncBatchAnnotateFiles( + ExperimentalTag{}, operation)); +} + #endif // GOOGLE_CLOUD_CPP_HAVE_OPENTELEMETRY std::shared_ptr diff --git a/google/cloud/vision/v1/internal/image_annotator_tracing_connection.h b/google/cloud/vision/v1/internal/image_annotator_tracing_connection.h index 2bbe24cd6b2ca..2f2727b08cb40 100644 --- a/google/cloud/vision/v1/internal/image_annotator_tracing_connection.h +++ b/google/cloud/vision/v1/internal/image_annotator_tracing_connection.h @@ -54,11 +54,31 @@ class ImageAnnotatorTracingConnection google::cloud::vision::v1::AsyncBatchAnnotateImagesRequest const& request) override; + StatusOr AsyncBatchAnnotateImages( + ExperimentalTag, NoAwaitTag, + google::cloud::vision::v1::AsyncBatchAnnotateImagesRequest const& request) + override; + + future> + AsyncBatchAnnotateImages( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> AsyncBatchAnnotateFiles( google::cloud::vision::v1::AsyncBatchAnnotateFilesRequest const& request) override; + StatusOr AsyncBatchAnnotateFiles( + ExperimentalTag, NoAwaitTag, + google::cloud::vision::v1::AsyncBatchAnnotateFilesRequest const& request) + override; + + future> + AsyncBatchAnnotateFiles( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + private: std::shared_ptr child_; }; diff --git a/google/cloud/vision/v1/internal/product_search_connection_impl.cc b/google/cloud/vision/v1/internal/product_search_connection_impl.cc index 73a8fd92fbab5..a3ee42118e5a0 100644 --- a/google/cloud/vision/v1/internal/product_search_connection_impl.cc +++ b/google/cloud/vision/v1/internal/product_search_connection_impl.cc @@ -427,6 +427,59 @@ ProductSearchConnectionImpl::ImportProductSets( polling_policy(*current), __func__); } +StatusOr +ProductSearchConnectionImpl::ImportProductSets( + ExperimentalTag, NoAwaitTag, + google::cloud::vision::v1::ImportProductSetsRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->ImportProductSets(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::vision::v1::ImportProductSetsRequest const& request) { + return stub_->ImportProductSets(context, options, request); + }, + *current, request, __func__); +} + +future> +ProductSearchConnectionImpl::ImportProductSets( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to ImportProductSets", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::vision::v1::ImportProductSetsResponse>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::vision::v1::ImportProductSetsResponse>, + polling_policy(*current), __func__); +} + future> ProductSearchConnectionImpl::PurgeProducts( google::cloud::vision::v1::PurgeProductsRequest const& request) { @@ -466,6 +519,58 @@ ProductSearchConnectionImpl::PurgeProducts( polling_policy(*current), __func__); } +StatusOr +ProductSearchConnectionImpl::PurgeProducts( + ExperimentalTag, NoAwaitTag, + google::cloud::vision::v1::PurgeProductsRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->PurgeProducts(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::vision::v1::PurgeProductsRequest const& request) { + return stub_->PurgeProducts(context, options, request); + }, + *current, request, __func__); +} + +future> +ProductSearchConnectionImpl::PurgeProducts( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to PurgeProducts", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::vision::v1::BatchOperationMetadata>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::cloud::vision::v1::BatchOperationMetadata>, + polling_policy(*current), __func__); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace vision_v1_internal } // namespace cloud diff --git a/google/cloud/vision/v1/internal/product_search_connection_impl.h b/google/cloud/vision/v1/internal/product_search_connection_impl.h index c88937fc76ab1..5df36a70e2654 100644 --- a/google/cloud/vision/v1/internal/product_search_connection_impl.h +++ b/google/cloud/vision/v1/internal/product_search_connection_impl.h @@ -115,10 +115,27 @@ class ProductSearchConnectionImpl : public vision_v1::ProductSearchConnection { ImportProductSets(google::cloud::vision::v1::ImportProductSetsRequest const& request) override; + StatusOr ImportProductSets( + ExperimentalTag, NoAwaitTag, + google::cloud::vision::v1::ImportProductSetsRequest const& request) + override; + + future> + ImportProductSets(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> PurgeProducts( google::cloud::vision::v1::PurgeProductsRequest const& request) override; + StatusOr PurgeProducts( + ExperimentalTag, NoAwaitTag, + google::cloud::vision::v1::PurgeProductsRequest const& request) override; + + future> + PurgeProducts(ExperimentalTag, + google::longrunning::Operation const& operation) override; + private: std::unique_ptr background_; std::shared_ptr stub_; diff --git a/google/cloud/vision/v1/internal/product_search_tracing_connection.cc b/google/cloud/vision/v1/internal/product_search_tracing_connection.cc index b1eff255eb6f1..86ba0b1124c9a 100644 --- a/google/cloud/vision/v1/internal/product_search_tracing_connection.cc +++ b/google/cloud/vision/v1/internal/product_search_tracing_connection.cc @@ -200,6 +200,28 @@ ProductSearchTracingConnection::ImportProductSets( return internal::EndSpan(std::move(span), child_->ImportProductSets(request)); } +StatusOr +ProductSearchTracingConnection::ImportProductSets( + ExperimentalTag, NoAwaitTag, + google::cloud::vision::v1::ImportProductSetsRequest const& request) { + auto span = internal::MakeSpan( + "vision_v1::ProductSearchConnection::ImportProductSets"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->ImportProductSets(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +ProductSearchTracingConnection::ImportProductSets( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "vision_v1::ProductSearchConnection::ImportProductSets"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->ImportProductSets(ExperimentalTag{}, operation)); +} + future> ProductSearchTracingConnection::PurgeProducts( google::cloud::vision::v1::PurgeProductsRequest const& request) { @@ -209,6 +231,27 @@ ProductSearchTracingConnection::PurgeProducts( return internal::EndSpan(std::move(span), child_->PurgeProducts(request)); } +StatusOr +ProductSearchTracingConnection::PurgeProducts( + ExperimentalTag, NoAwaitTag, + google::cloud::vision::v1::PurgeProductsRequest const& request) { + auto span = + internal::MakeSpan("vision_v1::ProductSearchConnection::PurgeProducts"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->PurgeProducts(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +ProductSearchTracingConnection::PurgeProducts( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = + internal::MakeSpan("vision_v1::ProductSearchConnection::PurgeProducts"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->PurgeProducts(ExperimentalTag{}, operation)); +} + #endif // GOOGLE_CLOUD_CPP_HAVE_OPENTELEMETRY std::shared_ptr diff --git a/google/cloud/vision/v1/internal/product_search_tracing_connection.h b/google/cloud/vision/v1/internal/product_search_tracing_connection.h index 2d15fdac944df..09ebb381ba2d3 100644 --- a/google/cloud/vision/v1/internal/product_search_tracing_connection.h +++ b/google/cloud/vision/v1/internal/product_search_tracing_connection.h @@ -104,10 +104,27 @@ class ProductSearchTracingConnection ImportProductSets(google::cloud::vision::v1::ImportProductSetsRequest const& request) override; + StatusOr ImportProductSets( + ExperimentalTag, NoAwaitTag, + google::cloud::vision::v1::ImportProductSetsRequest const& request) + override; + + future> + ImportProductSets(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> PurgeProducts( google::cloud::vision::v1::PurgeProductsRequest const& request) override; + StatusOr PurgeProducts( + ExperimentalTag, NoAwaitTag, + google::cloud::vision::v1::PurgeProductsRequest const& request) override; + + future> + PurgeProducts(ExperimentalTag, + google::longrunning::Operation const& operation) override; + private: std::shared_ptr child_; }; diff --git a/google/cloud/vision/v1/mocks/mock_image_annotator_connection.h b/google/cloud/vision/v1/mocks/mock_image_annotator_connection.h index 27f7007e2d0a8..b0b1a6960b0db 100644 --- a/google/cloud/vision/v1/mocks/mock_image_annotator_connection.h +++ b/google/cloud/vision/v1/mocks/mock_image_annotator_connection.h @@ -66,6 +66,20 @@ class MockImageAnnotatorConnection request), (override)); + MOCK_METHOD(StatusOr, + AsyncBatchAnnotateImages, + (ExperimentalTag, NoAwaitTag, + google::cloud::vision::v1::AsyncBatchAnnotateImagesRequest const& + request), + (override)); + + MOCK_METHOD(future>, + AsyncBatchAnnotateImages, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future< StatusOr>, @@ -73,6 +87,19 @@ class MockImageAnnotatorConnection (google::cloud::vision::v1::AsyncBatchAnnotateFilesRequest const& request), (override)); + + MOCK_METHOD(StatusOr, AsyncBatchAnnotateFiles, + (ExperimentalTag, NoAwaitTag, + google::cloud::vision::v1::AsyncBatchAnnotateFilesRequest const& + request), + (override)); + + MOCK_METHOD( + future< + StatusOr>, + AsyncBatchAnnotateFiles, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); }; GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END diff --git a/google/cloud/vision/v1/mocks/mock_product_search_connection.h b/google/cloud/vision/v1/mocks/mock_product_search_connection.h index a758087cda3ad..6f3797aeba1b1 100644 --- a/google/cloud/vision/v1/mocks/mock_product_search_connection.h +++ b/google/cloud/vision/v1/mocks/mock_product_search_connection.h @@ -133,11 +133,34 @@ class MockProductSearchConnection : public vision_v1::ProductSearchConnection { (google::cloud::vision::v1::ImportProductSetsRequest const& request), (override)); + MOCK_METHOD( + StatusOr, ImportProductSets, + (ExperimentalTag, NoAwaitTag, + google::cloud::vision::v1::ImportProductSetsRequest const& request), + (override)); + + MOCK_METHOD( + future>, + ImportProductSets, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, PurgeProducts, (google::cloud::vision::v1::PurgeProductsRequest const& request), (override)); + + MOCK_METHOD(StatusOr, PurgeProducts, + (ExperimentalTag, NoAwaitTag, + google::cloud::vision::v1::PurgeProductsRequest const& request), + (override)); + + MOCK_METHOD( + future>, + PurgeProducts, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); }; GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END diff --git a/google/cloud/vision/v1/product_search_connection.cc b/google/cloud/vision/v1/product_search_connection.cc index 91d441e0a4399..cce67e6b007ab 100644 --- a/google/cloud/vision/v1/product_search_connection.cc +++ b/google/cloud/vision/v1/product_search_connection.cc @@ -151,6 +151,22 @@ ProductSearchConnection::ImportProductSets( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +ProductSearchConnection::ImportProductSets( + ExperimentalTag, NoAwaitTag, + google::cloud::vision::v1::ImportProductSetsRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +ProductSearchConnection::ImportProductSets( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> ProductSearchConnection::PurgeProducts( google::cloud::vision::v1::PurgeProductsRequest const&) { @@ -159,6 +175,21 @@ ProductSearchConnection::PurgeProducts( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr ProductSearchConnection::PurgeProducts( + ExperimentalTag, NoAwaitTag, + google::cloud::vision::v1::PurgeProductsRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +ProductSearchConnection::PurgeProducts(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + std::shared_ptr MakeProductSearchConnection( Options options) { internal::CheckExpectedOptions ImportProductSets( + ExperimentalTag, NoAwaitTag, + google::cloud::vision::v1::ImportProductSetsRequest const& request); + + virtual future> + ImportProductSets(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> PurgeProducts(google::cloud::vision::v1::PurgeProductsRequest const& request); + + virtual StatusOr PurgeProducts( + ExperimentalTag, NoAwaitTag, + google::cloud::vision::v1::PurgeProductsRequest const& request); + + virtual future> + PurgeProducts(ExperimentalTag, + google::longrunning::Operation const& operation); }; /** diff --git a/google/cloud/vmmigration/v1/internal/vm_migration_connection_impl.cc b/google/cloud/vmmigration/v1/internal/vm_migration_connection_impl.cc index 598a65aa08d7b..b45cc77bb09ca 100644 --- a/google/cloud/vmmigration/v1/internal/vm_migration_connection_impl.cc +++ b/google/cloud/vmmigration/v1/internal/vm_migration_connection_impl.cc @@ -151,6 +151,58 @@ VmMigrationConnectionImpl::CreateSource( polling_policy(*current), __func__); } +StatusOr +VmMigrationConnectionImpl::CreateSource( + ExperimentalTag, NoAwaitTag, + google::cloud::vmmigration::v1::CreateSourceRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateSource(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::vmmigration::v1::CreateSourceRequest const& request) { + return stub_->CreateSource(context, options, request); + }, + *current, request, __func__); +} + +future> +VmMigrationConnectionImpl::CreateSource( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to CreateSource", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::vmmigration::v1::Source>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::vmmigration::v1::Source>, + polling_policy(*current), __func__); +} + future> VmMigrationConnectionImpl::UpdateSource( google::cloud::vmmigration::v1::UpdateSourceRequest const& request) { @@ -190,6 +242,58 @@ VmMigrationConnectionImpl::UpdateSource( polling_policy(*current), __func__); } +StatusOr +VmMigrationConnectionImpl::UpdateSource( + ExperimentalTag, NoAwaitTag, + google::cloud::vmmigration::v1::UpdateSourceRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UpdateSource(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::vmmigration::v1::UpdateSourceRequest const& request) { + return stub_->UpdateSource(context, options, request); + }, + *current, request, __func__); +} + +future> +VmMigrationConnectionImpl::UpdateSource( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to UpdateSource", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::vmmigration::v1::Source>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::vmmigration::v1::Source>, + polling_policy(*current), __func__); +} + future> VmMigrationConnectionImpl::DeleteSource( google::cloud::vmmigration::v1::DeleteSourceRequest const& request) { @@ -229,6 +333,59 @@ VmMigrationConnectionImpl::DeleteSource( polling_policy(*current), __func__); } +StatusOr +VmMigrationConnectionImpl::DeleteSource( + ExperimentalTag, NoAwaitTag, + google::cloud::vmmigration::v1::DeleteSourceRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteSource(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::vmmigration::v1::DeleteSourceRequest const& request) { + return stub_->DeleteSource(context, options, request); + }, + *current, request, __func__); +} + +future> +VmMigrationConnectionImpl::DeleteSource( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteSource", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::vmmigration::v1::OperationMetadata>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::cloud::vmmigration::v1::OperationMetadata>, + polling_policy(*current), __func__); +} + StatusOr VmMigrationConnectionImpl::FetchInventory( google::cloud::vmmigration::v1::FetchInventoryRequest const& request) { @@ -337,6 +494,61 @@ VmMigrationConnectionImpl::CreateUtilizationReport( polling_policy(*current), __func__); } +StatusOr +VmMigrationConnectionImpl::CreateUtilizationReport( + ExperimentalTag, NoAwaitTag, + google::cloud::vmmigration::v1::CreateUtilizationReportRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateUtilizationReport(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::vmmigration::v1::CreateUtilizationReportRequest const& + request) { + return stub_->CreateUtilizationReport(context, options, request); + }, + *current, request, __func__); +} + +future> +VmMigrationConnectionImpl::CreateUtilizationReport( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to CreateUtilizationReport", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::vmmigration::v1::UtilizationReport>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::vmmigration::v1::UtilizationReport>, + polling_policy(*current), __func__); +} + future> VmMigrationConnectionImpl::DeleteUtilizationReport( google::cloud::vmmigration::v1::DeleteUtilizationReportRequest const& @@ -378,6 +590,61 @@ VmMigrationConnectionImpl::DeleteUtilizationReport( polling_policy(*current), __func__); } +StatusOr +VmMigrationConnectionImpl::DeleteUtilizationReport( + ExperimentalTag, NoAwaitTag, + google::cloud::vmmigration::v1::DeleteUtilizationReportRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteUtilizationReport(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::vmmigration::v1::DeleteUtilizationReportRequest const& + request) { + return stub_->DeleteUtilizationReport(context, options, request); + }, + *current, request, __func__); +} + +future> +VmMigrationConnectionImpl::DeleteUtilizationReport( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteUtilizationReport", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::vmmigration::v1::OperationMetadata>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::cloud::vmmigration::v1::OperationMetadata>, + polling_policy(*current), __func__); +} + StreamRange VmMigrationConnectionImpl::ListDatacenterConnectors( google::cloud::vmmigration::v1::ListDatacenterConnectorsRequest request) { @@ -471,6 +738,60 @@ VmMigrationConnectionImpl::CreateDatacenterConnector( polling_policy(*current), __func__); } +StatusOr +VmMigrationConnectionImpl::CreateDatacenterConnector( + ExperimentalTag, NoAwaitTag, + google::cloud::vmmigration::v1::CreateDatacenterConnectorRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateDatacenterConnector(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::vmmigration::v1:: + CreateDatacenterConnectorRequest const& request) { + return stub_->CreateDatacenterConnector(context, options, request); + }, + *current, request, __func__); +} + +future> +VmMigrationConnectionImpl::CreateDatacenterConnector( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to CreateDatacenterConnector", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::vmmigration::v1::DatacenterConnector>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::vmmigration::v1::DatacenterConnector>, + polling_policy(*current), __func__); +} + future> VmMigrationConnectionImpl::DeleteDatacenterConnector( google::cloud::vmmigration::v1::DeleteDatacenterConnectorRequest const& @@ -511,24 +832,78 @@ VmMigrationConnectionImpl::DeleteDatacenterConnector( polling_policy(*current), __func__); } -future> -VmMigrationConnectionImpl::UpgradeAppliance( - google::cloud::vmmigration::v1::UpgradeApplianceRequest const& request) { +StatusOr +VmMigrationConnectionImpl::DeleteDatacenterConnector( + ExperimentalTag, NoAwaitTag, + google::cloud::vmmigration::v1::DeleteDatacenterConnectorRequest const& + request) { auto current = google::cloud::internal::SaveCurrentOptions(); - auto request_copy = request; - auto const idempotent = - idempotency_policy(*current)->UpgradeAppliance(request_copy); - return google::cloud::internal::AsyncLongRunningOperation< - google::cloud::vmmigration::v1::UpgradeApplianceResponse>( - background_->cq(), current, std::move(request_copy), - [stub = stub_]( - google::cloud::CompletionQueue& cq, - std::shared_ptr context, - google::cloud::internal::ImmutableOptions options, - google::cloud::vmmigration::v1::UpgradeApplianceRequest const& - request) { - return stub->AsyncUpgradeAppliance(cq, std::move(context), - std::move(options), request); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteDatacenterConnector(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::vmmigration::v1:: + DeleteDatacenterConnectorRequest const& request) { + return stub_->DeleteDatacenterConnector(context, options, request); + }, + *current, request, __func__); +} + +future> +VmMigrationConnectionImpl::DeleteDatacenterConnector( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteDatacenterConnector", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::vmmigration::v1::OperationMetadata>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::cloud::vmmigration::v1::OperationMetadata>, + polling_policy(*current), __func__); +} + +future> +VmMigrationConnectionImpl::UpgradeAppliance( + google::cloud::vmmigration::v1::UpgradeApplianceRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + auto request_copy = request; + auto const idempotent = + idempotency_policy(*current)->UpgradeAppliance(request_copy); + return google::cloud::internal::AsyncLongRunningOperation< + google::cloud::vmmigration::v1::UpgradeApplianceResponse>( + background_->cq(), current, std::move(request_copy), + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::vmmigration::v1::UpgradeApplianceRequest const& + request) { + return stub->AsyncUpgradeAppliance(cq, std::move(context), + std::move(options), request); }, [stub = stub_](google::cloud::CompletionQueue& cq, std::shared_ptr context, @@ -551,6 +926,59 @@ VmMigrationConnectionImpl::UpgradeAppliance( polling_policy(*current), __func__); } +StatusOr +VmMigrationConnectionImpl::UpgradeAppliance( + ExperimentalTag, NoAwaitTag, + google::cloud::vmmigration::v1::UpgradeApplianceRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UpgradeAppliance(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::vmmigration::v1::UpgradeApplianceRequest const& + request) { + return stub_->UpgradeAppliance(context, options, request); + }, + *current, request, __func__); +} + +future> +VmMigrationConnectionImpl::UpgradeAppliance( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to UpgradeAppliance", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::vmmigration::v1::UpgradeApplianceResponse>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::vmmigration::v1::UpgradeApplianceResponse>, + polling_policy(*current), __func__); +} + future> VmMigrationConnectionImpl::CreateMigratingVm( google::cloud::vmmigration::v1::CreateMigratingVmRequest const& request) { @@ -591,6 +1019,59 @@ VmMigrationConnectionImpl::CreateMigratingVm( polling_policy(*current), __func__); } +StatusOr +VmMigrationConnectionImpl::CreateMigratingVm( + ExperimentalTag, NoAwaitTag, + google::cloud::vmmigration::v1::CreateMigratingVmRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateMigratingVm(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::vmmigration::v1::CreateMigratingVmRequest const& + request) { + return stub_->CreateMigratingVm(context, options, request); + }, + *current, request, __func__); +} + +future> +VmMigrationConnectionImpl::CreateMigratingVm( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to CreateMigratingVm", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::vmmigration::v1::MigratingVm>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::vmmigration::v1::MigratingVm>, + polling_policy(*current), __func__); +} + StreamRange VmMigrationConnectionImpl::ListMigratingVms( google::cloud::vmmigration::v1::ListMigratingVmsRequest request) { @@ -681,6 +1162,59 @@ VmMigrationConnectionImpl::UpdateMigratingVm( polling_policy(*current), __func__); } +StatusOr +VmMigrationConnectionImpl::UpdateMigratingVm( + ExperimentalTag, NoAwaitTag, + google::cloud::vmmigration::v1::UpdateMigratingVmRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UpdateMigratingVm(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::vmmigration::v1::UpdateMigratingVmRequest const& + request) { + return stub_->UpdateMigratingVm(context, options, request); + }, + *current, request, __func__); +} + +future> +VmMigrationConnectionImpl::UpdateMigratingVm( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to UpdateMigratingVm", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::vmmigration::v1::MigratingVm>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::vmmigration::v1::MigratingVm>, + polling_policy(*current), __func__); +} + future> VmMigrationConnectionImpl::DeleteMigratingVm( google::cloud::vmmigration::v1::DeleteMigratingVmRequest const& request) { @@ -721,6 +1255,59 @@ VmMigrationConnectionImpl::DeleteMigratingVm( polling_policy(*current), __func__); } +StatusOr +VmMigrationConnectionImpl::DeleteMigratingVm( + ExperimentalTag, NoAwaitTag, + google::cloud::vmmigration::v1::DeleteMigratingVmRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteMigratingVm(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::vmmigration::v1::DeleteMigratingVmRequest const& + request) { + return stub_->DeleteMigratingVm(context, options, request); + }, + *current, request, __func__); +} + +future> +VmMigrationConnectionImpl::DeleteMigratingVm( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteMigratingVm", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::vmmigration::v1::OperationMetadata>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::cloud::vmmigration::v1::OperationMetadata>, + polling_policy(*current), __func__); +} + future> VmMigrationConnectionImpl::StartMigration( google::cloud::vmmigration::v1::StartMigrationRequest const& request) { @@ -761,6 +1348,59 @@ VmMigrationConnectionImpl::StartMigration( polling_policy(*current), __func__); } +StatusOr +VmMigrationConnectionImpl::StartMigration( + ExperimentalTag, NoAwaitTag, + google::cloud::vmmigration::v1::StartMigrationRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->StartMigration(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::vmmigration::v1::StartMigrationRequest const& + request) { + return stub_->StartMigration(context, options, request); + }, + *current, request, __func__); +} + +future> +VmMigrationConnectionImpl::StartMigration( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to StartMigration", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::vmmigration::v1::StartMigrationResponse>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::vmmigration::v1::StartMigrationResponse>, + polling_policy(*current), __func__); +} + future> VmMigrationConnectionImpl::ResumeMigration( google::cloud::vmmigration::v1::ResumeMigrationRequest const& request) { @@ -801,6 +1441,59 @@ VmMigrationConnectionImpl::ResumeMigration( polling_policy(*current), __func__); } +StatusOr +VmMigrationConnectionImpl::ResumeMigration( + ExperimentalTag, NoAwaitTag, + google::cloud::vmmigration::v1::ResumeMigrationRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->ResumeMigration(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::vmmigration::v1::ResumeMigrationRequest const& + request) { + return stub_->ResumeMigration(context, options, request); + }, + *current, request, __func__); +} + +future> +VmMigrationConnectionImpl::ResumeMigration( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to ResumeMigration", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::vmmigration::v1::ResumeMigrationResponse>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::vmmigration::v1::ResumeMigrationResponse>, + polling_policy(*current), __func__); +} + future> VmMigrationConnectionImpl::PauseMigration( google::cloud::vmmigration::v1::PauseMigrationRequest const& request) { @@ -837,7 +1530,60 @@ VmMigrationConnectionImpl::PauseMigration( }, &google::cloud::internal::ExtractLongRunningResultResponse< google::cloud::vmmigration::v1::PauseMigrationResponse>, - retry_policy(*current), backoff_policy(*current), idempotent, + retry_policy(*current), backoff_policy(*current), idempotent, + polling_policy(*current), __func__); +} + +StatusOr +VmMigrationConnectionImpl::PauseMigration( + ExperimentalTag, NoAwaitTag, + google::cloud::vmmigration::v1::PauseMigrationRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->PauseMigration(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::vmmigration::v1::PauseMigrationRequest const& + request) { + return stub_->PauseMigration(context, options, request); + }, + *current, request, __func__); +} + +future> +VmMigrationConnectionImpl::PauseMigration( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to PauseMigration", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::vmmigration::v1::PauseMigrationResponse>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::vmmigration::v1::PauseMigrationResponse>, polling_policy(*current), __func__); } @@ -881,6 +1627,59 @@ VmMigrationConnectionImpl::FinalizeMigration( polling_policy(*current), __func__); } +StatusOr +VmMigrationConnectionImpl::FinalizeMigration( + ExperimentalTag, NoAwaitTag, + google::cloud::vmmigration::v1::FinalizeMigrationRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->FinalizeMigration(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::vmmigration::v1::FinalizeMigrationRequest const& + request) { + return stub_->FinalizeMigration(context, options, request); + }, + *current, request, __func__); +} + +future> +VmMigrationConnectionImpl::FinalizeMigration( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to FinalizeMigration", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::vmmigration::v1::FinalizeMigrationResponse>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::vmmigration::v1::FinalizeMigrationResponse>, + polling_policy(*current), __func__); +} + future> VmMigrationConnectionImpl::CreateCloneJob( google::cloud::vmmigration::v1::CreateCloneJobRequest const& request) { @@ -921,6 +1720,59 @@ VmMigrationConnectionImpl::CreateCloneJob( polling_policy(*current), __func__); } +StatusOr +VmMigrationConnectionImpl::CreateCloneJob( + ExperimentalTag, NoAwaitTag, + google::cloud::vmmigration::v1::CreateCloneJobRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateCloneJob(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::vmmigration::v1::CreateCloneJobRequest const& + request) { + return stub_->CreateCloneJob(context, options, request); + }, + *current, request, __func__); +} + +future> +VmMigrationConnectionImpl::CreateCloneJob( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to CreateCloneJob", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::vmmigration::v1::CloneJob>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::vmmigration::v1::CloneJob>, + polling_policy(*current), __func__); +} + future> VmMigrationConnectionImpl::CancelCloneJob( google::cloud::vmmigration::v1::CancelCloneJobRequest const& request) { @@ -961,6 +1813,59 @@ VmMigrationConnectionImpl::CancelCloneJob( polling_policy(*current), __func__); } +StatusOr +VmMigrationConnectionImpl::CancelCloneJob( + ExperimentalTag, NoAwaitTag, + google::cloud::vmmigration::v1::CancelCloneJobRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CancelCloneJob(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::vmmigration::v1::CancelCloneJobRequest const& + request) { + return stub_->CancelCloneJob(context, options, request); + }, + *current, request, __func__); +} + +future> +VmMigrationConnectionImpl::CancelCloneJob( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to CancelCloneJob", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::vmmigration::v1::CancelCloneJobResponse>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::vmmigration::v1::CancelCloneJobResponse>, + polling_policy(*current), __func__); +} + StreamRange VmMigrationConnectionImpl::ListCloneJobs( google::cloud::vmmigration::v1::ListCloneJobsRequest request) { @@ -1050,6 +1955,59 @@ VmMigrationConnectionImpl::CreateCutoverJob( polling_policy(*current), __func__); } +StatusOr +VmMigrationConnectionImpl::CreateCutoverJob( + ExperimentalTag, NoAwaitTag, + google::cloud::vmmigration::v1::CreateCutoverJobRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateCutoverJob(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::vmmigration::v1::CreateCutoverJobRequest const& + request) { + return stub_->CreateCutoverJob(context, options, request); + }, + *current, request, __func__); +} + +future> +VmMigrationConnectionImpl::CreateCutoverJob( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to CreateCutoverJob", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::vmmigration::v1::CutoverJob>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::vmmigration::v1::CutoverJob>, + polling_policy(*current), __func__); +} + future> VmMigrationConnectionImpl::CancelCutoverJob( google::cloud::vmmigration::v1::CancelCutoverJobRequest const& request) { @@ -1090,6 +2048,59 @@ VmMigrationConnectionImpl::CancelCutoverJob( polling_policy(*current), __func__); } +StatusOr +VmMigrationConnectionImpl::CancelCutoverJob( + ExperimentalTag, NoAwaitTag, + google::cloud::vmmigration::v1::CancelCutoverJobRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CancelCutoverJob(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::vmmigration::v1::CancelCutoverJobRequest const& + request) { + return stub_->CancelCutoverJob(context, options, request); + }, + *current, request, __func__); +} + +future> +VmMigrationConnectionImpl::CancelCutoverJob( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to CancelCutoverJob", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::vmmigration::v1::CancelCutoverJobResponse>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::vmmigration::v1::CancelCutoverJobResponse>, + polling_policy(*current), __func__); +} + StreamRange VmMigrationConnectionImpl::ListCutoverJobs( google::cloud::vmmigration::v1::ListCutoverJobsRequest request) { @@ -1188,12 +2199,102 @@ VmMigrationConnectionImpl::GetGroup( } future> -VmMigrationConnectionImpl::CreateGroup( - google::cloud::vmmigration::v1::CreateGroupRequest const& request) { +VmMigrationConnectionImpl::CreateGroup( + google::cloud::vmmigration::v1::CreateGroupRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + auto request_copy = request; + auto const idempotent = + idempotency_policy(*current)->CreateGroup(request_copy); + return google::cloud::internal::AsyncLongRunningOperation< + google::cloud::vmmigration::v1::Group>( + background_->cq(), current, std::move(request_copy), + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::vmmigration::v1::CreateGroupRequest const& request) { + return stub->AsyncCreateGroup(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::vmmigration::v1::Group>, + retry_policy(*current), backoff_policy(*current), idempotent, + polling_policy(*current), __func__); +} + +StatusOr VmMigrationConnectionImpl::CreateGroup( + ExperimentalTag, NoAwaitTag, + google::cloud::vmmigration::v1::CreateGroupRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateGroup(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::vmmigration::v1::CreateGroupRequest const& request) { + return stub_->CreateGroup(context, options, request); + }, + *current, request, __func__); +} + +future> +VmMigrationConnectionImpl::CreateGroup( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to CreateGroup", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::vmmigration::v1::Group>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::vmmigration::v1::Group>, + polling_policy(*current), __func__); +} + +future> +VmMigrationConnectionImpl::UpdateGroup( + google::cloud::vmmigration::v1::UpdateGroupRequest const& request) { auto current = google::cloud::internal::SaveCurrentOptions(); auto request_copy = request; auto const idempotent = - idempotency_policy(*current)->CreateGroup(request_copy); + idempotency_policy(*current)->UpdateGroup(request_copy); return google::cloud::internal::AsyncLongRunningOperation< google::cloud::vmmigration::v1::Group>( background_->cq(), current, std::move(request_copy), @@ -1201,8 +2302,8 @@ VmMigrationConnectionImpl::CreateGroup( google::cloud::CompletionQueue& cq, std::shared_ptr context, google::cloud::internal::ImmutableOptions options, - google::cloud::vmmigration::v1::CreateGroupRequest const& request) { - return stub->AsyncCreateGroup(cq, std::move(context), + google::cloud::vmmigration::v1::UpdateGroupRequest const& request) { + return stub->AsyncUpdateGroup(cq, std::move(context), std::move(options), request); }, [stub = stub_](google::cloud::CompletionQueue& cq, @@ -1226,24 +2327,37 @@ VmMigrationConnectionImpl::CreateGroup( polling_policy(*current), __func__); } -future> -VmMigrationConnectionImpl::UpdateGroup( +StatusOr VmMigrationConnectionImpl::UpdateGroup( + ExperimentalTag, NoAwaitTag, google::cloud::vmmigration::v1::UpdateGroupRequest const& request) { auto current = google::cloud::internal::SaveCurrentOptions(); - auto request_copy = request; - auto const idempotent = - idempotency_policy(*current)->UpdateGroup(request_copy); - return google::cloud::internal::AsyncLongRunningOperation< - google::cloud::vmmigration::v1::Group>( - background_->cq(), current, std::move(request_copy), - [stub = stub_]( - google::cloud::CompletionQueue& cq, - std::shared_ptr context, - google::cloud::internal::ImmutableOptions options, + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UpdateGroup(request), + [this]( + grpc::ClientContext& context, Options const& options, google::cloud::vmmigration::v1::UpdateGroupRequest const& request) { - return stub->AsyncUpdateGroup(cq, std::move(context), - std::move(options), request); + return stub_->UpdateGroup(context, options, request); }, + *current, request, __func__); +} + +future> +VmMigrationConnectionImpl::UpdateGroup( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to UpdateGroup", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::vmmigration::v1::Group>( + background_->cq(), current, operation, [stub = stub_](google::cloud::CompletionQueue& cq, std::shared_ptr context, google::cloud::internal::ImmutableOptions options, @@ -1261,7 +2375,6 @@ VmMigrationConnectionImpl::UpdateGroup( }, &google::cloud::internal::ExtractLongRunningResultResponse< google::cloud::vmmigration::v1::Group>, - retry_policy(*current), backoff_policy(*current), idempotent, polling_policy(*current), __func__); } @@ -1304,6 +2417,58 @@ VmMigrationConnectionImpl::DeleteGroup( polling_policy(*current), __func__); } +StatusOr VmMigrationConnectionImpl::DeleteGroup( + ExperimentalTag, NoAwaitTag, + google::cloud::vmmigration::v1::DeleteGroupRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteGroup(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::vmmigration::v1::DeleteGroupRequest const& request) { + return stub_->DeleteGroup(context, options, request); + }, + *current, request, __func__); +} + +future> +VmMigrationConnectionImpl::DeleteGroup( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteGroup", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::vmmigration::v1::OperationMetadata>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::cloud::vmmigration::v1::OperationMetadata>, + polling_policy(*current), __func__); +} + future> VmMigrationConnectionImpl::AddGroupMigration( google::cloud::vmmigration::v1::AddGroupMigrationRequest const& request) { @@ -1344,6 +2509,59 @@ VmMigrationConnectionImpl::AddGroupMigration( polling_policy(*current), __func__); } +StatusOr +VmMigrationConnectionImpl::AddGroupMigration( + ExperimentalTag, NoAwaitTag, + google::cloud::vmmigration::v1::AddGroupMigrationRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->AddGroupMigration(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::vmmigration::v1::AddGroupMigrationRequest const& + request) { + return stub_->AddGroupMigration(context, options, request); + }, + *current, request, __func__); +} + +future> +VmMigrationConnectionImpl::AddGroupMigration( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to AddGroupMigration", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::vmmigration::v1::AddGroupMigrationResponse>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::vmmigration::v1::AddGroupMigrationResponse>, + polling_policy(*current), __func__); +} + future> VmMigrationConnectionImpl::RemoveGroupMigration( google::cloud::vmmigration::v1::RemoveGroupMigrationRequest const& @@ -1385,6 +2603,60 @@ VmMigrationConnectionImpl::RemoveGroupMigration( polling_policy(*current), __func__); } +StatusOr +VmMigrationConnectionImpl::RemoveGroupMigration( + ExperimentalTag, NoAwaitTag, + google::cloud::vmmigration::v1::RemoveGroupMigrationRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->RemoveGroupMigration(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::vmmigration::v1::RemoveGroupMigrationRequest const& + request) { + return stub_->RemoveGroupMigration(context, options, request); + }, + *current, request, __func__); +} + +future> +VmMigrationConnectionImpl::RemoveGroupMigration( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to RemoveGroupMigration", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::vmmigration::v1::RemoveGroupMigrationResponse>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::vmmigration::v1::RemoveGroupMigrationResponse>, + polling_policy(*current), __func__); +} + StreamRange VmMigrationConnectionImpl::ListTargetProjects( google::cloud::vmmigration::v1::ListTargetProjectsRequest request) { @@ -1475,6 +2747,59 @@ VmMigrationConnectionImpl::CreateTargetProject( polling_policy(*current), __func__); } +StatusOr +VmMigrationConnectionImpl::CreateTargetProject( + ExperimentalTag, NoAwaitTag, + google::cloud::vmmigration::v1::CreateTargetProjectRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateTargetProject(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::vmmigration::v1::CreateTargetProjectRequest const& + request) { + return stub_->CreateTargetProject(context, options, request); + }, + *current, request, __func__); +} + +future> +VmMigrationConnectionImpl::CreateTargetProject( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to CreateTargetProject", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::vmmigration::v1::TargetProject>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::vmmigration::v1::TargetProject>, + polling_policy(*current), __func__); +} + future> VmMigrationConnectionImpl::UpdateTargetProject( google::cloud::vmmigration::v1::UpdateTargetProjectRequest const& request) { @@ -1515,6 +2840,59 @@ VmMigrationConnectionImpl::UpdateTargetProject( polling_policy(*current), __func__); } +StatusOr +VmMigrationConnectionImpl::UpdateTargetProject( + ExperimentalTag, NoAwaitTag, + google::cloud::vmmigration::v1::UpdateTargetProjectRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UpdateTargetProject(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::vmmigration::v1::UpdateTargetProjectRequest const& + request) { + return stub_->UpdateTargetProject(context, options, request); + }, + *current, request, __func__); +} + +future> +VmMigrationConnectionImpl::UpdateTargetProject( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to UpdateTargetProject", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::vmmigration::v1::TargetProject>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::vmmigration::v1::TargetProject>, + polling_policy(*current), __func__); +} + future> VmMigrationConnectionImpl::DeleteTargetProject( google::cloud::vmmigration::v1::DeleteTargetProjectRequest const& request) { @@ -1555,6 +2933,59 @@ VmMigrationConnectionImpl::DeleteTargetProject( polling_policy(*current), __func__); } +StatusOr +VmMigrationConnectionImpl::DeleteTargetProject( + ExperimentalTag, NoAwaitTag, + google::cloud::vmmigration::v1::DeleteTargetProjectRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteTargetProject(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::vmmigration::v1::DeleteTargetProjectRequest const& + request) { + return stub_->DeleteTargetProject(context, options, request); + }, + *current, request, __func__); +} + +future> +VmMigrationConnectionImpl::DeleteTargetProject( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteTargetProject", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::vmmigration::v1::OperationMetadata>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::cloud::vmmigration::v1::OperationMetadata>, + polling_policy(*current), __func__); +} + StreamRange VmMigrationConnectionImpl::ListReplicationCycles( google::cloud::vmmigration::v1::ListReplicationCyclesRequest request) { diff --git a/google/cloud/vmmigration/v1/internal/vm_migration_connection_impl.h b/google/cloud/vmmigration/v1/internal/vm_migration_connection_impl.h index 3f06f184c057a..a73d9ed1bb41a 100644 --- a/google/cloud/vmmigration/v1/internal/vm_migration_connection_impl.h +++ b/google/cloud/vmmigration/v1/internal/vm_migration_connection_impl.h @@ -61,14 +61,41 @@ class VmMigrationConnectionImpl : public vmmigration_v1::VmMigrationConnection { google::cloud::vmmigration::v1::CreateSourceRequest const& request) override; + StatusOr CreateSource( + ExperimentalTag, NoAwaitTag, + google::cloud::vmmigration::v1::CreateSourceRequest const& request) + override; + + future> CreateSource( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateSource( google::cloud::vmmigration::v1::UpdateSourceRequest const& request) override; + StatusOr UpdateSource( + ExperimentalTag, NoAwaitTag, + google::cloud::vmmigration::v1::UpdateSourceRequest const& request) + override; + + future> UpdateSource( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteSource(google::cloud::vmmigration::v1::DeleteSourceRequest const& request) override; + StatusOr DeleteSource( + ExperimentalTag, NoAwaitTag, + google::cloud::vmmigration::v1::DeleteSourceRequest const& request) + override; + + future> + DeleteSource(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr FetchInventory(google::cloud::vmmigration::v1::FetchInventoryRequest const& request) override; @@ -88,11 +115,31 @@ class VmMigrationConnectionImpl : public vmmigration_v1::VmMigrationConnection { google::cloud::vmmigration::v1::CreateUtilizationReportRequest const& request) override; + StatusOr CreateUtilizationReport( + ExperimentalTag, NoAwaitTag, + google::cloud::vmmigration::v1::CreateUtilizationReportRequest const& + request) override; + + future> + CreateUtilizationReport( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteUtilizationReport( google::cloud::vmmigration::v1::DeleteUtilizationReportRequest const& request) override; + StatusOr DeleteUtilizationReport( + ExperimentalTag, NoAwaitTag, + google::cloud::vmmigration::v1::DeleteUtilizationReportRequest const& + request) override; + + future> + DeleteUtilizationReport( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListDatacenterConnectors( google::cloud::vmmigration::v1::ListDatacenterConnectorsRequest request) @@ -108,21 +155,59 @@ class VmMigrationConnectionImpl : public vmmigration_v1::VmMigrationConnection { google::cloud::vmmigration::v1::CreateDatacenterConnectorRequest const& request) override; + StatusOr CreateDatacenterConnector( + ExperimentalTag, NoAwaitTag, + google::cloud::vmmigration::v1::CreateDatacenterConnectorRequest const& + request) override; + + future> + CreateDatacenterConnector( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteDatacenterConnector( google::cloud::vmmigration::v1::DeleteDatacenterConnectorRequest const& request) override; + StatusOr DeleteDatacenterConnector( + ExperimentalTag, NoAwaitTag, + google::cloud::vmmigration::v1::DeleteDatacenterConnectorRequest const& + request) override; + + future> + DeleteDatacenterConnector( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpgradeAppliance( google::cloud::vmmigration::v1::UpgradeApplianceRequest const& request) override; + StatusOr UpgradeAppliance( + ExperimentalTag, NoAwaitTag, + google::cloud::vmmigration::v1::UpgradeApplianceRequest const& request) + override; + + future> + UpgradeAppliance(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> CreateMigratingVm( google::cloud::vmmigration::v1::CreateMigratingVmRequest const& request) override; + StatusOr CreateMigratingVm( + ExperimentalTag, NoAwaitTag, + google::cloud::vmmigration::v1::CreateMigratingVmRequest const& request) + override; + + future> + CreateMigratingVm(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListMigratingVms( google::cloud::vmmigration::v1::ListMigratingVmsRequest request) override; @@ -135,36 +220,108 @@ class VmMigrationConnectionImpl : public vmmigration_v1::VmMigrationConnection { google::cloud::vmmigration::v1::UpdateMigratingVmRequest const& request) override; + StatusOr UpdateMigratingVm( + ExperimentalTag, NoAwaitTag, + google::cloud::vmmigration::v1::UpdateMigratingVmRequest const& request) + override; + + future> + UpdateMigratingVm(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteMigratingVm( google::cloud::vmmigration::v1::DeleteMigratingVmRequest const& request) override; + StatusOr DeleteMigratingVm( + ExperimentalTag, NoAwaitTag, + google::cloud::vmmigration::v1::DeleteMigratingVmRequest const& request) + override; + + future> + DeleteMigratingVm(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> StartMigration(google::cloud::vmmigration::v1::StartMigrationRequest const& request) override; + StatusOr StartMigration( + ExperimentalTag, NoAwaitTag, + google::cloud::vmmigration::v1::StartMigrationRequest const& request) + override; + + future> + StartMigration(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ResumeMigration(google::cloud::vmmigration::v1::ResumeMigrationRequest const& request) override; + StatusOr ResumeMigration( + ExperimentalTag, NoAwaitTag, + google::cloud::vmmigration::v1::ResumeMigrationRequest const& request) + override; + + future> + ResumeMigration(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> PauseMigration(google::cloud::vmmigration::v1::PauseMigrationRequest const& request) override; + StatusOr PauseMigration( + ExperimentalTag, NoAwaitTag, + google::cloud::vmmigration::v1::PauseMigrationRequest const& request) + override; + + future> + PauseMigration(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> FinalizeMigration( google::cloud::vmmigration::v1::FinalizeMigrationRequest const& request) override; + StatusOr FinalizeMigration( + ExperimentalTag, NoAwaitTag, + google::cloud::vmmigration::v1::FinalizeMigrationRequest const& request) + override; + + future> + FinalizeMigration(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> CreateCloneJob( google::cloud::vmmigration::v1::CreateCloneJobRequest const& request) override; + StatusOr CreateCloneJob( + ExperimentalTag, NoAwaitTag, + google::cloud::vmmigration::v1::CreateCloneJobRequest const& request) + override; + + future> CreateCloneJob( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> CancelCloneJob(google::cloud::vmmigration::v1::CancelCloneJobRequest const& request) override; + StatusOr CancelCloneJob( + ExperimentalTag, NoAwaitTag, + google::cloud::vmmigration::v1::CancelCloneJobRequest const& request) + override; + + future> + CancelCloneJob(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListCloneJobs( google::cloud::vmmigration::v1::ListCloneJobsRequest request) override; @@ -176,11 +333,29 @@ class VmMigrationConnectionImpl : public vmmigration_v1::VmMigrationConnection { google::cloud::vmmigration::v1::CreateCutoverJobRequest const& request) override; + StatusOr CreateCutoverJob( + ExperimentalTag, NoAwaitTag, + google::cloud::vmmigration::v1::CreateCutoverJobRequest const& request) + override; + + future> CreateCutoverJob( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> CancelCutoverJob( google::cloud::vmmigration::v1::CancelCutoverJobRequest const& request) override; + StatusOr CancelCutoverJob( + ExperimentalTag, NoAwaitTag, + google::cloud::vmmigration::v1::CancelCutoverJobRequest const& request) + override; + + future> + CancelCutoverJob(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListCutoverJobs( google::cloud::vmmigration::v1::ListCutoverJobsRequest request) override; @@ -198,24 +373,70 @@ class VmMigrationConnectionImpl : public vmmigration_v1::VmMigrationConnection { google::cloud::vmmigration::v1::CreateGroupRequest const& request) override; + StatusOr CreateGroup( + ExperimentalTag, NoAwaitTag, + google::cloud::vmmigration::v1::CreateGroupRequest const& request) + override; + + future> CreateGroup( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateGroup( google::cloud::vmmigration::v1::UpdateGroupRequest const& request) override; + StatusOr UpdateGroup( + ExperimentalTag, NoAwaitTag, + google::cloud::vmmigration::v1::UpdateGroupRequest const& request) + override; + + future> UpdateGroup( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteGroup(google::cloud::vmmigration::v1::DeleteGroupRequest const& request) override; + StatusOr DeleteGroup( + ExperimentalTag, NoAwaitTag, + google::cloud::vmmigration::v1::DeleteGroupRequest const& request) + override; + + future> + DeleteGroup(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> AddGroupMigration( google::cloud::vmmigration::v1::AddGroupMigrationRequest const& request) override; + StatusOr AddGroupMigration( + ExperimentalTag, NoAwaitTag, + google::cloud::vmmigration::v1::AddGroupMigrationRequest const& request) + override; + + future> + AddGroupMigration(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> RemoveGroupMigration( google::cloud::vmmigration::v1::RemoveGroupMigrationRequest const& request) override; + StatusOr RemoveGroupMigration( + ExperimentalTag, NoAwaitTag, + google::cloud::vmmigration::v1::RemoveGroupMigrationRequest const& + request) override; + + future> + RemoveGroupMigration( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListTargetProjects( google::cloud::vmmigration::v1::ListTargetProjectsRequest request) override; @@ -229,16 +450,43 @@ class VmMigrationConnectionImpl : public vmmigration_v1::VmMigrationConnection { google::cloud::vmmigration::v1::CreateTargetProjectRequest const& request) override; + StatusOr CreateTargetProject( + ExperimentalTag, NoAwaitTag, + google::cloud::vmmigration::v1::CreateTargetProjectRequest const& request) + override; + + future> + CreateTargetProject(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateTargetProject( google::cloud::vmmigration::v1::UpdateTargetProjectRequest const& request) override; + StatusOr UpdateTargetProject( + ExperimentalTag, NoAwaitTag, + google::cloud::vmmigration::v1::UpdateTargetProjectRequest const& request) + override; + + future> + UpdateTargetProject(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteTargetProject( google::cloud::vmmigration::v1::DeleteTargetProjectRequest const& request) override; + StatusOr DeleteTargetProject( + ExperimentalTag, NoAwaitTag, + google::cloud::vmmigration::v1::DeleteTargetProjectRequest const& request) + override; + + future> + DeleteTargetProject(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListReplicationCycles( google::cloud::vmmigration::v1::ListReplicationCyclesRequest request) diff --git a/google/cloud/vmmigration/v1/internal/vm_migration_tracing_connection.cc b/google/cloud/vmmigration/v1/internal/vm_migration_tracing_connection.cc index 49bfcdd76a0c4..a1777e088aa71 100644 --- a/google/cloud/vmmigration/v1/internal/vm_migration_tracing_connection.cc +++ b/google/cloud/vmmigration/v1/internal/vm_migration_tracing_connection.cc @@ -62,6 +62,27 @@ VmMigrationTracingConnection::CreateSource( return internal::EndSpan(std::move(span), child_->CreateSource(request)); } +StatusOr +VmMigrationTracingConnection::CreateSource( + ExperimentalTag, NoAwaitTag, + google::cloud::vmmigration::v1::CreateSourceRequest const& request) { + auto span = + internal::MakeSpan("vmmigration_v1::VmMigrationConnection::CreateSource"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->CreateSource(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +VmMigrationTracingConnection::CreateSource( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = + internal::MakeSpan("vmmigration_v1::VmMigrationConnection::CreateSource"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->CreateSource(ExperimentalTag{}, operation)); +} + future> VmMigrationTracingConnection::UpdateSource( google::cloud::vmmigration::v1::UpdateSourceRequest const& request) { @@ -71,6 +92,27 @@ VmMigrationTracingConnection::UpdateSource( return internal::EndSpan(std::move(span), child_->UpdateSource(request)); } +StatusOr +VmMigrationTracingConnection::UpdateSource( + ExperimentalTag, NoAwaitTag, + google::cloud::vmmigration::v1::UpdateSourceRequest const& request) { + auto span = + internal::MakeSpan("vmmigration_v1::VmMigrationConnection::UpdateSource"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->UpdateSource(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +VmMigrationTracingConnection::UpdateSource( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = + internal::MakeSpan("vmmigration_v1::VmMigrationConnection::UpdateSource"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->UpdateSource(ExperimentalTag{}, operation)); +} + future> VmMigrationTracingConnection::DeleteSource( google::cloud::vmmigration::v1::DeleteSourceRequest const& request) { @@ -80,6 +122,27 @@ VmMigrationTracingConnection::DeleteSource( return internal::EndSpan(std::move(span), child_->DeleteSource(request)); } +StatusOr +VmMigrationTracingConnection::DeleteSource( + ExperimentalTag, NoAwaitTag, + google::cloud::vmmigration::v1::DeleteSourceRequest const& request) { + auto span = + internal::MakeSpan("vmmigration_v1::VmMigrationConnection::DeleteSource"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->DeleteSource(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +VmMigrationTracingConnection::DeleteSource( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = + internal::MakeSpan("vmmigration_v1::VmMigrationConnection::DeleteSource"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->DeleteSource(ExperimentalTag{}, operation)); +} + StatusOr VmMigrationTracingConnection::FetchInventory( google::cloud::vmmigration::v1::FetchInventoryRequest const& request) { @@ -122,6 +185,29 @@ VmMigrationTracingConnection::CreateUtilizationReport( child_->CreateUtilizationReport(request)); } +StatusOr +VmMigrationTracingConnection::CreateUtilizationReport( + ExperimentalTag, NoAwaitTag, + google::cloud::vmmigration::v1::CreateUtilizationReportRequest const& + request) { + auto span = internal::MakeSpan( + "vmmigration_v1::VmMigrationConnection::CreateUtilizationReport"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->CreateUtilizationReport(ExperimentalTag{}, NoAwaitTag{}, + request)); +} + +future> +VmMigrationTracingConnection::CreateUtilizationReport( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "vmmigration_v1::VmMigrationConnection::CreateUtilizationReport"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->CreateUtilizationReport( + ExperimentalTag{}, operation)); +} + future> VmMigrationTracingConnection::DeleteUtilizationReport( google::cloud::vmmigration::v1::DeleteUtilizationReportRequest const& @@ -133,6 +219,29 @@ VmMigrationTracingConnection::DeleteUtilizationReport( child_->DeleteUtilizationReport(request)); } +StatusOr +VmMigrationTracingConnection::DeleteUtilizationReport( + ExperimentalTag, NoAwaitTag, + google::cloud::vmmigration::v1::DeleteUtilizationReportRequest const& + request) { + auto span = internal::MakeSpan( + "vmmigration_v1::VmMigrationConnection::DeleteUtilizationReport"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->DeleteUtilizationReport(ExperimentalTag{}, NoAwaitTag{}, + request)); +} + +future> +VmMigrationTracingConnection::DeleteUtilizationReport( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "vmmigration_v1::VmMigrationConnection::DeleteUtilizationReport"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->DeleteUtilizationReport( + ExperimentalTag{}, operation)); +} + StreamRange VmMigrationTracingConnection::ListDatacenterConnectors( google::cloud::vmmigration::v1::ListDatacenterConnectorsRequest request) { @@ -166,6 +275,29 @@ VmMigrationTracingConnection::CreateDatacenterConnector( child_->CreateDatacenterConnector(request)); } +StatusOr +VmMigrationTracingConnection::CreateDatacenterConnector( + ExperimentalTag, NoAwaitTag, + google::cloud::vmmigration::v1::CreateDatacenterConnectorRequest const& + request) { + auto span = internal::MakeSpan( + "vmmigration_v1::VmMigrationConnection::CreateDatacenterConnector"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->CreateDatacenterConnector(ExperimentalTag{}, NoAwaitTag{}, + request)); +} + +future> +VmMigrationTracingConnection::CreateDatacenterConnector( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "vmmigration_v1::VmMigrationConnection::CreateDatacenterConnector"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->CreateDatacenterConnector( + ExperimentalTag{}, operation)); +} + future> VmMigrationTracingConnection::DeleteDatacenterConnector( google::cloud::vmmigration::v1::DeleteDatacenterConnectorRequest const& @@ -177,6 +309,29 @@ VmMigrationTracingConnection::DeleteDatacenterConnector( child_->DeleteDatacenterConnector(request)); } +StatusOr +VmMigrationTracingConnection::DeleteDatacenterConnector( + ExperimentalTag, NoAwaitTag, + google::cloud::vmmigration::v1::DeleteDatacenterConnectorRequest const& + request) { + auto span = internal::MakeSpan( + "vmmigration_v1::VmMigrationConnection::DeleteDatacenterConnector"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->DeleteDatacenterConnector(ExperimentalTag{}, NoAwaitTag{}, + request)); +} + +future> +VmMigrationTracingConnection::DeleteDatacenterConnector( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "vmmigration_v1::VmMigrationConnection::DeleteDatacenterConnector"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->DeleteDatacenterConnector( + ExperimentalTag{}, operation)); +} + future> VmMigrationTracingConnection::UpgradeAppliance( google::cloud::vmmigration::v1::UpgradeApplianceRequest const& request) { @@ -186,6 +341,28 @@ VmMigrationTracingConnection::UpgradeAppliance( return internal::EndSpan(std::move(span), child_->UpgradeAppliance(request)); } +StatusOr +VmMigrationTracingConnection::UpgradeAppliance( + ExperimentalTag, NoAwaitTag, + google::cloud::vmmigration::v1::UpgradeApplianceRequest const& request) { + auto span = internal::MakeSpan( + "vmmigration_v1::VmMigrationConnection::UpgradeAppliance"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->UpgradeAppliance(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +VmMigrationTracingConnection::UpgradeAppliance( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "vmmigration_v1::VmMigrationConnection::UpgradeAppliance"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->UpgradeAppliance(ExperimentalTag{}, operation)); +} + future> VmMigrationTracingConnection::CreateMigratingVm( google::cloud::vmmigration::v1::CreateMigratingVmRequest const& request) { @@ -195,6 +372,28 @@ VmMigrationTracingConnection::CreateMigratingVm( return internal::EndSpan(std::move(span), child_->CreateMigratingVm(request)); } +StatusOr +VmMigrationTracingConnection::CreateMigratingVm( + ExperimentalTag, NoAwaitTag, + google::cloud::vmmigration::v1::CreateMigratingVmRequest const& request) { + auto span = internal::MakeSpan( + "vmmigration_v1::VmMigrationConnection::CreateMigratingVm"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->CreateMigratingVm(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +VmMigrationTracingConnection::CreateMigratingVm( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "vmmigration_v1::VmMigrationConnection::CreateMigratingVm"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->CreateMigratingVm(ExperimentalTag{}, operation)); +} + StreamRange VmMigrationTracingConnection::ListMigratingVms( google::cloud::vmmigration::v1::ListMigratingVmsRequest request) { @@ -225,6 +424,28 @@ VmMigrationTracingConnection::UpdateMigratingVm( return internal::EndSpan(std::move(span), child_->UpdateMigratingVm(request)); } +StatusOr +VmMigrationTracingConnection::UpdateMigratingVm( + ExperimentalTag, NoAwaitTag, + google::cloud::vmmigration::v1::UpdateMigratingVmRequest const& request) { + auto span = internal::MakeSpan( + "vmmigration_v1::VmMigrationConnection::UpdateMigratingVm"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->UpdateMigratingVm(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +VmMigrationTracingConnection::UpdateMigratingVm( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "vmmigration_v1::VmMigrationConnection::UpdateMigratingVm"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->UpdateMigratingVm(ExperimentalTag{}, operation)); +} + future> VmMigrationTracingConnection::DeleteMigratingVm( google::cloud::vmmigration::v1::DeleteMigratingVmRequest const& request) { @@ -234,6 +455,28 @@ VmMigrationTracingConnection::DeleteMigratingVm( return internal::EndSpan(std::move(span), child_->DeleteMigratingVm(request)); } +StatusOr +VmMigrationTracingConnection::DeleteMigratingVm( + ExperimentalTag, NoAwaitTag, + google::cloud::vmmigration::v1::DeleteMigratingVmRequest const& request) { + auto span = internal::MakeSpan( + "vmmigration_v1::VmMigrationConnection::DeleteMigratingVm"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->DeleteMigratingVm(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +VmMigrationTracingConnection::DeleteMigratingVm( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "vmmigration_v1::VmMigrationConnection::DeleteMigratingVm"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->DeleteMigratingVm(ExperimentalTag{}, operation)); +} + future> VmMigrationTracingConnection::StartMigration( google::cloud::vmmigration::v1::StartMigrationRequest const& request) { @@ -243,6 +486,27 @@ VmMigrationTracingConnection::StartMigration( return internal::EndSpan(std::move(span), child_->StartMigration(request)); } +StatusOr +VmMigrationTracingConnection::StartMigration( + ExperimentalTag, NoAwaitTag, + google::cloud::vmmigration::v1::StartMigrationRequest const& request) { + auto span = internal::MakeSpan( + "vmmigration_v1::VmMigrationConnection::StartMigration"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->StartMigration(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +VmMigrationTracingConnection::StartMigration( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "vmmigration_v1::VmMigrationConnection::StartMigration"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->StartMigration(ExperimentalTag{}, operation)); +} + future> VmMigrationTracingConnection::ResumeMigration( google::cloud::vmmigration::v1::ResumeMigrationRequest const& request) { @@ -252,6 +516,27 @@ VmMigrationTracingConnection::ResumeMigration( return internal::EndSpan(std::move(span), child_->ResumeMigration(request)); } +StatusOr +VmMigrationTracingConnection::ResumeMigration( + ExperimentalTag, NoAwaitTag, + google::cloud::vmmigration::v1::ResumeMigrationRequest const& request) { + auto span = internal::MakeSpan( + "vmmigration_v1::VmMigrationConnection::ResumeMigration"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->ResumeMigration(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +VmMigrationTracingConnection::ResumeMigration( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "vmmigration_v1::VmMigrationConnection::ResumeMigration"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->ResumeMigration(ExperimentalTag{}, operation)); +} + future> VmMigrationTracingConnection::PauseMigration( google::cloud::vmmigration::v1::PauseMigrationRequest const& request) { @@ -261,6 +546,27 @@ VmMigrationTracingConnection::PauseMigration( return internal::EndSpan(std::move(span), child_->PauseMigration(request)); } +StatusOr +VmMigrationTracingConnection::PauseMigration( + ExperimentalTag, NoAwaitTag, + google::cloud::vmmigration::v1::PauseMigrationRequest const& request) { + auto span = internal::MakeSpan( + "vmmigration_v1::VmMigrationConnection::PauseMigration"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->PauseMigration(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +VmMigrationTracingConnection::PauseMigration( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "vmmigration_v1::VmMigrationConnection::PauseMigration"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->PauseMigration(ExperimentalTag{}, operation)); +} + future> VmMigrationTracingConnection::FinalizeMigration( google::cloud::vmmigration::v1::FinalizeMigrationRequest const& request) { @@ -270,6 +576,28 @@ VmMigrationTracingConnection::FinalizeMigration( return internal::EndSpan(std::move(span), child_->FinalizeMigration(request)); } +StatusOr +VmMigrationTracingConnection::FinalizeMigration( + ExperimentalTag, NoAwaitTag, + google::cloud::vmmigration::v1::FinalizeMigrationRequest const& request) { + auto span = internal::MakeSpan( + "vmmigration_v1::VmMigrationConnection::FinalizeMigration"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->FinalizeMigration(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +VmMigrationTracingConnection::FinalizeMigration( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "vmmigration_v1::VmMigrationConnection::FinalizeMigration"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->FinalizeMigration(ExperimentalTag{}, operation)); +} + future> VmMigrationTracingConnection::CreateCloneJob( google::cloud::vmmigration::v1::CreateCloneJobRequest const& request) { @@ -279,6 +607,27 @@ VmMigrationTracingConnection::CreateCloneJob( return internal::EndSpan(std::move(span), child_->CreateCloneJob(request)); } +StatusOr +VmMigrationTracingConnection::CreateCloneJob( + ExperimentalTag, NoAwaitTag, + google::cloud::vmmigration::v1::CreateCloneJobRequest const& request) { + auto span = internal::MakeSpan( + "vmmigration_v1::VmMigrationConnection::CreateCloneJob"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->CreateCloneJob(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +VmMigrationTracingConnection::CreateCloneJob( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "vmmigration_v1::VmMigrationConnection::CreateCloneJob"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->CreateCloneJob(ExperimentalTag{}, operation)); +} + future> VmMigrationTracingConnection::CancelCloneJob( google::cloud::vmmigration::v1::CancelCloneJobRequest const& request) { @@ -288,6 +637,27 @@ VmMigrationTracingConnection::CancelCloneJob( return internal::EndSpan(std::move(span), child_->CancelCloneJob(request)); } +StatusOr +VmMigrationTracingConnection::CancelCloneJob( + ExperimentalTag, NoAwaitTag, + google::cloud::vmmigration::v1::CancelCloneJobRequest const& request) { + auto span = internal::MakeSpan( + "vmmigration_v1::VmMigrationConnection::CancelCloneJob"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->CancelCloneJob(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +VmMigrationTracingConnection::CancelCloneJob( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "vmmigration_v1::VmMigrationConnection::CancelCloneJob"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->CancelCloneJob(ExperimentalTag{}, operation)); +} + StreamRange VmMigrationTracingConnection::ListCloneJobs( google::cloud::vmmigration::v1::ListCloneJobsRequest request) { @@ -317,6 +687,28 @@ VmMigrationTracingConnection::CreateCutoverJob( return internal::EndSpan(std::move(span), child_->CreateCutoverJob(request)); } +StatusOr +VmMigrationTracingConnection::CreateCutoverJob( + ExperimentalTag, NoAwaitTag, + google::cloud::vmmigration::v1::CreateCutoverJobRequest const& request) { + auto span = internal::MakeSpan( + "vmmigration_v1::VmMigrationConnection::CreateCutoverJob"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->CreateCutoverJob(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +VmMigrationTracingConnection::CreateCutoverJob( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "vmmigration_v1::VmMigrationConnection::CreateCutoverJob"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->CreateCutoverJob(ExperimentalTag{}, operation)); +} + future> VmMigrationTracingConnection::CancelCutoverJob( google::cloud::vmmigration::v1::CancelCutoverJobRequest const& request) { @@ -326,6 +718,28 @@ VmMigrationTracingConnection::CancelCutoverJob( return internal::EndSpan(std::move(span), child_->CancelCutoverJob(request)); } +StatusOr +VmMigrationTracingConnection::CancelCutoverJob( + ExperimentalTag, NoAwaitTag, + google::cloud::vmmigration::v1::CancelCutoverJobRequest const& request) { + auto span = internal::MakeSpan( + "vmmigration_v1::VmMigrationConnection::CancelCutoverJob"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->CancelCutoverJob(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +VmMigrationTracingConnection::CancelCutoverJob( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "vmmigration_v1::VmMigrationConnection::CancelCutoverJob"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->CancelCutoverJob(ExperimentalTag{}, operation)); +} + StreamRange VmMigrationTracingConnection::ListCutoverJobs( google::cloud::vmmigration::v1::ListCutoverJobsRequest request) { @@ -376,6 +790,27 @@ VmMigrationTracingConnection::CreateGroup( return internal::EndSpan(std::move(span), child_->CreateGroup(request)); } +StatusOr +VmMigrationTracingConnection::CreateGroup( + ExperimentalTag, NoAwaitTag, + google::cloud::vmmigration::v1::CreateGroupRequest const& request) { + auto span = + internal::MakeSpan("vmmigration_v1::VmMigrationConnection::CreateGroup"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->CreateGroup(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +VmMigrationTracingConnection::CreateGroup( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = + internal::MakeSpan("vmmigration_v1::VmMigrationConnection::CreateGroup"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->CreateGroup(ExperimentalTag{}, operation)); +} + future> VmMigrationTracingConnection::UpdateGroup( google::cloud::vmmigration::v1::UpdateGroupRequest const& request) { @@ -385,6 +820,27 @@ VmMigrationTracingConnection::UpdateGroup( return internal::EndSpan(std::move(span), child_->UpdateGroup(request)); } +StatusOr +VmMigrationTracingConnection::UpdateGroup( + ExperimentalTag, NoAwaitTag, + google::cloud::vmmigration::v1::UpdateGroupRequest const& request) { + auto span = + internal::MakeSpan("vmmigration_v1::VmMigrationConnection::UpdateGroup"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->UpdateGroup(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +VmMigrationTracingConnection::UpdateGroup( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = + internal::MakeSpan("vmmigration_v1::VmMigrationConnection::UpdateGroup"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->UpdateGroup(ExperimentalTag{}, operation)); +} + future> VmMigrationTracingConnection::DeleteGroup( google::cloud::vmmigration::v1::DeleteGroupRequest const& request) { @@ -394,6 +850,27 @@ VmMigrationTracingConnection::DeleteGroup( return internal::EndSpan(std::move(span), child_->DeleteGroup(request)); } +StatusOr +VmMigrationTracingConnection::DeleteGroup( + ExperimentalTag, NoAwaitTag, + google::cloud::vmmigration::v1::DeleteGroupRequest const& request) { + auto span = + internal::MakeSpan("vmmigration_v1::VmMigrationConnection::DeleteGroup"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->DeleteGroup(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +VmMigrationTracingConnection::DeleteGroup( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = + internal::MakeSpan("vmmigration_v1::VmMigrationConnection::DeleteGroup"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->DeleteGroup(ExperimentalTag{}, operation)); +} + future> VmMigrationTracingConnection::AddGroupMigration( google::cloud::vmmigration::v1::AddGroupMigrationRequest const& request) { @@ -403,6 +880,28 @@ VmMigrationTracingConnection::AddGroupMigration( return internal::EndSpan(std::move(span), child_->AddGroupMigration(request)); } +StatusOr +VmMigrationTracingConnection::AddGroupMigration( + ExperimentalTag, NoAwaitTag, + google::cloud::vmmigration::v1::AddGroupMigrationRequest const& request) { + auto span = internal::MakeSpan( + "vmmigration_v1::VmMigrationConnection::AddGroupMigration"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->AddGroupMigration(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +VmMigrationTracingConnection::AddGroupMigration( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "vmmigration_v1::VmMigrationConnection::AddGroupMigration"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->AddGroupMigration(ExperimentalTag{}, operation)); +} + future> VmMigrationTracingConnection::RemoveGroupMigration( google::cloud::vmmigration::v1::RemoveGroupMigrationRequest const& @@ -414,6 +913,29 @@ VmMigrationTracingConnection::RemoveGroupMigration( child_->RemoveGroupMigration(request)); } +StatusOr +VmMigrationTracingConnection::RemoveGroupMigration( + ExperimentalTag, NoAwaitTag, + google::cloud::vmmigration::v1::RemoveGroupMigrationRequest const& + request) { + auto span = internal::MakeSpan( + "vmmigration_v1::VmMigrationConnection::RemoveGroupMigration"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->RemoveGroupMigration(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +VmMigrationTracingConnection::RemoveGroupMigration( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "vmmigration_v1::VmMigrationConnection::RemoveGroupMigration"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->RemoveGroupMigration( + ExperimentalTag{}, operation)); +} + StreamRange VmMigrationTracingConnection::ListTargetProjects( google::cloud::vmmigration::v1::ListTargetProjectsRequest request) { @@ -445,6 +967,28 @@ VmMigrationTracingConnection::CreateTargetProject( child_->CreateTargetProject(request)); } +StatusOr +VmMigrationTracingConnection::CreateTargetProject( + ExperimentalTag, NoAwaitTag, + google::cloud::vmmigration::v1::CreateTargetProjectRequest const& request) { + auto span = internal::MakeSpan( + "vmmigration_v1::VmMigrationConnection::CreateTargetProject"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->CreateTargetProject(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +VmMigrationTracingConnection::CreateTargetProject( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "vmmigration_v1::VmMigrationConnection::CreateTargetProject"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->CreateTargetProject( + ExperimentalTag{}, operation)); +} + future> VmMigrationTracingConnection::UpdateTargetProject( google::cloud::vmmigration::v1::UpdateTargetProjectRequest const& request) { @@ -455,6 +999,28 @@ VmMigrationTracingConnection::UpdateTargetProject( child_->UpdateTargetProject(request)); } +StatusOr +VmMigrationTracingConnection::UpdateTargetProject( + ExperimentalTag, NoAwaitTag, + google::cloud::vmmigration::v1::UpdateTargetProjectRequest const& request) { + auto span = internal::MakeSpan( + "vmmigration_v1::VmMigrationConnection::UpdateTargetProject"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->UpdateTargetProject(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +VmMigrationTracingConnection::UpdateTargetProject( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "vmmigration_v1::VmMigrationConnection::UpdateTargetProject"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->UpdateTargetProject( + ExperimentalTag{}, operation)); +} + future> VmMigrationTracingConnection::DeleteTargetProject( google::cloud::vmmigration::v1::DeleteTargetProjectRequest const& request) { @@ -465,6 +1031,28 @@ VmMigrationTracingConnection::DeleteTargetProject( child_->DeleteTargetProject(request)); } +StatusOr +VmMigrationTracingConnection::DeleteTargetProject( + ExperimentalTag, NoAwaitTag, + google::cloud::vmmigration::v1::DeleteTargetProjectRequest const& request) { + auto span = internal::MakeSpan( + "vmmigration_v1::VmMigrationConnection::DeleteTargetProject"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->DeleteTargetProject(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +VmMigrationTracingConnection::DeleteTargetProject( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "vmmigration_v1::VmMigrationConnection::DeleteTargetProject"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->DeleteTargetProject( + ExperimentalTag{}, operation)); +} + StreamRange VmMigrationTracingConnection::ListReplicationCycles( google::cloud::vmmigration::v1::ListReplicationCyclesRequest request) { diff --git a/google/cloud/vmmigration/v1/internal/vm_migration_tracing_connection.h b/google/cloud/vmmigration/v1/internal/vm_migration_tracing_connection.h index ea03ab67566d2..42a1342303875 100644 --- a/google/cloud/vmmigration/v1/internal/vm_migration_tracing_connection.h +++ b/google/cloud/vmmigration/v1/internal/vm_migration_tracing_connection.h @@ -50,14 +50,41 @@ class VmMigrationTracingConnection google::cloud::vmmigration::v1::CreateSourceRequest const& request) override; + StatusOr CreateSource( + ExperimentalTag, NoAwaitTag, + google::cloud::vmmigration::v1::CreateSourceRequest const& request) + override; + + future> CreateSource( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateSource( google::cloud::vmmigration::v1::UpdateSourceRequest const& request) override; + StatusOr UpdateSource( + ExperimentalTag, NoAwaitTag, + google::cloud::vmmigration::v1::UpdateSourceRequest const& request) + override; + + future> UpdateSource( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteSource(google::cloud::vmmigration::v1::DeleteSourceRequest const& request) override; + StatusOr DeleteSource( + ExperimentalTag, NoAwaitTag, + google::cloud::vmmigration::v1::DeleteSourceRequest const& request) + override; + + future> + DeleteSource(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr FetchInventory(google::cloud::vmmigration::v1::FetchInventoryRequest const& request) override; @@ -77,11 +104,31 @@ class VmMigrationTracingConnection google::cloud::vmmigration::v1::CreateUtilizationReportRequest const& request) override; + StatusOr CreateUtilizationReport( + ExperimentalTag, NoAwaitTag, + google::cloud::vmmigration::v1::CreateUtilizationReportRequest const& + request) override; + + future> + CreateUtilizationReport( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteUtilizationReport( google::cloud::vmmigration::v1::DeleteUtilizationReportRequest const& request) override; + StatusOr DeleteUtilizationReport( + ExperimentalTag, NoAwaitTag, + google::cloud::vmmigration::v1::DeleteUtilizationReportRequest const& + request) override; + + future> + DeleteUtilizationReport( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListDatacenterConnectors( google::cloud::vmmigration::v1::ListDatacenterConnectorsRequest request) @@ -97,21 +144,59 @@ class VmMigrationTracingConnection google::cloud::vmmigration::v1::CreateDatacenterConnectorRequest const& request) override; + StatusOr CreateDatacenterConnector( + ExperimentalTag, NoAwaitTag, + google::cloud::vmmigration::v1::CreateDatacenterConnectorRequest const& + request) override; + + future> + CreateDatacenterConnector( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteDatacenterConnector( google::cloud::vmmigration::v1::DeleteDatacenterConnectorRequest const& request) override; + StatusOr DeleteDatacenterConnector( + ExperimentalTag, NoAwaitTag, + google::cloud::vmmigration::v1::DeleteDatacenterConnectorRequest const& + request) override; + + future> + DeleteDatacenterConnector( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpgradeAppliance( google::cloud::vmmigration::v1::UpgradeApplianceRequest const& request) override; + StatusOr UpgradeAppliance( + ExperimentalTag, NoAwaitTag, + google::cloud::vmmigration::v1::UpgradeApplianceRequest const& request) + override; + + future> + UpgradeAppliance(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> CreateMigratingVm( google::cloud::vmmigration::v1::CreateMigratingVmRequest const& request) override; + StatusOr CreateMigratingVm( + ExperimentalTag, NoAwaitTag, + google::cloud::vmmigration::v1::CreateMigratingVmRequest const& request) + override; + + future> + CreateMigratingVm(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListMigratingVms( google::cloud::vmmigration::v1::ListMigratingVmsRequest request) override; @@ -124,36 +209,108 @@ class VmMigrationTracingConnection google::cloud::vmmigration::v1::UpdateMigratingVmRequest const& request) override; + StatusOr UpdateMigratingVm( + ExperimentalTag, NoAwaitTag, + google::cloud::vmmigration::v1::UpdateMigratingVmRequest const& request) + override; + + future> + UpdateMigratingVm(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteMigratingVm( google::cloud::vmmigration::v1::DeleteMigratingVmRequest const& request) override; + StatusOr DeleteMigratingVm( + ExperimentalTag, NoAwaitTag, + google::cloud::vmmigration::v1::DeleteMigratingVmRequest const& request) + override; + + future> + DeleteMigratingVm(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> StartMigration(google::cloud::vmmigration::v1::StartMigrationRequest const& request) override; + StatusOr StartMigration( + ExperimentalTag, NoAwaitTag, + google::cloud::vmmigration::v1::StartMigrationRequest const& request) + override; + + future> + StartMigration(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ResumeMigration(google::cloud::vmmigration::v1::ResumeMigrationRequest const& request) override; + StatusOr ResumeMigration( + ExperimentalTag, NoAwaitTag, + google::cloud::vmmigration::v1::ResumeMigrationRequest const& request) + override; + + future> + ResumeMigration(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> PauseMigration(google::cloud::vmmigration::v1::PauseMigrationRequest const& request) override; + StatusOr PauseMigration( + ExperimentalTag, NoAwaitTag, + google::cloud::vmmigration::v1::PauseMigrationRequest const& request) + override; + + future> + PauseMigration(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> FinalizeMigration( google::cloud::vmmigration::v1::FinalizeMigrationRequest const& request) override; + StatusOr FinalizeMigration( + ExperimentalTag, NoAwaitTag, + google::cloud::vmmigration::v1::FinalizeMigrationRequest const& request) + override; + + future> + FinalizeMigration(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> CreateCloneJob( google::cloud::vmmigration::v1::CreateCloneJobRequest const& request) override; + StatusOr CreateCloneJob( + ExperimentalTag, NoAwaitTag, + google::cloud::vmmigration::v1::CreateCloneJobRequest const& request) + override; + + future> CreateCloneJob( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> CancelCloneJob(google::cloud::vmmigration::v1::CancelCloneJobRequest const& request) override; + StatusOr CancelCloneJob( + ExperimentalTag, NoAwaitTag, + google::cloud::vmmigration::v1::CancelCloneJobRequest const& request) + override; + + future> + CancelCloneJob(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListCloneJobs( google::cloud::vmmigration::v1::ListCloneJobsRequest request) override; @@ -165,11 +322,29 @@ class VmMigrationTracingConnection google::cloud::vmmigration::v1::CreateCutoverJobRequest const& request) override; + StatusOr CreateCutoverJob( + ExperimentalTag, NoAwaitTag, + google::cloud::vmmigration::v1::CreateCutoverJobRequest const& request) + override; + + future> CreateCutoverJob( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> CancelCutoverJob( google::cloud::vmmigration::v1::CancelCutoverJobRequest const& request) override; + StatusOr CancelCutoverJob( + ExperimentalTag, NoAwaitTag, + google::cloud::vmmigration::v1::CancelCutoverJobRequest const& request) + override; + + future> + CancelCutoverJob(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListCutoverJobs( google::cloud::vmmigration::v1::ListCutoverJobsRequest request) override; @@ -187,24 +362,70 @@ class VmMigrationTracingConnection google::cloud::vmmigration::v1::CreateGroupRequest const& request) override; + StatusOr CreateGroup( + ExperimentalTag, NoAwaitTag, + google::cloud::vmmigration::v1::CreateGroupRequest const& request) + override; + + future> CreateGroup( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateGroup( google::cloud::vmmigration::v1::UpdateGroupRequest const& request) override; + StatusOr UpdateGroup( + ExperimentalTag, NoAwaitTag, + google::cloud::vmmigration::v1::UpdateGroupRequest const& request) + override; + + future> UpdateGroup( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteGroup(google::cloud::vmmigration::v1::DeleteGroupRequest const& request) override; + StatusOr DeleteGroup( + ExperimentalTag, NoAwaitTag, + google::cloud::vmmigration::v1::DeleteGroupRequest const& request) + override; + + future> + DeleteGroup(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> AddGroupMigration( google::cloud::vmmigration::v1::AddGroupMigrationRequest const& request) override; + StatusOr AddGroupMigration( + ExperimentalTag, NoAwaitTag, + google::cloud::vmmigration::v1::AddGroupMigrationRequest const& request) + override; + + future> + AddGroupMigration(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> RemoveGroupMigration( google::cloud::vmmigration::v1::RemoveGroupMigrationRequest const& request) override; + StatusOr RemoveGroupMigration( + ExperimentalTag, NoAwaitTag, + google::cloud::vmmigration::v1::RemoveGroupMigrationRequest const& + request) override; + + future> + RemoveGroupMigration( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListTargetProjects( google::cloud::vmmigration::v1::ListTargetProjectsRequest request) override; @@ -218,16 +439,43 @@ class VmMigrationTracingConnection google::cloud::vmmigration::v1::CreateTargetProjectRequest const& request) override; + StatusOr CreateTargetProject( + ExperimentalTag, NoAwaitTag, + google::cloud::vmmigration::v1::CreateTargetProjectRequest const& request) + override; + + future> + CreateTargetProject(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateTargetProject( google::cloud::vmmigration::v1::UpdateTargetProjectRequest const& request) override; + StatusOr UpdateTargetProject( + ExperimentalTag, NoAwaitTag, + google::cloud::vmmigration::v1::UpdateTargetProjectRequest const& request) + override; + + future> + UpdateTargetProject(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteTargetProject( google::cloud::vmmigration::v1::DeleteTargetProjectRequest const& request) override; + StatusOr DeleteTargetProject( + ExperimentalTag, NoAwaitTag, + google::cloud::vmmigration::v1::DeleteTargetProjectRequest const& request) + override; + + future> + DeleteTargetProject(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListReplicationCycles( google::cloud::vmmigration::v1::ListReplicationCyclesRequest request) diff --git a/google/cloud/vmmigration/v1/mocks/mock_vm_migration_connection.h b/google/cloud/vmmigration/v1/mocks/mock_vm_migration_connection.h index 3065a09aea0ee..32f29a2be4d98 100644 --- a/google/cloud/vmmigration/v1/mocks/mock_vm_migration_connection.h +++ b/google/cloud/vmmigration/v1/mocks/mock_vm_migration_connection.h @@ -60,17 +60,53 @@ class MockVmMigrationConnection : public vmmigration_v1::VmMigrationConnection { (google::cloud::vmmigration::v1::CreateSourceRequest const& request), (override)); + MOCK_METHOD( + StatusOr, CreateSource, + (ExperimentalTag, NoAwaitTag, + google::cloud::vmmigration::v1::CreateSourceRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateSource, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, UpdateSource, (google::cloud::vmmigration::v1::UpdateSourceRequest const& request), (override)); + MOCK_METHOD( + StatusOr, UpdateSource, + (ExperimentalTag, NoAwaitTag, + google::cloud::vmmigration::v1::UpdateSourceRequest const& request), + (override)); + + MOCK_METHOD(future>, + UpdateSource, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteSource, (google::cloud::vmmigration::v1::DeleteSourceRequest const& request), (override)); + MOCK_METHOD( + StatusOr, DeleteSource, + (ExperimentalTag, NoAwaitTag, + google::cloud::vmmigration::v1::DeleteSourceRequest const& request), + (override)); + + MOCK_METHOD( + future>, + DeleteSource, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr, FetchInventory, @@ -97,6 +133,19 @@ class MockVmMigrationConnection : public vmmigration_v1::VmMigrationConnection { request), (override)); + MOCK_METHOD( + StatusOr, CreateUtilizationReport, + (ExperimentalTag, NoAwaitTag, + google::cloud::vmmigration::v1::CreateUtilizationReportRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + CreateUtilizationReport, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteUtilizationReport, @@ -104,6 +153,19 @@ class MockVmMigrationConnection : public vmmigration_v1::VmMigrationConnection { request), (override)); + MOCK_METHOD( + StatusOr, DeleteUtilizationReport, + (ExperimentalTag, NoAwaitTag, + google::cloud::vmmigration::v1::DeleteUtilizationReportRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + DeleteUtilizationReport, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( (StreamRange), ListDatacenterConnectors, @@ -124,6 +186,19 @@ class MockVmMigrationConnection : public vmmigration_v1::VmMigrationConnection { request), (override)); + MOCK_METHOD( + StatusOr, CreateDatacenterConnector, + (ExperimentalTag, NoAwaitTag, + google::cloud::vmmigration::v1::CreateDatacenterConnectorRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + CreateDatacenterConnector, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteDatacenterConnector, @@ -131,6 +206,19 @@ class MockVmMigrationConnection : public vmmigration_v1::VmMigrationConnection { request), (override)); + MOCK_METHOD( + StatusOr, DeleteDatacenterConnector, + (ExperimentalTag, NoAwaitTag, + google::cloud::vmmigration::v1::DeleteDatacenterConnectorRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + DeleteDatacenterConnector, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future< StatusOr>, @@ -138,12 +226,37 @@ class MockVmMigrationConnection : public vmmigration_v1::VmMigrationConnection { (google::cloud::vmmigration::v1::UpgradeApplianceRequest const& request), (override)); + MOCK_METHOD( + StatusOr, UpgradeAppliance, + (ExperimentalTag, NoAwaitTag, + google::cloud::vmmigration::v1::UpgradeApplianceRequest const& request), + (override)); + + MOCK_METHOD( + future< + StatusOr>, + UpgradeAppliance, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, CreateMigratingVm, (google::cloud::vmmigration::v1::CreateMigratingVmRequest const& request), (override)); + MOCK_METHOD( + StatusOr, CreateMigratingVm, + (ExperimentalTag, NoAwaitTag, + google::cloud::vmmigration::v1::CreateMigratingVmRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateMigratingVm, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD((StreamRange), ListMigratingVms, (google::cloud::vmmigration::v1::ListMigratingVmsRequest request), @@ -160,30 +273,90 @@ class MockVmMigrationConnection : public vmmigration_v1::VmMigrationConnection { (google::cloud::vmmigration::v1::UpdateMigratingVmRequest const& request), (override)); + MOCK_METHOD( + StatusOr, UpdateMigratingVm, + (ExperimentalTag, NoAwaitTag, + google::cloud::vmmigration::v1::UpdateMigratingVmRequest const& request), + (override)); + + MOCK_METHOD(future>, + UpdateMigratingVm, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteMigratingVm, (google::cloud::vmmigration::v1::DeleteMigratingVmRequest const& request), (override)); + MOCK_METHOD( + StatusOr, DeleteMigratingVm, + (ExperimentalTag, NoAwaitTag, + google::cloud::vmmigration::v1::DeleteMigratingVmRequest const& request), + (override)); + + MOCK_METHOD( + future>, + DeleteMigratingVm, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, StartMigration, (google::cloud::vmmigration::v1::StartMigrationRequest const& request), (override)); + MOCK_METHOD( + StatusOr, StartMigration, + (ExperimentalTag, NoAwaitTag, + google::cloud::vmmigration::v1::StartMigrationRequest const& request), + (override)); + + MOCK_METHOD( + future>, + StartMigration, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, ResumeMigration, (google::cloud::vmmigration::v1::ResumeMigrationRequest const& request), (override)); + MOCK_METHOD( + StatusOr, ResumeMigration, + (ExperimentalTag, NoAwaitTag, + google::cloud::vmmigration::v1::ResumeMigrationRequest const& request), + (override)); + + MOCK_METHOD( + future>, + ResumeMigration, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, PauseMigration, (google::cloud::vmmigration::v1::PauseMigrationRequest const& request), (override)); + MOCK_METHOD( + StatusOr, PauseMigration, + (ExperimentalTag, NoAwaitTag, + google::cloud::vmmigration::v1::PauseMigrationRequest const& request), + (override)); + + MOCK_METHOD( + future>, + PauseMigration, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future< StatusOr>, @@ -191,18 +364,55 @@ class MockVmMigrationConnection : public vmmigration_v1::VmMigrationConnection { (google::cloud::vmmigration::v1::FinalizeMigrationRequest const& request), (override)); + MOCK_METHOD( + StatusOr, FinalizeMigration, + (ExperimentalTag, NoAwaitTag, + google::cloud::vmmigration::v1::FinalizeMigrationRequest const& request), + (override)); + + MOCK_METHOD( + future< + StatusOr>, + FinalizeMigration, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, CreateCloneJob, (google::cloud::vmmigration::v1::CreateCloneJobRequest const& request), (override)); + MOCK_METHOD( + StatusOr, CreateCloneJob, + (ExperimentalTag, NoAwaitTag, + google::cloud::vmmigration::v1::CreateCloneJobRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateCloneJob, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, CancelCloneJob, (google::cloud::vmmigration::v1::CancelCloneJobRequest const& request), (override)); + MOCK_METHOD( + StatusOr, CancelCloneJob, + (ExperimentalTag, NoAwaitTag, + google::cloud::vmmigration::v1::CancelCloneJobRequest const& request), + (override)); + + MOCK_METHOD( + future>, + CancelCloneJob, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD((StreamRange), ListCloneJobs, (google::cloud::vmmigration::v1::ListCloneJobsRequest request), @@ -219,6 +429,18 @@ class MockVmMigrationConnection : public vmmigration_v1::VmMigrationConnection { (google::cloud::vmmigration::v1::CreateCutoverJobRequest const& request), (override)); + MOCK_METHOD( + StatusOr, CreateCutoverJob, + (ExperimentalTag, NoAwaitTag, + google::cloud::vmmigration::v1::CreateCutoverJobRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateCutoverJob, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future< StatusOr>, @@ -226,6 +448,19 @@ class MockVmMigrationConnection : public vmmigration_v1::VmMigrationConnection { (google::cloud::vmmigration::v1::CancelCutoverJobRequest const& request), (override)); + MOCK_METHOD( + StatusOr, CancelCutoverJob, + (ExperimentalTag, NoAwaitTag, + google::cloud::vmmigration::v1::CancelCutoverJobRequest const& request), + (override)); + + MOCK_METHOD( + future< + StatusOr>, + CancelCutoverJob, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD((StreamRange), ListCutoverJobs, (google::cloud::vmmigration::v1::ListCutoverJobsRequest request), @@ -249,17 +484,53 @@ class MockVmMigrationConnection : public vmmigration_v1::VmMigrationConnection { (google::cloud::vmmigration::v1::CreateGroupRequest const& request), (override)); + MOCK_METHOD( + StatusOr, CreateGroup, + (ExperimentalTag, NoAwaitTag, + google::cloud::vmmigration::v1::CreateGroupRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateGroup, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, UpdateGroup, (google::cloud::vmmigration::v1::UpdateGroupRequest const& request), (override)); + MOCK_METHOD( + StatusOr, UpdateGroup, + (ExperimentalTag, NoAwaitTag, + google::cloud::vmmigration::v1::UpdateGroupRequest const& request), + (override)); + + MOCK_METHOD(future>, + UpdateGroup, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteGroup, (google::cloud::vmmigration::v1::DeleteGroupRequest const& request), (override)); + MOCK_METHOD( + StatusOr, DeleteGroup, + (ExperimentalTag, NoAwaitTag, + google::cloud::vmmigration::v1::DeleteGroupRequest const& request), + (override)); + + MOCK_METHOD( + future>, + DeleteGroup, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future< StatusOr>, @@ -267,6 +538,19 @@ class MockVmMigrationConnection : public vmmigration_v1::VmMigrationConnection { (google::cloud::vmmigration::v1::AddGroupMigrationRequest const& request), (override)); + MOCK_METHOD( + StatusOr, AddGroupMigration, + (ExperimentalTag, NoAwaitTag, + google::cloud::vmmigration::v1::AddGroupMigrationRequest const& request), + (override)); + + MOCK_METHOD( + future< + StatusOr>, + AddGroupMigration, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, @@ -275,6 +559,20 @@ class MockVmMigrationConnection : public vmmigration_v1::VmMigrationConnection { request), (override)); + MOCK_METHOD( + StatusOr, RemoveGroupMigration, + (ExperimentalTag, NoAwaitTag, + google::cloud::vmmigration::v1::RemoveGroupMigrationRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + RemoveGroupMigration, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( (StreamRange), ListTargetProjects, @@ -292,12 +590,36 @@ class MockVmMigrationConnection : public vmmigration_v1::VmMigrationConnection { request), (override)); + MOCK_METHOD(StatusOr, CreateTargetProject, + (ExperimentalTag, NoAwaitTag, + google::cloud::vmmigration::v1::CreateTargetProjectRequest const& + request), + (override)); + + MOCK_METHOD(future>, + CreateTargetProject, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, UpdateTargetProject, (google::cloud::vmmigration::v1::UpdateTargetProjectRequest const& request), (override)); + MOCK_METHOD(StatusOr, UpdateTargetProject, + (ExperimentalTag, NoAwaitTag, + google::cloud::vmmigration::v1::UpdateTargetProjectRequest const& + request), + (override)); + + MOCK_METHOD(future>, + UpdateTargetProject, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteTargetProject, @@ -305,6 +627,18 @@ class MockVmMigrationConnection : public vmmigration_v1::VmMigrationConnection { request), (override)); + MOCK_METHOD(StatusOr, DeleteTargetProject, + (ExperimentalTag, NoAwaitTag, + google::cloud::vmmigration::v1::DeleteTargetProjectRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + DeleteTargetProject, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( (StreamRange), ListReplicationCycles, diff --git a/google/cloud/vmmigration/v1/vm_migration_connection.cc b/google/cloud/vmmigration/v1/vm_migration_connection.cc index 1c7a7ac6384d5..9448243f993c1 100644 --- a/google/cloud/vmmigration/v1/vm_migration_connection.cc +++ b/google/cloud/vmmigration/v1/vm_migration_connection.cc @@ -60,6 +60,21 @@ VmMigrationConnection::CreateSource( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr VmMigrationConnection::CreateSource( + ExperimentalTag, NoAwaitTag, + google::cloud::vmmigration::v1::CreateSourceRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +VmMigrationConnection::CreateSource(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> VmMigrationConnection::UpdateSource( google::cloud::vmmigration::v1::UpdateSourceRequest const&) { @@ -68,6 +83,21 @@ VmMigrationConnection::UpdateSource( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr VmMigrationConnection::UpdateSource( + ExperimentalTag, NoAwaitTag, + google::cloud::vmmigration::v1::UpdateSourceRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +VmMigrationConnection::UpdateSource(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> VmMigrationConnection::DeleteSource( google::cloud::vmmigration::v1::DeleteSourceRequest const&) { @@ -76,6 +106,21 @@ VmMigrationConnection::DeleteSource( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr VmMigrationConnection::DeleteSource( + ExperimentalTag, NoAwaitTag, + google::cloud::vmmigration::v1::DeleteSourceRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +VmMigrationConnection::DeleteSource(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr VmMigrationConnection::FetchInventory( google::cloud::vmmigration::v1::FetchInventoryRequest const&) { @@ -104,6 +149,22 @@ VmMigrationConnection::CreateUtilizationReport( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +VmMigrationConnection::CreateUtilizationReport( + ExperimentalTag, NoAwaitTag, + google::cloud::vmmigration::v1::CreateUtilizationReportRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +VmMigrationConnection::CreateUtilizationReport( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> VmMigrationConnection::DeleteUtilizationReport( google::cloud::vmmigration::v1::DeleteUtilizationReportRequest const&) { @@ -112,6 +173,22 @@ VmMigrationConnection::DeleteUtilizationReport( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +VmMigrationConnection::DeleteUtilizationReport( + ExperimentalTag, NoAwaitTag, + google::cloud::vmmigration::v1::DeleteUtilizationReportRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +VmMigrationConnection::DeleteUtilizationReport( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StreamRange VmMigrationConnection::ListDatacenterConnectors( google::cloud::vmmigration::v1:: @@ -134,6 +211,22 @@ VmMigrationConnection::CreateDatacenterConnector( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +VmMigrationConnection::CreateDatacenterConnector( + ExperimentalTag, NoAwaitTag, + google::cloud::vmmigration::v1::CreateDatacenterConnectorRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +VmMigrationConnection::CreateDatacenterConnector( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> VmMigrationConnection::DeleteDatacenterConnector( google::cloud::vmmigration::v1::DeleteDatacenterConnectorRequest const&) { @@ -142,6 +235,22 @@ VmMigrationConnection::DeleteDatacenterConnector( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +VmMigrationConnection::DeleteDatacenterConnector( + ExperimentalTag, NoAwaitTag, + google::cloud::vmmigration::v1::DeleteDatacenterConnectorRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +VmMigrationConnection::DeleteDatacenterConnector( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> VmMigrationConnection::UpgradeAppliance( google::cloud::vmmigration::v1::UpgradeApplianceRequest const&) { @@ -150,6 +259,22 @@ VmMigrationConnection::UpgradeAppliance( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +VmMigrationConnection::UpgradeAppliance( + ExperimentalTag, NoAwaitTag, + google::cloud::vmmigration::v1::UpgradeApplianceRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +VmMigrationConnection::UpgradeAppliance(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> VmMigrationConnection::CreateMigratingVm( google::cloud::vmmigration::v1::CreateMigratingVmRequest const&) { @@ -158,6 +283,22 @@ VmMigrationConnection::CreateMigratingVm( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +VmMigrationConnection::CreateMigratingVm( + ExperimentalTag, NoAwaitTag, + google::cloud::vmmigration::v1::CreateMigratingVmRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +VmMigrationConnection::CreateMigratingVm( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StreamRange VmMigrationConnection::ListMigratingVms( google::cloud::vmmigration::v1:: @@ -180,6 +321,22 @@ VmMigrationConnection::UpdateMigratingVm( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +VmMigrationConnection::UpdateMigratingVm( + ExperimentalTag, NoAwaitTag, + google::cloud::vmmigration::v1::UpdateMigratingVmRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +VmMigrationConnection::UpdateMigratingVm( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> VmMigrationConnection::DeleteMigratingVm( google::cloud::vmmigration::v1::DeleteMigratingVmRequest const&) { @@ -188,6 +345,22 @@ VmMigrationConnection::DeleteMigratingVm( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +VmMigrationConnection::DeleteMigratingVm( + ExperimentalTag, NoAwaitTag, + google::cloud::vmmigration::v1::DeleteMigratingVmRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +VmMigrationConnection::DeleteMigratingVm( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> VmMigrationConnection::StartMigration( google::cloud::vmmigration::v1::StartMigrationRequest const&) { @@ -196,6 +369,21 @@ VmMigrationConnection::StartMigration( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr VmMigrationConnection::StartMigration( + ExperimentalTag, NoAwaitTag, + google::cloud::vmmigration::v1::StartMigrationRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +VmMigrationConnection::StartMigration(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> VmMigrationConnection::ResumeMigration( google::cloud::vmmigration::v1::ResumeMigrationRequest const&) { @@ -204,6 +392,21 @@ VmMigrationConnection::ResumeMigration( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr VmMigrationConnection::ResumeMigration( + ExperimentalTag, NoAwaitTag, + google::cloud::vmmigration::v1::ResumeMigrationRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +VmMigrationConnection::ResumeMigration(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> VmMigrationConnection::PauseMigration( google::cloud::vmmigration::v1::PauseMigrationRequest const&) { @@ -212,6 +415,21 @@ VmMigrationConnection::PauseMigration( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr VmMigrationConnection::PauseMigration( + ExperimentalTag, NoAwaitTag, + google::cloud::vmmigration::v1::PauseMigrationRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +VmMigrationConnection::PauseMigration(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> VmMigrationConnection::FinalizeMigration( google::cloud::vmmigration::v1::FinalizeMigrationRequest const&) { @@ -220,6 +438,22 @@ VmMigrationConnection::FinalizeMigration( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +VmMigrationConnection::FinalizeMigration( + ExperimentalTag, NoAwaitTag, + google::cloud::vmmigration::v1::FinalizeMigrationRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +VmMigrationConnection::FinalizeMigration( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> VmMigrationConnection::CreateCloneJob( google::cloud::vmmigration::v1::CreateCloneJobRequest const&) { @@ -228,6 +462,21 @@ VmMigrationConnection::CreateCloneJob( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr VmMigrationConnection::CreateCloneJob( + ExperimentalTag, NoAwaitTag, + google::cloud::vmmigration::v1::CreateCloneJobRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +VmMigrationConnection::CreateCloneJob(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> VmMigrationConnection::CancelCloneJob( google::cloud::vmmigration::v1::CancelCloneJobRequest const&) { @@ -236,6 +485,21 @@ VmMigrationConnection::CancelCloneJob( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr VmMigrationConnection::CancelCloneJob( + ExperimentalTag, NoAwaitTag, + google::cloud::vmmigration::v1::CancelCloneJobRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +VmMigrationConnection::CancelCloneJob(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StreamRange VmMigrationConnection::ListCloneJobs( google::cloud::vmmigration::v1:: @@ -258,6 +522,22 @@ VmMigrationConnection::CreateCutoverJob( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +VmMigrationConnection::CreateCutoverJob( + ExperimentalTag, NoAwaitTag, + google::cloud::vmmigration::v1::CreateCutoverJobRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +VmMigrationConnection::CreateCutoverJob(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> VmMigrationConnection::CancelCutoverJob( google::cloud::vmmigration::v1::CancelCutoverJobRequest const&) { @@ -266,6 +546,22 @@ VmMigrationConnection::CancelCutoverJob( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +VmMigrationConnection::CancelCutoverJob( + ExperimentalTag, NoAwaitTag, + google::cloud::vmmigration::v1::CancelCutoverJobRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +VmMigrationConnection::CancelCutoverJob(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StreamRange VmMigrationConnection::ListCutoverJobs( google::cloud::vmmigration::v1:: @@ -301,6 +597,21 @@ VmMigrationConnection::CreateGroup( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr VmMigrationConnection::CreateGroup( + ExperimentalTag, NoAwaitTag, + google::cloud::vmmigration::v1::CreateGroupRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +VmMigrationConnection::CreateGroup(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> VmMigrationConnection::UpdateGroup( google::cloud::vmmigration::v1::UpdateGroupRequest const&) { @@ -309,6 +620,21 @@ VmMigrationConnection::UpdateGroup( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr VmMigrationConnection::UpdateGroup( + ExperimentalTag, NoAwaitTag, + google::cloud::vmmigration::v1::UpdateGroupRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +VmMigrationConnection::UpdateGroup(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> VmMigrationConnection::DeleteGroup( google::cloud::vmmigration::v1::DeleteGroupRequest const&) { @@ -317,6 +643,21 @@ VmMigrationConnection::DeleteGroup( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr VmMigrationConnection::DeleteGroup( + ExperimentalTag, NoAwaitTag, + google::cloud::vmmigration::v1::DeleteGroupRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +VmMigrationConnection::DeleteGroup(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> VmMigrationConnection::AddGroupMigration( google::cloud::vmmigration::v1::AddGroupMigrationRequest const&) { @@ -325,6 +666,22 @@ VmMigrationConnection::AddGroupMigration( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +VmMigrationConnection::AddGroupMigration( + ExperimentalTag, NoAwaitTag, + google::cloud::vmmigration::v1::AddGroupMigrationRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +VmMigrationConnection::AddGroupMigration( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> VmMigrationConnection::RemoveGroupMigration( google::cloud::vmmigration::v1::RemoveGroupMigrationRequest const&) { @@ -333,6 +690,22 @@ VmMigrationConnection::RemoveGroupMigration( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +VmMigrationConnection::RemoveGroupMigration( + ExperimentalTag, NoAwaitTag, + google::cloud::vmmigration::v1::RemoveGroupMigrationRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +VmMigrationConnection::RemoveGroupMigration( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StreamRange VmMigrationConnection::ListTargetProjects( google::cloud::vmmigration::v1:: @@ -355,6 +728,22 @@ VmMigrationConnection::CreateTargetProject( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +VmMigrationConnection::CreateTargetProject( + ExperimentalTag, NoAwaitTag, + google::cloud::vmmigration::v1::CreateTargetProjectRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +VmMigrationConnection::CreateTargetProject( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> VmMigrationConnection::UpdateTargetProject( google::cloud::vmmigration::v1::UpdateTargetProjectRequest const&) { @@ -363,6 +752,22 @@ VmMigrationConnection::UpdateTargetProject( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +VmMigrationConnection::UpdateTargetProject( + ExperimentalTag, NoAwaitTag, + google::cloud::vmmigration::v1::UpdateTargetProjectRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +VmMigrationConnection::UpdateTargetProject( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> VmMigrationConnection::DeleteTargetProject( google::cloud::vmmigration::v1::DeleteTargetProjectRequest const&) { @@ -371,6 +776,22 @@ VmMigrationConnection::DeleteTargetProject( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +VmMigrationConnection::DeleteTargetProject( + ExperimentalTag, NoAwaitTag, + google::cloud::vmmigration::v1::DeleteTargetProjectRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +VmMigrationConnection::DeleteTargetProject( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StreamRange VmMigrationConnection::ListReplicationCycles( google::cloud::vmmigration::v1:: diff --git a/google/cloud/vmmigration/v1/vm_migration_connection.h b/google/cloud/vmmigration/v1/vm_migration_connection.h index 8407a593760bf..6649e116f3532 100644 --- a/google/cloud/vmmigration/v1/vm_migration_connection.h +++ b/google/cloud/vmmigration/v1/vm_migration_connection.h @@ -22,8 +22,10 @@ #include "google/cloud/vmmigration/v1/internal/vm_migration_retry_traits.h" #include "google/cloud/vmmigration/v1/vm_migration_connection_idempotency_policy.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/internal/retry_policy_impl.h" +#include "google/cloud/no_await_tag.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" #include "google/cloud/status_or.h" @@ -193,13 +195,35 @@ class VmMigrationConnection { virtual future> CreateSource( google::cloud::vmmigration::v1::CreateSourceRequest const& request); + virtual StatusOr CreateSource( + ExperimentalTag, NoAwaitTag, + google::cloud::vmmigration::v1::CreateSourceRequest const& request); + + virtual future> CreateSource( + ExperimentalTag, google::longrunning::Operation const& operation); + virtual future> UpdateSource( google::cloud::vmmigration::v1::UpdateSourceRequest const& request); + virtual StatusOr UpdateSource( + ExperimentalTag, NoAwaitTag, + google::cloud::vmmigration::v1::UpdateSourceRequest const& request); + + virtual future> UpdateSource( + ExperimentalTag, google::longrunning::Operation const& operation); + virtual future> DeleteSource( google::cloud::vmmigration::v1::DeleteSourceRequest const& request); + virtual StatusOr DeleteSource( + ExperimentalTag, NoAwaitTag, + google::cloud::vmmigration::v1::DeleteSourceRequest const& request); + + virtual future> + DeleteSource(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StatusOr FetchInventory( google::cloud::vmmigration::v1::FetchInventoryRequest const& request); @@ -218,11 +242,29 @@ class VmMigrationConnection { google::cloud::vmmigration::v1::CreateUtilizationReportRequest const& request); + virtual StatusOr CreateUtilizationReport( + ExperimentalTag, NoAwaitTag, + google::cloud::vmmigration::v1::CreateUtilizationReportRequest const& + request); + + virtual future> + CreateUtilizationReport(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> DeleteUtilizationReport( google::cloud::vmmigration::v1::DeleteUtilizationReportRequest const& request); + virtual StatusOr DeleteUtilizationReport( + ExperimentalTag, NoAwaitTag, + google::cloud::vmmigration::v1::DeleteUtilizationReportRequest const& + request); + + virtual future> + DeleteUtilizationReport(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StreamRange ListDatacenterConnectors( google::cloud::vmmigration::v1::ListDatacenterConnectorsRequest request); @@ -237,20 +279,55 @@ class VmMigrationConnection { google::cloud::vmmigration::v1::CreateDatacenterConnectorRequest const& request); + virtual StatusOr CreateDatacenterConnector( + ExperimentalTag, NoAwaitTag, + google::cloud::vmmigration::v1::CreateDatacenterConnectorRequest const& + request); + + virtual future> + CreateDatacenterConnector(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> DeleteDatacenterConnector( google::cloud::vmmigration::v1::DeleteDatacenterConnectorRequest const& request); + virtual StatusOr DeleteDatacenterConnector( + ExperimentalTag, NoAwaitTag, + google::cloud::vmmigration::v1::DeleteDatacenterConnectorRequest const& + request); + + virtual future> + DeleteDatacenterConnector(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future< StatusOr> UpgradeAppliance( google::cloud::vmmigration::v1::UpgradeApplianceRequest const& request); + virtual StatusOr UpgradeAppliance( + ExperimentalTag, NoAwaitTag, + google::cloud::vmmigration::v1::UpgradeApplianceRequest const& request); + + virtual future< + StatusOr> + UpgradeAppliance(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> CreateMigratingVm( google::cloud::vmmigration::v1::CreateMigratingVmRequest const& request); + virtual StatusOr CreateMigratingVm( + ExperimentalTag, NoAwaitTag, + google::cloud::vmmigration::v1::CreateMigratingVmRequest const& request); + + virtual future> + CreateMigratingVm(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StreamRange ListMigratingVms( google::cloud::vmmigration::v1::ListMigratingVmsRequest request); @@ -262,39 +339,108 @@ class VmMigrationConnection { UpdateMigratingVm( google::cloud::vmmigration::v1::UpdateMigratingVmRequest const& request); + virtual StatusOr UpdateMigratingVm( + ExperimentalTag, NoAwaitTag, + google::cloud::vmmigration::v1::UpdateMigratingVmRequest const& request); + + virtual future> + UpdateMigratingVm(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> DeleteMigratingVm( google::cloud::vmmigration::v1::DeleteMigratingVmRequest const& request); + virtual StatusOr DeleteMigratingVm( + ExperimentalTag, NoAwaitTag, + google::cloud::vmmigration::v1::DeleteMigratingVmRequest const& request); + + virtual future> + DeleteMigratingVm(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future< StatusOr> StartMigration( google::cloud::vmmigration::v1::StartMigrationRequest const& request); + virtual StatusOr StartMigration( + ExperimentalTag, NoAwaitTag, + google::cloud::vmmigration::v1::StartMigrationRequest const& request); + + virtual future< + StatusOr> + StartMigration(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future< StatusOr> ResumeMigration( google::cloud::vmmigration::v1::ResumeMigrationRequest const& request); + virtual StatusOr ResumeMigration( + ExperimentalTag, NoAwaitTag, + google::cloud::vmmigration::v1::ResumeMigrationRequest const& request); + + virtual future< + StatusOr> + ResumeMigration(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future< StatusOr> PauseMigration( google::cloud::vmmigration::v1::PauseMigrationRequest const& request); + virtual StatusOr PauseMigration( + ExperimentalTag, NoAwaitTag, + google::cloud::vmmigration::v1::PauseMigrationRequest const& request); + + virtual future< + StatusOr> + PauseMigration(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future< StatusOr> FinalizeMigration( google::cloud::vmmigration::v1::FinalizeMigrationRequest const& request); + virtual StatusOr FinalizeMigration( + ExperimentalTag, NoAwaitTag, + google::cloud::vmmigration::v1::FinalizeMigrationRequest const& request); + + virtual future< + StatusOr> + FinalizeMigration(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> CreateCloneJob( google::cloud::vmmigration::v1::CreateCloneJobRequest const& request); + virtual StatusOr CreateCloneJob( + ExperimentalTag, NoAwaitTag, + google::cloud::vmmigration::v1::CreateCloneJobRequest const& request); + + virtual future> + CreateCloneJob(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future< StatusOr> CancelCloneJob( google::cloud::vmmigration::v1::CancelCloneJobRequest const& request); + virtual StatusOr CancelCloneJob( + ExperimentalTag, NoAwaitTag, + google::cloud::vmmigration::v1::CancelCloneJobRequest const& request); + + virtual future< + StatusOr> + CancelCloneJob(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StreamRange ListCloneJobs( google::cloud::vmmigration::v1::ListCloneJobsRequest request); @@ -305,11 +451,28 @@ class VmMigrationConnection { CreateCutoverJob( google::cloud::vmmigration::v1::CreateCutoverJobRequest const& request); + virtual StatusOr CreateCutoverJob( + ExperimentalTag, NoAwaitTag, + google::cloud::vmmigration::v1::CreateCutoverJobRequest const& request); + + virtual future> + CreateCutoverJob(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future< StatusOr> CancelCutoverJob( google::cloud::vmmigration::v1::CancelCutoverJobRequest const& request); + virtual StatusOr CancelCutoverJob( + ExperimentalTag, NoAwaitTag, + google::cloud::vmmigration::v1::CancelCutoverJobRequest const& request); + + virtual future< + StatusOr> + CancelCutoverJob(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StreamRange ListCutoverJobs( google::cloud::vmmigration::v1::ListCutoverJobsRequest request); @@ -326,24 +489,64 @@ class VmMigrationConnection { virtual future> CreateGroup( google::cloud::vmmigration::v1::CreateGroupRequest const& request); + virtual StatusOr CreateGroup( + ExperimentalTag, NoAwaitTag, + google::cloud::vmmigration::v1::CreateGroupRequest const& request); + + virtual future> CreateGroup( + ExperimentalTag, google::longrunning::Operation const& operation); + virtual future> UpdateGroup( google::cloud::vmmigration::v1::UpdateGroupRequest const& request); + virtual StatusOr UpdateGroup( + ExperimentalTag, NoAwaitTag, + google::cloud::vmmigration::v1::UpdateGroupRequest const& request); + + virtual future> UpdateGroup( + ExperimentalTag, google::longrunning::Operation const& operation); + virtual future> DeleteGroup( google::cloud::vmmigration::v1::DeleteGroupRequest const& request); + virtual StatusOr DeleteGroup( + ExperimentalTag, NoAwaitTag, + google::cloud::vmmigration::v1::DeleteGroupRequest const& request); + + virtual future> + DeleteGroup(ExperimentalTag, google::longrunning::Operation const& operation); + virtual future< StatusOr> AddGroupMigration( google::cloud::vmmigration::v1::AddGroupMigrationRequest const& request); + virtual StatusOr AddGroupMigration( + ExperimentalTag, NoAwaitTag, + google::cloud::vmmigration::v1::AddGroupMigrationRequest const& request); + + virtual future< + StatusOr> + AddGroupMigration(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future< StatusOr> RemoveGroupMigration( google::cloud::vmmigration::v1::RemoveGroupMigrationRequest const& request); + virtual StatusOr RemoveGroupMigration( + ExperimentalTag, NoAwaitTag, + google::cloud::vmmigration::v1::RemoveGroupMigrationRequest const& + request); + + virtual future< + StatusOr> + RemoveGroupMigration(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StreamRange ListTargetProjects( google::cloud::vmmigration::v1::ListTargetProjectsRequest request); @@ -357,16 +560,43 @@ class VmMigrationConnection { google::cloud::vmmigration::v1::CreateTargetProjectRequest const& request); + virtual StatusOr CreateTargetProject( + ExperimentalTag, NoAwaitTag, + google::cloud::vmmigration::v1::CreateTargetProjectRequest const& + request); + + virtual future> + CreateTargetProject(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> UpdateTargetProject( google::cloud::vmmigration::v1::UpdateTargetProjectRequest const& request); + virtual StatusOr UpdateTargetProject( + ExperimentalTag, NoAwaitTag, + google::cloud::vmmigration::v1::UpdateTargetProjectRequest const& + request); + + virtual future> + UpdateTargetProject(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> DeleteTargetProject( google::cloud::vmmigration::v1::DeleteTargetProjectRequest const& request); + virtual StatusOr DeleteTargetProject( + ExperimentalTag, NoAwaitTag, + google::cloud::vmmigration::v1::DeleteTargetProjectRequest const& + request); + + virtual future> + DeleteTargetProject(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StreamRange ListReplicationCycles( google::cloud::vmmigration::v1::ListReplicationCyclesRequest request); diff --git a/google/cloud/vmwareengine/v1/internal/vmware_engine_connection_impl.cc b/google/cloud/vmwareengine/v1/internal/vmware_engine_connection_impl.cc index 5b838225c1e41..ca32f398c4c74 100644 --- a/google/cloud/vmwareengine/v1/internal/vmware_engine_connection_impl.cc +++ b/google/cloud/vmwareengine/v1/internal/vmware_engine_connection_impl.cc @@ -156,6 +156,59 @@ VmwareEngineConnectionImpl::CreatePrivateCloud( polling_policy(*current), __func__); } +StatusOr +VmwareEngineConnectionImpl::CreatePrivateCloud( + ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::CreatePrivateCloudRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreatePrivateCloud(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::vmwareengine::v1::CreatePrivateCloudRequest const& + request) { + return stub_->CreatePrivateCloud(context, options, request); + }, + *current, request, __func__); +} + +future> +VmwareEngineConnectionImpl::CreatePrivateCloud( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to CreatePrivateCloud", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::vmwareengine::v1::PrivateCloud>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::vmwareengine::v1::PrivateCloud>, + polling_policy(*current), __func__); +} + future> VmwareEngineConnectionImpl::UpdatePrivateCloud( google::cloud::vmwareengine::v1::UpdatePrivateCloudRequest const& request) { @@ -196,6 +249,59 @@ VmwareEngineConnectionImpl::UpdatePrivateCloud( polling_policy(*current), __func__); } +StatusOr +VmwareEngineConnectionImpl::UpdatePrivateCloud( + ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::UpdatePrivateCloudRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UpdatePrivateCloud(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::vmwareengine::v1::UpdatePrivateCloudRequest const& + request) { + return stub_->UpdatePrivateCloud(context, options, request); + }, + *current, request, __func__); +} + +future> +VmwareEngineConnectionImpl::UpdatePrivateCloud( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to UpdatePrivateCloud", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::vmwareengine::v1::PrivateCloud>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::vmwareengine::v1::PrivateCloud>, + polling_policy(*current), __func__); +} + future> VmwareEngineConnectionImpl::DeletePrivateCloud( google::cloud::vmwareengine::v1::DeletePrivateCloudRequest const& request) { @@ -236,6 +342,59 @@ VmwareEngineConnectionImpl::DeletePrivateCloud( polling_policy(*current), __func__); } +StatusOr +VmwareEngineConnectionImpl::DeletePrivateCloud( + ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::DeletePrivateCloudRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeletePrivateCloud(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::vmwareengine::v1::DeletePrivateCloudRequest const& + request) { + return stub_->DeletePrivateCloud(context, options, request); + }, + *current, request, __func__); +} + +future> +VmwareEngineConnectionImpl::DeletePrivateCloud( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DeletePrivateCloud", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::vmwareengine::v1::PrivateCloud>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::vmwareengine::v1::PrivateCloud>, + polling_policy(*current), __func__); +} + future> VmwareEngineConnectionImpl::UndeletePrivateCloud( google::cloud::vmwareengine::v1::UndeletePrivateCloudRequest const& @@ -277,6 +436,60 @@ VmwareEngineConnectionImpl::UndeletePrivateCloud( polling_policy(*current), __func__); } +StatusOr +VmwareEngineConnectionImpl::UndeletePrivateCloud( + ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::UndeletePrivateCloudRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UndeletePrivateCloud(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::vmwareengine::v1::UndeletePrivateCloudRequest const& + request) { + return stub_->UndeletePrivateCloud(context, options, request); + }, + *current, request, __func__); +} + +future> +VmwareEngineConnectionImpl::UndeletePrivateCloud( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to UndeletePrivateCloud", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::vmwareengine::v1::PrivateCloud>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::vmwareengine::v1::PrivateCloud>, + polling_policy(*current), __func__); +} + StreamRange VmwareEngineConnectionImpl::ListClusters( google::cloud::vmwareengine::v1::ListClustersRequest request) { @@ -366,6 +579,59 @@ VmwareEngineConnectionImpl::CreateCluster( polling_policy(*current), __func__); } +StatusOr +VmwareEngineConnectionImpl::CreateCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::CreateClusterRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateCluster(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::vmwareengine::v1::CreateClusterRequest const& + request) { + return stub_->CreateCluster(context, options, request); + }, + *current, request, __func__); +} + +future> +VmwareEngineConnectionImpl::CreateCluster( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to CreateCluster", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::vmwareengine::v1::Cluster>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::vmwareengine::v1::Cluster>, + polling_policy(*current), __func__); +} + future> VmwareEngineConnectionImpl::UpdateCluster( google::cloud::vmwareengine::v1::UpdateClusterRequest const& request) { @@ -406,6 +672,59 @@ VmwareEngineConnectionImpl::UpdateCluster( polling_policy(*current), __func__); } +StatusOr +VmwareEngineConnectionImpl::UpdateCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::UpdateClusterRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UpdateCluster(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::vmwareengine::v1::UpdateClusterRequest const& + request) { + return stub_->UpdateCluster(context, options, request); + }, + *current, request, __func__); +} + +future> +VmwareEngineConnectionImpl::UpdateCluster( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to UpdateCluster", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::vmwareengine::v1::Cluster>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::vmwareengine::v1::Cluster>, + polling_policy(*current), __func__); +} + future> VmwareEngineConnectionImpl::DeleteCluster( google::cloud::vmwareengine::v1::DeleteClusterRequest const& request) { @@ -446,6 +765,59 @@ VmwareEngineConnectionImpl::DeleteCluster( polling_policy(*current), __func__); } +StatusOr +VmwareEngineConnectionImpl::DeleteCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::DeleteClusterRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteCluster(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::vmwareengine::v1::DeleteClusterRequest const& + request) { + return stub_->DeleteCluster(context, options, request); + }, + *current, request, __func__); +} + +future> +VmwareEngineConnectionImpl::DeleteCluster( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteCluster", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::vmwareengine::v1::OperationMetadata>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::cloud::vmwareengine::v1::OperationMetadata>, + polling_policy(*current), __func__); +} + StreamRange VmwareEngineConnectionImpl::ListNodes( google::cloud::vmwareengine::v1::ListNodesRequest request) { @@ -627,9 +999,64 @@ VmwareEngineConnectionImpl::CreateExternalAddress( polling_policy(*current), __func__); } -future> -VmwareEngineConnectionImpl::UpdateExternalAddress( - google::cloud::vmwareengine::v1::UpdateExternalAddressRequest const& +StatusOr +VmwareEngineConnectionImpl::CreateExternalAddress( + ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::CreateExternalAddressRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateExternalAddress(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::vmwareengine::v1::CreateExternalAddressRequest const& + request) { + return stub_->CreateExternalAddress(context, options, request); + }, + *current, request, __func__); +} + +future> +VmwareEngineConnectionImpl::CreateExternalAddress( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to CreateExternalAddress", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::vmwareengine::v1::ExternalAddress>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::vmwareengine::v1::ExternalAddress>, + polling_policy(*current), __func__); +} + +future> +VmwareEngineConnectionImpl::UpdateExternalAddress( + google::cloud::vmwareengine::v1::UpdateExternalAddressRequest const& request) { auto current = google::cloud::internal::SaveCurrentOptions(); auto request_copy = request; @@ -668,6 +1095,61 @@ VmwareEngineConnectionImpl::UpdateExternalAddress( polling_policy(*current), __func__); } +StatusOr +VmwareEngineConnectionImpl::UpdateExternalAddress( + ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::UpdateExternalAddressRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UpdateExternalAddress(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::vmwareengine::v1::UpdateExternalAddressRequest const& + request) { + return stub_->UpdateExternalAddress(context, options, request); + }, + *current, request, __func__); +} + +future> +VmwareEngineConnectionImpl::UpdateExternalAddress( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to UpdateExternalAddress", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::vmwareengine::v1::ExternalAddress>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::vmwareengine::v1::ExternalAddress>, + polling_policy(*current), __func__); +} + future> VmwareEngineConnectionImpl::DeleteExternalAddress( google::cloud::vmwareengine::v1::DeleteExternalAddressRequest const& @@ -709,6 +1191,61 @@ VmwareEngineConnectionImpl::DeleteExternalAddress( polling_policy(*current), __func__); } +StatusOr +VmwareEngineConnectionImpl::DeleteExternalAddress( + ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::DeleteExternalAddressRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteExternalAddress(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::vmwareengine::v1::DeleteExternalAddressRequest const& + request) { + return stub_->DeleteExternalAddress(context, options, request); + }, + *current, request, __func__); +} + +future> +VmwareEngineConnectionImpl::DeleteExternalAddress( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteExternalAddress", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::vmwareengine::v1::OperationMetadata>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::cloud::vmwareengine::v1::OperationMetadata>, + polling_policy(*current), __func__); +} + StreamRange VmwareEngineConnectionImpl::ListSubnets( google::cloud::vmwareengine::v1::ListSubnetsRequest request) { @@ -796,6 +1333,58 @@ VmwareEngineConnectionImpl::UpdateSubnet( polling_policy(*current), __func__); } +StatusOr +VmwareEngineConnectionImpl::UpdateSubnet( + ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::UpdateSubnetRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UpdateSubnet(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::vmwareengine::v1::UpdateSubnetRequest const& request) { + return stub_->UpdateSubnet(context, options, request); + }, + *current, request, __func__); +} + +future> +VmwareEngineConnectionImpl::UpdateSubnet( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to UpdateSubnet", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::vmwareengine::v1::Subnet>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::vmwareengine::v1::Subnet>, + polling_policy(*current), __func__); +} + StreamRange VmwareEngineConnectionImpl::ListExternalAccessRules( google::cloud::vmwareengine::v1::ListExternalAccessRulesRequest request) { @@ -889,6 +1478,60 @@ VmwareEngineConnectionImpl::CreateExternalAccessRule( polling_policy(*current), __func__); } +StatusOr +VmwareEngineConnectionImpl::CreateExternalAccessRule( + ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::CreateExternalAccessRuleRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateExternalAccessRule(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::vmwareengine::v1:: + CreateExternalAccessRuleRequest const& request) { + return stub_->CreateExternalAccessRule(context, options, request); + }, + *current, request, __func__); +} + +future> +VmwareEngineConnectionImpl::CreateExternalAccessRule( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to CreateExternalAccessRule", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::vmwareengine::v1::ExternalAccessRule>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::vmwareengine::v1::ExternalAccessRule>, + polling_policy(*current), __func__); +} + future> VmwareEngineConnectionImpl::UpdateExternalAccessRule( google::cloud::vmwareengine::v1::UpdateExternalAccessRuleRequest const& @@ -929,6 +1572,60 @@ VmwareEngineConnectionImpl::UpdateExternalAccessRule( polling_policy(*current), __func__); } +StatusOr +VmwareEngineConnectionImpl::UpdateExternalAccessRule( + ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::UpdateExternalAccessRuleRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UpdateExternalAccessRule(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::vmwareengine::v1:: + UpdateExternalAccessRuleRequest const& request) { + return stub_->UpdateExternalAccessRule(context, options, request); + }, + *current, request, __func__); +} + +future> +VmwareEngineConnectionImpl::UpdateExternalAccessRule( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to UpdateExternalAccessRule", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::vmwareengine::v1::ExternalAccessRule>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::vmwareengine::v1::ExternalAccessRule>, + polling_policy(*current), __func__); +} + future> VmwareEngineConnectionImpl::DeleteExternalAccessRule( google::cloud::vmwareengine::v1::DeleteExternalAccessRuleRequest const& @@ -969,29 +1666,83 @@ VmwareEngineConnectionImpl::DeleteExternalAccessRule( polling_policy(*current), __func__); } -StreamRange -VmwareEngineConnectionImpl::ListLoggingServers( - google::cloud::vmwareengine::v1::ListLoggingServersRequest request) { - request.clear_page_token(); +StatusOr +VmwareEngineConnectionImpl::DeleteExternalAccessRule( + ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::DeleteExternalAccessRuleRequest const& + request) { auto current = google::cloud::internal::SaveCurrentOptions(); - auto idempotency = idempotency_policy(*current)->ListLoggingServers(request); - char const* function_name = __func__; - return google::cloud::internal::MakePaginationRange< - StreamRange>( - current, std::move(request), - [idempotency, function_name, stub = stub_, - retry = std::shared_ptr( - retry_policy(*current)), - backoff = std::shared_ptr(backoff_policy(*current))]( - Options const& options, - google::cloud::vmwareengine::v1::ListLoggingServersRequest const& r) { - return google::cloud::internal::RetryLoop( - retry->clone(), backoff->clone(), idempotency, - [stub](grpc::ClientContext& context, Options const& options, - google::cloud::vmwareengine::v1:: - ListLoggingServersRequest const& request) { - return stub->ListLoggingServers(context, options, request); - }, + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteExternalAccessRule(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::vmwareengine::v1:: + DeleteExternalAccessRuleRequest const& request) { + return stub_->DeleteExternalAccessRule(context, options, request); + }, + *current, request, __func__); +} + +future> +VmwareEngineConnectionImpl::DeleteExternalAccessRule( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteExternalAccessRule", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::vmwareengine::v1::OperationMetadata>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::cloud::vmwareengine::v1::OperationMetadata>, + polling_policy(*current), __func__); +} + +StreamRange +VmwareEngineConnectionImpl::ListLoggingServers( + google::cloud::vmwareengine::v1::ListLoggingServersRequest request) { + request.clear_page_token(); + auto current = google::cloud::internal::SaveCurrentOptions(); + auto idempotency = idempotency_policy(*current)->ListLoggingServers(request); + char const* function_name = __func__; + return google::cloud::internal::MakePaginationRange< + StreamRange>( + current, std::move(request), + [idempotency, function_name, stub = stub_, + retry = std::shared_ptr( + retry_policy(*current)), + backoff = std::shared_ptr(backoff_policy(*current))]( + Options const& options, + google::cloud::vmwareengine::v1::ListLoggingServersRequest const& r) { + return google::cloud::internal::RetryLoop( + retry->clone(), backoff->clone(), idempotency, + [stub](grpc::ClientContext& context, Options const& options, + google::cloud::vmwareengine::v1:: + ListLoggingServersRequest const& request) { + return stub->ListLoggingServers(context, options, request); + }, options, r, function_name); }, [](google::cloud::vmwareengine::v1::ListLoggingServersResponse r) { @@ -1059,6 +1810,60 @@ VmwareEngineConnectionImpl::CreateLoggingServer( polling_policy(*current), __func__); } +StatusOr +VmwareEngineConnectionImpl::CreateLoggingServer( + ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::CreateLoggingServerRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateLoggingServer(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::vmwareengine::v1::CreateLoggingServerRequest const& + request) { + return stub_->CreateLoggingServer(context, options, request); + }, + *current, request, __func__); +} + +future> +VmwareEngineConnectionImpl::CreateLoggingServer( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to CreateLoggingServer", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::vmwareengine::v1::LoggingServer>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::vmwareengine::v1::LoggingServer>, + polling_policy(*current), __func__); +} + future> VmwareEngineConnectionImpl::UpdateLoggingServer( google::cloud::vmwareengine::v1::UpdateLoggingServerRequest const& @@ -1100,6 +1905,60 @@ VmwareEngineConnectionImpl::UpdateLoggingServer( polling_policy(*current), __func__); } +StatusOr +VmwareEngineConnectionImpl::UpdateLoggingServer( + ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::UpdateLoggingServerRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UpdateLoggingServer(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::vmwareengine::v1::UpdateLoggingServerRequest const& + request) { + return stub_->UpdateLoggingServer(context, options, request); + }, + *current, request, __func__); +} + +future> +VmwareEngineConnectionImpl::UpdateLoggingServer( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to UpdateLoggingServer", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::vmwareengine::v1::LoggingServer>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::vmwareengine::v1::LoggingServer>, + polling_policy(*current), __func__); +} + future> VmwareEngineConnectionImpl::DeleteLoggingServer( google::cloud::vmwareengine::v1::DeleteLoggingServerRequest const& @@ -1141,6 +2000,60 @@ VmwareEngineConnectionImpl::DeleteLoggingServer( polling_policy(*current), __func__); } +StatusOr +VmwareEngineConnectionImpl::DeleteLoggingServer( + ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::DeleteLoggingServerRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteLoggingServer(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::vmwareengine::v1::DeleteLoggingServerRequest const& + request) { + return stub_->DeleteLoggingServer(context, options, request); + }, + *current, request, __func__); +} + +future> +VmwareEngineConnectionImpl::DeleteLoggingServer( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteLoggingServer", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::vmwareengine::v1::OperationMetadata>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::cloud::vmwareengine::v1::OperationMetadata>, + polling_policy(*current), __func__); +} + StreamRange VmwareEngineConnectionImpl::ListNodeTypes( google::cloud::vmwareengine::v1::ListNodeTypesRequest request) { @@ -1263,6 +2176,60 @@ VmwareEngineConnectionImpl::ResetNsxCredentials( polling_policy(*current), __func__); } +StatusOr +VmwareEngineConnectionImpl::ResetNsxCredentials( + ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::ResetNsxCredentialsRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->ResetNsxCredentials(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::vmwareengine::v1::ResetNsxCredentialsRequest const& + request) { + return stub_->ResetNsxCredentials(context, options, request); + }, + *current, request, __func__); +} + +future> +VmwareEngineConnectionImpl::ResetNsxCredentials( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to ResetNsxCredentials", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::vmwareengine::v1::PrivateCloud>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::vmwareengine::v1::PrivateCloud>, + polling_policy(*current), __func__); +} + future> VmwareEngineConnectionImpl::ResetVcenterCredentials( google::cloud::vmwareengine::v1::ResetVcenterCredentialsRequest const& @@ -1304,6 +2271,61 @@ VmwareEngineConnectionImpl::ResetVcenterCredentials( polling_policy(*current), __func__); } +StatusOr +VmwareEngineConnectionImpl::ResetVcenterCredentials( + ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::ResetVcenterCredentialsRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->ResetVcenterCredentials(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::vmwareengine::v1::ResetVcenterCredentialsRequest const& + request) { + return stub_->ResetVcenterCredentials(context, options, request); + }, + *current, request, __func__); +} + +future> +VmwareEngineConnectionImpl::ResetVcenterCredentials( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to ResetVcenterCredentials", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::vmwareengine::v1::PrivateCloud>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::vmwareengine::v1::PrivateCloud>, + polling_policy(*current), __func__); +} + StatusOr VmwareEngineConnectionImpl::GetDnsForwarding( google::cloud::vmwareengine::v1::GetDnsForwardingRequest const& request) { @@ -1360,25 +2382,79 @@ VmwareEngineConnectionImpl::UpdateDnsForwarding( polling_policy(*current), __func__); } -StatusOr -VmwareEngineConnectionImpl::GetNetworkPeering( - google::cloud::vmwareengine::v1::GetNetworkPeeringRequest const& request) { +StatusOr +VmwareEngineConnectionImpl::UpdateDnsForwarding( + ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::UpdateDnsForwardingRequest const& + request) { auto current = google::cloud::internal::SaveCurrentOptions(); return google::cloud::internal::RetryLoop( retry_policy(*current), backoff_policy(*current), - idempotency_policy(*current)->GetNetworkPeering(request), + idempotency_policy(*current)->UpdateDnsForwarding(request), [this](grpc::ClientContext& context, Options const& options, - google::cloud::vmwareengine::v1::GetNetworkPeeringRequest const& + google::cloud::vmwareengine::v1::UpdateDnsForwardingRequest const& request) { - return stub_->GetNetworkPeering(context, options, request); + return stub_->UpdateDnsForwarding(context, options, request); }, *current, request, __func__); } -StreamRange -VmwareEngineConnectionImpl::ListNetworkPeerings( - google::cloud::vmwareengine::v1::ListNetworkPeeringsRequest request) { - request.clear_page_token(); +future> +VmwareEngineConnectionImpl::UpdateDnsForwarding( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to UpdateDnsForwarding", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::vmwareengine::v1::DnsForwarding>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::vmwareengine::v1::DnsForwarding>, + polling_policy(*current), __func__); +} + +StatusOr +VmwareEngineConnectionImpl::GetNetworkPeering( + google::cloud::vmwareengine::v1::GetNetworkPeeringRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->GetNetworkPeering(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::vmwareengine::v1::GetNetworkPeeringRequest const& + request) { + return stub_->GetNetworkPeering(context, options, request); + }, + *current, request, __func__); +} + +StreamRange +VmwareEngineConnectionImpl::ListNetworkPeerings( + google::cloud::vmwareengine::v1::ListNetworkPeeringsRequest request) { + request.clear_page_token(); auto current = google::cloud::internal::SaveCurrentOptions(); auto idempotency = idempotency_policy(*current)->ListNetworkPeerings(request); char const* function_name = __func__; @@ -1451,6 +2527,60 @@ VmwareEngineConnectionImpl::CreateNetworkPeering( polling_policy(*current), __func__); } +StatusOr +VmwareEngineConnectionImpl::CreateNetworkPeering( + ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::CreateNetworkPeeringRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateNetworkPeering(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::vmwareengine::v1::CreateNetworkPeeringRequest const& + request) { + return stub_->CreateNetworkPeering(context, options, request); + }, + *current, request, __func__); +} + +future> +VmwareEngineConnectionImpl::CreateNetworkPeering( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to CreateNetworkPeering", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::vmwareengine::v1::NetworkPeering>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::vmwareengine::v1::NetworkPeering>, + polling_policy(*current), __func__); +} + future> VmwareEngineConnectionImpl::DeleteNetworkPeering( google::cloud::vmwareengine::v1::DeleteNetworkPeeringRequest const& @@ -1492,6 +2622,60 @@ VmwareEngineConnectionImpl::DeleteNetworkPeering( polling_policy(*current), __func__); } +StatusOr +VmwareEngineConnectionImpl::DeleteNetworkPeering( + ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::DeleteNetworkPeeringRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteNetworkPeering(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::vmwareengine::v1::DeleteNetworkPeeringRequest const& + request) { + return stub_->DeleteNetworkPeering(context, options, request); + }, + *current, request, __func__); +} + +future> +VmwareEngineConnectionImpl::DeleteNetworkPeering( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteNetworkPeering", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::vmwareengine::v1::OperationMetadata>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::cloud::vmwareengine::v1::OperationMetadata>, + polling_policy(*current), __func__); +} + future> VmwareEngineConnectionImpl::UpdateNetworkPeering( google::cloud::vmwareengine::v1::UpdateNetworkPeeringRequest const& @@ -1533,6 +2717,60 @@ VmwareEngineConnectionImpl::UpdateNetworkPeering( polling_policy(*current), __func__); } +StatusOr +VmwareEngineConnectionImpl::UpdateNetworkPeering( + ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::UpdateNetworkPeeringRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UpdateNetworkPeering(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::vmwareengine::v1::UpdateNetworkPeeringRequest const& + request) { + return stub_->UpdateNetworkPeering(context, options, request); + }, + *current, request, __func__); +} + +future> +VmwareEngineConnectionImpl::UpdateNetworkPeering( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to UpdateNetworkPeering", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::vmwareengine::v1::NetworkPeering>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::vmwareengine::v1::NetworkPeering>, + polling_policy(*current), __func__); +} + StreamRange VmwareEngineConnectionImpl::ListPeeringRoutes( google::cloud::vmwareengine::v1::ListPeeringRoutesRequest request) { @@ -1609,6 +2847,61 @@ VmwareEngineConnectionImpl::CreateHcxActivationKey( polling_policy(*current), __func__); } +StatusOr +VmwareEngineConnectionImpl::CreateHcxActivationKey( + ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::CreateHcxActivationKeyRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateHcxActivationKey(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::vmwareengine::v1::CreateHcxActivationKeyRequest const& + request) { + return stub_->CreateHcxActivationKey(context, options, request); + }, + *current, request, __func__); +} + +future> +VmwareEngineConnectionImpl::CreateHcxActivationKey( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to CreateHcxActivationKey", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::vmwareengine::v1::HcxActivationKey>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::vmwareengine::v1::HcxActivationKey>, + polling_policy(*current), __func__); +} + StreamRange VmwareEngineConnectionImpl::ListHcxActivationKeys( google::cloud::vmwareengine::v1::ListHcxActivationKeysRequest request) { @@ -1752,26 +3045,40 @@ VmwareEngineConnectionImpl::CreateNetworkPolicy( polling_policy(*current), __func__); } -future> -VmwareEngineConnectionImpl::UpdateNetworkPolicy( - google::cloud::vmwareengine::v1::UpdateNetworkPolicyRequest const& +StatusOr +VmwareEngineConnectionImpl::CreateNetworkPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::CreateNetworkPolicyRequest const& request) { auto current = google::cloud::internal::SaveCurrentOptions(); - auto request_copy = request; - auto const idempotent = - idempotency_policy(*current)->UpdateNetworkPolicy(request_copy); - return google::cloud::internal::AsyncLongRunningOperation< - google::cloud::vmwareengine::v1::NetworkPolicy>( - background_->cq(), current, std::move(request_copy), - [stub = stub_]( - google::cloud::CompletionQueue& cq, - std::shared_ptr context, - google::cloud::internal::ImmutableOptions options, - google::cloud::vmwareengine::v1::UpdateNetworkPolicyRequest const& - request) { - return stub->AsyncUpdateNetworkPolicy(cq, std::move(context), - std::move(options), request); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateNetworkPolicy(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::vmwareengine::v1::CreateNetworkPolicyRequest const& + request) { + return stub_->CreateNetworkPolicy(context, options, request); }, + *current, request, __func__); +} + +future> +VmwareEngineConnectionImpl::CreateNetworkPolicy( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to CreateNetworkPolicy", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::vmwareengine::v1::NetworkPolicy>( + background_->cq(), current, operation, [stub = stub_](google::cloud::CompletionQueue& cq, std::shared_ptr context, google::cloud::internal::ImmutableOptions options, @@ -1789,28 +3096,27 @@ VmwareEngineConnectionImpl::UpdateNetworkPolicy( }, &google::cloud::internal::ExtractLongRunningResultResponse< google::cloud::vmwareengine::v1::NetworkPolicy>, - retry_policy(*current), backoff_policy(*current), idempotent, polling_policy(*current), __func__); } -future> -VmwareEngineConnectionImpl::DeleteNetworkPolicy( - google::cloud::vmwareengine::v1::DeleteNetworkPolicyRequest const& +future> +VmwareEngineConnectionImpl::UpdateNetworkPolicy( + google::cloud::vmwareengine::v1::UpdateNetworkPolicyRequest const& request) { auto current = google::cloud::internal::SaveCurrentOptions(); auto request_copy = request; auto const idempotent = - idempotency_policy(*current)->DeleteNetworkPolicy(request_copy); + idempotency_policy(*current)->UpdateNetworkPolicy(request_copy); return google::cloud::internal::AsyncLongRunningOperation< - google::cloud::vmwareengine::v1::OperationMetadata>( + google::cloud::vmwareengine::v1::NetworkPolicy>( background_->cq(), current, std::move(request_copy), [stub = stub_]( google::cloud::CompletionQueue& cq, std::shared_ptr context, google::cloud::internal::ImmutableOptions options, - google::cloud::vmwareengine::v1::DeleteNetworkPolicyRequest const& + google::cloud::vmwareengine::v1::UpdateNetworkPolicyRequest const& request) { - return stub->AsyncDeleteNetworkPolicy(cq, std::move(context), + return stub->AsyncUpdateNetworkPolicy(cq, std::move(context), std::move(options), request); }, [stub = stub_](google::cloud::CompletionQueue& cq, @@ -1828,24 +3134,173 @@ VmwareEngineConnectionImpl::DeleteNetworkPolicy( return stub->AsyncCancelOperation(cq, std::move(context), std::move(options), request); }, - &google::cloud::internal::ExtractLongRunningResultMetadata< - google::cloud::vmwareengine::v1::OperationMetadata>, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::vmwareengine::v1::NetworkPolicy>, retry_policy(*current), backoff_policy(*current), idempotent, polling_policy(*current), __func__); } -StreamRange -VmwareEngineConnectionImpl::ListManagementDnsZoneBindings( - google::cloud::vmwareengine::v1::ListManagementDnsZoneBindingsRequest +StatusOr +VmwareEngineConnectionImpl::UpdateNetworkPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::UpdateNetworkPolicyRequest const& request) { - request.clear_page_token(); auto current = google::cloud::internal::SaveCurrentOptions(); - auto idempotency = - idempotency_policy(*current)->ListManagementDnsZoneBindings(request); - char const* function_name = __func__; - return google::cloud::internal::MakePaginationRange< - StreamRange>( - current, std::move(request), + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UpdateNetworkPolicy(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::vmwareengine::v1::UpdateNetworkPolicyRequest const& + request) { + return stub_->UpdateNetworkPolicy(context, options, request); + }, + *current, request, __func__); +} + +future> +VmwareEngineConnectionImpl::UpdateNetworkPolicy( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to UpdateNetworkPolicy", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::vmwareengine::v1::NetworkPolicy>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::vmwareengine::v1::NetworkPolicy>, + polling_policy(*current), __func__); +} + +future> +VmwareEngineConnectionImpl::DeleteNetworkPolicy( + google::cloud::vmwareengine::v1::DeleteNetworkPolicyRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + auto request_copy = request; + auto const idempotent = + idempotency_policy(*current)->DeleteNetworkPolicy(request_copy); + return google::cloud::internal::AsyncLongRunningOperation< + google::cloud::vmwareengine::v1::OperationMetadata>( + background_->cq(), current, std::move(request_copy), + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::vmwareengine::v1::DeleteNetworkPolicyRequest const& + request) { + return stub->AsyncDeleteNetworkPolicy(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::cloud::vmwareengine::v1::OperationMetadata>, + retry_policy(*current), backoff_policy(*current), idempotent, + polling_policy(*current), __func__); +} + +StatusOr +VmwareEngineConnectionImpl::DeleteNetworkPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::DeleteNetworkPolicyRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteNetworkPolicy(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::vmwareengine::v1::DeleteNetworkPolicyRequest const& + request) { + return stub_->DeleteNetworkPolicy(context, options, request); + }, + *current, request, __func__); +} + +future> +VmwareEngineConnectionImpl::DeleteNetworkPolicy( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteNetworkPolicy", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::vmwareengine::v1::OperationMetadata>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::cloud::vmwareengine::v1::OperationMetadata>, + polling_policy(*current), __func__); +} + +StreamRange +VmwareEngineConnectionImpl::ListManagementDnsZoneBindings( + google::cloud::vmwareengine::v1::ListManagementDnsZoneBindingsRequest + request) { + request.clear_page_token(); + auto current = google::cloud::internal::SaveCurrentOptions(); + auto idempotency = + idempotency_policy(*current)->ListManagementDnsZoneBindings(request); + char const* function_name = __func__; + return google::cloud::internal::MakePaginationRange< + StreamRange>( + current, std::move(request), [idempotency, function_name, stub = stub_, retry = std::shared_ptr( retry_policy(*current)), @@ -1930,6 +3385,60 @@ VmwareEngineConnectionImpl::CreateManagementDnsZoneBinding( polling_policy(*current), __func__); } +StatusOr +VmwareEngineConnectionImpl::CreateManagementDnsZoneBinding( + ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1:: + CreateManagementDnsZoneBindingRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateManagementDnsZoneBinding(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::vmwareengine::v1:: + CreateManagementDnsZoneBindingRequest const& request) { + return stub_->CreateManagementDnsZoneBinding(context, options, request); + }, + *current, request, __func__); +} + +future> +VmwareEngineConnectionImpl::CreateManagementDnsZoneBinding( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to CreateManagementDnsZoneBinding", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::vmwareengine::v1::ManagementDnsZoneBinding>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::vmwareengine::v1::ManagementDnsZoneBinding>, + polling_policy(*current), __func__); +} + future> VmwareEngineConnectionImpl::UpdateManagementDnsZoneBinding( google::cloud::vmwareengine::v1:: @@ -1971,6 +3480,60 @@ VmwareEngineConnectionImpl::UpdateManagementDnsZoneBinding( polling_policy(*current), __func__); } +StatusOr +VmwareEngineConnectionImpl::UpdateManagementDnsZoneBinding( + ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1:: + UpdateManagementDnsZoneBindingRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UpdateManagementDnsZoneBinding(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::vmwareengine::v1:: + UpdateManagementDnsZoneBindingRequest const& request) { + return stub_->UpdateManagementDnsZoneBinding(context, options, request); + }, + *current, request, __func__); +} + +future> +VmwareEngineConnectionImpl::UpdateManagementDnsZoneBinding( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to UpdateManagementDnsZoneBinding", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::vmwareengine::v1::ManagementDnsZoneBinding>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::vmwareengine::v1::ManagementDnsZoneBinding>, + polling_policy(*current), __func__); +} + future> VmwareEngineConnectionImpl::DeleteManagementDnsZoneBinding( google::cloud::vmwareengine::v1:: @@ -2012,6 +3575,60 @@ VmwareEngineConnectionImpl::DeleteManagementDnsZoneBinding( polling_policy(*current), __func__); } +StatusOr +VmwareEngineConnectionImpl::DeleteManagementDnsZoneBinding( + ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1:: + DeleteManagementDnsZoneBindingRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteManagementDnsZoneBinding(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::vmwareengine::v1:: + DeleteManagementDnsZoneBindingRequest const& request) { + return stub_->DeleteManagementDnsZoneBinding(context, options, request); + }, + *current, request, __func__); +} + +future> +VmwareEngineConnectionImpl::DeleteManagementDnsZoneBinding( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteManagementDnsZoneBinding", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::vmwareengine::v1::OperationMetadata>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::cloud::vmwareengine::v1::OperationMetadata>, + polling_policy(*current), __func__); +} + future> VmwareEngineConnectionImpl::RepairManagementDnsZoneBinding( google::cloud::vmwareengine::v1:: @@ -2053,25 +3670,228 @@ VmwareEngineConnectionImpl::RepairManagementDnsZoneBinding( polling_policy(*current), __func__); } +StatusOr +VmwareEngineConnectionImpl::RepairManagementDnsZoneBinding( + ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1:: + RepairManagementDnsZoneBindingRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->RepairManagementDnsZoneBinding(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::vmwareengine::v1:: + RepairManagementDnsZoneBindingRequest const& request) { + return stub_->RepairManagementDnsZoneBinding(context, options, request); + }, + *current, request, __func__); +} + +future> +VmwareEngineConnectionImpl::RepairManagementDnsZoneBinding( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to RepairManagementDnsZoneBinding", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::vmwareengine::v1::ManagementDnsZoneBinding>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::vmwareengine::v1::ManagementDnsZoneBinding>, + polling_policy(*current), __func__); +} + future> VmwareEngineConnectionImpl::CreateVmwareEngineNetwork( google::cloud::vmwareengine::v1::CreateVmwareEngineNetworkRequest const& request) { auto current = google::cloud::internal::SaveCurrentOptions(); - auto request_copy = request; - auto const idempotent = - idempotency_policy(*current)->CreateVmwareEngineNetwork(request_copy); - return google::cloud::internal::AsyncLongRunningOperation< + auto request_copy = request; + auto const idempotent = + idempotency_policy(*current)->CreateVmwareEngineNetwork(request_copy); + return google::cloud::internal::AsyncLongRunningOperation< + google::cloud::vmwareengine::v1::VmwareEngineNetwork>( + background_->cq(), current, std::move(request_copy), + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::vmwareengine::v1:: + CreateVmwareEngineNetworkRequest const& request) { + return stub->AsyncCreateVmwareEngineNetwork( + cq, std::move(context), std::move(options), request); + }, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::vmwareengine::v1::VmwareEngineNetwork>, + retry_policy(*current), backoff_policy(*current), idempotent, + polling_policy(*current), __func__); +} + +StatusOr +VmwareEngineConnectionImpl::CreateVmwareEngineNetwork( + ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::CreateVmwareEngineNetworkRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateVmwareEngineNetwork(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::vmwareengine::v1:: + CreateVmwareEngineNetworkRequest const& request) { + return stub_->CreateVmwareEngineNetwork(context, options, request); + }, + *current, request, __func__); +} + +future> +VmwareEngineConnectionImpl::CreateVmwareEngineNetwork( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to CreateVmwareEngineNetwork", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::vmwareengine::v1::VmwareEngineNetwork>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::vmwareengine::v1::VmwareEngineNetwork>, + polling_policy(*current), __func__); +} + +future> +VmwareEngineConnectionImpl::UpdateVmwareEngineNetwork( + google::cloud::vmwareengine::v1::UpdateVmwareEngineNetworkRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + auto request_copy = request; + auto const idempotent = + idempotency_policy(*current)->UpdateVmwareEngineNetwork(request_copy); + return google::cloud::internal::AsyncLongRunningOperation< + google::cloud::vmwareengine::v1::VmwareEngineNetwork>( + background_->cq(), current, std::move(request_copy), + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::cloud::vmwareengine::v1:: + UpdateVmwareEngineNetworkRequest const& request) { + return stub->AsyncUpdateVmwareEngineNetwork( + cq, std::move(context), std::move(options), request); + }, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::vmwareengine::v1::VmwareEngineNetwork>, + retry_policy(*current), backoff_policy(*current), idempotent, + polling_policy(*current), __func__); +} + +StatusOr +VmwareEngineConnectionImpl::UpdateVmwareEngineNetwork( + ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::UpdateVmwareEngineNetworkRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UpdateVmwareEngineNetwork(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::vmwareengine::v1:: + UpdateVmwareEngineNetworkRequest const& request) { + return stub_->UpdateVmwareEngineNetwork(context, options, request); + }, + *current, request, __func__); +} + +future> +VmwareEngineConnectionImpl::UpdateVmwareEngineNetwork( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to UpdateVmwareEngineNetwork", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< google::cloud::vmwareengine::v1::VmwareEngineNetwork>( - background_->cq(), current, std::move(request_copy), - [stub = stub_](google::cloud::CompletionQueue& cq, - std::shared_ptr context, - google::cloud::internal::ImmutableOptions options, - google::cloud::vmwareengine::v1:: - CreateVmwareEngineNetworkRequest const& request) { - return stub->AsyncCreateVmwareEngineNetwork( - cq, std::move(context), std::move(options), request); - }, + background_->cq(), current, operation, [stub = stub_](google::cloud::CompletionQueue& cq, std::shared_ptr context, google::cloud::internal::ImmutableOptions options, @@ -2089,27 +3909,26 @@ VmwareEngineConnectionImpl::CreateVmwareEngineNetwork( }, &google::cloud::internal::ExtractLongRunningResultResponse< google::cloud::vmwareengine::v1::VmwareEngineNetwork>, - retry_policy(*current), backoff_policy(*current), idempotent, polling_policy(*current), __func__); } -future> -VmwareEngineConnectionImpl::UpdateVmwareEngineNetwork( - google::cloud::vmwareengine::v1::UpdateVmwareEngineNetworkRequest const& +future> +VmwareEngineConnectionImpl::DeleteVmwareEngineNetwork( + google::cloud::vmwareengine::v1::DeleteVmwareEngineNetworkRequest const& request) { auto current = google::cloud::internal::SaveCurrentOptions(); auto request_copy = request; auto const idempotent = - idempotency_policy(*current)->UpdateVmwareEngineNetwork(request_copy); + idempotency_policy(*current)->DeleteVmwareEngineNetwork(request_copy); return google::cloud::internal::AsyncLongRunningOperation< - google::cloud::vmwareengine::v1::VmwareEngineNetwork>( + google::cloud::vmwareengine::v1::OperationMetadata>( background_->cq(), current, std::move(request_copy), [stub = stub_](google::cloud::CompletionQueue& cq, std::shared_ptr context, google::cloud::internal::ImmutableOptions options, google::cloud::vmwareengine::v1:: - UpdateVmwareEngineNetworkRequest const& request) { - return stub->AsyncUpdateVmwareEngineNetwork( + DeleteVmwareEngineNetworkRequest const& request) { + return stub->AsyncDeleteVmwareEngineNetwork( cq, std::move(context), std::move(options), request); }, [stub = stub_](google::cloud::CompletionQueue& cq, @@ -2127,31 +3946,46 @@ VmwareEngineConnectionImpl::UpdateVmwareEngineNetwork( return stub->AsyncCancelOperation(cq, std::move(context), std::move(options), request); }, - &google::cloud::internal::ExtractLongRunningResultResponse< - google::cloud::vmwareengine::v1::VmwareEngineNetwork>, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::cloud::vmwareengine::v1::OperationMetadata>, retry_policy(*current), backoff_policy(*current), idempotent, polling_policy(*current), __func__); } -future> +StatusOr VmwareEngineConnectionImpl::DeleteVmwareEngineNetwork( + ExperimentalTag, NoAwaitTag, google::cloud::vmwareengine::v1::DeleteVmwareEngineNetworkRequest const& request) { auto current = google::cloud::internal::SaveCurrentOptions(); - auto request_copy = request; - auto const idempotent = - idempotency_policy(*current)->DeleteVmwareEngineNetwork(request_copy); - return google::cloud::internal::AsyncLongRunningOperation< - google::cloud::vmwareengine::v1::OperationMetadata>( - background_->cq(), current, std::move(request_copy), - [stub = stub_](google::cloud::CompletionQueue& cq, - std::shared_ptr context, - google::cloud::internal::ImmutableOptions options, - google::cloud::vmwareengine::v1:: - DeleteVmwareEngineNetworkRequest const& request) { - return stub->AsyncDeleteVmwareEngineNetwork( - cq, std::move(context), std::move(options), request); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteVmwareEngineNetwork(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::vmwareengine::v1:: + DeleteVmwareEngineNetworkRequest const& request) { + return stub_->DeleteVmwareEngineNetwork(context, options, request); }, + *current, request, __func__); +} + +future> +VmwareEngineConnectionImpl::DeleteVmwareEngineNetwork( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteVmwareEngineNetwork", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::vmwareengine::v1::OperationMetadata>( + background_->cq(), current, operation, [stub = stub_](google::cloud::CompletionQueue& cq, std::shared_ptr context, google::cloud::internal::ImmutableOptions options, @@ -2169,7 +4003,6 @@ VmwareEngineConnectionImpl::DeleteVmwareEngineNetwork( }, &google::cloud::internal::ExtractLongRunningResultMetadata< google::cloud::vmwareengine::v1::OperationMetadata>, - retry_policy(*current), backoff_policy(*current), idempotent, polling_policy(*current), __func__); } @@ -2267,6 +4100,61 @@ VmwareEngineConnectionImpl::CreatePrivateConnection( polling_policy(*current), __func__); } +StatusOr +VmwareEngineConnectionImpl::CreatePrivateConnection( + ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::CreatePrivateConnectionRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreatePrivateConnection(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::vmwareengine::v1::CreatePrivateConnectionRequest const& + request) { + return stub_->CreatePrivateConnection(context, options, request); + }, + *current, request, __func__); +} + +future> +VmwareEngineConnectionImpl::CreatePrivateConnection( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to CreatePrivateConnection", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::vmwareengine::v1::PrivateConnection>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::vmwareengine::v1::PrivateConnection>, + polling_policy(*current), __func__); +} + StatusOr VmwareEngineConnectionImpl::GetPrivateConnection( google::cloud::vmwareengine::v1::GetPrivateConnectionRequest const& @@ -2360,6 +4248,61 @@ VmwareEngineConnectionImpl::UpdatePrivateConnection( polling_policy(*current), __func__); } +StatusOr +VmwareEngineConnectionImpl::UpdatePrivateConnection( + ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::UpdatePrivateConnectionRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UpdatePrivateConnection(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::vmwareengine::v1::UpdatePrivateConnectionRequest const& + request) { + return stub_->UpdatePrivateConnection(context, options, request); + }, + *current, request, __func__); +} + +future> +VmwareEngineConnectionImpl::UpdatePrivateConnection( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to UpdatePrivateConnection", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::vmwareengine::v1::PrivateConnection>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::vmwareengine::v1::PrivateConnection>, + polling_policy(*current), __func__); +} + future> VmwareEngineConnectionImpl::DeletePrivateConnection( google::cloud::vmwareengine::v1::DeletePrivateConnectionRequest const& @@ -2401,6 +4344,61 @@ VmwareEngineConnectionImpl::DeletePrivateConnection( polling_policy(*current), __func__); } +StatusOr +VmwareEngineConnectionImpl::DeletePrivateConnection( + ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::DeletePrivateConnectionRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeletePrivateConnection(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::vmwareengine::v1::DeletePrivateConnectionRequest const& + request) { + return stub_->DeletePrivateConnection(context, options, request); + }, + *current, request, __func__); +} + +future> +VmwareEngineConnectionImpl::DeletePrivateConnection( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DeletePrivateConnection", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::vmwareengine::v1::OperationMetadata>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::cloud::vmwareengine::v1::OperationMetadata>, + polling_policy(*current), __func__); +} + StreamRange VmwareEngineConnectionImpl::ListPrivateConnectionPeeringRoutes( google::cloud::vmwareengine::v1::ListPrivateConnectionPeeringRoutesRequest @@ -2482,6 +4480,61 @@ VmwareEngineConnectionImpl::GrantDnsBindPermission( polling_policy(*current), __func__); } +StatusOr +VmwareEngineConnectionImpl::GrantDnsBindPermission( + ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::GrantDnsBindPermissionRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->GrantDnsBindPermission(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::vmwareengine::v1::GrantDnsBindPermissionRequest const& + request) { + return stub_->GrantDnsBindPermission(context, options, request); + }, + *current, request, __func__); +} + +future> +VmwareEngineConnectionImpl::GrantDnsBindPermission( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to GrantDnsBindPermission", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::vmwareengine::v1::DnsBindPermission>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::vmwareengine::v1::DnsBindPermission>, + polling_policy(*current), __func__); +} + StatusOr VmwareEngineConnectionImpl::GetDnsBindPermission( google::cloud::vmwareengine::v1::GetDnsBindPermissionRequest const& @@ -2539,6 +4592,61 @@ VmwareEngineConnectionImpl::RevokeDnsBindPermission( polling_policy(*current), __func__); } +StatusOr +VmwareEngineConnectionImpl::RevokeDnsBindPermission( + ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::RevokeDnsBindPermissionRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->RevokeDnsBindPermission(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::vmwareengine::v1::RevokeDnsBindPermissionRequest const& + request) { + return stub_->RevokeDnsBindPermission(context, options, request); + }, + *current, request, __func__); +} + +future> +VmwareEngineConnectionImpl::RevokeDnsBindPermission( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to RevokeDnsBindPermission", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::vmwareengine::v1::DnsBindPermission>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::vmwareengine::v1::DnsBindPermission>, + polling_policy(*current), __func__); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace vmwareengine_v1_internal } // namespace cloud diff --git a/google/cloud/vmwareengine/v1/internal/vmware_engine_connection_impl.h b/google/cloud/vmwareengine/v1/internal/vmware_engine_connection_impl.h index 9252ee329f880..605830cba5cba 100644 --- a/google/cloud/vmwareengine/v1/internal/vmware_engine_connection_impl.h +++ b/google/cloud/vmwareengine/v1/internal/vmware_engine_connection_impl.h @@ -65,21 +65,58 @@ class VmwareEngineConnectionImpl google::cloud::vmwareengine::v1::CreatePrivateCloudRequest const& request) override; + StatusOr CreatePrivateCloud( + ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::CreatePrivateCloudRequest const& request) + override; + + future> + CreatePrivateCloud(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdatePrivateCloud( google::cloud::vmwareengine::v1::UpdatePrivateCloudRequest const& request) override; + StatusOr UpdatePrivateCloud( + ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::UpdatePrivateCloudRequest const& request) + override; + + future> + UpdatePrivateCloud(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeletePrivateCloud( google::cloud::vmwareengine::v1::DeletePrivateCloudRequest const& request) override; + StatusOr DeletePrivateCloud( + ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::DeletePrivateCloudRequest const& request) + override; + + future> + DeletePrivateCloud(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UndeletePrivateCloud( google::cloud::vmwareengine::v1::UndeletePrivateCloudRequest const& request) override; + StatusOr UndeletePrivateCloud( + ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::UndeletePrivateCloudRequest const& + request) override; + + future> + UndeletePrivateCloud( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListClusters( google::cloud::vmwareengine::v1::ListClustersRequest request) override; @@ -91,14 +128,41 @@ class VmwareEngineConnectionImpl google::cloud::vmwareengine::v1::CreateClusterRequest const& request) override; + StatusOr CreateCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::CreateClusterRequest const& request) + override; + + future> CreateCluster( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateCluster( google::cloud::vmwareengine::v1::UpdateClusterRequest const& request) override; + StatusOr UpdateCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::UpdateClusterRequest const& request) + override; + + future> UpdateCluster( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteCluster(google::cloud::vmwareengine::v1::DeleteClusterRequest const& request) override; + StatusOr DeleteCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::DeleteClusterRequest const& request) + override; + + future> + DeleteCluster(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListNodes( google::cloud::vmwareengine::v1::ListNodesRequest request) override; @@ -124,16 +188,46 @@ class VmwareEngineConnectionImpl google::cloud::vmwareengine::v1::CreateExternalAddressRequest const& request) override; + StatusOr CreateExternalAddress( + ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::CreateExternalAddressRequest const& + request) override; + + future> + CreateExternalAddress( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateExternalAddress( google::cloud::vmwareengine::v1::UpdateExternalAddressRequest const& request) override; + StatusOr UpdateExternalAddress( + ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::UpdateExternalAddressRequest const& + request) override; + + future> + UpdateExternalAddress( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteExternalAddress( google::cloud::vmwareengine::v1::DeleteExternalAddressRequest const& request) override; + StatusOr DeleteExternalAddress( + ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::DeleteExternalAddressRequest const& + request) override; + + future> + DeleteExternalAddress( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListSubnets( google::cloud::vmwareengine::v1::ListSubnetsRequest request) override; @@ -145,6 +239,15 @@ class VmwareEngineConnectionImpl google::cloud::vmwareengine::v1::UpdateSubnetRequest const& request) override; + StatusOr UpdateSubnet( + ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::UpdateSubnetRequest const& request) + override; + + future> UpdateSubnet( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListExternalAccessRules( google::cloud::vmwareengine::v1::ListExternalAccessRulesRequest request) @@ -160,16 +263,46 @@ class VmwareEngineConnectionImpl google::cloud::vmwareengine::v1::CreateExternalAccessRuleRequest const& request) override; + StatusOr CreateExternalAccessRule( + ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::CreateExternalAccessRuleRequest const& + request) override; + + future> + CreateExternalAccessRule( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateExternalAccessRule( google::cloud::vmwareengine::v1::UpdateExternalAccessRuleRequest const& request) override; + StatusOr UpdateExternalAccessRule( + ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::UpdateExternalAccessRuleRequest const& + request) override; + + future> + UpdateExternalAccessRule( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteExternalAccessRule( google::cloud::vmwareengine::v1::DeleteExternalAccessRuleRequest const& request) override; + StatusOr DeleteExternalAccessRule( + ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::DeleteExternalAccessRuleRequest const& + request) override; + + future> + DeleteExternalAccessRule( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListLoggingServers(google::cloud::vmwareengine::v1::ListLoggingServersRequest request) override; @@ -183,16 +316,43 @@ class VmwareEngineConnectionImpl google::cloud::vmwareengine::v1::CreateLoggingServerRequest const& request) override; + StatusOr CreateLoggingServer( + ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::CreateLoggingServerRequest const& + request) override; + + future> + CreateLoggingServer(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateLoggingServer( google::cloud::vmwareengine::v1::UpdateLoggingServerRequest const& request) override; + StatusOr UpdateLoggingServer( + ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::UpdateLoggingServerRequest const& + request) override; + + future> + UpdateLoggingServer(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteLoggingServer( google::cloud::vmwareengine::v1::DeleteLoggingServerRequest const& request) override; + StatusOr DeleteLoggingServer( + ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::DeleteLoggingServerRequest const& + request) override; + + future> + DeleteLoggingServer(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListNodeTypes( google::cloud::vmwareengine::v1::ListNodeTypesRequest request) override; @@ -213,11 +373,30 @@ class VmwareEngineConnectionImpl google::cloud::vmwareengine::v1::ResetNsxCredentialsRequest const& request) override; + StatusOr ResetNsxCredentials( + ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::ResetNsxCredentialsRequest const& + request) override; + + future> + ResetNsxCredentials(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ResetVcenterCredentials( google::cloud::vmwareengine::v1::ResetVcenterCredentialsRequest const& request) override; + StatusOr ResetVcenterCredentials( + ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::ResetVcenterCredentialsRequest const& + request) override; + + future> + ResetVcenterCredentials( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetDnsForwarding( google::cloud::vmwareengine::v1::GetDnsForwardingRequest const& request) override; @@ -227,6 +406,15 @@ class VmwareEngineConnectionImpl google::cloud::vmwareengine::v1::UpdateDnsForwardingRequest const& request) override; + StatusOr UpdateDnsForwarding( + ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::UpdateDnsForwardingRequest const& + request) override; + + future> + UpdateDnsForwarding(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetNetworkPeering( google::cloud::vmwareengine::v1::GetNetworkPeeringRequest const& request) override; @@ -241,16 +429,46 @@ class VmwareEngineConnectionImpl google::cloud::vmwareengine::v1::CreateNetworkPeeringRequest const& request) override; + StatusOr CreateNetworkPeering( + ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::CreateNetworkPeeringRequest const& + request) override; + + future> + CreateNetworkPeering( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteNetworkPeering( google::cloud::vmwareengine::v1::DeleteNetworkPeeringRequest const& request) override; + StatusOr DeleteNetworkPeering( + ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::DeleteNetworkPeeringRequest const& + request) override; + + future> + DeleteNetworkPeering( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateNetworkPeering( google::cloud::vmwareengine::v1::UpdateNetworkPeeringRequest const& request) override; + StatusOr UpdateNetworkPeering( + ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::UpdateNetworkPeeringRequest const& + request) override; + + future> + UpdateNetworkPeering( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListPeeringRoutes( google::cloud::vmwareengine::v1::ListPeeringRoutesRequest request) override; @@ -260,6 +478,16 @@ class VmwareEngineConnectionImpl google::cloud::vmwareengine::v1::CreateHcxActivationKeyRequest const& request) override; + StatusOr CreateHcxActivationKey( + ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::CreateHcxActivationKeyRequest const& + request) override; + + future> + CreateHcxActivationKey( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListHcxActivationKeys( google::cloud::vmwareengine::v1::ListHcxActivationKeysRequest request) @@ -284,16 +512,43 @@ class VmwareEngineConnectionImpl google::cloud::vmwareengine::v1::CreateNetworkPolicyRequest const& request) override; + StatusOr CreateNetworkPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::CreateNetworkPolicyRequest const& + request) override; + + future> + CreateNetworkPolicy(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateNetworkPolicy( google::cloud::vmwareengine::v1::UpdateNetworkPolicyRequest const& request) override; + StatusOr UpdateNetworkPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::UpdateNetworkPolicyRequest const& + request) override; + + future> + UpdateNetworkPolicy(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteNetworkPolicy( google::cloud::vmwareengine::v1::DeleteNetworkPolicyRequest const& request) override; + StatusOr DeleteNetworkPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::DeleteNetworkPolicyRequest const& + request) override; + + future> + DeleteNetworkPolicy(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListManagementDnsZoneBindings( google::cloud::vmwareengine::v1::ListManagementDnsZoneBindingsRequest @@ -309,36 +564,106 @@ class VmwareEngineConnectionImpl google::cloud::vmwareengine::v1:: CreateManagementDnsZoneBindingRequest const& request) override; + StatusOr CreateManagementDnsZoneBinding( + ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1:: + CreateManagementDnsZoneBindingRequest const& request) override; + + future> + CreateManagementDnsZoneBinding( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateManagementDnsZoneBinding( google::cloud::vmwareengine::v1:: UpdateManagementDnsZoneBindingRequest const& request) override; + StatusOr UpdateManagementDnsZoneBinding( + ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1:: + UpdateManagementDnsZoneBindingRequest const& request) override; + + future> + UpdateManagementDnsZoneBinding( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteManagementDnsZoneBinding( google::cloud::vmwareengine::v1:: DeleteManagementDnsZoneBindingRequest const& request) override; + StatusOr DeleteManagementDnsZoneBinding( + ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1:: + DeleteManagementDnsZoneBindingRequest const& request) override; + + future> + DeleteManagementDnsZoneBinding( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> RepairManagementDnsZoneBinding( google::cloud::vmwareengine::v1:: RepairManagementDnsZoneBindingRequest const& request) override; + StatusOr RepairManagementDnsZoneBinding( + ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1:: + RepairManagementDnsZoneBindingRequest const& request) override; + + future> + RepairManagementDnsZoneBinding( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> CreateVmwareEngineNetwork( google::cloud::vmwareengine::v1::CreateVmwareEngineNetworkRequest const& request) override; + StatusOr CreateVmwareEngineNetwork( + ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::CreateVmwareEngineNetworkRequest const& + request) override; + + future> + CreateVmwareEngineNetwork( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateVmwareEngineNetwork( google::cloud::vmwareengine::v1::UpdateVmwareEngineNetworkRequest const& request) override; + StatusOr UpdateVmwareEngineNetwork( + ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::UpdateVmwareEngineNetworkRequest const& + request) override; + + future> + UpdateVmwareEngineNetwork( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteVmwareEngineNetwork( google::cloud::vmwareengine::v1::DeleteVmwareEngineNetworkRequest const& request) override; + StatusOr DeleteVmwareEngineNetwork( + ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::DeleteVmwareEngineNetworkRequest const& + request) override; + + future> + DeleteVmwareEngineNetwork( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetVmwareEngineNetwork( google::cloud::vmwareengine::v1::GetVmwareEngineNetworkRequest const& @@ -354,6 +679,16 @@ class VmwareEngineConnectionImpl google::cloud::vmwareengine::v1::CreatePrivateConnectionRequest const& request) override; + StatusOr CreatePrivateConnection( + ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::CreatePrivateConnectionRequest const& + request) override; + + future> + CreatePrivateConnection( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetPrivateConnection( google::cloud::vmwareengine::v1::GetPrivateConnectionRequest const& @@ -369,11 +704,31 @@ class VmwareEngineConnectionImpl google::cloud::vmwareengine::v1::UpdatePrivateConnectionRequest const& request) override; + StatusOr UpdatePrivateConnection( + ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::UpdatePrivateConnectionRequest const& + request) override; + + future> + UpdatePrivateConnection( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeletePrivateConnection( google::cloud::vmwareengine::v1::DeletePrivateConnectionRequest const& request) override; + StatusOr DeletePrivateConnection( + ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::DeletePrivateConnectionRequest const& + request) override; + + future> + DeletePrivateConnection( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListPrivateConnectionPeeringRoutes( google::cloud::vmwareengine::v1::ListPrivateConnectionPeeringRoutesRequest @@ -384,6 +739,16 @@ class VmwareEngineConnectionImpl google::cloud::vmwareengine::v1::GrantDnsBindPermissionRequest const& request) override; + StatusOr GrantDnsBindPermission( + ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::GrantDnsBindPermissionRequest const& + request) override; + + future> + GrantDnsBindPermission( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetDnsBindPermission( google::cloud::vmwareengine::v1::GetDnsBindPermissionRequest const& @@ -394,6 +759,16 @@ class VmwareEngineConnectionImpl google::cloud::vmwareengine::v1::RevokeDnsBindPermissionRequest const& request) override; + StatusOr RevokeDnsBindPermission( + ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::RevokeDnsBindPermissionRequest const& + request) override; + + future> + RevokeDnsBindPermission( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + private: std::unique_ptr background_; std::shared_ptr stub_; diff --git a/google/cloud/vmwareengine/v1/internal/vmware_engine_tracing_connection.cc b/google/cloud/vmwareengine/v1/internal/vmware_engine_tracing_connection.cc index 2726e195608d2..a3bd0b282f750 100644 --- a/google/cloud/vmwareengine/v1/internal/vmware_engine_tracing_connection.cc +++ b/google/cloud/vmwareengine/v1/internal/vmware_engine_tracing_connection.cc @@ -64,6 +64,28 @@ VmwareEngineTracingConnection::CreatePrivateCloud( child_->CreatePrivateCloud(request)); } +StatusOr +VmwareEngineTracingConnection::CreatePrivateCloud( + ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::CreatePrivateCloudRequest const& request) { + auto span = internal::MakeSpan( + "vmwareengine_v1::VmwareEngineConnection::CreatePrivateCloud"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->CreatePrivateCloud(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +VmwareEngineTracingConnection::CreatePrivateCloud( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "vmwareengine_v1::VmwareEngineConnection::CreatePrivateCloud"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->CreatePrivateCloud( + ExperimentalTag{}, operation)); +} + future> VmwareEngineTracingConnection::UpdatePrivateCloud( google::cloud::vmwareengine::v1::UpdatePrivateCloudRequest const& request) { @@ -74,6 +96,28 @@ VmwareEngineTracingConnection::UpdatePrivateCloud( child_->UpdatePrivateCloud(request)); } +StatusOr +VmwareEngineTracingConnection::UpdatePrivateCloud( + ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::UpdatePrivateCloudRequest const& request) { + auto span = internal::MakeSpan( + "vmwareengine_v1::VmwareEngineConnection::UpdatePrivateCloud"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->UpdatePrivateCloud(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +VmwareEngineTracingConnection::UpdatePrivateCloud( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "vmwareengine_v1::VmwareEngineConnection::UpdatePrivateCloud"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->UpdatePrivateCloud( + ExperimentalTag{}, operation)); +} + future> VmwareEngineTracingConnection::DeletePrivateCloud( google::cloud::vmwareengine::v1::DeletePrivateCloudRequest const& request) { @@ -84,6 +128,28 @@ VmwareEngineTracingConnection::DeletePrivateCloud( child_->DeletePrivateCloud(request)); } +StatusOr +VmwareEngineTracingConnection::DeletePrivateCloud( + ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::DeletePrivateCloudRequest const& request) { + auto span = internal::MakeSpan( + "vmwareengine_v1::VmwareEngineConnection::DeletePrivateCloud"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->DeletePrivateCloud(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +VmwareEngineTracingConnection::DeletePrivateCloud( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "vmwareengine_v1::VmwareEngineConnection::DeletePrivateCloud"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->DeletePrivateCloud( + ExperimentalTag{}, operation)); +} + future> VmwareEngineTracingConnection::UndeletePrivateCloud( google::cloud::vmwareengine::v1::UndeletePrivateCloudRequest const& @@ -95,6 +161,29 @@ VmwareEngineTracingConnection::UndeletePrivateCloud( child_->UndeletePrivateCloud(request)); } +StatusOr +VmwareEngineTracingConnection::UndeletePrivateCloud( + ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::UndeletePrivateCloudRequest const& + request) { + auto span = internal::MakeSpan( + "vmwareengine_v1::VmwareEngineConnection::UndeletePrivateCloud"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->UndeletePrivateCloud(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +VmwareEngineTracingConnection::UndeletePrivateCloud( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "vmwareengine_v1::VmwareEngineConnection::UndeletePrivateCloud"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->UndeletePrivateCloud( + ExperimentalTag{}, operation)); +} + StreamRange VmwareEngineTracingConnection::ListClusters( google::cloud::vmwareengine::v1::ListClustersRequest request) { @@ -124,6 +213,27 @@ VmwareEngineTracingConnection::CreateCluster( return internal::EndSpan(std::move(span), child_->CreateCluster(request)); } +StatusOr +VmwareEngineTracingConnection::CreateCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::CreateClusterRequest const& request) { + auto span = internal::MakeSpan( + "vmwareengine_v1::VmwareEngineConnection::CreateCluster"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->CreateCluster(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +VmwareEngineTracingConnection::CreateCluster( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "vmwareengine_v1::VmwareEngineConnection::CreateCluster"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->CreateCluster(ExperimentalTag{}, operation)); +} + future> VmwareEngineTracingConnection::UpdateCluster( google::cloud::vmwareengine::v1::UpdateClusterRequest const& request) { @@ -133,6 +243,27 @@ VmwareEngineTracingConnection::UpdateCluster( return internal::EndSpan(std::move(span), child_->UpdateCluster(request)); } +StatusOr +VmwareEngineTracingConnection::UpdateCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::UpdateClusterRequest const& request) { + auto span = internal::MakeSpan( + "vmwareengine_v1::VmwareEngineConnection::UpdateCluster"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->UpdateCluster(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +VmwareEngineTracingConnection::UpdateCluster( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "vmwareengine_v1::VmwareEngineConnection::UpdateCluster"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->UpdateCluster(ExperimentalTag{}, operation)); +} + future> VmwareEngineTracingConnection::DeleteCluster( google::cloud::vmwareengine::v1::DeleteClusterRequest const& request) { @@ -142,6 +273,27 @@ VmwareEngineTracingConnection::DeleteCluster( return internal::EndSpan(std::move(span), child_->DeleteCluster(request)); } +StatusOr +VmwareEngineTracingConnection::DeleteCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::DeleteClusterRequest const& request) { + auto span = internal::MakeSpan( + "vmwareengine_v1::VmwareEngineConnection::DeleteCluster"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->DeleteCluster(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +VmwareEngineTracingConnection::DeleteCluster( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "vmwareengine_v1::VmwareEngineConnection::DeleteCluster"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->DeleteCluster(ExperimentalTag{}, operation)); +} + StreamRange VmwareEngineTracingConnection::ListNodes( google::cloud::vmwareengine::v1::ListNodesRequest request) { @@ -208,6 +360,29 @@ VmwareEngineTracingConnection::CreateExternalAddress( child_->CreateExternalAddress(request)); } +StatusOr +VmwareEngineTracingConnection::CreateExternalAddress( + ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::CreateExternalAddressRequest const& + request) { + auto span = internal::MakeSpan( + "vmwareengine_v1::VmwareEngineConnection::CreateExternalAddress"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->CreateExternalAddress(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +VmwareEngineTracingConnection::CreateExternalAddress( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "vmwareengine_v1::VmwareEngineConnection::CreateExternalAddress"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->CreateExternalAddress( + ExperimentalTag{}, operation)); +} + future> VmwareEngineTracingConnection::UpdateExternalAddress( google::cloud::vmwareengine::v1::UpdateExternalAddressRequest const& @@ -219,6 +394,29 @@ VmwareEngineTracingConnection::UpdateExternalAddress( child_->UpdateExternalAddress(request)); } +StatusOr +VmwareEngineTracingConnection::UpdateExternalAddress( + ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::UpdateExternalAddressRequest const& + request) { + auto span = internal::MakeSpan( + "vmwareengine_v1::VmwareEngineConnection::UpdateExternalAddress"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->UpdateExternalAddress(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +VmwareEngineTracingConnection::UpdateExternalAddress( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "vmwareengine_v1::VmwareEngineConnection::UpdateExternalAddress"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->UpdateExternalAddress( + ExperimentalTag{}, operation)); +} + future> VmwareEngineTracingConnection::DeleteExternalAddress( google::cloud::vmwareengine::v1::DeleteExternalAddressRequest const& @@ -230,6 +428,29 @@ VmwareEngineTracingConnection::DeleteExternalAddress( child_->DeleteExternalAddress(request)); } +StatusOr +VmwareEngineTracingConnection::DeleteExternalAddress( + ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::DeleteExternalAddressRequest const& + request) { + auto span = internal::MakeSpan( + "vmwareengine_v1::VmwareEngineConnection::DeleteExternalAddress"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->DeleteExternalAddress(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +VmwareEngineTracingConnection::DeleteExternalAddress( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "vmwareengine_v1::VmwareEngineConnection::DeleteExternalAddress"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->DeleteExternalAddress( + ExperimentalTag{}, operation)); +} + StreamRange VmwareEngineTracingConnection::ListSubnets( google::cloud::vmwareengine::v1::ListSubnetsRequest request) { @@ -259,6 +480,27 @@ VmwareEngineTracingConnection::UpdateSubnet( return internal::EndSpan(std::move(span), child_->UpdateSubnet(request)); } +StatusOr +VmwareEngineTracingConnection::UpdateSubnet( + ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::UpdateSubnetRequest const& request) { + auto span = internal::MakeSpan( + "vmwareengine_v1::VmwareEngineConnection::UpdateSubnet"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->UpdateSubnet(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +VmwareEngineTracingConnection::UpdateSubnet( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "vmwareengine_v1::VmwareEngineConnection::UpdateSubnet"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->UpdateSubnet(ExperimentalTag{}, operation)); +} + StreamRange VmwareEngineTracingConnection::ListExternalAccessRules( google::cloud::vmwareengine::v1::ListExternalAccessRulesRequest request) { @@ -292,6 +534,29 @@ VmwareEngineTracingConnection::CreateExternalAccessRule( child_->CreateExternalAccessRule(request)); } +StatusOr +VmwareEngineTracingConnection::CreateExternalAccessRule( + ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::CreateExternalAccessRuleRequest const& + request) { + auto span = internal::MakeSpan( + "vmwareengine_v1::VmwareEngineConnection::CreateExternalAccessRule"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->CreateExternalAccessRule(ExperimentalTag{}, NoAwaitTag{}, + request)); +} + +future> +VmwareEngineTracingConnection::CreateExternalAccessRule( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "vmwareengine_v1::VmwareEngineConnection::CreateExternalAccessRule"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->CreateExternalAccessRule( + ExperimentalTag{}, operation)); +} + future> VmwareEngineTracingConnection::UpdateExternalAccessRule( google::cloud::vmwareengine::v1::UpdateExternalAccessRuleRequest const& @@ -303,6 +568,29 @@ VmwareEngineTracingConnection::UpdateExternalAccessRule( child_->UpdateExternalAccessRule(request)); } +StatusOr +VmwareEngineTracingConnection::UpdateExternalAccessRule( + ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::UpdateExternalAccessRuleRequest const& + request) { + auto span = internal::MakeSpan( + "vmwareengine_v1::VmwareEngineConnection::UpdateExternalAccessRule"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->UpdateExternalAccessRule(ExperimentalTag{}, NoAwaitTag{}, + request)); +} + +future> +VmwareEngineTracingConnection::UpdateExternalAccessRule( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "vmwareengine_v1::VmwareEngineConnection::UpdateExternalAccessRule"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->UpdateExternalAccessRule( + ExperimentalTag{}, operation)); +} + future> VmwareEngineTracingConnection::DeleteExternalAccessRule( google::cloud::vmwareengine::v1::DeleteExternalAccessRuleRequest const& @@ -314,6 +602,29 @@ VmwareEngineTracingConnection::DeleteExternalAccessRule( child_->DeleteExternalAccessRule(request)); } +StatusOr +VmwareEngineTracingConnection::DeleteExternalAccessRule( + ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::DeleteExternalAccessRuleRequest const& + request) { + auto span = internal::MakeSpan( + "vmwareengine_v1::VmwareEngineConnection::DeleteExternalAccessRule"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->DeleteExternalAccessRule(ExperimentalTag{}, NoAwaitTag{}, + request)); +} + +future> +VmwareEngineTracingConnection::DeleteExternalAccessRule( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "vmwareengine_v1::VmwareEngineConnection::DeleteExternalAccessRule"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->DeleteExternalAccessRule( + ExperimentalTag{}, operation)); +} + StreamRange VmwareEngineTracingConnection::ListLoggingServers( google::cloud::vmwareengine::v1::ListLoggingServersRequest request) { @@ -346,6 +657,29 @@ VmwareEngineTracingConnection::CreateLoggingServer( child_->CreateLoggingServer(request)); } +StatusOr +VmwareEngineTracingConnection::CreateLoggingServer( + ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::CreateLoggingServerRequest const& + request) { + auto span = internal::MakeSpan( + "vmwareengine_v1::VmwareEngineConnection::CreateLoggingServer"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->CreateLoggingServer(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +VmwareEngineTracingConnection::CreateLoggingServer( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "vmwareengine_v1::VmwareEngineConnection::CreateLoggingServer"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->CreateLoggingServer( + ExperimentalTag{}, operation)); +} + future> VmwareEngineTracingConnection::UpdateLoggingServer( google::cloud::vmwareengine::v1::UpdateLoggingServerRequest const& @@ -357,6 +691,29 @@ VmwareEngineTracingConnection::UpdateLoggingServer( child_->UpdateLoggingServer(request)); } +StatusOr +VmwareEngineTracingConnection::UpdateLoggingServer( + ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::UpdateLoggingServerRequest const& + request) { + auto span = internal::MakeSpan( + "vmwareengine_v1::VmwareEngineConnection::UpdateLoggingServer"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->UpdateLoggingServer(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +VmwareEngineTracingConnection::UpdateLoggingServer( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "vmwareengine_v1::VmwareEngineConnection::UpdateLoggingServer"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->UpdateLoggingServer( + ExperimentalTag{}, operation)); +} + future> VmwareEngineTracingConnection::DeleteLoggingServer( google::cloud::vmwareengine::v1::DeleteLoggingServerRequest const& @@ -368,6 +725,29 @@ VmwareEngineTracingConnection::DeleteLoggingServer( child_->DeleteLoggingServer(request)); } +StatusOr +VmwareEngineTracingConnection::DeleteLoggingServer( + ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::DeleteLoggingServerRequest const& + request) { + auto span = internal::MakeSpan( + "vmwareengine_v1::VmwareEngineConnection::DeleteLoggingServer"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->DeleteLoggingServer(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +VmwareEngineTracingConnection::DeleteLoggingServer( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "vmwareengine_v1::VmwareEngineConnection::DeleteLoggingServer"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->DeleteLoggingServer( + ExperimentalTag{}, operation)); +} + StreamRange VmwareEngineTracingConnection::ListNodeTypes( google::cloud::vmwareengine::v1::ListNodeTypesRequest request) { @@ -419,6 +799,29 @@ VmwareEngineTracingConnection::ResetNsxCredentials( child_->ResetNsxCredentials(request)); } +StatusOr +VmwareEngineTracingConnection::ResetNsxCredentials( + ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::ResetNsxCredentialsRequest const& + request) { + auto span = internal::MakeSpan( + "vmwareengine_v1::VmwareEngineConnection::ResetNsxCredentials"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->ResetNsxCredentials(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +VmwareEngineTracingConnection::ResetNsxCredentials( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "vmwareengine_v1::VmwareEngineConnection::ResetNsxCredentials"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->ResetNsxCredentials( + ExperimentalTag{}, operation)); +} + future> VmwareEngineTracingConnection::ResetVcenterCredentials( google::cloud::vmwareengine::v1::ResetVcenterCredentialsRequest const& @@ -430,11 +833,34 @@ VmwareEngineTracingConnection::ResetVcenterCredentials( child_->ResetVcenterCredentials(request)); } -StatusOr -VmwareEngineTracingConnection::GetDnsForwarding( - google::cloud::vmwareengine::v1::GetDnsForwardingRequest const& request) { +StatusOr +VmwareEngineTracingConnection::ResetVcenterCredentials( + ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::ResetVcenterCredentialsRequest const& + request) { auto span = internal::MakeSpan( - "vmwareengine_v1::VmwareEngineConnection::GetDnsForwarding"); + "vmwareengine_v1::VmwareEngineConnection::ResetVcenterCredentials"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->ResetVcenterCredentials(ExperimentalTag{}, NoAwaitTag{}, + request)); +} + +future> +VmwareEngineTracingConnection::ResetVcenterCredentials( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "vmwareengine_v1::VmwareEngineConnection::ResetVcenterCredentials"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->ResetVcenterCredentials( + ExperimentalTag{}, operation)); +} + +StatusOr +VmwareEngineTracingConnection::GetDnsForwarding( + google::cloud::vmwareengine::v1::GetDnsForwardingRequest const& request) { + auto span = internal::MakeSpan( + "vmwareengine_v1::VmwareEngineConnection::GetDnsForwarding"); auto scope = opentelemetry::trace::Scope(span); return internal::EndSpan(*span, child_->GetDnsForwarding(request)); } @@ -450,6 +876,29 @@ VmwareEngineTracingConnection::UpdateDnsForwarding( child_->UpdateDnsForwarding(request)); } +StatusOr +VmwareEngineTracingConnection::UpdateDnsForwarding( + ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::UpdateDnsForwardingRequest const& + request) { + auto span = internal::MakeSpan( + "vmwareengine_v1::VmwareEngineConnection::UpdateDnsForwarding"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->UpdateDnsForwarding(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +VmwareEngineTracingConnection::UpdateDnsForwarding( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "vmwareengine_v1::VmwareEngineConnection::UpdateDnsForwarding"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->UpdateDnsForwarding( + ExperimentalTag{}, operation)); +} + StatusOr VmwareEngineTracingConnection::GetNetworkPeering( google::cloud::vmwareengine::v1::GetNetworkPeeringRequest const& request) { @@ -482,6 +931,29 @@ VmwareEngineTracingConnection::CreateNetworkPeering( child_->CreateNetworkPeering(request)); } +StatusOr +VmwareEngineTracingConnection::CreateNetworkPeering( + ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::CreateNetworkPeeringRequest const& + request) { + auto span = internal::MakeSpan( + "vmwareengine_v1::VmwareEngineConnection::CreateNetworkPeering"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->CreateNetworkPeering(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +VmwareEngineTracingConnection::CreateNetworkPeering( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "vmwareengine_v1::VmwareEngineConnection::CreateNetworkPeering"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->CreateNetworkPeering( + ExperimentalTag{}, operation)); +} + future> VmwareEngineTracingConnection::DeleteNetworkPeering( google::cloud::vmwareengine::v1::DeleteNetworkPeeringRequest const& @@ -493,6 +965,29 @@ VmwareEngineTracingConnection::DeleteNetworkPeering( child_->DeleteNetworkPeering(request)); } +StatusOr +VmwareEngineTracingConnection::DeleteNetworkPeering( + ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::DeleteNetworkPeeringRequest const& + request) { + auto span = internal::MakeSpan( + "vmwareengine_v1::VmwareEngineConnection::DeleteNetworkPeering"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->DeleteNetworkPeering(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +VmwareEngineTracingConnection::DeleteNetworkPeering( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "vmwareengine_v1::VmwareEngineConnection::DeleteNetworkPeering"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->DeleteNetworkPeering( + ExperimentalTag{}, operation)); +} + future> VmwareEngineTracingConnection::UpdateNetworkPeering( google::cloud::vmwareengine::v1::UpdateNetworkPeeringRequest const& @@ -504,6 +999,29 @@ VmwareEngineTracingConnection::UpdateNetworkPeering( child_->UpdateNetworkPeering(request)); } +StatusOr +VmwareEngineTracingConnection::UpdateNetworkPeering( + ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::UpdateNetworkPeeringRequest const& + request) { + auto span = internal::MakeSpan( + "vmwareengine_v1::VmwareEngineConnection::UpdateNetworkPeering"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->UpdateNetworkPeering(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +VmwareEngineTracingConnection::UpdateNetworkPeering( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "vmwareengine_v1::VmwareEngineConnection::UpdateNetworkPeering"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->UpdateNetworkPeering( + ExperimentalTag{}, operation)); +} + StreamRange VmwareEngineTracingConnection::ListPeeringRoutes( google::cloud::vmwareengine::v1::ListPeeringRoutesRequest request) { @@ -527,6 +1045,29 @@ VmwareEngineTracingConnection::CreateHcxActivationKey( child_->CreateHcxActivationKey(request)); } +StatusOr +VmwareEngineTracingConnection::CreateHcxActivationKey( + ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::CreateHcxActivationKeyRequest const& + request) { + auto span = internal::MakeSpan( + "vmwareengine_v1::VmwareEngineConnection::CreateHcxActivationKey"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->CreateHcxActivationKey(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +VmwareEngineTracingConnection::CreateHcxActivationKey( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "vmwareengine_v1::VmwareEngineConnection::CreateHcxActivationKey"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->CreateHcxActivationKey( + ExperimentalTag{}, operation)); +} + StreamRange VmwareEngineTracingConnection::ListHcxActivationKeys( google::cloud::vmwareengine::v1::ListHcxActivationKeysRequest request) { @@ -581,6 +1122,29 @@ VmwareEngineTracingConnection::CreateNetworkPolicy( child_->CreateNetworkPolicy(request)); } +StatusOr +VmwareEngineTracingConnection::CreateNetworkPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::CreateNetworkPolicyRequest const& + request) { + auto span = internal::MakeSpan( + "vmwareengine_v1::VmwareEngineConnection::CreateNetworkPolicy"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->CreateNetworkPolicy(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +VmwareEngineTracingConnection::CreateNetworkPolicy( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "vmwareengine_v1::VmwareEngineConnection::CreateNetworkPolicy"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->CreateNetworkPolicy( + ExperimentalTag{}, operation)); +} + future> VmwareEngineTracingConnection::UpdateNetworkPolicy( google::cloud::vmwareengine::v1::UpdateNetworkPolicyRequest const& @@ -592,6 +1156,29 @@ VmwareEngineTracingConnection::UpdateNetworkPolicy( child_->UpdateNetworkPolicy(request)); } +StatusOr +VmwareEngineTracingConnection::UpdateNetworkPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::UpdateNetworkPolicyRequest const& + request) { + auto span = internal::MakeSpan( + "vmwareengine_v1::VmwareEngineConnection::UpdateNetworkPolicy"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->UpdateNetworkPolicy(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +VmwareEngineTracingConnection::UpdateNetworkPolicy( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "vmwareengine_v1::VmwareEngineConnection::UpdateNetworkPolicy"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->UpdateNetworkPolicy( + ExperimentalTag{}, operation)); +} + future> VmwareEngineTracingConnection::DeleteNetworkPolicy( google::cloud::vmwareengine::v1::DeleteNetworkPolicyRequest const& @@ -603,6 +1190,29 @@ VmwareEngineTracingConnection::DeleteNetworkPolicy( child_->DeleteNetworkPolicy(request)); } +StatusOr +VmwareEngineTracingConnection::DeleteNetworkPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::DeleteNetworkPolicyRequest const& + request) { + auto span = internal::MakeSpan( + "vmwareengine_v1::VmwareEngineConnection::DeleteNetworkPolicy"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->DeleteNetworkPolicy(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +VmwareEngineTracingConnection::DeleteNetworkPolicy( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "vmwareengine_v1::VmwareEngineConnection::DeleteNetworkPolicy"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->DeleteNetworkPolicy( + ExperimentalTag{}, operation)); +} + StreamRange VmwareEngineTracingConnection::ListManagementDnsZoneBindings( google::cloud::vmwareengine::v1::ListManagementDnsZoneBindingsRequest @@ -638,6 +1248,32 @@ VmwareEngineTracingConnection::CreateManagementDnsZoneBinding( child_->CreateManagementDnsZoneBinding(request)); } +StatusOr +VmwareEngineTracingConnection::CreateManagementDnsZoneBinding( + ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1:: + CreateManagementDnsZoneBindingRequest const& request) { + auto span = internal::MakeSpan( + "vmwareengine_v1::VmwareEngineConnection::" + "CreateManagementDnsZoneBinding"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->CreateManagementDnsZoneBinding(ExperimentalTag{}, + NoAwaitTag{}, request)); +} + +future> +VmwareEngineTracingConnection::CreateManagementDnsZoneBinding( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "vmwareengine_v1::VmwareEngineConnection::" + "CreateManagementDnsZoneBinding"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), + child_->CreateManagementDnsZoneBinding(ExperimentalTag{}, operation)); +} + future> VmwareEngineTracingConnection::UpdateManagementDnsZoneBinding( google::cloud::vmwareengine::v1:: @@ -650,6 +1286,32 @@ VmwareEngineTracingConnection::UpdateManagementDnsZoneBinding( child_->UpdateManagementDnsZoneBinding(request)); } +StatusOr +VmwareEngineTracingConnection::UpdateManagementDnsZoneBinding( + ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1:: + UpdateManagementDnsZoneBindingRequest const& request) { + auto span = internal::MakeSpan( + "vmwareengine_v1::VmwareEngineConnection::" + "UpdateManagementDnsZoneBinding"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->UpdateManagementDnsZoneBinding(ExperimentalTag{}, + NoAwaitTag{}, request)); +} + +future> +VmwareEngineTracingConnection::UpdateManagementDnsZoneBinding( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "vmwareengine_v1::VmwareEngineConnection::" + "UpdateManagementDnsZoneBinding"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), + child_->UpdateManagementDnsZoneBinding(ExperimentalTag{}, operation)); +} + future> VmwareEngineTracingConnection::DeleteManagementDnsZoneBinding( google::cloud::vmwareengine::v1:: @@ -662,6 +1324,32 @@ VmwareEngineTracingConnection::DeleteManagementDnsZoneBinding( child_->DeleteManagementDnsZoneBinding(request)); } +StatusOr +VmwareEngineTracingConnection::DeleteManagementDnsZoneBinding( + ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1:: + DeleteManagementDnsZoneBindingRequest const& request) { + auto span = internal::MakeSpan( + "vmwareengine_v1::VmwareEngineConnection::" + "DeleteManagementDnsZoneBinding"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->DeleteManagementDnsZoneBinding(ExperimentalTag{}, + NoAwaitTag{}, request)); +} + +future> +VmwareEngineTracingConnection::DeleteManagementDnsZoneBinding( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "vmwareengine_v1::VmwareEngineConnection::" + "DeleteManagementDnsZoneBinding"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), + child_->DeleteManagementDnsZoneBinding(ExperimentalTag{}, operation)); +} + future> VmwareEngineTracingConnection::RepairManagementDnsZoneBinding( google::cloud::vmwareengine::v1:: @@ -674,6 +1362,32 @@ VmwareEngineTracingConnection::RepairManagementDnsZoneBinding( child_->RepairManagementDnsZoneBinding(request)); } +StatusOr +VmwareEngineTracingConnection::RepairManagementDnsZoneBinding( + ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1:: + RepairManagementDnsZoneBindingRequest const& request) { + auto span = internal::MakeSpan( + "vmwareengine_v1::VmwareEngineConnection::" + "RepairManagementDnsZoneBinding"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->RepairManagementDnsZoneBinding(ExperimentalTag{}, + NoAwaitTag{}, request)); +} + +future> +VmwareEngineTracingConnection::RepairManagementDnsZoneBinding( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "vmwareengine_v1::VmwareEngineConnection::" + "RepairManagementDnsZoneBinding"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), + child_->RepairManagementDnsZoneBinding(ExperimentalTag{}, operation)); +} + future> VmwareEngineTracingConnection::CreateVmwareEngineNetwork( google::cloud::vmwareengine::v1::CreateVmwareEngineNetworkRequest const& @@ -685,6 +1399,29 @@ VmwareEngineTracingConnection::CreateVmwareEngineNetwork( child_->CreateVmwareEngineNetwork(request)); } +StatusOr +VmwareEngineTracingConnection::CreateVmwareEngineNetwork( + ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::CreateVmwareEngineNetworkRequest const& + request) { + auto span = internal::MakeSpan( + "vmwareengine_v1::VmwareEngineConnection::CreateVmwareEngineNetwork"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->CreateVmwareEngineNetwork(ExperimentalTag{}, NoAwaitTag{}, + request)); +} + +future> +VmwareEngineTracingConnection::CreateVmwareEngineNetwork( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "vmwareengine_v1::VmwareEngineConnection::CreateVmwareEngineNetwork"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->CreateVmwareEngineNetwork( + ExperimentalTag{}, operation)); +} + future> VmwareEngineTracingConnection::UpdateVmwareEngineNetwork( google::cloud::vmwareengine::v1::UpdateVmwareEngineNetworkRequest const& @@ -696,6 +1433,29 @@ VmwareEngineTracingConnection::UpdateVmwareEngineNetwork( child_->UpdateVmwareEngineNetwork(request)); } +StatusOr +VmwareEngineTracingConnection::UpdateVmwareEngineNetwork( + ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::UpdateVmwareEngineNetworkRequest const& + request) { + auto span = internal::MakeSpan( + "vmwareengine_v1::VmwareEngineConnection::UpdateVmwareEngineNetwork"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->UpdateVmwareEngineNetwork(ExperimentalTag{}, NoAwaitTag{}, + request)); +} + +future> +VmwareEngineTracingConnection::UpdateVmwareEngineNetwork( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "vmwareengine_v1::VmwareEngineConnection::UpdateVmwareEngineNetwork"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->UpdateVmwareEngineNetwork( + ExperimentalTag{}, operation)); +} + future> VmwareEngineTracingConnection::DeleteVmwareEngineNetwork( google::cloud::vmwareengine::v1::DeleteVmwareEngineNetworkRequest const& @@ -707,6 +1467,29 @@ VmwareEngineTracingConnection::DeleteVmwareEngineNetwork( child_->DeleteVmwareEngineNetwork(request)); } +StatusOr +VmwareEngineTracingConnection::DeleteVmwareEngineNetwork( + ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::DeleteVmwareEngineNetworkRequest const& + request) { + auto span = internal::MakeSpan( + "vmwareengine_v1::VmwareEngineConnection::DeleteVmwareEngineNetwork"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->DeleteVmwareEngineNetwork(ExperimentalTag{}, NoAwaitTag{}, + request)); +} + +future> +VmwareEngineTracingConnection::DeleteVmwareEngineNetwork( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "vmwareengine_v1::VmwareEngineConnection::DeleteVmwareEngineNetwork"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->DeleteVmwareEngineNetwork( + ExperimentalTag{}, operation)); +} + StatusOr VmwareEngineTracingConnection::GetVmwareEngineNetwork( google::cloud::vmwareengine::v1::GetVmwareEngineNetworkRequest const& @@ -740,6 +1523,29 @@ VmwareEngineTracingConnection::CreatePrivateConnection( child_->CreatePrivateConnection(request)); } +StatusOr +VmwareEngineTracingConnection::CreatePrivateConnection( + ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::CreatePrivateConnectionRequest const& + request) { + auto span = internal::MakeSpan( + "vmwareengine_v1::VmwareEngineConnection::CreatePrivateConnection"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->CreatePrivateConnection(ExperimentalTag{}, NoAwaitTag{}, + request)); +} + +future> +VmwareEngineTracingConnection::CreatePrivateConnection( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "vmwareengine_v1::VmwareEngineConnection::CreatePrivateConnection"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->CreatePrivateConnection( + ExperimentalTag{}, operation)); +} + StatusOr VmwareEngineTracingConnection::GetPrivateConnection( google::cloud::vmwareengine::v1::GetPrivateConnectionRequest const& @@ -773,6 +1579,29 @@ VmwareEngineTracingConnection::UpdatePrivateConnection( child_->UpdatePrivateConnection(request)); } +StatusOr +VmwareEngineTracingConnection::UpdatePrivateConnection( + ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::UpdatePrivateConnectionRequest const& + request) { + auto span = internal::MakeSpan( + "vmwareengine_v1::VmwareEngineConnection::UpdatePrivateConnection"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->UpdatePrivateConnection(ExperimentalTag{}, NoAwaitTag{}, + request)); +} + +future> +VmwareEngineTracingConnection::UpdatePrivateConnection( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "vmwareengine_v1::VmwareEngineConnection::UpdatePrivateConnection"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->UpdatePrivateConnection( + ExperimentalTag{}, operation)); +} + future> VmwareEngineTracingConnection::DeletePrivateConnection( google::cloud::vmwareengine::v1::DeletePrivateConnectionRequest const& @@ -784,6 +1613,29 @@ VmwareEngineTracingConnection::DeletePrivateConnection( child_->DeletePrivateConnection(request)); } +StatusOr +VmwareEngineTracingConnection::DeletePrivateConnection( + ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::DeletePrivateConnectionRequest const& + request) { + auto span = internal::MakeSpan( + "vmwareengine_v1::VmwareEngineConnection::DeletePrivateConnection"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->DeletePrivateConnection(ExperimentalTag{}, NoAwaitTag{}, + request)); +} + +future> +VmwareEngineTracingConnection::DeletePrivateConnection( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "vmwareengine_v1::VmwareEngineConnection::DeletePrivateConnection"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->DeletePrivateConnection( + ExperimentalTag{}, operation)); +} + StreamRange VmwareEngineTracingConnection::ListPrivateConnectionPeeringRoutes( google::cloud::vmwareengine::v1::ListPrivateConnectionPeeringRoutesRequest @@ -809,6 +1661,29 @@ VmwareEngineTracingConnection::GrantDnsBindPermission( child_->GrantDnsBindPermission(request)); } +StatusOr +VmwareEngineTracingConnection::GrantDnsBindPermission( + ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::GrantDnsBindPermissionRequest const& + request) { + auto span = internal::MakeSpan( + "vmwareengine_v1::VmwareEngineConnection::GrantDnsBindPermission"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->GrantDnsBindPermission(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +VmwareEngineTracingConnection::GrantDnsBindPermission( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "vmwareengine_v1::VmwareEngineConnection::GrantDnsBindPermission"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->GrantDnsBindPermission( + ExperimentalTag{}, operation)); +} + StatusOr VmwareEngineTracingConnection::GetDnsBindPermission( google::cloud::vmwareengine::v1::GetDnsBindPermissionRequest const& @@ -830,6 +1705,29 @@ VmwareEngineTracingConnection::RevokeDnsBindPermission( child_->RevokeDnsBindPermission(request)); } +StatusOr +VmwareEngineTracingConnection::RevokeDnsBindPermission( + ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::RevokeDnsBindPermissionRequest const& + request) { + auto span = internal::MakeSpan( + "vmwareengine_v1::VmwareEngineConnection::RevokeDnsBindPermission"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->RevokeDnsBindPermission(ExperimentalTag{}, NoAwaitTag{}, + request)); +} + +future> +VmwareEngineTracingConnection::RevokeDnsBindPermission( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "vmwareengine_v1::VmwareEngineConnection::RevokeDnsBindPermission"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->RevokeDnsBindPermission( + ExperimentalTag{}, operation)); +} + #endif // GOOGLE_CLOUD_CPP_HAVE_OPENTELEMETRY std::shared_ptr diff --git a/google/cloud/vmwareengine/v1/internal/vmware_engine_tracing_connection.h b/google/cloud/vmwareengine/v1/internal/vmware_engine_tracing_connection.h index 718dbc9ba6e13..af418f95fb200 100644 --- a/google/cloud/vmwareengine/v1/internal/vmware_engine_tracing_connection.h +++ b/google/cloud/vmwareengine/v1/internal/vmware_engine_tracing_connection.h @@ -53,21 +53,58 @@ class VmwareEngineTracingConnection google::cloud::vmwareengine::v1::CreatePrivateCloudRequest const& request) override; + StatusOr CreatePrivateCloud( + ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::CreatePrivateCloudRequest const& request) + override; + + future> + CreatePrivateCloud(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdatePrivateCloud( google::cloud::vmwareengine::v1::UpdatePrivateCloudRequest const& request) override; + StatusOr UpdatePrivateCloud( + ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::UpdatePrivateCloudRequest const& request) + override; + + future> + UpdatePrivateCloud(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeletePrivateCloud( google::cloud::vmwareengine::v1::DeletePrivateCloudRequest const& request) override; + StatusOr DeletePrivateCloud( + ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::DeletePrivateCloudRequest const& request) + override; + + future> + DeletePrivateCloud(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UndeletePrivateCloud( google::cloud::vmwareengine::v1::UndeletePrivateCloudRequest const& request) override; + StatusOr UndeletePrivateCloud( + ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::UndeletePrivateCloudRequest const& + request) override; + + future> + UndeletePrivateCloud( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListClusters( google::cloud::vmwareengine::v1::ListClustersRequest request) override; @@ -79,14 +116,41 @@ class VmwareEngineTracingConnection google::cloud::vmwareengine::v1::CreateClusterRequest const& request) override; + StatusOr CreateCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::CreateClusterRequest const& request) + override; + + future> CreateCluster( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateCluster( google::cloud::vmwareengine::v1::UpdateClusterRequest const& request) override; + StatusOr UpdateCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::UpdateClusterRequest const& request) + override; + + future> UpdateCluster( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteCluster(google::cloud::vmwareengine::v1::DeleteClusterRequest const& request) override; + StatusOr DeleteCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::DeleteClusterRequest const& request) + override; + + future> + DeleteCluster(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListNodes( google::cloud::vmwareengine::v1::ListNodesRequest request) override; @@ -112,16 +176,46 @@ class VmwareEngineTracingConnection google::cloud::vmwareengine::v1::CreateExternalAddressRequest const& request) override; + StatusOr CreateExternalAddress( + ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::CreateExternalAddressRequest const& + request) override; + + future> + CreateExternalAddress( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateExternalAddress( google::cloud::vmwareengine::v1::UpdateExternalAddressRequest const& request) override; + StatusOr UpdateExternalAddress( + ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::UpdateExternalAddressRequest const& + request) override; + + future> + UpdateExternalAddress( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteExternalAddress( google::cloud::vmwareengine::v1::DeleteExternalAddressRequest const& request) override; + StatusOr DeleteExternalAddress( + ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::DeleteExternalAddressRequest const& + request) override; + + future> + DeleteExternalAddress( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListSubnets( google::cloud::vmwareengine::v1::ListSubnetsRequest request) override; @@ -133,6 +227,15 @@ class VmwareEngineTracingConnection google::cloud::vmwareengine::v1::UpdateSubnetRequest const& request) override; + StatusOr UpdateSubnet( + ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::UpdateSubnetRequest const& request) + override; + + future> UpdateSubnet( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListExternalAccessRules( google::cloud::vmwareengine::v1::ListExternalAccessRulesRequest request) @@ -148,16 +251,46 @@ class VmwareEngineTracingConnection google::cloud::vmwareengine::v1::CreateExternalAccessRuleRequest const& request) override; + StatusOr CreateExternalAccessRule( + ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::CreateExternalAccessRuleRequest const& + request) override; + + future> + CreateExternalAccessRule( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateExternalAccessRule( google::cloud::vmwareengine::v1::UpdateExternalAccessRuleRequest const& request) override; + StatusOr UpdateExternalAccessRule( + ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::UpdateExternalAccessRuleRequest const& + request) override; + + future> + UpdateExternalAccessRule( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteExternalAccessRule( google::cloud::vmwareengine::v1::DeleteExternalAccessRuleRequest const& request) override; + StatusOr DeleteExternalAccessRule( + ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::DeleteExternalAccessRuleRequest const& + request) override; + + future> + DeleteExternalAccessRule( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListLoggingServers(google::cloud::vmwareengine::v1::ListLoggingServersRequest request) override; @@ -171,16 +304,43 @@ class VmwareEngineTracingConnection google::cloud::vmwareengine::v1::CreateLoggingServerRequest const& request) override; + StatusOr CreateLoggingServer( + ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::CreateLoggingServerRequest const& + request) override; + + future> + CreateLoggingServer(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateLoggingServer( google::cloud::vmwareengine::v1::UpdateLoggingServerRequest const& request) override; + StatusOr UpdateLoggingServer( + ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::UpdateLoggingServerRequest const& + request) override; + + future> + UpdateLoggingServer(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteLoggingServer( google::cloud::vmwareengine::v1::DeleteLoggingServerRequest const& request) override; + StatusOr DeleteLoggingServer( + ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::DeleteLoggingServerRequest const& + request) override; + + future> + DeleteLoggingServer(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListNodeTypes( google::cloud::vmwareengine::v1::ListNodeTypesRequest request) override; @@ -201,11 +361,30 @@ class VmwareEngineTracingConnection google::cloud::vmwareengine::v1::ResetNsxCredentialsRequest const& request) override; + StatusOr ResetNsxCredentials( + ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::ResetNsxCredentialsRequest const& + request) override; + + future> + ResetNsxCredentials(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ResetVcenterCredentials( google::cloud::vmwareengine::v1::ResetVcenterCredentialsRequest const& request) override; + StatusOr ResetVcenterCredentials( + ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::ResetVcenterCredentialsRequest const& + request) override; + + future> + ResetVcenterCredentials( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetDnsForwarding( google::cloud::vmwareengine::v1::GetDnsForwardingRequest const& request) override; @@ -215,6 +394,15 @@ class VmwareEngineTracingConnection google::cloud::vmwareengine::v1::UpdateDnsForwardingRequest const& request) override; + StatusOr UpdateDnsForwarding( + ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::UpdateDnsForwardingRequest const& + request) override; + + future> + UpdateDnsForwarding(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetNetworkPeering( google::cloud::vmwareengine::v1::GetNetworkPeeringRequest const& request) override; @@ -229,16 +417,46 @@ class VmwareEngineTracingConnection google::cloud::vmwareengine::v1::CreateNetworkPeeringRequest const& request) override; + StatusOr CreateNetworkPeering( + ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::CreateNetworkPeeringRequest const& + request) override; + + future> + CreateNetworkPeering( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteNetworkPeering( google::cloud::vmwareengine::v1::DeleteNetworkPeeringRequest const& request) override; + StatusOr DeleteNetworkPeering( + ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::DeleteNetworkPeeringRequest const& + request) override; + + future> + DeleteNetworkPeering( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateNetworkPeering( google::cloud::vmwareengine::v1::UpdateNetworkPeeringRequest const& request) override; + StatusOr UpdateNetworkPeering( + ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::UpdateNetworkPeeringRequest const& + request) override; + + future> + UpdateNetworkPeering( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListPeeringRoutes( google::cloud::vmwareengine::v1::ListPeeringRoutesRequest request) override; @@ -248,6 +466,16 @@ class VmwareEngineTracingConnection google::cloud::vmwareengine::v1::CreateHcxActivationKeyRequest const& request) override; + StatusOr CreateHcxActivationKey( + ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::CreateHcxActivationKeyRequest const& + request) override; + + future> + CreateHcxActivationKey( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListHcxActivationKeys( google::cloud::vmwareengine::v1::ListHcxActivationKeysRequest request) @@ -272,16 +500,43 @@ class VmwareEngineTracingConnection google::cloud::vmwareengine::v1::CreateNetworkPolicyRequest const& request) override; + StatusOr CreateNetworkPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::CreateNetworkPolicyRequest const& + request) override; + + future> + CreateNetworkPolicy(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateNetworkPolicy( google::cloud::vmwareengine::v1::UpdateNetworkPolicyRequest const& request) override; + StatusOr UpdateNetworkPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::UpdateNetworkPolicyRequest const& + request) override; + + future> + UpdateNetworkPolicy(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteNetworkPolicy( google::cloud::vmwareengine::v1::DeleteNetworkPolicyRequest const& request) override; + StatusOr DeleteNetworkPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::DeleteNetworkPolicyRequest const& + request) override; + + future> + DeleteNetworkPolicy(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListManagementDnsZoneBindings( google::cloud::vmwareengine::v1::ListManagementDnsZoneBindingsRequest @@ -297,36 +552,106 @@ class VmwareEngineTracingConnection google::cloud::vmwareengine::v1:: CreateManagementDnsZoneBindingRequest const& request) override; + StatusOr CreateManagementDnsZoneBinding( + ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1:: + CreateManagementDnsZoneBindingRequest const& request) override; + + future> + CreateManagementDnsZoneBinding( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateManagementDnsZoneBinding( google::cloud::vmwareengine::v1:: UpdateManagementDnsZoneBindingRequest const& request) override; + StatusOr UpdateManagementDnsZoneBinding( + ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1:: + UpdateManagementDnsZoneBindingRequest const& request) override; + + future> + UpdateManagementDnsZoneBinding( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteManagementDnsZoneBinding( google::cloud::vmwareengine::v1:: DeleteManagementDnsZoneBindingRequest const& request) override; + StatusOr DeleteManagementDnsZoneBinding( + ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1:: + DeleteManagementDnsZoneBindingRequest const& request) override; + + future> + DeleteManagementDnsZoneBinding( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> RepairManagementDnsZoneBinding( google::cloud::vmwareengine::v1:: RepairManagementDnsZoneBindingRequest const& request) override; + StatusOr RepairManagementDnsZoneBinding( + ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1:: + RepairManagementDnsZoneBindingRequest const& request) override; + + future> + RepairManagementDnsZoneBinding( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> CreateVmwareEngineNetwork( google::cloud::vmwareengine::v1::CreateVmwareEngineNetworkRequest const& request) override; + StatusOr CreateVmwareEngineNetwork( + ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::CreateVmwareEngineNetworkRequest const& + request) override; + + future> + CreateVmwareEngineNetwork( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateVmwareEngineNetwork( google::cloud::vmwareengine::v1::UpdateVmwareEngineNetworkRequest const& request) override; + StatusOr UpdateVmwareEngineNetwork( + ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::UpdateVmwareEngineNetworkRequest const& + request) override; + + future> + UpdateVmwareEngineNetwork( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteVmwareEngineNetwork( google::cloud::vmwareengine::v1::DeleteVmwareEngineNetworkRequest const& request) override; + StatusOr DeleteVmwareEngineNetwork( + ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::DeleteVmwareEngineNetworkRequest const& + request) override; + + future> + DeleteVmwareEngineNetwork( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetVmwareEngineNetwork( google::cloud::vmwareengine::v1::GetVmwareEngineNetworkRequest const& @@ -342,6 +667,16 @@ class VmwareEngineTracingConnection google::cloud::vmwareengine::v1::CreatePrivateConnectionRequest const& request) override; + StatusOr CreatePrivateConnection( + ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::CreatePrivateConnectionRequest const& + request) override; + + future> + CreatePrivateConnection( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetPrivateConnection( google::cloud::vmwareengine::v1::GetPrivateConnectionRequest const& @@ -357,11 +692,31 @@ class VmwareEngineTracingConnection google::cloud::vmwareengine::v1::UpdatePrivateConnectionRequest const& request) override; + StatusOr UpdatePrivateConnection( + ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::UpdatePrivateConnectionRequest const& + request) override; + + future> + UpdatePrivateConnection( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeletePrivateConnection( google::cloud::vmwareengine::v1::DeletePrivateConnectionRequest const& request) override; + StatusOr DeletePrivateConnection( + ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::DeletePrivateConnectionRequest const& + request) override; + + future> + DeletePrivateConnection( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListPrivateConnectionPeeringRoutes( google::cloud::vmwareengine::v1::ListPrivateConnectionPeeringRoutesRequest @@ -372,6 +727,16 @@ class VmwareEngineTracingConnection google::cloud::vmwareengine::v1::GrantDnsBindPermissionRequest const& request) override; + StatusOr GrantDnsBindPermission( + ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::GrantDnsBindPermissionRequest const& + request) override; + + future> + GrantDnsBindPermission( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetDnsBindPermission( google::cloud::vmwareengine::v1::GetDnsBindPermissionRequest const& @@ -382,6 +747,16 @@ class VmwareEngineTracingConnection google::cloud::vmwareengine::v1::RevokeDnsBindPermissionRequest const& request) override; + StatusOr RevokeDnsBindPermission( + ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::RevokeDnsBindPermissionRequest const& + request) override; + + future> + RevokeDnsBindPermission( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + private: std::shared_ptr child_; }; diff --git a/google/cloud/vmwareengine/v1/mocks/mock_vmware_engine_connection.h b/google/cloud/vmwareengine/v1/mocks/mock_vmware_engine_connection.h index 9e234282113fc..2a657c790aa47 100644 --- a/google/cloud/vmwareengine/v1/mocks/mock_vmware_engine_connection.h +++ b/google/cloud/vmwareengine/v1/mocks/mock_vmware_engine_connection.h @@ -64,18 +64,54 @@ class MockVmwareEngineConnection request), (override)); + MOCK_METHOD(StatusOr, CreatePrivateCloud, + (ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::CreatePrivateCloudRequest const& + request), + (override)); + + MOCK_METHOD(future>, + CreatePrivateCloud, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, UpdatePrivateCloud, (google::cloud::vmwareengine::v1::UpdatePrivateCloudRequest const& request), (override)); + MOCK_METHOD(StatusOr, UpdatePrivateCloud, + (ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::UpdatePrivateCloudRequest const& + request), + (override)); + + MOCK_METHOD(future>, + UpdatePrivateCloud, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, DeletePrivateCloud, (google::cloud::vmwareengine::v1::DeletePrivateCloudRequest const& request), (override)); + MOCK_METHOD(StatusOr, DeletePrivateCloud, + (ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::DeletePrivateCloudRequest const& + request), + (override)); + + MOCK_METHOD(future>, + DeletePrivateCloud, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, UndeletePrivateCloud, @@ -83,6 +119,19 @@ class MockVmwareEngineConnection request), (override)); + MOCK_METHOD( + StatusOr, UndeletePrivateCloud, + (ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::UndeletePrivateCloudRequest const& + request), + (override)); + + MOCK_METHOD(future>, + UndeletePrivateCloud, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD((StreamRange), ListClusters, (google::cloud::vmwareengine::v1::ListClustersRequest request), @@ -98,17 +147,53 @@ class MockVmwareEngineConnection (google::cloud::vmwareengine::v1::CreateClusterRequest const& request), (override)); + MOCK_METHOD( + StatusOr, CreateCluster, + (ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::CreateClusterRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateCluster, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, UpdateCluster, (google::cloud::vmwareengine::v1::UpdateClusterRequest const& request), (override)); + MOCK_METHOD( + StatusOr, UpdateCluster, + (ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::UpdateClusterRequest const& request), + (override)); + + MOCK_METHOD(future>, + UpdateCluster, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteCluster, (google::cloud::vmwareengine::v1::DeleteClusterRequest const& request), (override)); + MOCK_METHOD( + StatusOr, DeleteCluster, + (ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::DeleteClusterRequest const& request), + (override)); + + MOCK_METHOD( + future>, + DeleteCluster, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD((StreamRange), ListNodes, (google::cloud::vmwareengine::v1::ListNodesRequest request), (override)); @@ -142,6 +227,19 @@ class MockVmwareEngineConnection request), (override)); + MOCK_METHOD( + StatusOr, CreateExternalAddress, + (ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::CreateExternalAddressRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + CreateExternalAddress, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, UpdateExternalAddress, @@ -149,6 +247,19 @@ class MockVmwareEngineConnection request), (override)); + MOCK_METHOD( + StatusOr, UpdateExternalAddress, + (ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::UpdateExternalAddressRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + UpdateExternalAddress, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteExternalAddress, @@ -156,6 +267,19 @@ class MockVmwareEngineConnection request), (override)); + MOCK_METHOD( + StatusOr, DeleteExternalAddress, + (ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::DeleteExternalAddressRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + DeleteExternalAddress, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD((StreamRange), ListSubnets, (google::cloud::vmwareengine::v1::ListSubnetsRequest request), @@ -171,6 +295,18 @@ class MockVmwareEngineConnection (google::cloud::vmwareengine::v1::UpdateSubnetRequest const& request), (override)); + MOCK_METHOD( + StatusOr, UpdateSubnet, + (ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::UpdateSubnetRequest const& request), + (override)); + + MOCK_METHOD(future>, + UpdateSubnet, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( (StreamRange), ListExternalAccessRules, @@ -191,6 +327,19 @@ class MockVmwareEngineConnection request), (override)); + MOCK_METHOD( + StatusOr, CreateExternalAccessRule, + (ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::CreateExternalAccessRuleRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + CreateExternalAccessRule, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, UpdateExternalAccessRule, @@ -198,6 +347,19 @@ class MockVmwareEngineConnection request), (override)); + MOCK_METHOD( + StatusOr, UpdateExternalAccessRule, + (ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::UpdateExternalAccessRuleRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + UpdateExternalAccessRule, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteExternalAccessRule, @@ -205,6 +367,19 @@ class MockVmwareEngineConnection request), (override)); + MOCK_METHOD( + StatusOr, DeleteExternalAccessRule, + (ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::DeleteExternalAccessRuleRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + DeleteExternalAccessRule, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( (StreamRange), ListLoggingServers, @@ -224,6 +399,19 @@ class MockVmwareEngineConnection request), (override)); + MOCK_METHOD( + StatusOr, CreateLoggingServer, + (ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::CreateLoggingServerRequest const& + request), + (override)); + + MOCK_METHOD(future>, + CreateLoggingServer, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, UpdateLoggingServer, @@ -231,6 +419,19 @@ class MockVmwareEngineConnection request), (override)); + MOCK_METHOD( + StatusOr, UpdateLoggingServer, + (ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::UpdateLoggingServerRequest const& + request), + (override)); + + MOCK_METHOD(future>, + UpdateLoggingServer, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteLoggingServer, @@ -238,6 +439,19 @@ class MockVmwareEngineConnection request), (override)); + MOCK_METHOD( + StatusOr, DeleteLoggingServer, + (ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::DeleteLoggingServerRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + DeleteLoggingServer, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD((StreamRange), ListNodeTypes, (google::cloud::vmwareengine::v1::ListNodeTypesRequest request), @@ -268,6 +482,19 @@ class MockVmwareEngineConnection request), (override)); + MOCK_METHOD( + StatusOr, ResetNsxCredentials, + (ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::ResetNsxCredentialsRequest const& + request), + (override)); + + MOCK_METHOD(future>, + ResetNsxCredentials, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, ResetVcenterCredentials, @@ -275,6 +502,19 @@ class MockVmwareEngineConnection request), (override)); + MOCK_METHOD( + StatusOr, ResetVcenterCredentials, + (ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::ResetVcenterCredentialsRequest const& + request), + (override)); + + MOCK_METHOD(future>, + ResetVcenterCredentials, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr, GetDnsForwarding, @@ -288,6 +528,19 @@ class MockVmwareEngineConnection request), (override)); + MOCK_METHOD( + StatusOr, UpdateDnsForwarding, + (ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::UpdateDnsForwardingRequest const& + request), + (override)); + + MOCK_METHOD(future>, + UpdateDnsForwarding, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(StatusOr, GetNetworkPeering, (google::cloud::vmwareengine::v1::GetNetworkPeeringRequest const& @@ -307,6 +560,19 @@ class MockVmwareEngineConnection request), (override)); + MOCK_METHOD( + StatusOr, CreateNetworkPeering, + (ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::CreateNetworkPeeringRequest const& + request), + (override)); + + MOCK_METHOD(future>, + CreateNetworkPeering, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteNetworkPeering, @@ -314,6 +580,19 @@ class MockVmwareEngineConnection request), (override)); + MOCK_METHOD( + StatusOr, DeleteNetworkPeering, + (ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::DeleteNetworkPeeringRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + DeleteNetworkPeering, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, UpdateNetworkPeering, @@ -321,6 +600,19 @@ class MockVmwareEngineConnection request), (override)); + MOCK_METHOD( + StatusOr, UpdateNetworkPeering, + (ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::UpdateNetworkPeeringRequest const& + request), + (override)); + + MOCK_METHOD(future>, + UpdateNetworkPeering, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( (StreamRange), ListPeeringRoutes, @@ -334,6 +626,19 @@ class MockVmwareEngineConnection request), (override)); + MOCK_METHOD( + StatusOr, CreateHcxActivationKey, + (ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::CreateHcxActivationKeyRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + CreateHcxActivationKey, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( (StreamRange), ListHcxActivationKeys, @@ -366,6 +671,19 @@ class MockVmwareEngineConnection request), (override)); + MOCK_METHOD( + StatusOr, CreateNetworkPolicy, + (ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::CreateNetworkPolicyRequest const& + request), + (override)); + + MOCK_METHOD(future>, + CreateNetworkPolicy, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, UpdateNetworkPolicy, @@ -373,6 +691,19 @@ class MockVmwareEngineConnection request), (override)); + MOCK_METHOD( + StatusOr, UpdateNetworkPolicy, + (ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::UpdateNetworkPolicyRequest const& + request), + (override)); + + MOCK_METHOD(future>, + UpdateNetworkPolicy, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteNetworkPolicy, @@ -380,6 +711,19 @@ class MockVmwareEngineConnection request), (override)); + MOCK_METHOD( + StatusOr, DeleteNetworkPolicy, + (ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::DeleteNetworkPolicyRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + DeleteNetworkPolicy, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( (StreamRange), ListManagementDnsZoneBindings, @@ -402,6 +746,20 @@ class MockVmwareEngineConnection CreateManagementDnsZoneBindingRequest const& request), (override)); + MOCK_METHOD(StatusOr, + CreateManagementDnsZoneBinding, + (ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1:: + CreateManagementDnsZoneBindingRequest const& request), + (override)); + + MOCK_METHOD( + future< + StatusOr>, + CreateManagementDnsZoneBinding, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future< StatusOr>, @@ -410,6 +768,20 @@ class MockVmwareEngineConnection UpdateManagementDnsZoneBindingRequest const& request), (override)); + MOCK_METHOD(StatusOr, + UpdateManagementDnsZoneBinding, + (ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1:: + UpdateManagementDnsZoneBindingRequest const& request), + (override)); + + MOCK_METHOD( + future< + StatusOr>, + UpdateManagementDnsZoneBinding, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteManagementDnsZoneBinding, @@ -417,6 +789,19 @@ class MockVmwareEngineConnection DeleteManagementDnsZoneBindingRequest const& request), (override)); + MOCK_METHOD(StatusOr, + DeleteManagementDnsZoneBinding, + (ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1:: + DeleteManagementDnsZoneBindingRequest const& request), + (override)); + + MOCK_METHOD( + future>, + DeleteManagementDnsZoneBinding, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future< StatusOr>, @@ -425,6 +810,20 @@ class MockVmwareEngineConnection RepairManagementDnsZoneBindingRequest const& request), (override)); + MOCK_METHOD(StatusOr, + RepairManagementDnsZoneBinding, + (ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1:: + RepairManagementDnsZoneBindingRequest const& request), + (override)); + + MOCK_METHOD( + future< + StatusOr>, + RepairManagementDnsZoneBinding, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, CreateVmwareEngineNetwork, @@ -432,6 +831,19 @@ class MockVmwareEngineConnection request), (override)); + MOCK_METHOD( + StatusOr, CreateVmwareEngineNetwork, + (ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::CreateVmwareEngineNetworkRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + CreateVmwareEngineNetwork, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, UpdateVmwareEngineNetwork, @@ -439,6 +851,19 @@ class MockVmwareEngineConnection request), (override)); + MOCK_METHOD( + StatusOr, UpdateVmwareEngineNetwork, + (ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::UpdateVmwareEngineNetworkRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + UpdateVmwareEngineNetwork, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteVmwareEngineNetwork, @@ -446,6 +871,19 @@ class MockVmwareEngineConnection request), (override)); + MOCK_METHOD( + StatusOr, DeleteVmwareEngineNetwork, + (ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::DeleteVmwareEngineNetworkRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + DeleteVmwareEngineNetwork, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr, GetVmwareEngineNetwork, @@ -467,6 +905,19 @@ class MockVmwareEngineConnection request), (override)); + MOCK_METHOD( + StatusOr, CreatePrivateConnection, + (ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::CreatePrivateConnectionRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + CreatePrivateConnection, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr, GetPrivateConnection, @@ -487,6 +938,19 @@ class MockVmwareEngineConnection request), (override)); + MOCK_METHOD( + StatusOr, UpdatePrivateConnection, + (ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::UpdatePrivateConnectionRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + UpdatePrivateConnection, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeletePrivateConnection, @@ -494,6 +958,19 @@ class MockVmwareEngineConnection request), (override)); + MOCK_METHOD( + StatusOr, DeletePrivateConnection, + (ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::DeletePrivateConnectionRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + DeletePrivateConnection, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD((StreamRange), ListPrivateConnectionPeeringRoutes, (google::cloud::vmwareengine::v1:: @@ -507,6 +984,19 @@ class MockVmwareEngineConnection request), (override)); + MOCK_METHOD( + StatusOr, GrantDnsBindPermission, + (ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::GrantDnsBindPermissionRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + GrantDnsBindPermission, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr, GetDnsBindPermission, @@ -520,6 +1010,19 @@ class MockVmwareEngineConnection (google::cloud::vmwareengine::v1::RevokeDnsBindPermissionRequest const& request), (override)); + + MOCK_METHOD( + StatusOr, RevokeDnsBindPermission, + (ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::RevokeDnsBindPermissionRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + RevokeDnsBindPermission, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); }; GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END diff --git a/google/cloud/vmwareengine/v1/vmware_engine_connection.cc b/google/cloud/vmwareengine/v1/vmware_engine_connection.cc index c0448b64b376f..2b32b9ec8dfbd 100644 --- a/google/cloud/vmwareengine/v1/vmware_engine_connection.cc +++ b/google/cloud/vmwareengine/v1/vmware_engine_connection.cc @@ -60,6 +60,22 @@ VmwareEngineConnection::CreatePrivateCloud( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +VmwareEngineConnection::CreatePrivateCloud( + ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::CreatePrivateCloudRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +VmwareEngineConnection::CreatePrivateCloud( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> VmwareEngineConnection::UpdatePrivateCloud( google::cloud::vmwareengine::v1::UpdatePrivateCloudRequest const&) { @@ -68,6 +84,22 @@ VmwareEngineConnection::UpdatePrivateCloud( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +VmwareEngineConnection::UpdatePrivateCloud( + ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::UpdatePrivateCloudRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +VmwareEngineConnection::UpdatePrivateCloud( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> VmwareEngineConnection::DeletePrivateCloud( google::cloud::vmwareengine::v1::DeletePrivateCloudRequest const&) { @@ -76,6 +108,22 @@ VmwareEngineConnection::DeletePrivateCloud( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +VmwareEngineConnection::DeletePrivateCloud( + ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::DeletePrivateCloudRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +VmwareEngineConnection::DeletePrivateCloud( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> VmwareEngineConnection::UndeletePrivateCloud( google::cloud::vmwareengine::v1::UndeletePrivateCloudRequest const&) { @@ -84,6 +132,22 @@ VmwareEngineConnection::UndeletePrivateCloud( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +VmwareEngineConnection::UndeletePrivateCloud( + ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::UndeletePrivateCloudRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +VmwareEngineConnection::UndeletePrivateCloud( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StreamRange VmwareEngineConnection::ListClusters( google::cloud::vmwareengine::v1:: @@ -106,6 +170,21 @@ VmwareEngineConnection::CreateCluster( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr VmwareEngineConnection::CreateCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::CreateClusterRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +VmwareEngineConnection::CreateCluster(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> VmwareEngineConnection::UpdateCluster( google::cloud::vmwareengine::v1::UpdateClusterRequest const&) { @@ -114,6 +193,21 @@ VmwareEngineConnection::UpdateCluster( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr VmwareEngineConnection::UpdateCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::UpdateClusterRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +VmwareEngineConnection::UpdateCluster(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> VmwareEngineConnection::DeleteCluster( google::cloud::vmwareengine::v1::DeleteClusterRequest const&) { @@ -122,6 +216,21 @@ VmwareEngineConnection::DeleteCluster( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr VmwareEngineConnection::DeleteCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::DeleteClusterRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +VmwareEngineConnection::DeleteCluster(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StreamRange VmwareEngineConnection::ListNodes( google::cloud::vmwareengine::v1:: @@ -165,6 +274,22 @@ VmwareEngineConnection::CreateExternalAddress( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +VmwareEngineConnection::CreateExternalAddress( + ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::CreateExternalAddressRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +VmwareEngineConnection::CreateExternalAddress( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> VmwareEngineConnection::UpdateExternalAddress( google::cloud::vmwareengine::v1::UpdateExternalAddressRequest const&) { @@ -173,6 +298,22 @@ VmwareEngineConnection::UpdateExternalAddress( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +VmwareEngineConnection::UpdateExternalAddress( + ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::UpdateExternalAddressRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +VmwareEngineConnection::UpdateExternalAddress( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> VmwareEngineConnection::DeleteExternalAddress( google::cloud::vmwareengine::v1::DeleteExternalAddressRequest const&) { @@ -181,6 +322,22 @@ VmwareEngineConnection::DeleteExternalAddress( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +VmwareEngineConnection::DeleteExternalAddress( + ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::DeleteExternalAddressRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +VmwareEngineConnection::DeleteExternalAddress( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StreamRange VmwareEngineConnection::ListSubnets( google::cloud::vmwareengine::v1:: @@ -203,6 +360,21 @@ VmwareEngineConnection::UpdateSubnet( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr VmwareEngineConnection::UpdateSubnet( + ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::UpdateSubnetRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +VmwareEngineConnection::UpdateSubnet(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StreamRange VmwareEngineConnection::ListExternalAccessRules( google::cloud::vmwareengine::v1:: @@ -225,9 +397,41 @@ VmwareEngineConnection::CreateExternalAccessRule( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +VmwareEngineConnection::CreateExternalAccessRule( + ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::CreateExternalAccessRuleRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> +VmwareEngineConnection::CreateExternalAccessRule( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +VmwareEngineConnection::UpdateExternalAccessRule( + google::cloud::vmwareengine::v1::UpdateExternalAccessRuleRequest const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +StatusOr VmwareEngineConnection::UpdateExternalAccessRule( + ExperimentalTag, NoAwaitTag, google::cloud::vmwareengine::v1::UpdateExternalAccessRuleRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +VmwareEngineConnection::UpdateExternalAccessRule( + ExperimentalTag, google::longrunning::Operation const&) { return google::cloud::make_ready_future< StatusOr>( Status(StatusCode::kUnimplemented, "not implemented")); @@ -241,6 +445,22 @@ VmwareEngineConnection::DeleteExternalAccessRule( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +VmwareEngineConnection::DeleteExternalAccessRule( + ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::DeleteExternalAccessRuleRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +VmwareEngineConnection::DeleteExternalAccessRule( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StreamRange VmwareEngineConnection::ListLoggingServers( google::cloud::vmwareengine::v1:: @@ -263,6 +483,22 @@ VmwareEngineConnection::CreateLoggingServer( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +VmwareEngineConnection::CreateLoggingServer( + ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::CreateLoggingServerRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +VmwareEngineConnection::CreateLoggingServer( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> VmwareEngineConnection::UpdateLoggingServer( google::cloud::vmwareengine::v1::UpdateLoggingServerRequest const&) { @@ -271,6 +507,22 @@ VmwareEngineConnection::UpdateLoggingServer( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +VmwareEngineConnection::UpdateLoggingServer( + ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::UpdateLoggingServerRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +VmwareEngineConnection::UpdateLoggingServer( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> VmwareEngineConnection::DeleteLoggingServer( google::cloud::vmwareengine::v1::DeleteLoggingServerRequest const&) { @@ -279,6 +531,22 @@ VmwareEngineConnection::DeleteLoggingServer( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +VmwareEngineConnection::DeleteLoggingServer( + ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::DeleteLoggingServerRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +VmwareEngineConnection::DeleteLoggingServer( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StreamRange VmwareEngineConnection::ListNodeTypes( google::cloud::vmwareengine::v1:: @@ -313,6 +581,22 @@ VmwareEngineConnection::ResetNsxCredentials( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +VmwareEngineConnection::ResetNsxCredentials( + ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::ResetNsxCredentialsRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +VmwareEngineConnection::ResetNsxCredentials( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> VmwareEngineConnection::ResetVcenterCredentials( google::cloud::vmwareengine::v1::ResetVcenterCredentialsRequest const&) { @@ -321,6 +605,22 @@ VmwareEngineConnection::ResetVcenterCredentials( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +VmwareEngineConnection::ResetVcenterCredentials( + ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::ResetVcenterCredentialsRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +VmwareEngineConnection::ResetVcenterCredentials( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr VmwareEngineConnection::GetDnsForwarding( google::cloud::vmwareengine::v1::GetDnsForwardingRequest const&) { @@ -335,6 +635,22 @@ VmwareEngineConnection::UpdateDnsForwarding( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +VmwareEngineConnection::UpdateDnsForwarding( + ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::UpdateDnsForwardingRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +VmwareEngineConnection::UpdateDnsForwarding( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr VmwareEngineConnection::GetNetworkPeering( google::cloud::vmwareengine::v1::GetNetworkPeeringRequest const&) { @@ -357,6 +673,22 @@ VmwareEngineConnection::CreateNetworkPeering( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +VmwareEngineConnection::CreateNetworkPeering( + ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::CreateNetworkPeeringRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +VmwareEngineConnection::CreateNetworkPeering( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> VmwareEngineConnection::DeleteNetworkPeering( google::cloud::vmwareengine::v1::DeleteNetworkPeeringRequest const&) { @@ -365,6 +697,22 @@ VmwareEngineConnection::DeleteNetworkPeering( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +VmwareEngineConnection::DeleteNetworkPeering( + ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::DeleteNetworkPeeringRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +VmwareEngineConnection::DeleteNetworkPeering( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> VmwareEngineConnection::UpdateNetworkPeering( google::cloud::vmwareengine::v1::UpdateNetworkPeeringRequest const&) { @@ -373,6 +721,22 @@ VmwareEngineConnection::UpdateNetworkPeering( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +VmwareEngineConnection::UpdateNetworkPeering( + ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::UpdateNetworkPeeringRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +VmwareEngineConnection::UpdateNetworkPeering( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StreamRange VmwareEngineConnection::ListPeeringRoutes( google::cloud::vmwareengine::v1:: @@ -389,6 +753,22 @@ VmwareEngineConnection::CreateHcxActivationKey( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +VmwareEngineConnection::CreateHcxActivationKey( + ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::CreateHcxActivationKeyRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +VmwareEngineConnection::CreateHcxActivationKey( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StreamRange VmwareEngineConnection::ListHcxActivationKeys( google::cloud::vmwareengine::v1:: @@ -425,6 +805,22 @@ VmwareEngineConnection::CreateNetworkPolicy( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +VmwareEngineConnection::CreateNetworkPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::CreateNetworkPolicyRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +VmwareEngineConnection::CreateNetworkPolicy( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> VmwareEngineConnection::UpdateNetworkPolicy( google::cloud::vmwareengine::v1::UpdateNetworkPolicyRequest const&) { @@ -433,6 +829,22 @@ VmwareEngineConnection::UpdateNetworkPolicy( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +VmwareEngineConnection::UpdateNetworkPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::UpdateNetworkPolicyRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +VmwareEngineConnection::UpdateNetworkPolicy( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> VmwareEngineConnection::DeleteNetworkPolicy( google::cloud::vmwareengine::v1::DeleteNetworkPolicyRequest const&) { @@ -441,6 +853,22 @@ VmwareEngineConnection::DeleteNetworkPolicy( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +VmwareEngineConnection::DeleteNetworkPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::DeleteNetworkPolicyRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +VmwareEngineConnection::DeleteNetworkPolicy( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StreamRange VmwareEngineConnection::ListManagementDnsZoneBindings( google::cloud::vmwareengine::v1:: @@ -465,6 +893,23 @@ VmwareEngineConnection::CreateManagementDnsZoneBinding( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +VmwareEngineConnection::CreateManagementDnsZoneBinding( + ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1:: + CreateManagementDnsZoneBindingRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +VmwareEngineConnection::CreateManagementDnsZoneBinding( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> VmwareEngineConnection::UpdateManagementDnsZoneBinding( google::cloud::vmwareengine::v1:: @@ -474,6 +919,23 @@ VmwareEngineConnection::UpdateManagementDnsZoneBinding( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +VmwareEngineConnection::UpdateManagementDnsZoneBinding( + ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1:: + UpdateManagementDnsZoneBindingRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +VmwareEngineConnection::UpdateManagementDnsZoneBinding( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> VmwareEngineConnection::DeleteManagementDnsZoneBinding( google::cloud::vmwareengine::v1:: @@ -483,6 +945,23 @@ VmwareEngineConnection::DeleteManagementDnsZoneBinding( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +VmwareEngineConnection::DeleteManagementDnsZoneBinding( + ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1:: + DeleteManagementDnsZoneBindingRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +VmwareEngineConnection::DeleteManagementDnsZoneBinding( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> VmwareEngineConnection::RepairManagementDnsZoneBinding( google::cloud::vmwareengine::v1:: @@ -492,6 +971,23 @@ VmwareEngineConnection::RepairManagementDnsZoneBinding( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +VmwareEngineConnection::RepairManagementDnsZoneBinding( + ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1:: + RepairManagementDnsZoneBindingRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +VmwareEngineConnection::RepairManagementDnsZoneBinding( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> VmwareEngineConnection::CreateVmwareEngineNetwork( google::cloud::vmwareengine::v1::CreateVmwareEngineNetworkRequest const&) { @@ -500,6 +996,22 @@ VmwareEngineConnection::CreateVmwareEngineNetwork( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +VmwareEngineConnection::CreateVmwareEngineNetwork( + ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::CreateVmwareEngineNetworkRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +VmwareEngineConnection::CreateVmwareEngineNetwork( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> VmwareEngineConnection::UpdateVmwareEngineNetwork( google::cloud::vmwareengine::v1::UpdateVmwareEngineNetworkRequest const&) { @@ -508,6 +1020,22 @@ VmwareEngineConnection::UpdateVmwareEngineNetwork( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +VmwareEngineConnection::UpdateVmwareEngineNetwork( + ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::UpdateVmwareEngineNetworkRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +VmwareEngineConnection::UpdateVmwareEngineNetwork( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> VmwareEngineConnection::DeleteVmwareEngineNetwork( google::cloud::vmwareengine::v1::DeleteVmwareEngineNetworkRequest const&) { @@ -516,6 +1044,22 @@ VmwareEngineConnection::DeleteVmwareEngineNetwork( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +VmwareEngineConnection::DeleteVmwareEngineNetwork( + ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::DeleteVmwareEngineNetworkRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +VmwareEngineConnection::DeleteVmwareEngineNetwork( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr VmwareEngineConnection::GetVmwareEngineNetwork( google::cloud::vmwareengine::v1::GetVmwareEngineNetworkRequest const&) { @@ -538,6 +1082,22 @@ VmwareEngineConnection::CreatePrivateConnection( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +VmwareEngineConnection::CreatePrivateConnection( + ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::CreatePrivateConnectionRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +VmwareEngineConnection::CreatePrivateConnection( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr VmwareEngineConnection::GetPrivateConnection( google::cloud::vmwareengine::v1::GetPrivateConnectionRequest const&) { @@ -560,6 +1120,22 @@ VmwareEngineConnection::UpdatePrivateConnection( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +VmwareEngineConnection::UpdatePrivateConnection( + ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::UpdatePrivateConnectionRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +VmwareEngineConnection::UpdatePrivateConnection( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> VmwareEngineConnection::DeletePrivateConnection( google::cloud::vmwareengine::v1::DeletePrivateConnectionRequest const&) { @@ -568,6 +1144,22 @@ VmwareEngineConnection::DeletePrivateConnection( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +VmwareEngineConnection::DeletePrivateConnection( + ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::DeletePrivateConnectionRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +VmwareEngineConnection::DeletePrivateConnection( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StreamRange VmwareEngineConnection::ListPrivateConnectionPeeringRoutes( google::cloud::vmwareengine::v1:: @@ -584,6 +1176,22 @@ VmwareEngineConnection::GrantDnsBindPermission( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +VmwareEngineConnection::GrantDnsBindPermission( + ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::GrantDnsBindPermissionRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +VmwareEngineConnection::GrantDnsBindPermission( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr VmwareEngineConnection::GetDnsBindPermission( google::cloud::vmwareengine::v1::GetDnsBindPermissionRequest const&) { @@ -598,6 +1206,22 @@ VmwareEngineConnection::RevokeDnsBindPermission( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +VmwareEngineConnection::RevokeDnsBindPermission( + ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::RevokeDnsBindPermissionRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +VmwareEngineConnection::RevokeDnsBindPermission( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + std::shared_ptr MakeVmwareEngineConnection( Options options) { internal::CheckExpectedOptions CreatePrivateCloud( + ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::CreatePrivateCloudRequest const& + request); + + virtual future> + CreatePrivateCloud(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> UpdatePrivateCloud( google::cloud::vmwareengine::v1::UpdatePrivateCloudRequest const& request); + virtual StatusOr UpdatePrivateCloud( + ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::UpdatePrivateCloudRequest const& + request); + + virtual future> + UpdatePrivateCloud(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> DeletePrivateCloud( google::cloud::vmwareengine::v1::DeletePrivateCloudRequest const& request); + virtual StatusOr DeletePrivateCloud( + ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::DeletePrivateCloudRequest const& + request); + + virtual future> + DeletePrivateCloud(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> UndeletePrivateCloud( google::cloud::vmwareengine::v1::UndeletePrivateCloudRequest const& request); + virtual StatusOr UndeletePrivateCloud( + ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::UndeletePrivateCloudRequest const& + request); + + virtual future> + UndeletePrivateCloud(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StreamRange ListClusters( google::cloud::vmwareengine::v1::ListClustersRequest request); @@ -223,14 +261,38 @@ class VmwareEngineConnection { CreateCluster( google::cloud::vmwareengine::v1::CreateClusterRequest const& request); + virtual StatusOr CreateCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::CreateClusterRequest const& request); + + virtual future> + CreateCluster(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> UpdateCluster( google::cloud::vmwareengine::v1::UpdateClusterRequest const& request); + virtual StatusOr UpdateCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::UpdateClusterRequest const& request); + + virtual future> + UpdateCluster(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> DeleteCluster( google::cloud::vmwareengine::v1::DeleteClusterRequest const& request); + virtual StatusOr DeleteCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::DeleteClusterRequest const& request); + + virtual future> + DeleteCluster(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StreamRange ListNodes( google::cloud::vmwareengine::v1::ListNodesRequest request); @@ -256,16 +318,43 @@ class VmwareEngineConnection { google::cloud::vmwareengine::v1::CreateExternalAddressRequest const& request); + virtual StatusOr CreateExternalAddress( + ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::CreateExternalAddressRequest const& + request); + + virtual future> + CreateExternalAddress(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> UpdateExternalAddress( google::cloud::vmwareengine::v1::UpdateExternalAddressRequest const& request); + virtual StatusOr UpdateExternalAddress( + ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::UpdateExternalAddressRequest const& + request); + + virtual future> + UpdateExternalAddress(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> DeleteExternalAddress( google::cloud::vmwareengine::v1::DeleteExternalAddressRequest const& request); + virtual StatusOr DeleteExternalAddress( + ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::DeleteExternalAddressRequest const& + request); + + virtual future> + DeleteExternalAddress(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StreamRange ListSubnets( google::cloud::vmwareengine::v1::ListSubnetsRequest request); @@ -276,6 +365,14 @@ class VmwareEngineConnection { UpdateSubnet( google::cloud::vmwareengine::v1::UpdateSubnetRequest const& request); + virtual StatusOr UpdateSubnet( + ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::UpdateSubnetRequest const& request); + + virtual future> + UpdateSubnet(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StreamRange ListExternalAccessRules( google::cloud::vmwareengine::v1::ListExternalAccessRulesRequest request); @@ -290,16 +387,43 @@ class VmwareEngineConnection { google::cloud::vmwareengine::v1::CreateExternalAccessRuleRequest const& request); + virtual StatusOr CreateExternalAccessRule( + ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::CreateExternalAccessRuleRequest const& + request); + + virtual future> + CreateExternalAccessRule(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> UpdateExternalAccessRule( google::cloud::vmwareengine::v1::UpdateExternalAccessRuleRequest const& request); + virtual StatusOr UpdateExternalAccessRule( + ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::UpdateExternalAccessRuleRequest const& + request); + + virtual future> + UpdateExternalAccessRule(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> DeleteExternalAccessRule( google::cloud::vmwareengine::v1::DeleteExternalAccessRuleRequest const& request); + virtual StatusOr DeleteExternalAccessRule( + ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::DeleteExternalAccessRuleRequest const& + request); + + virtual future> + DeleteExternalAccessRule(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StreamRange ListLoggingServers( google::cloud::vmwareengine::v1::ListLoggingServersRequest request); @@ -313,16 +437,43 @@ class VmwareEngineConnection { google::cloud::vmwareengine::v1::CreateLoggingServerRequest const& request); + virtual StatusOr CreateLoggingServer( + ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::CreateLoggingServerRequest const& + request); + + virtual future> + CreateLoggingServer(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> UpdateLoggingServer( google::cloud::vmwareengine::v1::UpdateLoggingServerRequest const& request); + virtual StatusOr UpdateLoggingServer( + ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::UpdateLoggingServerRequest const& + request); + + virtual future> + UpdateLoggingServer(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> DeleteLoggingServer( google::cloud::vmwareengine::v1::DeleteLoggingServerRequest const& request); + virtual StatusOr DeleteLoggingServer( + ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::DeleteLoggingServerRequest const& + request); + + virtual future> + DeleteLoggingServer(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StreamRange ListNodeTypes( google::cloud::vmwareengine::v1::ListNodeTypesRequest request); @@ -344,11 +495,29 @@ class VmwareEngineConnection { google::cloud::vmwareengine::v1::ResetNsxCredentialsRequest const& request); + virtual StatusOr ResetNsxCredentials( + ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::ResetNsxCredentialsRequest const& + request); + + virtual future> + ResetNsxCredentials(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> ResetVcenterCredentials( google::cloud::vmwareengine::v1::ResetVcenterCredentialsRequest const& request); + virtual StatusOr ResetVcenterCredentials( + ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::ResetVcenterCredentialsRequest const& + request); + + virtual future> + ResetVcenterCredentials(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StatusOr GetDnsForwarding( google::cloud::vmwareengine::v1::GetDnsForwardingRequest const& request); @@ -358,6 +527,15 @@ class VmwareEngineConnection { google::cloud::vmwareengine::v1::UpdateDnsForwardingRequest const& request); + virtual StatusOr UpdateDnsForwarding( + ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::UpdateDnsForwardingRequest const& + request); + + virtual future> + UpdateDnsForwarding(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StatusOr GetNetworkPeering( google::cloud::vmwareengine::v1::GetNetworkPeeringRequest const& request); @@ -371,16 +549,43 @@ class VmwareEngineConnection { google::cloud::vmwareengine::v1::CreateNetworkPeeringRequest const& request); + virtual StatusOr CreateNetworkPeering( + ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::CreateNetworkPeeringRequest const& + request); + + virtual future> + CreateNetworkPeering(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> DeleteNetworkPeering( google::cloud::vmwareengine::v1::DeleteNetworkPeeringRequest const& request); + virtual StatusOr DeleteNetworkPeering( + ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::DeleteNetworkPeeringRequest const& + request); + + virtual future> + DeleteNetworkPeering(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> UpdateNetworkPeering( google::cloud::vmwareengine::v1::UpdateNetworkPeeringRequest const& request); + virtual StatusOr UpdateNetworkPeering( + ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::UpdateNetworkPeeringRequest const& + request); + + virtual future> + UpdateNetworkPeering(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StreamRange ListPeeringRoutes( google::cloud::vmwareengine::v1::ListPeeringRoutesRequest request); @@ -390,6 +595,15 @@ class VmwareEngineConnection { google::cloud::vmwareengine::v1::CreateHcxActivationKeyRequest const& request); + virtual StatusOr CreateHcxActivationKey( + ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::CreateHcxActivationKeyRequest const& + request); + + virtual future> + CreateHcxActivationKey(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StreamRange ListHcxActivationKeys( google::cloud::vmwareengine::v1::ListHcxActivationKeysRequest request); @@ -412,16 +626,43 @@ class VmwareEngineConnection { google::cloud::vmwareengine::v1::CreateNetworkPolicyRequest const& request); + virtual StatusOr CreateNetworkPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::CreateNetworkPolicyRequest const& + request); + + virtual future> + CreateNetworkPolicy(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> UpdateNetworkPolicy( google::cloud::vmwareengine::v1::UpdateNetworkPolicyRequest const& request); + virtual StatusOr UpdateNetworkPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::UpdateNetworkPolicyRequest const& + request); + + virtual future> + UpdateNetworkPolicy(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> DeleteNetworkPolicy( google::cloud::vmwareengine::v1::DeleteNetworkPolicyRequest const& request); + virtual StatusOr DeleteNetworkPolicy( + ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::DeleteNetworkPolicyRequest const& + request); + + virtual future> + DeleteNetworkPolicy(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StreamRange ListManagementDnsZoneBindings( google::cloud::vmwareengine::v1::ListManagementDnsZoneBindingsRequest @@ -438,38 +679,108 @@ class VmwareEngineConnection { google::cloud::vmwareengine::v1:: CreateManagementDnsZoneBindingRequest const& request); + virtual StatusOr + CreateManagementDnsZoneBinding( + ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1:: + CreateManagementDnsZoneBindingRequest const& request); + + virtual future< + StatusOr> + CreateManagementDnsZoneBinding( + ExperimentalTag, google::longrunning::Operation const& operation); + virtual future< StatusOr> UpdateManagementDnsZoneBinding( google::cloud::vmwareengine::v1:: UpdateManagementDnsZoneBindingRequest const& request); + virtual StatusOr + UpdateManagementDnsZoneBinding( + ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1:: + UpdateManagementDnsZoneBindingRequest const& request); + + virtual future< + StatusOr> + UpdateManagementDnsZoneBinding( + ExperimentalTag, google::longrunning::Operation const& operation); + virtual future> DeleteManagementDnsZoneBinding( google::cloud::vmwareengine::v1:: DeleteManagementDnsZoneBindingRequest const& request); + virtual StatusOr + DeleteManagementDnsZoneBinding( + ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1:: + DeleteManagementDnsZoneBindingRequest const& request); + + virtual future> + DeleteManagementDnsZoneBinding( + ExperimentalTag, google::longrunning::Operation const& operation); + virtual future< StatusOr> RepairManagementDnsZoneBinding( google::cloud::vmwareengine::v1:: RepairManagementDnsZoneBindingRequest const& request); + virtual StatusOr + RepairManagementDnsZoneBinding( + ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1:: + RepairManagementDnsZoneBindingRequest const& request); + + virtual future< + StatusOr> + RepairManagementDnsZoneBinding( + ExperimentalTag, google::longrunning::Operation const& operation); + virtual future> CreateVmwareEngineNetwork( google::cloud::vmwareengine::v1::CreateVmwareEngineNetworkRequest const& request); + virtual StatusOr CreateVmwareEngineNetwork( + ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::CreateVmwareEngineNetworkRequest const& + request); + + virtual future> + CreateVmwareEngineNetwork(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> UpdateVmwareEngineNetwork( google::cloud::vmwareengine::v1::UpdateVmwareEngineNetworkRequest const& request); + virtual StatusOr UpdateVmwareEngineNetwork( + ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::UpdateVmwareEngineNetworkRequest const& + request); + + virtual future> + UpdateVmwareEngineNetwork(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> DeleteVmwareEngineNetwork( google::cloud::vmwareengine::v1::DeleteVmwareEngineNetworkRequest const& request); + virtual StatusOr DeleteVmwareEngineNetwork( + ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::DeleteVmwareEngineNetworkRequest const& + request); + + virtual future> + DeleteVmwareEngineNetwork(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StatusOr GetVmwareEngineNetwork( google::cloud::vmwareengine::v1::GetVmwareEngineNetworkRequest const& @@ -484,6 +795,15 @@ class VmwareEngineConnection { google::cloud::vmwareengine::v1::CreatePrivateConnectionRequest const& request); + virtual StatusOr CreatePrivateConnection( + ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::CreatePrivateConnectionRequest const& + request); + + virtual future> + CreatePrivateConnection(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StatusOr GetPrivateConnection( google::cloud::vmwareengine::v1::GetPrivateConnectionRequest const& @@ -498,11 +818,29 @@ class VmwareEngineConnection { google::cloud::vmwareengine::v1::UpdatePrivateConnectionRequest const& request); + virtual StatusOr UpdatePrivateConnection( + ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::UpdatePrivateConnectionRequest const& + request); + + virtual future> + UpdatePrivateConnection(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> DeletePrivateConnection( google::cloud::vmwareengine::v1::DeletePrivateConnectionRequest const& request); + virtual StatusOr DeletePrivateConnection( + ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::DeletePrivateConnectionRequest const& + request); + + virtual future> + DeletePrivateConnection(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StreamRange ListPrivateConnectionPeeringRoutes( google::cloud::vmwareengine::v1::ListPrivateConnectionPeeringRoutesRequest @@ -513,6 +851,15 @@ class VmwareEngineConnection { google::cloud::vmwareengine::v1::GrantDnsBindPermissionRequest const& request); + virtual StatusOr GrantDnsBindPermission( + ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::GrantDnsBindPermissionRequest const& + request); + + virtual future> + GrantDnsBindPermission(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StatusOr GetDnsBindPermission( google::cloud::vmwareengine::v1::GetDnsBindPermissionRequest const& @@ -522,6 +869,15 @@ class VmwareEngineConnection { RevokeDnsBindPermission( google::cloud::vmwareengine::v1::RevokeDnsBindPermissionRequest const& request); + + virtual StatusOr RevokeDnsBindPermission( + ExperimentalTag, NoAwaitTag, + google::cloud::vmwareengine::v1::RevokeDnsBindPermissionRequest const& + request); + + virtual future> + RevokeDnsBindPermission(ExperimentalTag, + google::longrunning::Operation const& operation); }; /** diff --git a/google/cloud/vpcaccess/v1/internal/vpc_access_connection_impl.cc b/google/cloud/vpcaccess/v1/internal/vpc_access_connection_impl.cc index c808793fd692a..349933d098362 100644 --- a/google/cloud/vpcaccess/v1/internal/vpc_access_connection_impl.cc +++ b/google/cloud/vpcaccess/v1/internal/vpc_access_connection_impl.cc @@ -106,6 +106,58 @@ VpcAccessServiceConnectionImpl::CreateConnector( polling_policy(*current), __func__); } +StatusOr +VpcAccessServiceConnectionImpl::CreateConnector( + ExperimentalTag, NoAwaitTag, + google::cloud::vpcaccess::v1::CreateConnectorRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateConnector(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::vpcaccess::v1::CreateConnectorRequest const& request) { + return stub_->CreateConnector(context, options, request); + }, + *current, request, __func__); +} + +future> +VpcAccessServiceConnectionImpl::CreateConnector( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to CreateConnector", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::vpcaccess::v1::Connector>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::vpcaccess::v1::Connector>, + polling_policy(*current), __func__); +} + StatusOr VpcAccessServiceConnectionImpl::GetConnector( google::cloud::vpcaccess::v1::GetConnectorRequest const& request) { @@ -193,6 +245,59 @@ VpcAccessServiceConnectionImpl::DeleteConnector( polling_policy(*current), __func__); } +StatusOr +VpcAccessServiceConnectionImpl::DeleteConnector( + ExperimentalTag, NoAwaitTag, + google::cloud::vpcaccess::v1::DeleteConnectorRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteConnector(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::vpcaccess::v1::DeleteConnectorRequest const& request) { + return stub_->DeleteConnector(context, options, request); + }, + *current, request, __func__); +} + +future> +VpcAccessServiceConnectionImpl::DeleteConnector( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteConnector", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::vpcaccess::v1::OperationMetadata>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::cloud::vpcaccess::v1::OperationMetadata>, + polling_policy(*current), __func__); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace vpcaccess_v1_internal } // namespace cloud diff --git a/google/cloud/vpcaccess/v1/internal/vpc_access_connection_impl.h b/google/cloud/vpcaccess/v1/internal/vpc_access_connection_impl.h index 70ae51dbb7975..ccafc9613729c 100644 --- a/google/cloud/vpcaccess/v1/internal/vpc_access_connection_impl.h +++ b/google/cloud/vpcaccess/v1/internal/vpc_access_connection_impl.h @@ -56,6 +56,15 @@ class VpcAccessServiceConnectionImpl google::cloud::vpcaccess::v1::CreateConnectorRequest const& request) override; + StatusOr CreateConnector( + ExperimentalTag, NoAwaitTag, + google::cloud::vpcaccess::v1::CreateConnectorRequest const& request) + override; + + future> CreateConnector( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetConnector( google::cloud::vpcaccess::v1::GetConnectorRequest const& request) override; @@ -67,6 +76,15 @@ class VpcAccessServiceConnectionImpl DeleteConnector(google::cloud::vpcaccess::v1::DeleteConnectorRequest const& request) override; + StatusOr DeleteConnector( + ExperimentalTag, NoAwaitTag, + google::cloud::vpcaccess::v1::DeleteConnectorRequest const& request) + override; + + future> + DeleteConnector(ExperimentalTag, + google::longrunning::Operation const& operation) override; + private: std::unique_ptr background_; std::shared_ptr stub_; diff --git a/google/cloud/vpcaccess/v1/internal/vpc_access_tracing_connection.cc b/google/cloud/vpcaccess/v1/internal/vpc_access_tracing_connection.cc index 596669922b155..f17d0e51dd656 100644 --- a/google/cloud/vpcaccess/v1/internal/vpc_access_tracing_connection.cc +++ b/google/cloud/vpcaccess/v1/internal/vpc_access_tracing_connection.cc @@ -42,6 +42,27 @@ VpcAccessServiceTracingConnection::CreateConnector( return internal::EndSpan(std::move(span), child_->CreateConnector(request)); } +StatusOr +VpcAccessServiceTracingConnection::CreateConnector( + ExperimentalTag, NoAwaitTag, + google::cloud::vpcaccess::v1::CreateConnectorRequest const& request) { + auto span = internal::MakeSpan( + "vpcaccess_v1::VpcAccessServiceConnection::CreateConnector"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->CreateConnector(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +VpcAccessServiceTracingConnection::CreateConnector( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "vpcaccess_v1::VpcAccessServiceConnection::CreateConnector"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->CreateConnector(ExperimentalTag{}, operation)); +} + StatusOr VpcAccessServiceTracingConnection::GetConnector( google::cloud::vpcaccess::v1::GetConnectorRequest const& request) { @@ -71,6 +92,27 @@ VpcAccessServiceTracingConnection::DeleteConnector( return internal::EndSpan(std::move(span), child_->DeleteConnector(request)); } +StatusOr +VpcAccessServiceTracingConnection::DeleteConnector( + ExperimentalTag, NoAwaitTag, + google::cloud::vpcaccess::v1::DeleteConnectorRequest const& request) { + auto span = internal::MakeSpan( + "vpcaccess_v1::VpcAccessServiceConnection::DeleteConnector"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->DeleteConnector(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +VpcAccessServiceTracingConnection::DeleteConnector( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "vpcaccess_v1::VpcAccessServiceConnection::DeleteConnector"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->DeleteConnector(ExperimentalTag{}, operation)); +} + #endif // GOOGLE_CLOUD_CPP_HAVE_OPENTELEMETRY std::shared_ptr diff --git a/google/cloud/vpcaccess/v1/internal/vpc_access_tracing_connection.h b/google/cloud/vpcaccess/v1/internal/vpc_access_tracing_connection.h index 4507b19e8b38f..e653e2c5ee963 100644 --- a/google/cloud/vpcaccess/v1/internal/vpc_access_tracing_connection.h +++ b/google/cloud/vpcaccess/v1/internal/vpc_access_tracing_connection.h @@ -44,6 +44,15 @@ class VpcAccessServiceTracingConnection google::cloud::vpcaccess::v1::CreateConnectorRequest const& request) override; + StatusOr CreateConnector( + ExperimentalTag, NoAwaitTag, + google::cloud::vpcaccess::v1::CreateConnectorRequest const& request) + override; + + future> CreateConnector( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetConnector( google::cloud::vpcaccess::v1::GetConnectorRequest const& request) override; @@ -55,6 +64,15 @@ class VpcAccessServiceTracingConnection DeleteConnector(google::cloud::vpcaccess::v1::DeleteConnectorRequest const& request) override; + StatusOr DeleteConnector( + ExperimentalTag, NoAwaitTag, + google::cloud::vpcaccess::v1::DeleteConnectorRequest const& request) + override; + + future> + DeleteConnector(ExperimentalTag, + google::longrunning::Operation const& operation) override; + private: std::shared_ptr child_; }; diff --git a/google/cloud/vpcaccess/v1/mocks/mock_vpc_access_connection.h b/google/cloud/vpcaccess/v1/mocks/mock_vpc_access_connection.h index 08e0da4a5e975..1a58ee5e4f512 100644 --- a/google/cloud/vpcaccess/v1/mocks/mock_vpc_access_connection.h +++ b/google/cloud/vpcaccess/v1/mocks/mock_vpc_access_connection.h @@ -53,6 +53,18 @@ class MockVpcAccessServiceConnection (google::cloud::vpcaccess::v1::CreateConnectorRequest const& request), (override)); + MOCK_METHOD( + StatusOr, CreateConnector, + (ExperimentalTag, NoAwaitTag, + google::cloud::vpcaccess::v1::CreateConnectorRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateConnector, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr, GetConnector, (google::cloud::vpcaccess::v1::GetConnectorRequest const& request), @@ -68,6 +80,18 @@ class MockVpcAccessServiceConnection DeleteConnector, (google::cloud::vpcaccess::v1::DeleteConnectorRequest const& request), (override)); + + MOCK_METHOD( + StatusOr, DeleteConnector, + (ExperimentalTag, NoAwaitTag, + google::cloud::vpcaccess::v1::DeleteConnectorRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteConnector, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); }; GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END diff --git a/google/cloud/vpcaccess/v1/vpc_access_connection.cc b/google/cloud/vpcaccess/v1/vpc_access_connection.cc index 444afc498b200..686b9e3d85811 100644 --- a/google/cloud/vpcaccess/v1/vpc_access_connection.cc +++ b/google/cloud/vpcaccess/v1/vpc_access_connection.cc @@ -46,6 +46,22 @@ VpcAccessServiceConnection::CreateConnector( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +VpcAccessServiceConnection::CreateConnector( + ExperimentalTag, NoAwaitTag, + google::cloud::vpcaccess::v1::CreateConnectorRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +VpcAccessServiceConnection::CreateConnector( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr VpcAccessServiceConnection::GetConnector( google::cloud::vpcaccess::v1::GetConnectorRequest const&) { @@ -68,6 +84,22 @@ VpcAccessServiceConnection::DeleteConnector( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +VpcAccessServiceConnection::DeleteConnector( + ExperimentalTag, NoAwaitTag, + google::cloud::vpcaccess::v1::DeleteConnectorRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +VpcAccessServiceConnection::DeleteConnector( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + std::shared_ptr MakeVpcAccessServiceConnection( Options options) { internal::CheckExpectedOptions CreateConnector( + ExperimentalTag, NoAwaitTag, + google::cloud::vpcaccess::v1::CreateConnectorRequest const& request); + + virtual future> + CreateConnector(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StatusOr GetConnector( google::cloud::vpcaccess::v1::GetConnectorRequest const& request); @@ -201,6 +211,14 @@ class VpcAccessServiceConnection { virtual future> DeleteConnector( google::cloud::vpcaccess::v1::DeleteConnectorRequest const& request); + + virtual StatusOr DeleteConnector( + ExperimentalTag, NoAwaitTag, + google::cloud::vpcaccess::v1::DeleteConnectorRequest const& request); + + virtual future> + DeleteConnector(ExperimentalTag, + google::longrunning::Operation const& operation); }; /** diff --git a/google/cloud/webrisk/v1/internal/web_risk_connection_impl.cc b/google/cloud/webrisk/v1/internal/web_risk_connection_impl.cc index e1dfa78173ca0..c818f47a2322a 100644 --- a/google/cloud/webrisk/v1/internal/web_risk_connection_impl.cc +++ b/google/cloud/webrisk/v1/internal/web_risk_connection_impl.cc @@ -159,6 +159,57 @@ WebRiskServiceConnectionImpl::SubmitUri( polling_policy(*current), __func__); } +StatusOr +WebRiskServiceConnectionImpl::SubmitUri( + ExperimentalTag, NoAwaitTag, + google::cloud::webrisk::v1::SubmitUriRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->SubmitUri(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::webrisk::v1::SubmitUriRequest const& request) { + return stub_->SubmitUri(context, options, request); + }, + *current, request, __func__); +} + +future> +WebRiskServiceConnectionImpl::SubmitUri( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to SubmitUri", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::webrisk::v1::Submission>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::webrisk::v1::Submission>, + polling_policy(*current), __func__); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace webrisk_v1_internal } // namespace cloud diff --git a/google/cloud/webrisk/v1/internal/web_risk_connection_impl.h b/google/cloud/webrisk/v1/internal/web_risk_connection_impl.h index 3bff3c89c9b26..75be85cd8da43 100644 --- a/google/cloud/webrisk/v1/internal/web_risk_connection_impl.h +++ b/google/cloud/webrisk/v1/internal/web_risk_connection_impl.h @@ -69,6 +69,14 @@ class WebRiskServiceConnectionImpl future> SubmitUri( google::cloud::webrisk::v1::SubmitUriRequest const& request) override; + StatusOr SubmitUri( + ExperimentalTag, NoAwaitTag, + google::cloud::webrisk::v1::SubmitUriRequest const& request) override; + + future> SubmitUri( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + private: std::unique_ptr background_; std::shared_ptr stub_; diff --git a/google/cloud/webrisk/v1/internal/web_risk_tracing_connection.cc b/google/cloud/webrisk/v1/internal/web_risk_tracing_connection.cc index 3bf3ca465cb35..a9c6b7931c59a 100644 --- a/google/cloud/webrisk/v1/internal/web_risk_tracing_connection.cc +++ b/google/cloud/webrisk/v1/internal/web_risk_tracing_connection.cc @@ -77,6 +77,27 @@ WebRiskServiceTracingConnection::SubmitUri( return internal::EndSpan(std::move(span), child_->SubmitUri(request)); } +StatusOr +WebRiskServiceTracingConnection::SubmitUri( + ExperimentalTag, NoAwaitTag, + google::cloud::webrisk::v1::SubmitUriRequest const& request) { + auto span = + internal::MakeSpan("webrisk_v1::WebRiskServiceConnection::SubmitUri"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->SubmitUri(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +WebRiskServiceTracingConnection::SubmitUri( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = + internal::MakeSpan("webrisk_v1::WebRiskServiceConnection::SubmitUri"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), + child_->SubmitUri(ExperimentalTag{}, operation)); +} + #endif // GOOGLE_CLOUD_CPP_HAVE_OPENTELEMETRY std::shared_ptr diff --git a/google/cloud/webrisk/v1/internal/web_risk_tracing_connection.h b/google/cloud/webrisk/v1/internal/web_risk_tracing_connection.h index 9d72929ebf58c..20f9a2226d72d 100644 --- a/google/cloud/webrisk/v1/internal/web_risk_tracing_connection.h +++ b/google/cloud/webrisk/v1/internal/web_risk_tracing_connection.h @@ -58,6 +58,14 @@ class WebRiskServiceTracingConnection future> SubmitUri( google::cloud::webrisk::v1::SubmitUriRequest const& request) override; + StatusOr SubmitUri( + ExperimentalTag, NoAwaitTag, + google::cloud::webrisk::v1::SubmitUriRequest const& request) override; + + future> SubmitUri( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + private: std::shared_ptr child_; }; diff --git a/google/cloud/webrisk/v1/mocks/mock_web_risk_connection.h b/google/cloud/webrisk/v1/mocks/mock_web_risk_connection.h index 94f4e252a19e8..7f93194351285 100644 --- a/google/cloud/webrisk/v1/mocks/mock_web_risk_connection.h +++ b/google/cloud/webrisk/v1/mocks/mock_web_risk_connection.h @@ -72,6 +72,17 @@ class MockWebRiskServiceConnection SubmitUri, (google::cloud::webrisk::v1::SubmitUriRequest const& request), (override)); + + MOCK_METHOD(StatusOr, SubmitUri, + (ExperimentalTag, NoAwaitTag, + google::cloud::webrisk::v1::SubmitUriRequest const& request), + (override)); + + MOCK_METHOD(future>, + SubmitUri, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); }; GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END diff --git a/google/cloud/webrisk/v1/web_risk_connection.cc b/google/cloud/webrisk/v1/web_risk_connection.cc index ecf4a1b89b1c9..a7682e5084df1 100644 --- a/google/cloud/webrisk/v1/web_risk_connection.cc +++ b/google/cloud/webrisk/v1/web_risk_connection.cc @@ -69,6 +69,21 @@ WebRiskServiceConnection::SubmitUri( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr WebRiskServiceConnection::SubmitUri( + ExperimentalTag, NoAwaitTag, + google::cloud::webrisk::v1::SubmitUriRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +WebRiskServiceConnection::SubmitUri(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + std::shared_ptr MakeWebRiskServiceConnection( Options options) { internal::CheckExpectedOptions> SubmitUri( google::cloud::webrisk::v1::SubmitUriRequest const& request); + + virtual StatusOr SubmitUri( + ExperimentalTag, NoAwaitTag, + google::cloud::webrisk::v1::SubmitUriRequest const& request); + + virtual future> SubmitUri( + ExperimentalTag, google::longrunning::Operation const& operation); }; /** diff --git a/google/cloud/websecurityscanner/v1/web_security_scanner_connection.h b/google/cloud/websecurityscanner/v1/web_security_scanner_connection.h index 0dbd6ae93ae6e..a4fb63e946a5d 100644 --- a/google/cloud/websecurityscanner/v1/web_security_scanner_connection.h +++ b/google/cloud/websecurityscanner/v1/web_security_scanner_connection.h @@ -22,6 +22,7 @@ #include "google/cloud/websecurityscanner/v1/internal/web_security_scanner_retry_traits.h" #include "google/cloud/websecurityscanner/v1/web_security_scanner_connection_idempotency_policy.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/internal/retry_policy_impl.h" #include "google/cloud/options.h" #include "google/cloud/status_or.h" diff --git a/google/cloud/workflows/executions/v1/executions_connection.h b/google/cloud/workflows/executions/v1/executions_connection.h index 634a37b6d14a8..7af2191793036 100644 --- a/google/cloud/workflows/executions/v1/executions_connection.h +++ b/google/cloud/workflows/executions/v1/executions_connection.h @@ -22,6 +22,7 @@ #include "google/cloud/workflows/executions/v1/executions_connection_idempotency_policy.h" #include "google/cloud/workflows/executions/v1/internal/executions_retry_traits.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/internal/retry_policy_impl.h" #include "google/cloud/options.h" #include "google/cloud/status_or.h" diff --git a/google/cloud/workflows/v1/internal/workflows_connection_impl.cc b/google/cloud/workflows/v1/internal/workflows_connection_impl.cc index f34128111224a..99c8d8083f11c 100644 --- a/google/cloud/workflows/v1/internal/workflows_connection_impl.cc +++ b/google/cloud/workflows/v1/internal/workflows_connection_impl.cc @@ -150,6 +150,58 @@ WorkflowsConnectionImpl::CreateWorkflow( polling_policy(*current), __func__); } +StatusOr +WorkflowsConnectionImpl::CreateWorkflow( + ExperimentalTag, NoAwaitTag, + google::cloud::workflows::v1::CreateWorkflowRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateWorkflow(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::workflows::v1::CreateWorkflowRequest const& request) { + return stub_->CreateWorkflow(context, options, request); + }, + *current, request, __func__); +} + +future> +WorkflowsConnectionImpl::CreateWorkflow( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to CreateWorkflow", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::workflows::v1::Workflow>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::workflows::v1::Workflow>, + polling_policy(*current), __func__); +} + future> WorkflowsConnectionImpl::DeleteWorkflow( google::cloud::workflows::v1::DeleteWorkflowRequest const& request) { @@ -189,6 +241,59 @@ WorkflowsConnectionImpl::DeleteWorkflow( polling_policy(*current), __func__); } +StatusOr +WorkflowsConnectionImpl::DeleteWorkflow( + ExperimentalTag, NoAwaitTag, + google::cloud::workflows::v1::DeleteWorkflowRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteWorkflow(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::workflows::v1::DeleteWorkflowRequest const& request) { + return stub_->DeleteWorkflow(context, options, request); + }, + *current, request, __func__); +} + +future> +WorkflowsConnectionImpl::DeleteWorkflow( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteWorkflow", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::workflows::v1::OperationMetadata>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultMetadata< + google::cloud::workflows::v1::OperationMetadata>, + polling_policy(*current), __func__); +} + future> WorkflowsConnectionImpl::UpdateWorkflow( google::cloud::workflows::v1::UpdateWorkflowRequest const& request) { @@ -228,6 +333,58 @@ WorkflowsConnectionImpl::UpdateWorkflow( polling_policy(*current), __func__); } +StatusOr +WorkflowsConnectionImpl::UpdateWorkflow( + ExperimentalTag, NoAwaitTag, + google::cloud::workflows::v1::UpdateWorkflowRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UpdateWorkflow(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::workflows::v1::UpdateWorkflowRequest const& request) { + return stub_->UpdateWorkflow(context, options, request); + }, + *current, request, __func__); +} + +future> +WorkflowsConnectionImpl::UpdateWorkflow( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future>( + internal::InvalidArgumentError( + "operation does not correspond to UpdateWorkflow", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::workflows::v1::Workflow>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::workflows::v1::Workflow>, + polling_policy(*current), __func__); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace workflows_v1_internal } // namespace cloud diff --git a/google/cloud/workflows/v1/internal/workflows_connection_impl.h b/google/cloud/workflows/v1/internal/workflows_connection_impl.h index 88aa0203f2606..8a4195a67ecdd 100644 --- a/google/cloud/workflows/v1/internal/workflows_connection_impl.h +++ b/google/cloud/workflows/v1/internal/workflows_connection_impl.h @@ -61,14 +61,41 @@ class WorkflowsConnectionImpl : public workflows_v1::WorkflowsConnection { google::cloud::workflows::v1::CreateWorkflowRequest const& request) override; + StatusOr CreateWorkflow( + ExperimentalTag, NoAwaitTag, + google::cloud::workflows::v1::CreateWorkflowRequest const& request) + override; + + future> CreateWorkflow( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteWorkflow(google::cloud::workflows::v1::DeleteWorkflowRequest const& request) override; + StatusOr DeleteWorkflow( + ExperimentalTag, NoAwaitTag, + google::cloud::workflows::v1::DeleteWorkflowRequest const& request) + override; + + future> + DeleteWorkflow(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateWorkflow( google::cloud::workflows::v1::UpdateWorkflowRequest const& request) override; + StatusOr UpdateWorkflow( + ExperimentalTag, NoAwaitTag, + google::cloud::workflows::v1::UpdateWorkflowRequest const& request) + override; + + future> UpdateWorkflow( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + private: std::unique_ptr background_; std::shared_ptr stub_; diff --git a/google/cloud/workflows/v1/internal/workflows_tracing_connection.cc b/google/cloud/workflows/v1/internal/workflows_tracing_connection.cc index 2bf96d4bb7714..0aec30243012b 100644 --- a/google/cloud/workflows/v1/internal/workflows_tracing_connection.cc +++ b/google/cloud/workflows/v1/internal/workflows_tracing_connection.cc @@ -62,6 +62,27 @@ WorkflowsTracingConnection::CreateWorkflow( return internal::EndSpan(std::move(span), child_->CreateWorkflow(request)); } +StatusOr +WorkflowsTracingConnection::CreateWorkflow( + ExperimentalTag, NoAwaitTag, + google::cloud::workflows::v1::CreateWorkflowRequest const& request) { + auto span = + internal::MakeSpan("workflows_v1::WorkflowsConnection::CreateWorkflow"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->CreateWorkflow(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +WorkflowsTracingConnection::CreateWorkflow( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = + internal::MakeSpan("workflows_v1::WorkflowsConnection::CreateWorkflow"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->CreateWorkflow(ExperimentalTag{}, operation)); +} + future> WorkflowsTracingConnection::DeleteWorkflow( google::cloud::workflows::v1::DeleteWorkflowRequest const& request) { @@ -71,6 +92,27 @@ WorkflowsTracingConnection::DeleteWorkflow( return internal::EndSpan(std::move(span), child_->DeleteWorkflow(request)); } +StatusOr +WorkflowsTracingConnection::DeleteWorkflow( + ExperimentalTag, NoAwaitTag, + google::cloud::workflows::v1::DeleteWorkflowRequest const& request) { + auto span = + internal::MakeSpan("workflows_v1::WorkflowsConnection::DeleteWorkflow"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->DeleteWorkflow(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +WorkflowsTracingConnection::DeleteWorkflow( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = + internal::MakeSpan("workflows_v1::WorkflowsConnection::DeleteWorkflow"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->DeleteWorkflow(ExperimentalTag{}, operation)); +} + future> WorkflowsTracingConnection::UpdateWorkflow( google::cloud::workflows::v1::UpdateWorkflowRequest const& request) { @@ -80,6 +122,27 @@ WorkflowsTracingConnection::UpdateWorkflow( return internal::EndSpan(std::move(span), child_->UpdateWorkflow(request)); } +StatusOr +WorkflowsTracingConnection::UpdateWorkflow( + ExperimentalTag, NoAwaitTag, + google::cloud::workflows::v1::UpdateWorkflowRequest const& request) { + auto span = + internal::MakeSpan("workflows_v1::WorkflowsConnection::UpdateWorkflow"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->UpdateWorkflow(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +WorkflowsTracingConnection::UpdateWorkflow( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = + internal::MakeSpan("workflows_v1::WorkflowsConnection::UpdateWorkflow"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->UpdateWorkflow(ExperimentalTag{}, operation)); +} + #endif // GOOGLE_CLOUD_CPP_HAVE_OPENTELEMETRY std::shared_ptr diff --git a/google/cloud/workflows/v1/internal/workflows_tracing_connection.h b/google/cloud/workflows/v1/internal/workflows_tracing_connection.h index 0477ad8ba1d1f..74ace4b953d8b 100644 --- a/google/cloud/workflows/v1/internal/workflows_tracing_connection.h +++ b/google/cloud/workflows/v1/internal/workflows_tracing_connection.h @@ -49,14 +49,41 @@ class WorkflowsTracingConnection : public workflows_v1::WorkflowsConnection { google::cloud::workflows::v1::CreateWorkflowRequest const& request) override; + StatusOr CreateWorkflow( + ExperimentalTag, NoAwaitTag, + google::cloud::workflows::v1::CreateWorkflowRequest const& request) + override; + + future> CreateWorkflow( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteWorkflow(google::cloud::workflows::v1::DeleteWorkflowRequest const& request) override; + StatusOr DeleteWorkflow( + ExperimentalTag, NoAwaitTag, + google::cloud::workflows::v1::DeleteWorkflowRequest const& request) + override; + + future> + DeleteWorkflow(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateWorkflow( google::cloud::workflows::v1::UpdateWorkflowRequest const& request) override; + StatusOr UpdateWorkflow( + ExperimentalTag, NoAwaitTag, + google::cloud::workflows::v1::UpdateWorkflowRequest const& request) + override; + + future> UpdateWorkflow( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + private: std::shared_ptr child_; }; diff --git a/google/cloud/workflows/v1/mocks/mock_workflows_connection.h b/google/cloud/workflows/v1/mocks/mock_workflows_connection.h index cc1819e1f28b2..641e656cab85a 100644 --- a/google/cloud/workflows/v1/mocks/mock_workflows_connection.h +++ b/google/cloud/workflows/v1/mocks/mock_workflows_connection.h @@ -60,16 +60,52 @@ class MockWorkflowsConnection : public workflows_v1::WorkflowsConnection { (google::cloud::workflows::v1::CreateWorkflowRequest const& request), (override)); + MOCK_METHOD( + StatusOr, CreateWorkflow, + (ExperimentalTag, NoAwaitTag, + google::cloud::workflows::v1::CreateWorkflowRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateWorkflow, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteWorkflow, (google::cloud::workflows::v1::DeleteWorkflowRequest const& request), (override)); + MOCK_METHOD( + StatusOr, DeleteWorkflow, + (ExperimentalTag, NoAwaitTag, + google::cloud::workflows::v1::DeleteWorkflowRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteWorkflow, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, UpdateWorkflow, (google::cloud::workflows::v1::UpdateWorkflowRequest const& request), (override)); + + MOCK_METHOD( + StatusOr, UpdateWorkflow, + (ExperimentalTag, NoAwaitTag, + google::cloud::workflows::v1::UpdateWorkflowRequest const& request), + (override)); + + MOCK_METHOD(future>, + UpdateWorkflow, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); }; GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END diff --git a/google/cloud/workflows/v1/workflows_connection.cc b/google/cloud/workflows/v1/workflows_connection.cc index 353bfc70614e0..d27eed68f9d67 100644 --- a/google/cloud/workflows/v1/workflows_connection.cc +++ b/google/cloud/workflows/v1/workflows_connection.cc @@ -60,6 +60,21 @@ WorkflowsConnection::CreateWorkflow( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr WorkflowsConnection::CreateWorkflow( + ExperimentalTag, NoAwaitTag, + google::cloud::workflows::v1::CreateWorkflowRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +WorkflowsConnection::CreateWorkflow(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> WorkflowsConnection::DeleteWorkflow( google::cloud::workflows::v1::DeleteWorkflowRequest const&) { @@ -68,6 +83,21 @@ WorkflowsConnection::DeleteWorkflow( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr WorkflowsConnection::DeleteWorkflow( + ExperimentalTag, NoAwaitTag, + google::cloud::workflows::v1::DeleteWorkflowRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +WorkflowsConnection::DeleteWorkflow(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> WorkflowsConnection::UpdateWorkflow( google::cloud::workflows::v1::UpdateWorkflowRequest const&) { @@ -76,6 +106,21 @@ WorkflowsConnection::UpdateWorkflow( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr WorkflowsConnection::UpdateWorkflow( + ExperimentalTag, NoAwaitTag, + google::cloud::workflows::v1::UpdateWorkflowRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +WorkflowsConnection::UpdateWorkflow(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + std::shared_ptr MakeWorkflowsConnection(Options options) { internal::CheckExpectedOptions CreateWorkflow( + ExperimentalTag, NoAwaitTag, + google::cloud::workflows::v1::CreateWorkflowRequest const& request); + + virtual future> + CreateWorkflow(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> DeleteWorkflow( google::cloud::workflows::v1::DeleteWorkflowRequest const& request); + virtual StatusOr DeleteWorkflow( + ExperimentalTag, NoAwaitTag, + google::cloud::workflows::v1::DeleteWorkflowRequest const& request); + + virtual future> + DeleteWorkflow(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> UpdateWorkflow( google::cloud::workflows::v1::UpdateWorkflowRequest const& request); + + virtual StatusOr UpdateWorkflow( + ExperimentalTag, NoAwaitTag, + google::cloud::workflows::v1::UpdateWorkflowRequest const& request); + + virtual future> + UpdateWorkflow(ExperimentalTag, + google::longrunning::Operation const& operation); }; /** diff --git a/google/cloud/workstations/v1/internal/workstations_connection_impl.cc b/google/cloud/workstations/v1/internal/workstations_connection_impl.cc index 6a021f44e9de6..2a709e607f6a4 100644 --- a/google/cloud/workstations/v1/internal/workstations_connection_impl.cc +++ b/google/cloud/workstations/v1/internal/workstations_connection_impl.cc @@ -159,6 +159,60 @@ WorkstationsConnectionImpl::CreateWorkstationCluster( polling_policy(*current), __func__); } +StatusOr +WorkstationsConnectionImpl::CreateWorkstationCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::workstations::v1::CreateWorkstationClusterRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateWorkstationCluster(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::workstations::v1:: + CreateWorkstationClusterRequest const& request) { + return stub_->CreateWorkstationCluster(context, options, request); + }, + *current, request, __func__); +} + +future> +WorkstationsConnectionImpl::CreateWorkstationCluster( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to CreateWorkstationCluster", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::workstations::v1::WorkstationCluster>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::workstations::v1::WorkstationCluster>, + polling_policy(*current), __func__); +} + future> WorkstationsConnectionImpl::UpdateWorkstationCluster( google::cloud::workstations::v1::UpdateWorkstationClusterRequest const& @@ -199,6 +253,60 @@ WorkstationsConnectionImpl::UpdateWorkstationCluster( polling_policy(*current), __func__); } +StatusOr +WorkstationsConnectionImpl::UpdateWorkstationCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::workstations::v1::UpdateWorkstationClusterRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UpdateWorkstationCluster(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::workstations::v1:: + UpdateWorkstationClusterRequest const& request) { + return stub_->UpdateWorkstationCluster(context, options, request); + }, + *current, request, __func__); +} + +future> +WorkstationsConnectionImpl::UpdateWorkstationCluster( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to UpdateWorkstationCluster", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::workstations::v1::WorkstationCluster>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::workstations::v1::WorkstationCluster>, + polling_policy(*current), __func__); +} + future> WorkstationsConnectionImpl::DeleteWorkstationCluster( google::cloud::workstations::v1::DeleteWorkstationClusterRequest const& @@ -239,6 +347,60 @@ WorkstationsConnectionImpl::DeleteWorkstationCluster( polling_policy(*current), __func__); } +StatusOr +WorkstationsConnectionImpl::DeleteWorkstationCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::workstations::v1::DeleteWorkstationClusterRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteWorkstationCluster(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::workstations::v1:: + DeleteWorkstationClusterRequest const& request) { + return stub_->DeleteWorkstationCluster(context, options, request); + }, + *current, request, __func__); +} + +future> +WorkstationsConnectionImpl::DeleteWorkstationCluster( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteWorkstationCluster", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::workstations::v1::WorkstationCluster>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::workstations::v1::WorkstationCluster>, + polling_policy(*current), __func__); +} + StatusOr WorkstationsConnectionImpl::GetWorkstationConfig( google::cloud::workstations::v1::GetWorkstationConfigRequest const& @@ -371,6 +533,61 @@ WorkstationsConnectionImpl::CreateWorkstationConfig( polling_policy(*current), __func__); } +StatusOr +WorkstationsConnectionImpl::CreateWorkstationConfig( + ExperimentalTag, NoAwaitTag, + google::cloud::workstations::v1::CreateWorkstationConfigRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateWorkstationConfig(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::workstations::v1::CreateWorkstationConfigRequest const& + request) { + return stub_->CreateWorkstationConfig(context, options, request); + }, + *current, request, __func__); +} + +future> +WorkstationsConnectionImpl::CreateWorkstationConfig( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to CreateWorkstationConfig", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::workstations::v1::WorkstationConfig>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::workstations::v1::WorkstationConfig>, + polling_policy(*current), __func__); +} + future> WorkstationsConnectionImpl::UpdateWorkstationConfig( google::cloud::workstations::v1::UpdateWorkstationConfigRequest const& @@ -412,6 +629,61 @@ WorkstationsConnectionImpl::UpdateWorkstationConfig( polling_policy(*current), __func__); } +StatusOr +WorkstationsConnectionImpl::UpdateWorkstationConfig( + ExperimentalTag, NoAwaitTag, + google::cloud::workstations::v1::UpdateWorkstationConfigRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UpdateWorkstationConfig(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::workstations::v1::UpdateWorkstationConfigRequest const& + request) { + return stub_->UpdateWorkstationConfig(context, options, request); + }, + *current, request, __func__); +} + +future> +WorkstationsConnectionImpl::UpdateWorkstationConfig( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to UpdateWorkstationConfig", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::workstations::v1::WorkstationConfig>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::workstations::v1::WorkstationConfig>, + polling_policy(*current), __func__); +} + future> WorkstationsConnectionImpl::DeleteWorkstationConfig( google::cloud::workstations::v1::DeleteWorkstationConfigRequest const& @@ -453,6 +725,61 @@ WorkstationsConnectionImpl::DeleteWorkstationConfig( polling_policy(*current), __func__); } +StatusOr +WorkstationsConnectionImpl::DeleteWorkstationConfig( + ExperimentalTag, NoAwaitTag, + google::cloud::workstations::v1::DeleteWorkstationConfigRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteWorkstationConfig(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::workstations::v1::DeleteWorkstationConfigRequest const& + request) { + return stub_->DeleteWorkstationConfig(context, options, request); + }, + *current, request, __func__); +} + +future> +WorkstationsConnectionImpl::DeleteWorkstationConfig( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteWorkstationConfig", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::workstations::v1::WorkstationConfig>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::workstations::v1::WorkstationConfig>, + polling_policy(*current), __func__); +} + StatusOr WorkstationsConnectionImpl::GetWorkstation( google::cloud::workstations::v1::GetWorkstationRequest const& request) { @@ -579,6 +906,59 @@ WorkstationsConnectionImpl::CreateWorkstation( polling_policy(*current), __func__); } +StatusOr +WorkstationsConnectionImpl::CreateWorkstation( + ExperimentalTag, NoAwaitTag, + google::cloud::workstations::v1::CreateWorkstationRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateWorkstation(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::workstations::v1::CreateWorkstationRequest const& + request) { + return stub_->CreateWorkstation(context, options, request); + }, + *current, request, __func__); +} + +future> +WorkstationsConnectionImpl::CreateWorkstation( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to CreateWorkstation", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::workstations::v1::Workstation>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::workstations::v1::Workstation>, + polling_policy(*current), __func__); +} + future> WorkstationsConnectionImpl::UpdateWorkstation( google::cloud::workstations::v1::UpdateWorkstationRequest const& request) { @@ -619,6 +999,59 @@ WorkstationsConnectionImpl::UpdateWorkstation( polling_policy(*current), __func__); } +StatusOr +WorkstationsConnectionImpl::UpdateWorkstation( + ExperimentalTag, NoAwaitTag, + google::cloud::workstations::v1::UpdateWorkstationRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UpdateWorkstation(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::workstations::v1::UpdateWorkstationRequest const& + request) { + return stub_->UpdateWorkstation(context, options, request); + }, + *current, request, __func__); +} + +future> +WorkstationsConnectionImpl::UpdateWorkstation( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to UpdateWorkstation", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::workstations::v1::Workstation>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::workstations::v1::Workstation>, + polling_policy(*current), __func__); +} + future> WorkstationsConnectionImpl::DeleteWorkstation( google::cloud::workstations::v1::DeleteWorkstationRequest const& request) { @@ -659,6 +1092,59 @@ WorkstationsConnectionImpl::DeleteWorkstation( polling_policy(*current), __func__); } +StatusOr +WorkstationsConnectionImpl::DeleteWorkstation( + ExperimentalTag, NoAwaitTag, + google::cloud::workstations::v1::DeleteWorkstationRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteWorkstation(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::workstations::v1::DeleteWorkstationRequest const& + request) { + return stub_->DeleteWorkstation(context, options, request); + }, + *current, request, __func__); +} + +future> +WorkstationsConnectionImpl::DeleteWorkstation( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to DeleteWorkstation", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::workstations::v1::Workstation>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::workstations::v1::Workstation>, + polling_policy(*current), __func__); +} + future> WorkstationsConnectionImpl::StartWorkstation( google::cloud::workstations::v1::StartWorkstationRequest const& request) { @@ -699,6 +1185,59 @@ WorkstationsConnectionImpl::StartWorkstation( polling_policy(*current), __func__); } +StatusOr +WorkstationsConnectionImpl::StartWorkstation( + ExperimentalTag, NoAwaitTag, + google::cloud::workstations::v1::StartWorkstationRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->StartWorkstation(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::workstations::v1::StartWorkstationRequest const& + request) { + return stub_->StartWorkstation(context, options, request); + }, + *current, request, __func__); +} + +future> +WorkstationsConnectionImpl::StartWorkstation( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to StartWorkstation", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::workstations::v1::Workstation>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::workstations::v1::Workstation>, + polling_policy(*current), __func__); +} + future> WorkstationsConnectionImpl::StopWorkstation( google::cloud::workstations::v1::StopWorkstationRequest const& request) { @@ -739,6 +1278,59 @@ WorkstationsConnectionImpl::StopWorkstation( polling_policy(*current), __func__); } +StatusOr +WorkstationsConnectionImpl::StopWorkstation( + ExperimentalTag, NoAwaitTag, + google::cloud::workstations::v1::StopWorkstationRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->StopWorkstation(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::workstations::v1::StopWorkstationRequest const& + request) { + return stub_->StopWorkstation(context, options, request); + }, + *current, request, __func__); +} + +future> +WorkstationsConnectionImpl::StopWorkstation( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto current = google::cloud::internal::SaveCurrentOptions(); + if (!operation.metadata() + .Is()) { + return make_ready_future< + StatusOr>( + internal::InvalidArgumentError( + "operation does not correspond to StopWorkstation", + GCP_ERROR_INFO().WithMetadata("operation", + operation.metadata().DebugString()))); + } + + return google::cloud::internal::AsyncAwaitLongRunningOperation< + google::cloud::workstations::v1::Workstation>( + background_->cq(), current, operation, + [stub = stub_](google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::GetOperationRequest const& request) { + return stub->AsyncGetOperation(cq, std::move(context), + std::move(options), request); + }, + [stub = stub_]( + google::cloud::CompletionQueue& cq, + std::shared_ptr context, + google::cloud::internal::ImmutableOptions options, + google::longrunning::CancelOperationRequest const& request) { + return stub->AsyncCancelOperation(cq, std::move(context), + std::move(options), request); + }, + &google::cloud::internal::ExtractLongRunningResultResponse< + google::cloud::workstations::v1::Workstation>, + polling_policy(*current), __func__); +} + StatusOr WorkstationsConnectionImpl::GenerateAccessToken( google::cloud::workstations::v1::GenerateAccessTokenRequest const& diff --git a/google/cloud/workstations/v1/internal/workstations_connection_impl.h b/google/cloud/workstations/v1/internal/workstations_connection_impl.h index 318dddf785f43..3133c752227a6 100644 --- a/google/cloud/workstations/v1/internal/workstations_connection_impl.h +++ b/google/cloud/workstations/v1/internal/workstations_connection_impl.h @@ -67,16 +67,46 @@ class WorkstationsConnectionImpl google::cloud::workstations::v1::CreateWorkstationClusterRequest const& request) override; + StatusOr CreateWorkstationCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::workstations::v1::CreateWorkstationClusterRequest const& + request) override; + + future> + CreateWorkstationCluster( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateWorkstationCluster( google::cloud::workstations::v1::UpdateWorkstationClusterRequest const& request) override; + StatusOr UpdateWorkstationCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::workstations::v1::UpdateWorkstationClusterRequest const& + request) override; + + future> + UpdateWorkstationCluster( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteWorkstationCluster( google::cloud::workstations::v1::DeleteWorkstationClusterRequest const& request) override; + StatusOr DeleteWorkstationCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::workstations::v1::DeleteWorkstationClusterRequest const& + request) override; + + future> + DeleteWorkstationCluster( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetWorkstationConfig( google::cloud::workstations::v1::GetWorkstationConfigRequest const& @@ -97,16 +127,46 @@ class WorkstationsConnectionImpl google::cloud::workstations::v1::CreateWorkstationConfigRequest const& request) override; + StatusOr CreateWorkstationConfig( + ExperimentalTag, NoAwaitTag, + google::cloud::workstations::v1::CreateWorkstationConfigRequest const& + request) override; + + future> + CreateWorkstationConfig( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateWorkstationConfig( google::cloud::workstations::v1::UpdateWorkstationConfigRequest const& request) override; + StatusOr UpdateWorkstationConfig( + ExperimentalTag, NoAwaitTag, + google::cloud::workstations::v1::UpdateWorkstationConfigRequest const& + request) override; + + future> + UpdateWorkstationConfig( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteWorkstationConfig( google::cloud::workstations::v1::DeleteWorkstationConfigRequest const& request) override; + StatusOr DeleteWorkstationConfig( + ExperimentalTag, NoAwaitTag, + google::cloud::workstations::v1::DeleteWorkstationConfigRequest const& + request) override; + + future> + DeleteWorkstationConfig( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetWorkstation( google::cloud::workstations::v1::GetWorkstationRequest const& request) override; @@ -125,25 +185,70 @@ class WorkstationsConnectionImpl google::cloud::workstations::v1::CreateWorkstationRequest const& request) override; + StatusOr CreateWorkstation( + ExperimentalTag, NoAwaitTag, + google::cloud::workstations::v1::CreateWorkstationRequest const& request) + override; + + future> + CreateWorkstation(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateWorkstation( google::cloud::workstations::v1::UpdateWorkstationRequest const& request) override; + StatusOr UpdateWorkstation( + ExperimentalTag, NoAwaitTag, + google::cloud::workstations::v1::UpdateWorkstationRequest const& request) + override; + + future> + UpdateWorkstation(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteWorkstation( google::cloud::workstations::v1::DeleteWorkstationRequest const& request) override; + StatusOr DeleteWorkstation( + ExperimentalTag, NoAwaitTag, + google::cloud::workstations::v1::DeleteWorkstationRequest const& request) + override; + + future> + DeleteWorkstation(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> StartWorkstation( google::cloud::workstations::v1::StartWorkstationRequest const& request) override; + StatusOr StartWorkstation( + ExperimentalTag, NoAwaitTag, + google::cloud::workstations::v1::StartWorkstationRequest const& request) + override; + + future> + StartWorkstation(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> StopWorkstation(google::cloud::workstations::v1::StopWorkstationRequest const& request) override; + StatusOr StopWorkstation( + ExperimentalTag, NoAwaitTag, + google::cloud::workstations::v1::StopWorkstationRequest const& request) + override; + + future> + StopWorkstation(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GenerateAccessToken( google::cloud::workstations::v1::GenerateAccessTokenRequest const& diff --git a/google/cloud/workstations/v1/internal/workstations_tracing_connection.cc b/google/cloud/workstations/v1/internal/workstations_tracing_connection.cc index 516e85d9cdacb..ac52bfe78c592 100644 --- a/google/cloud/workstations/v1/internal/workstations_tracing_connection.cc +++ b/google/cloud/workstations/v1/internal/workstations_tracing_connection.cc @@ -66,6 +66,29 @@ WorkstationsTracingConnection::CreateWorkstationCluster( child_->CreateWorkstationCluster(request)); } +StatusOr +WorkstationsTracingConnection::CreateWorkstationCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::workstations::v1::CreateWorkstationClusterRequest const& + request) { + auto span = internal::MakeSpan( + "workstations_v1::WorkstationsConnection::CreateWorkstationCluster"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->CreateWorkstationCluster(ExperimentalTag{}, NoAwaitTag{}, + request)); +} + +future> +WorkstationsTracingConnection::CreateWorkstationCluster( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "workstations_v1::WorkstationsConnection::CreateWorkstationCluster"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->CreateWorkstationCluster( + ExperimentalTag{}, operation)); +} + future> WorkstationsTracingConnection::UpdateWorkstationCluster( google::cloud::workstations::v1::UpdateWorkstationClusterRequest const& @@ -77,6 +100,29 @@ WorkstationsTracingConnection::UpdateWorkstationCluster( child_->UpdateWorkstationCluster(request)); } +StatusOr +WorkstationsTracingConnection::UpdateWorkstationCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::workstations::v1::UpdateWorkstationClusterRequest const& + request) { + auto span = internal::MakeSpan( + "workstations_v1::WorkstationsConnection::UpdateWorkstationCluster"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->UpdateWorkstationCluster(ExperimentalTag{}, NoAwaitTag{}, + request)); +} + +future> +WorkstationsTracingConnection::UpdateWorkstationCluster( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "workstations_v1::WorkstationsConnection::UpdateWorkstationCluster"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->UpdateWorkstationCluster( + ExperimentalTag{}, operation)); +} + future> WorkstationsTracingConnection::DeleteWorkstationCluster( google::cloud::workstations::v1::DeleteWorkstationClusterRequest const& @@ -88,6 +134,29 @@ WorkstationsTracingConnection::DeleteWorkstationCluster( child_->DeleteWorkstationCluster(request)); } +StatusOr +WorkstationsTracingConnection::DeleteWorkstationCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::workstations::v1::DeleteWorkstationClusterRequest const& + request) { + auto span = internal::MakeSpan( + "workstations_v1::WorkstationsConnection::DeleteWorkstationCluster"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->DeleteWorkstationCluster(ExperimentalTag{}, NoAwaitTag{}, + request)); +} + +future> +WorkstationsTracingConnection::DeleteWorkstationCluster( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "workstations_v1::WorkstationsConnection::DeleteWorkstationCluster"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->DeleteWorkstationCluster( + ExperimentalTag{}, operation)); +} + StatusOr WorkstationsTracingConnection::GetWorkstationConfig( google::cloud::workstations::v1::GetWorkstationConfigRequest const& @@ -134,6 +203,29 @@ WorkstationsTracingConnection::CreateWorkstationConfig( child_->CreateWorkstationConfig(request)); } +StatusOr +WorkstationsTracingConnection::CreateWorkstationConfig( + ExperimentalTag, NoAwaitTag, + google::cloud::workstations::v1::CreateWorkstationConfigRequest const& + request) { + auto span = internal::MakeSpan( + "workstations_v1::WorkstationsConnection::CreateWorkstationConfig"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->CreateWorkstationConfig(ExperimentalTag{}, NoAwaitTag{}, + request)); +} + +future> +WorkstationsTracingConnection::CreateWorkstationConfig( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "workstations_v1::WorkstationsConnection::CreateWorkstationConfig"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->CreateWorkstationConfig( + ExperimentalTag{}, operation)); +} + future> WorkstationsTracingConnection::UpdateWorkstationConfig( google::cloud::workstations::v1::UpdateWorkstationConfigRequest const& @@ -145,6 +237,29 @@ WorkstationsTracingConnection::UpdateWorkstationConfig( child_->UpdateWorkstationConfig(request)); } +StatusOr +WorkstationsTracingConnection::UpdateWorkstationConfig( + ExperimentalTag, NoAwaitTag, + google::cloud::workstations::v1::UpdateWorkstationConfigRequest const& + request) { + auto span = internal::MakeSpan( + "workstations_v1::WorkstationsConnection::UpdateWorkstationConfig"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->UpdateWorkstationConfig(ExperimentalTag{}, NoAwaitTag{}, + request)); +} + +future> +WorkstationsTracingConnection::UpdateWorkstationConfig( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "workstations_v1::WorkstationsConnection::UpdateWorkstationConfig"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->UpdateWorkstationConfig( + ExperimentalTag{}, operation)); +} + future> WorkstationsTracingConnection::DeleteWorkstationConfig( google::cloud::workstations::v1::DeleteWorkstationConfigRequest const& @@ -156,6 +271,29 @@ WorkstationsTracingConnection::DeleteWorkstationConfig( child_->DeleteWorkstationConfig(request)); } +StatusOr +WorkstationsTracingConnection::DeleteWorkstationConfig( + ExperimentalTag, NoAwaitTag, + google::cloud::workstations::v1::DeleteWorkstationConfigRequest const& + request) { + auto span = internal::MakeSpan( + "workstations_v1::WorkstationsConnection::DeleteWorkstationConfig"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->DeleteWorkstationConfig(ExperimentalTag{}, NoAwaitTag{}, + request)); +} + +future> +WorkstationsTracingConnection::DeleteWorkstationConfig( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "workstations_v1::WorkstationsConnection::DeleteWorkstationConfig"); + internal::OTelScope scope(span); + return internal::EndSpan(std::move(span), child_->DeleteWorkstationConfig( + ExperimentalTag{}, operation)); +} + StatusOr WorkstationsTracingConnection::GetWorkstation( google::cloud::workstations::v1::GetWorkstationRequest const& request) { @@ -198,6 +336,28 @@ WorkstationsTracingConnection::CreateWorkstation( return internal::EndSpan(std::move(span), child_->CreateWorkstation(request)); } +StatusOr +WorkstationsTracingConnection::CreateWorkstation( + ExperimentalTag, NoAwaitTag, + google::cloud::workstations::v1::CreateWorkstationRequest const& request) { + auto span = internal::MakeSpan( + "workstations_v1::WorkstationsConnection::CreateWorkstation"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->CreateWorkstation(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +WorkstationsTracingConnection::CreateWorkstation( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "workstations_v1::WorkstationsConnection::CreateWorkstation"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->CreateWorkstation(ExperimentalTag{}, operation)); +} + future> WorkstationsTracingConnection::UpdateWorkstation( google::cloud::workstations::v1::UpdateWorkstationRequest const& request) { @@ -207,6 +367,28 @@ WorkstationsTracingConnection::UpdateWorkstation( return internal::EndSpan(std::move(span), child_->UpdateWorkstation(request)); } +StatusOr +WorkstationsTracingConnection::UpdateWorkstation( + ExperimentalTag, NoAwaitTag, + google::cloud::workstations::v1::UpdateWorkstationRequest const& request) { + auto span = internal::MakeSpan( + "workstations_v1::WorkstationsConnection::UpdateWorkstation"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->UpdateWorkstation(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +WorkstationsTracingConnection::UpdateWorkstation( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "workstations_v1::WorkstationsConnection::UpdateWorkstation"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->UpdateWorkstation(ExperimentalTag{}, operation)); +} + future> WorkstationsTracingConnection::DeleteWorkstation( google::cloud::workstations::v1::DeleteWorkstationRequest const& request) { @@ -216,6 +398,28 @@ WorkstationsTracingConnection::DeleteWorkstation( return internal::EndSpan(std::move(span), child_->DeleteWorkstation(request)); } +StatusOr +WorkstationsTracingConnection::DeleteWorkstation( + ExperimentalTag, NoAwaitTag, + google::cloud::workstations::v1::DeleteWorkstationRequest const& request) { + auto span = internal::MakeSpan( + "workstations_v1::WorkstationsConnection::DeleteWorkstation"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->DeleteWorkstation(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +WorkstationsTracingConnection::DeleteWorkstation( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "workstations_v1::WorkstationsConnection::DeleteWorkstation"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->DeleteWorkstation(ExperimentalTag{}, operation)); +} + future> WorkstationsTracingConnection::StartWorkstation( google::cloud::workstations::v1::StartWorkstationRequest const& request) { @@ -225,6 +429,28 @@ WorkstationsTracingConnection::StartWorkstation( return internal::EndSpan(std::move(span), child_->StartWorkstation(request)); } +StatusOr +WorkstationsTracingConnection::StartWorkstation( + ExperimentalTag, NoAwaitTag, + google::cloud::workstations::v1::StartWorkstationRequest const& request) { + auto span = internal::MakeSpan( + "workstations_v1::WorkstationsConnection::StartWorkstation"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, + child_->StartWorkstation(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +WorkstationsTracingConnection::StartWorkstation( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "workstations_v1::WorkstationsConnection::StartWorkstation"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->StartWorkstation(ExperimentalTag{}, operation)); +} + future> WorkstationsTracingConnection::StopWorkstation( google::cloud::workstations::v1::StopWorkstationRequest const& request) { @@ -234,6 +460,27 @@ WorkstationsTracingConnection::StopWorkstation( return internal::EndSpan(std::move(span), child_->StopWorkstation(request)); } +StatusOr +WorkstationsTracingConnection::StopWorkstation( + ExperimentalTag, NoAwaitTag, + google::cloud::workstations::v1::StopWorkstationRequest const& request) { + auto span = internal::MakeSpan( + "workstations_v1::WorkstationsConnection::StopWorkstation"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan( + *span, child_->StopWorkstation(ExperimentalTag{}, NoAwaitTag{}, request)); +} + +future> +WorkstationsTracingConnection::StopWorkstation( + ExperimentalTag, google::longrunning::Operation const& operation) { + auto span = internal::MakeSpan( + "workstations_v1::WorkstationsConnection::StopWorkstation"); + internal::OTelScope scope(span); + return internal::EndSpan( + std::move(span), child_->StopWorkstation(ExperimentalTag{}, operation)); +} + StatusOr WorkstationsTracingConnection::GenerateAccessToken( google::cloud::workstations::v1::GenerateAccessTokenRequest const& diff --git a/google/cloud/workstations/v1/internal/workstations_tracing_connection.h b/google/cloud/workstations/v1/internal/workstations_tracing_connection.h index 19959cc2c4589..b87d8025dea19 100644 --- a/google/cloud/workstations/v1/internal/workstations_tracing_connection.h +++ b/google/cloud/workstations/v1/internal/workstations_tracing_connection.h @@ -55,16 +55,46 @@ class WorkstationsTracingConnection google::cloud::workstations::v1::CreateWorkstationClusterRequest const& request) override; + StatusOr CreateWorkstationCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::workstations::v1::CreateWorkstationClusterRequest const& + request) override; + + future> + CreateWorkstationCluster( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateWorkstationCluster( google::cloud::workstations::v1::UpdateWorkstationClusterRequest const& request) override; + StatusOr UpdateWorkstationCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::workstations::v1::UpdateWorkstationClusterRequest const& + request) override; + + future> + UpdateWorkstationCluster( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteWorkstationCluster( google::cloud::workstations::v1::DeleteWorkstationClusterRequest const& request) override; + StatusOr DeleteWorkstationCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::workstations::v1::DeleteWorkstationClusterRequest const& + request) override; + + future> + DeleteWorkstationCluster( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetWorkstationConfig( google::cloud::workstations::v1::GetWorkstationConfigRequest const& @@ -85,16 +115,46 @@ class WorkstationsTracingConnection google::cloud::workstations::v1::CreateWorkstationConfigRequest const& request) override; + StatusOr CreateWorkstationConfig( + ExperimentalTag, NoAwaitTag, + google::cloud::workstations::v1::CreateWorkstationConfigRequest const& + request) override; + + future> + CreateWorkstationConfig( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateWorkstationConfig( google::cloud::workstations::v1::UpdateWorkstationConfigRequest const& request) override; + StatusOr UpdateWorkstationConfig( + ExperimentalTag, NoAwaitTag, + google::cloud::workstations::v1::UpdateWorkstationConfigRequest const& + request) override; + + future> + UpdateWorkstationConfig( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteWorkstationConfig( google::cloud::workstations::v1::DeleteWorkstationConfigRequest const& request) override; + StatusOr DeleteWorkstationConfig( + ExperimentalTag, NoAwaitTag, + google::cloud::workstations::v1::DeleteWorkstationConfigRequest const& + request) override; + + future> + DeleteWorkstationConfig( + ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetWorkstation( google::cloud::workstations::v1::GetWorkstationRequest const& request) override; @@ -113,25 +173,70 @@ class WorkstationsTracingConnection google::cloud::workstations::v1::CreateWorkstationRequest const& request) override; + StatusOr CreateWorkstation( + ExperimentalTag, NoAwaitTag, + google::cloud::workstations::v1::CreateWorkstationRequest const& request) + override; + + future> + CreateWorkstation(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateWorkstation( google::cloud::workstations::v1::UpdateWorkstationRequest const& request) override; + StatusOr UpdateWorkstation( + ExperimentalTag, NoAwaitTag, + google::cloud::workstations::v1::UpdateWorkstationRequest const& request) + override; + + future> + UpdateWorkstation(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteWorkstation( google::cloud::workstations::v1::DeleteWorkstationRequest const& request) override; + StatusOr DeleteWorkstation( + ExperimentalTag, NoAwaitTag, + google::cloud::workstations::v1::DeleteWorkstationRequest const& request) + override; + + future> + DeleteWorkstation(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> StartWorkstation( google::cloud::workstations::v1::StartWorkstationRequest const& request) override; + StatusOr StartWorkstation( + ExperimentalTag, NoAwaitTag, + google::cloud::workstations::v1::StartWorkstationRequest const& request) + override; + + future> + StartWorkstation(ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> StopWorkstation(google::cloud::workstations::v1::StopWorkstationRequest const& request) override; + StatusOr StopWorkstation( + ExperimentalTag, NoAwaitTag, + google::cloud::workstations::v1::StopWorkstationRequest const& request) + override; + + future> + StopWorkstation(ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GenerateAccessToken( google::cloud::workstations::v1::GenerateAccessTokenRequest const& diff --git a/google/cloud/workstations/v1/mocks/mock_workstations_connection.h b/google/cloud/workstations/v1/mocks/mock_workstations_connection.h index 818d4dfacdaca..ee2482893caf3 100644 --- a/google/cloud/workstations/v1/mocks/mock_workstations_connection.h +++ b/google/cloud/workstations/v1/mocks/mock_workstations_connection.h @@ -67,6 +67,19 @@ class MockWorkstationsConnection request), (override)); + MOCK_METHOD( + StatusOr, CreateWorkstationCluster, + (ExperimentalTag, NoAwaitTag, + google::cloud::workstations::v1::CreateWorkstationClusterRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + CreateWorkstationCluster, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, UpdateWorkstationCluster, @@ -74,6 +87,19 @@ class MockWorkstationsConnection request), (override)); + MOCK_METHOD( + StatusOr, UpdateWorkstationCluster, + (ExperimentalTag, NoAwaitTag, + google::cloud::workstations::v1::UpdateWorkstationClusterRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + UpdateWorkstationCluster, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteWorkstationCluster, @@ -81,6 +107,19 @@ class MockWorkstationsConnection request), (override)); + MOCK_METHOD( + StatusOr, DeleteWorkstationCluster, + (ExperimentalTag, NoAwaitTag, + google::cloud::workstations::v1::DeleteWorkstationClusterRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + DeleteWorkstationCluster, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr, GetWorkstationConfig, @@ -108,6 +147,19 @@ class MockWorkstationsConnection request), (override)); + MOCK_METHOD( + StatusOr, CreateWorkstationConfig, + (ExperimentalTag, NoAwaitTag, + google::cloud::workstations::v1::CreateWorkstationConfigRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + CreateWorkstationConfig, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, UpdateWorkstationConfig, @@ -115,6 +167,19 @@ class MockWorkstationsConnection request), (override)); + MOCK_METHOD( + StatusOr, UpdateWorkstationConfig, + (ExperimentalTag, NoAwaitTag, + google::cloud::workstations::v1::UpdateWorkstationConfigRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + UpdateWorkstationConfig, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteWorkstationConfig, @@ -122,6 +187,19 @@ class MockWorkstationsConnection request), (override)); + MOCK_METHOD( + StatusOr, DeleteWorkstationConfig, + (ExperimentalTag, NoAwaitTag, + google::cloud::workstations::v1::DeleteWorkstationConfigRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + DeleteWorkstationConfig, + (ExperimentalTag, google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr, GetWorkstation, (google::cloud::workstations::v1::GetWorkstationRequest const& request), @@ -145,30 +223,90 @@ class MockWorkstationsConnection request), (override)); + MOCK_METHOD(StatusOr, CreateWorkstation, + (ExperimentalTag, NoAwaitTag, + google::cloud::workstations::v1::CreateWorkstationRequest const& + request), + (override)); + + MOCK_METHOD(future>, + CreateWorkstation, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, UpdateWorkstation, (google::cloud::workstations::v1::UpdateWorkstationRequest const& request), (override)); + MOCK_METHOD(StatusOr, UpdateWorkstation, + (ExperimentalTag, NoAwaitTag, + google::cloud::workstations::v1::UpdateWorkstationRequest const& + request), + (override)); + + MOCK_METHOD(future>, + UpdateWorkstation, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, DeleteWorkstation, (google::cloud::workstations::v1::DeleteWorkstationRequest const& request), (override)); + MOCK_METHOD(StatusOr, DeleteWorkstation, + (ExperimentalTag, NoAwaitTag, + google::cloud::workstations::v1::DeleteWorkstationRequest const& + request), + (override)); + + MOCK_METHOD(future>, + DeleteWorkstation, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, StartWorkstation, (google::cloud::workstations::v1::StartWorkstationRequest const& request), (override)); + MOCK_METHOD( + StatusOr, StartWorkstation, + (ExperimentalTag, NoAwaitTag, + google::cloud::workstations::v1::StartWorkstationRequest const& request), + (override)); + + MOCK_METHOD(future>, + StartWorkstation, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, StopWorkstation, (google::cloud::workstations::v1::StopWorkstationRequest const& request), (override)); + MOCK_METHOD( + StatusOr, StopWorkstation, + (ExperimentalTag, NoAwaitTag, + google::cloud::workstations::v1::StopWorkstationRequest const& request), + (override)); + + MOCK_METHOD(future>, + StopWorkstation, + (ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr, GenerateAccessToken, diff --git a/google/cloud/workstations/v1/workstations_connection.cc b/google/cloud/workstations/v1/workstations_connection.cc index a0b25ef95207d..a35a0b6bf9867 100644 --- a/google/cloud/workstations/v1/workstations_connection.cc +++ b/google/cloud/workstations/v1/workstations_connection.cc @@ -60,6 +60,22 @@ WorkstationsConnection::CreateWorkstationCluster( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +WorkstationsConnection::CreateWorkstationCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::workstations::v1::CreateWorkstationClusterRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +WorkstationsConnection::CreateWorkstationCluster( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> WorkstationsConnection::UpdateWorkstationCluster( google::cloud::workstations::v1::UpdateWorkstationClusterRequest const&) { @@ -68,9 +84,41 @@ WorkstationsConnection::UpdateWorkstationCluster( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +WorkstationsConnection::UpdateWorkstationCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::workstations::v1::UpdateWorkstationClusterRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> +WorkstationsConnection::UpdateWorkstationCluster( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +WorkstationsConnection::DeleteWorkstationCluster( + google::cloud::workstations::v1::DeleteWorkstationClusterRequest const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +StatusOr WorkstationsConnection::DeleteWorkstationCluster( + ExperimentalTag, NoAwaitTag, google::cloud::workstations::v1::DeleteWorkstationClusterRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +WorkstationsConnection::DeleteWorkstationCluster( + ExperimentalTag, google::longrunning::Operation const&) { return google::cloud::make_ready_future< StatusOr>( Status(StatusCode::kUnimplemented, "not implemented")); @@ -106,6 +154,22 @@ WorkstationsConnection::CreateWorkstationConfig( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +WorkstationsConnection::CreateWorkstationConfig( + ExperimentalTag, NoAwaitTag, + google::cloud::workstations::v1::CreateWorkstationConfigRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +WorkstationsConnection::CreateWorkstationConfig( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> WorkstationsConnection::UpdateWorkstationConfig( google::cloud::workstations::v1::UpdateWorkstationConfigRequest const&) { @@ -114,6 +178,22 @@ WorkstationsConnection::UpdateWorkstationConfig( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +WorkstationsConnection::UpdateWorkstationConfig( + ExperimentalTag, NoAwaitTag, + google::cloud::workstations::v1::UpdateWorkstationConfigRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +WorkstationsConnection::UpdateWorkstationConfig( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> WorkstationsConnection::DeleteWorkstationConfig( google::cloud::workstations::v1::DeleteWorkstationConfigRequest const&) { @@ -122,6 +202,22 @@ WorkstationsConnection::DeleteWorkstationConfig( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +WorkstationsConnection::DeleteWorkstationConfig( + ExperimentalTag, NoAwaitTag, + google::cloud::workstations::v1::DeleteWorkstationConfigRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +WorkstationsConnection::DeleteWorkstationConfig( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr WorkstationsConnection::GetWorkstation( google::cloud::workstations::v1::GetWorkstationRequest const&) { @@ -152,9 +248,41 @@ WorkstationsConnection::CreateWorkstation( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +WorkstationsConnection::CreateWorkstation( + ExperimentalTag, NoAwaitTag, + google::cloud::workstations::v1::CreateWorkstationRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> +WorkstationsConnection::CreateWorkstation( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +WorkstationsConnection::UpdateWorkstation( + google::cloud::workstations::v1::UpdateWorkstationRequest const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +StatusOr WorkstationsConnection::UpdateWorkstation( + ExperimentalTag, NoAwaitTag, google::cloud::workstations::v1::UpdateWorkstationRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +WorkstationsConnection::UpdateWorkstation( + ExperimentalTag, google::longrunning::Operation const&) { return google::cloud::make_ready_future< StatusOr>( Status(StatusCode::kUnimplemented, "not implemented")); @@ -168,6 +296,22 @@ WorkstationsConnection::DeleteWorkstation( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +WorkstationsConnection::DeleteWorkstation( + ExperimentalTag, NoAwaitTag, + google::cloud::workstations::v1::DeleteWorkstationRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +WorkstationsConnection::DeleteWorkstation( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> WorkstationsConnection::StartWorkstation( google::cloud::workstations::v1::StartWorkstationRequest const&) { @@ -176,6 +320,22 @@ WorkstationsConnection::StartWorkstation( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +WorkstationsConnection::StartWorkstation( + ExperimentalTag, NoAwaitTag, + google::cloud::workstations::v1::StartWorkstationRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +WorkstationsConnection::StartWorkstation( + ExperimentalTag, google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + future> WorkstationsConnection::StopWorkstation( google::cloud::workstations::v1::StopWorkstationRequest const&) { @@ -184,6 +344,22 @@ WorkstationsConnection::StopWorkstation( Status(StatusCode::kUnimplemented, "not implemented")); } +StatusOr +WorkstationsConnection::StopWorkstation( + ExperimentalTag, NoAwaitTag, + google::cloud::workstations::v1::StopWorkstationRequest const&) { + return StatusOr( + Status(StatusCode::kUnimplemented, "not implemented")); +} + +future> +WorkstationsConnection::StopWorkstation(ExperimentalTag, + google::longrunning::Operation const&) { + return google::cloud::make_ready_future< + StatusOr>( + Status(StatusCode::kUnimplemented, "not implemented")); +} + StatusOr WorkstationsConnection::GenerateAccessToken( google::cloud::workstations::v1::GenerateAccessTokenRequest const&) { diff --git a/google/cloud/workstations/v1/workstations_connection.h b/google/cloud/workstations/v1/workstations_connection.h index b304506f4ae71..b1cf87d3e61b3 100644 --- a/google/cloud/workstations/v1/workstations_connection.h +++ b/google/cloud/workstations/v1/workstations_connection.h @@ -22,8 +22,10 @@ #include "google/cloud/workstations/v1/internal/workstations_retry_traits.h" #include "google/cloud/workstations/v1/workstations_connection_idempotency_policy.h" #include "google/cloud/backoff_policy.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/internal/retry_policy_impl.h" +#include "google/cloud/no_await_tag.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" #include "google/cloud/status_or.h" @@ -199,16 +201,43 @@ class WorkstationsConnection { google::cloud::workstations::v1::CreateWorkstationClusterRequest const& request); + virtual StatusOr CreateWorkstationCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::workstations::v1::CreateWorkstationClusterRequest const& + request); + + virtual future> + CreateWorkstationCluster(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> UpdateWorkstationCluster( google::cloud::workstations::v1::UpdateWorkstationClusterRequest const& request); + virtual StatusOr UpdateWorkstationCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::workstations::v1::UpdateWorkstationClusterRequest const& + request); + + virtual future> + UpdateWorkstationCluster(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> DeleteWorkstationCluster( google::cloud::workstations::v1::DeleteWorkstationClusterRequest const& request); + virtual StatusOr DeleteWorkstationCluster( + ExperimentalTag, NoAwaitTag, + google::cloud::workstations::v1::DeleteWorkstationClusterRequest const& + request); + + virtual future> + DeleteWorkstationCluster(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StatusOr GetWorkstationConfig( google::cloud::workstations::v1::GetWorkstationConfigRequest const& @@ -228,16 +257,43 @@ class WorkstationsConnection { google::cloud::workstations::v1::CreateWorkstationConfigRequest const& request); + virtual StatusOr CreateWorkstationConfig( + ExperimentalTag, NoAwaitTag, + google::cloud::workstations::v1::CreateWorkstationConfigRequest const& + request); + + virtual future> + CreateWorkstationConfig(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> UpdateWorkstationConfig( google::cloud::workstations::v1::UpdateWorkstationConfigRequest const& request); + virtual StatusOr UpdateWorkstationConfig( + ExperimentalTag, NoAwaitTag, + google::cloud::workstations::v1::UpdateWorkstationConfigRequest const& + request); + + virtual future> + UpdateWorkstationConfig(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> DeleteWorkstationConfig( google::cloud::workstations::v1::DeleteWorkstationConfigRequest const& request); + virtual StatusOr DeleteWorkstationConfig( + ExperimentalTag, NoAwaitTag, + google::cloud::workstations::v1::DeleteWorkstationConfigRequest const& + request); + + virtual future> + DeleteWorkstationConfig(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StatusOr GetWorkstation( google::cloud::workstations::v1::GetWorkstationRequest const& request); @@ -253,22 +309,62 @@ class WorkstationsConnection { CreateWorkstation( google::cloud::workstations::v1::CreateWorkstationRequest const& request); + virtual StatusOr CreateWorkstation( + ExperimentalTag, NoAwaitTag, + google::cloud::workstations::v1::CreateWorkstationRequest const& request); + + virtual future> + CreateWorkstation(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> UpdateWorkstation( google::cloud::workstations::v1::UpdateWorkstationRequest const& request); + virtual StatusOr UpdateWorkstation( + ExperimentalTag, NoAwaitTag, + google::cloud::workstations::v1::UpdateWorkstationRequest const& request); + + virtual future> + UpdateWorkstation(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> DeleteWorkstation( google::cloud::workstations::v1::DeleteWorkstationRequest const& request); + virtual StatusOr DeleteWorkstation( + ExperimentalTag, NoAwaitTag, + google::cloud::workstations::v1::DeleteWorkstationRequest const& request); + + virtual future> + DeleteWorkstation(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> StartWorkstation( google::cloud::workstations::v1::StartWorkstationRequest const& request); + virtual StatusOr StartWorkstation( + ExperimentalTag, NoAwaitTag, + google::cloud::workstations::v1::StartWorkstationRequest const& request); + + virtual future> + StartWorkstation(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual future> StopWorkstation( google::cloud::workstations::v1::StopWorkstationRequest const& request); + virtual StatusOr StopWorkstation( + ExperimentalTag, NoAwaitTag, + google::cloud::workstations::v1::StopWorkstationRequest const& request); + + virtual future> + StopWorkstation(ExperimentalTag, + google::longrunning::Operation const& operation); + virtual StatusOr GenerateAccessToken( google::cloud::workstations::v1::GenerateAccessTokenRequest const&